/* =========================================================
   GS INFINITY TRAVEL / Design System
   Paleta oficial (manual da marca + peças de campanha)
   ========================================================= */
:root{
  --navy:#120D44;        /* Marinho: cor base da marca      */
  --navy-2:#1B1560;      /* Marinho elevado                  */
  --royal:#051D7D;       /* Azul royal                       */
  --mint:#71E6CC;        /* Menta: destaque principal       */
  --mint-dark:#3FBFA3;
  --teal:#40A3B6;        /* Petróleo                         */
  --gold:#FFC100;        /* Dourado: rota de voo            */
  --apricot:#FDCE82;     /* Damasco: cards e botões         */
  --apricot-soft:#FDF0DA;
  --cream:#FAF9F6;       /* Base clara                       */
  --white:#FFFFFF;
  --serenity:#BFDCF2;    /* Serenity: links do menu            */
  --nav-pill:#08051D;    /* cápsula do menu, marinho profundo  */
  --bordo:#6C2631;      /* Bordô: mensagens de erro         */

  --bubble:"Titan One",system-ui,sans-serif;   /* display das peças */
  --display:"Fredoka",system-ui,sans-serif;
  --font:"Poppins",system-ui,-apple-system,sans-serif;

  --max:1280px;
  --r-card:22px;
  --r-lg:30px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;border:0 solid transparent}
html{scroll-behavior:smooth;scroll-padding-top:clamp(96px,9vw,112px);-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);color:var(--navy);background:var(--cream);
  line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;cursor:pointer}
ul{list-style:none}

.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:22px}

/* tipografia de marca */
.display{font-family:var(--bubble);font-weight:400;line-height:.98;letter-spacing:0}
.eyebrow{
  font-family:var(--font);font-weight:500;text-transform:uppercase;
  font-size:clamp(11px,1.5vw,15px);letter-spacing:.34em;line-height:1.6
}
h1,h2{font-family:var(--bubble);font-weight:400;line-height:1;letter-spacing:0}
h3,h4{font-family:var(--display);font-weight:600;line-height:1;letter-spacing:-.01em}

/* gotinhas de brilho (assinatura das peças GS) */
.sparkle{display:inline-block;width:.42em;height:.62em;vertical-align:top;position:relative;margin-left:.12em}
.sparkle i{position:absolute;background:var(--apricot);border-radius:60% 60% 60% 0;transform:rotate(-30deg)}
.sparkle i:nth-child(1){width:38%;height:34%;left:22%;top:0}
.sparkle i:nth-child(2){width:32%;height:28%;left:58%;top:24%}
.sparkle i:nth-child(3){width:30%;height:26%;left:12%;top:44%}

/* rota de voo tracejada / divisor de seções */
.flightpath{width:100%;display:block;overflow:hidden;background:var(--cream)}
.flightpath svg{display:block;width:100%;height:auto;min-height:64px}
.fp-dash{fill:none;stroke:var(--gold);stroke-width:5;stroke-linecap:round;stroke-dasharray:14 16}
.fp-plane{fill:var(--navy)}

/* barra de progresso de leitura */
.progress{
  position:absolute;left:0;right:0;bottom:0;height:3px;
  background:rgba(250,249,246,.1);pointer-events:none
}
.progress i{
  display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--mint),var(--gold));
  will-change:transform
}

/* reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s cubic-bezier(.22,1,.36,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* =========================================================
   HEADER
   ========================================================= */
.hdr{position:sticky;top:0;z-index:70;background:var(--navy)}
.hdr__in{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:12px}
.hdr__logo img{height:78px;width:auto}
.nav{
  display:flex;align-items:center;gap:2px;
  background:var(--nav-pill);border-radius:999px;padding:7px
}
@media (min-width:1024px){
  .nav{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
}
.nav a{
  padding:11px 17px;border-radius:999px;color:var(--serenity);
  font-weight:700;font-size:clamp(15px,1.3vw,18px);line-height:1;letter-spacing:-.01em;
  white-space:nowrap;transition:background .2s,color .2s
}
.nav a:hover,.nav a:focus-visible{background:var(--mint);color:var(--navy)}
.burger{display:none;padding:9px;border-radius:14px;background:var(--mint);color:var(--navy)}
.burger svg{width:24px;height:24px}
.mnav{display:none;background:var(--navy);padding:6px 22px 20px}
.mnav.open{display:block}
.mnav a{
  display:block;padding:13px 4px;color:var(--cream);font-weight:500;font-size:17px;
  border-bottom:1px solid rgba(250,249,246,.14)
}
.mnav__cta{
  display:block;width:100%;text-align:left;padding:15px 4px;border-bottom:0;
  color:var(--mint);font-family:var(--display);font-weight:600;font-size:18px
}
@media (max-width:1023px){
  .nav{display:none}
  .burger{display:block}
  .hdr__logo img{height:65px}
}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;background:var(--navy);color:var(--cream);padding:46px 0 0;overflow:hidden}
.hero::before{
  content:"";position:absolute;width:760px;height:760px;right:-260px;top:-300px;border-radius:50%;
  background:radial-gradient(circle,rgba(113,230,204,.16),transparent 65%);pointer-events:none
}
.hero__grid{display:grid;gap:34px;align-items:center;position:relative;z-index:2}
@media (min-width:1024px){.hero__grid{grid-template-columns:1.05fr .95fr;gap:52px}}
.hero .eyebrow{color:var(--mint);margin-bottom:16px}
.hero h1{
  font-size:clamp(46px,8.6vw,96px);color:var(--cream);
  text-transform:uppercase;letter-spacing:0;line-height:.98
}
.hero h1 span{color:var(--mint)}
.hero__lead{
  margin-top:20px;max-width:540px;font-size:clamp(14.5px,1.7vw,16.5px);
  font-weight:300;color:rgba(250,249,246,.88);line-height:1.65
}
.hero__lead b{font-weight:600;color:var(--apricot)}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:30px}

