/* =========================================================
   Búzios & Arraial Passeios e Turismo
   Identidade: azul-oceano + coral + areia
   ========================================================= */

@font-face{
  font-family:'Bricolage Grotesque';
  src:url('../fonts/bricolage-latin.woff2') format('woff2');
  font-weight:400 800; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Bricolage Grotesque';
  src:url('../fonts/bricolage-latin-ext.woff2') format('woff2');
  font-weight:400 800; font-style:normal; font-display:swap;
  unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Plus Jakarta Sans';
  src:url('../fonts/jakarta-latin.woff2') format('woff2');
  font-weight:400 800; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Plus Jakarta Sans';
  src:url('../fonts/jakarta-latin-ext.woff2') format('woff2');
  font-weight:400 800; font-style:normal; font-display:swap;
  unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
  --ocean-950:#04212f;
  --ocean-900:#062b3d;
  --ocean-800:#0a3c53;
  --ocean-700:#0d5473;
  --ocean-600:#0f6d92;
  --aqua-600:#0d8ba3;
  --aqua-500:#12a5bd;
  --aqua-300:#6ad3de;
  --aqua-100:#dff4f7;
  --coral-700:#c9431f;
  --coral-600:#e2542f;
  --coral-500:#f4693f;
  --coral-100:#ffe9e1;
  --gold:#f2b544;
  --sand-50:#fffdf9;
  --sand-100:#fdf6ee;
  --sand-200:#f6ead9;
  --ink:#11242e;
  --muted:#5b7180;
  --line:#e3ebef;
  --white:#fff;
  --whats:#25d366;
  --whats-dark:#1da851;

  --display:'Bricolage Grotesque','Plus Jakarta Sans',system-ui,sans-serif;
  --body:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;

  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px;
  --sh-1:0 1px 2px rgba(6,43,61,.06),0 4px 12px rgba(6,43,61,.05);
  --sh-2:0 2px 6px rgba(6,43,61,.07),0 14px 34px rgba(6,43,61,.09);
  --sh-3:0 8px 20px rgba(6,43,61,.10),0 28px 60px rgba(6,43,61,.14);
  --wrap:1200px;
  --header-h:74px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 18px)}
body{
  margin:0; background:var(--sand-50); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.65;
  font-weight:400; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block; height:auto}
a{color:var(--ocean-600); text-decoration:none}
a:hover{color:var(--coral-600)}
button{font-family:inherit; font-size:inherit; cursor:pointer}
h1,h2,h3,h4{font-family:var(--display); color:var(--ocean-900); line-height:1.1; margin:0 0 .5em; font-weight:700; letter-spacing:-.02em}
h1{font-size:clamp(2.3rem,5.4vw,4rem); font-weight:800; letter-spacing:-.035em}
h2{font-size:clamp(1.85rem,3.6vw,2.85rem); font-weight:700}
h3{font-size:clamp(1.2rem,2vw,1.5rem)}
p{margin:0 0 1rem}
ul{margin:0 0 1rem; padding-left:1.15rem}
:focus-visible{outline:3px solid var(--aqua-500); outline-offset:3px; border-radius:6px}

