/* ==========================================================================
   Jamil Imóveis · Apresentação Institucional · site-v2 (2026-11-06)
   Tipografia: a dupla Bodoni Moda (serif) + Archivo (sans) foi REVOGADA
   pelo Chefe (brief desta tarefa, 06/11/2026 — "muda fonte, essa serifada
   ruim"). Zero serifa no site inteiro, nem display nem corpo. Inter/Roboto/
   Arial também proibidas (regra da casa, frontend-design + CLAUDE.md).

   FONTE ESCOLHIDA: Plus Jakarta Sans (variable, peso 200-800, com itálico
   variável próprio). Grotesca geométrica-humanista premium.

   Benchmark ao vivo confirmado nesta sessão (curl direto no CSS publicado,
   06/11/2026):
   - povoaimoveis.com.br → index-CAAKuXd7.css: "Cormorant Garamond" +
     "Playfair Display" (serif/display) + "Inter" + "Montserrat" (sans/corpo).
   - jardins-co.com.br → wp-content/themes/jco/assets/css/style.css:
     "Saol Display Italic" (serif/display, paga) + "Scto Grotesk A"
     (sans/corpo, paga — família do universo Söhne/Suisse).
   Como serifa está banida e Inter/Roboto/Arial também, Plus Jakarta Sans
   foi escolhida por cobrir o mesmo registro de grotesca geométrica
   premium que Scto Grotesk A/Montserrat ocupam nas duas referências,
   com licença gratuita (as pagas das referências não servem aqui).
   Download: https://fonts.google.com/specimen/Plus+Jakarta+Sans
   (fonte original: https://github.com/tokotype/PlusJakartaSans)
   Licença: SIL Open Font License (OFL) 1.1 — gratuita para uso comercial,
   sem necessidade de atribuição, única restrição é não revender a fonte
   isolada sob outro nome. Texto integral em ../fonts/OFL-PlusJakartaSans.txt.

   Título e corpo usam a MESMA família (var(--serif) e var(--sans) abaixo
   apontam para o mesmo font-family) — hierarquia só por peso/tamanho:
   títulos em peso 650-800, corpo em 400-500 (contraste >=1.25x).
   Itálico de ênfase nos headlines usa o itálico variável da própria
   família (nunca serifado).
   Servida localmente · sem CDN. Paleta: ameixa escuro + dourado pontual.
   ========================================================================== */

