/* =========================================================
   Aline Rocha Travel
   Paleta definida no briefing da marca.

   Nota de performance: nada de filter/backdrop-filter em
   elementos fixos ou animados. O tratamento de cor do vídeo
   está gravado no próprio arquivo .mp4, não em CSS.
   ========================================================= */

:root{
  --navy:#1C2E4A;
  --peach:#F7C8B5;
  --rose:#B76E79;
  --offwhite:#FAF8F5;
  --sand:#E8DED4;
  --petrol:#315568;
  --graphite:#30343B;

  --navy-900:#152338;
  --ink:var(--graphite);
  --ink-soft:#5C626C;
  --line:rgba(28,46,74,.14);
  --whats:#1EA855;

  --font-display:"Playfair Display",Georgia,serif;
  --font-sans:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --shell:1200px;
  --gutter:clamp(1rem,4vw,2.5rem);
  --radius:4px;
  --radius-lg:12px;

  --ease:cubic-bezier(.22,.61,.36,1);
  --spring:cubic-bezier(.34,1.3,.5,1);
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:92px;
}

body{
  margin:0;
  background:var(--offwhite);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:clamp(1rem,.96rem + .2vw,1.075rem);
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img,picture,video,svg{display:block;max-width:100%}
img{height:auto}

h1,h2,h3{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.12;
  letter-spacing:-.01em;
  color:var(--navy);
  margin:0 0 .5em;
  text-wrap:balance;
}
h1{font-size:clamp(2.6rem,1.6rem + 4.4vw,5rem)}
h2{font-size:clamp(1.95rem,1.35rem + 2.5vw,3.05rem)}
h3{font-size:clamp(1.1rem,1.02rem + .4vw,1.3rem);font-weight:600}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}

a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}

:focus-visible{outline:2.5px solid var(--rose);outline-offset:3px;border-radius:2px}

.shell{
  width:100%;max-width:var(--shell);
  margin-inline:auto;padding-inline:var(--gutter);
}

.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--navy);color:#fff;padding:.9rem 1.4rem}
.skip-link:focus{left:.5rem;top:.5rem}

.eyebrow{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  font-weight:500;color:var(--rose);margin:0 0 1rem;
}
.eyebrow--light{color:var(--peach)}

.section__head{max-width:56ch;margin-bottom:clamp(2.5rem,5vw,4rem)}
.section__head--split{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(1.5rem,4vw,4rem);align-items:end;max-width:none;
}
.section__head--split h2{margin-bottom:0}
.section__lead{color:var(--ink-soft);font-size:1.04em}
.section__head--light h2{color:#fff}
.section__head--light .section__lead{color:rgba(255,255,255,.74)}

/* =========================================================
   BOTÕES
   ========================================================= */
.btn{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.85rem 1.7rem;
  border:1px solid transparent;border-radius:100px;
  font-family:var(--font-sans);
  font-size:.92rem;font-weight:500;letter-spacing:.04em;line-height:1;
  text-decoration:none;cursor:pointer;
  transition:background .3s var(--ease),color .3s var(--ease),
             border-color .3s var(--ease),transform .35s var(--spring);
}
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(-1px)}
.btn--lg{padding:1.05rem 2.1rem;font-size:.98rem}
.btn--sm{padding:.65rem 1.25rem;font-size:.82rem}

.btn--primary{background:var(--navy);color:#fff}
.btn--primary:hover{background:var(--petrol)}
.btn--peach{background:var(--peach);color:var(--navy)}
.btn--peach:hover{background:#fff}
.btn--ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.42)}
.btn--ghost:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn--ghost-dark{background:transparent;color:var(--navy);border-color:var(--line)}
.btn--ghost-dark:hover{border-color:var(--navy)}
.btn--whats{background:var(--whats);color:#fff}
.btn--whats:hover{background:#17914a}

/* =========================================================
   VÍDEO DE FUNDO
   ========================================================= */
.bg-video{
  position:fixed;inset:0;z-index:0;
  background:var(--navy-900);overflow:hidden;
  transform:translateZ(0);            /* camada própria: evita repintura */
}
.bg-video video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.bg-video::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(21,35,56,.74) 0%,rgba(21,35,56,.4) 30%,
                    rgba(21,35,56,.46) 60%,rgba(21,35,56,.88) 100%),
    linear-gradient(100deg,rgba(28,46,74,.6) 0%,rgba(28,46,74,.1) 55%,rgba(49,85,104,.3) 100%);
}

/* =========================================================
   CABEÇALHO
   ========================================================= */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:60;
  padding-block:clamp(.8rem,2vw,1.35rem);
  transition:background .4s var(--ease),box-shadow .4s var(--ease),padding .4s var(--ease);
}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.site-header.is-stuck{
  background:var(--offwhite);
  box-shadow:0 1px 0 var(--line),0 12px 34px -26px rgba(28,46,74,.55);
  padding-block:.7rem;
}