.wrap{width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:22px}
.section{padding:clamp(56px,7vw,96px) 0}
.section--tight{padding:clamp(40px,5vw,64px) 0}
.bg-sand{background:var(--sand-100)}
.bg-white{background:var(--white)}
.bg-ocean{background:var(--ocean-900); color:#dbe9f0}
.bg-ocean h2,.bg-ocean h3{color:#fff}
.center{text-align:center}
.skip{position:absolute; left:-9999px; top:0; background:var(--coral-600); color:#fff; padding:12px 18px; z-index:200; border-radius:0 0 10px 0}
.skip:focus{left:0; color:#fff}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

/* ---------- eyebrow + heading ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--body); font-size:.775rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--aqua-600);
  margin:0 0 14px;
}
.eyebrow::before{content:''; width:26px; height:2px; background:var(--coral-500); border-radius:2px}
.bg-ocean .eyebrow{color:var(--aqua-300)}
.head{max-width:720px; margin-bottom:38px}
.head.center{margin-inline:auto}
.head p{color:var(--muted); font-size:1.06rem; margin:0}
.bg-ocean .head p{color:#a9c6d4}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 26px; border-radius:999px; border:2px solid transparent;
  font-weight:700; font-size:.97rem; letter-spacing:-.01em; line-height:1.2;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
  text-align:center; cursor:pointer; white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn svg{flex:0 0 auto}
.btn--coral{background:var(--coral-600); color:#fff; box-shadow:0 6px 18px rgba(226,84,47,.28)}
.btn--coral:hover{background:var(--coral-700); color:#fff; box-shadow:0 10px 26px rgba(226,84,47,.36)}
.btn--whats{background:var(--whats); color:#04231a; box-shadow:0 6px 18px rgba(37,211,102,.3)}
.btn--whats:hover{background:var(--whats-dark); color:#fff}
.btn--ocean{background:var(--ocean-800); color:#fff}
.btn--ocean:hover{background:var(--ocean-950); color:#fff}
.btn--ghost{background:transparent; color:var(--ocean-800); border-color:var(--line)}
.btn--ghost:hover{border-color:var(--ocean-800); background:var(--white); color:var(--ocean-900)}
.btn--light{background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.45); backdrop-filter:blur(6px)}
.btn--light:hover{background:#fff; color:var(--ocean-900)}
.btn--sm{padding:10px 18px; font-size:.875rem}
.btn--block{width:100%}
.btn-row{display:flex; flex-wrap:wrap; gap:12px}

/* ---------- header ---------- */
.header{
  position:sticky; top:0; z-index:100; background:rgba(255,253,249,.92);
  backdrop-filter:saturate(160%) blur(12px); border-bottom:1px solid var(--line);
}
.header__in{display:flex; align-items:center; gap:20px; min-height:var(--header-h)}
.brand{display:flex; align-items:center; gap:11px; margin-right:auto; color:var(--ocean-900)}
.brand:hover{color:var(--ocean-900)}
.brand__mark{width:48px; height:48px; flex:0 0 auto; display:grid; place-items:center; background:none; box-shadow:none; border-radius:0}
.brand__mark img{display:block; width:100%; height:100%; object-fit:contain}
.brand__txt{display:flex; flex-direction:column; line-height:1.05}
.brand__name{font-family:var(--display); font-weight:800; font-size:1.09rem; letter-spacing:-.03em}
.brand__name em{font-style:normal; color:var(--coral-600)}
.brand__sub{font-size:.66rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--muted)}
.nav{display:flex; align-items:center; gap:4px}
.nav a{
  padding:9px 13px; border-radius:999px; color:var(--ocean-800);
  font-weight:600; font-size:.93rem; transition:background .15s,color .15s;
}
.nav a:hover,.nav a[aria-current="page"]{background:var(--aqua-100); color:var(--ocean-900)}
.header .btn{padding:11px 20px}
.burger{display:none; width:44px; height:44px; border:1px solid var(--line); background:var(--white); border-radius:12px; padding:0; place-items:center}
.burger span{display:block; width:19px; height:2px; background:var(--ocean-800); border-radius:2px; position:relative; transition:.2s}
.burger span::before,.burger span::after{content:''; position:absolute; left:0; width:19px; height:2px; background:var(--ocean-800); border-radius:2px; transition:.2s}
.burger span::before{top:-6px} .burger span::after{top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:rotate(45deg); top:0}
.burger[aria-expanded="true"] span::after{transform:rotate(-45deg); top:0}

@media (max-width:980px){
  .nav{
    position:fixed; inset:var(--header-h) 0 auto; flex-direction:column; align-items:stretch;
    background:var(--sand-50); border-bottom:1px solid var(--line); padding:14px 22px 22px;
    gap:2px; box-shadow:var(--sh-2); display:none;
  }
  .nav.is-open{display:flex}
  .nav a{padding:13px 14px; border-radius:12px; font-size:1rem}
  .burger{display:grid}
  .header__cta{display:none}
}

/* ---------- hero ---------- */
.hero{position:relative; isolation:isolate; overflow:hidden; background:var(--ocean-950)}
.hero__img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; z-index:-2}
.hero::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg,rgba(4,33,47,.72) 0%,rgba(4,33,47,.42) 38%,rgba(4,33,47,.86) 100%),
    linear-gradient(96deg,rgba(6,43,61,.82) 0%,rgba(6,43,61,.25) 62%,rgba(13,139,163,.22) 100%);
}
.hero__in{padding:clamp(64px,10vw,124px) 0 clamp(52px,7vw,86px); max-width:830px}
.hero .eyebrow{color:#9fe4ee}
.hero h1{color:#fff; text-shadow:0 2px 24px rgba(4,33,47,.35)}
.hero h1 em{font-style:normal; color:var(--gold)}
.hero__lead{color:#e3f1f6; font-size:clamp(1.03rem,1.6vw,1.22rem); max-width:640px; margin-bottom:26px}
.hero__lead strong{color:#fff; font-weight:700}
.hero__chips{display:flex; flex-wrap:wrap; gap:10px; margin:0 0 28px; padding:0; list-style:none}
.hero__chips li{
  display:inline-flex; align-items:center; background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.26); color:#fff; padding:8px 14px;
  border-radius:999px; font-size:clamp(.78rem,.95vw,.86rem); line-height:1.2; font-weight:600; backdrop-filter:blur(6px);
}
.hero__note{margin:20px 0 0; font-size:.83rem; color:#b9d3dd}
.hero__wave{display:block; width:100%; height:auto; margin-bottom:-1px; color:var(--sand-50)}

/* ---------- trust strip ---------- */
.trust{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.trust__item{background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:26px 24px; box-shadow:var(--sh-1)}
.trust__ico{width:46px; height:46px; border-radius:13px; display:grid; place-items:center; background:var(--aqua-100); color:var(--ocean-700); margin-bottom:14px}
.trust__item:nth-child(2) .trust__ico{background:var(--coral-100); color:var(--coral-600)}
.trust__item:nth-child(3) .trust__ico{background:#fdf0d8; color:#a9761a}
.trust__item h3{font-size:1.14rem; margin-bottom:6px}
.trust__item p{margin:0; color:var(--muted); font-size:.95rem}
@media (max-width:860px){.trust{grid-template-columns:1fr}}

/* ---------- destinos ---------- */
.dest-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px}
.dest{
  position:relative; border-radius:var(--r-lg); overflow:hidden; min-height:290px;
  display:flex; align-items:flex-end; text-align:left; border:0; padding:0;
  background:var(--ocean-900); box-shadow:var(--sh-2); cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease;
}
.dest:hover{transform:translateY(-5px); box-shadow:var(--sh-3)}
.dest img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease}
.dest:hover img{transform:scale(1.06)}
.dest::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,33,47,.05) 30%,rgba(4,33,47,.88) 100%)}
.dest__body{position:relative; z-index:1; padding:22px; color:#fff; width:100%}
.dest__body h3{color:#fff; margin-bottom:5px; font-size:1.28rem}
.dest__body p{margin:0 0 10px; font-size:.88rem; color:#cfe3ea}
.dest__count{display:inline-flex; align-items:center; gap:7px; font-size:.8rem; font-weight:700; color:var(--gold); letter-spacing:.02em}
@media (max-width:1000px){.dest-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.dest-grid{grid-template-columns:1fr} .dest{min-height:220px}}

/* ---------- filtros ---------- */
.filters{display:flex; flex-wrap:wrap; gap:9px; margin-bottom:14px}
.chip{
  border:1.5px solid var(--line); background:var(--white); color:var(--ocean-800);
  padding:9px 18px; border-radius:999px; font-weight:600; font-size:.9rem;
  transition:.16s; display:inline-flex; align-items:center; gap:7px;
}
.chip:hover{border-color:var(--aqua-500); color:var(--ocean-900)}
.chip[aria-pressed="true"]{background:var(--ocean-800); border-color:var(--ocean-800); color:#fff}
.chip__n{font-size:.75rem; opacity:.7}
.filters__row{display:flex; flex-wrap:wrap; align-items:center; gap:14px; justify-content:space-between; margin-bottom:26px}
.filters__label{font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin-right:4px}
.search{position:relative; flex:1 1 240px; max-width:320px}
.search input{
  width:100%; padding:11px 16px 11px 42px; border-radius:999px; border:1.5px solid var(--line);
  background:var(--white); font-family:inherit; font-size:.92rem; color:var(--ink);
}
.search input:focus{outline:none; border-color:var(--aqua-500); box-shadow:0 0 0 4px rgba(18,165,189,.13)}
.search svg{position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--muted)}
.result-count{font-size:.9rem; color:var(--muted); margin:0 0 22px}

/* ---------- cards de passeio ---------- */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
@media (max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:660px){.cards{grid-template-columns:1fr}}
.card{
  display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line);
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-1);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.card:hover{transform:translateY(-5px); box-shadow:var(--sh-3); border-color:#cfe0e7}
.card__media{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--sand-200)}
.card__media img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease}
.card:hover .card__media img{transform:scale(1.05)}
.tag{
  position:absolute; top:13px; left:13px; background:rgba(4,33,47,.82); color:#fff;
  padding:6px 13px; border-radius:999px; font-size:.74rem; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; backdrop-filter:blur(4px);
}
.tag--gold{background:var(--gold); color:#3d2a05}
.tag--coral{background:var(--coral-600)}
.card__dur{
  position:absolute; bottom:13px; right:13px; background:rgba(255,255,255,.94); color:var(--ocean-900);
  padding:5px 12px; border-radius:999px; font-size:.78rem; font-weight:700; display:flex; align-items:center; gap:6px;
}
.card__body{padding:22px; display:flex; flex-direction:column; flex:1}
.card__body h3{font-size:1.2rem; margin-bottom:9px; letter-spacing:-.025em}
.card__body h3 a{color:inherit}
.card__body h3 a:hover{color:var(--coral-600)}
.card__desc{color:var(--muted); font-size:.93rem; margin-bottom:16px; flex:1}
.card__meta{display:flex; flex-wrap:wrap; gap:7px; margin:0 0 16px; padding:0; list-style:none}
.card__meta li{font-size:.78rem; font-weight:600; color:var(--ocean-700); background:var(--aqua-100); padding:4px 11px; border-radius:999px}
.price{display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding-top:15px; border-top:1px dashed var(--line); margin-bottom:16px}
.price__from{display:block; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin-bottom:1px}
.price__val{font-family:var(--display); font-size:1.85rem; font-weight:800; color:var(--ocean-900); letter-spacing:-.04em; line-height:1}
.price__val small{font-size:.95rem; font-weight:700}
.price__old{font-size:.85rem; color:#93a7b2; text-decoration:line-through; margin-left:7px; font-weight:600}
.price__unit{display:block; font-size:.76rem; color:var(--muted); margin-top:3px}
.price__consult{font-family:var(--display); font-size:1.22rem; font-weight:700; color:var(--coral-600); line-height:1.15}
.save{background:#e8f8ed; color:#1a7a41; font-size:.73rem; font-weight:800; padding:5px 10px; border-radius:8px; white-space:nowrap; text-align:center; line-height:1.25}
.save span{display:block; font-size:.65rem; font-weight:700; opacity:.85}
.card__actions{display:grid; grid-template-columns:1fr 1fr; gap:9px}
.card__actions .btn{padding:11px 14px; font-size:.875rem}
@media (max-width:400px){.card__actions{grid-template-columns:1fr}}
.empty{padding:50px 20px; text-align:center; color:var(--muted); border:2px dashed var(--line); border-radius:var(--r-lg)}

/* ---------- passos ---------- */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:s}
.step{position:relative; padding:30px 26px; border-radius:var(--r-lg); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14)}
.step__n{font-family:var(--display); font-size:2.6rem; font-weight:800; color:var(--gold); line-height:1; margin-bottom:12px; letter-spacing:-.05em}
.step h3{font-size:1.18rem; margin-bottom:8px}
.step p{margin:0; color:#a9c6d4; font-size:.95rem}
@media (max-width:860px){.steps{grid-template-columns:1fr}}

/* ---------- depoimentos ---------- */
.quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.quote{background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:28px 26px; box-shadow:var(--sh-1); display:flex; flex-direction:column}
.quote__stars{color:var(--gold); font-size:1rem; letter-spacing:2px; margin:0 auto 12px; text-align:center}
.quote p{font-size:1rem; color:var(--ink); flex:1}
.quote__who{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; margin-top:12px; text-align:center}
.quote__who b{display:block; font-size:.94rem; color:var(--ocean-900)}
.quote__who span{font-size:.79rem; color:var(--muted)}
@media (max-width:860px){.quotes{grid-template-columns:1fr}}

/* ---------- FAQ ---------- */
.faq{max-width:840px; margin-inline:auto; border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none; cursor:pointer; padding:20px 46px 20px 0; position:relative;
  font-family:var(--display); font-weight:700; font-size:1.06rem; color:var(--ocean-900); letter-spacing:-.02em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:''; position:absolute; right:8px; top:26px; width:11px; height:11px;
  border-right:2.5px solid var(--coral-600); border-bottom:2.5px solid var(--coral-600);
  transform:rotate(45deg); transition:transform .2s;
}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details p{color:var(--muted); padding:0 40px 20px 0; margin:0; font-size:.98rem}

/* ---------- CTA / contato ---------- */
.cta{position:relative; overflow:hidden; border-radius:var(--r-xl); padding:clamp(34px,5vw,58px); background:linear-gradient(135deg,var(--ocean-900) 0%,var(--ocean-700) 58%,var(--aqua-600) 100%); color:#fff; box-shadow:var(--sh-3)}
.cta::before{content:''; position:absolute; width:420px; height:420px; right:-120px; top:-160px; border-radius:50%; background:radial-gradient(circle,rgba(242,181,68,.28),transparent 68%)}
.cta__in{position:relative; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); align-items:center; gap:clamp(28px,5vw,64px); max-width:1120px; margin:0 auto; text-align:left}
.cta__copy{min-width:0}
.cta .cta__copy .eyebrow{justify-content:flex-start; margin-bottom:18px}
.cta .cta__copy h2{max-width:600px; margin:0 0 18px; text-align:left}
.cta .cta__copy>p:not(.eyebrow){max-width:590px; margin:0 0 22px; text-align:left}
.cta .cta__copy .btn-row{justify-content:flex-start; margin:0}
.cta__seals{justify-self:end; width:100%; max-width:300px; line-height:0}
.cta__seals img{display:block; width:100%; height:auto; border-radius:22px; box-shadow:0 10px 28px rgba(0,0,0,.25)}
@media (max-width:900px){.cta__in{grid-template-columns:1fr; gap:28px}.cta__seals{justify-self:start; max-width:260px; margin-top:20px}}
@media (max-width:560px){.cta__in{gap:24px}.cta__seals{max-width:230px}.cta .cta__copy .btn-row{flex-wrap:wrap}}
.cta h2{color:#fff; max-width:720px; margin:0 auto 16px}
.cta p{color:#cfe6ee; max-width:700px; margin:0 auto 22px}

/* ---------- footer ---------- */
.footer{background:var(--ocean-950); color:#9fbccb; padding:56px 0 26px; font-size:.93rem}
.footer__grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:34px; margin-bottom:36px}
.footer h4{color:#fff; font-size:.82rem; text-transform:uppercase; letter-spacing:.13em; margin-bottom:16px; font-family:var(--body); font-weight:700}
.footer a{color:#b7d2de}
.footer a:hover{color:var(--gold)}
.footer ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px}
.footer .brand{color:#fff; margin-bottom:14px}
.footer .brand__name{color:#fff}
.footer .brand__sub{color:#7fa3b4}
.footer__about{max-width:330px; color:#8fb0c0; font-size:.9rem}
.pay{display:flex; gap:8px; flex-wrap:wrap; margin-top:6px}
.pay span{background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.16); padding:6px 12px; border-radius:8px; font-size:.8rem; font-weight:600; color:#cfe3ec}
.footer__bottom{border-top:1px solid rgba(255,255,255,.12); padding-top:20px; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:.82rem; color:#7fa3b4}
.footer__bottom p{margin:0}
@media (max-width:900px){.footer__grid{grid-template-columns:1fr 1fr; gap:28px}}
@media (max-width:560px){.footer__grid{grid-template-columns:1fr}}

/* ---------- WhatsApp flutuante ---------- */
.wa-float{
  position:fixed; right:20px; bottom:104px; z-index:90; width:58px; height:58px;
  border-radius:50%; background:var(--whats); color:#fff; display:grid; place-items:center;
  box-shadow:0 8px 26px rgba(37,211,102,.45); transition:transform .2s;
}
.wa-float:hover{transform:scale(1.08); color:#fff}
.wa-float::after{content:''; position:absolute; inset:0; border-radius:50%; border:2px solid var(--whats); animation:pulse 2.4s infinite}
@keyframes pulse{0%{transform:scale(1); opacity:.7} 70%{transform:scale(1.45); opacity:0} 100%{opacity:0}}
@media (max-width:660px){.wa-float{bottom:104px; right:16px; width:52px; height:52px}}

.mobile-bar{display:none}
@media (max-width:660px){
  .mobile-bar{
    display:grid; grid-template-columns:1fr 1fr; gap:9px; position:fixed; bottom:0; left:0; right:0;
    z-index:95; padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,253,249,.97); border-top:1px solid var(--line); backdrop-filter:blur(10px);
  }
  .mobile-bar .btn{padding:12px 10px; font-size:.88rem}
  body{padding-bottom:72px}
}

/* ---------- página de passeio ---------- */
.crumbs{font-size:.85rem; color:var(--muted); padding:18px 0 0}
.crumbs a{color:var(--muted); font-weight:600}
.crumbs a:hover{color:var(--coral-600)}
.crumbs span{color:var(--ocean-800); font-weight:600}

.tour-hero{padding:22px 0 44px}
.tour-hero__grid{display:grid; grid-template-columns:1.15fr .85fr; gap:36px; align-items:start}
.tour-hero__media{border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-3); position:relative; aspect-ratio:4/3; background:var(--sand-200)}
.tour-hero__media img{width:100%; height:100%; object-fit:cover}
.tour-hero h1{font-size:clamp(2rem,3.9vw,3rem); margin-bottom:14px}
.tour-hero__lead{color:var(--muted); font-size:1.06rem}
.badges{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; padding:0; list-style:none}
.badges li{display:inline-flex; align-items:center; gap:7px; background:var(--white); border:1px solid var(--line); padding:7px 14px; border-radius:999px; font-size:.84rem; font-weight:600; color:var(--ocean-800)}
.badges li svg{color:var(--aqua-600)}
@media (max-width:900px){.tour-hero__grid{grid-template-columns:1fr; gap:24px}}

.tour-body{display:grid; grid-template-columns:1fr 372px; gap:44px; align-items:start; padding-bottom:clamp(48px,6vw,84px)}
.tour-content h2{font-size:clamp(1.4rem,2.4vw,1.85rem); margin-top:38px}
.tour-content h2:first-child{margin-top:0}
.tour-content p{color:#3c5462}
.checks{list-style:none; padding:0; margin:0 0 20px; display:grid; gap:11px}
.checks li{position:relative; padding-left:32px; color:#3c5462; font-size:.98rem}
.checks li::before{
  content:''; position:absolute; left:0; top:5px; width:19px; height:19px; border-radius:50%;
  background:var(--aqua-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d5473' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;
}
.checks--points li b{display:block; color:var(--ocean-900); font-size:1rem; margin-bottom:1px}
.checks--points li{padding-bottom:2px}
.checks--warn li::before{background:var(--coral-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9431f' stroke-width='3.2' stroke-linecap='round'%3E%3Cline x1='12' y1='7' x2='12' y2='13'/%3E%3Ccircle cx='12' cy='17.4' r='.6' fill='%23c9431f'/%3E%3C/svg%3E") center/13px no-repeat}
.route{list-style:none; counter-reset:r; padding:0; margin:0 0 22px; display:grid; gap:0}
.route li{position:relative; padding:0 0 20px 40px; counter-increment:r; color:#3c5462; font-size:.98rem}
.route li::before{
  content:counter(r); position:absolute; left:0; top:-2px; width:27px; height:27px; border-radius:50%;
  background:var(--ocean-800); color:#fff; display:grid; place-items:center; font-size:.8rem; font-weight:800; font-family:var(--display);
}
.route li::after{content:''; position:absolute; left:13px; top:27px; bottom:2px; width:2px; background:var(--line)}
.route li:last-child{padding-bottom:0}
.route li:last-child::after{display:none}
.route b{color:var(--ocean-900); display:block; font-size:1rem}

.book{position:sticky; top:calc(var(--header-h) + 20px); background:var(--white); border:1px solid var(--line); border-radius:var(--r-xl); padding:26px; box-shadow:var(--sh-2)}
.book__price{display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; margin-bottom:4px}
.book__val{font-family:var(--display); font-size:2.5rem; font-weight:800; color:var(--ocean-900); letter-spacing:-.045em; line-height:1}
.book__val small{font-size:1.15rem}
.book__old{color:#93a7b2; text-decoration:line-through; font-weight:600; font-size:1rem; padding-bottom:5px}
.book__from{font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.11em; color:var(--muted); display:block; margin-bottom:5px}
.book__unit{font-size:.84rem; color:var(--muted); margin:0 0 18px}
.book__save{display:inline-block; background:#e8f8ed; color:#1a7a41; font-size:.78rem; font-weight:800; padding:5px 11px; border-radius:8px; margin-bottom:16px}
.field{margin-bottom:14px}
.field label{display:block; font-size:.8rem; font-weight:700; color:var(--ocean-800); margin-bottom:6px; letter-spacing:.01em}
.field input,.field select,.field textarea{
  width:100%; padding:11px 14px; border:1.5px solid var(--line); border-radius:var(--r-sm);
  font-family:inherit; font-size:.94rem; color:var(--ink); background:var(--sand-50);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--aqua-500); box-shadow:0 0 0 4px rgba(18,165,189,.13); background:#fff}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.book__total{display:flex; justify-content:space-between; align-items:center; padding:13px 0; margin:6px 0 14px; border-top:1px dashed var(--line); border-bottom:1px dashed var(--line); font-size:.92rem; color:var(--muted)}
.book__total b{font-family:var(--display); font-size:1.32rem; color:var(--ocean-900); letter-spacing:-.03em}
.book__note{font-size:.78rem; color:var(--muted); margin:12px 0 0; text-align:center; line-height:1.5}
.book__hr{height:1px; background:var(--line); margin:18px 0}
.book__contacts{display:flex; flex-direction:column; gap:8px; font-size:.88rem}
.book__contacts a{display:flex; align-items:center; gap:9px; color:var(--ocean-800); font-weight:600}
@media (max-width:900px){.tour-body{grid-template-columns:1fr; gap:30px} .book{position:static}}

.note-box{background:var(--sand-100); border-left:4px solid var(--gold); border-radius:0 var(--r-md) var(--r-md) 0; padding:18px 22px; margin:22px 0; font-size:.94rem; color:#4a6270}
.note-box p:last-child{margin:0}
.note-box b{color:var(--ocean-900)}

/* ---------- página genérica ---------- */
.page-head{background:linear-gradient(135deg,var(--ocean-900),var(--ocean-700)); color:#fff; padding:clamp(44px,6vw,72px) 0}
.page-head h1{color:#fff; font-size:clamp(2rem,4vw,3rem)}
.page-head p{color:#c6dde7; max-width:660px; margin:0; font-size:1.05rem}
.page-head .eyebrow{color:#9fe4ee}
.prose{max-width:800px}
.prose h2{font-size:1.4rem; margin-top:34px}
.prose h3{font-size:1.1rem; margin-top:24px}
.prose p,.prose li{color:#3c5462}
.prose ul{margin-bottom:1.2rem}

/* ---------- 404 ---------- */
.nf{text-align:center; padding:clamp(60px,10vw,120px) 0}
.nf__code{font-family:var(--display); font-size:clamp(4.5rem,14vw,9rem); font-weight:800; color:var(--aqua-300); line-height:.9; letter-spacing:-.06em}

/* ---------- animação de entrada ---------- */
.reveal{opacity:0; transform:translateY(22px)}
.reveal.is-in{opacity:1; transform:none; transition:opacity .6s ease,transform .6s ease}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important}
  .reveal{opacity:1; transform:none}
}

/* ---------- impressão ---------- */
@media print{
  .header,.wa-float,.mobile-bar,.footer,.book,.filters{display:none !important}
  body{background:#fff; font-size:12pt}
  .hero::after{display:none}
}

/* ---------- passeios sob consulta ---------- */
.save--ask{background:var(--coral-100); color:var(--coral-700)}
.book__save--ask{background:var(--coral-100); color:var(--coral-700)}

/* CTA de contato centralizado */
.cta .eyebrow{justify-content:center;}
.cta .btn-row{justify-content:center;}
