/* Retro Plano — página do empreendimento (v5, editorial).
   Pedido do cliente (14/10): escala menor, nada de "cara de tecnologia" (vidro translúcido,
   brilhos, pontos pulsando, ícones em quadradinhos, mosaico de cards) e animações imersivas
   e sofisticadas, no estilo de sites de arquitetura:
   - títulos que sobem palavra por palavra por trás de uma máscara;
   - fotos que se revelam por recorte enquanto o zoom assenta;
   - parallax lento nas fotos grandes e zoom inicial suave no hero;
   - linhas finas que se desenham, números que contam, cabeçalho que se recolhe ao rolar.
   Tudo respeita prefers-reduced-motion. Bebas Neue só nos destaques; o resto em Inter. */

@font-face {
  font-family: "Bebas Neue"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/assets/fonts/bebas-neue-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Bebas Neue"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/assets/fonts/bebas-neue-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/assets/fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Gabarito"; font-style: normal; font-weight: 400 800; font-display: swap;   /* só o logo */
  src: url("/assets/fonts/gabarito-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF;
}

:root {
  color-scheme: light;
  --black: #0f0f0f;
  --black-2: #171717;
  --white: #ffffff;
  --paper: #f5f4f1;
  --grey: #5c5c5c;             /* 6,8:1 no branco */
  --grey-dark: #ababab;        /* 8:1 no preto */
  --line: #e4e2dd;
  --line-dark: rgb(255 255 255 / 0.14);
  --copper: #b56a45;
  --copper-btn: #9c5636;       /* 5,5:1 com texto branco */
  --copper-btn-hover: #844629;
  --copper-on-black: #d0906a;
  --copper-on-white: #96512f;
  --lime: #b6b52e;
  --display: "Bebas Neue", "Oswald", "Arial Narrow", Impact, sans-serif;
  --sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --gutter: 1.25rem;
  --max: 68rem;
  --sec: clamp(4rem, 8vw, 6.5rem);
  --header-h: 3.75rem;
  --radius: 0.75rem;
  --ease: cubic-bezier(0.2, 0, 0, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);       /* desaceleração longa, "macia" */
  --ease-wipe: cubic-bezier(0.77, 0, 0.18, 1);     /* revelação por recorte */
}
@media (min-width: 48rem) { :root { --gutter: 2rem; } }
@media (min-width: 64rem) { :root { --gutter: 3rem; --header-h: 4.25rem; } }

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 0.5rem); -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--black); color: var(--white);
  font-family: var(--sans); font-size: 1rem; line-height: 1.65;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, figure { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
abbr { text-decoration: none; }
:where(a, button, [tabindex]):focus-visible { outline: 2px solid var(--copper-on-black); outline-offset: 3px; border-radius: 4px; }
.sec--white :where(a, button, [tabindex]):focus-visible { outline-color: var(--copper-on-white); }
::selection { background: var(--copper-btn); color: var(--white); }
.sprite { position: absolute; }
.wrap { width: min(100% - 2 * var(--gutter), var(--max)); margin-inline: auto; }

.skip {
  position: fixed; left: 0.75rem; top: -4rem; z-index: 60;
  background: var(--white); color: var(--black);
  padding: 0.7rem 1rem; border-radius: 999px; font-weight: 600; text-decoration: none;
}
.skip:focus { top: 0.75rem; }

/* ---------- tipografia ---------- */

.sec__title {
  font-family: var(--sans); font-weight: 600; font-size: clamp(1.5rem, 3.2vw, 2.125rem);
  line-height: 1.18; letter-spacing: -0.022em; max-width: 22ch; text-wrap: balance;
}
.sec__lead { margin-top: 0.75rem; font-size: clamp(1rem, 1.8vw, 1.0625rem); max-width: 44ch; }

/* rótulo: texto pequeno espaçado com um filete que se desenha */
.kicker {
  display: inline-flex; align-items: center; gap: 0.75rem;
  font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
  margin-bottom: 0.875rem;
}
.kicker::before {
  content: ""; width: 1.75rem; height: 1px; background: currentColor;
  transform-origin: left; transition: transform 1.1s var(--ease-out) 0.15s;
}
.js .kicker::before { transform: scaleX(0); }
.js .is-in .kicker::before, .js .kicker.is-in::before, .js .hero .kicker::before { transform: scaleX(1); }
.js .hero .kicker::before { animation: draw 1.2s var(--ease-out) 0.5s both; }
@keyframes draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ---------- seções ---------- */

.sec { padding-block: var(--sec); }
.sec--black { background: var(--black); color: var(--white); }
.sec--black .kicker { color: var(--copper-on-black); }
.sec--black .sec__lead { color: var(--grey-dark); }
.sec--white { background: var(--white); color: var(--black); }
.sec--white .kicker { color: var(--copper-on-white); }
.sec--white .sec__lead { color: var(--grey); }
.sec--white:not([hidden]) + .sec--white { padding-top: 0; }

/* ---------- botões ---------- */

.btn {
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem;
  min-height: 3rem; padding: 0.75rem 1.4rem;
  border-radius: 999px;
  font-family: var(--sans); font-weight: 600; font-size: 0.875rem; letter-spacing: 0.01em;
  text-decoration: none;
  touch-action: manipulation; -webkit-tap-highlight-color: transparent;
}
.btn--copper { background: var(--copper-btn); color: var(--white); }
/* preenchimento que sobe por trás do texto no hover */
.btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--copper-btn-hover);
  transform: translateY(101%); transition: transform 500ms var(--ease-out);
}
@media (hover: hover) { .btn:hover::before { transform: none; } }
.btn--sm { min-height: 2.75rem; padding: 0.5rem 1rem; font-size: 0.8125rem; }
.ico-wa { flex: none; }