.brand{display:flex;align-items:center;gap:.7rem;flex:0 0 auto;text-decoration:none;line-height:1}
.brand__mark{width:auto;height:clamp(30px,3.4vw,40px);transition:height .4s var(--ease)}
.brand__text{display:flex;flex-direction:column;gap:.24rem}
.brand__text strong{
  font-family:var(--font-display);
  font-size:clamp(1rem,.94rem + .3vw,1.2rem);
  font-weight:500;letter-spacing:.13em;text-transform:uppercase;
  color:#fff;white-space:nowrap;transition:color .4s var(--ease);
}
.brand__text em{
  font-style:normal;font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--peach);white-space:nowrap;transition:color .4s var(--ease);
}
.site-header.is-stuck .brand__mark{height:clamp(26px,3vw,33px)}
.site-header.is-stuck .brand__text strong{color:var(--navy)}
.site-header.is-stuck .brand__text em{color:var(--rose)}

.nav{display:flex;align-items:center;gap:clamp(1rem,2.5vw,2.2rem)}
.nav__list{display:flex;align-items:center;gap:clamp(1rem,2vw,1.9rem);list-style:none;margin:0;padding:0}
.nav__list a{
  position:relative;color:rgba(255,255,255,.9);text-decoration:none;
  font-size:.88rem;letter-spacing:.03em;padding-block:.35rem;
  transition:color .3s var(--ease);
}
.nav__list a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease);
}
.nav__list a:hover::after,.nav__list a.is-current::after{transform:scaleX(1);transform-origin:left}
.nav__list a.is-current{color:var(--peach)}
.site-header.is-stuck .nav__list a{color:var(--navy)}
.site-header.is-stuck .nav__list a.is-current{color:var(--rose)}

.nav__cta{background:var(--peach);color:var(--navy)}
.nav__cta:hover{background:#fff}
.site-header.is-stuck .nav__cta{background:var(--navy);color:#fff}
.site-header.is-stuck .nav__cta:hover{background:var(--petrol)}

.burger{
  display:none;width:46px;height:46px;padding:11px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.34);
  border-radius:50%;cursor:pointer;
}
.burger span{display:block;height:1.5px;background:#fff;border-radius:2px;
  transition:transform .35s var(--ease),opacity .25s var(--ease),background .3s var(--ease)}
.burger span+span{margin-top:5px}
.site-header.is-stuck .burger{background:transparent;border-color:var(--line)}
.site-header.is-stuck .burger span{background:var(--navy)}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;z-index:2;
  min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;
  padding-top:clamp(7rem,15vh,10rem);
  padding-bottom:clamp(9rem,18vh,12rem);
  color:#fff;
}
.hero__inner{max-width:58rem}
.hero__title{color:#fff;font-weight:400;margin-bottom:1.5rem;text-shadow:0 2px 40px rgba(10,20,35,.45)}
.hero__title em{font-style:italic;color:var(--peach);font-weight:400}
.hero__lead{
  max-width:42ch;
  font-size:clamp(1.02rem,.95rem + .45vw,1.26rem);
  font-weight:300;color:rgba(255,255,255,.92);
  margin-bottom:2.4rem;text-shadow:0 1px 20px rgba(10,20,35,.5);
}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:2rem}
.hero__note{
  font-size:.82rem;letter-spacing:.06em;color:rgba(255,255,255,.62);
  padding-left:1.6rem;position:relative;
}
.hero__note::before{
  content:"";position:absolute;left:0;top:.7em;width:1rem;height:1px;background:var(--peach);
}

/* =========================================================
   CARTÃO DO VISTO NO HERO
   Flutua à direita no desktop, onde o texto do hero não chega.
   Em telas menores entra no fluxo, abaixo da chamada.
   ========================================================= */
.visto-card{
  position:absolute;
  right:max(var(--gutter),calc(50vw - var(--shell)/2 + 1rem));
  top:46%;
  z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:.85rem;
  width:216px;padding:1.25rem 1.1rem 1.35rem;
  text-decoration:none;
  border-radius:var(--radius-lg);
  background:rgba(21,35,56,.42);
  border:1px solid rgba(247,200,181,.3);
  transform:translateY(-50%) rotate(3deg);
  transition:transform .55s var(--spring),background .4s var(--ease),border-color .4s var(--ease);
}
.visto-card:hover,
.visto-card:focus-visible{
  background:rgba(21,35,56,.62);
  border-color:var(--peach);
  transform:translateY(calc(-50% - 8px)) rotate(0deg);
}

.visto-card__art{display:block;width:112px;animation:vistoFloat 5s ease-in-out infinite}
.visto-card__art svg{width:100%;height:auto;overflow:visible}
@keyframes vistoFloat{
  0%,100%{transform:translateY(-3px) rotate(-1.5deg)}
  50%{transform:translateY(3px) rotate(1.5deg)}
}

.visto-card__globe{transform-origin:69px 92px;transition:transform 1.1s var(--ease)}
.visto-card:hover .visto-card__globe{transform:scaleX(.5)}

.visto-card__stamp{transform-origin:96px 143px;transition:transform .5s var(--spring)}
.visto-card:hover .visto-card__stamp{transform:rotate(-13deg) scale(1.13)}

.visto-card__text{display:block;text-align:center}
.visto-card__text strong{
  display:block;
  font-family:var(--font-display);font-size:1.02rem;font-weight:500;line-height:1.25;
  color:#fff;margin-bottom:.35rem;
}
.visto-card__text em{
  display:inline-flex;align-items:center;gap:.35rem;
  font-style:normal;font-size:.74rem;letter-spacing:.04em;color:var(--peach);
}
.visto-card__text em svg{transition:transform .4s var(--spring)}
.visto-card:hover .visto-card__text em svg{transform:translateX(3px)}