/* botão pill com "knob" damasco (assinatura GS) */
.toggle{
  display:inline-flex;align-items:center;gap:14px;
  border:2px solid var(--navy);border-radius:999px;padding:7px 26px 7px 7px;
  background:var(--cream);color:var(--navy);
  font-family:var(--display);font-weight:600;font-size:16px;letter-spacing:.06em;text-transform:uppercase;
  transition:transform .18s ease,box-shadow .18s ease
}
.toggle::before{content:"";width:34px;height:34px;border-radius:50%;background:var(--apricot);flex:none;transition:transform .25s ease}
.toggle:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(18,13,68,.3)}
.toggle:hover::before{transform:translateX(3px)}
.toggle--onDark{border-color:var(--cream)}
.btn-ghost{
  display:inline-flex;align-items:center;gap:9px;padding:14px 22px;border-radius:999px;
  border:1.5px solid rgba(250,249,246,.4);color:var(--cream);font-weight:500;font-size:14.5px;
  transition:border-color .2s,color .2s
}
.btn-ghost:hover{border-color:var(--mint);color:var(--mint)}
.btn-ghost svg{width:18px;height:18px}

.hero__art{position:relative;justify-self:center;width:100%;max-width:540px}
.hero__art img{
  width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:var(--r-lg);
  box-shadow:0 30px 60px rgba(0,0,0,.42);position:relative;z-index:2
}
.hero__art::after{
  content:"";position:absolute;inset:16px -16px -16px 16px;border-radius:var(--r-lg);
  border:2px solid var(--mint);z-index:1
}
.hero__price{
  position:absolute;left:-14px;bottom:-26px;z-index:3;background:var(--apricot);color:var(--navy);
  border-radius:20px;padding:14px 22px;box-shadow:0 16px 32px rgba(0,0,0,.3)
}
.hero__price small{display:block;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.hero__price b{font-family:var(--bubble);font-weight:400;font-size:29px;line-height:1.15;display:block}
.hero__price i{font-style:normal;font-size:11px;font-weight:500;opacity:.8}

/* marquise menta */
.strip{background:var(--mint);color:var(--navy);overflow:hidden;padding:13px 0;margin-top:62px;position:relative;z-index:3}
.strip__track{display:flex;width:max-content;animation:slide 60s linear infinite}
.strip__track span{
  font-family:var(--bubble);font-weight:400;font-size:clamp(16px,2.2vw,24px);
  letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;padding-right:.5em
}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* =========================================================
   TÍTULOS DE SEÇÃO
   ========================================================= */
.sec-head{text-align:center;max-width:760px;margin:0 auto 46px}
.sec-head .eyebrow{color:var(--teal);margin-bottom:14px}
.sec-head h2{font-size:clamp(38px,6.4vw,74px);text-transform:uppercase}
.sec-head p{margin-top:16px;font-weight:300;font-size:15.5px;line-height:1.6}
.on-navy .sec-head .eyebrow{color:var(--mint)}
.on-navy .sec-head h2,.on-navy .sec-head p{color:var(--cream)}

/* =========================================================
   INCLUSO
   ========================================================= */
.incluso{background:var(--cream);padding:64px 0 70px}
.incluso__card{
  background:var(--apricot);border-radius:34px;padding:34px 24px 40px;
  box-shadow:0 20px 44px rgba(18,13,68,.12)
}
@media (min-width:768px){.incluso__card{padding:46px 52px 52px}}
.incluso__list{display:grid;gap:4px 44px;grid-template-columns:1fr}
@media (min-width:768px){.incluso__list{grid-template-columns:1fr 1fr}}
.incluso__item{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:2px solid var(--navy)}
.incluso__item .ico{
  width:46px;height:46px;flex:none;border-radius:50%;background:var(--navy);color:var(--apricot);
  display:grid;place-items:center
}
.incluso__item .ico svg{width:23px;height:23px}
.incluso__item span{font-size:15.5px;font-weight:500;line-height:1.3;color:var(--navy)}
@media (min-width:768px){
  .incluso__item--wide{grid-column:1 / -1;justify-content:center;border-bottom:0;padding-bottom:0}
  .incluso__item--wide span{border-bottom:2px solid var(--navy);padding-bottom:12px}
}

.notincl{margin-top:44px;text-align:center}
.notincl h3{font-size:clamp(22px,3vw,30px);text-transform:uppercase;color:var(--navy)}
.notincl ul{display:flex;flex-wrap:wrap;gap:10px 14px;justify-content:center;margin-top:18px}
.notincl li{
  font-size:13px;font-weight:400;color:var(--navy);border:1.5px solid rgba(18,13,68,.25);
  border-radius:999px;padding:8px 18px
}
.tagline{
  margin-top:44px;text-align:center;font-family:var(--display);font-weight:600;
  font-size:clamp(22px,3.6vw,38px);text-transform:uppercase;color:var(--navy);line-height:1.15
}
.tagline em{font-style:normal;font-family:var(--bubble);font-weight:400;color:var(--teal)}

/* =========================================================
   ROTEIRO
   ========================================================= */
.roteiro{background:var(--navy);padding:66px 0 74px}
.days{display:flex;flex-direction:column;gap:40px}
.day{display:grid;gap:0;grid-template-columns:1fr}
@media (min-width:1024px){
  .day{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);align-items:center}
  .day--rev .day__img{order:2}
}
.day__img{position:relative;z-index:2}
.day__img img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg);
  box-shadow:0 24px 48px rgba(0,0,0,.45)
}
.day__body{position:relative;z-index:1}
.day__n{
  font-family:var(--display);font-weight:600;color:var(--gold);
  font-size:clamp(30px,4.6vw,44px);line-height:1;letter-spacing:.02em;
  margin:22px 0 -14px 6px;position:relative;z-index:3;text-transform:uppercase
}
.day__panel{background:var(--cream);border-radius:var(--r-card);padding:30px 24px 26px}
.day__panel h3{font-size:clamp(25px,3.4vw,34px);color:var(--navy);text-transform:uppercase;margin-bottom:12px}
.day__panel p{font-size:14.5px;font-weight:300;line-height:1.62;color:rgba(18,13,68,.86)}
@media (min-width:1024px){
  .day__n{margin:0 0 6px 78px}
  .day--rev .day__n{margin:0 78px 6px 0;text-align:right}
  .day__panel{padding:32px 34px 32px 96px;margin-left:-72px}
  .day--rev .day__panel{padding:32px 96px 32px 34px;margin-left:0;margin-right:-72px}
}
.aviso{
  display:flex;gap:16px;align-items:flex-start;max-width:820px;margin:44px auto 0;
  background:var(--apricot);color:var(--navy);border-radius:20px;padding:20px 24px
}
.aviso__ico{
  width:38px;height:38px;flex:none;border-radius:50%;background:var(--navy);color:var(--apricot);
  display:grid;place-items:center
}
.aviso__ico svg{width:20px;height:20px}
.aviso b{
  display:block;font-family:var(--display);font-weight:600;font-size:17px;line-height:1.3;
  margin-bottom:6px
}
.aviso p{font-size:13.5px;font-weight:400;line-height:1.5;color:rgba(18,13,68,.82)}
.roteiro__note{
  margin-top:24px;text-align:center;font-size:12.5px;font-weight:300;color:rgba(250,249,246,.6)
}

