/* Réveillon BemVilla Trancoso — tokens do Bemvilla Design System v1.0 (C:\projetos\design).
   Azul #1F3A5C · Dourado Areia #B69373 · Cream #FBF8F3 · Ink #0E1E33 · Cormorant Garamond + Jost. */
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-normal.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-italic.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Jost";src:url(/assets/fonts/jost-normal.woff2) format("woff2");font-weight:300 600;font-style:normal;font-display:swap}

:root{
  --cream:#FBF8F3;--bone:#F4EFE6;--stone:#E6DFD2;--paper:#FFFFFF;
  --ink:#1F3A5C;--ink-800:#14283F;--ink-900:#0E1E33;--ink-300:#9BB0C8;--ink-100:#D8E1EC;
  --gold:#B69373;--gold-300:#D4BBA0;--gold-700:#85694B;--gold-100:#F4ECDD;
  --sage:#7E9A6F;--sage-100:#E5EBDB;--charcoal:#2A2620;--muted:#6B6458;--danger:#9C3E3E;
  --ff-d:"Cormorant Garamond",Georgia,serif;--ff-s:"Jost",system-ui,sans-serif;
  --maxw:1180px;--r:14px;--arco:999px 999px 14px 14px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--charcoal);font:400 17px/1.65 var(--ff-s);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--ff-d);font-weight:500;line-height:1.05;margin:0;color:var(--ink);letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,6.4vw,5.2rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.4rem)}
h3{font-size:clamp(1.6rem,2.6vw,2.2rem)}
h1 em,h2 em{font-style:italic;font-weight:400;color:var(--gold-700)}
p{margin:0 0 1rem}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}
.estreito{max-width:820px}
.eyebrow{font:500 .78rem/1.4 var(--ff-s);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-700);margin:0 0 1rem}
.eyebrow a{text-decoration:none}
.lead{font-size:1.12rem;color:var(--muted);max-width:60ch}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:52px;padding:0 1.8rem;border:0;border-radius:999px;
  background:var(--gold);color:var(--ink-900);font:500 1rem var(--ff-s);letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:background .2s,transform .2s}
.btn:hover{background:var(--gold-300)}
.btn:active{transform:translateY(1px)}
.btn-sm{min-height:40px;padding:0 1.2rem;font-size:.92rem}
.btn-txt{background:none;border:0;padding:.6rem 0;font:500 1rem var(--ff-s);color:var(--ink);text-decoration:underline;text-underline-offset:.3em;cursor:pointer}
.btn-txt.claro{color:var(--cream)}
.link-seta{font-weight:500;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px}
.link-seta::after{content:" →"}

/* ---------- header */
.hdr{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:14px 20px;transition:background .3s,box-shadow .3s}
.marca img{height:46px;width:auto}
.marca-escura{display:none}
.hdr:not(.sobre-escuro) .marca-clara,.hdr.rolado .marca-clara{display:none}
.hdr:not(.sobre-escuro) .marca-escura,.hdr.rolado .marca-escura{display:block}
.hdr.rolado,.hdr:not(.sobre-escuro){background:rgba(251,248,243,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--stone)}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav a:not(.btn){text-decoration:none;font-size:.95rem;color:var(--cream)}
.hdr.rolado .nav a:not(.btn),.hdr:not(.sobre-escuro) .nav a:not(.btn){color:var(--ink)}
.menu-btn{display:none;background:none;border:1px solid currentColor;border-radius:999px;padding:.4rem 1rem;font:500 .9rem var(--ff-s);color:var(--cream)}
.hdr.rolado .menu-btn,.hdr:not(.sobre-escuro) .menu-btn{color:var(--ink)}
@media (max-width:860px){
  .menu-btn{display:block}
  .nav{position:fixed;inset:74px 12px auto;flex-direction:column;align-items:stretch;gap:0;padding:12px;border-radius:var(--r);
    background:var(--cream);box-shadow:0 20px 40px rgba(14,30,51,.18);display:none}
  .nav a:not(.btn){color:var(--ink)!important;padding:.9rem .6rem;border-bottom:1px solid var(--stone)}
  .nav .btn{margin-top:.8rem}
  .hdr.menu-on .nav{display:flex}
  .marca img{height:38px}
}

