/* ==========================================================================
   RÉVEILLON CORAIS — design tokens
   ========================================================================== */
:root{
  --azul-1:#050F1C;          /* noite profunda */
  --azul-2:#071B2E;          /* azul profundo */
  --petrol:#0E3A47;          /* azul petróleo */
  --areia:#E9DFCB;
  --areia-2:#F6F1E6;
  --branco:#FDFCF8;
  --champagne:#C9A96A;
  --champagne-2:#E3C98F;
  --verde:#1E5C4F;
  --ink:#12222E;
  --max:1120px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:'Inter',system-ui,sans-serif;background:var(--azul-1);color:var(--branco);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,.serif{font-family:'Playfair Display',Georgia,serif;font-weight:600;line-height:1.12}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.label{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--champagne);font-weight:600}
.sec{padding:104px 0}
.sec-claro{background:var(--areia-2);color:var(--ink)}
.sec-claro .label{color:var(--verde)}
.center{text-align:center}
.lead{font-size:1.13rem;color:color-mix(in srgb,currentColor 78%,transparent);max-width:62ch}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 34px;border-radius:2px;font-weight:600;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,background .35s;cursor:pointer;border:1px solid transparent}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:linear-gradient(135deg,var(--champagne),var(--champagne-2));color:var(--azul-1);box-shadow:0 12px 34px -12px rgba(201,169,106,.55)}
.btn-gold:hover{box-shadow:0 18px 44px -12px rgba(201,169,106,.7)}
.btn-line{border-color:color-mix(in srgb,currentColor 35%,transparent);color:inherit;background:transparent}
.btn-line:hover{border-color:var(--champagne);color:var(--champagne)}
.sec-claro .btn-line:hover{color:var(--verde);border-color:var(--verde)}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.hero-bg{animation:none!important}}

/* ==========================================================================
   NAVBAR
   ========================================================================== */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;transition:background .4s,box-shadow .4s,padding .4s;padding:22px 0}
.nav.solid{background:rgba(5,15,28,.92);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(233,223,203,.08);padding:12px 0}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand{font-family:'Playfair Display',serif;font-size:1.35rem;letter-spacing:.42em;font-weight:700;color:var(--branco)}
.brand small{display:block;font-family:'Inter';font-size:.55rem;letter-spacing:.4em;color:var(--champagne);font-weight:500;margin-top:2px}
.nav-links{display:flex;gap:30px;align-items:center}
.nav-links a{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(253,252,248,.75);transition:color .3s}
.nav-links a:hover{color:var(--champagne)}
.nav .btn{padding:11px 22px;font-size:.7rem}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.burger span{display:block;width:24px;height:2px;background:var(--branco);margin:5px 0;transition:.3s}
@media(max-width:960px){
  .nav-links{position:fixed;inset:0;background:rgba(5,15,28,.98);flex-direction:column;justify-content:center;font-size:1rem;gap:34px;transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
  .nav-links.open{transform:none}
  .nav-links a{font-size:.95rem}
  .burger{display:block;z-index:70}
  .nav-cta-desk{display:none}
}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:-8%;z-index:0;background:
  radial-gradient(1100px 420px at 50% 108%, rgba(201,169,106,.32), transparent 62%),
  radial-gradient(700px 260px at 50% 100%, rgba(227,201,143,.20), transparent 60%),
  linear-gradient(180deg,#04101e 0%,#071B2E 34%,#0E3A47 72%,#0b2f3a 100%);
  animation:heroZoom 26s ease-in-out infinite alternate}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.06)}}