/* =========================================================
   BANNER
   ========================================================= */
.banner{position:relative;width:100%;height:clamp(440px,66vh,700px);overflow:hidden}
.banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,13,68,.62),rgba(18,13,68,.34) 45%,rgba(18,13,68,.82))}
.banner__in{position:relative;z-index:3;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}
.banner h2{font-size:clamp(34px,6.6vw,80px);color:var(--cream);text-transform:uppercase;line-height:1.02}
.banner h2 em{font-style:normal;color:var(--mint)}
.banner p{margin:20px auto 0;max-width:620px;color:rgba(250,249,246,.9);font-weight:300;font-size:15.5px}

/* =========================================================
   HOSPEDAGEM + VALOR
   ========================================================= */
.valores{background:var(--cream);padding:64px 0 70px}
.valores .valor{margin-top:0}

.valor{
  margin-top:52px;background:var(--navy);border-radius:34px;color:var(--cream);
  padding:40px 22px 44px;text-align:center;position:relative;overflow:hidden
}
@media (min-width:768px){.valor{padding:52px 52px 56px}}
.valor__in{position:relative}
.valor .eyebrow{color:var(--mint)}
.valor__price{
  font-family:var(--bubble);font-weight:400;color:var(--cream);
  font-size:clamp(54px,11vw,116px);line-height:1;margin:10px 0 2px;
  display:flex;align-items:flex-start;justify-content:center;gap:.06em
}
.valor__price sup{font-size:.3em;font-weight:400;margin-top:.5em}
.valor__per{font-size:13px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--apricot)}
.valor__note{margin:24px auto 0;max-width:620px;font-size:12.5px;font-weight:300;color:rgba(250,249,246,.66);line-height:1.7}
.valor .toggle{margin-top:26px}

/* =========================================================
   FAQ
   ========================================================= */