/* ---------- hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--cream);overflow:hidden;background:var(--ink-900)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-veu{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,30,51,.55) 0%,rgba(14,30,51,.1) 30%,rgba(14,30,51,.85) 100%),linear-gradient(90deg,rgba(14,30,51,.6) 0%,rgba(14,30,51,0) 65%)}
.hero-txt{position:relative;padding-top:140px;padding-bottom:clamp(56px,10vh,110px)}
.hero h1{color:var(--cream);max-width:15ch}
.hero h1 em{color:var(--gold-300)}
.hero .eyebrow{color:var(--gold-300)}
.hero-sub{font-size:clamp(1.05rem,1.6vw,1.25rem);max-width:46ch;margin:1.4rem 0 2rem;color:rgba(251,248,243,.9)}
.hero-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem}
.hero-casa{min-height:88svh}

/* ---------- faixa de fatos */
.faixa{background:var(--ink-900);color:var(--cream);padding:28px 0}
.faixa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.faixa-grid div{display:flex;flex-direction:column;border-left:1px solid rgba(182,147,115,.4);padding-left:16px}
.faixa-grid b{font:500 clamp(1.6rem,2.8vw,2.3rem)/1 var(--ff-d);color:var(--gold-300)}
.faixa-grid span{font-size:.9rem;color:rgba(251,248,243,.75);margin-top:.35rem}
@media (max-width:760px){.faixa-grid{grid-template-columns:repeat(2,1fr);row-gap:24px}}

/* ---------- seções */
.sec{padding:clamp(72px,10vw,128px) 0}
.sec-areia{background:var(--bone)}
.cab{margin-bottom:clamp(36px,5vw,64px)}
.cab h2{margin-bottom:1.2rem}
.duas{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px)}
.duas h2{margin-bottom:1.6rem}
@media (max-width:860px){.duas{grid-template-columns:1fr}}

.trancoso-grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(40px,6vw,88px);align-items:center}
.trancoso-txt h2{margin-bottom:1.6rem}
.trancoso-txt p:not(.eyebrow){font-size:1.08rem;color:var(--muted)}
.trancoso-fotos{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:14px}
.trancoso-fotos figure{margin:0;overflow:hidden;border-radius:var(--r)}
.trancoso-fotos img{width:100%;height:100%;object-fit:cover}
.tf-1{grid-row:span 2;border-radius:var(--arco)!important}
.tf-1 img{aspect-ratio:3/4.2}
.tf-2 img,.tf-3 img{aspect-ratio:4/3.4}
@media (max-width:860px){.trancoso-grid{grid-template-columns:1fr}}