/* =========================================================
   SEÇÕES
   ========================================================= */
.section{position:relative;z-index:2;padding-block:clamp(4.5rem,11vw,8.5rem)}
.section--light{background:var(--offwhite)}
.section--sand{background:var(--sand)}
.section--navy{background:var(--navy);color:rgba(255,255,255,.82)}
.section--navy h2,.section--navy h3{color:#fff}
.section--petrol{background:var(--petrol);color:rgba(255,255,255,.85)}
.section--petrol h2,.section--petrol h3{color:#fff}

/* faixa transparente: o vídeo reaparece no meio do site */
.reveal-band{
  position:relative;z-index:2;background:transparent;
  padding-block:clamp(6rem,17vw,12rem);color:#fff;text-align:center;
}
.reveal-band__inner{max-width:52rem}
.reveal-band__text{
  font-family:var(--font-display);
  font-size:clamp(1.4rem,1rem + 2.1vw,2.55rem);
  font-style:italic;line-height:1.35;color:#fff;margin-bottom:1.6rem;
  text-shadow:0 2px 34px rgba(10,20,35,.55);
}
.reveal-band__sig{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--peach);margin:0}

/* =========================================================
   PLANEJADOR — sobe por cima do hero
   ========================================================= */
.planner{
  position:relative;z-index:2;
  padding-bottom:clamp(4rem,9vw,7rem);
  background:linear-gradient(to bottom,transparent 0,transparent 150px,var(--offwhite) 150px);
}
.planner__box{
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  margin-top:clamp(-140px,-11vw,-90px);
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:0 50px 90px -55px rgba(21,35,56,.75);
}
.planner__aside{
  background:var(--navy);color:rgba(255,255,255,.76);
  padding:clamp(2rem,3.6vw,3.2rem);
  display:flex;flex-direction:column;
}
.planner__aside h2{color:#fff;font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem);margin-bottom:.8rem}
.planner__aside-text{font-size:.95rem;line-height:1.65}
.planner__perks{list-style:none;margin:auto 0 0;padding:1.6rem 0 0;display:grid;gap:.7rem}
.planner__perks li{position:relative;padding-left:1.5rem;font-size:.86rem;color:rgba(255,255,255,.68)}
.planner__perks li::before{
  content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;
  border-radius:50%;background:var(--peach);
}
.planner__main{padding:clamp(1.8rem,3.4vw,3rem)}

.planner__progress{height:3px;background:var(--sand);border-radius:3px;overflow:hidden;margin-bottom:.9rem}
.planner__progress-bar{
  height:100%;width:16.6%;border-radius:3px;
  background:linear-gradient(90deg,var(--rose),var(--peach));
  transition:width .5s var(--ease);
}
.planner__count{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rose);margin:0 0 1.6rem}

.planner__step{display:none;border:0;margin:0;padding:0;min-inline-size:0}
.planner__step.is-active{display:block;animation:stepIn .5s var(--ease) both}
@keyframes stepIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.planner__step legend{
  font-family:var(--font-display);
  font-size:clamp(1.25rem,1.05rem + .85vw,1.7rem);
  font-weight:500;color:var(--navy);line-height:1.25;padding:0;margin-bottom:.5rem;
}
.planner__sub{font-size:.88rem;color:var(--ink-soft);margin:0 0 1.2rem}
.planner__step legend+.chips{margin-top:1.3rem}

.chips{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip span{
  display:block;padding:.72rem 1.25rem;
  border:1px solid var(--line);border-radius:100px;font-size:.9rem;color:var(--ink);
  transition:background .25s var(--ease),border-color .25s var(--ease),
             color .25s var(--ease),transform .3s var(--spring);
}
.chip:hover span{border-color:var(--navy);transform:translateY(-2px)}
.chip input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.chip input:focus-visible+span{outline:2.5px solid var(--rose);outline-offset:3px}

.field{display:block;margin-top:1.4rem}
.field>span{display:block;font-size:.83rem;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:.45rem}
.field>span i{font-style:normal;opacity:.7}
.field input,.field textarea{
  width:100%;padding:.85rem 1rem;
  font-family:inherit;font-size:.97rem;color:var(--ink);
  background:var(--offwhite);border:1px solid var(--line);border-radius:var(--radius);
  transition:border-color .25s var(--ease),background .25s var(--ease);
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--navy);background:#fff}
.field textarea{resize:vertical;min-height:80px}
.field__err{display:block;margin-top:.4rem;font-size:.8rem;font-style:normal;color:#B3261E}
.field.has-error input{border-color:#B3261E}

.planner__fields{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.planner__hint{
  margin:1.3rem 0 0;padding:.9rem 1.1rem;background:var(--sand);
  border-radius:var(--radius);border-left:2px solid var(--rose);
  font-size:.88rem;line-height:1.55;color:var(--navy);
  animation:stepIn .4s var(--ease) both;
}
.planner__privacy{margin-top:1.5rem;font-size:.8rem;line-height:1.55;color:var(--ink-soft)}
.planner__nav{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}
#plannerNext,#plannerSend{margin-left:auto}

.planner__done{text-align:center;padding:1.5rem 0}
.planner__done-icon{
  width:64px;height:64px;margin:0 auto 1.4rem;display:grid;place-items:center;
  border-radius:50%;background:var(--whats);color:#fff;
  animation:pop .5s var(--spring) both;
}
@keyframes pop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
.planner__done-icon svg{width:30px;height:30px}
.planner__done p{color:var(--ink-soft);margin-bottom:1.6rem}
.planner__restart{
  display:block;margin:1.3rem auto 0;background:none;border:0;cursor:pointer;
  font-family:inherit;font-size:.85rem;color:var(--ink-soft);
  text-decoration:underline;text-underline-offset:.22em;
}

/* =========================================================
   SOBRE
   ========================================================= */
.sobre__grid{
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1fr);
  gap:clamp(2.5rem,6vw,5.5rem);align-items:start;
}
.sobre__media{position:sticky;top:120px}
.sobre__figure{
  margin:0;overflow:hidden;border-radius:var(--radius-lg);
  box-shadow:0 40px 70px -50px rgba(28,46,74,.6);
}
.sobre__figure img{width:100%;aspect-ratio:4/5;object-fit:cover}
.sobre__stamp{
  position:absolute;right:-1rem;bottom:-1.6rem;
  width:118px;height:118px;border-radius:50%;
  display:grid;place-content:center;text-align:center;
  background:var(--navy);color:#fff;
  box-shadow:0 24px 46px -26px rgba(21,35,56,.9);
}
.sobre__stamp span{
  font-family:var(--font-display);font-size:2.5rem;line-height:1;color:var(--peach);
}
.sobre__stamp em{
  display:block;font-style:normal;margin-top:.3rem;
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.72);
}
.sobre__body p{color:var(--ink-soft)}
.pullquote{
  margin:2.2rem 0;padding:0 0 0 1.5rem;border-left:2px solid var(--rose);
  font-family:var(--font-display);
  font-size:clamp(1.06rem,1rem + .5vw,1.3rem);
  font-style:italic;line-height:1.5;color:var(--navy);
}
.signature{display:flex;align-items:center;gap:1rem;margin-top:2rem}
.signature img{width:62px;height:62px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid var(--peach)}
.signature strong{display:block;color:var(--navy);font-weight:500;font-size:1rem}
.signature span{font-size:.83rem;color:var(--ink-soft)}

/* valores: lista enxuta, sem virar mais uma grade de cards */
.valores{margin-top:clamp(3rem,6vw,5rem);padding-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line)}
.valores__label{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--rose);margin:0 0 1.6rem;
}
.valores__list{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.1rem clamp(1.5rem,3vw,3rem);
  counter-reset:v;
}
.valores__list li{
  position:relative;padding-left:2.2rem;font-size:.93rem;line-height:1.6;color:var(--ink-soft);
  counter-increment:v;
}
.valores__list li::before{
  content:counter(v,decimal-leading-zero);
  position:absolute;left:0;top:.05em;
  font-family:var(--font-display);font-size:.85rem;color:var(--rose);
}
.valores__list b{color:var(--navy);font-weight:500}

/* =========================================================
   DEPOIMENTOS
   Trilho com scroll-snap: o arrastar no celular é nativo e
   o avanço automático é só um scrollTo, sem custo de layout.
   ========================================================= */
.depo{
  margin-top:clamp(3rem,6vw,5rem);
  padding-top:clamp(2rem,4vw,3rem);
  border-top:1px solid var(--line);
}
.depo__label{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--rose);margin:0 0 1.6rem;
}