.faq{background:var(--navy);padding:64px 0 74px}
.acc{max-width:980px;margin-inline:auto;display:flex;flex-direction:column;gap:12px}
.acc__item{border-radius:18px;overflow:hidden;background:var(--apricot)}
.acc__btn{
  position:relative;width:100%;min-height:66px;display:flex;align-items:center;
  text-align:left;padding:16px 58px 16px 24px;transition:background .2s
}
.acc__btn:hover{background:rgba(255,255,255,.3)}
.acc__btn span{font-family:var(--display);font-weight:600;font-size:clamp(16px,2.1vw,21px);color:var(--navy);line-height:1.25}
.acc__btn svg{position:absolute;right:20px;top:50%;transform:translateY(-50%);width:24px;height:24px;color:var(--navy);transition:transform .25s ease}
.acc__item.open .acc__btn svg{transform:translateY(-50%) rotate(180deg)}
.acc__body{max-height:0;overflow:hidden;background:var(--apricot-soft);transition:max-height .35s ease}
.acc__body p{padding:20px 24px;font-size:14.5px;font-weight:300;line-height:1.65;color:var(--navy)}

/* =========================================================
   SOBRE
   ========================================================= */
.sobre{background:var(--teal);padding:66px 0 74px}
.sobre .sec-head .eyebrow{color:var(--navy)}
.sobre .sec-head h2{color:var(--cream)}
.sobre__panel{background:var(--cream);border-radius:34px;padding:36px 24px 42px}
@media (min-width:768px){.sobre__panel{padding:52px 52px 56px}}
.sobre__texto{display:grid;gap:16px}
.sobre__texto p{font-weight:300;font-size:15.5px;line-height:1.7}
@media (min-width:900px){.sobre__texto{grid-template-columns:1fr 1fr;gap:16px 48px}}
.sobre__panel strong{font-weight:600}
.fundadoras{margin-top:38px;padding-top:34px;border-top:2px dashed rgba(18,13,68,.14)}
.fundadoras__titulo{
  font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  color:var(--teal);margin-bottom:22px;text-align:center
}
.fundadoras__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:30px 44px}
.fundadora{display:flex;align-items:center;gap:18px;margin:0}
.fundadora img{
  width:112px;height:112px;flex:none;border-radius:50%;object-fit:cover;
  background:var(--navy);box-shadow:0 0 0 3px var(--mint),0 10px 24px rgba(18,13,68,.18)
}
.fundadora figcaption b{
  display:block;font-family:var(--bubble);font-weight:400;font-size:22px;
  line-height:1.15;color:var(--navy)
}
.fundadora figcaption span{
  display:block;margin-top:5px;font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;color:var(--teal)
}
.pillars{display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:42px}
.pillar .ico{width:48px;height:48px;border-radius:50%;background:var(--navy);color:var(--mint);display:grid;place-items:center;margin-bottom:14px}
.pillar .ico svg{width:24px;height:24px}
.pillar h4{font-size:21px;text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.pillar p{font-size:14px;font-weight:300;line-height:1.6}

/* =========================================================
   GALERIA
   ========================================================= */
.galeria{background:var(--cream);padding:64px 0 70px}
.grid-g{display:grid;gap:14px;grid-template-columns:repeat(5,1fr)}
.grid-g figure{position:relative;aspect-ratio:1;border-radius:18px;overflow:hidden;box-shadow:0 10px 24px rgba(18,13,68,.14)}
.grid-g img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.grid-g figure:hover img{transform:scale(1.07)}
.grid-g figcaption{
  position:absolute;inset:auto 0 0 0;padding:28px 12px 11px;color:var(--cream);
  font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  background:linear-gradient(180deg,transparent,rgba(18,13,68,.88))
}

.insta{background:var(--cream);padding:64px 0 70px}
.insta__grid{display:grid;gap:12px;grid-template-columns:repeat(6,1fr)}
.insta__post{
  position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;
  box-shadow:0 8px 20px rgba(18,13,68,.12);background:var(--navy)
}
.insta__post img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,opacity .3s}
.insta__post::after{
  content:"";position:absolute;inset:0;background:rgba(18,13,68,.45);
  opacity:0;transition:opacity .3s
}
.insta__post:hover img{transform:scale(1.07)}
.insta__post:hover::after{opacity:1}
.insta__cta{
  display:flex;align-items:center;justify-content:center;gap:11px;width:max-content;
  margin:30px auto 0;padding:13px 26px;border-radius:999px;
  background:var(--navy);color:var(--mint);font-weight:600;font-size:15px;
  transition:transform .18s ease,background .18s
}
.insta__cta:hover{transform:translateY(-2px);background:var(--teal);color:var(--cream)}
.insta__cta svg{width:21px;height:21px;flex:none}

/* =========================================================
   DEPOIMENTOS
   ========================================================= */
.depo{background:var(--navy);padding:64px 0 72px}
.depo__grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(275px,1fr))}
.depo__card{background:var(--cream);border-radius:var(--r-card);padding:26px 24px;display:flex;flex-direction:column;gap:14px}
.depo__who{display:flex;align-items:center;gap:13px}
.depo__av{
  width:46px;height:46px;flex:none;border-radius:50%;object-fit:cover;
  background:var(--mint);box-shadow:0 0 0 2px var(--mint)
}
.depo__av--letra{
  display:grid;place-items:center;color:var(--navy);
  font-family:var(--display);font-weight:600;font-size:20px
}
.depo__who b{display:block;font-size:16px;font-weight:600;line-height:1.2;color:var(--navy)}
.stars{color:var(--gold);font-size:13px;letter-spacing:2px}
.depo__card p{font-size:14px;font-weight:300;line-height:1.6;color:rgba(18,13,68,.85);flex:1}

