/* Polimento visual: tipografia, cabeçalho, microinterações e movimento leve. */
:root{--font:"Plus Jakarta Sans",Arial,Helvetica,sans-serif;--ease:cubic-bezier(.22,.7,.2,1)}
body,button,input,select,textarea{font-family:var(--font)}
body{font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,.campaign-heading,.manifesto-title,.lead,.hero-message{font-family:var(--font)}
h1,.campaign-heading,.hero h1{font-weight:800;letter-spacing:-.045em}
h2{font-weight:800;letter-spacing:-.035em}
.eyebrow,.hero-bottom,.visual-note{font-weight:800}
::selection{background:var(--pink);color:#fff}

/* Cabeçalho fixo com vidro fosco */
.site-header{position:sticky;top:0;background:#fbf8f0e6;-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);transition:box-shadow .3s,min-height .3s;min-height:96px}
.site-header.is-scrolled{box-shadow:0 6px 24px #17244922;min-height:78px}
.institution-brand img{transition:transform .4s var(--ease)}
.institution-brand:hover img{transform:rotate(-6deg) scale(1.06)}
.site-header nav a{position:relative;border-bottom:0!important;transition:color .2s}
.site-header nav a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.site-header nav a:hover::after,.site-header nav a[aria-current="page"]::after{transform:scaleX(1)}
.menu-toggle{border:2px solid var(--navy);background:var(--navy);color:#fff;border-radius:999px;padding:9px 18px;font-weight:700;font-size:14px;cursor:pointer;min-height:44px;transition:background .2s}
.menu-toggle[aria-expanded="true"]{background:var(--pink);border-color:var(--pink)}

/* Botões e cartões */
.button{border-radius:999px;position:relative;overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s}
.button::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#ffffff55 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s var(--ease)}
.button:hover::after{transform:translateX(120%)}
.button:hover{transform:translateY(-3px);box-shadow:0 10px 22px #ef267845}
.button span{transition:transform .25s var(--ease)}
.button:hover span,.text-link:hover span{transform:translate(3px,-3px)}
.text-link span{display:inline-block;transition:transform .25s var(--ease)}
.service-grid article,.themes article,.contact-cards article,.steps article,.leaders article{transition:transform .35s var(--ease),border-color .3s}
.service-grid article:hover,.themes article:hover,.steps article:hover{transform:translateY(-6px);border-color:var(--pink)}
.event-offer{border-radius:0 14px 14px 0}
.story-section figure img,.destination figure img{border-radius:18px}
.destination figure{overflow:hidden;border-radius:18px}
.destination figure img{transition:transform 1.2s var(--ease)}
.destination figure:hover img{transform:scale(1.04)}
details{transition:background .2s}
summary{list-style:none;position:relative;padding-right:34px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:4px;top:-2px;font-size:26px;line-height:1;color:var(--pink);transition:transform .3s var(--ease)}
details[open] summary::after{transform:rotate(45deg)}

/* Hero: entrada e flutuação leve (somente transform/opacity) */
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes archIn{from{opacity:0;transform:scale(.92) translateY(30px)}to{opacity:1;transform:none}}
@keyframes riseIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes drift{0%,100%{transform:translateX(0)}50%{transform:translateX(-14px)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 #1f9d6a80}70%{box-shadow:0 0 0 16px #1f9d6a00}100%{box-shadow:0 0 0 0 #1f9d6a00}}
.hero .arch{animation:archIn 1s var(--ease) both}
.hero .arch2{animation-delay:.12s}.hero .arch3{animation-delay:.24s}
.hero .mascots,.hero .eye{will-change:transform}
.hero .era{animation:drift 9s ease-in-out infinite}
.hero-copy>*{animation:riseIn .8s var(--ease) both}
.hero-copy>*:nth-child(2){animation-delay:.08s}.hero-copy>*:nth-child(3){animation-delay:.16s}.hero-copy>*:nth-child(4){animation-delay:.24s}.hero-copy>*:nth-child(5){animation-delay:.32s}.hero-copy>*:nth-child(6){animation-delay:.4s}.hero-copy>*:nth-child(7){animation-delay:.48s}.hero-copy>*:nth-child(8){animation-delay:.56s}
.hero-bottom{overflow:hidden}

/* Revelar ao rolar */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}
.js .reveal.is-in{opacity:1;transform:none}

/* WhatsApp flutuante */
.whatsapp-floating{border-radius:999px;animation:pulse 2.8s ease-out 2s infinite}
@media(max-width:600px){
 .whatsapp-floating{padding:6px;min-height:0;width:64px;height:64px;justify-content:center;max-width:none}
 .whatsapp-floating .floating-copy,.whatsapp-floating .floating-arrow{display:none}
 .floating-logo{width:50px;height:50px}.floating-logo img{width:46px;height:46px}
 body{padding-bottom:84px}
 .site-header{min-height:76px}.site-header.is-scrolled{min-height:68px}
 .hero .hero-visual{padding-bottom:18px}
 
}
@media(max-width:900px){.site-header nav a{font-size:14px}}

/* Quem prefere menos movimento */
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important}
 .js .reveal{opacity:1;transform:none}
}
.period{margin-left:-.1em}
h1,h2,h3,.manifesto-title,.campaign-heading{word-spacing:.1em}
h2,.manifesto-title{letter-spacing:-.025em!important}
.hero h1,.campaign-heading{letter-spacing:-.04em!important}

/* Galeria do hotel */
.hotel-gallery{margin-top:48px}
.hotel-gallery h3{font-size:clamp(24px,2.6vw,34px);letter-spacing:-.02em;margin:0 0 22px}
.g-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(130px,17vw,230px);gap:12px}
.g-item{margin:0!important;border-radius:14px;overflow:hidden;background:#e7e2d6;min-height:0}
.g-item:nth-child(1),.g-item:nth-child(6){grid-column:span 2}
.g-item button{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.g-item img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0!important;transition:transform .7s var(--ease)}
.g-item button:hover img,.g-item button:focus-visible img{transform:scale(1.07)}
.g-item button:focus-visible{outline:3px solid var(--pink);outline-offset:-3px}
@media(max-width:700px){.g-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(120px,34vw,200px);gap:8px}.g-item:nth-child(1),.g-item:nth-child(6){grid-column:span 2}}
.lightbox{position:fixed;inset:0;z-index:100;background:#0b1530ee;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s}
.lightbox.is-open{opacity:1;pointer-events:auto}
.lightbox img{max-width:min(1100px,100%);max-height:86vh;border-radius:12px;box-shadow:0 20px 60px #0008}
.lightbox button{position:absolute;border:0;background:#ffffff22;color:#fff;font-size:30px;line-height:1;width:48px;height:48px;border-radius:50%;cursor:pointer}
.lightbox button:hover{background:var(--pink)}
.lightbox .lb-close{top:16px;right:16px}.lightbox .lb-prev{left:14px}.lightbox .lb-next{right:14px}
.destination .g-item img{height:100%;width:100%;border-radius:0}
.destination .g-item:hover img{transform:none}
.destination .g-item button:hover img{transform:scale(1.07)}
.destination .g-item{overflow:hidden}
.g-item:nth-child(7),.g-item:nth-child(8){grid-column:span 2}

/* Contagem regressiva e selo giratório do hero */
.countdown{margin:0 0 26px;max-width:490px}
.cd-title{margin:0 0 10px!important;font-size:11px!important;letter-spacing:2px;font-weight:800;color:var(--teal)!important;text-transform:uppercase}
.cd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cd-grid div{background:#ffffff12;border:1px solid #ffffff2e;border-radius:14px;padding:10px 4px 8px;text-align:center}
.cd-grid b{display:block;font-size:clamp(26px,3vw,38px);line-height:1.1;font-weight:800;color:var(--yellow);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.cd-grid span{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:#d2d8e7;font-weight:700}
.badge80{position:absolute;z-index:4;left:7%;top:9%;width:clamp(110px,12vw,150px);aspect-ratio:1;border-radius:50%;background:var(--pink);box-shadow:0 8px 24px #0006;display:grid;place-items:center;transform:rotate(-8deg)}
.badge80 svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.badge80 .ring{transform-origin:60px 60px;animation:spin 16s linear infinite}
.badge80 text{font-size:10.5px;font-weight:800;letter-spacing:1.6px;fill:#fff}
.badge80 .core{position:relative;display:flex;flex-direction:column;align-items:center;line-height:1;color:var(--navy);background:var(--yellow);width:54%;aspect-ratio:1;border-radius:50%;justify-content:center}
.badge80 .core b{font-size:clamp(22px,2.6vw,32px);font-weight:800;letter-spacing:-.04em}
.badge80 .core small{font-size:9px;font-weight:800;letter-spacing:1.5px}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:600px){.cd-grid{gap:7px}.cd-grid b{font-size:26px}.badge80{left:3%;top:4%;width:92px}}

/* Fotos do hotel ao fundo do hero (troca suave) */
.hero{isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-1;overflow:hidden;background:var(--navy)}
.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1.6s ease,transform 9s linear}
.hero-bg img.on{opacity:1;transform:scale(1)}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#172449f0 0%,#172449cc 38%,#1724494d 100%)}
@media(max-width:600px){.hero-bg::after{background:linear-gradient(180deg,#172449e6 0%,#172449cc 55%,#17244980 100%)}}
@media(prefers-reduced-motion:reduce){.hero-bg img{transition:none;transform:none}}

/* O que está incluso */
.included{background:#f0ecdf;padding:95px 0}
.included h2 em{color:var(--pink)}
.included-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.included-grid article{background:#fff;border-radius:20px;padding:26px 22px;border:1px solid #17244918;transition:transform .35s var(--ease),box-shadow .35s}
.included-grid article:hover{transform:translateY(-6px);box-shadow:0 14px 30px #17244918}
.inc-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--yellow);font-size:25px;margin-bottom:16px}
.included-grid h3{font-size:19px;letter-spacing:-.02em;margin:0 0 8px;line-height:1.25}
.included-grid p{font-size:15px;line-height:1.55;color:#526078;margin:0}
.included-grid .inc-price{background:var(--navy);color:#fff;grid-column:span 1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px}
.inc-price>span{font-size:11px;letter-spacing:2px;font-weight:800;color:var(--teal)}
.inc-price strong{font-size:32px;letter-spacing:-.03em;color:var(--yellow);line-height:1.1}
.included-grid .inc-price p{color:#d2d8e7;margin-bottom:12px}
.inc-price .button{padding:13px 20px;font-size:15px;min-height:46px}
@media(max-width:1000px){.included-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.included{padding:60px 0}.included-grid{grid-template-columns:1fr;gap:12px;margin-top:30px}}
