/* ============================================================
   LUA NOVA — Design System "Do Sol à Lua Nova"
   Cabanas Lua Nova · Serra da Mantiqueira
   ------------------------------------------------------------
   Conceito: cada página nasce na luz da manhã e anoitece
   conforme o scroll. Componentes são escritos UMA vez contra
   aliases semânticos (--bg, --fg, --ac...) e funcionam nas
   duas zonas (.zona-luz / .zona-noite).
   Guia de uso: ver DESIGN.md e styleguide.html
   ============================================================ */

/* ------------------------------------------------------------
   1. TOKENS
   ------------------------------------------------------------ */
:root{
    /* --- paleta bruta (derivada das fotos reais) --- */
    --luz:#EDE9DF;          /* luz da manhã / linho quente */
    --luz-2:#E3DECF;        /* sombra na parede clara */
    --tinta:#23261F;        /* off-black esverdeado (texto no claro) */
    --tinta-2:#5B6055;      /* texto secundário no claro */
    --noite:#0E141A;        /* céu 21h no vale */
    --noite-2:#141C24;      /* variação da noite */
    --noite-3:#0A0F14;      /* madrugada (footer) */
    --mata:#2A3630;         /* verde-telhado */
    --cumaru:#B5773C;       /* madeira ao sol (acento na luz) */
    --ambar:#D9A05B;        /* luz Edison acesa (acento na noite) */
    --areia:#DAD4C4;        /* texto sobre a noite */
    --areia-2:#97A097;      /* texto secundário sobre a noite */
    --branco-quente:#F6F2E8;/* headings sobre foto/noite */
    --hair-luz:rgba(35,38,31,.16);
    --hair-noite:rgba(218,212,196,.16);

    /* --- aliases semânticos (default = zona luz) --- */
    --bg:var(--luz);
    --fg:var(--tinta);
    --fg-2:var(--tinta-2);
    --fg-strong:var(--tinta);
    --hair:var(--hair-luz);
    --ac:var(--ac-luz);          /* acento vivo na zona atual */

    /* --- acento por propriedade (default: marca/âmbar) --- */
    --ac-noite:#D9A05B;          /* sobre fundo escuro */
    --ac-luz:#8D5A2B;            /* sobre fundo claro (mais fundo p/ contraste AA) */

    /* --- tipografia --- */
    --serif:"Fraunces",Georgia,serif;
    --sans:"Albert Sans",system-ui,sans-serif;
    --t-display:clamp(2.7rem,8.4vw,6.2rem);   /* hero home */
    --t-1:clamp(2.2rem,5.4vw,4rem);           /* hero interno / cta final */
    --t-2:clamp(2rem,4.6vw,3.4rem);           /* título de seção */
    --t-3:clamp(1.6rem,3.4vw,2.3rem);         /* subtítulo / painel */
    --t-4:1.25rem;                            /* título de card */
    --t-display-st:clamp(1.7rem,4.2vw,3rem);  /* statement/manifesto */
    --t-body:1.0625rem;
    --t-small:.9rem;
    --t-tiny:.78rem;
    --t-eyebrow:.6875rem;

    /* --- espaço e ritmo --- */
    --pad:clamp(20px,5vw,48px);               /* respiro lateral */
    --sec:clamp(84px,13vw,180px);             /* respiro entre seções */
    --s1:8px; --s2:14px; --s3:22px; --s4:34px;
    --s5:clamp(40px,6vw,80px);
    --wrap:1240px;
    --prose:62ch;

    /* --- movimento --- */
    --ease:cubic-bezier(.22,1,.36,1);
    --dur-1:.35s;   /* micro (hover) */
    --dur-2:.9s;    /* reveal */
    --dur-3:1.2s;   /* imagem/cena */

    /* --- camadas --- */
    --z-grain:40;
    --z-nav:60;
    --z-zap:70;
    --z-lightbox:100;
}

/* --- zonas: o mecanismo central do sistema --- */
.zona-luz{
    --bg:var(--luz); --fg:var(--tinta); --fg-2:var(--tinta-2);
    --fg-strong:var(--tinta); --hair:var(--hair-luz); --ac:var(--ac-luz);
    background:var(--bg); color:var(--fg);
}
.zona-noite{
    --bg:var(--noite); --fg:var(--areia); --fg-2:var(--areia-2);
    --fg-strong:#EFEAD9; --hair:var(--hair-noite); --ac:var(--ac-noite);
    background:var(--bg); color:var(--fg);
}
/* tema em elemento aninhado (ex.: card na Home): recalcula --ac com o
   --ac-luz/--ac-noite do próprio elemento. (Mesmo-elemento já funciona
   pela regra de zona acima.) */
.zona-luz [data-tema]{ --ac:var(--ac-luz); }
.zona-noite [data-tema]{ --ac:var(--ac-noite); }

/* --- temas por propriedade: só o acento muda ---
   Aplicar no <body> (página da propriedade) ou no card (Home). */