/* ---- Fonte local (variable font, SIL Open Font License) ---- */
@font-face {
  font-family: "Plus Jakarta Sans VF";
  src: url("../fonts/PlusJakartaSans-VF.woff2") format("woff2-variations"),
       url("../fonts/PlusJakartaSans-VF.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Plus Jakarta Sans VF";
  src: url("../fonts/PlusJakartaSans-Italic-VF.woff2") format("woff2-variations"),
       url("../fonts/PlusJakartaSans-Italic-VF.woff2") format("woff2");
  font-weight: 200 800;
  font-style: italic;
  font-display: swap;
}

/* ---- Tokens ---- */
:root{
  --ameixa:        #2A1420;
  --ameixa-deep:   #1B0C13;
  --ameixa-mid:    #371A29;
  --dourado:       #B69763;
  --dourado-soft:  #CDB488;
  --creme:         #F4ECE2;
  --creme-muted:   #D9C9BA;
  --linha:         rgba(244,236,226,0.16);
  --linha-forte:   rgba(182,151,99,0.45);

  /* Família única: --serif e --sans resolvem para a mesma fonte de
     propósito (ver nota acima) — hierarquia nunca por família. */
  --serif: "Plus Jakarta Sans VF", "Helvetica Neue", Arial, sans-serif;
  --sans:  "Plus Jakarta Sans VF", "Helvetica Neue", Arial, sans-serif;

  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.75rem;
  --space-4: 2.75rem;
  --space-5: 4.5rem;
  --space-6: 7rem;
  --space-7: 10rem;

  --container: 1240px;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{
  background:var(--ameixa);
  scroll-behavior:smooth;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}
body{
  margin:0;
  background:var(--ameixa);
  color:var(--creme);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
p, li, dt, dd, figcaption{ text-wrap:pretty; }

.skip-link{
  position:absolute; left:-9999px; top:0;
  background:var(--creme); color:var(--ameixa-deep);
  padding:.75rem 1.25rem; z-index:999; font-family:var(--sans); font-weight:600;
}
.skip-link:focus{ left:1rem; top:1rem; }

:focus-visible{ outline:2px solid var(--dourado); outline-offset:3px; }

/* ---- Marca fixa discreta ----
   CORRIGIDO (06/11/2026): era uma barra full-width com o logo centralizado,
   que colidia direto com headline/numero centralizados sempre que o scroll
   parava com o topo da secao perto do topo da tela (confirmado em teste de
   scroll real, nao so em crop isolado). Trocado para selo de canto, sem
   barra de fundo — padrao Locomotive/Area17 de marca persistente durante
   o scroll: pequeno, no canto, nunca disputando o centro com o conteudo. */
.site-mark{
  position:fixed; top:18px; left:18px; z-index:40;
  display:flex; align-items:center;
  width:44px; height:44px; border-radius:50%;
  background:radial-gradient(circle, rgba(10,4,7,.55) 0%, rgba(10,4,7,.3) 60%, transparent 85%);
  opacity:0; pointer-events:none;
  transition:opacity .5s var(--ease);
}
.site-mark.is-visible{ opacity:1; }
.site-mark__logo{
  width:30px; height:auto; margin:auto;
  filter:drop-shadow(0 1px 4px rgba(10,4,7,.8));
}
@media (max-width:600px){
  .site-mark{ top:13px; left:13px; width:36px; height:36px; }
  .site-mark__logo{ width:24px; }
}

/* ---- Tipografia base ---- */
.kicker{
  position:relative;
  text-align:center;
  padding-inline:clamp(44px,9vw,76px);
  font-family:var(--sans); font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  font-size:clamp(.68rem,.6rem + .3vw,.85rem);
  color:var(--dourado-soft);
  text-wrap:balance;
}
.kicker::before,.kicker::after{
  content:""; position:absolute; top:50%; height:1px; width:clamp(20px,4vw,56px);
  transform:translateY(-50%);
}
.kicker::before{ left:0; background:linear-gradient(90deg, transparent, var(--linha-forte)); }
.kicker::after{ right:0; background:linear-gradient(90deg, var(--linha-forte), transparent); }
.kicker--left{ text-align:left; padding-inline-start:clamp(44px,9vw,76px); padding-inline-end:0; margin-inline:0; max-width:none; }
.kicker--left::after{ display:none; }

.italic{ font-style:italic; }

/* Hierarquia só por peso/tamanho (família única, ver nota do topo):
   título em 650 (semibold-para-bold), bem acima do corpo (400-500) —
   contraste de peso >=1.25x exigido pelas leis de design da casa. */
.display{
  font-family:var(--serif);
  font-weight:650;
  letter-spacing:-0.015em;
  line-height:1.03;
  text-wrap:balance;
  color:var(--creme);
}
.display em{ font-style:italic; font-weight:550; color:var(--dourado-soft); }

.lede{
  font-family:var(--sans); font-weight:400;
  color:var(--creme-muted);
  text-wrap:pretty;
  line-height:1.65;
}

.display-num{
  font-family:var(--serif); font-weight:700; color:var(--dourado);
}

.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--sans); font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  font-size:.78rem;
  padding:1rem 1.9rem;
  border:1px solid var(--dourado);
  color:var(--creme);
  background:transparent;
  text-decoration:none;
  transition:background .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
.btn:hover,.btn:focus-visible{ background:var(--dourado); color:var(--ameixa-deep); transform:translateY(-2px); }
@media (prefers-reduced-motion: reduce){ .btn{ transition:none } .btn:hover{ transform:none } }

/* ---- Estrutura de seção ---- */
.slide{
  position:relative;
  width:100%;
  background:var(--ameixa);
  padding-block:var(--space-6);
  scroll-margin-top:100px; /* folga de seguranca contra a marca fixa (.site-mark, 72px) */
}
.slide--deep{ background:var(--ameixa-deep); }
.wrap{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:clamp(1.5rem,5vw,4rem);
}
.rule-top{
  max-width:var(--container); margin:0 auto; height:1px;
  background:linear-gradient(90deg, transparent, var(--linha), transparent);
}

/* reveal genérico (fade+slide ao entrar na viewport, sem scrub) */
.reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.is-in{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
  .reveal{ transition:none; opacity:1; transform:none; }
}
.reveal--d1{ transition-delay:.08s; }
.reveal--d2{ transition-delay:.16s; }
.reveal--d3{ transition-delay:.24s; }
.reveal--d4{ transition-delay:.32s; }

/* ---- Fundo editorial (foto real como textura/moldura em seções de texto puro) ----
   Reaproveita as 2 fotos reais do acervo (sala-editorial / varanda-editorial) com
   crops e overlays diferentes por seção — nunca a mesma composição duas vezes.
   Técnica: overlay escuro sobre foto (Póvoa/Jardins & Co, ver benchmark). */
.editorial-bg{
  position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none;
}
.editorial-bg img{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(.4) sepia(.16) brightness(.6) contrast(1.08);
}
/* NOTA (06/11/2026): tentativa de grao/film-grain via repeating-linear-gradient
   aqui foi REVERTIDA — deixava o pdftoppm/rasterizacao do PDF 10-15x mais lento
   por pagina (13s/pagina vs <1s), arriscando timeout em producao. A textura
   vem só da foto real + overlay, ajustados por secao abaixo. */
.editorial-bg::after{
  content:""; position:absolute; inset:0; z-index:2;
  background:linear-gradient(180deg, rgba(27,12,19,.8) 0%, rgba(27,12,19,.94) 60%, var(--ameixa) 100%);
}
.wrap{ position:relative; z-index:1; }

/* ==========================================================================
   SLIDE 1 · CAPA — full-bleed (06/11/2026, correção pós-revisão Nadia)
   Estrutura: 1 foto real do acervo cobrindo 100% da tela + overlay escuro
   em gradiente (mesma linguagem de .editorial-bg::after) + bloco de texto
   ancorado embaixo-a-esquerda. Padrão de composição herdado das referências
   do Chefe (prints/referencia-povoa-boutique.png, referencia-jardins-co.png)
   — estrutura, não conteúdo nem marca: aqui a família tipográfica, a paleta
   ameixa/dourado e o copy aprovado continuam travados (DESIGN.md do
   projeto), nada disso muda.
   Foto escolhida: sala-editorial.jpg — ambiente amplo, horizontal, piso de
   madeira + vista da cidade ao fundo, lê melhor em full-bleed wide nos dois
   breakpoints do que varanda-editorial.jpg (enquadramento mais vertical/
   fechado, janela em primeiro plano competiria com o texto).
   ========================================================================== */
.slide--capa{
  min-height:100svh;
  position:relative;
  display:flex; align-items:flex-end;
  padding-block:0;
  overflow:hidden;
}
.capa__bg{ position:absolute; inset:0; z-index:0; }
.capa__bg img{
  width:100%; height:100%; object-fit:cover; object-position:center 32%;
}
.capa__bg::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg, rgba(27,12,19,.62) 0%, rgba(27,12,19,.22) 46%, rgba(27,12,19,.12) 100%),
    linear-gradient(180deg, rgba(27,12,19,.1) 0%, rgba(27,12,19,.18) 42%, rgba(27,12,19,.82) 100%);
}
.capa__credito-foto{
  position:absolute; right:clamp(1.25rem,3vw,2rem); bottom:1.4rem; z-index:2;
  font-family:var(--sans); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--creme-muted); margin:0;
}
.capa__content{
  position:relative; z-index:2;
  width:100%; max-width:720px;
  display:flex; flex-direction:column; align-items:flex-start;
  gap:var(--space-2);
  padding:var(--space-7) clamp(1.5rem,6vw,5.5rem) var(--space-6);
}
.capa__logo{ width:150px; height:auto; margin-bottom:.25rem; filter:drop-shadow(0 2px 10px rgba(10,4,7,.55)); }
/* "Curadoria imobiliária." não tem ponto de quebra de sentido válido entre
   as 2 palavras — nowrap obrigatório nos dois breakpoints (mesma lógica já
   calibrada no projeto antes da mudança de full-bleed, ver skill
   quebra-de-linha-coerente: nunca deixar 1 palavra órfã numa linha). */