/* ---------- cabeçalho: se recolhe ao descer, volta ao subir ---------- */

.top {
  position: sticky; top: 0; z-index: 40;
  background: rgb(15 15 15 / 0.95);
  border-bottom: 1px solid var(--line-dark);
  transition: transform 600ms var(--ease-out);
}
.top--hidden { transform: translateY(-100%); }
.top__in { display: flex; align-items: center; gap: 1rem; min-height: var(--header-h); }
.top__by { margin-left: auto; font-size: 0.8125rem; color: var(--grey-dark); display: none; }
.top__by a { display: inline-block; padding-block: 0.6rem; color: var(--white); text-decoration: none; font-weight: 600; }
.top__by a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.top .btn { margin-left: auto; }
@media (min-width: 40rem) { .top__by { display: block; } .top .btn { margin-left: 0.75rem; } }

.logo { display: inline-flex; align-items: flex-end; gap: 0.4rem; text-decoration: none; font-family: "Gabarito", var(--sans); }
.logo__word { font-weight: 800; font-size: 1.25rem; line-height: 0.82; letter-spacing: 0.02em; color: var(--white); }
.logo__pill { background: var(--lime); color: #2b2335; font-weight: 600; font-size: 0.6875rem; line-height: 1; padding: 0.2rem 0.5rem 0.22rem; border-radius: 99px; margin-bottom: 1px; }

/* ---------- 1. hero ---------- */

.hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: min(calc(88svh - var(--header-h)), 44rem);
  display: grid; align-items: end;
  background: var(--black); color: var(--white);
}
.hero__bg { position: absolute; inset: -6% 0; z-index: -2; will-change: transform; }
.hero__bg picture, .hero__bg img { display: block; width: 100%; height: 100%; }
.hero__bg img { object-fit: cover; object-position: 55% 35%; }
.js .hero__bg img { animation: settle 2.8s var(--ease-out) both; }
@keyframes settle { from { transform: scale(1.14); opacity: 0.35; } to { transform: scale(1); opacity: 1; } }
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(to top, var(--black) 6%, rgb(15 15 15 / 0.86) 38%, rgb(15 15 15 / 0.25) 68%, rgb(15 15 15 / 0.4) 100%);
}
.hero__content { padding-block: 5rem 2.5rem; }
.hero h1 {
  font-family: var(--display); font-weight: 400; text-transform: uppercase;
  font-size: clamp(2.125rem, 7.6vw, 3.5rem); line-height: 1.02; letter-spacing: 0.02em;
  text-wrap: balance;
}
.hero h1 .sw__in { --d: 300ms; }
.kicker--light { color: var(--copper-on-black); }
.hero__sub { margin-top: 0.875rem; font-size: clamp(0.9375rem, 2.2vw, 1.0625rem); color: rgb(255 255 255 / 0.8); }
.hero__meta {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin-top: 1.5rem; padding-top: 1rem;
  border-top: 1px solid var(--line-dark);
  font-size: 0.75rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: rgb(255 255 255 / 0.8);
}
.hero__meta { flex-direction: column; gap: 0.375rem; }
@media (min-width: 30rem) {
  .hero__meta { flex-direction: row; }
  .hero__meta span + span::before { content: "—"; margin-right: 1.25rem; color: var(--copper-on-black); }
}
.hero__cap { position: absolute; right: var(--gutter); top: 1rem; font-size: 0.6875rem; letter-spacing: 0.06em; color: rgb(255 255 255 / 0.72); }

