/* ==========================================================================
   Reserva Salomão — Landing Page de Captação de Investidores
   Design system: paleta institucional + Poppins (substituta de Century Gothic)
   ========================================================================== */

@font-face{
  font-family:'Poppins';
  src:url('../fonts/poppins-300.woff2') format('woff2');
  font-weight:300; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Poppins';
  src:url('../fonts/poppins-400.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Poppins';
  src:url('../fonts/poppins-500.woff2') format('woff2');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Poppins';
  src:url('../fonts/poppins-600.woff2') format('woff2');
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Poppins';
  src:url('../fonts/poppins-700.woff2') format('woff2');
  font-weight:700; font-style:normal; font-display:swap;
}

:root{
  --cor-texto: #2d2a26;
  --cor-fundo: #f7f4f0;
  --cor-fundo-alt: #efe9e1;
  --cor-taupe: #b6ad9e;
  --cor-bege: #b8a48c;
  --cor-medio: #8b7b6b;
  --cor-corpo: #5c5044;      /* texto de corpo com contraste AA garantido (7:1+) */
  --cor-escuro: #211f1b;
  --cor-branco: #ffffff;
  --cor-destaque: #b8a48c;      /* = cor-bege oficial da marca, usada como preenchimento do CTA principal */
  --cor-destaque-hover: #a8926f; /* variação mais escura só para o hover, dentro da mesma família cromática */
  --cor-link: #8b5e34;          /* tom cobre/terracota, com contraste AA (5,6:1+), usado para links dentro de texto corrido */

  --fonte: 'Poppins', 'Century Gothic', 'Avenir Next', -apple-system, sans-serif;

  --container-max: 1180px;
  --gutter: 24px;

  --radius-sm: 6px;
  --radius-md: 14px;
  --radius-lg: 28px;

  --sombra-card: 0 12px 32px -16px rgba(45,42,38,0.25);
  --transicao: 220ms cubic-bezier(.4,0,.2,1);
}

@media (max-width:599px){ :root{ --gutter: 16px; } }

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--fonte);
  color:var(--cor-texto);
  background:var(--cor-fundo);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; font-weight:600; letter-spacing:-0.01em; }
p{ margin:0; }

.container{
  width:100%;
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--cor-escuro); color:#fff; padding:12px 20px;
  border-radius:var(--radius-sm); z-index:1000;
}
.skip-link:focus{ left:16px; top:16px; }

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

.eyebrow{
  display:inline-block;
  font-size:13px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--cor-corpo);
  margin-bottom:14px;
}
section[data-theme="dark"] .eyebrow{ color:var(--cor-bege); }