.capa__headline{
  font-size:clamp(1.55rem, .95rem + 4.1vw, 4.7rem);
  max-width:none;
  white-space:nowrap;
  text-shadow:0 2px 18px rgba(10,4,7,.45);
}
.capa__lede{ font-size:clamp(1rem, .92rem + .35vw, 1.2rem); max-width:40ch; text-shadow:0 1px 10px rgba(10,4,7,.4); }
.credencial{
  margin-top:var(--space-2);
  padding-top:var(--space-2);
  border-top:1px solid var(--linha-forte);
  display:flex; flex-direction:column; gap:.3rem;
  max-width:28ch;
}
.credencial__nome{ font-family:var(--serif); font-weight:650; font-size:1.15rem; color:var(--creme); }
.credencial__linha{ font-family:var(--sans); font-size:.85rem; letter-spacing:.03em; color:var(--dourado-soft); }

@media (max-width: 900px){
  .slide--capa{ min-height:100svh; }
  .capa__content{ max-width:none; padding:var(--space-6) 1.5rem var(--space-5); }
  .capa__headline{ max-width:none; }
  .capa__logo{ width:110px; }
  .capa__credito-foto{ display:none; }
}

/* ==========================================================================
   SLIDE 2 · BOUTIQUE
   ========================================================================== */