/* =========================================================
   CTA FINAL + RODAPÉ
   ========================================================= */
.cta{background:var(--mint);padding:64px 0 70px;text-align:center}
.cta h2{font-size:clamp(34px,6.2vw,72px);color:var(--navy);text-transform:uppercase}
.cta p{margin:18px auto 30px;max-width:580px;font-weight:300;font-size:15.5px;color:rgba(18,13,68,.82)}
.cta .toggle{background:var(--navy);color:var(--cream);border-color:var(--navy)}

.ftr{background:var(--navy);color:var(--cream);padding:52px 0 26px}
.ftr__in{display:grid;gap:34px;grid-template-columns:1fr}
@media (min-width:768px){.ftr__in{grid-template-columns:1.4fr 1fr}}
.ftr__insta{
  display:inline-flex;align-items:center;gap:10px;margin-top:16px;
  padding:9px 16px 9px 12px;border-radius:999px;
  border:1.5px solid rgba(113,230,204,.4);color:var(--mint);
  font-size:13px;font-weight:500;line-height:1;
  transition:background .2s,border-color .2s,color .2s
}
.ftr__insta:hover{background:var(--mint);border-color:var(--mint);color:var(--navy)}
.ftr__insta svg{width:19px;height:19px;flex:none}
.ftr__logo img{height:92px;width:auto;margin-bottom:16px}
.ftr p,.ftr a{font-size:13.5px;font-weight:300;line-height:1.9;color:rgba(250,249,246,.8)}
.ftr h4{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--mint);margin-bottom:10px;font-family:var(--font);font-weight:600}
.ftr a:hover{color:var(--mint)}
.ftr__bottom{
  margin-top:38px;padding-top:20px;border-top:1px solid rgba(250,249,246,.16);
  text-align:center;font-size:11.5px;font-weight:300;color:rgba(250,249,246,.5);line-height:1.8
}

/* flutuantes */
.float-w,.float-top{
  position:fixed;right:18px;z-index:80;width:56px;height:56px;border-radius:50%;
  display:grid;place-items:center;box-shadow:0 12px 28px rgba(18,13,68,.38);
  transition:transform .2s ease,opacity .25s ease
}
.float-w{bottom:max(20px,env(safe-area-inset-bottom));background:var(--mint);color:var(--navy)}
.float-top{bottom:max(88px,calc(env(safe-area-inset-bottom) + 68px));background:var(--gold);color:var(--navy);opacity:0;pointer-events:none}
.float-top.show{opacity:1;pointer-events:auto}
.float-w:hover,.float-top:hover{transform:translateY(-3px)}
.float-w svg,.float-top svg{width:29px;height:29px}

:focus-visible{outline:3px solid var(--mint);outline-offset:3px;border-radius:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* =========================================================
   FORMULÁRIO EM ETAPAS (popup, uma pergunta por vez)
   ========================================================= */
.modal{
  position:fixed;inset:0;z-index:100;display:none;
  align-items:center;justify-content:center;padding:20px;
  background:rgba(18,13,68,.84);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)
}
.modal.open{display:flex;animation:modalIn .22s ease}
@keyframes modalIn{from{opacity:0}to{opacity:1}}
.modal__card{
  position:relative;width:100%;max-width:540px;background:var(--cream);
  border-radius:30px;padding:26px 26px 30px;box-shadow:0 30px 70px rgba(0,0,0,.45);
  display:flex;flex-direction:column;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px)
}
.modal__close{
  position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;background:rgba(18,13,68,.08);color:var(--navy);
  transition:background .2s
}
.modal__close:hover{background:var(--apricot)}
.modal__close svg{width:19px;height:19px}

.fw__count{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  color:var(--teal);padding-right:44px
}
.fw__bar{height:5px;border-radius:999px;background:rgba(18,13,68,.1);margin:10px 0 24px;overflow:hidden}
.fw__bar i{
  display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--mint),var(--gold));
  transition:transform .35s cubic-bezier(.22,1,.36,1)
}

.fw__body{
  flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;
  scrollbar-color:rgba(18,13,68,.28) transparent
}
.fw__body::-webkit-scrollbar{width:6px}
.fw__body::-webkit-scrollbar-thumb{background:rgba(18,13,68,.25);border-radius:999px}
.fw__step{display:none}
.fw__step.on{display:block;animation:fwIn .32s cubic-bezier(.22,1,.36,1)}
@keyframes fwIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .modal.open,.fw__step.on{animation:none}
  .fw__bar i{transition:none}
}

.fw__q{font-family:var(--bubble);font-weight:400;font-size:clamp(23px,4.2vw,31px);line-height:1.1;color:var(--navy)}
.fw__hint{margin-top:9px;font-size:13.5px;font-weight:300;line-height:1.5;color:rgba(18,13,68,.62)}