/* ---------- cards das casas */
.casa{display:grid;grid-template-columns:7fr 5fr;gap:clamp(28px,4vw,64px);align-items:center;margin-bottom:clamp(64px,8vw,112px)}
.casa.inv{grid-template-columns:5fr 7fr}
.casa.inv .casa-foto{order:2}
.casa-foto{display:block;overflow:hidden;border-radius:var(--r)}
.casa-foto img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s ease}
.casa-foto:hover img{transform:scale(1.03)}
.casa-txt h3{font-size:clamp(2.2rem,3.6vw,3rem);margin-bottom:.8rem}
.tese{font:italic 400 1.35rem/1.35 var(--ff-d);color:var(--ink);margin-bottom:1.4rem}
.selo{display:inline-block;font:500 .74rem/1 var(--ff-s);letter-spacing:.14em;text-transform:uppercase;padding:.45rem .8rem;border-radius:999px;background:var(--ink);color:var(--gold-100);margin:0 0 .9rem}
.selo-claro{background:var(--gold);color:var(--ink-900)}
.preco{font-size:.98rem;color:var(--muted);margin:-.6rem 0 1.4rem}
.preco b{font:500 1.35rem var(--ff-d);color:var(--ink)}
.hero-preco{margin:-1rem 0 2rem;color:rgba(251,248,243,.9)}
.hero-preco b{font:500 1.5rem var(--ff-d);color:var(--gold-300)}
.festas-grid{display:grid;grid-template-columns:6fr 5fr;gap:clamp(40px,6vw,88px);align-items:center}
.festas-txt h2{margin-bottom:1.6rem}
.festas-txt p:not(.eyebrow){color:rgba(251,248,243,.8);font-size:1.06rem}
.nota-clara{font-size:.92rem!important;color:rgba(251,248,243,.6)!important;border-top:1px solid rgba(182,147,115,.3);padding-top:1rem;margin-top:1.4rem}
.festas-fotos{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.festas-fotos figure{margin:0}
.festas-fotos img{width:100%;object-fit:cover;border-radius:var(--r);aspect-ratio:4/3}
.festas-fotos .ff-1{grid-column:span 2}
.festas-fotos .ff-1 img{aspect-ratio:3/2}
.festas-fotos figcaption{font-size:.76rem;line-height:1.4;color:rgba(251,248,243,.55);margin-top:.45rem}
.festas-fotos figcaption a{color:inherit}
@media (max-width:860px){.festas-grid{grid-template-columns:1fr}}
.foto-cafe{margin:2rem 0 0}
.foto-cafe img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.foto-cafe figcaption{font-size:.85rem;color:var(--muted);margin-top:.5rem}
.chips{list-style:none;margin:0 0 1.8rem;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{font-size:.85rem;padding:.35rem .9rem;border:1px solid var(--stone);border-radius:999px;background:var(--paper)}
.chips-faixa{margin:0;justify-content:center}
.chips-faixa li{background:transparent;border-color:rgba(182,147,115,.45);color:var(--cream)}
@media (max-width:860px){.casa,.casa.inv{grid-template-columns:1fr}.casa.inv .casa-foto{order:0}}

/* ---------- listas */
.lista-itens{list-style:none;margin:0;padding:0}
.lista-itens li{display:flex;flex-direction:column;padding:1.1rem 0;border-top:1px solid var(--stone)}
.lista-itens b{font:500 1.35rem/1.2 var(--ff-d);color:var(--ink)}
.lista-itens span{color:var(--muted);font-size:.98rem;margin-top:.2rem}

.conds{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.cond{background:var(--paper);border:1px solid var(--stone);border-radius:var(--r);padding:26px 22px}
.cond .eyebrow{margin-bottom:.6rem}
.cond-v{font:500 1.55rem/1.15 var(--ff-d);color:var(--ink);margin-bottom:.7rem}
.cond p:last-child{font-size:.93rem;color:var(--muted);margin:0}
.nota{margin-top:2rem;color:var(--muted);max-width:70ch}
@media (max-width:960px){.conds{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.conds{grid-template-columns:1fr}}

/* ---------- formulário */
.escuro{background:var(--ink-900);color:var(--cream)}
.escuro h2{color:var(--cream)}
.escuro h2 em{color:var(--gold-300)}
.escuro .eyebrow{color:var(--gold-300)}
.escuro .lead{color:rgba(251,248,243,.78)}
.sec-form{padding:clamp(72px,10vw,128px) 0}
.form-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(36px,6vw,88px);align-items:start}
.form-intro h2{margin-bottom:1.4rem}
.lista-fatos{list-style:none;padding:0;margin:2rem 0 0}
.lista-fatos li{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-top:1px solid rgba(182,147,115,.3);font-size:.98rem}
.lista-fatos span{color:rgba(251,248,243,.7);text-align:right}
@media (max-width:960px){.form-grid{grid-template-columns:1fr}}

.form-caixa{background:var(--cream);color:var(--charcoal);border-radius:20px;padding:clamp(22px,3.4vw,40px)}
.prog{height:4px;background:var(--stone);border-radius:4px;overflow:hidden}
.prog-b{display:block;height:100%;width:33%;background:var(--gold);transition:width .35s}
.prog-t{font-size:.82rem;letter-spacing:.06em;color:var(--muted);margin:.7rem 0 1.4rem}
.etapa{display:none;border:0;padding:0;margin:0;min-width:0}
.etapa.ativa{display:block;animation:entra .35s ease}
@keyframes entra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.campo{margin-bottom:1.5rem}
.campo label,.rot{display:block;font-weight:500;font-size:.98rem;color:var(--ink);margin:0 0 .55rem}
input[type=text],input:not([type]),input[type=tel],input[type=email],select,textarea{
  width:100%;min-height:50px;padding:.75rem 1rem;border:1px solid var(--stone);border-radius:10px;background:var(--paper);
  font:400 1rem var(--ff-s);color:var(--charcoal);transition:border-color .2s}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(182,147,115,.2)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){.f2{grid-template-columns:1fr}}
.ops{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.op{position:relative;margin:0!important;font-weight:400!important}
.op input{position:absolute;opacity:0;pointer-events:none}
.op span{display:flex;align-items:center;min-height:48px;padding:.6rem 1rem;border:1px solid var(--stone);border-radius:10px;background:var(--paper);
  font-size:.95rem;line-height:1.3;color:var(--charcoal);cursor:pointer;transition:border-color .2s,background .2s}
.op input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--cream)}
.op input:focus-visible+span{box-shadow:0 0 0 3px rgba(182,147,115,.45)}
@media (max-width:560px){.ops{grid-template-columns:1fr}}
.err{display:none;color:var(--danger);font-size:.85rem;margin-top:.4rem}
.com-erro .err{display:block}
.com-erro input,.com-erro select,.com-erro .op span{border-color:var(--danger)}
.err-lgpd{display:none;margin:-.4rem 0 1rem}
.lgpd-erro .err-lgpd{display:block}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.88rem;color:var(--muted);margin:.4rem 0 1rem}
.consent input{margin-top:.25rem;accent-color:var(--ink);width:18px;height:18px;flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.acoes{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.8rem}
.acoes .btn{margin-left:auto}
.resultado{outline:none}
.resultado h3{margin-bottom:1rem}
.resultado p{color:var(--muted)}
.resultado .btn{margin-top:.4rem}
.discreto{font-size:.92rem}

/* ---------- FAQ */
.faq details{border-top:1px solid var(--stone);padding:1.2rem 0}
.faq details:last-child{border-bottom:1px solid var(--stone)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;font:500 1.35rem/1.3 var(--ff-d);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:300 1.6rem/1 var(--ff-s);color:var(--gold-700);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin:.8rem 0 0;color:var(--muted);max-width:68ch}

/* ---------- página da casa */
.casa-intro{align-items:start;margin-bottom:clamp(48px,6vw,80px)}
.local{margin-top:1.4rem;font-size:.98rem;color:var(--muted)}
.local b{color:var(--ink)}
.dests{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.dest{border-top:2px solid var(--gold);padding-top:1.2rem}
.dest h3{font-size:1.6rem;margin-bottom:.6rem}
.dest p{color:var(--muted);margin:0}
@media (max-width:760px){.dests{grid-template-columns:1fr}}
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.gal figure{margin:0;overflow:hidden;border-radius:var(--r);cursor:zoom-in}
.gal figure:nth-child(5n+1){grid-column:span 2}
.gal img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s}
.gal figure:nth-child(5n+1) img{aspect-ratio:16/9}
.gal figure:hover img{transform:scale(1.03)}
.gal-dica{font-size:.88rem;color:var(--muted);margin-top:1rem}
@media (max-width:560px){.gal{grid-template-columns:1fr}.gal figure:nth-child(5n+1){grid-column:auto}.gal figure:nth-child(5n+1) img{aspect-ratio:4/3}}
.comod{list-style:none;margin:0;padding:0;columns:2;column-gap:24px}
.comod li{break-inside:avoid;padding:.55rem 0 .55rem 1.3rem;position:relative;border-top:1px solid var(--stone);font-size:.98rem}
.comod li::before{content:"";position:absolute;left:0;top:1.05rem;width:6px;height:6px;border-radius:50%;background:var(--gold)}
@media (max-width:560px){.comod{columns:1}}
.outras{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.outra{text-decoration:none;display:block}
.outra img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--arco);width:100%}
.outra span{display:block;margin-top:.8rem;font-size:.9rem;color:var(--muted)}
.outra b{display:block;font:500 1.4rem/1.2 var(--ff-d);color:var(--ink)}
@media (max-width:860px){.outras{grid-template-columns:repeat(4,72%);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.outra{scroll-snap-align:start}}

/* ---------- texto (privacidade) */
.sec-texto{padding-top:150px}
.sec-texto h1{font-size:clamp(2.4rem,5vw,3.6rem);margin-bottom:2rem}
.sec-texto h2{font-size:1.7rem;margin:2.2rem 0 .8rem}
.sec-texto p{color:var(--muted)}

/* ---------- rodapé */
.rodape{background:var(--ink-900);color:rgba(251,248,243,.78);padding:72px 0 28px;font-size:.95rem}
.rodape-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.rodape-marca{height:52px;width:auto;margin-bottom:1.2rem}
.rodape h4{font:500 .78rem/1 var(--ff-s);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-300);margin:0 0 1rem}
.rodape ul{list-style:none;margin:0;padding:0}
.rodape li{margin-bottom:.5rem}
.rodape a{text-decoration:none}
.rodape a:hover{color:var(--gold-300)}
.rodape-fim{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:48px;padding-top:20px;border-top:1px solid rgba(182,147,115,.25);font-size:.85rem}
@media (max-width:760px){.rodape-grid{grid-template-columns:1fr}.rodape{padding-bottom:96px}}