.depo__viewport{
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.depo__viewport::-webkit-scrollbar{display:none}
.depo__viewport:focus-visible{outline:2.5px solid var(--rose);outline-offset:6px;border-radius:4px}

.depo__track{
  display:flex;list-style:none;margin:0;padding:0;
}
.depo__item{
  flex:0 0 100%;min-width:100%;
  scroll-snap-align:center;
  padding:0 clamp(.5rem,2vw,2rem);
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
.depo__item blockquote{
  position:relative;
  margin:0 0 1.4rem;max-width:44rem;
  font-family:var(--font-display);
  font-size:clamp(1.12rem,.98rem + .9vw,1.6rem);
  font-style:italic;font-weight:400;line-height:1.5;color:var(--navy);
}
/* aspas decorativas, fora do texto lido em voz alta */
.depo__item blockquote::before{
  content:"\201C";
  display:block;
  font-size:3.4rem;line-height:.6;color:var(--peach);
  margin-bottom:.5rem;
}
.depo__item cite{
  font-style:normal;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-soft);
}
.depo__item cite::before{
  content:"";display:block;width:26px;height:1px;background:var(--rose);
  margin:0 auto .8rem;
}

.depo__nav{
  display:flex;align-items:center;justify-content:center;gap:1.2rem;
  margin-top:clamp(1.6rem,3vw,2.4rem);
}
.depo__arrow{
  width:40px;height:40px;flex:0 0 auto;
  display:grid;place-items:center;
  background:transparent;color:var(--navy);
  border:1px solid var(--line);border-radius:50%;cursor:pointer;
  transition:background .3s var(--ease),color .3s var(--ease),
             border-color .3s var(--ease),transform .35s var(--spring);
}
.depo__arrow:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:scale(1.08)}