[data-tema="solaris"]{ --ac-noite:#D9A05B; --ac-luz:#8D5A2B; }  /* sol / âmbar */
[data-tema="sirius"] { --ac-noite:#9FB6C6; --ac-luz:#4A6674; }  /* estrela azul-branca */
[data-tema="chale"]  { --ac-noite:#BFC8BA; --ac-luz:#5D6B58; }  /* prata-lua na mata */
[data-tema="studio"] { --ac-noite:#8FA98F; --ac-luz:#4E6B4E; }  /* verde-rio */
[data-tema="ceuazul"]{ --ac-noite:#7FA3B8; --ac-luz:#3F6377; }  /* céu de Itaipava */
[data-tema="orion"]  { --ac-noite:#A99AB8; --ac-luz:#635473; }  /* nebulosa */

/* ------------------------------------------------------------
   2. BASE
   ------------------------------------------------------------ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    background:var(--bg,var(--luz));
    color:var(--fg,var(--tinta));
    font-family:var(--sans);
    font-size:var(--t-body);
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
}
::selection{background:var(--ambar);color:var(--noite)}
img,video{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--ac,var(--ambar));outline-offset:3px}
button{font-family:inherit}

h1,h2,h3,.display{
    font-family:var(--serif);
    font-weight:500;line-height:1.08;letter-spacing:-.015em;
    text-wrap:balance;
    color:var(--fg-strong,inherit);
}
.em{font-style:italic;font-weight:400}

/* grain de filme — unifica fotos de câmeras diferentes */
.grain{
    position:fixed;inset:-50%;width:200%;height:200%;
    pointer-events:none;z-index:var(--z-grain);opacity:.035;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* tratamento padrão de foto (consistência entre câmeras) */
.foto{filter:saturate(.96) contrast(1.03)}

/* ------------------------------------------------------------
   3. UTILITÁRIOS
   ------------------------------------------------------------ */
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.prose{max-width:var(--prose)}
.eyebrow{
    font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.22em;
    text-transform:uppercase;color:var(--fg-2);
}
.zona-noite .eyebrow{color:var(--ac)}
.eyebrow--ac{color:var(--ac)}

/* reveal on scroll — uma vez, lento */
.rv{opacity:0;transform:translateY(18px);transition:opacity var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}
.rv.on{opacity:1;transform:none}

/* seção padrão */
.sec{padding:var(--sec) 0}
.sec--meio{padding:calc(var(--sec)*.7) 0}
.sec--fim{padding:0 0 var(--sec)}

/* ------------------------------------------------------------
   4. COMPONENTES
   ------------------------------------------------------------ */

/* ---------- NAV ---------- */
.nav{
    position:fixed;inset:0 0 auto 0;z-index:var(--z-nav);
    transition:background .5s var(--ease),border-color .5s var(--ease);
    border-bottom:1px solid transparent;
}
.nav__in{
    max-width:var(--wrap);margin-inline:auto;padding:14px var(--pad);
    display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.nav__brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.nav__brand img{height:40px;width:40px;border-radius:50%}
.nav__brand span{
    font-family:var(--serif);font-size:1.05rem;letter-spacing:.02em;
    color:#F3EFE5;transition:color .5s;white-space:nowrap;
}
.nav__links{display:none;align-items:center;gap:28px;list-style:none}
.nav__links a{
    font-size:var(--t-tiny);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:rgba(243,239,229,.85);text-decoration:none;
    transition:color .4s;min-height:44px;display:inline-flex;align-items:center;
}
.nav__links a:hover,.nav__links a[aria-current="page"]{color:var(--ambar)}
.nav__cta{
    display:none;align-items:center;min-height:44px;
    font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    color:#F3EFE5;text-decoration:none;border-bottom:1px solid rgba(243,239,229,.5);
    transition:color .4s,border-color .4s;white-space:nowrap;
}
.nav__cta:hover{border-color:var(--ambar);color:var(--ambar)}

/* dropdown "Cabanas" */
.nav__drop{position:relative}
.nav__drop>a::after{content:" ↓";font-size:.85em}
.nav__menu{
    position:absolute;top:100%;left:-18px;min-width:240px;
    background:var(--noite-2);border:1px solid var(--hair-noite);
    padding:10px 0;list-style:none;
    opacity:0;visibility:hidden;transform:translateY(6px);
    transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
}
.nav__drop:hover .nav__menu,.nav__drop:focus-within .nav__menu{
    opacity:1;visibility:visible;transform:none;
}
.nav__menu a{
    display:flex;justify-content:space-between;gap:14px;
    padding:9px 18px;text-transform:none;letter-spacing:.02em;
    font-family:var(--serif);font-size:.98rem;font-weight:500;min-height:0;
}
.nav__menu a small{
    font-family:var(--sans);font-size:.68rem;letter-spacing:.1em;
    text-transform:uppercase;color:var(--areia-2);align-self:center;
}
.nav__menu a:hover{color:var(--ambar)}

/* estado scrolled: barra ganha fundo da zona atual */
.nav.scrolled{background:rgba(237,233,223,.9);backdrop-filter:blur(14px);border-color:var(--hair-luz)}
.nav.scrolled .nav__brand span{color:var(--tinta)}
.nav.scrolled .nav__links a{color:var(--tinta-2)}
.nav.scrolled .nav__links a:hover,.nav.scrolled .nav__links a[aria-current="page"]{color:var(--cumaru)}
.nav.scrolled .nav__cta{color:var(--tinta);border-color:rgba(35,38,31,.4)}
.nav.scrolled .nav__cta:hover{color:var(--cumaru);border-color:var(--cumaru)}
.nav.scrolled.night{background:rgba(14,20,26,.86);border-color:rgba(218,212,196,.1)}
.nav.scrolled.night .nav__brand span{color:#EFEAD9}
.nav.scrolled.night .nav__links a{color:var(--areia-2)}
.nav.scrolled.night .nav__links a:hover,.nav.scrolled.night .nav__links a[aria-current="page"]{color:var(--ambar)}
.nav.scrolled.night .nav__cta{color:var(--areia);border-color:rgba(218,212,196,.4)}
.nav.scrolled.night .nav__cta:hover{color:var(--ambar);border-color:var(--ambar)}

/* hambúrguer (mobile) */
.nav__burger{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;background:none;border:0;cursor:pointer;
    color:#F3EFE5;transition:color .4s;
}
.nav.scrolled .nav__burger{color:var(--tinta)}
.nav.scrolled.night .nav__burger{color:var(--areia)}
.nav__burger svg{width:26px;height:26px}

/* painel mobile: a noite desce sobre a página */
.mnav{
    position:fixed;inset:0;z-index:calc(var(--z-nav) + 1);
    background:var(--noite);color:var(--areia);
    display:flex;flex-direction:column;justify-content:center;
    padding:80px var(--pad) 40px;
    opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s;
}
.mnav.open{opacity:1;visibility:visible}
.mnav ul{list-style:none}
.mnav>ul>li{border-bottom:1px solid var(--hair-noite)}
.mnav a{
    display:block;padding:16px 0;text-decoration:none;
    font-family:var(--serif);font-size:clamp(1.5rem,6vw,2.1rem);color:#EFEAD9;
}
.mnav a:hover{color:var(--ambar)}
.mnav .mnav__sub a{font-size:1.05rem;font-family:var(--sans);color:var(--areia-2);padding:8px 0 8px 18px}
.mnav__close{
    position:absolute;top:14px;right:16px;width:44px;height:44px;
    display:flex;align-items:center;justify-content:center;
    background:none;border:0;color:var(--areia);cursor:pointer;
}
.mnav__zap{margin-top:34px}
@media(min-width:980px){
    .nav__links{display:flex}
    .nav__cta{display:inline-flex}
    .nav__burger,.mnav{display:none}
}

/* ---------- BOTÕES ---------- */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    min-height:52px;padding:0 30px;
    font-size:var(--t-tiny);font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    text-decoration:none;cursor:pointer;border:0;
    transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),
               border-color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease);
}
.btn:hover{transform:scale(1.02)}
.btn svg{width:18px;height:18px;flex-shrink:0}
.btn--luz{background:var(--luz);color:var(--tinta)}
.btn--luz:hover{background:#FDFAF2}
.btn--noite{background:var(--tinta);color:var(--luz)}
.btn--noite:hover{background:var(--noite)}
.btn--linha{border:1px solid var(--hair);color:var(--fg);background:transparent}
.btn--linha:hover{border-color:var(--ac);color:var(--ac)}
/* primário conforme a zona: claro na noite, escuro na luz */
.zona-noite .btn--primario{background:var(--luz);color:var(--tinta)}
.zona-noite .btn--primario:hover{background:#FDFAF2}
.zona-luz .btn--primario{background:var(--tinta);color:var(--luz)}
.zona-luz .btn--primario:hover{background:var(--noite)}

/* ---------- HERO ---------- */
.hero{
    position:relative;height:100vh;height:100svh;min-height:560px;
    background:var(--noite);overflow:hidden;
    display:flex;align-items:flex-end;
}
.hero>video,.hero>img.hero__media{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.hero::before{
    content:"";position:absolute;inset:0;z-index:1;
    background:
        linear-gradient(100deg,rgba(10,14,18,.6) 0%,rgba(10,14,18,.2) 46%,transparent 70%),
        linear-gradient(to top,rgba(10,14,18,.82) 0%,rgba(10,14,18,.44) 40%,rgba(10,14,18,.12) 62%,transparent 78%),
        linear-gradient(to bottom,rgba(10,14,18,.4),transparent 18%);
}
.hero__in{
    position:relative;z-index:2;width:100%;
    max-width:var(--wrap);margin-inline:auto;
    padding:0 var(--pad) clamp(96px,15svh,150px);
}
.hero .eyebrow{color:rgba(243,239,229,.85)}
.hero h1{
    color:var(--branco-quente);
    font-size:var(--t-display);
    margin:18px 0 26px;max-width:14ch;
}
/* animação de entrada por linhas: <span class="l"><span>texto</span></span> */
.hero h1 .l{display:block;overflow:hidden}
.hero h1 .l>span{display:block;transform:translateY(110%);animation:ln-rise 1s var(--ease) forwards}
.hero h1 .l:nth-child(2)>span{animation-delay:.14s}
.hero h1 .l:nth-child(3)>span{animation-delay:.28s}
.hero .eyebrow,.hero__cta{opacity:0;animation:ln-fadein 1s var(--ease) forwards}
.hero .eyebrow{animation-delay:.5s}
.hero__cta{animation-delay:.75s}
@keyframes ln-rise{to{transform:none}}
@keyframes ln-fadein{to{opacity:1}}
.hero__sub{
    color:rgba(243,239,229,.88);max-width:44ch;font-size:1rem;
    margin-bottom:34px;
}
/* variante interna (páginas que não são a Home): mais baixa, sem 100vh */
.hero--interno{height:auto;min-height:0;padding-top:clamp(150px,24svh,230px)}
.hero--interno .hero__in{padding-bottom:clamp(64px,9svh,110px)}
.hero--interno h1{font-size:var(--t-1);max-width:20ch}
/* indicador de scroll */
.hero__scroll{
    position:absolute;left:50%;bottom:0;z-index:2;width:1px;height:72px;
    background:rgba(243,239,229,.28);overflow:hidden;
}
.hero__scroll::after{
    content:"";position:absolute;left:0;top:-40%;width:100%;height:40%;
    background:var(--ambar);animation:ln-drip 2.6s var(--ease) infinite;
}
@keyframes ln-drip{0%{top:-40%}70%,100%{top:110%}}

/* ---------- MANIFESTO / STATEMENT ---------- */
.manifesto{padding:var(--sec) 0 calc(var(--sec)*.7)}
.manifesto .display{
    font-size:var(--t-display-st);max-width:22ch;
    margin:22px 0 0;
}
.manifesto small{
    display:block;margin-top:34px;font-size:.8rem;letter-spacing:.08em;
    color:var(--fg-2);
}

/* ---------- SPLIT ASSIMÉTRICO (texto + foto sangrada) ---------- */
.split{padding:calc(var(--sec)*.5) 0 var(--sec)}
.split__grid{display:grid;gap:34px}
.split__media{position:relative;overflow:hidden}
.split__media img{
    width:100%;height:clamp(420px,72vh,640px);object-fit:cover;
    filter:saturate(.96) contrast(1.03);
    transform:scale(1.05);/* respiro para o parallax */
}
.split__txt{max-width:52ch}
.split h2{font-size:var(--t-2);margin:16px 0 22px}
.split__txt p{color:var(--fg-2)}
.split__txt p+p{margin-top:14px}
.split__txt .btn{margin-top:28px}
@media(min-width:900px){
    .split__grid{grid-template-columns:5fr 7fr;gap:0;align-items:center}
    .split__txt{padding-right:56px}
    .split h2{position:relative;z-index:2;margin-right:-170px}
    .split__media{margin-right:calc(-1*var(--pad))}
    .split__media img{height:min(78vh,720px)}
    /* variante espelhada */
    .split--inv .split__grid{grid-template-columns:7fr 5fr}
    .split--inv .split__txt{order:2;padding-right:0;padding-left:56px}
    .split--inv .split__media{order:1;margin-right:0;margin-left:calc(-1*var(--pad))}
    .split--inv h2{margin-right:0;margin-left:-170px}
    /* modificador para títulos longos: colunas equilibradas, sem sangria
       do título sobre a foto (evita colisão com imagens "cheias") */
    .split--reto .split__grid,
    .split--inv.split--reto .split__grid{grid-template-columns:1fr 1fr}
    .split--reto .split__txt{padding-left:clamp(32px,4vw,60px);padding-right:0}
    .split--reto .split__media img{height:min(74vh,680px)}
}
.split--reto h2{margin-left:0;margin-right:0}

/* ---------- CARD DE PROPRIEDADE (grid da Home) ---------- */
.props{padding:0 0 var(--sec)}
.props__head{margin-bottom:clamp(30px,4.5vw,60px)}
.props__head h2{font-size:var(--t-2);margin-top:14px;max-width:22ch}
.props__grid{display:grid;gap:44px 24px}
@media(min-width:680px){.props__grid{grid-template-columns:1fr 1fr}}
@media(min-width:1060px){.props__grid{grid-template-columns:1fr 1fr 1fr}}
.prop{display:block;text-decoration:none;color:inherit;position:relative}
.prop__media{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--noite-2)}
.prop__media img{
    width:100%;height:100%;object-fit:cover;
    filter:saturate(.94) contrast(1.04);
    transition:transform var(--dur-3) var(--ease);
}
.prop:hover .prop__media img{transform:scale(1.04)}
.prop__local{
    position:absolute;top:14px;left:14px;z-index:2;
    font-size:.65rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
    color:rgba(243,239,229,.95);
    background:rgba(10,14,18,.55);backdrop-filter:blur(4px);
    padding:6px 12px;
}
.prop__body{padding:18px 0 0;border-bottom:1px solid var(--hair)}
.prop h3{
    font-size:var(--t-4);display:flex;align-items:baseline;justify-content:space-between;gap:12px;
}
.prop h3::after{
    content:"→";font-family:var(--sans);font-size:.9em;color:var(--ac);
    transition:transform var(--dur-1) var(--ease);
}
.prop:hover h3::after{transform:translateX(6px)}
.prop p{margin:8px 0 14px;font-size:var(--t-small);color:var(--fg-2);max-width:38ch}
.prop__tags{display:flex;flex-wrap:wrap;gap:6px 14px;padding-bottom:16px}
.tag{
    font-size:.65rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    color:var(--ac);
}
.tag--neutro{color:var(--fg-2)}

/* ---------- COMO FUNCIONA (passos numerados) ---------- */
.passos{padding:0 0 var(--sec)}
.passos h2{font-size:var(--t-2);margin:14px 0 clamp(34px,5vw,60px);max-width:22ch}
.passos__grid{display:grid;gap:0;border-top:1px solid var(--hair)}
.passo{padding:26px 0;border-bottom:1px solid var(--hair)}
.passo b{
    display:block;font-family:var(--serif);font-weight:380;
    font-size:clamp(1.8rem,3.6vw,2.6rem);color:var(--ac);line-height:1;
    font-variant-numeric:oldstyle-nums;margin-bottom:12px;
}
.passo h3{font-size:1.15rem;margin-bottom:8px}
.passo p{font-size:var(--t-small);color:var(--fg-2);max-width:34ch}
@media(min-width:880px){
    .passos__grid{grid-template-columns:repeat(4,1fr);gap:0 44px}
    .passo{border-bottom:0;padding:38px 0}
}

/* ---------- NÚMEROS FINOS ---------- */
.numeros{padding:var(--sec) 0 0}
.numeros__row{
    display:grid;grid-template-columns:repeat(2,1fr);
    gap:34px 20px;border-top:1px solid var(--hair);
    padding-top:clamp(36px,5vw,60px);
}
.numeros b{
    display:block;font-family:var(--serif);font-weight:380;
    font-size:clamp(2rem,4.6vw,3.4rem);color:var(--fg-strong);line-height:1;
    font-variant-numeric:oldstyle-nums;
}
.numeros span{display:block;margin-top:10px;font-size:.8rem;letter-spacing:.06em;color:var(--fg-2)}
@media(min-width:820px){.numeros__row{grid-template-columns:repeat(4,1fr)}}

/* ---------- COMODIDADES (lista tipografada) ---------- */
.essencial{padding:calc(var(--sec)*.7) 0 var(--sec)}
.essencial h2{font-size:var(--t-2);margin:14px 0 40px;max-width:20ch}
.essencial ul{list-style:none;columns:1;column-gap:64px;max-width:960px}
.essencial li{
    break-inside:avoid;padding:16px 0;border-bottom:1px solid var(--hair);
    font-size:.98rem;color:var(--fg);
}
.essencial li b{font-weight:600;color:var(--fg-strong)}
.essencial li small{display:block;font-size:.85rem;color:var(--fg-2);margin-top:2px}
@media(min-width:760px){.essencial ul{columns:2}}

/* ---------- MOMENTOS DO DIA (grade estática, sem scroll-jacking) ----------
   Três fotos com painel de texto fixo por cima — mostra os três
   capítulos do dia de uma vez, sem pin nem animação de fundo. */
.momentos{padding:0 0 var(--sec)}
.momentos__head{padding:0 0 clamp(34px,5vw,56px)}
.momentos__head h2{font-size:var(--t-2);margin-top:14px;max-width:22ch}
.momentos__grid{display:grid;gap:16px}
.momento{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--noite-2)}
.momento img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.96) contrast(1.03)}
.momento__card{
    position:absolute;left:0;right:0;bottom:0;z-index:1;padding:20px 22px;
    background:linear-gradient(180deg,transparent,rgba(8,11,15,.94) 18px);
}
.momento .hora{font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ac-noite)}
.momento h3{color:var(--branco-quente);font-size:1.3rem;margin:8px 0 8px}
.momento p{color:rgba(243,239,229,.88);font-size:.9rem;line-height:1.55}
@media(min-width:880px){.momentos__grid{grid-template-columns:repeat(3,1fr)}}

/* ---------- GALERIA EDITORIAL ---------- */
.galeria{padding:0 0 var(--sec)}
.galeria__head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;margin-bottom:clamp(28px,4vw,52px)}
.galeria__head h2{font-size:var(--t-2);margin-top:14px}
.galeria__head p{font-size:.8rem;letter-spacing:.08em;color:var(--fg-2)}
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.gal button{
    position:relative;display:block;width:100%;height:100%;
    border:0;padding:0;background:none;cursor:pointer;overflow:hidden;
    min-height:44px;
}
.gal img{
    width:100%;height:100%;object-fit:cover;
    filter:saturate(.94) contrast(1.04);
    transition:transform var(--dur-3) var(--ease);
}
.gal button:hover img{transform:scale(1.04)}
.gal figure{position:relative;height:100%}
.gal figcaption{
    position:absolute;inset:auto 0 0 0;padding:12px 14px 10px;
    font-size:var(--t-tiny);letter-spacing:.04em;color:rgba(243,239,229,.94);
    background:linear-gradient(180deg,transparent,rgba(8,11,15,.92) 14px);
    text-align:left;pointer-events:none;
}
.gal .g1{grid-column:span 2;aspect-ratio:4/3}
.gal .g4,.gal .g6{grid-column:span 2;aspect-ratio:16/10}
.gal .g2,.gal .g3,.gal .g5,.gal .g7,.gal .g8,.gal .g9{aspect-ratio:4/5}
.gal .g10{grid-column:span 2;aspect-ratio:16/9}
@media(min-width:880px){
    .gal{
        grid-template-columns:repeat(12,1fr);gap:14px;
        grid-template-areas:
            "a a a a a a a b b b b b"
            "a a a a a a a c c c c c"
            "e e e e e e e d d d d d"
            "f f f f g g g g h h h h"
            "i i i i i i j j j j j j";
        grid-auto-rows:clamp(200px,26vw,340px);
    }
    .gal .g1,.gal .g2,.gal .g3,.gal .g4,.gal .g5,.gal .g6,.gal .g7,.gal .g8,.gal .g9,.gal .g10{aspect-ratio:auto}
    .gal .g1{grid-area:a}.gal .g2{grid-area:b}.gal .g3{grid-area:c}.gal .g4{grid-area:e}.gal .g5{grid-area:d}
    .gal .g6{grid-area:h}.gal .g7{grid-area:g}.gal .g8{grid-area:f}.gal .g9{grid-area:i}.gal .g10{grid-area:j}
}

/* ---------- LIGHTBOX ---------- */
.lb{
    position:fixed;inset:0;z-index:var(--z-lightbox);background:rgba(8,11,15,.96);
    display:flex;align-items:center;justify-content:center;
}
.lb[hidden]{display:none}
.lb img{max-width:92vw;max-height:82vh;max-height:82svh;object-fit:contain}
.lb figcaption{
    position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:0;right:0;
    text-align:center;color:rgba(243,239,229,.75);font-size:.85rem;padding:0 70px;
}
.lb__count{
    position:absolute;top:20px;left:24px;color:rgba(243,239,229,.6);
    font-size:.75rem;letter-spacing:.2em;
}
.lb button{
    position:absolute;display:flex;align-items:center;justify-content:center;
    width:48px;height:48px;border:0;border-radius:50%;cursor:pointer;
    background:rgba(243,239,229,.08);color:#F3EFE5;
    transition:background .3s;
}
.lb button:hover{background:rgba(243,239,229,.2)}
.lb__close{top:14px;right:16px}
.lb__prev{left:10px;top:50%;transform:translateY(-50%)}
.lb__next{right:10px;top:50%;transform:translateY(-50%)}

/* ---------- TABS ---------- */
.tabs h2{font-size:var(--t-2);margin:14px 0 34px;max-width:18ch}
.tabs__list{display:flex;flex-wrap:wrap;gap:4px 26px;border-bottom:1px solid var(--hair);margin-bottom:clamp(30px,4vw,54px)}
.tabs__tab{
    background:none;border:0;cursor:pointer;min-height:48px;
    font-size:var(--t-tiny);font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    color:var(--fg-2);border-bottom:1px solid transparent;margin-bottom:-1px;
    transition:color .4s,border-color .4s;
}
.tabs__tab[aria-selected="true"]{color:var(--ac);border-color:var(--ac)}
.tabs__panel{display:grid;gap:30px}
.tabs__panel[hidden]{display:none}
.tabs__panel img{
    width:100%;height:clamp(340px,52vh,520px);object-fit:cover;
    filter:saturate(.96) contrast(1.03);
}
.tabs__panel h3{font-size:var(--t-3);margin-bottom:14px}
.tabs__panel p{color:var(--fg-2);max-width:46ch;margin-bottom:26px}
@media(min-width:900px){
    .tabs__panel{grid-template-columns:6fr 6fr;align-items:center;gap:64px}
    .tabs__panel img{height:min(64vh,560px);margin-top:-40px}
}

/* ---------- COMPARAÇÃO ANCORADA ---------- */
.escolha h2{font-size:var(--t-2);margin:14px 0 44px;max-width:22ch}
.escolha__grid{display:grid;gap:0;border-top:1px solid var(--hair)}
.escolha__col{padding:30px 0 34px;border-bottom:1px solid var(--hair)}
.escolha__col h3{font-size:1.25rem;color:var(--fg-2);font-weight:500}
.escolha__col p{margin-top:10px;font-size:.95rem;color:var(--fg-2);max-width:40ch}
.escolha__col.destaque h3{color:var(--fg-strong)}
.escolha__col.destaque p{color:var(--fg)}
.escolha__col .tag{display:block;margin-bottom:10px;font-size:var(--t-eyebrow);letter-spacing:.22em}
.escolha__col .preco{
    margin-top:18px;font-family:var(--serif);font-size:1.6rem;color:var(--ac);
    font-weight:400;
}
.escolha__col .preco small{font-family:var(--sans);font-size:.75rem;letter-spacing:.08em;color:var(--fg-2);display:block;margin-top:2px}
.escolha__cta{margin-top:44px}
@media(min-width:880px){
    .escolha__grid{grid-template-columns:1fr 1fr 1.25fr;gap:0 54px}
    .escolha__col{border-bottom:0;padding:38px 0}
    .escolha__col.destaque{border-left:1px solid var(--ac);padding-left:40px}
}

/* ---------- DEPOIMENTO HERO + VOZES ---------- */
.voz{position:relative;min-height:88vh;min-height:88svh;display:flex;align-items:center;overflow:hidden}
.voz>img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    filter:saturate(.9) contrast(1.02);
}
.voz::before{
    content:"";position:absolute;inset:0;
    background:linear-gradient(100deg,rgba(8,11,15,.78) 0%,rgba(8,11,15,.45) 55%,rgba(8,11,15,.2) 100%);
}
.voz__in{position:relative;z-index:2;padding:120px var(--pad)}
.voz blockquote p{
    font-family:var(--serif);font-style:italic;font-weight:400;
    font-size:clamp(1.6rem,4vw,2.9rem);line-height:1.25;color:var(--branco-quente);
    max-width:24ch;
}
.voz cite{
    display:block;margin-top:26px;font-style:normal;font-size:.75rem;
    letter-spacing:.2em;text-transform:uppercase;color:rgba(243,239,229,.7);
}
.vozes{padding:calc(var(--sec)*.7) 0}
.vozes__grid{display:grid;gap:44px;max-width:960px}
.vozes blockquote p{font-size:1.02rem;color:var(--fg);max-width:48ch}
.vozes cite{display:block;margin-top:14px;font-style:normal;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-2)}
@media(min-width:760px){.vozes__grid{grid-template-columns:1fr 1fr;gap:64px}}

/* depoimento em destaque (uma avaliação real, sem placeholder ao lado) */
.depo{max-width:840px;margin:0 auto;text-align:center}
.depo__stars{display:inline-flex;gap:5px;color:var(--ambar);margin-bottom:26px}
.depo__stars svg{width:18px;height:18px;fill:currentColor}
.depo blockquote p{
    font-family:var(--serif);font-style:italic;font-weight:400;
    font-size:clamp(1.35rem,3.1vw,2.15rem);line-height:1.34;color:var(--fg-strong);
}
.depo figcaption{
    margin-top:30px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
    color:var(--fg-2);
}
.depo figcaption b{color:var(--fg);font-weight:600}
/* grade de depoimentos (2+): reaproveita .depo, alinhado à esquerda e menor.
   auto-fit adapta o nº de colunas à quantidade e à largura (1 → 2 → 3). */
.depos{display:grid;gap:clamp(40px,5vw,64px);max-width:1140px;margin:0 auto;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.depos .depo{text-align:left;max-width:none;margin:0}
.depos .depo__stars{margin-bottom:20px}
.depos .depo blockquote p{font-size:clamp(1.1rem,1.7vw,1.4rem);line-height:1.5}
.depos .depo figcaption{margin-top:22px}

/* ---------- PLACEHOLDER DE PROVA SOCIAL ----------
   A copy exige [PLACEHOLDER] até chegarem depoimentos/avaliações
   reais. Bloco honesto e elegante — nunca inventar dado. */
.pend{
    border:1px dashed var(--hair);padding:26px 28px;max-width:640px;
    color:var(--fg-2);font-size:var(--t-small);
}
.pend b{
    display:block;font-size:.65rem;font-weight:600;letter-spacing:.22em;
    text-transform:uppercase;color:var(--ac);margin-bottom:8px;
}

/* ---------- BANNER CROSS-LINK ---------- */
.xlink{
    display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 28px;
    border-block:1px solid var(--hair);padding:26px 0;
}
.xlink p{font-family:var(--serif);font-size:clamp(1.15rem,2.4vw,1.5rem);color:var(--fg-strong);max-width:34ch}
.xlink a{
    font-size:var(--t-tiny);font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    color:var(--ac);text-decoration:none;border-bottom:1px solid var(--ac);
    padding-bottom:3px;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;
    transition:opacity .3s;
}
.xlink a:hover{opacity:.75}

/* ---------- FAQ ---------- */
.faq h2{font-size:var(--t-2);margin:14px 0 40px}
.faq__list{max-width:820px}
.faq__grupo{margin-top:clamp(30px,4vw,50px)}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{
    list-style:none;cursor:pointer;display:flex;justify-content:space-between;
    align-items:center;gap:20px;padding:22px 0;min-height:44px;
    font-weight:500;font-size:1.05rem;color:var(--fg-strong);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
    content:"+";font-family:var(--serif);font-size:1.5rem;font-weight:380;
    color:var(--ac);transition:transform .4s var(--ease);flex-shrink:0;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 24px;color:var(--fg-2);max-width:62ch}

/* ---------- CONTEÚDO (texto corrido institucional — Sobre/FAQ/Contato) ---------- */
.conteudo{padding:calc(var(--sec)*.6) 0}
.conteudo h2{font-size:var(--t-2);margin:14px 0 24px;max-width:26ch}
.conteudo h3{font-size:1.15rem;margin-bottom:10px}
.conteudo .prose p{color:var(--fg-2)}
.conteudo .prose p+p{margin-top:16px}
.conteudo .prose p strong{color:var(--fg-strong);font-weight:600}
.conteudo .prose blockquote{
    font-family:var(--serif);font-style:italic;color:var(--fg-strong);
    font-size:1.25rem;line-height:1.45;margin:28px 0;padding-left:22px;
    border-left:2px solid var(--ac);
}
.conteudo__grid{display:grid;gap:36px}
@media(min-width:760px){.conteudo__grid{grid-template-columns:1fr 1fr}}
.conteudo__item{padding-top:24px;border-top:1px solid var(--hair)}
.conteudo ul{list-style:none;margin-top:14px}
.conteudo ul li{padding:12px 0;border-bottom:1px solid var(--hair);color:var(--fg-2);font-size:.95rem}
.mapa{position:relative;width:100%;aspect-ratio:4/3;border:1px solid var(--hair);overflow:hidden;margin:18px 0}
.mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- CTA FINAL (céu da lua nova) ---------- */
.fim{
    position:relative;padding:var(--sec) 0;text-align:center;overflow:hidden;
    background:
        radial-gradient(1px 1px at 12% 28%,rgba(243,239,229,.8),transparent 100%),
        radial-gradient(1px 1px at 78% 18%,rgba(243,239,229,.6),transparent 100%),
        radial-gradient(1.5px 1.5px at 62% 44%,rgba(243,239,229,.5),transparent 100%),
        radial-gradient(1px 1px at 32% 62%,rgba(243,239,229,.55),transparent 100%),
        radial-gradient(1px 1px at 88% 70%,rgba(243,239,229,.45),transparent 100%),
        radial-gradient(1.5px 1.5px at 45% 12%,rgba(243,239,229,.6),transparent 100%),
        radial-gradient(1px 1px at 8% 82%,rgba(243,239,229,.4),transparent 100%),
        linear-gradient(to bottom,var(--noite) 0%,var(--noite-3) 100%);
}
.fim .lua{width:34px;height:34px;margin:0 auto 26px;opacity:.9}
.fim .eyebrow{color:var(--ac-noite)}
.fim h2{font-size:clamp(2.2rem,5.4vw,4rem);color:var(--branco-quente);max-width:18ch;margin:0 auto 18px}
.fim p{color:var(--areia-2);max-width:44ch;margin:0 auto 40px}
.fim__acao{display:flex;flex-direction:column;align-items:center;gap:18px}
.fim .btn--luz{padding:0 40px}
.fim__link{
    font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;
    color:var(--areia-2);text-decoration:none;border-bottom:1px solid rgba(218,212,196,.3);
    padding-bottom:3px;min-height:44px;display:inline-flex;align-items:center;
    transition:color .4s,border-color .4s;
}
.fim__link:hover{color:var(--ambar);border-color:var(--ambar)}

/* ---------- FOOTER / COLOFÃO ---------- */
.foot{background:var(--noite-3);color:var(--areia-2);padding:64px 0 42px;font-size:.88rem}
.foot__grid{display:grid;gap:34px}
.foot h3{font-family:var(--serif);font-weight:500;color:#EFEAD9;font-size:1.2rem;margin-bottom:10px}
.foot a{color:var(--areia);text-decoration:none;border-bottom:1px solid rgba(218,212,196,.2);transition:color .3s,border-color .3s}
.foot a:hover{color:var(--ambar);border-color:var(--ambar)}
.foot p+p,.foot li+li{margin-top:6px}
.foot ul{list-style:none}
.foot__legal{
    margin-top:54px;padding-top:24px;border-top:1px solid rgba(218,212,196,.08);
    font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(151,160,151,.55);
}
@media(min-width:760px){.foot__grid{grid-template-columns:2fr 1fr 1fr 1fr}}

/* ---------- WHATSAPP FLUTUANTE ---------- */
.zap{
    position:fixed;right:18px;bottom:max(18px,env(safe-area-inset-bottom));z-index:var(--z-zap);
    width:56px;height:56px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:#1E3B2F;color:#EFEAD9;
    box-shadow:0 8px 28px rgba(8,11,15,.45);
    transition:transform var(--dur-1) var(--ease),background var(--dur-1);
}
.zap:hover{transform:scale(1.06);background:#25D366;color:#0A0F14}
.zap svg{width:26px;height:26px}

/* ------------------------------------------------------------
   5. REDUCED MOTION — sempre por último
   ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.2s !important}
    .rv{opacity:1;transform:none;transition:none}
    .hero h1 .l>span{transform:none;animation:none}
    .hero .eyebrow,.hero__cta{opacity:1;animation:none}
    .split__media img{transform:none}
    .hero__scroll::after{animation:none}
}