.stars,.stars2{position:absolute;inset:0;z-index:1;background-repeat:repeat;opacity:.5}
.stars{background-image:radial-gradient(1px 1px at 22px 34px,#fff8,transparent),radial-gradient(1px 1px at 130px 90px,#fff6,transparent),radial-gradient(1.5px 1.5px at 260px 40px,#fff9,transparent),radial-gradient(1px 1px at 320px 140px,#fff5,transparent);background-size:380px 200px}
.stars2{background-image:radial-gradient(1px 1px at 60px 120px,#ffedc966,transparent),radial-gradient(1.5px 1.5px at 200px 60px,#ffedc999,transparent);background-size:300px 180px;animation:tw 5.5s ease-in-out infinite alternate}
@keyframes tw{from{opacity:.25}to{opacity:.6}}
.sea{position:absolute;left:0;right:0;bottom:0;height:26vh;z-index:2;background:linear-gradient(180deg,transparent,rgba(4,12,20,.55) 60%,rgba(3,9,16,.9));pointer-events:none}
.moonline{position:absolute;left:50%;bottom:6vh;transform:translateX(-50%);width:2px;height:18vh;z-index:2;background:linear-gradient(180deg,rgba(227,201,143,.0),rgba(227,201,143,.5),rgba(227,201,143,0));filter:blur(1px)}
.palms{position:absolute;bottom:-2px;width:100%;z-index:3;opacity:.95}
.hero-in{position:relative;z-index:5;padding:120px 24px 140px;max-width:900px}
.hero .label{display:inline-block;margin-bottom:26px}
.h1{font-size:clamp(2.6rem,7.2vw,5.4rem);letter-spacing:.02em;color:var(--branco);font-weight:700}
.h1 em{font-style:italic;color:var(--champagne-2)}
.hero-sub{margin-top:26px;font-size:clamp(1rem,1.6vw,1.2rem);color:rgba(253,252,248,.82);font-weight:300}
.hero-sub strong{color:var(--champagne);font-weight:600}
.hero-meta{margin-top:30px;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(233,223,203,.75)}
.hero-ctas{margin-top:44px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.scrolldown{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:5;color:rgba(253,252,248,.5);font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;animation:bounce 2.4s infinite}
@keyframes bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

/* ==========================================================================
   COUNTDOWN
   ========================================================================== */
.count-sec{background:linear-gradient(180deg,#0b2f3a,#071B2E);padding:72px 0;border-top:1px solid rgba(233,223,203,.08);border-bottom:1px solid rgba(233,223,203,.08)}
.count{display:flex;justify-content:center;align-items:baseline;gap:clamp(18px,5vw,56px);flex-wrap:wrap}
.count .num{font-family:'Playfair Display',serif;font-size:clamp(2.6rem,7vw,4.6rem);font-weight:600;color:var(--branco);font-variant-numeric:tabular-nums;line-height:1}
.count .unit{display:block;margin-top:10px;font-size:.66rem;letter-spacing:.34em;text-transform:uppercase;color:var(--champagne);text-align:center}
.count .sep{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,4vw,3rem);color:rgba(201,169,106,.45);align-self:flex-start;padding-top:6px}
#virada-msg{display:none;font-family:'Playfair Display',serif;font-size:clamp(1.8rem,5vw,3.2rem);color:var(--champagne-2);text-align:center}

/* ==========================================================================
   SEÇÕES DE CONTEÚDO
   ========================================================================== */
.two{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
@media(max-width:860px){.two{grid-template-columns:1fr;gap:36px}}
.h2{font-size:clamp(1.9rem,4vw,2.9rem);margin:18px 0 22px}
.h2 em{font-style:italic;color:var(--champagne)}
.sec-claro .h2 em{color:var(--verde)}
.quote{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(1.25rem,2.6vw,1.7rem);line-height:1.55;color:var(--areia);max-width:840px;margin:0 auto}
.quote strong{color:var(--champagne-2);font-style:normal}

/* cards experiência */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:960px){.grid3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid3{grid-template-columns:1fr}}
.xp{background:rgba(253,252,248,.03);border:1px solid rgba(233,223,203,.12);border-radius:4px;padding:34px 28px;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .45s,background .45s}
.xp:hover{transform:translateY(-6px);border-color:rgba(201,169,106,.5);background:rgba(253,252,248,.05)}
.xp .ic{font-size:1.5rem;margin-bottom:16px;color:var(--champagne)}
.xp h3{font-size:1.12rem;letter-spacing:.12em;margin-bottom:10px;color:var(--branco)}
.xp p{font-size:.92rem;color:rgba(253,252,248,.62);font-weight:300}

/* lista o que fazer */
.todo{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 34px;margin-top:30px}
@media(max-width:720px){.todo{grid-template-columns:1fr}}
.todo a,.todo span{display:flex;gap:12px;align-items:baseline;padding:13px 4px;border-bottom:1px solid rgba(18,34,46,.12);font-size:.98rem;color:var(--ink);transition:padding-left .3s,color .3s}
.todo a:hover{padding-left:10px;color:var(--verde)}
.todo .n{font-family:'Playfair Display',serif;font-style:italic;color:var(--verde);min-width:26px}

/* galeria placeholders */
.gal{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:220px;gap:14px}
@media(max-width:860px){.gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}}
.gal .ph{position:relative;border-radius:4px;overflow:hidden;display:flex;align-items:flex-end;padding:16px;transition:transform .5s}
.gal .ph:hover{transform:scale(1.02)}
.gal .ph.wide{grid-column:span 2}
.gal .ph small{position:relative;z-index:2;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(253,252,248,.85);background:rgba(5,15,28,.45);padding:6px 10px;border-radius:2px;backdrop-filter:blur(4px)}
.g1{background:linear-gradient(160deg,#0E3A47,#071B2E 60%,#050F1C)}
.g2{background:linear-gradient(150deg,#C9A96A55,#0E3A47 55%)}
.g3{background:linear-gradient(200deg,#1E5C4F,#071B2E 70%)}
.g4{background:linear-gradient(140deg,#E9DFCB33,#0b2f3a 50%,#050F1C)}
.g5{background:linear-gradient(170deg,#071B2E,#C9A96A33 90%)}
.gal .ph::after{content:"";position:absolute;inset:0;background:radial-gradient(420px 150px at 50% 110%,rgba(201,169,106,.28),transparent 65%)}

/* ingressos */
.lotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
@media(max-width:900px){.lotes{grid-template-columns:1fr;max-width:460px;margin:0 auto}}
.lote{background:rgba(253,252,248,.035);border:1px solid rgba(233,223,203,.14);border-radius:4px;padding:40px 32px;display:flex;flex-direction:column;gap:14px;text-align:center;transition:transform .45s,border-color .45s}
.lote:hover{transform:translateY(-6px);border-color:rgba(201,169,106,.55)}
.lote.dest{border-color:var(--champagne);background:linear-gradient(180deg,rgba(201,169,106,.10),rgba(253,252,248,.03))}
.lote .nome{font-size:.72rem;letter-spacing:.3em;color:var(--champagne)}
.lote .valor{font-family:'Playfair Display',serif;font-size:2rem;color:var(--branco)}
.lote p{font-size:.88rem;color:rgba(253,252,248,.6);flex:1}
.lote .btn{width:100%}

/* localização */
.mapbox{border:1px solid rgba(18,34,46,.15);border-radius:4px;overflow:hidden;background:#dfe7e5}
.mapbox iframe{width:100%;height:380px;border:0;display:block}
.addr{font-size:1.05rem;line-height:1.9}
.addr strong{font-family:'Playfair Display',serif;font-size:1.3rem;letter-spacing:.14em}

/* como chegar */
.rotas{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:900px){.rotas{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.rotas{grid-template-columns:1fr}}
.rota{border:1px solid rgba(18,34,46,.14);border-radius:4px;padding:26px 22px;background:var(--branco)}
.rota h3{font-size:1rem;letter-spacing:.12em;margin-bottom:8px;color:var(--petrol)}
.rota p{font-size:.88rem;color:rgba(18,34,46,.72);font-weight:300}

/* tradição */
.trad{position:relative;background:linear-gradient(180deg,#071B2E,#050F1C);overflow:hidden}
.trad .num30{font-family:'Playfair Display',serif;font-size:clamp(5rem,16vw,11rem);font-weight:700;line-height:.9;color:transparent;-webkit-text-stroke:1.5px rgba(201,169,106,.55)}
.trad .num30 span{display:block;font-size:clamp(.9rem,2vw,1.2rem);-webkit-text-stroke:0;color:var(--champagne);letter-spacing:.5em;font-family:'Inter';font-weight:500;margin-top:14px}

/* FAQ */
.faq{max-width:800px;margin:0 auto}
.faq details{border-bottom:1px solid rgba(18,34,46,.14)}
.faq summary{list-style:none;cursor:pointer;padding:22px 40px 22px 4px;font-family:'Playfair Display',serif;font-size:1.12rem;position:relative;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:'Inter';font-weight:300;font-size:1.5rem;color:var(--verde);transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq .resp{padding:0 4px 24px;font-size:.96rem;color:rgba(18,34,46,.78);font-weight:300;max-width:64ch}
.faq .resp a{color:var(--verde);text-decoration:underline;text-underline-offset:3px}

/* instagram */
.insta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:34px 0}
@media(max-width:720px){.insta{grid-template-columns:repeat(2,1fr)}}
.insta .ph{aspect-ratio:1;border-radius:4px}

/* CTA final */
.final{position:relative;text-align:center;padding:150px 24px;overflow:hidden;background:
 radial-gradient(900px 340px at 50% 118%,rgba(201,169,106,.35),transparent 62%),
 linear-gradient(180deg,#050F1C,#071B2E 55%,#0E3A47)}
.final .h2{font-size:clamp(2.2rem,5.6vw,4rem)}

/* footer */
footer{background:#040c16;padding:56px 0 110px;font-size:.85rem;color:rgba(253,252,248,.55)}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
@media(max-width:760px){.foot{grid-template-columns:1fr}}
footer h4{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--champagne);margin-bottom:16px}
footer a{display:block;padding:5px 0;color:rgba(253,252,248,.6);transition:color .3s}
footer a:hover{color:var(--champagne)}

/* whatsapp float + barra mobile */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:55;display:flex;align-items:center;gap:10px;background:#128C7E;color:#fff;padding:13px 20px;border-radius:50px;font-size:.8rem;font-weight:600;letter-spacing:.06em;box-shadow:0 14px 34px -10px rgba(0,0,0,.5);transition:transform .3s}
.wa-float:hover{transform:translateY(-3px)}
.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:56;background:rgba(5,15,28,.97);backdrop-filter:blur(12px);border-top:1px solid rgba(233,223,203,.12);padding:10px 12px;gap:10px}
.mbar .btn{flex:1;padding:14px 8px;font-size:.72rem}
@media(max-width:760px){.mbar{display:flex}.wa-float{bottom:78px;right:16px;padding:12px 16px}}

.ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.gal .ph:has(.ph-img)::after{background:linear-gradient(180deg,transparent 55%,rgba(4,12,20,.45))}