.fw__field{margin-top:22px}
.fw__field input{
  width:100%;background:transparent;border-bottom:2px solid rgba(18,13,68,.25);
  font-family:var(--font);font-size:19px;font-weight:500;color:var(--navy);
  padding:10px 2px;border-radius:0;transition:border-color .2s
}
.fw__field input::placeholder{color:rgba(18,13,68,.3);font-weight:300}
.fw__field input:focus{outline:none;border-bottom-color:var(--teal)}
.fw__err{min-height:19px;margin-top:9px;font-size:12.5px;font-weight:500;color:var(--bordo)}

.fw__stepper{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:22px}
.fw__stepper button{
  width:54px;height:54px;border-radius:50%;flex:none;background:var(--navy);color:var(--apricot);
  font-family:var(--display);font-weight:600;font-size:27px;line-height:1;
  display:grid;place-items:center;transition:transform .16s,opacity .2s
}
.fw__stepper button:hover:not(:disabled){transform:scale(1.07)}
.fw__stepper button:disabled{opacity:.28;cursor:default}
.fw__stepper output{
  font-family:var(--bubble);font-weight:400;font-size:44px;color:var(--navy);
  min-width:72px;text-align:center;line-height:1
}

.fw__idades{display:grid;gap:10px;margin-top:20px}
.fw__idade{
  display:flex;align-items:center;gap:14px;background:var(--white);
  border-radius:14px;padding:8px 16px
}
.fw__idade label{flex:1;font-size:14px;font-weight:500;color:var(--navy)}
.fw__idade input{
  width:62px;flex:none;text-align:center;background:transparent;border-radius:0;
  border-bottom:2px solid rgba(18,13,68,.25);
  font-family:var(--font);font-size:18px;font-weight:600;color:var(--navy);padding:7px 2px
}
.fw__idade input::placeholder{color:rgba(18,13,68,.25);font-weight:400}
.fw__idade input:focus{outline:none;border-bottom-color:var(--teal)}
.fw__idade span{font-size:12.5px;font-weight:600;color:var(--teal);width:36px}
.fw__choices{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.fw__choice{
  flex:1 1 140px;padding:18px 16px;border-radius:16px;border:2px solid rgba(18,13,68,.18);
  background:var(--white);font-family:var(--display);font-weight:600;font-size:17px;color:var(--navy);
  transition:border-color .18s,background .18s,transform .18s
}
.fw__choice:hover{transform:translateY(-2px);border-color:var(--teal)}
.fw__choice[aria-pressed="true"]{background:var(--apricot);border-color:var(--navy)}

.fw__resumo{margin-top:20px;background:var(--white);border-radius:18px;padding:18px 20px}
.fw__resumo dl{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;font-size:14px;margin:0}
.fw__resumo dt{font-weight:600;color:var(--teal)}
.fw__resumo dd{text-align:right;font-weight:500;color:var(--navy);word-break:break-word}

.fw__nav{display:flex;align-items:center;gap:10px;margin-top:26px}
.fw__back{padding:12px 16px;border-radius:999px;font-size:14px;font-weight:500;color:rgba(18,13,68,.6);transition:color .2s}
.fw__back:hover{color:var(--navy)}
.fw__back[hidden]{display:none}
.fw__nav .toggle{margin-left:auto}

.fw__done{text-align:center;padding:14px 0 6px}
.fw__done .ok{
  width:66px;height:66px;margin:0 auto 18px;border-radius:50%;background:var(--mint);
  display:grid;place-items:center;color:var(--navy)
}
.fw__done .ok svg{width:32px;height:32px}
.fw__done h3{font-family:var(--bubble);font-weight:400;font-size:27px;color:var(--navy)}
.fw__done p{margin-top:12px;font-size:14.5px;font-weight:300;line-height:1.55;color:rgba(18,13,68,.7)}
.fw__done a{display:inline-block;margin-top:20px;font-weight:600;font-size:14px;color:var(--teal)}
.fw__contato{
  margin-top:22px;display:inline-flex;flex-direction:column;align-items:center;gap:4px;
  background:var(--white);border-radius:18px;padding:14px 24px 10px
}
.fw__contato span{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--teal)
}
.fw__contato a{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  margin-top:0;padding:6px 8px;min-height:44px;font-size:inherit;
  color:var(--navy);transition:color .2s
}
.fw__contato a:hover{color:var(--teal)}
.fw__contato svg{width:21px;height:21px;color:var(--whats);flex:none}
.fw__contato b{font-family:var(--bubble);font-weight:400;font-size:23px;line-height:1}

/* =========================================================
   RESPONSIVO
   Desktop >= 1024px   |   Tablet 641-1023px   |   Celular <= 640px
   ========================================================= */