.slide--boutique{ text-align:center; }
.editorial-bg--boutique img{ object-position:22% 65%; }
.editorial-bg--boutique::after{
  background:linear-gradient(180deg, rgba(27,12,19,.74) 0%, rgba(27,12,19,.93) 58%, var(--ameixa) 100%);
}
.boutique__headline{
  font-size:clamp(2rem, 1.5rem + 2.6vw, 3.6rem);
  max-width:22ch; margin:var(--space-3) auto 0;
}
.boutique__atuacao{
  margin:var(--space-3) auto 0;
  max-width:46ch;
  font-family:var(--sans); font-weight:400; font-size:.86rem; letter-spacing:.02em;
  color:var(--creme-muted);
  text-wrap:pretty;
}
.pilares{
  margin-top:var(--space-6);
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:var(--space-4);
  text-align:left;
}
.pilar{ padding-top:var(--space-3); border-top:1px solid var(--linha); }
.pilar__num{ font-size:2.4rem; display:block; margin-bottom:.6rem; }
.pilar__titulo{
  font-family:var(--sans); font-weight:600; font-size:1.05rem;
  letter-spacing:.02em; margin:0 0 .75rem; color:var(--creme);
}
.pilar__texto{ font-family:var(--sans); color:var(--creme-muted); font-size:.98rem; line-height:1.6; max-width:34ch; }
.boutique__fecho{
  margin-top:var(--space-6);
  font-family:var(--serif); font-weight:500;
  font-size:clamp(1.3rem, 1.1rem + 1vw, 2rem);
  color:var(--creme);
}
.boutique__fecho em{ color:var(--dourado-soft); }

@media (max-width: 760px){
  .pilares{ grid-template-columns:1fr; gap:var(--space-3); }
}

/* ==========================================================================
   SLIDE 3 · CURADORIA (scroll-scrub bidirecional)
   --p: progresso 0→1 controlado por JS (padrão 1 = estado final, sem JS/motion)
   ========================================================================== */
:root{ --p:1; }

.slide--curadoria{ padding-block:var(--space-6) 0; }
.curadoria__headline{ font-size:clamp(2rem,1.5rem + 2.4vw,3.4rem); max-width:16ch; margin-top:var(--space-2); }
.editorial-bg--curadoria img{ object-position:38% 30%; filter:grayscale(.5) sepia(.1) brightness(.46) contrast(1.15); }
.editorial-bg--curadoria::after{
  background:linear-gradient(180deg, rgba(27,12,19,.5) 0%, rgba(27,12,19,.62) 45%, rgba(27,12,19,.7) 100%);
}

[data-scrub-stage]{
  position:static;
  padding-block:var(--space-6) var(--space-6);
}
html.scrub-enabled [data-scrub]{ height:var(--scrub-h, 300vh); position:relative; }
html.scrub-enabled [data-scrub-stage]{
  position:sticky; top:0; height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding-block:var(--space-5);
  overflow:hidden;
}

.scrub-fade{
  --local: clamp(0, calc((var(--p) - var(--from)) / (var(--to) - var(--from))), 1);
  opacity:var(--local);
  transform:translateY(calc((1 - var(--local)) * 22px));
}
.scrub-line{
  --local: clamp(0, calc((var(--p) - var(--from)) / (var(--to) - var(--from))), 1);
  opacity:var(--local);
  transform-origin:left center;
  transform:scaleX(var(--local));
}
html.scrub-enabled .scrub-fade,
html.scrub-enabled .scrub-line{ transition:none; }
.scrub-fade,.scrub-line{ transition:opacity .25s linear, transform .25s linear; }

.diagrama{
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr;
  align-items:center;
  gap:0 1.2rem;
  margin-bottom:var(--space-6);
}
.diagrama__node{
  border:1px solid var(--linha-forte);
  padding:var(--space-3) var(--space-3);
  text-align:left;
  background:linear-gradient(160deg, rgba(182,151,99,.06), transparent 60%);
}
.diagrama__node--hub{
  text-align:center; display:flex; align-items:center; justify-content:center;
  min-height:100%;
  border-color:var(--dourado);
  background:linear-gradient(160deg, rgba(182,151,99,.14), transparent 70%);
}
.diagrama__tag{
  display:block; font-family:var(--sans); font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; font-size:.78rem; color:var(--dourado-soft); margin-bottom:.6rem;
}
.diagrama__tag--hub{ margin-bottom:0; font-family:var(--serif); font-weight:650; text-transform:none; letter-spacing:0; font-size:1.2rem; color:var(--creme); }
.diagrama__texto{ font-size:.92rem; color:var(--creme-muted); line-height:1.55; margin:0; }
.diagrama__link{ height:1px; width:100%; min-width:24px; background:linear-gradient(90deg, transparent, var(--dourado), transparent); }