/* ---------- barra mobile e lightbox */
.barra-mob{position:fixed;left:12px;right:12px;bottom:12px;z-index:40;transform:translateY(140%);transition:transform .3s;display:none}
.barra-mob .btn{width:100%;box-shadow:0 10px 30px rgba(14,30,51,.35)}
.barra-mob.on{transform:none}
@media (max-width:760px){.barra-mob{display:block}}
.lb{position:fixed;inset:0;z-index:100;background:rgba(14,30,51,.96);display:none;align-items:center;justify-content:center;padding:56px 12px}
.lb.on{display:flex}
.lb figure{margin:0;display:grid;justify-items:center;gap:.8rem}
.lb img{max-height:82vh;width:auto;border-radius:8px}
.lb figcaption{color:rgba(251,248,243,.8);font-size:.9rem;text-align:center}
.lb button{position:absolute;background:none;border:0;color:var(--cream);font:300 2.6rem/1 var(--ff-s);cursor:pointer;padding:12px}
.lb-x{top:8px;right:12px}.lb-p{left:4px;top:50%;transform:translateY(-50%)}.lb-n{right:4px;top:50%;transform:translateY(-50%)}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- ajustes de toque (auditoria mobile 2026-10-07: alvos >= 44px, rótulos >= 13px) */
.menu-btn{min-height:44px;padding:0 1.1rem}
.link-seta{display:inline-block;padding:.75rem 0;border-bottom:0;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:.35em}
.faq summary{min-height:44px;align-items:center;padding:.3rem 0}
.hero .eyebrow a{display:inline-block;padding:.6rem 0}
.eyebrow{font-size:.82rem}
.festas-fotos .ff-1 img{object-position:center 75%}