@media (min-width: 64rem) {
  .hero { min-height: min(calc(92svh - var(--header-h)), 40rem); align-items: center; }
  .hero__bg { left: auto; width: 60%; }
  .hero__bg img { object-position: 50% 45%; }
  .hero::after {
    background:
      linear-gradient(to right, var(--black) 40%, rgb(15 15 15 / 0.7) 52%, rgb(15 15 15 / 0) 70%),
      linear-gradient(to top, rgb(15 15 15 / 0.5), transparent 30%);
  }
  .hero__content { padding-block: 4rem; }
  .hero__content > * { max-width: 30rem; }
  .hero h1 { font-size: clamp(2.75rem, 3.9vw, 3.5rem); }
  .hero__cap { top: auto; bottom: 1.25rem; }
}

/* entrada do hero */
.js .hero__content > .hero__sub, .js .hero__content > .hero__meta, .js .hero__cap { opacity: 0; transform: translateY(0.75rem); animation: rise 1.1s var(--ease-out) forwards; }
.js .hero__content > .hero__sub { animation-delay: 1s; }
.js .hero__content > .hero__meta { animation-delay: 1.15s; }
.js .hero__cap { animation-delay: 1.5s; }
@keyframes rise { to { opacity: 1; transform: none; } }

/* ---------- títulos palavra por palavra ---------- */

.sw { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.12em; margin-bottom: -0.12em; }
.sw__in { display: inline-block; }
.js [data-split] .sw__in {
  transform: translateY(110%);
  transition: transform 1.15s var(--ease-out);
  transition-delay: calc(var(--i, 0) * 60ms + var(--d, 0ms));
}
.js [data-split].is-in .sw__in { transform: none; }

/* ---------- fotos que se revelam por recorte ---------- */

.img-reveal { overflow: hidden; border-radius: var(--radius); }
.js .img-reveal { clip-path: inset(100% 0 0 0 round var(--radius)); transition: clip-path 1.5s var(--ease-wipe); }
.js .img-reveal.is-in { clip-path: inset(0 0 0 0 round var(--radius)); }
.js .img-reveal img { transform: scale(1.2); transition: transform 2.2s var(--ease-out); }
.js .img-reveal.is-in img { transform: scale(1); }

/* itens em sequência e blocos simples */
.js [data-stagger] > * { opacity: 0; transform: translateY(1rem); transition: opacity 1s var(--ease-out), transform 1s var(--ease-out); transition-delay: calc(var(--i, 0) * 100ms + 150ms); }
.js [data-stagger].is-in > * { opacity: 1; transform: none; }
.js [data-reveal] { opacity: 0; transform: translateY(1rem); transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out); }
.js [data-reveal].is-in { opacity: 1; transform: none; }