.timeline{
  list-style:none; margin:0; padding:var(--space-4) 0 0; border-top:1px solid var(--linha);
  display:grid; grid-template-columns:repeat(5,1fr); gap:var(--space-3);
}
.timeline__item{ text-align:left; }
.timeline__num{ font-size:1.7rem; display:block; margin-bottom:.5rem; }
.timeline__titulo{ font-family:var(--sans); font-weight:600; font-size:.92rem; color:var(--creme); margin:0 0 .5rem; }
.timeline__texto{ font-size:.82rem; color:var(--creme-muted); line-height:1.5; margin:0; }

@media (max-width: 980px){
  .diagrama{ grid-template-columns:1fr; gap:var(--space-2); }
  .diagrama__link{ width:1px; min-width:0; height:28px; margin-inline:auto; background:linear-gradient(180deg, transparent, var(--dourado), transparent); }
  html.scrub-enabled .scrub-line{ transform-origin:top center; transform:scaleY(var(--local)); }
  .timeline{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 560px){
  .timeline{ grid-template-columns:1fr; }
}

/* ==========================================================================
   SLIDE 4 · EQUIPE
   ========================================================================== */
.equipe__headline{ font-size:clamp(2rem,1.5rem + 2.4vw,3.4rem); max-width:20ch; margin-top:var(--space-2); }
.editorial-bg--equipe img{ object-position:10% 30%; filter:grayscale(.5) sepia(.1) brightness(.56) contrast(1.15); }
.editorial-bg--equipe::after{ background:rgba(27,12,19,.5); }
.equipe__grid{
  margin-top:var(--space-6);
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3);
}
.corretor{
  border:1px solid var(--linha); padding:0 0 var(--space-4);
  display:flex; flex-direction:column; gap:.4rem;
  overflow:hidden;
}
.corretor--destaque{ border-color:var(--dourado); background:linear-gradient(160deg, rgba(182,151,99,.08), transparent 70%); }
.corretor__foto{
  display:block; width:100%; aspect-ratio:4/5; margin-bottom:var(--space-2);
  border-bottom:1px solid var(--linha); overflow:hidden; flex:none;
}
.corretor--destaque .corretor__foto{ border-color:var(--dourado); }
.corretor__foto img{
  width:100%; height:100%; object-fit:cover; object-position:center 15%; display:block;
  filter:grayscale(1) contrast(1.05);
  transition:filter .6s var(--ease), transform .6s var(--ease);
}
.corretor:hover .corretor__foto img,
.corretor:focus-within .corretor__foto img{ filter:grayscale(0) contrast(1); transform:scale(1.04); }
@media (prefers-reduced-motion: reduce){ .corretor__foto img{ transition:none; } }
.corretor__funcao,.corretor__nome,.corretor__creci,.corretor__contato{ padding-inline:var(--space-3); }
.corretor__funcao{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dourado-soft); margin:0; }
.corretor__nome{ font-family:var(--serif); font-weight:650; font-size:1.35rem; margin:.2rem 0 0; color:var(--creme); }
.corretor__creci{ font-size:.82rem; color:var(--creme-muted); margin:.1rem 0 .6rem; letter-spacing:.02em; }
.corretor__contato{ font-size:.76rem; color:var(--creme-muted); margin:0; line-height:1.6; border-top:1px solid var(--linha); padding-top:.6rem; word-break:break-word; }
.corretor__contato + .corretor__contato{ border-top:none; padding-top:0; margin-top:.1rem; }
.equipe__fecho{
  margin-top:var(--space-5); text-align:center; font-family:var(--serif); font-weight:500;
  font-size:clamp(1.15rem,1rem + .7vw,1.6rem); color:var(--creme-muted);
}
@media (max-width:860px){ .equipe__grid{ grid-template-columns:1fr; } }

/* ==========================================================================
   SLIDE 5 · OBJETIVO
   ========================================================================== */