.depo__dots{display:flex;align-items:center;gap:.55rem}
.depo__dot{
  width:7px;height:7px;padding:0;
  background:rgba(28,46,74,.22);border:0;border-radius:50%;cursor:pointer;
  transition:background .35s var(--ease),transform .35s var(--spring),width .35s var(--ease);
}
.depo__dot:hover{background:rgba(28,46,74,.45)}
.depo__dot[aria-selected="true"]{
  background:var(--rose);width:22px;border-radius:100px;
}

@media (max-width:560px){
  .depo__item blockquote::before{font-size:2.6rem}
  .depo__nav{gap:.9rem}
}

/* =========================================================
   SERVIÇOS — lista editorial numerada, não uma grade de cards
   ========================================================= */
.servicos__list{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 clamp(2rem,5vw,5rem);
  counter-reset:s;
}
.servico{
  position:relative;
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  align-items:start;
  gap:1.4rem;
  padding:clamp(1.6rem,2.6vw,2.2rem) 0;
  border-top:1px solid rgba(28,46,74,.16);
}
/* a borda de baixo só nos dois últimos, para fechar a lista */
.servico:nth-last-child(-n+2){border-bottom:1px solid rgba(28,46,74,.16)}

/* faixa que acende no hover, sem animar sombra */
.servico::before{
  content:"";position:absolute;left:-1.2rem;right:-1.2rem;top:0;bottom:0;
  background:rgba(255,255,255,.55);border-radius:var(--radius-lg);
  opacity:0;transform:scale(.97);
  transition:opacity .4s var(--ease),transform .4s var(--ease);
  z-index:0;pointer-events:none;
}
.servico:hover::before{opacity:1;transform:scale(1)}
.servico>*{position:relative;z-index:1}

.servico__num{
  font-family:var(--font-display);font-size:.9rem;color:var(--rose);
  padding-top:.45rem;letter-spacing:.04em;
  transition:transform .45s var(--spring),color .3s var(--ease);
}
.servico:hover .servico__num{transform:translateY(-4px);color:var(--navy)}

.servico__icon{
  width:52px;height:52px;flex:0 0 auto;color:var(--navy);
  transition:transform .5s var(--spring),color .35s var(--ease);
}
.servico__icon svg{width:100%;height:100%}
.servico:hover .servico__icon{transform:translateY(-3px) scale(1.06);color:var(--rose)}

.servico__body h3{margin-bottom:.4rem;transition:transform .45s var(--spring)}
.servico:hover .servico__body h3{transform:translateX(3px)}
.servico__body p{font-size:.94rem;color:var(--ink-soft);margin:0}
.servico__link{
  display:inline-block;margin-top:.9rem;
  font-size:.85rem;color:var(--rose);font-weight:500;letter-spacing:.03em;
  text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px;
  transition:transform .35s var(--spring);
}
.servico:hover .servico__link{transform:translateX(4px)}
.servico--destaque .servico__num{color:var(--navy)}

/* --- micro-animação dentro de cada ícone --- */
.ico-needle{transform-origin:20px 20px;transition:transform 1.1s var(--spring)}
.servico:hover .ico-needle{transform:rotate(310deg)}

.ico-dash{transform-origin:20px 20px;transition:transform 1.4s var(--ease)}
.servico:hover .ico-dash{transform:rotate(120deg)}

.ico-route{stroke-dashoffset:0;transition:stroke-dashoffset 1.3s linear}
.servico:hover .ico-route{stroke-dashoffset:-26}

.ico-star{transform-origin:20px 17px;transition:transform .6s var(--spring)}
.servico:hover .ico-star{transform:scale(1.16) rotate(8deg)}

.ico-perf{stroke-dashoffset:0;transition:stroke-dashoffset 1s linear}
.servico:hover .ico-perf{stroke-dashoffset:-17}

.ico-globe{transform-origin:22.5px 17px;transition:transform .9s var(--ease)}
.servico:hover .ico-globe{transform:scaleX(.55)}

.ico-stamp{transform-origin:20px 20px;transition:transform .45s var(--spring)}
.servico:hover .ico-stamp{transform:scale(.9)}

/* =========================================================
   DESTINOS
   ========================================================= */
.destinos__grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.5rem);list-style:none;margin:0 0 2.5rem;padding:0;
}
.destino{
  position:relative;overflow:hidden;border-radius:var(--radius-lg);
  isolation:isolate;
  transition:transform .55s var(--ease);
}
.destino:hover{transform:translateY(-6px)}
.destino__media{overflow:hidden;border-radius:var(--radius-lg)}
.destino img{
  width:100%;aspect-ratio:4/5;object-fit:cover;
  transition:transform 1s var(--ease);
}
.destino:hover img{transform:scale(1.08)}
.destino::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(21,35,56,0) 30%,rgba(21,35,56,.9) 100%);
  transition:opacity .5s var(--ease);
}
.destino:hover::after{opacity:.92}