/* ---------- 2. tudo por perto ---------- */

.perto { display: grid; gap: 2.25rem; }
@media (min-width: 56rem) { .perto { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 4rem; align-items: end; } }
.places { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1.25rem; }
.place { display: flex; flex-direction: column; gap: 0.75rem; }
.place__ico, .feat__ico, .dif__note-ico { color: var(--copper-on-white); flex: none; display: inline-flex; }
.place__ico svg, .feat__ico svg, .dif__note-ico svg { width: 1.625rem; height: 1.625rem; fill: none; stroke: currentColor; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; }
.place__label { position: relative; font-weight: 500; font-size: 0.9375rem; line-height: 1.35; text-wrap: balance; padding-top: 0.75rem; }
/* filete que se desenha acima de cada local */
.place__label::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line); transform-origin: left; transition: transform 1.2s var(--ease-out); transition-delay: inherit; }
.js .places .place__label::before { transform: scaleX(0); }
.js .places.is-in .place__label::before { transform: scaleX(1); }

/* ---------- 3. tour ---------- */

.tour__frame {
  width: min(100% - 2 * var(--gutter), var(--max)); margin: clamp(1.75rem, 4vw, 2.5rem) auto 0;
  height: min(70svh, 40rem); min-height: 28rem;
  background: var(--black-2);
}
.tour__frame iframe { display: block; width: 100%; height: 100%; border: 0; }

/* ---------- 4. diferenciais ---------- */

.dif { display: grid; gap: 2.25rem; }
@media (min-width: 56rem) { .dif { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 4rem; align-items: center; } }
.dif__media { aspect-ratio: 4 / 3; background: var(--paper); }
.dif__media picture { display: block; height: 112%; margin-top: -6%; will-change: transform; }
.dif__media img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 56rem) { .dif__media { aspect-ratio: 5 / 6; } }
.feats { margin-top: 1.5rem; }
.feat { display: flex; align-items: center; gap: 1rem; padding-block: 0.95rem; border-bottom: 1px solid var(--line); font-weight: 500; font-size: 1rem; }
.feat:first-child { border-top: 1px solid var(--line); }
.dif__note { display: flex; align-items: flex-start; gap: 1rem; margin-top: 1.5rem; color: var(--grey); font-size: 0.9375rem; line-height: 1.55; }

/* ---------- 5. retrofit ---------- */

.retrofit__grid { display: grid; gap: 1.25rem; }
@media (min-width: 56rem) { .retrofit__grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 4rem; align-items: end; } }
.retrofit__title { display: flex; flex-direction: column; align-items: flex-start; }
.retrofit__title .kicker { margin-bottom: 0.25rem; color: var(--copper-on-black); }
.retrofit__word { font-family: var(--display); font-weight: 400; text-transform: uppercase; letter-spacing: 0.03em; font-size: clamp(2.75rem, 8vw, 4.25rem); line-height: 1; }
.retrofit__text { font-size: clamp(1rem, 2vw, 1.125rem); line-height: 1.65; color: var(--grey-dark); max-width: 42ch; }

/* ---------- 6. decorado (Reels 9:16) ---------- */

.reel { position: relative; margin: clamp(1.75rem, 4vw, 2.5rem) auto 0; width: min(100%, 22rem); aspect-ratio: 9 / 16; border-radius: var(--radius); overflow: hidden; background: var(--black); }
@media (min-width: 64rem) { .reel { width: 20rem; } }
.reel > video, .reel > iframe, .reel > img { width: 100%; height: 100%; object-fit: cover; border: 0; display: block; }
.reel__play { position: absolute; inset: 0; display: grid; place-items: center; width: 100%; background: linear-gradient(to top, rgb(15 15 15 / 0.5), transparent 55%); }
.reel__disc { display: grid; place-items: center; width: 4rem; height: 4rem; border-radius: 50%; background: var(--white); color: var(--black); transition: transform 500ms var(--ease-out); }
.reel__play:hover .reel__disc { transform: scale(1.08); }