.objetivo__headline{ font-size:clamp(2rem,1.5rem + 2.4vw,3.4rem); margin-top:var(--space-2); }
.editorial-bg--objetivo img{ object-position:60% 65%; filter:grayscale(.45) sepia(.14) brightness(.46) contrast(1.15); }
.editorial-bg--objetivo::after{
  background:linear-gradient(180deg, rgba(27,12,19,.52) 0%, rgba(27,12,19,.58) 38%, rgba(27,12,19,.7) 100%);
}
.metas{ margin-top:var(--space-6); display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-4); }
.meta{ border-top:1px solid var(--linha-forte); padding-top:var(--space-3); }
.meta__num{ font-size:2.6rem; display:block; margin-bottom:.5rem; }
.meta__texto{ font-size:1.2rem; color:var(--creme); margin:0; font-family:var(--sans); }
.meta__texto strong{ color:var(--dourado-soft); font-weight:700; }
.objetivo__legenda{
  margin-top:var(--space-5); font-family:var(--serif); font-weight:500;
  font-size:clamp(1.1rem,1rem + .6vw,1.5rem); color:var(--creme-muted);
}
@media (max-width:760px){ .metas{ grid-template-columns:1fr; gap:var(--space-3); } }

/* ==========================================================================
   SLIDE 6 · TABELA PASSIVA X ATIVA
   ========================================================================== */
.tabela__headline{ font-size:clamp(2rem,1.5rem + 2.4vw,3.4rem); margin-top:var(--space-2); }
.tabela{
  margin-top:var(--space-6);
  display:grid; grid-template-columns:1fr auto 1fr; gap:0 var(--space-4);
}
.tabela__eixo{ width:1px; background:linear-gradient(180deg, transparent, var(--dourado), transparent); }
.tabela__col{ position:relative; padding:var(--space-4) var(--space-3); }
.tabela__col--passiva .editorial-bg img{ object-position:88% 30%; filter:grayscale(1) brightness(.4) contrast(1.05); }
.tabela__col--passiva .editorial-bg::after{ background:rgba(27,12,19,.88); }
.tabela__col--ativa .editorial-bg img{ object-position:15% 65%; filter:grayscale(.1) sepia(.3) brightness(.5) contrast(1.1); }
.tabela__col--ativa .editorial-bg::after{
  background:linear-gradient(135deg, rgba(182,151,99,.28), rgba(27,12,19,.9) 70%);
}
.tabela__titulo{
  position:relative; z-index:1;
  font-family:var(--sans); font-weight:700; font-size:1rem; letter-spacing:.04em;
  text-transform:uppercase; margin:0 0 var(--space-3); padding-bottom:var(--space-2);
  border-bottom:1px solid var(--linha);
}
.tabela__col--passiva .tabela__titulo{ color:var(--creme-muted); }
.tabela__col--ativa .tabela__titulo{ color:var(--dourado); }
.tabela__titulo span{ display:block; font-weight:400; font-size:.78rem; color:var(--creme-muted); text-transform:none; letter-spacing:.02em; margin-top:.2rem; }
.tabela__lista{ position:relative; z-index:1; list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--space-2); }
.tabela__lista li{ font-size:.98rem; line-height:1.5; padding-left:1.4rem; position:relative; }
.tabela__col--passiva .tabela__lista li{ color:var(--creme-muted); }
.tabela__col--passiva .tabela__lista li::before{ content:"–"; position:absolute; left:0; color:var(--creme-muted); opacity:.6; }
.tabela__col--ativa .tabela__lista li{ color:var(--creme); }
.tabela__col--ativa .tabela__lista li::before{ content:"+"; position:absolute; left:0; color:var(--dourado); }
@media (max-width:760px){
  .tabela{ grid-template-columns:1fr; gap:var(--space-4); }
  .tabela__eixo{ width:100%; height:1px; background:linear-gradient(90deg, transparent, var(--dourado), transparent); }
}

/* ==========================================================================
   SLIDE 6 (PPT) · PLANO DE MARKETING — DIAGRAMA RADIAL
   Hub central (logo + "Seu imóvel") com 4 raios conectando os 4 canais,
   nos 4 cantos. SVG desenha as linhas progressivamente no scroll (motor
   --rp, ver js/main.js) e desfaz se o usuário rolar pra cima — mesma
   lógica bidirecional do scrub de --p usado no diagrama da seção
   "curadoria", sem precisar de pin/sticky extra (reveal contínuo,
   função direta da posição do bloco na viewport).
   ========================================================================== */
:root{ --rp:1; }
.marketing__headline{ font-size:clamp(2rem,1.5rem + 2.4vw,3.4rem); margin-top:var(--space-2); }