.destino__body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.5rem 1.4rem}
.destino__rule{
  display:block;height:1px;width:0;background:var(--peach);margin-bottom:.9rem;
  transition:width .6s var(--ease);
}
.destino:hover .destino__rule,
.destino:focus-within .destino__rule{width:42px}
.destino__body h3{
  color:#fff;margin-bottom:.3rem;font-size:1.2rem;
  transition:transform .5s var(--ease);
}
.destino:hover .destino__body h3{transform:translateY(-2px)}
.destino__body p{
  font-size:.86rem;color:rgba(255,255,255,.82);margin:0;
  opacity:0;transform:translateY(10px);
  transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.destino:hover .destino__body p,
.destino:focus-within .destino__body p{opacity:1;transform:none}

.destinos__note{text-align:center;color:rgba(255,255,255,.72);font-size:.95rem;margin:0}
.destinos__note a{color:var(--peach)}

/* =========================================================
   PROCESSO — linha do tempo vertical
   ========================================================= */
.steps{
  list-style:none;margin:0;padding:0;
  max-width:760px;position:relative;
}
.steps::before{
  content:"";position:absolute;left:27px;top:28px;bottom:28px;width:1px;
  background:linear-gradient(180deg,var(--rose),rgba(183,110,121,.15));
}
.step{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(1.2rem,3vw,2.2rem);
  padding-bottom:clamp(2rem,4vw,3rem);
}
.step:last-child{padding-bottom:0}
.step__mark{
  width:55px;height:55px;flex:0 0 auto;position:relative;z-index:1;
  display:grid;place-items:center;border-radius:50%;
  background:var(--offwhite);border:1px solid var(--rose);
  transition:background .4s var(--ease),transform .5s var(--spring);
}
.step__mark span{
  font-family:var(--font-display);font-size:1.25rem;color:var(--rose);
  transition:color .4s var(--ease);
}
.step:hover .step__mark{background:var(--navy);border-color:var(--navy);transform:scale(1.08)}
.step:hover .step__mark span{color:var(--peach)}
.step__body{padding-top:.7rem}
.step__body h3{margin-bottom:.4rem;transition:transform .45s var(--spring)}
.step:hover .step__body h3{transform:translateX(4px)}
.step__body p{font-size:.95rem;color:var(--ink-soft);margin:0}

/* =========================================================
   DIFERENCIAIS
   ========================================================= */
.diffs{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.4rem);
}
.diff{
  position:relative;overflow:hidden;
  padding:clamp(1.5rem,2.6vw,2rem);
  background:rgba(255,255,255,.55);border-radius:var(--radius-lg);
  transition:transform .5s var(--ease),background .4s var(--ease);
}
.diff::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--rose);transform:scaleY(0);transform-origin:top;
  transition:transform .5s var(--ease);
}
.diff:hover{transform:translateY(-5px);background:#fff}
.diff:hover::before{transform:scaleY(1)}
.diff h3{margin-bottom:.45rem;font-size:1.05rem;transition:transform .45s var(--spring)}
.diff:hover h3{transform:translateX(4px)}
.diff p{font-size:.92rem;color:var(--ink-soft);margin:0}

/* =========================================================
   VISTO AMERICANO
   ========================================================= */
.visto__inner{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(2.2rem,5vw,4.5rem);align-items:start;
}
.visto__text p{color:rgba(255,255,255,.84)}
.visto__text strong{color:#fff;font-weight:500}
.visto__list{list-style:none;margin:1.6rem 0;padding:0;display:grid;gap:.75rem}
.visto__list li{position:relative;padding-left:1.85rem;font-size:.96rem;color:rgba(255,255,255,.86)}
.visto__list li::before{
  content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--peach);
}
.visto__disclaimer{
  font-size:.86rem;line-height:1.6;color:rgba(255,255,255,.7);
  padding:1rem 1.2rem;margin-bottom:1.8rem;
  border-left:2px solid var(--peach);background:rgba(255,255,255,.07);
  border-radius:0 var(--radius) var(--radius) 0;
}
.visto__card{
  padding:clamp(1.6rem,3vw,2.2rem);
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);
  border-radius:var(--radius-lg);
}
.visto__card-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--peach);margin-bottom:.9rem}
.visto__card-text{color:#fff;font-size:1rem;line-height:1.65}
.visto__card-text strong{color:var(--peach)}
.visto__card-note{
  font-size:.85rem;color:rgba(255,255,255,.72);
  padding-top:1rem;margin:1rem 0 0;border-top:1px solid rgba(255,255,255,.2);
}

/* =========================================================
   DÚVIDAS
   ========================================================= */
.faq__inner{
  display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:start;
}
.faq__head{position:sticky;top:120px}
.faq__aside{font-size:.92rem;color:var(--ink-soft);margin-top:1.4rem}
.faq__aside a{color:var(--rose);font-weight:500}

.faq__item{border-bottom:1px solid rgba(28,46,74,.16)}
.faq__item:first-child{border-top:1px solid rgba(28,46,74,.16)}
.faq__item summary{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;
  padding:1.3rem 0;cursor:pointer;list-style:none;
  font-family:var(--font-display);font-size:1.08rem;font-weight:500;color:var(--navy);
  transition:color .25s var(--ease);
}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:hover{color:var(--rose)}
.faq__item summary span{transition:transform .4s var(--spring)}
.faq__item summary:hover span{transform:translateX(4px)}
.faq__item summary::after{
  content:"";flex:0 0 auto;width:14px;height:14px;margin-top:.35rem;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' stroke='%23000' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' stroke='%23000' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .4s var(--spring);
}
.faq__item[open] summary::after{transform:rotate(135deg)}
.faq__answer{padding:0 0 1.4rem;max-width:62ch}
.faq__answer p{font-size:.95rem;color:var(--ink-soft);margin:0}
.faq__item[open] .faq__answer{animation:stepIn .45s var(--ease) both}

/* =========================================================
   CONTATO E RODAPÉ
   ========================================================= */
.contato__inner{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(2.2rem,5vw,4.5rem);align-items:start;
}
.contato__text p{color:rgba(255,255,255,.8);max-width:44ch}
.contato__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.contato__info{list-style:none;margin:0;padding:0;display:grid;gap:1.7rem}
.contato__info li{padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.22)}
.contato__label{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--peach);margin-bottom:.4rem}
.contato__info a,.contato__info p{color:#fff;text-decoration:none;font-size:1rem;margin:0;line-height:1.55}
.contato__info a:hover{text-decoration:underline}

.footer{
  position:relative;z-index:2;background:var(--navy-900);color:rgba(255,255,255,.66);
  padding-top:clamp(3.5rem,7vw,5.5rem);font-size:.92rem;
}
.footer__inner{
  display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));
  gap:clamp(2rem,4vw,3.5rem);padding-bottom:clamp(2.5rem,5vw,4rem);
}
.footer__brand img{height:78px;width:auto;margin-bottom:1.3rem}
.footer__brand p{max-width:34ch;line-height:1.7}
.footer h2{
  font-family:var(--font-sans);font-size:.72rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--peach);margin-bottom:1.1rem;
}
.footer ul{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.6rem}
.footer a{color:rgba(255,255,255,.72);text-decoration:none;transition:color .25s var(--ease)}
.footer a:hover{color:var(--peach)}
.footer__local{font-size:.86rem;color:rgba(255,255,255,.5);line-height:1.7;margin:0}
.footer__bottom{
  display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;
  padding-block:1.5rem;border-top:1px solid rgba(255,255,255,.12);
  font-size:.8rem;color:rgba(255,255,255,.45);
}
.footer__bottom p{margin:0}
.footer__credit{font-style:italic;font-family:var(--font-display)}