/* ---------------- Tablet e abaixo ---------------- */
@media (max-width:1023px){
  .hero{padding-top:34px}
  .hero__grid{gap:30px}
  .hero h1{font-size:clamp(46px,7.8vw,74px)}
  .hero__lead{font-size:16px}
  .hero__art{max-width:560px}
  .strip{margin-top:52px}

  .sec-head{margin-bottom:38px}
  .sec-head h2{font-size:clamp(38px,6vw,62px)}

  .insta__grid{grid-template-columns:repeat(3,1fr)}

  /* 5 fotos em 3 + 2, com a segunda linha centralizada */
  .grid-g{grid-template-columns:repeat(6,1fr)}
  .grid-g figure{grid-column:span 2}
  .grid-g figure:nth-child(4){grid-column:2 / span 2}

  /* roteiro empilhado: foto mais baixa para encurtar a rolagem */
  .day__img img{aspect-ratio:16/10}
  .day__panel{padding:26px 24px 24px}
  .day__n{margin:20px 0 -12px 4px}

  .banner{height:clamp(400px,58vh,560px)}
  .banner h2{font-size:clamp(34px,5.8vw,58px)}
}

/* no tablet a foto do hero alinha pela mesma margem do texto, como no celular */
@media (min-width:641px) and (max-width:1023px){
  .hero__art{justify-self:start}
}

/* rodapé em 2 colunas no tablet retrato */
@media (min-width:641px) and (max-width:899px){
}

/* ---------------- Celular ---------------- */
@media (max-width:640px){
  .wrap{padding-inline:18px}

  /* respiro vertical proporcional à tela */
  .incluso,.valores,.galeria,.depo,.insta{padding:44px 0 48px}
  .insta__grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .insta__post{border-radius:14px}
  .roteiro,.faq,.sobre{padding:44px 0 50px}
  .cta{padding:46px 0 50px}
  .sec-head{margin-bottom:28px}
  .sec-head p{font-size:14.5px}
  .eyebrow{letter-spacing:.24em}

  .hero{padding-top:26px}
  .hero__actions{gap:12px;margin-top:26px}
  .hero__price{left:0;bottom:-22px;padding:12px 18px}
  .hero__price b{font-size:26px}
  .strip{margin-top:44px;padding:11px 0}

  /* galeria em 2 colunas: 8 fotos em 4 linhas, não em 8 */
  .grid-g{grid-template-columns:1fr 1fr;gap:10px}
  .grid-g figure,.grid-g figure:nth-child(4){grid-column:auto}
  .grid-g figure:last-child{grid-column:1 / -1;aspect-ratio:16/9}
  .grid-g figure{border-radius:14px}
  .grid-g figcaption{font-size:9.5px;letter-spacing:.03em;padding:20px 8px 8px}

  /* cartões e painéis mais justos */
  .incluso__card{padding:26px 18px 30px;border-radius:26px}
  .incluso__item{gap:13px;padding:12px 0}
  .incluso__item .ico{width:40px;height:40px}
  .incluso__item .ico svg{width:20px;height:20px}
  .incluso__item span{font-size:14.5px}
  .notincl{margin-top:34px}
  .tagline{margin-top:34px;line-height:1.2}

  .days{gap:28px}
  .day__panel{padding:24px 20px 22px}
  .day__panel p{font-size:14px}
  .aviso{gap:13px;padding:18px 18px;margin-top:34px;border-radius:18px}
  .aviso__ico{width:34px;height:34px}
  .aviso b{font-size:16px}
  .aviso p{font-size:13px}

  .valor{padding:34px 18px 38px;border-radius:26px}
  .valor__note{font-size:12px}
  .sobre__panel{padding:30px 20px 34px;border-radius:26px}
  .fundadoras{margin-top:30px;padding-top:28px}
  .fundadoras__grid{gap:22px 30px}
  .fundadora{gap:14px}
  .fundadora img{width:92px;height:92px}
  .fundadora figcaption b{font-size:20px}
  .pillars{gap:26px;margin-top:32px}
  .depo__card{padding:22px 20px}

  .banner{height:clamp(360px,60vh,480px)}
  .banner p{font-size:14.5px;margin-top:16px}

  /* alvos de toque confortáveis */
  .toggle{font-size:15px;padding:6px 22px 6px 6px}
  .toggle::before{width:32px;height:32px}
  .btn-ghost{padding:13px 20px}
  .acc__btn{min-height:60px;padding:15px 50px 15px 18px}
  .acc__btn svg{right:16px;width:22px;height:22px}
  .acc__body p{padding:16px 18px}
  .mnav a{padding:14px 4px}

  /* popup vira folha que sobe de baixo */
  .modal{padding:0;align-items:flex-end}
  .modal__card{
    max-width:none;border-radius:26px 26px 0 0;padding:22px 20px 24px;
    max-height:92vh;max-height:92dvh
  }
  .fw__q{font-size:23px}
  .fw__stepper button{width:48px;height:48px;font-size:24px}
  .fw__stepper output{font-size:37px;min-width:62px}
  .fw__choice{padding:16px 14px;font-size:16px}
  .fw__nav{gap:6px;margin-top:22px}
  .fw__back{padding:12px 10px;font-size:13.5px}

  /* flutuantes menores, e rodapé com folga para não ficar embaixo deles */
  .float-w,.float-top{width:50px;height:50px;right:14px}
  .float-w svg,.float-top svg{width:26px;height:26px}
  .float-top{bottom:max(78px,calc(env(safe-area-inset-bottom) + 60px))}
  .ftr{padding-bottom:140px}
  .ftr__logo img{height:78px}
}