h2.titulo-secao{
  font-size:clamp(28px, 4vw, 42px);
  line-height:1.15;
  max-width:720px;
  margin-bottom:18px;
}
h2.titulo-italico{ font-style:italic; }
@media (max-width:639px){
  br.quebra-desktop{ display:none; }
  #diferenciais h2.titulo-secao{ text-wrap:balance; }
}
br.quebra-mobile{ display:none; }
@media (max-width:639px){
  br.quebra-mobile{ display:inline; }
  #como-funciona p.lead{ text-wrap:wrap; font-size:15px; }
  #diferenciais p.lead{ text-wrap:wrap; font-size:14px; }
}
p.lead{
  font-size:18px;
  color:var(--cor-corpo);
  max-width:640px;
  line-height:1.7;
  text-wrap:balance;
}
section[data-theme="dark"] p.lead{ color:#d8d0c4; }

.cabecalho-secao{ margin-bottom:48px; }
.cabecalho-secao.centralizado{ text-align:center; margin-inline:auto; }
.cabecalho-secao.centralizado h2, .cabecalho-secao.centralizado p{ margin-inline:auto; }

/* ---------- Botões ---------- */
.botao{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 30px;
  border-radius:999px;
  font-weight:600;
  font-size:15px;
  letter-spacing:0.02em;
  border:1px solid transparent;
  transition:transform var(--transicao), background var(--transicao), box-shadow var(--transicao), border-color var(--transicao);
  white-space:nowrap;
}
@media (max-width:479px){ .botao{ white-space:normal; text-align:center; } }
.botao-primario{
  background:var(--cor-destaque);
  color:var(--cor-texto);
  box-shadow:0 10px 26px -10px rgba(33,31,27,0.4);
}
.botao-primario:hover{ background:var(--cor-destaque-hover); transform:translateY(-2px); box-shadow:0 16px 32px -12px rgba(33,31,27,0.45); }
.botao-secundario{
  background:transparent;
  color:var(--cor-escuro);
  border-color:currentColor;
}
.botao-secundario:hover{ background:rgba(45,42,38,0.06); transform:translateY(-2px); }
section[data-theme="dark"] .botao-secundario{ color:var(--cor-branco); }
section[data-theme="dark"] .botao-secundario:hover{ background:rgba(255,255,255,0.1); }
.botao-whatsapp{
  background:#25D366; color:#fff;
}
.botao-whatsapp:hover{ transform:translateY(-2px); box-shadow:0 12px 26px -10px rgba(37,211,102,0.6); }
.botao-bloco{ width:100%; }
.botao svg{ width:18px; height:18px; flex-shrink:0; }

/* ---------- Header ---------- */
.cabecalho{
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:16px 0;
  background:transparent;
  transition:background var(--transicao), box-shadow var(--transicao), padding var(--transicao);
}
.cabecalho.rolado{
  background:rgba(247,244,240,0.92);
  backdrop-filter:blur(10px);
  box-shadow:0 4px 24px -12px rgba(0,0,0,0.15);
  padding:10px 0;
}
.cabecalho .container{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.marca{ display:flex; align-items:center; gap:10px; }
.marca-icone{ position:relative; width:34px; height:34px; flex-shrink:0; }
.marca-icone img{ position:absolute; inset:0; width:34px; height:34px; transition:opacity var(--transicao); }
.marca-icone .icone-escuro{ opacity:0; }
.cabecalho.rolado .marca-icone .icone-claro{ opacity:0; }
.cabecalho.rolado .marca-icone .icone-escuro{ opacity:1; }
.marca-texto{ font-weight:600; font-size:15px; letter-spacing:0.06em; white-space:nowrap; color:var(--cor-branco); transition:color var(--transicao); }
.cabecalho.rolado .marca-texto{ color:var(--cor-texto); }
@media (max-width:360px){
  .marca-texto{ display:none; }
}

.nav-principal{ display:none; }
.nav-principal ul{ display:flex; gap:32px; }
.nav-principal a{
  font-size:14px; font-weight:500; color:var(--cor-branco);
  transition:color var(--transicao), opacity var(--transicao);
  opacity:0.9;
}
.nav-principal a:hover{ opacity:1; }
.cabecalho.rolado .nav-principal a{ color:var(--cor-texto); }

.cabecalho-acoes{ display:flex; align-items:center; gap:14px; }
.cabecalho-acoes .botao{ padding:12px 22px; font-size:14px; }
@media (max-width:959px){ .cabecalho-acoes .botao{ display:none; } }
.botao-menu{
  display:flex; background:none; border:none; padding:8px; color:var(--cor-branco);
}
.cabecalho.rolado .botao-menu{ color:var(--cor-texto); }
.botao-menu svg{ width:26px; height:26px; }

@media (min-width:960px){
  .nav-principal{ display:block; }
  .botao-menu{ display:none; }
}

/* menu mobile: painel compacto (não tela cheia) deslizando da direita */
.menu-mobile-backdrop{
  position:fixed; inset:0; z-index:299;
  background:rgba(15,13,11,0.5);
  opacity:0; visibility:hidden;
  transition:opacity 280ms ease, visibility 280ms ease;
}
.menu-mobile-backdrop.aberto{ opacity:1; visibility:visible; }
.menu-mobile{
  position:fixed; top:0; right:0; bottom:0; z-index:300;
  width:min(80vw, 300px);
  background:var(--cor-escuro);
  color:#fff;
  display:flex; flex-direction:column;
  padding:20px 18px;
  overflow-y:auto;
  box-shadow:-16px 0 40px -12px rgba(0,0,0,0.4);
  transform:translateX(100%);
  transition:transform 320ms cubic-bezier(.4,0,.2,1);
}
.menu-mobile.aberto{ transform:translateX(0); }
.menu-mobile-topo{ display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
.menu-mobile-topo img{ width:92px; height:auto; }
.menu-mobile-fechar{ background:none; border:none; color:#fff; padding:6px; }
.menu-mobile-fechar svg{ width:20px; height:20px; }
.menu-mobile ul{ display:flex; flex-direction:column; gap:2px; }
.menu-mobile a{ display:block; padding:12px 2px; font-size:16px; font-weight:500; border-bottom:1px solid rgba(255,255,255,0.1); }
.menu-mobile-rodape{ margin-top:24px; display:flex; flex-direction:column; gap:14px; }
.menu-mobile-rodape .botao{ font-size:14px; padding:12px 20px; }
.menu-mobile .botao-secundario{ color:#fff; border-color:rgba(255,255,255,0.3); }
.menu-mobile .botao-secundario:hover{ background:rgba(255,255,255,0.08); }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:88vh;
  display:flex;
  align-items:flex-end;
  padding-top:96px;
  padding-bottom:64px;
  color:var(--cor-branco);
  overflow:hidden;
}
.hero-imagem{ position:absolute; inset:0; z-index:0; }
.hero-imagem img{ width:100%; height:100%; object-fit:cover; object-position:center 65%; }
.hero-imagem::after{
  content:"";
  position:absolute; inset:0;
  /* Overlay reforçado (duas camadas) para garantir leitura em qualquer monitor,
     independentemente do brilho da foto de fundo. */
  background:
    linear-gradient(100deg, rgba(12,10,8,0.86) 0%, rgba(12,10,8,0.62) 45%, rgba(12,10,8,0.30) 75%),
    linear-gradient(180deg, rgba(15,13,11,0.35) 0%, rgba(15,13,11,0.30) 40%, rgba(10,9,7,0.92) 100%);
}
.hero-conteudo{
  position:relative; z-index:1;
  width:100%;
}
.hero-texto{ max-width:1020px; }
.hero h1{
  font-size:clamp(34px, 5.4vw, 60px);
  line-height:1.1;
  margin-bottom:22px;
}
.hero p.lead{ color:#eee7dc; margin-bottom:24px; }
.hero .lead strong{ color:#fff; }

.hero-beneficios{ display:flex; flex-direction:column; gap:12px; margin-bottom:26px; }
.hero-beneficios li{ display:flex; gap:12px; align-items:flex-start; font-size:15px; color:#eee7dc; }
.hero-beneficios svg{ width:20px; height:20px; flex-shrink:0; color:var(--cor-bege); margin-top:2px; }

.hero-ctas{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:18px; }
.hero-nota{ font-size:13px; color:#cfc4b2; }


.scroll-indicador{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  z-index:1; color:#fff; opacity:0.75;
  animation:flutuar 2.2s ease-in-out infinite;
}
@keyframes flutuar{ 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,8px);} }

/* ---------- Estatísticas (usadas só na seção Grupo Salomão, fundo claro) ---------- */
.stat-numero{
  font-size:clamp(24px,3vw,34px);
  font-weight:700;
  color:var(--cor-texto);
  display:block;
}
.stat-legenda{ font-size:13px; color:var(--cor-corpo); letter-spacing:0.02em; }

/* ---------- Seções genéricas ---------- */
.secao{ padding:88px 0; }
.secao[data-theme="dark"]{ background:var(--cor-escuro); color:#fff; }
.secao-alt{ background:var(--cor-fundo-alt); }

/* Oportunidade (texto + destaques) */
.grade-oportunidade{
  display:grid; gap:40px;
  grid-template-columns:1fr;
}
@media (min-width:900px){
  .grade-oportunidade{ grid-template-columns:1.1fr 0.9fr; align-items:start; }
}
.lista-destaques{ display:flex; flex-direction:column; gap:20px; }
.destaque-item{
  display:flex; gap:16px; align-items:flex-start;
  background:var(--cor-branco);
  border:1px solid rgba(45,42,38,0.08);
  border-radius:var(--radius-md);
  padding:20px 22px;
}
.destaque-item .icone{
  flex-shrink:0; width:44px; height:44px; border-radius:50%;
  background:var(--cor-fundo-alt);
  display:flex; align-items:center; justify-content:center;
  color:var(--cor-texto);
}
.destaque-item .icone svg{ width:22px; height:22px; }
.destaque-item h3{ font-size:16px; margin-bottom:4px; }
.destaque-item p{ font-size:15px; color:var(--cor-corpo); }

/* ---------- Diferenciais / Cards com imagem ---------- */
.grade-diferenciais{
  display:grid; gap:24px;
  grid-template-columns:repeat(1,1fr);
}
@media (min-width:640px){ .grade-diferenciais{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .grade-diferenciais{ grid-template-columns:repeat(3,1fr); } }

.card-diferencial{
  background:var(--cor-branco);
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--sombra-card);
  transition:transform var(--transicao), box-shadow var(--transicao);
}
.card-diferencial:hover{ transform:translateY(-6px); }
.card-diferencial .imagem{ position:relative; aspect-ratio:5/4; overflow:hidden; cursor:zoom-in; }
.card-diferencial .imagem img{ width:100%; height:100%; object-fit:cover; transition:transform 500ms ease; }
.card-diferencial:hover .imagem img{ transform:scale(1.06); }
.card-diferencial .corpo{ padding:22px 22px 26px; }
.card-diferencial h3{ font-size:17px; margin-bottom:8px; }
.card-diferencial p{ font-size:15px; color:var(--cor-corpo); line-height:1.6; }

/* ==========================================================================
   MASTERPLAN ÉPICO — seção animada estilo Apple, diagrama com callouts
   ========================================================================== */
.secao-masterplan-epico{ background:var(--cor-escuro); color:#fff; overflow:hidden; }
.secao-masterplan-epico .container{ max-width:1760px; }
.secao-masterplan-epico .cabecalho-secao{ max-width:720px; }
.titulo-monumental{ font-size:clamp(34px,5.2vw,58px); line-height:1.08; letter-spacing:-0.01em; }
.secao-masterplan-epico p.lead{ color:#d9d0c2; }

.masterplan-palco{
  position:relative;
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  margin:56px 0 44px;
}
@media (min-width:1180px){
  .masterplan-palco{ grid-template-columns:250px 1fr 250px; align-items:stretch; gap:18px; }
}
@media (min-width:1500px){
  .masterplan-palco{ grid-template-columns:270px 1fr 270px; gap:28px; }
}

.masterplan-linhas-svg-wrap{ position:absolute; inset:0; z-index:2; pointer-events:none; }
@media (min-width:1180px){
  .masterplan-linhas-svg-wrap{ grid-column:1/-1; grid-row:1; }
}
.masterplan-linhas{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.masterplan-linhas line{
  stroke:var(--cor-bege); stroke-width:1.3; opacity:0.85;
  transition:stroke-dashoffset 550ms ease-out, stroke-width 200ms ease, opacity 200ms ease;
}
.masterplan-linhas line.ativa{ stroke-width:2; opacity:1; }

.masterplan-imagem-caixa{
  position:relative;
  grid-column:2; grid-row:1;
  aspect-ratio:1342/950;
  opacity:0; transform:scale(0.93);
  transition:opacity 900ms ease, transform 900ms ease;
}
.masterplan-palco.revelado .masterplan-imagem-caixa{ opacity:1; transform:scale(1); }
.masterplan-imagem{
  width:100%; height:100%; object-fit:contain; display:block;
  /* sombra segue a forma real (transparente) da imagem, em vez de um retângulo atrás dela */
  filter:drop-shadow(0 22px 38px rgba(0,0,0,0.5));
  transform-origin:52% 48%;
}
/* Respiração contínua e sutil, começa só depois que a entrada assenta */
.masterplan-palco.revelado .masterplan-imagem{
  animation:masterplan-respirar 22s ease-in-out 1.4s infinite alternate;
}
@keyframes masterplan-respirar{
  from{ transform:scale(1); }
  to{ transform:scale(1.035); }
}

/* Alvo: ponto exato de chegada de cada linha na imagem + onda de impacto */
.masterplan-alvo{
  position:absolute; width:0; height:0; pointer-events:none;
}
.masterplan-alvo::before, .masterplan-alvo::after{
  content:""; position:absolute; left:0; top:0;
  border-radius:50%; border:1.3px solid var(--cor-bege);
  width:10px; height:10px; margin:-5px 0 0 -5px;
  opacity:0;
}
.masterplan-alvo.tocou::before{
  animation:masterplan-onda 850ms cubic-bezier(.2,.7,.3,1) forwards;
}
.masterplan-alvo.tocou::after{
  animation:masterplan-onda 850ms cubic-bezier(.2,.7,.3,1) 140ms forwards;
}
@keyframes masterplan-onda{
  0%{ opacity:0.9; transform:scale(0.3); }
  100%{ opacity:0; transform:scale(3.2); }
}

.masterplan-legenda{ display:flex; flex-direction:column; justify-content:space-evenly; gap:30px; }
.masterplan-legenda--esquerda{ grid-column:1; grid-row:1; }
.masterplan-legenda--direita{ grid-column:3; grid-row:1; }
.masterplan-legenda-item{
  display:flex; align-items:flex-start; gap:14px;
  cursor:pointer;
  opacity:0; transform:translateY(10px);
  transition:opacity 480ms ease, transform 480ms ease;
}
.masterplan-palco.revelado .masterplan-legenda-item{ opacity:1; transform:translateY(0); }
.masterplan-legenda-icone{
  flex-shrink:0; width:52px; height:52px;
  border:1.4px solid var(--cor-bege);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:background 200ms ease;
}
.masterplan-legenda-icone svg{ width:24px; height:24px; color:var(--cor-bege); }
.masterplan-legenda-item.ativo .masterplan-legenda-icone{ background:rgba(184,164,140,0.18); }
.masterplan-legenda-item h3{
  font-size:13.5px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase;
  color:#fff; margin-bottom:5px; line-height:1.3; transition:color 200ms ease;
}
.masterplan-legenda-item.ativo h3{ color:var(--cor-bege); }
.masterplan-legenda-item p{ font-size:13.5px; font-weight:300; color:#c9c0b3; line-height:1.5; }

@media (max-width:1179px){
  .masterplan-linhas-svg-wrap{ display:none; }
  .masterplan-imagem-caixa{ grid-column:1; grid-row:auto; }
  .masterplan-legenda{ grid-column:1; grid-row:auto; flex-direction:column; gap:22px; }
  .masterplan-legenda-item{
    opacity:1 !important; transform:none !important;
    padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,0.1);
  }
}

.masterplan-tagline{
  text-align:center; max-width:760px; margin:8px auto 44px;
  font-size:16px; color:#e4dcce; line-height:1.6;
  text-wrap:balance;
}

.tira-icones--escura{ border-top-color:rgba(255,255,255,0.12); }
.tira-icones--escura .icone-item .icone{ background:rgba(255,255,255,0.08); }
.tira-icones--escura .icone-item .icone svg{ color:var(--cor-bege); }
.tira-icones--escura .icone-item h4{ color:#fff; }
.tira-icones--escura .icone-item p{ color:#bdb2a0; }
/* especificidade dupla para garantir prioridade sobre a regra genérica .tira-icones de 4 colunas */
@media (min-width:860px){ .tira-icones.tira-icones--escura{ grid-template-columns:repeat(5,1fr); } }

.tira-icones{
  margin-top:36px;
  display:grid; gap:20px;
  grid-template-columns:repeat(2,1fr);
  padding-top:36px;
  border-top:1px solid rgba(45,42,38,0.1);
}
@media (min-width:768px){ .tira-icones{ grid-template-columns:repeat(4,1fr); } }
.icone-item{ text-align:center; padding:0 8px; }
.icone-item .icone{
  width:56px; height:56px; margin:0 auto 14px;
  border-radius:50%; background:var(--cor-fundo-alt);
  display:flex; align-items:center; justify-content:center;
}
.icone-item .icone svg{ width:26px; height:26px; color:var(--cor-corpo); }
.icone-item h4{ font-size:14px; font-weight:600; margin-bottom:4px; }
.icone-item p{ font-size:12.5px; color:var(--cor-corpo); }

/* No mobile os itens viram cards em um carrossel horizontal: 2 inteiros
   visíveis + metade do 3º como indicativo de que dá pra rolar. */
@media (max-width:767px){
  .tira-icones{
    display:grid; grid-auto-flow:column; grid-auto-columns:40%;
    grid-template-columns:none;
    overflow-x:auto; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
    touch-action:pan-x;
    margin-left:calc(var(--gutter) * -1); margin-right:calc(var(--gutter) * -1);
    padding-left:var(--gutter); padding-right:var(--gutter); padding-bottom:6px;
    scrollbar-width:none;
  }
  .tira-icones::-webkit-scrollbar{ display:none; }
  .icone-item{
    scroll-snap-align:start;
    background:var(--cor-branco); border-radius:var(--radius-md);
    padding:20px 12px; box-shadow:var(--sombra-card);
  }
  .tira-icones--escura .icone-item{
    background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1);
    box-shadow:none;
  }
}

/* ---------- Como funciona (passos) ---------- */
.trilha-passos{
  display:grid; gap:28px;
  grid-template-columns:1fr;
  counter-reset:passo;
}
@media (min-width:860px){ .trilha-passos{ grid-template-columns:repeat(4,1fr); } }
.passo{ position:relative; padding-top:8px; }
.passo-numero{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%;
  background:var(--cor-escuro); color:var(--cor-bege);
  font-weight:700; font-size:16px; margin-bottom:18px;
}
.passo h3{ font-size:16px; margin-bottom:8px; }
.passo p{ font-size:15px; color:var(--cor-corpo); }
@media (max-width:859px){
  .passo{ text-align:center; }
  .passo-numero{ margin-left:auto; margin-right:auto; }
}

/* ---------- Localização ---------- */
.grade-localizacao{ display:flex; flex-direction:column; gap:32px; }
.grade-localizacao > *{ min-width:0; }
.endereco-caixa h3{ font-size:16px; margin-bottom:6px; }
.endereco-caixa p{ color:var(--cor-corpo); font-size:14.5px; }
.lista-distancias{ display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; }
.lista-distancias > *{ min-width:0; }
@media (max-width:639px){ .lista-distancias{ grid-template-columns:1fr; } }
@media (min-width:960px){ .lista-distancias{ grid-template-columns:repeat(3,1fr); } }
.item-distancia{ display:flex; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px dashed rgba(45,42,38,0.14); font-size:15px; }
.item-distancia span:last-child{ color:var(--cor-corpo); text-align:right; white-space:nowrap; }
.mapa-caixa{
  position:relative; overflow:hidden; cursor:zoom-in;
  border-radius:var(--radius-lg);
  filter:drop-shadow(0 14px 30px rgba(45,42,38,0.28));
}
.mapa-caixa img{ width:100%; height:auto; display:block; }
/* ---------- Grupo Salomão (seção clara, alterna com o clímax escuro logo abaixo) ---------- */
.grade-grupo{ display:grid; gap:44px; grid-template-columns:1fr; align-items:start; }
@media (max-width:959px){ .grupo-midia{ order:-1; } }
@media (min-width:960px){ .grade-grupo{ grid-template-columns:1.05fr 0.95fr; } }
.grupo-midia{ display:flex; flex-direction:column; gap:16px; }
.grupo-imagem{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--sombra-card); aspect-ratio:4/3.2; cursor:zoom-in;
}
.grupo-imagem img{ width:100%; height:100%; object-fit:cover; }
.grupo-galeria{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.grupo-galeria-item{
  position:relative; border-radius:var(--radius-md); overflow:hidden;
  box-shadow:var(--sombra-card); aspect-ratio:1/1; cursor:zoom-in;
  transition:transform 0.3s ease;
}
.grupo-galeria-item:hover{ transform:translateY(-4px); }
.grupo-galeria-item img{ width:100%; height:100%; object-fit:cover; display:block; }
.grade-stats-grupo{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:32px; }
@media (min-width:480px){ .grade-stats-grupo{ grid-template-columns:repeat(4,1fr); } }
@media (min-width:960px){ .grade-stats-grupo{ grid-template-columns:repeat(2,1fr); max-width:360px; } }

/* ---------- Oportunidade para investidores (climax) ---------- */
.secao-climax{ position:relative; color:#fff; overflow:hidden; }
.secao-climax .fundo{ position:absolute; inset:0; z-index:0; }
.secao-climax .fundo img{ width:100%; height:100%; object-fit:cover; }
.secao-climax .fundo::after{ content:""; position:absolute; inset:0; background:rgba(15,13,11,0.82); }
.secao-climax .container{ position:relative; z-index:1; }

/* Barra de escassez real: $cotas_reservadas é mantido manualmente pelo
   cliente em index.php conforme cotas forem vendidas (sem prazos falsos). */
.barra-escassez{ margin:32px 0 8px; max-width:540px; }
.barra-escassez-topo{ display:flex; justify-content:space-between; gap:12px; font-size:14.5px; font-weight:600; color:#f2ede4; margin-bottom:10px; }
.barra-escassez-topo span:last-child{ color:var(--cor-bege); }
.barra-escassez-trilha{ height:12px; border-radius:999px; background:rgba(255,255,255,0.15); overflow:hidden; }
.barra-escassez-preenchimento{ height:100%; background:var(--cor-bege); border-radius:999px; }

.pilares-climax{ display:grid; gap:24px; grid-template-columns:1fr; margin-top:28px; }
@media (min-width:860px){ .pilares-climax{ grid-template-columns:repeat(2,1fr); } }
.pilar{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:var(--radius-md);
  padding:28px 24px;
  backdrop-filter:blur(4px);
}
.pilar .numero-grande{ font-size:38px; font-weight:700; color:var(--cor-bege); display:block; margin-bottom:10px; }
.pilar h3{ font-size:17px; margin-bottom:10px; color:#fff; }
.pilar p{ font-size:14px; color:#d9d0c2; }
.climax-cta{ margin-top:44px; display:flex; flex-wrap:wrap; gap:16px; }

/* ---------- CTA de seção (presente em toda seção, leva ao formulário) ---------- */
.secao-cta{ margin-top:48px; text-align:center; }
.secao-cta.alinhado-esquerda{ text-align:left; }

/* ---------- FAQ ---------- */
.lista-faq{ max-width:820px; margin-inline:auto; display:flex; flex-direction:column; gap:14px; }
.faq-item{ background:var(--cor-branco); border-radius:var(--radius-md); border:1px solid rgba(45,42,38,0.08); overflow:hidden; }
.faq-pergunta{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:none; border:none; text-align:left;
  padding:20px 24px; font-size:16px; font-weight:500; color:var(--cor-texto);
}
.faq-pergunta .sinal{ flex-shrink:0; width:22px; height:22px; position:relative; }
.faq-pergunta .sinal::before, .faq-pergunta .sinal::after{
  content:""; position:absolute; background:var(--cor-texto);
  top:50%; left:50%; transform:translate(-50%,-50%);
  transition:transform var(--transicao), opacity var(--transicao);
}
.faq-pergunta .sinal::before{ width:14px; height:2px; }
.faq-pergunta .sinal::after{ width:2px; height:14px; }
.faq-item[data-aberto="true"] .sinal::after{ transform:translate(-50%,-50%) rotate(90deg); opacity:0; }
.faq-resposta{ max-height:0; overflow:hidden; transition:max-height 320ms ease; }
.faq-resposta-inner{ padding:0 24px 22px; color:var(--cor-corpo); font-size:14.5px; line-height:1.7; }
.faq-resposta-inner a{ color:var(--cor-link); font-weight:600; text-decoration:underline; }
.faq-resposta-inner a:hover{ color:var(--cor-escuro); }

/* ---------- CTA final + Formulário ---------- */
.secao-form{ background:var(--cor-escuro); color:#fff; }
.grade-form{ display:grid; gap:48px; grid-template-columns:1fr; }
@media (min-width:960px){ .grade-form{ grid-template-columns:0.9fr 1.1fr; align-items:start; } }
.form-lista-beneficios{ display:flex; flex-direction:column; gap:16px; margin-top:28px; }
.form-lista-beneficios li{ display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:#dcd3c5; }
.form-lista-beneficios svg{ width:20px; height:20px; flex-shrink:0; color:var(--cor-bege); margin-top:2px; }

.cartao-form{
  background:var(--cor-fundo);
  color:var(--cor-texto);
  border-radius:var(--radius-lg);
  padding:36px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);
}
.campo{ margin-bottom:18px; }
.campo label{ display:block; font-size:13.5px; font-weight:600; margin-bottom:7px; }
.campo input, .campo select, .campo textarea{
  width:100%; padding:13px 15px; font-family:inherit; font-size:15px;
  border:1.5px solid rgba(45,42,38,0.18); border-radius:var(--radius-sm);
  background:#fff; color:var(--cor-texto);
  transition:border-color var(--transicao);
}
.campo input:focus, .campo select:focus, .campo textarea:focus{ border-color:var(--cor-corpo); }
.campo-linha{ display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width:560px){ .campo-linha{ grid-template-columns:1fr 1fr; } }
.campo-consentimento{ display:flex; gap:10px; align-items:flex-start; font-size:12.5px; color:var(--cor-corpo); margin-bottom:20px; }
.campo-consentimento input{ margin-top:3px; width:16px; height:16px; flex-shrink:0; }
.campo-consentimento a{ color:var(--cor-link); font-weight:600; text-decoration:underline; }
.campo-consentimento a:hover{ color:var(--cor-escuro); }
.campo-erro{ font-size:12.5px; color:#b3261e; margin-top:5px; display:none; }
.campo.invalido input, .campo.invalido select, .campo.invalido textarea{ border-color:#b3261e; }
.campo.invalido .campo-erro{ display:block; }
.form-honeypot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-mensagem-status{
  margin-top:16px; padding:14px 16px; border-radius:var(--radius-sm); font-size:14px; display:none;
}
.form-mensagem-status.sucesso{ display:block; background:#e4f3e8; color:#1c6b34; }
.form-mensagem-status.erro{ display:block; background:#fbe7e6; color:#8a2b23; }

/* ---------- Footer ---------- */
.rodape{ background:#181613; color:#c9c0b3; padding:64px 0 28px; }
.rodape-grade{ display:grid; gap:40px; grid-template-columns:1fr; margin-bottom:48px; }
@media (min-width:860px){ .rodape-grade{ grid-template-columns:1.4fr 1fr 1fr; } }
.rodape-marca img{ width:150px; height:auto; margin-bottom:16px; }
.rodape-marca p{ font-size:13.5px; line-height:1.7; max-width:320px; color:#a89e8f; }
.rodape h4{ color:#fff; font-size:14px; margin-bottom:16px; letter-spacing:0.04em; text-transform:uppercase; }
.rodape ul{ display:flex; flex-direction:column; gap:10px; }
.rodape a, .rodape .link-rodape{ font-size:14px; color:#c9c0b3; transition:color var(--transicao); }
.rodape .link-rodape{ background:none; border:none; padding:0; font-family:inherit; cursor:pointer; text-align:left; }
.rodape a:hover, .rodape .link-rodape:hover{ color:#fff; }
.rodape-social{ display:flex; gap:12px; margin-top:16px; }
.rodape-social a, .rodape-social button{ width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,0.08); border:none; color:inherit; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.rodape-social svg{ width:18px; height:18px; }
.rodape-base{ border-top:1px solid rgba(255,255,255,0.1); padding-top:24px; font-size:12px; color:#8a8175; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; }
.rodape-disclaimer{ font-size:11px; font-style:italic; color:#a8a196; max-width:900px; line-height:1.6; margin-bottom:20px; }

/* ---------- Botão flutuante WhatsApp ---------- */
.whatsapp-flutuante{
  position:fixed; right:20px; bottom:28px; z-index:160;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; border:none; padding:0;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px -8px rgba(37,211,102,0.6);
  transition:transform var(--transicao), box-shadow var(--transicao);
}
.whatsapp-flutuante:hover{ transform:scale(1.08); box-shadow:0 12px 30px -6px rgba(37,211,102,0.7); }
.whatsapp-flutuante svg{ width:28px; height:28px; }
@media (max-width:959px){ .whatsapp-flutuante{ bottom:20px; right:16px; width:50px; height:50px; } }

/* ---------- Efeito de entrada ao rolar (aplicado via JS) ---------- */
.reveal{
  opacity:0; transform:translateY(26px);
  transition:opacity 650ms cubic-bezier(.16,.84,.44,1), transform 650ms cubic-bezier(.16,.84,.44,1);
}
.reveal.visivel{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* ---------- Lightbox (imagens do masterplan) ---------- */
.lightbox{
  position:fixed; inset:0; z-index:500;
  background:rgba(12,10,8,0.94);
  display:flex; align-items:center; justify-content:center;
  padding:32px 20px;
  opacity:0; visibility:hidden;
  transition:opacity 220ms ease;
}
.lightbox.aberto{ opacity:1; visibility:visible; }
.lightbox-conteudo{ max-width:min(1100px,92vw); margin:0; text-align:center; }
.lightbox-conteudo img{ max-width:100%; max-height:78vh; width:auto; border-radius:var(--radius-md); margin:0 auto; display:block; }
.lightbox-conteudo figcaption{ color:#e4dcce; font-size:13.5px; margin-top:16px; }
.lightbox-fechar{
  position:absolute; top:20px; right:20px; z-index:1;
  background:rgba(255,255,255,0.12); border:none; color:#fff;
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.lightbox-fechar:hover{ background:rgba(255,255,255,0.22); }
.lightbox-fechar svg{ width:20px; height:20px; }

/* ---------- Modal WhatsApp (formulário pré-WhatsApp) ---------- */
.modal-whatsapp{
  position:fixed; inset:0; z-index:600;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  opacity:0; visibility:hidden;
  transition:opacity 220ms ease;
}
.modal-whatsapp.aberto{ opacity:1; visibility:visible; }
.modal-whatsapp-overlay{ position:absolute; inset:0; background:rgba(12,10,8,0.68); backdrop-filter:blur(2px); }
.modal-whatsapp-conteudo{
  position:relative; z-index:1;
  width:100%; max-width:400px;
  background:var(--cor-fundo);
  border-radius:var(--radius-lg);
  padding:36px 30px 30px;
  text-align:center;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);
  transform:translateY(12px) scale(0.98);
  transition:transform 220ms ease;
}
.modal-whatsapp.aberto .modal-whatsapp-conteudo{ transform:translateY(0) scale(1); }
.modal-whatsapp-fechar{
  position:absolute; top:16px; right:16px;
  background:var(--cor-fundo-alt); border:none; color:var(--cor-texto);
  width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.modal-whatsapp-fechar svg{ width:18px; height:18px; }
.modal-whatsapp-icone{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; margin:0 auto 16px;
  border-radius:50%; background:#25D366; color:#fff;
}
.modal-whatsapp-icone svg{ width:28px; height:28px; }
.modal-whatsapp-conteudo h2{ font-size:19px; margin-bottom:8px; }
.modal-whatsapp-sub{ font-size:14px; color:var(--cor-corpo); margin-bottom:22px; }
.modal-whatsapp-conteudo .campo{ text-align:left; margin-bottom:12px; }
.modal-whatsapp-conteudo .campo-consentimento{ text-align:left; font-size:11.5px; }

/* ---------- Utilidades ---------- */
.visualmente-oculto{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