/* =========================================================
   WHATSAPP FLUTUANTE
   ========================================================= */
.whats-fab{
  position:fixed;right:clamp(1rem,3vw,1.9rem);bottom:clamp(1rem,3vw,1.9rem);z-index:70;
  display:flex;align-items:center;gap:.65rem;padding:.85rem;
  background:var(--whats);color:#fff;border-radius:100px;text-decoration:none;
  box-shadow:0 14px 34px -14px rgba(30,168,85,.85);
  opacity:0;visibility:hidden;transform:translateY(14px) scale(.9);
  transition:opacity .4s var(--ease),transform .45s var(--spring),visibility .4s var(--ease),background .3s var(--ease);
}
.whats-fab.is-visible{opacity:1;visibility:visible;transform:none}
.whats-fab:hover{background:#17914a;transform:scale(1.06)}
.whats-fab__label{
  max-width:0;overflow:hidden;white-space:nowrap;font-size:.9rem;font-weight:500;
  transition:max-width .45s var(--ease),padding .45s var(--ease);
}
.whats-fab:hover .whats-fab__label,
.whats-fab:focus-visible .whats-fab__label{max-width:9rem;padding-right:.5rem}

/* =========================================================
   ROTA DO AVIÃO
   ========================================================= */
.flight{
  position:absolute;top:0;left:0;width:100%;z-index:3;
  pointer-events:none;overflow:hidden;
  opacity:0;transition:opacity .8s var(--ease);
}
.flight.is-ready{opacity:1}
.flight__svg{position:absolute;top:0;left:0;width:100%;height:100%}
.flight__path{stroke:rgba(183,110,121,.22);stroke-width:1.5;stroke-dasharray:2 9;stroke-linecap:round}
.flight__trail{stroke-width:2;stroke-linecap:round;stroke-dasharray:6 8}
.plane{
  position:absolute;top:0;left:0;
  width:clamp(34px,4.2vw,52px);aspect-ratio:1;
  margin:calc(clamp(34px,4.2vw,52px) / -2);
  opacity:0;transition:opacity .5s var(--ease);
}
.plane__body{transform-origin:60px 60px;animation:planeBob 3.4s ease-in-out infinite}
@keyframes planeBob{
  0%,100%{transform:translateY(-1.5px) rotate(-1.2deg)}
  50%{transform:translateY(1.5px) rotate(1.2deg)}
}

/* =========================================================
   ENTRADA AO ROLAR
   ========================================================= */
.reveal{
  opacity:0;transform:translateY(26px);
  transition:opacity .8s var(--ease),transform .8s var(--ease);
}
.reveal.is-in{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.09s}
.reveal[data-delay="2"]{transition-delay:.18s}
.reveal[data-delay="3"]{transition-delay:.27s}
.reveal[data-delay="4"]{transition-delay:.36s}
.reveal[data-delay="5"]{transition-delay:.45s}

/* cascata automática dentro das listas, sem marcar item por item */
.servicos__list .reveal:nth-child(2){transition-delay:.07s}
.servicos__list .reveal:nth-child(3){transition-delay:.14s}
.servicos__list .reveal:nth-child(4){transition-delay:.21s}
.servicos__list .reveal:nth-child(5){transition-delay:.28s}
.servicos__list .reveal:nth-child(6){transition-delay:.35s}
.destinos__grid .reveal:nth-child(3n+2){transition-delay:.1s}
.destinos__grid .reveal:nth-child(3n){transition-delay:.2s}
.diffs .reveal:nth-child(3n+2){transition-delay:.1s}
.diffs .reveal:nth-child(3n){transition-delay:.2s}
.steps .reveal:nth-child(2){transition-delay:.1s}
.steps .reveal:nth-child(3){transition-delay:.2s}
.steps .reveal:nth-child(4){transition-delay:.3s}

/* cards entram com um leve zoom, além do deslocamento */
.destino.reveal,.diff.reveal{transform:translateY(26px) scale(.975)}
.destino.reveal.is-in,.diff.reveal.is-in{transform:none}

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width:1040px){
  /* sem espaço à direita: o cartão entra no fluxo, deitado */
  .visto-card{
    position:static;transform:none;
    flex-direction:row;align-items:center;gap:1rem;
    width:auto;max-width:25rem;margin-top:2.2rem;
    padding:.85rem 1.3rem .85rem .95rem;
  }
  .visto-card:hover,.visto-card:focus-visible{transform:translateY(-3px)}
  .visto-card__art{width:54px;flex:0 0 auto}
  .visto-card__text{text-align:left}
  .visto-card__text strong{font-size:.95rem}

  .section__head--split{grid-template-columns:1fr;align-items:start;gap:1.2rem}
  .planner__box{grid-template-columns:1fr}
  .planner__perks{margin-top:1.4rem}
  .servicos__list{grid-template-columns:1fr}
  .servico:nth-last-child(-n+2){border-bottom:none}
  .servico:last-child{border-bottom:1px solid rgba(28,46,74,.16)}
  .destinos__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .diffs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .valores__list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sobre__grid{grid-template-columns:1fr;gap:3rem}
  .sobre__media{position:static;max-width:460px}
  .visto__inner,.contato__inner,.faq__inner{grid-template-columns:1fr}
  .faq__head{position:static}
  .footer__inner{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1/-1}
}