.radial{
  position:relative;
  margin-top:var(--space-6);
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(168px,18vw,200px) minmax(0,1fr);
  grid-template-rows:auto auto auto;
  grid-template-areas:
    "tl . tr"
    ". hub ."
    "bl . br";
  column-gap:var(--space-4);
  row-gap:var(--space-5);
  align-items:center;
  max-width:1060px;
  margin-inline:auto;
}
.radial__svg{
  position:absolute; inset:0; width:100%; height:100%;
  z-index:0; pointer-events:none; overflow:visible;
}
.radial__ray{
  stroke:var(--dourado); stroke-width:1.5; vector-effect:non-scaling-stroke;
  --local: clamp(0, calc((var(--rp) - var(--from,0)) / (var(--to,1) - var(--from,0))), 1);
  stroke-dasharray:1; stroke-dashoffset:calc(1 - var(--local));
  opacity:calc(var(--local) * .85);
  transition:stroke-dashoffset .25s linear, opacity .25s linear;
}
html.radiate-enabled .radial__ray{ transition:none; }

.radial__hub{
  grid-area:hub; position:relative; z-index:2; justify-self:center;
  width:clamp(140px,16vw,168px); height:clamp(140px,16vw,168px); border-radius:50%;
  border:1px solid var(--dourado); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem;
  background:linear-gradient(160deg, var(--ameixa-mid), var(--ameixa-deep) 75%),
             radial-gradient(circle at 50% 35%, rgba(182,151,99,.18), transparent 70%);
}
.radial__hub img{ height:28px; width:auto; opacity:.95; }
.radial__hub span{ font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dourado-soft); }

.radial__node{ position:relative; z-index:1; max-width:30ch; }
.radial__node--tl{ grid-area:tl; justify-self:end; text-align:right; }
.radial__node--tr{ grid-area:tr; justify-self:start; text-align:left; }
.radial__node--bl{ grid-area:bl; justify-self:end; text-align:right; }
.radial__node--br{ grid-area:br; justify-self:start; text-align:left; }
.radial__node h3{ font-family:var(--sans); font-weight:700; font-size:1rem; letter-spacing:.02em; margin:0 0 .5rem; color:var(--creme); }
.radial__node p{ font-size:.86rem; color:var(--creme-muted); line-height:1.5; margin:0 0 .6rem; }
.radial__tags{ font-size:.76rem !important; color:var(--dourado-soft) !important; letter-spacing:.02em; }

.radiate{
  --local: clamp(0, calc((var(--rp) - var(--from,0)) / (var(--to,1) - var(--from,0))), 1);
  opacity:var(--local);
  transform:translateY(calc((1 - var(--local)) * 22px));
  transition:opacity .25s linear, transform .25s linear;
}
html.radiate-enabled .radiate{ transition:none; }
@media (prefers-reduced-motion: reduce){
  .radiate,.radial__ray{ transition:none; opacity:1; transform:none; stroke-dashoffset:0; }
}

@media (max-width:860px){
  .radial{
    grid-template-columns:1fr;
    grid-template-areas:"hub" "tl" "tr" "bl" "br";
    row-gap:var(--space-3);
  }
  .radial__svg{ display:none; }
  .radial__hub{ margin-bottom:var(--space-2); }
  .radial__node{ max-width:none; border-top:1px solid var(--linha-forte); padding-top:var(--space-3); }
  .radial__node--tl,.radial__node--tr,.radial__node--bl,.radial__node--br{
    justify-self:stretch; text-align:left;
  }
}

/* ==========================================================================
   SLIDE 8/9 · NÚMEROS HERO (Knight Frank technique)
   ========================================================================== */