/* ---------- carrosséis ---------- */

.carousel { margin-top: clamp(1.75rem, 4vw, 2.5rem); }
.carousel__track {
  position: relative; display: flex; gap: 0.875rem;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__track > li { scroll-snap-align: start; flex: none; min-width: 0; }
.carousel__nav { display: flex; align-items: center; gap: 0.5rem; margin-top: 1.25rem; }
.carousel__note { margin-right: auto; font-size: 0.75rem; color: var(--grey); letter-spacing: 0.02em; }
.carousel__btn {
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%;
  border: 1px solid var(--line); color: var(--black); background: var(--white);
  transition: background-color 400ms var(--ease), color 400ms var(--ease), border-color 400ms var(--ease), opacity 300ms;
}
.carousel__btn:hover:not(:disabled) { background: var(--black); border-color: var(--black); color: var(--white); }
.carousel__btn:disabled { opacity: 0.35; cursor: default; }
.carousel__btn svg { width: 1.125rem; height: 1.125rem; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

.carousel--gallery .shot { width: 82%; }
@media (min-width: 48rem) { .carousel--gallery .shot { width: calc((100% - 0.875rem) / 2); } }
.shot__media { background: var(--paper); }
.shot img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
@media (hover: hover) { .js .shot__media.is-in:hover img { transform: scale(1.05); transition-duration: 1.4s; } }
.shot__cap { margin-top: 0.625rem; font-size: 0.8125rem; color: var(--grey); }

.carousel--duo .proj { width: calc((100% - 0.875rem) / 2); }
.proj { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0.5rem 0.5rem 0; }
.proj img { width: min(100%, 7rem); aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
@media (min-width: 48rem) {
  .proj { display: grid; text-align: left; padding: 0; grid-template-columns: 6.5rem minmax(0, 1fr); grid-template-rows: 1fr auto auto auto auto 1fr; column-gap: 1.25rem; align-items: start; }
  .proj img { width: 6.5rem; grid-column: 1; grid-row: 1 / -1; align-self: center; }
  .proj__year { grid-column: 2; grid-row: 2; }
  .proj__name { grid-column: 2; grid-row: 3; }
  .proj__city { grid-column: 2; grid-row: 4; }
  .proj__status { grid-column: 2; grid-row: 5; justify-self: start; }
}
.proj__year { margin-top: 0.75rem; font-family: var(--display); font-size: 1.0625rem; letter-spacing: 0.06em; color: var(--copper-on-white); line-height: 1.1; }
.proj__name { font-weight: 600; font-size: 0.9375rem; line-height: 1.3; text-wrap: balance; }
.proj__city { font-size: 0.875rem; color: var(--grey); }
.proj__status { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 0.35rem; font-size: 0.75rem; font-weight: 500; }
.proj__status::before { content: ""; width: 0.35rem; height: 0.35rem; border-radius: 50%; background: currentColor; }
.proj__status--done { color: #2f6b4f; }
.proj__status--live { color: #8a5a20; }
@media (min-width: 48rem) { .proj__year { margin-top: 0; } }

/* ---------- 8. valores ---------- */

.valores__in { display: grid; gap: 1.25rem; }
@media (min-width: 56rem) { .valores__in { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); column-gap: 4rem; align-items: end; } }
.valores__in .kicker { grid-column: 1 / -1; margin-bottom: 0; }
.valores__title { font-size: clamp(0.9375rem, 2vw, 1.0625rem); font-weight: 500; line-height: 1.35; color: var(--grey-dark); }
.valores__price { display: block; margin-top: 0.25rem; font-family: var(--display); font-weight: 400; text-transform: uppercase; letter-spacing: 0.02em; font-size: clamp(3rem, 9.5vw, 4.75rem); line-height: 1; color: var(--white); font-variant-numeric: tabular-nums; }
.valores__text { font-size: clamp(0.9375rem, 2vw, 1.0625rem); color: var(--grey-dark); max-width: 40ch; }
.valores .btn { justify-self: start; }
@media (min-width: 56rem) {
  .valores__title { grid-column: 1; grid-row: 2 / 4; }
  .valores__text { grid-column: 2; grid-row: 2; }
  .valores .btn { grid-column: 2; grid-row: 3; }
}

/* ---------- 9. sobre ---------- */

.sobre__grid { display: grid; gap: 2rem; }
@media (min-width: 56rem) { .sobre__grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.6fr); gap: 4rem; align-items: end; } }
.sobre__p { margin-top: 1rem; color: var(--grey); max-width: 60ch; font-size: 0.9375rem; }
.metric { display: flex; flex-direction: column; gap: 0.35rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.metric__value { font-family: var(--display); font-weight: 400; text-transform: uppercase; letter-spacing: 0.02em; font-size: clamp(2.5rem, 6vw, 3.25rem); line-height: 1; color: var(--copper-on-white); font-variant-numeric: tabular-nums; }
.metric__label { font-size: 0.875rem; color: var(--grey); }
.sobre__sub { margin-top: clamp(3rem, 7vw, 4.5rem); font-size: clamp(1.1875rem, 2.4vw, 1.375rem); font-weight: 600; line-height: 1.25; letter-spacing: -0.015em; max-width: 26ch; text-wrap: balance; }

/* ---------- 10. chamada final ---------- */

.final__card { position: relative; isolation: isolate; min-height: 20rem; display: grid; align-items: end; background: var(--black-2); }
.final__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.final__bg picture { display: block; height: 116%; margin-top: -8%; will-change: transform; }
.final__bg img { width: 100%; height: 100%; object-fit: cover; }
.final__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgb(15 15 15 / 0.9) 15%, rgb(15 15 15 / 0.45) 70%, rgb(15 15 15 / 0.3)); }
.final__in { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; padding: clamp(1.5rem, 4.5vw, 3rem); }
@media (min-width: 56rem) { .final__in { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 3rem; } .final__card { min-height: 24rem; } }
.final__title { font-size: clamp(1.5rem, 3.2vw, 2.125rem); font-weight: 600; line-height: 1.18; letter-spacing: -0.022em; max-width: 22ch; text-wrap: balance; }
.final .btn { flex: none; }

/* ---------- rodapé ---------- */

.foot { background: var(--black); color: var(--grey-dark); padding-block: 2.75rem calc(2.75rem + env(safe-area-inset-bottom)); font-size: 0.875rem; border-top: 1px solid var(--line-dark); }
.foot__in { display: grid; gap: 1.5rem; }
@media (min-width: 56rem) { .foot__in { grid-template-columns: auto minmax(0, 1fr) auto; gap: 3rem; align-items: start; } }
.foot__brand img { height: 3rem; width: auto; }
.foot__info p + p { margin-top: 0.35rem; }
.foot__legal { font-size: 0.75rem; }
.foot__links { display: grid; gap: 0.15rem; }
.foot__links a { display: inline-flex; align-items: center; min-height: 2.25rem; color: var(--white); text-decoration: none; background: linear-gradient(currentColor, currentColor) no-repeat 0 85% / 0 1px; transition: background-size 500ms var(--ease-out); }
.foot__links a:hover { background-size: 100% 1px; }

/* ---------- movimento reduzido: tudo aparece de imediato ---------- */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js [data-split] .sw__in, .js .img-reveal, .js .img-reveal img, .js [data-stagger] > *, .js [data-reveal],
  .js .hero__content > *, .js .hero__cap, .js .hero__bg img, .js .kicker::before, .js .places .place__label::before {
    opacity: 1 !important; transform: none !important; clip-path: none !important; animation: none !important; transition: none !important;
  }
  [data-parallax] { transform: none !important; }
  .top { transition: none; }
}