@media (max-width:860px){
  html{scroll-padding-top:80px}

  .burger{display:block}
  .brand__text em{display:none}
  .nav{
    position:fixed;inset:0 0 0 auto;width:min(86vw,360px);
    flex-direction:column;align-items:stretch;justify-content:center;gap:2rem;
    padding:5rem 2rem;background:var(--offwhite);
    box-shadow:-20px 0 60px -30px rgba(28,46,74,.6);
    transform:translateX(100%);transition:transform .45s var(--ease);
    overflow-y:auto;
  }
  .nav.is-open{transform:none}
  .nav__list{flex-direction:column;align-items:stretch;gap:0}
  .nav__list a{
    display:block;color:var(--navy)!important;padding:.95rem 0;font-size:1.05rem;
    border-bottom:1px solid var(--line);
  }
  .nav__list a::after{display:none}
  .nav__cta{background:var(--navy)!important;color:#fff!important;justify-content:center;padding:1rem}

  body.nav-open{overflow:hidden}
  body.nav-open::after{content:"";position:fixed;inset:0;z-index:55;background:rgba(21,35,56,.55)}

  .hero{padding-top:6rem;padding-bottom:clamp(7rem,14vh,9rem)}

  .planner{background:linear-gradient(to bottom,transparent 0,transparent 90px,var(--offwhite) 90px)}
  .planner__box{margin-top:-70px}
  .planner__fields{grid-template-columns:1fr}
  .planner__nav{flex-direction:column-reverse}
  .planner__nav .btn{width:100%}
  #plannerNext,#plannerSend{margin-left:0}

  /* ícone e número lado a lado numa linha própria, texto em largura cheia */
  .servico{grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:.5rem 1rem}
  .servico__icon{grid-column:1;grid-row:1;width:44px;height:44px}
  .servico__num{grid-column:2;grid-row:1;align-self:center;justify-self:start;padding-top:0}
  .servico__body{grid-column:1/-1;grid-row:2;margin-top:.4rem}

  .steps::before{left:22px}
  .step__mark{width:45px;height:45px}
  .step__body{padding-top:.4rem}

  /* sem margem lateral nesta largura: a rota encosta na borda e fica
     como um traço discreto, para não competir com o texto */
  .flight.is-ready{opacity:.6}
  .plane{width:26px;margin:-13px}
  .flight__trail{stroke-width:1.4}
  .flight__path{stroke-opacity:.45}

  .footer__inner{grid-template-columns:1fr}
  .footer__bottom{flex-direction:column;gap:.4rem}
}

@media (max-width:560px){
  .visto-card{max-width:none;width:100%}
  .destinos__grid{grid-template-columns:1fr}
  .diffs{grid-template-columns:1fr}
  .valores__list{grid-template-columns:1fr}
  .hero__actions .btn{width:100%}
  .sobre__stamp{right:.6rem;bottom:-1.2rem;width:96px;height:96px}
  .sobre__stamp span{font-size:2rem}
  .whats-fab__label{display:none}
}

/* =========================================================
   PREFERÊNCIAS DO SISTEMA
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  .reveal{opacity:1;transform:none}
  .destino.reveal,.diff.reveal{transform:none}
  .flight{display:none}
}

@media print{
  .bg-video,.flight,.whats-fab,.site-header{display:none!important}
  .section,.hero{padding-block:1.5rem;color:#000}
  body{background:#fff;color:#000}
}