.slide--numeros,.slide--custo{ text-align:center; }
.editorial-bg--custo img{ object-position:30% 30%; filter:grayscale(.5) sepia(.12) brightness(.56) contrast(1.15); }
.editorial-bg--custo::after{
  background:linear-gradient(180deg, rgba(27,12,19,.52) 0%, rgba(27,12,19,.46) 42%, rgba(27,12,19,.58) 100%);
}
.editorial-bg--marketing img{ object-position:55% 30%; filter:grayscale(.5) sepia(.12) brightness(.56) contrast(1.15); }
.editorial-bg--marketing::after{
  background:linear-gradient(180deg, rgba(27,12,19,.56) 0%, rgba(27,12,19,.46) 45%, rgba(27,12,19,.6) 100%);
}
.editorial-bg--contato img{ object-position:30% 65%; filter:grayscale(.55) sepia(.12) brightness(.4) contrast(1.15); }
.editorial-bg--contato::after{
  background:linear-gradient(180deg, rgba(27,12,19,.62) 0%, rgba(27,12,19,.52) 50%, rgba(27,12,19,.68) 100%);
}
.editorial-bg--tabela-slide img{ object-position:40% 65%; filter:grayscale(.55) brightness(.4) contrast(1.15); }
.editorial-bg--tabela-slide::after{ background:rgba(27,12,19,.6); }
.numeros__grid{
  position:relative; z-index:1;
  margin-top:var(--space-5);
  display:flex; align-items:center; justify-content:center;
  gap:clamp(1.5rem,5vw,4rem);
  flex-wrap:wrap;
  padding-inline:clamp(1.5rem,5vw,4rem);
}
.numero{ display:flex; flex-direction:column; align-items:center; gap:.8rem; max-width:22rem; }
.numero__valor{
  font-family:var(--serif); font-weight:800;
  font-size:clamp(3.6rem, 2.5rem + 8vw, 9.5rem);
  line-height:.95; color:var(--dourado); letter-spacing:-0.02em;
}
.numero__sinal{ font-family:var(--sans); font-weight:700; font-size:.46em; vertical-align:.38em; letter-spacing:0; margin-right:.05em; color:var(--dourado-soft); }
.numero__legenda{ font-family:var(--sans); font-size:.95rem; color:var(--creme-muted); letter-spacing:.02em; }
.numero__divisor{ width:1px; align-self:stretch; background:var(--linha-forte); min-height:8rem; }
.custo__detalhe{ margin-top:var(--space-5); text-align:center; color:var(--creme-muted); font-size:.98rem; max-width:48ch; margin-inline:auto; }
@media (max-width:760px){ .numero__divisor{ width:60%; height:1px; min-height:0; align-self:center; } }

/* ---- Rede de parceiros · 5 afirmações tratadas como hero tipográfico
   (técnica Knight Frank/The Agency: serifa grande + itálico de ênfase,
   nunca bullet pequeno) — slide 7 do PPT original, "Plano de marketing
   e rede de parceiros" ---- */
.rede{
  margin-top:var(--space-6);
  padding-top:var(--space-4);
  border-top:1px solid var(--linha);
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:var(--space-4) var(--space-3);
  text-align:left;
}
.rede__item{ border-top:1px solid var(--linha-forte); padding-top:var(--space-2); }
.rede__titulo{
  font-size:clamp(1.3rem, 1.05rem + 1vw, 1.9rem);
  font-weight:650; margin:0 0 .5rem; max-width:none;
}
.rede__titulo em{ color:var(--dourado-soft); font-style:italic; }
.rede__texto{ font-family:var(--sans); font-size:.86rem; color:var(--creme-muted); line-height:1.55; margin:0; }
@media (max-width:980px){ .rede{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .rede{ grid-template-columns:1fr; } }

/* ==========================================================================
   SLIDE 10 · EXCLUSIVIDADE
   ========================================================================== */
.exclusividade__grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); min-height:100svh; }
.exclusividade__foto{ margin:0; position:relative; min-height:42vh; }
.exclusividade__foto img{ width:100%; height:100%; object-fit:cover; object-position:60% 50%; }
.exclusividade__foto::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, transparent 60%, var(--ameixa) 100%),
             linear-gradient(0deg, rgba(27,12,19,.35), transparent 40%);
}
.exclusividade__text{ display:flex; flex-direction:column; justify-content:center; gap:var(--space-3); padding:var(--space-6) clamp(1.5rem,6vw,5.5rem); }
.exclusividade__headline{ font-size:clamp(2.2rem,1.6rem + 3.4vw,4.4rem); max-width:16ch; }
.numero--inline{ font-size:1.15em; }
.exclusividade__lista{ list-style:none; margin:var(--space-2) 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:.6rem 1.5rem; }
.exclusividade__lista li{ font-size:.95rem; color:var(--creme-muted); padding-left:1.1rem; position:relative; }
.exclusividade__lista li::before{ content:"·"; position:absolute; left:0; color:var(--dourado); font-weight:700; }
@media (max-width:900px){
  .exclusividade__grid{ grid-template-columns:1fr; }
  .exclusividade__foto{ min-height:50vh; order:-1; }
  .exclusividade__foto::after{ background:linear-gradient(0deg, var(--ameixa) 2%, transparent 40%); }
  .exclusividade__lista{ grid-template-columns:1fr; }
}

/* ==========================================================================
   SLIDE 11 · CONTATO / FECHAMENTO
   ========================================================================== */
.slide--contato{ min-height:100svh; display:flex; align-items:center; }
.contato__wrap{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:var(--space-3); width:100%; }
.contato__logo{ width:250px; height:auto; margin-bottom:var(--space-2); }
.credencial--central{ align-items:center; text-align:center; border-top:none; padding-top:0; max-width:none; }
.credencial--central .credencial__nome{ font-size:1.6rem; }
.contato__wrap .btn{ margin-top:var(--space-3); }