/* ---------------- Celular pequeno ---------------- */
@media (max-width:380px){
  .hero h1{font-size:43px}
  .sec-head h2{font-size:34px}
  .valor__price{font-size:50px}
  .incluso__item span{font-size:14px}
}

/* ---------------- Telefone deitado ---------------- */
@media (max-width:900px) and (orientation:landscape){
  .banner{height:min(78vh,420px)}
  .mnav{max-height:70vh;overflow-y:auto}
}

/* =========================================================
   BETO CARRERO / ajustes e blocos novos
   ========================================================= */
.hero__when{
  display:inline-flex;align-items:center;gap:10px;margin-top:22px;
  background:rgba(113,230,204,.12);border:1.5px solid rgba(113,230,204,.45);
  border-radius:999px;padding:8px 18px 8px 10px;color:var(--cream);font-weight:500;font-size:14.5px
}
.hero__when svg{width:26px;height:26px;padding:5px;border-radius:50%;background:var(--mint);color:var(--navy);flex:none}
.hero__when b{color:var(--mint);font-weight:600}

/* dia sem foto: cartão ilustrado */
.day__img--ico{
  aspect-ratio:4/3;border-radius:var(--r-lg);background:var(--teal);
  display:grid;place-items:center;box-shadow:0 24px 48px rgba(0,0,0,.45);
  position:relative;overflow:hidden
}
.day__img--ico::before{
  content:"";position:absolute;inset:auto -10% -40% -10%;height:70%;border-radius:50%;
  background:rgba(18,13,68,.18)
}
.day__img--ico svg{width:38%;height:auto;color:var(--cream);position:relative}
.day__img--ico span{
  position:absolute;left:0;right:0;bottom:22px;text-align:center;
  font-family:var(--bubble);font-size:clamp(20px,2.6vw,28px);color:var(--apricot);text-transform:uppercase
}
@media (max-width:1023px){.day__img--ico{aspect-ratio:16/10}}

/* espetáculos */
.shows{background:var(--cream);padding:64px 0 70px}
.shows__grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.show{
  background:var(--navy);color:var(--cream);border-radius:var(--r-card);padding:24px 24px 26px;
  display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden
}
.show::after{
  content:"";position:absolute;width:140px;height:140px;right:-50px;top:-50px;border-radius:50%;
  background:radial-gradient(circle,rgba(113,230,204,.22),transparent 70%)
}
.show__time{font-family:var(--bubble);font-size:26px;line-height:1;color:var(--gold)}
.show h3{font-size:21px;text-transform:uppercase;color:var(--mint)}
.show p{font-size:14px;font-weight:300;line-height:1.6;color:rgba(250,249,246,.85)}
.show__tag{
  align-self:flex-start;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  background:var(--apricot);color:var(--navy);border-radius:999px;padding:4px 12px
}
.shows__note{margin-top:22px;text-align:center;font-size:12.5px;font-weight:300;color:rgba(18,13,68,.6)}

/* hospedagem */
.hotel{display:grid;gap:0;align-items:center;margin-bottom:52px}
@media (min-width:1024px){.hotel{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}
.hotel__img img{
  width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-lg);
  box-shadow:0 24px 48px rgba(18,13,68,.25);position:relative;z-index:2
}
.hotel__panel{background:var(--apricot);border-radius:var(--r-card);padding:30px 24px 28px;margin-top:-30px;position:relative;z-index:1}
@media (min-width:1024px){.hotel__panel{margin:0 0 0 -72px;padding:38px 38px 38px 104px}}
.hotel__panel .eyebrow{color:var(--navy);opacity:.7;margin-bottom:8px}
.hotel__panel h3{font-family:var(--bubble);font-weight:400;font-size:clamp(30px,4vw,44px);text-transform:uppercase;color:var(--navy)}
.hotel__panel p{margin-top:12px;font-size:14.5px;font-weight:400;line-height:1.62;color:rgba(18,13,68,.86)}
.hotel__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.hotel__chips li{background:var(--navy);color:var(--apricot);border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:600}

/* preço com "de / por" */
.valor__de{font-size:15px;font-weight:400;color:rgba(250,249,246,.6);text-decoration:line-through;margin-top:8px}
.valor__ou{margin-top:14px;font-family:var(--display);font-weight:600;font-size:clamp(18px,2.6vw,24px);color:var(--mint)}

/* galeria com 4 fotos */
.grid-g{grid-template-columns:repeat(4,1fr)}
@media (max-width:1023px){
  .grid-g{grid-template-columns:1fr 1fr}
  .grid-g figure,.grid-g figure:nth-child(4){grid-column:auto}
}
@media (max-width:640px){
  .grid-g figure:last-child{grid-column:auto;aspect-ratio:1}
  .shows{padding:44px 0 48px}
  .hotel{margin-bottom:38px}
  .hotel__panel{padding:44px 20px 24px}
  .hero__when{font-size:13.5px}
}
