/* =========================================================
   Balneário Termas do Caldas — folha de estilo única
   Conceito: "A bica que nunca para"
   Mobile first. Sem frameworks.
   ========================================================= */

:root {
  --navy: #061533;
  --navy-2: #0C2350;
  --sky: #00A3E0;
  --sky-2: #0E8FD0;
  --sun: #FFB800;
  --red: #E61E2B;
  --leaf: #00A04B;
  --orange: #F07C00;
  --teal: #10B5B5;
  --iris: #4A73FF;
  --sand: #FBF6EC;
  --sand-2: #F3EBDA;
  --paper: #FFFFFF;
  --ink: #0B1B3A;
  --muted: #55627C;
  --line: #E6DDCB;

  --f-titulo: "Outfit", "Trebuchet MS", system-ui, sans-serif;
  --f-texto: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;

  --gutter: 20px;
  --max: 1200px;
  --sec: clamp(72px, 12vw, 140px);
  --raio: 22px;
  --raio-g: 34px;
  --sombra: 0 18px 50px -24px rgba(6, 21, 51, .35);
  --sombra-p: 0 8px 24px -14px rgba(6, 21, 51, .35);
  --ease: cubic-bezier(.22, 1, .36, 1);
  --topo-h: 68px;
}

@media (min-width: 900px) { :root { --gutter: 32px; --topo-h: 80px; } }

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--topo-h) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0; background: var(--sand); color: var(--ink);
  font: 400 16px/1.6 var(--f-texto);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
@supports (overflow: clip) { body { overflow-x: clip; } }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-family: var(--f-titulo); font-weight: 800; line-height: 1.04; letter-spacing: -.025em; margin: 0; color: var(--navy); text-wrap: balance; }
p { margin: 0; }
p + p { margin-top: .9em; }
::selection { background: var(--sun); color: var(--navy); }
:focus-visible { outline: 3px solid var(--sky); outline-offset: 3px; border-radius: 6px; }
main:focus { outline: none; }

.wrap { width: 100%; max-width: calc(var(--max) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: fixed; left: 12px; top: -60px; z-index: 300; background: var(--navy); color: #fff; padding: 12px 18px; border-radius: 12px; font-weight: 700; text-decoration: none; transition: top .2s; }
.pular:focus { top: 12px; }

.ico { width: 1.15em; height: 1.15em; flex: none; }

/* ---------- tipografia utilitária ---------- */
.selo {
  display: inline-flex; align-items: center; gap: 8px;
  font: 700 13px/1 var(--f-titulo); letter-spacing: .08em; text-transform: uppercase;
  color: var(--navy);
}
.selo::before { content: ""; width: 10px; height: 14px; background: var(--sky); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 80'%3E%3Cpath d='M30 0C18 22 4 36 4 52a26 26 0 0 0 52 0C56 36 42 22 30 0z'/%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 60 80'%3E%3Cpath d='M30 0C18 22 4 36 4 52a26 26 0 0 0 52 0C56 36 42 22 30 0z'/%3E%3C/svg%3E") center/contain no-repeat; }
.selo--claro { color: #fff; }
.selo--claro::before { background: var(--sun); }

.titulo-sec { font-size: clamp(2rem, 6.4vw, 3.6rem); }
.titulo-sec em { font-style: normal; color: var(--sky-2); }
.lead { font-size: clamp(1.02rem, 2.6vw, 1.2rem); color: var(--muted); max-width: 46ch; }
.cab-sec { display: grid; gap: 14px; margin-bottom: clamp(28px, 5vw, 48px); }
.cab-sec--centro { text-align: center; justify-items: center; }
.cab-sec--centro .lead { margin-inline: auto; }

/* ---------- botões (cápsulas com gota, sem setas) ---------- */
.btn {
  --bg: var(--navy); --fg: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 24px; border-radius: 999px; border: 0;
  background: var(--bg); color: var(--fg);
  font: 700 16px/1 var(--f-titulo); letter-spacing: .01em; text-decoration: none; cursor: pointer;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), background-color .25s;
  box-shadow: 0 10px 22px -14px rgba(6, 21, 51, .55);
  -webkit-tap-highlight-color: transparent; white-space: nowrap;
}
.btn .ico { width: 20px; height: 20px; transition: transform .45s var(--ease); }
.btn:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -16px rgba(6, 21, 51, .6); }
.btn:hover .ico { transform: rotate(-12deg) scale(1.12); }
.btn:active { transform: translateY(0) scale(.98); }
.btn--sol { --bg: var(--sun); --fg: var(--navy); }
.btn--agua { --bg: var(--sky-2); --fg: #fff; }
.btn--zap { --bg: #12A150; --fg: #fff; }
.btn--branco { --bg: #fff; --fg: var(--navy); }
.btn--linha { --bg: transparent; --fg: var(--navy); box-shadow: inset 0 0 0 2px currentColor; }
.btn--linha:hover { box-shadow: inset 0 0 0 2px currentColor; background: rgba(255,255,255,.4); }
.btn--linha-claro { --bg: transparent; --fg: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.7); }
.btn--p { min-height: 44px; padding: 0 18px; font-size: 15px; }
.btn--bloco { width: 100%; }

.link-sub {
  display: inline-flex; align-items: center; gap: 8px; font: 700 16px/1.2 var(--f-titulo); color: var(--navy);
  text-decoration: none; background: linear-gradient(var(--sun), var(--sun)) 0 100%/100% 6px no-repeat; padding-bottom: 2px;
  transition: background-size .35s var(--ease);
}
.link-sub:hover { background-size: 100% 100%; }

/* ---------- formas do kit ---------- */
.forma { position: absolute; pointer-events: none; z-index: 0; color: var(--c, var(--sun)); }
.forma svg { width: 100%; height: 100%; overflow: visible; }

/* ---------- topo ---------- */
.topo { position: sticky; top: 0; z-index: 100; background: rgba(251, 246, 236, .86); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); transition: box-shadow .3s; }
.topo.is-rolou { box-shadow: 0 6px 24px -18px rgba(6, 21, 51, .5); }
.topo__barra { height: var(--topo-h); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.topo__marca { display: flex; align-items: center; gap: 10px; text-decoration: none; flex: none; }
.topo__marca img { width: 48px; height: 48px; transition: transform .6s var(--ease); }
.topo__marca:hover img { transform: rotate(-10deg) scale(1.05); }
.topo__nome { display: none; font: 600 12px/1.05 var(--f-titulo); color: var(--muted); letter-spacing: .02em; }
.topo__nome strong { display: block; font-size: 22px; font-weight: 800; color: var(--navy); letter-spacing: -.02em; }
@media (min-width: 350px) { .topo__nome { display: block; } }
@media (min-width: 900px) { .topo__marca img { width: 56px; height: 56px; } }

.topo__nav { display: none; }
@media (min-width: 1180px) {
  .topo__nav { display: flex; gap: 4px; }
  .topo__nav a { position: relative; padding: 10px 12px; font: 600 15px/1 var(--f-titulo); text-decoration: none; color: var(--ink); border-radius: 999px; transition: background-color .25s; }
  .topo__nav a:hover { background: rgba(6, 21, 51, .06); }
  .topo__nav a[aria-current="page"] { background: var(--navy); color: #fff; }
}
.topo__acoes { display: flex; align-items: center; gap: 8px; }
.topo__cta span { display: none; }
.topo__cta { padding: 0 14px; }
@media (min-width: 520px) { .topo__cta span { display: inline; } .topo__cta { padding: 0 18px; } }
.topo__menu { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px 0 14px; border-radius: 999px; border: 0; background: var(--navy); color: #fff; font: 700 15px/1 var(--f-titulo); cursor: pointer; }
.topo__menu-linhas { position: relative; width: 18px; height: 12px; }
.topo__menu-linhas i { position: absolute; left: 0; width: 100%; height: 2.5px; border-radius: 2px; background: currentColor; transition: transform .35s var(--ease), top .35s var(--ease); }
.topo__menu-linhas i:first-child { top: 1px; }
.topo__menu-linhas i:last-child { top: 8px; }
.topo__menu[aria-expanded="true"] .topo__menu-linhas i:first-child { top: 5px; transform: rotate(45deg); }
.topo__menu[aria-expanded="true"] .topo__menu-linhas i:last-child { top: 5px; transform: rotate(-45deg); }
@media (min-width: 1180px) { .topo__menu { display: none; } }

.menu-movel { position: fixed; z-index: 99; inset: var(--topo-h) 0 0 0; background: var(--sand); overflow-y: auto; padding: 12px var(--gutter) calc(28px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 18px; }
.menu-movel[hidden] { display: none; }
.menu-movel nav { display: grid; gap: 8px; }
.menu-movel nav a {
  position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between;
  min-height: 64px; padding: 0 20px; border-radius: 20px; background: #fff; text-decoration: none;
  font: 800 24px/1 var(--f-titulo); letter-spacing: -.02em; color: var(--navy);
  opacity: 0; transform: translateY(14px); animation: menu-entra .5s var(--ease) forwards; animation-delay: calc(var(--i, 0) * 45ms);
}
.menu-movel nav a svg { width: 44px; height: 44px; color: var(--c); transition: transform .5s var(--ease); }
.menu-movel nav a:hover svg, .menu-movel nav a:focus-visible svg { transform: rotate(18deg) scale(1.1); }
.menu-movel nav a[aria-current="page"] { background: var(--navy); color: #fff; }
.menu-movel__pe { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: auto; }
.menu-movel__pe .btn { padding: 0 12px; }
@keyframes menu-entra { to { opacity: 1; transform: none; } }
body.menu-aberto { overflow: hidden; }

/* ---------- zap flutuante ---------- */
/* ---------- assistente Cadú ---------- */
.cadu { position: fixed; right: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); z-index: 150; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; transition: opacity .3s, transform .4s var(--ease); }
.cadu.is-oculto:not(.is-aberto) { opacity: 0; pointer-events: none; transform: translateY(24px); }
.cadu__botao { position: relative; width: 66px; height: 66px; padding: 0; border: 0; background: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cadu__aro { position: absolute; inset: 0; border-radius: 50%; background: var(--sky); box-shadow: 0 14px 30px -12px rgba(6,21,51,.6), inset 0 0 0 4px #fff; }
.cadu__aro::after { content: ""; position: absolute; right: 2px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: var(--sun); border: 3px solid #fff; }
.cadu__botao img { position: absolute; left: 50%; bottom: 4px; width: 78px; height: 78px; margin-left: -39px; border-radius: 0 0 40px 40px; clip-path: inset(-40% 0 0 0 round 0 0 50% 50%); transform-origin: 50% 90%; transition: transform .45s var(--ease); filter: drop-shadow(0 4px 6px rgba(6,21,51,.25)); }
.cadu__botao:hover img, .cadu__botao:focus-visible img { transform: rotate(-8deg) scale(1.06); }
.cadu.is-aberto .cadu__botao { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .cadu__botao img { animation: cadu-espia 6s ease-in-out infinite 3s; }
}
@keyframes cadu-espia { 0%, 86%, 100% { transform: none; } 90% { transform: rotate(-10deg) translateY(-3px); } 94% { transform: rotate(6deg); } }
.cadu__balao { position: relative; max-width: 220px; margin: 0; padding: 10px 14px; border-radius: 18px 18px 6px 18px; background: #fff; color: var(--navy); font: 700 14.5px/1.3 var(--f-titulo); box-shadow: var(--sombra-p); cursor: pointer; animation: balao-entra .45s var(--ease); }
.cadu__balao[hidden] { display: none; }
.cadu__painel { position: fixed; left: 0; right: 0; bottom: 0; height: min(78vh, 640px); height: min(78dvh, 640px); display: flex; flex-direction: column; background: var(--sand); border-radius: 26px 26px 0 0; box-shadow: 0 -18px 60px -20px rgba(6,21,51,.55); overflow: hidden; animation: cadu-sobe .45s var(--ease); }
.cadu__painel[hidden] { display: none; }
@keyframes cadu-sobe { from { transform: translateY(40px); opacity: 0; } }
.cadu__cab { flex: none; display: flex; align-items: center; gap: 12px; padding: 12px 12px 12px 14px; background: var(--sky-2); color: #fff; }
.cadu__cab img { width: 48px; height: 48px; border-radius: 50%; background: var(--sky); border: 3px solid #fff; object-fit: cover; object-position: 50% 0; }
.cadu__cab div { flex: 1; min-width: 0; }
.cadu__cab h2 { color: #fff; font-size: 18px; letter-spacing: -.01em; }
.cadu__cab p { font-size: 12.5px; opacity: .88; margin: 2px 0 0; }
.cadu__fechar { width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.18); color: #fff; display: grid; place-items: center; cursor: pointer; }
.cadu__fechar svg { width: 20px; height: 20px; }
.cadu__msgs { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 16px 14px 8px; display: flex; flex-direction: column; gap: 10px; background: radial-gradient(circle at 15% 0%, rgba(0,163,224,.08), transparent 45%); }
.cadu__msgs .balao { max-width: 88%; }
.cadu__msgs .balao ul { margin: 6px 0 0; padding-left: 18px; }
.cadu__msgs .balao p + p { margin-top: .5em; }
.cadu__sugestoes { flex: none; display: flex; gap: 6px; overflow-x: auto; padding: 6px 14px 10px; scrollbar-width: none; }
.cadu__sugestoes::-webkit-scrollbar { display: none; }
.cadu__sugestoes .chip { min-height: 38px; padding: 0 14px; font-size: 14px; background: #fff; border-color: transparent; box-shadow: 0 3px 10px -6px rgba(6,21,51,.5); }
.cadu__form { flex: none; display: flex; gap: 8px; padding: 8px 12px; background: #fff; border-top: 1px solid var(--line); }
.cadu__form input { flex: 1; min-width: 0; min-height: 46px; border-radius: 999px; border: 2px solid var(--line); background: var(--sand); padding: 0 16px; font: 500 16px var(--f-texto); color: var(--ink); }
.cadu__form input:focus { outline: none; border-color: var(--sky); }
.cadu__form button { width: 46px; height: 46px; flex: none; border-radius: 50%; border: 0; background: var(--navy); color: #fff; display: grid; place-items: center; cursor: pointer; }
.cadu__form button svg { width: 20px; height: 20px; }
.cadu__zap { flex: none; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 14px calc(8px + env(safe-area-inset-bottom)); background: #fff; color: #0B7A3B; font: 700 13.5px/1.2 var(--f-titulo); text-decoration: none; border-top: 1px solid var(--line); }
.cadu__zap svg { width: 18px; height: 18px; flex: none; }
.cadu__zap:hover { background: #E3F6EA; }
@media (min-width: 640px) {
  .cadu { right: 22px; bottom: 22px; }
  .cadu__painel { position: absolute; left: auto; right: 0; bottom: 0; width: 380px; height: min(600px, calc(100vh - 120px)); border-radius: 26px; box-shadow: 0 24px 70px -20px rgba(6,21,51,.6); }
}

/* ---------- revelações ---------- */
.js [data-revela] { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: var(--atraso, 0s); }
.js [data-revela].is-in { opacity: 1; transform: none; }
.js [data-revela="arco"] { opacity: 1; transform: none; }
.js [data-revela="arco"] > * { clip-path: inset(100% 0 0 0); transition: clip-path 1.3s var(--ease); transition-delay: var(--atraso, 0s); }
.js [data-revela="arco"].is-in > * { clip-path: inset(0 0 0 0); }
.linha-mask { display: block; overflow: hidden; padding-bottom: .06em; margin-bottom: -.06em; }
.linha-mask > span { display: block; }
.js .titulo-anima .linha-mask > span { transform: translateY(105%); transition: transform 1s var(--ease); transition-delay: calc(var(--l, 0) * 90ms + var(--atraso, 0s)); }
.js .titulo-anima.is-in .linha-mask > span { transform: none; }

/* ---------- fio d'água entre seções ---------- */
.fio { position: relative; height: clamp(70px, 12vw, 110px); display: flex; justify-content: center; }
.fio::before { content: ""; width: 3px; height: 100%; border-radius: 3px; background: linear-gradient(var(--sky), var(--sky)) 0 0 / 100% calc(var(--p, 0) * 100%) no-repeat, repeating-linear-gradient(var(--line) 0 8px, transparent 8px 14px); }
.fio__gota { position: absolute; left: 50%; top: calc(var(--p, 0) * 100% - 12px); width: 16px; height: 22px; margin-left: -8px; color: var(--sky); opacity: calc(var(--p, 0) * 3); }
.fio__gota svg { width: 100%; height: 100%; }

/* ---------- seções ---------- */
.sec { position: relative; padding-block: var(--sec); }
.sec--sem-topo { padding-top: 0; }
.sec--navy { background: var(--navy); color: #fff; }
.sec--navy h2, .sec--navy h3 { color: #fff; }
.sec--navy .lead { color: rgba(255,255,255,.78); }
.sec--branca { background: #fff; }

/* =========================================================
   INÍCIO
   ========================================================= */
.intro { position: fixed; inset: 0; z-index: 500; overflow: hidden; background: var(--navy); display: grid; place-items: center; pointer-events: none; }
.intro__palco { position: relative; width: 140px; height: 150px; color: var(--teal); }
.intro__palco svg { width: 100%; height: 100%; overflow: visible; }
.intro__arco { stroke-dasharray: 300; stroke-dashoffset: 300; animation: intro-traco 1s var(--ease) .1s forwards; }
.intro__gota { transform: translateY(-40px); opacity: 0; animation: intro-gota .7s cubic-bezier(.55, 0, .9, .4) .9s forwards; }
.intro__onda { position: absolute; left: 50%; top: 50%; width: 30px; height: 30px; margin: -15px 0 0 -15px; border-radius: 50%; background: var(--sky); transform: scale(0); animation: intro-onda 1s var(--ease) 1.55s forwards; }
.intro.is-saindo { animation: intro-some .5s ease 2.35s forwards; }
@keyframes intro-traco { to { stroke-dashoffset: 0; } }
@keyframes intro-gota { 0% { opacity: 1; transform: translateY(-40px); } 100% { opacity: 1; transform: translateY(80px); } }
@keyframes intro-onda { to { transform: scale(90); } }
@keyframes intro-some { to { opacity: 0; visibility: hidden; } }

.hero { position: relative; overflow: hidden; padding-block: clamp(24px, 6vw, 64px) clamp(40px, 8vw, 96px); }
.hero__grade { position: relative; z-index: 1; display: grid; gap: 34px; align-items: center; }
.hero__texto { display: grid; gap: 18px; justify-items: start; }
.hero__titulo { font-size: clamp(2.6rem, 11.5vw, 5.6rem); letter-spacing: -.035em; line-height: .98; }
.hero__titulo .destaque { color: var(--sky-2); }
.hero__lead { font-size: clamp(1.05rem, 3.2vw, 1.25rem); color: var(--muted); max-width: 34ch; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.hero__cta .btn { flex: 1 1 210px; }
@media (min-width: 640px) { .hero__cta .btn { flex: 0 0 auto; } }

.hero__visual { position: relative; width: min(100%, 520px); margin-inline: auto; aspect-ratio: 4 / 4.6; }
.hero__arco { position: absolute; inset: 0 12% 0 0; border-radius: 999px 999px 28px 28px; overflow: hidden; background: var(--sky); box-shadow: var(--sombra); }
.hero__arco picture { display: block; height: 100%; }
.hero__arco img { width: 100%; height: 100%; object-fit: cover; transform: scale(var(--zoom, 1.08)); transition: transform 1.6s var(--ease); }
.hero__arco::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 163, 224, .32), transparent 40%); mix-blend-mode: multiply; }
.hero__mini { position: absolute; right: 0; bottom: 8%; width: 38%; aspect-ratio: 3 / 4; border-radius: 999px 999px 18px 18px; overflow: hidden; border: 6px solid var(--sand); box-shadow: var(--sombra); z-index: 2; }
.hero__mini img { width: 100%; height: 100%; object-fit: cover; }
.hero__cadu { position: absolute; left: -6%; bottom: -4%; width: 34%; z-index: 3; filter: drop-shadow(0 16px 18px rgba(6, 21, 51, .3)); transform-origin: 50% 100%; }
.hero__bica { position: absolute; right: 4%; top: -2%; width: 26%; color: var(--teal); z-index: 2; }
.hero__bica svg { width: 100%; height: auto; overflow: visible; }
.hero__selo-temp { position: absolute; left: 4%; top: 8%; z-index: 3; display: grid; place-items: center; width: 92px; height: 92px; border-radius: 50%; background: var(--sun); color: var(--navy); text-align: center; font: 800 26px/1 var(--f-titulo); box-shadow: var(--sombra-p); rotate: -10deg; }
.hero__selo-temp small { display: block; font: 700 10px/1.1 var(--f-texto); letter-spacing: .04em; text-transform: uppercase; margin-top: 2px; }

@media (prefers-reduced-motion: no-preference) {
  .hero__bica .gota-1, .hero__bica .gota-2, .hero__bica .gota-3, .bica-anim .gota-1, .bica-anim .gota-2, .bica-anim .gota-3 { animation: pinga 2.4s cubic-bezier(.55, 0, .9, .4) infinite; }
  .hero__bica .gota-2, .bica-anim .gota-2 { animation-delay: .8s; }
  .hero__bica .gota-3, .bica-anim .gota-3 { animation-delay: 1.6s; }
  .hero__cadu { animation: cadu-acena 5s ease-in-out infinite; }
}
@keyframes pinga { 0% { transform: translateY(-14px); opacity: 0; } 15% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateY(26px); opacity: 0; } }
@keyframes cadu-acena { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-4deg) translateY(-6px); } }

@media (min-width: 900px) {
  .hero__grade { grid-template-columns: 1.05fr .95fr; gap: 48px; }
  .hero__visual { width: 100%; max-width: 560px; }
}

/* ---------- hoje no caldas ---------- */
.hoje { position: relative; z-index: 2; margin-top: clamp(-20px, -2vw, -10px); }
.hoje__cartao { position: relative; background: #fff; border-radius: var(--raio-g); box-shadow: var(--sombra); overflow: hidden; }
.hoje__cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px; background: var(--navy); color: #fff; }
.hoje__cab h2 { color: #fff; font-size: 20px; letter-spacing: -.01em; }
.hoje__cab small { font: 600 13px/1.2 var(--f-texto); color: rgba(255,255,255,.72); }
.hoje__picote { position: relative; height: 0; border-top: 2px dashed var(--line); margin-inline: 22px; }
.hoje__picote::before, .hoje__picote::after { content: ""; position: absolute; top: -13px; width: 24px; height: 24px; border-radius: 50%; background: var(--sand); }
.hoje__picote::before { left: -35px; } .hoje__picote::after { right: -35px; }
.hoje__grade { display: grid; grid-template-columns: 1fr 1fr; }
.hoje__item { display: grid; grid-template-columns: 1fr; gap: 4px; align-content: start; padding: 18px 16px; border-top: 1px solid var(--line); }
@media (min-width: 560px) { .hoje__item { grid-template-columns: auto 1fr; gap: 4px 12px; align-items: center; padding: 18px 20px; } }
.hoje__item:nth-child(odd) { border-right: 1px solid var(--line); }
.hoje__item:nth-child(-n+2) { border-top: 0; }
.hoje__ico { margin-bottom: 6px; }
@media (min-width: 560px) { .hoje__ico { grid-row: span 2; margin: 0; } }
.hoje__ico { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: var(--bg, rgba(0,163,224,.12)); color: var(--fg, var(--sky-2)); }
.hoje__ico svg { width: 22px; height: 22px; }
.hoje__item strong { font: 800 clamp(17px, 4.2vw, 22px)/1.05 var(--f-titulo); color: var(--navy); }
.hoje__item span { font-size: 13px; color: var(--muted); line-height: 1.3; }
.hoje__status { display: inline-flex; align-items: center; gap: 8px; }
.hoje__status::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--leaf); box-shadow: 0 0 0 0 rgba(0,160,75,.5); animation: pulsa 2s infinite; }
.hoje__status.is-fechado::before { background: var(--red); animation: none; }
@keyframes pulsa { 70% { box-shadow: 0 0 0 9px rgba(0,160,75,0); } 100% { box-shadow: 0 0 0 0 rgba(0,160,75,0); } }
.hoje__aviso { padding: 12px 22px 16px; font-size: 13px; color: var(--muted); border-top: 1px solid var(--line); }
.hoje__aviso a { font-weight: 700; color: var(--navy); }
@media (min-width: 900px) {
  .hoje__grade { grid-template-columns: repeat(4, 1fr); }
  .hoje__item { border-top: 0; padding: 24px; }
  .hoje__item:nth-child(odd) { border-right: 0; }
  .hoje__item + .hoje__item { border-left: 1px solid var(--line); }
}
/* micro-animações dos ícones */
@media (prefers-reduced-motion: no-preference) {
  .anima-ico:hover .ponteiro, .anima-ico:focus-within .ponteiro { transform-origin: 12px 12px; animation: gira 1.2s var(--ease); }
  .anima-ico:hover .raios { transform-origin: 12px 12px; animation: gira 1.4s var(--ease); }
  .anima-ico:hover [data-ico="pula"] { animation: pula .7s var(--ease); }
  .anima-ico:hover [data-ico="balanca"] { animation: balanca .8s var(--ease); }
}
@keyframes gira { to { transform: rotate(360deg); } }
@keyframes pula { 30% { transform: translateY(-5px); } 60% { transform: translateY(1px); } }
@keyframes balanca { 25% { transform: rotate(-14deg); } 60% { transform: rotate(10deg); } }

/* ---------- experiências (sanfona) ---------- */
.filtros { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 10px; margin-bottom: 18px; scrollbar-width: none; }
.filtros::-webkit-scrollbar { display: none; }
.chip {
  display: inline-flex; align-items: center; gap: 8px; flex: none; min-height: 44px; padding: 0 18px; border-radius: 999px;
  border: 2px solid var(--line); background: #fff; color: var(--navy); font: 700 15px/1 var(--f-titulo); cursor: pointer;
  transition: background-color .25s, border-color .25s, color .25s, transform .3s var(--ease);
}
.chip .ico { width: 18px; height: 18px; }
.chip:hover { border-color: var(--navy); }
.chip[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.chip:active { transform: scale(.96); }

.sanfona { display: flex; flex-direction: column; gap: 10px; }
.faixa {
  --h: 96px;
  position: relative; overflow: hidden; border-radius: 26px; min-height: var(--h); height: var(--h);
  background: var(--cor, var(--navy)); color: #fff; cursor: pointer;
  transition: height .7s var(--ease), flex-grow .7s var(--ease), opacity .4s;
  border: 0; padding: 0; text-align: left; width: 100%;
}
.faixa.is-aberta { --h: 380px; }
.faixa[hidden] { display: none; }
.faixa__midia { position: absolute; inset: 0; }
.faixa__midia img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.2s var(--ease); }
.faixa.is-aberta .faixa__midia img { transform: scale(1); }
.faixa__midia::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,21,51,.86) 0%, rgba(6,21,51,.25) 55%, rgba(6,21,51,.1)); }
.faixa__forma { position: absolute; right: -24px; top: -20px; width: 180px; height: 180px; color: rgba(255,255,255,.22); transition: transform 1s var(--ease); }
.faixa.is-aberta .faixa__forma { transform: rotate(20deg) scale(1.15); }
.faixa__rot { position: absolute; left: 22px; right: 70px; bottom: 0; top: 0; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 26px; z-index: 1; }
.faixa__tag { font: 700 12px/1 var(--f-titulo); letter-spacing: .08em; text-transform: uppercase; color: var(--sun); margin-bottom: 6px; }
.faixa__nome { font: 800 clamp(22px, 5.6vw, 30px)/1.05 var(--f-titulo); letter-spacing: -.02em; color: #fff; }
.faixa__txt { max-height: 0; opacity: 0; overflow: hidden; font-size: 15px; color: rgba(255,255,255,.9); max-width: 40ch; transition: max-height .7s var(--ease), opacity .5s, margin .5s; }
.faixa.is-aberta .faixa__txt { max-height: 160px; opacity: 1; margin-top: 10px; }
.faixa__mais { position: absolute; right: 18px; bottom: 22px; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.18); display: grid; place-items: center; z-index: 1; transition: transform .5s var(--ease), background-color .3s; }
.faixa__mais svg { width: 20px; height: 20px; }
.faixa.is-aberta .faixa__mais { transform: rotate(45deg); background: var(--sun); color: var(--navy); }
.faixa:not(.is-aberta) .faixa__rot { padding-bottom: 0; justify-content: center; }
.faixa:not(.is-aberta) .faixa__tag { display: none; }

@media (min-width: 900px) {
  .sanfona { flex-direction: row; height: 540px; gap: 12px; }
  .faixa { height: auto; min-height: 0; flex: 1 1 0; border-radius: 30px; }
  .faixa.is-aberta { flex-grow: 5.5; }
  .faixa:not(.is-aberta) .faixa__rot { left: 0; right: 0; justify-content: flex-end; align-items: center; padding-bottom: 86px; }
  .faixa:not(.is-aberta) .faixa__nome { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 24px; white-space: nowrap; }
  .faixa:not(.is-aberta) .faixa__mais { left: 50%; margin-left: -20px; right: auto; }
  .faixa__rot { left: 30px; right: 90px; padding-bottom: 34px; }
  .faixa__nome { font-size: 40px; }
  .faixa__mais { right: 26px; bottom: 30px; }
}

/* ---------- números ---------- */
.numeros { overflow: hidden; }
.numeros__grade { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 28px 18px; }
.numero { display: grid; gap: 8px; align-content: start; }
.numero strong { font: 800 clamp(2.6rem, 11vw, 5rem)/.9 var(--f-titulo); letter-spacing: -.04em; color: var(--sun); }
.numero:nth-child(2) strong { color: var(--sky); }
.numero:nth-child(3) strong { color: #fff; }
.numero:nth-child(4) strong { color: var(--teal); }
.numero > span { font-size: 15px; color: rgba(255,255,255,.78); max-width: 26ch; }
@media (min-width: 900px) { .numeros__grade { grid-template-columns: repeat(4, 1fr); gap: 40px; } }

/* ---------- regras ---------- */
.regras { display: grid; gap: 16px; position: relative; }
.regra { position: relative; border-radius: var(--raio-g); padding: 28px 24px; overflow: hidden; }
.regra--pode { background: #E3F6EA; }
.regra--nao { background: #FDE6E7; }
.regra h3 { display: flex; align-items: center; gap: 12px; font-size: clamp(24px, 5.6vw, 32px); margin-bottom: 18px; }
.regra h3 i { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--leaf); color: #fff; flex: none; }
.regra--nao h3 i { background: var(--red); }
.regra h3 i svg { width: 22px; height: 22px; }
.regra ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.regra li { display: flex; align-items: center; gap: 14px; font-weight: 600; font-size: 16px; line-height: 1.35; }
.regra li svg { width: 38px; height: 38px; padding: 9px; border-radius: 12px; background: #fff; flex: none; color: var(--leaf); }
.regra--nao li svg { color: var(--red); }
.regras__cadu { width: min(240px, 60%); margin: -10px auto -40px; position: relative; z-index: 2; order: 0; }
.regras__nota { font-size: 14px; color: var(--muted); margin-top: 18px; }
@media (min-width: 900px) {
  .regras { grid-template-columns: 1fr 230px 1fr; align-items: center; gap: 0; }
  .regras__cadu { width: 100%; margin: 0 -20px; order: initial; }
  .regra { padding: 40px 36px; min-height: 100%; }
}

/* ---------- dúvidas em conversa ---------- */
.duvidas { display: grid; gap: 28px; align-items: start; }
.duvidas__perguntas { display: flex; flex-wrap: wrap; gap: 8px; }
.duvidas__perguntas .chip { border-color: transparent; background: #fff; box-shadow: var(--sombra-p); }
.duvidas__perguntas .chip.is-feita { opacity: .55; }
.conversa { background: #fff; border-radius: 30px; box-shadow: var(--sombra); overflow: hidden; display: flex; flex-direction: column; height: 420px; }
.conversa__cab { display: flex; align-items: center; gap: 12px; padding: 14px 18px; background: var(--sky-2); color: #fff; }
.conversa__cab img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; object-position: 50% 12%; background: #fff; border: 2px solid #fff; }
.conversa__cab strong { display: block; font: 800 17px/1.1 var(--f-titulo); }
.conversa__cab small { font-size: 12.5px; opacity: .85; }
.conversa__corpo { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 10px; background: radial-gradient(circle at 20% 10%, rgba(0,163,224,.07), transparent 40%), var(--sand); scroll-behavior: smooth; }
.balao { max-width: 84%; padding: 12px 16px; border-radius: 20px; font-size: 15px; line-height: 1.45; animation: balao-entra .45s var(--ease); }
.balao--cadu { align-self: flex-start; background: #fff; border-bottom-left-radius: 6px; box-shadow: 0 4px 14px -10px rgba(6,21,51,.5); }
.balao--voce { align-self: flex-end; background: var(--navy); color: #fff; border-bottom-right-radius: 6px; }
.balao a { color: var(--sky-2); font-weight: 700; }
.digitando { display: inline-flex; gap: 4px; }
.digitando i { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); opacity: .4; animation: digita 1s infinite; }
.digitando i:nth-child(2) { animation-delay: .15s; } .digitando i:nth-child(3) { animation-delay: .3s; }
@keyframes digita { 50% { opacity: 1; transform: translateY(-3px); } }
@keyframes balao-entra { from { opacity: 0; transform: translateY(8px) scale(.97); } }
@media (min-width: 900px) { .duvidas { grid-template-columns: .9fr 1.1fr; gap: 56px; } .conversa { height: 520px; } }

/* ---------- antes e depois ---------- */
.tempo { display: grid; gap: 28px; align-items: center; }
.comparar { position: relative; aspect-ratio: 16 / 10; border-radius: var(--raio-g); overflow: hidden; box-shadow: var(--sombra); background: #222; touch-action: pan-y; user-select: none; --pos: 50%; }
.comparar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.comparar__antes { clip-path: inset(0 calc(100% - var(--pos)) 0 0); filter: sepia(.35) contrast(1.05); }
.comparar__linha { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 4px; margin-left: -2px; background: #fff; pointer-events: none; }
.comparar__alca { position: absolute; top: 50%; left: var(--pos); width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; background: var(--sun); color: var(--navy); display: grid; place-items: center; box-shadow: var(--sombra-p); pointer-events: none; }
.comparar__alca svg { width: 30px; height: 30px; }
.comparar__rot { position: absolute; bottom: 14px; padding: 6px 12px; border-radius: 999px; font: 700 13px/1 var(--f-titulo); background: rgba(6,21,51,.72); color: #fff; pointer-events: none; }
.comparar__rot--a { left: 14px; } .comparar__rot--b { right: 14px; background: var(--sky-2); }
.comparar input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
@media (min-width: 900px) { .tempo { grid-template-columns: .8fr 1.2fr; gap: 56px; } }

/* ---------- ficar mais (hospedagem teaser) ---------- */
.ficar { position: relative; overflow: hidden; border-radius: var(--raio-g); background: var(--iris); color: #fff; padding: clamp(32px, 6vw, 64px); display: grid; gap: 22px; }
.ficar h2 { color: #fff; font-size: clamp(2rem, 6.4vw, 3.4rem); max-width: 14ch; position: relative; z-index: 1; }
.ficar p { color: rgba(255,255,255,.86); max-width: 42ch; position: relative; z-index: 1; }
.ficar .btn { justify-self: start; position: relative; z-index: 1; }
.ficar__janelas { position: absolute; right: -30px; bottom: -10px; display: flex; gap: 12px; z-index: 0; opacity: .9; }
.ficar__janelas i { display: block; width: 74px; height: 120px; border-radius: 999px 999px 0 0; background: var(--sun); }
.ficar__janelas i:nth-child(2) { background: var(--teal); height: 170px; }
.ficar__janelas i:nth-child(3) { background: var(--orange); height: 140px; }
@media (max-width: 899px) { .ficar { padding-bottom: 150px; } }
@media (min-width: 900px) { .ficar__janelas { right: 40px; } .ficar__janelas i { width: 110px; height: 180px; } .ficar__janelas i:nth-child(2) { height: 260px; } .ficar__janelas i:nth-child(3) { height: 210px; } }

/* ---------- mural (fotos correndo) ---------- */
.mural { overflow: hidden; }
.mural__trilho { display: flex; gap: 14px; width: max-content; padding-block: 8px; }
.js .mural__trilho { animation: corre 60s linear infinite; }
.mural:hover .mural__trilho, .mural:focus-within .mural__trilho { animation-play-state: paused; }
.mural__foto { flex: none; width: clamp(170px, 42vw, 280px); aspect-ratio: 3 / 4; overflow: hidden; background: var(--sand-2); }
.mural__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.mural__foto:hover img { transform: scale(1.06); }
.mural__foto:nth-child(4n+1) { border-radius: 999px 999px 22px 22px; }
.mural__foto:nth-child(4n+2) { border-radius: 26px; aspect-ratio: 1; align-self: center; }
.mural__foto:nth-child(4n+3) { border-radius: 22px 22px 999px 999px; }
.mural__foto:nth-child(4n+4) { border-radius: 26px 90px 26px 26px; }
@keyframes corre { to { transform: translateX(-50%); } }
.mural__rodape { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-top: 28px; }
.insta-selo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.insta-selo i { width: 48px; height: 48px; border-radius: 16px; display: grid; place-items: center; color: #fff; background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
.insta-selo i svg { width: 24px; height: 24px; }
.insta-selo strong { display: block; font: 800 17px/1.1 var(--f-titulo); color: var(--navy); }
.insta-selo small { color: var(--muted); font-size: 13.5px; }

/* ---------- como chegar ---------- */
.chegar { display: grid; gap: 22px; }
.chegar__mapa { position: relative; border-radius: 999px 999px 30px 30px; overflow: hidden; aspect-ratio: 1 / 1.05; background: var(--sand-2); box-shadow: var(--sombra); }
.chegar__mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: saturate(1.1); }
.chegar__info { display: grid; gap: 18px; align-content: center; }
.endereco { font: 700 clamp(20px, 4.4vw, 26px)/1.25 var(--f-titulo); color: var(--navy); }
.chegar__botoes { display: flex; flex-wrap: wrap; gap: 10px; }
.contatos { display: grid; gap: 10px; }
.contato { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 18px; background: #fff; text-decoration: none; box-shadow: var(--sombra-p); transition: transform .35s var(--ease); }
.contato:hover { transform: translateY(-2px); }
.contato i { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: var(--bg, #E3F6EA); color: var(--fg, #12A150); flex: none; }
.contato i svg { width: 22px; height: 22px; }
.contato small { display: block; font-size: 12.5px; color: var(--muted); }
.contato strong { font: 700 16.5px/1.2 var(--f-titulo); color: var(--navy); word-break: break-word; }
@media (min-width: 900px) { .chegar { grid-template-columns: 1fr 1fr; gap: 56px; } .chegar__mapa { aspect-ratio: 1 / 1.1; } }

/* =========================================================
   CAPAS DE PÁGINA INTERNA
   ========================================================= */
.capa { position: relative; overflow: hidden; background: var(--capa, var(--sky-2)); color: #fff; padding-block: clamp(28px, 6vw, 72px) 0; }
.capa h1 { color: #fff; font-size: clamp(2.5rem, 10.5vw, 5.4rem); letter-spacing: -.035em; line-height: .98; }
.capa .lead { color: rgba(255,255,255,.88); max-width: 40ch; }
.capa__grade { position: relative; z-index: 1; display: grid; gap: 26px; align-items: end; }
.capa__texto { display: grid; gap: 16px; padding-bottom: clamp(24px, 5vw, 64px); }
.capa__foto { position: relative; justify-self: center; width: min(100%, 460px); aspect-ratio: 4 / 4.2; border-radius: 999px 999px 0 0; overflow: hidden; }
.capa__foto img { width: 100%; height: 100%; object-fit: cover; }
.capa--escura { --capa: var(--navy); }
.capa--sol { --capa: var(--sun); color: var(--navy); }
.capa--sol h1, .capa--sol .lead { color: var(--navy); }
.capa--sol .selo--claro { color: var(--navy); }
.capa--sol .selo--claro::before { background: var(--navy); }
@media (min-width: 900px) { .capa__grade { grid-template-columns: 1.1fr .9fr; gap: 48px; } .capa__foto { justify-self: end; } }

/* =========================================================
   O BALNEÁRIO
   ========================================================= */
.linha-tempo { position: relative; display: grid; gap: 22px; padding-left: 34px; }
.linha-tempo::before { content: ""; position: absolute; left: 11px; top: 6px; bottom: 6px; width: 3px; border-radius: 3px; background: linear-gradient(var(--sky), var(--sky)) 0 0 / 100% calc(var(--p, 0) * 100%) no-repeat, var(--line); }
.marco { position: relative; display: grid; gap: 14px; background: #fff; border-radius: var(--raio-g); padding: 22px; box-shadow: var(--sombra-p); }
.marco::before { content: ""; position: absolute; left: -31px; top: 26px; width: 20px; height: 26px; background: var(--sky); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 80'%3E%3Cpath d='M30 0C18 22 4 36 4 52a26 26 0 0 0 52 0C56 36 42 22 30 0z'/%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 60 80'%3E%3Cpath d='M30 0C18 22 4 36 4 52a26 26 0 0 0 52 0C56 36 42 22 30 0z'/%3E%3C/svg%3E") center/contain no-repeat; }
.marco__ano { font: 800 clamp(40px, 10vw, 64px)/.9 var(--f-titulo); letter-spacing: -.04em; color: var(--cor, var(--sky-2)); }
.marco h3 { font-size: 22px; }
.marco p { color: var(--muted); }
.marco img { border-radius: 18px; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
@media (min-width: 900px) {
  .linha-tempo { padding-left: 0; gap: 34px; }
  .linha-tempo::before { left: 50%; margin-left: -1.5px; }
  .marco { width: calc(50% - 44px); padding: 30px; }
  .marco:nth-child(even) { justify-self: end; }
  .marco::before { left: auto; right: -56px; top: 34px; }
  .marco:nth-child(even)::before { right: auto; left: -56px; }
}

.atracoes { display: grid; gap: 18px; }
.atracao { position: relative; display: grid; border-radius: var(--raio-g); overflow: hidden; background: #fff; box-shadow: var(--sombra-p); }
.atracao__midia { position: relative; aspect-ratio: 16 / 11; overflow: hidden; background: var(--cor, var(--sky-2)); }
.atracao__midia img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.atracao:hover .atracao__midia img { transform: scale(1.05); }
.atracao__midia .forma { width: 60%; height: 80%; right: -6%; bottom: -10%; color: rgba(255,255,255,.3); }
.atracao__txt { padding: 22px 22px 26px; display: grid; gap: 8px; }
.atracao__txt h3 { font-size: 24px; }
.atracao__txt p { color: var(--muted); font-size: 15.5px; }
@media (min-width: 640px) { .atracoes { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) {
  .atracoes { grid-template-columns: repeat(6, 1fr); }
  .atracao { grid-column: span 2; }
  .atracao:nth-child(1), .atracao:nth-child(2) { grid-column: span 3; }
  .atracao:nth-child(1) .atracao__midia, .atracao:nth-child(2) .atracao__midia { aspect-ratio: 16 / 9; }
}

.selo-unico { position: relative; overflow: hidden; border-radius: var(--raio-g); background: var(--teal); color: #fff; padding: clamp(30px, 6vw, 60px); display: grid; gap: 14px; }
.selo-unico h2 { color: #fff; font-size: clamp(1.9rem, 6vw, 3.2rem); max-width: 18ch; position: relative; z-index: 1; }
.selo-unico p { max-width: 50ch; color: rgba(255,255,255,.9); position: relative; z-index: 1; }

/* =========================================================
   GUIA DO VISITANTE
   ========================================================= */
.guia-nav { position: sticky; top: var(--topo-h); z-index: 50; background: rgba(251,246,236,.92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.guia-nav .filtros { margin: 0; padding-block: 10px; }
.guia-nav .chip { min-height: 40px; text-decoration: none; }

.ingressos-cards { display: grid; gap: 16px; }
.bilhete { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 16px; padding: 24px 26px; border-radius: 26px; background: var(--bg, #fff); color: var(--fg, var(--navy)); box-shadow: var(--sombra-p); overflow: hidden; }
.bilhete::before, .bilhete::after { content: ""; position: absolute; right: 118px; width: 24px; height: 24px; border-radius: 50%; background: var(--sand); }
.bilhete::before { top: -12px; } .bilhete::after { bottom: -12px; }
.bilhete__corte { position: absolute; right: 129px; top: 14px; bottom: 14px; border-left: 2px dashed currentColor; opacity: .25; }
.bilhete h3 { color: inherit; font-size: 26px; }
.bilhete p { font-size: 14.5px; opacity: .82; margin-top: 6px; }
.bilhete .bilhete__valor { margin: 0; opacity: 1; width: 96px; text-align: center; font: 800 38px/1 var(--f-titulo); letter-spacing: -.03em; }
.bilhete .bilhete__valor small { display: block; font: 700 13px/1 var(--f-titulo); letter-spacing: .04em; opacity: .7; margin-bottom: 4px; }
.bilhete--meia { --bg: var(--navy); --fg: #fff; }
.bilhete--gratis { --bg: var(--sun); --fg: var(--navy); }
.bilhete ul { margin: 10px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.bilhete li { font-size: 13px; font-weight: 600; padding: 5px 10px; border-radius: 999px; background: rgba(255,255,255,.14); }
@media (min-width: 900px) { .ingressos-cards { grid-template-columns: repeat(3, 1fr); } .bilhete { grid-template-columns: 1fr; padding: 30px 28px 26px; align-content: start; } .bilhete::before, .bilhete::after, .bilhete__corte { display: none; } .bilhete .bilhete__valor { width: auto; text-align: left; order: -1; font-size: 54px; } }

.facilidades { display: grid; gap: 14px; }
.facilidade { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; padding: 22px; border-radius: 24px; background: #fff; box-shadow: var(--sombra-p); }
.facilidade i { grid-row: span 2; width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--bg); color: var(--fg); }
.facilidade i svg { width: 26px; height: 26px; }
.facilidade h3 { font-size: 20px; align-self: end; }
.facilidade p { color: var(--muted); font-size: 15px; }
@media (min-width: 900px) { .facilidades { grid-template-columns: repeat(3, 1fr); } }

.levar { display: grid; gap: 10px; counter-reset: lv; }
.levar label { position: relative; display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 18px; background: #fff; cursor: pointer; font-weight: 600; box-shadow: var(--sombra-p); transition: background-color .3s; }
.levar input { appearance: none; -webkit-appearance: none; width: 28px; height: 28px; border-radius: 9px; border: 2px solid var(--line); flex: none; display: grid; place-items: center; margin: 0; transition: background-color .25s, border-color .25s; }
.levar input::after { content: ""; width: 12px; height: 7px; border: solid #fff; border-width: 0 0 3px 3px; transform: rotate(-45deg) scale(0); margin-top: -3px; transition: transform .3s var(--ease); }
.levar input:checked { background: var(--leaf); border-color: var(--leaf); }
.levar input:checked::after { transform: rotate(-45deg) scale(1); }
.levar label:has(input:checked) { background: #E3F6EA; }
.levar label:has(input:checked) span { text-decoration: line-through; text-decoration-color: rgba(0,160,75,.6); text-decoration-thickness: 2px; }
@media (min-width: 640px) { .levar { grid-template-columns: 1fr 1fr; } }

.faq { display: grid; gap: 10px; }
.faq details { background: #fff; border-radius: 22px; box-shadow: var(--sombra-p); overflow: hidden; }
.faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; cursor: pointer; font: 700 17.5px/1.3 var(--f-titulo); color: var(--navy); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary i { width: 34px; height: 34px; border-radius: 50%; background: var(--sand); display: grid; place-items: center; flex: none; transition: transform .45s var(--ease), background-color .3s; }
.faq summary i svg { width: 18px; height: 18px; }
.faq details[open] summary i { transform: rotate(45deg); background: var(--sun); }
.faq__resp { padding: 0 22px 22px; color: var(--muted); }
.faq__resp ul { margin: 8px 0 0; padding-left: 20px; }
.faq__resp strong { color: var(--ink); }

/* =========================================================
   PLANEJAR VISITA (simulador)
   ========================================================= */
.simulador { display: grid; gap: 22px; align-items: start; }
.sim-cartao { background: #fff; border-radius: var(--raio-g); box-shadow: var(--sombra); padding: clamp(20px, 4vw, 32px); display: grid; gap: 18px; }
.sim-cartao h2 { font-size: 24px; }
.campo { display: grid; gap: 8px; }
.campo label, .campo > span { font: 700 14px/1.2 var(--f-titulo); color: var(--navy); letter-spacing: .02em; }
.campo input[type="date"] { min-height: 54px; border-radius: 16px; border: 2px solid var(--line); padding: 0 16px; font: 600 16px var(--f-texto); color: var(--ink); background: var(--sand); width: 100%; }
.campo input[type="date"]:focus { outline: none; border-color: var(--sky); }
.contador { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; padding: 16px 0; border-top: 1px solid var(--line); }
.contador h3 { font-size: 19px; }
.contador p { font-size: 13.5px; color: var(--muted); line-height: 1.35; margin-top: 2px; }
.contador__ctrl { display: flex; align-items: center; gap: 6px; background: var(--sand); border-radius: 999px; padding: 5px; }
.contador__ctrl button { width: 44px; height: 44px; border-radius: 50%; border: 0; background: #fff; color: var(--navy); display: grid; place-items: center; cursor: pointer; box-shadow: 0 4px 10px -8px rgba(6,21,51,.6); transition: transform .2s; }
.contador__ctrl button:active { transform: scale(.9); }
.contador__ctrl button svg { width: 18px; height: 18px; }
.contador__ctrl output { min-width: 28px; text-align: center; font: 800 20px/1 var(--f-titulo); }
.recibo { position: relative; background: var(--navy); color: #fff; border-radius: var(--raio-g); padding: clamp(22px, 4vw, 32px); display: grid; gap: 14px; overflow: hidden; }
.recibo h2 { color: #fff; font-size: 22px; }
.recibo__linhas { display: grid; gap: 8px; font-size: 15px; }
.recibo__linhas div { display: flex; justify-content: space-between; gap: 12px; color: rgba(255,255,255,.82); }
.recibo__total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-top: 14px; border-top: 2px dashed rgba(255,255,255,.25); }
.recibo__total span { font-weight: 600; }
.recibo__total strong { font: 800 clamp(40px, 10vw, 54px)/1 var(--f-titulo); letter-spacing: -.03em; color: var(--sun); }
.recibo small { color: rgba(255,255,255,.7); font-size: 13px; line-height: 1.45; }
.erro { color: var(--red); font-weight: 700; font-size: 14px; }
.recibo .erro { color: #FF8E95; }
@media (min-width: 900px) { .simulador { grid-template-columns: 1.15fr .85fr; gap: 28px; } .recibo { position: sticky; top: calc(var(--topo-h) + 20px); } }

/* =========================================================
   GALERIA
   ========================================================= */
.galeria-grade { columns: 2 150px; column-gap: 10px; }
.galeria-grade > * { break-inside: avoid; margin-bottom: 10px; }
.foto-item { position: relative; display: block; width: 100%; padding: 0; border: 0; background: var(--sand-2); border-radius: 18px; overflow: hidden; cursor: zoom-in; }
.foto-item img { width: 100%; transition: transform .8s var(--ease); }
.foto-item:hover img { transform: scale(1.04); }
.foto-item:nth-child(5n+1) { border-radius: 999px 999px 18px 18px; }
.foto-item:nth-child(7n+4) { border-radius: 18px 18px 120px 18px; }
.foto-item__leg { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 14px 12px; font: 600 13.5px/1.3 var(--f-texto); color: #fff; background: linear-gradient(transparent, rgba(6,21,51,.78)); opacity: 0; transform: translateY(8px); transition: opacity .4s, transform .4s var(--ease); text-align: left; }
.foto-item:hover .foto-item__leg, .foto-item:focus-visible .foto-item__leg { opacity: 1; transform: none; }
.esqueleto { border-radius: 18px; background: linear-gradient(100deg, var(--sand-2) 30%, #fff 50%, var(--sand-2) 70%) 0 0 / 300% 100%; animation: brilho 1.4s linear infinite; }
@keyframes brilho { to { background-position: -150% 0; } }
@media (min-width: 640px) { .galeria-grade { columns: 3; column-gap: 14px; } .galeria-grade > * { margin-bottom: 14px; } }
@media (min-width: 1000px) { .galeria-grade { columns: 4; } }
.paginacao { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 30px; }
.paginacao button { min-width: 46px; height: 46px; padding: 0 10px; border-radius: 999px; border: 2px solid var(--line); background: #fff; font: 700 15px var(--f-titulo); color: var(--navy); cursor: pointer; display: grid; place-items: center; }
.paginacao button[aria-current="page"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.paginacao button:disabled { opacity: .4; cursor: not-allowed; }
.paginacao button svg { width: 18px; height: 18px; }

/* lightbox */
.luz { position: fixed; inset: 0; z-index: 400; background: rgba(6,21,51,.94); display: grid; grid-template-rows: auto 1fr auto; color: #fff; }
.luz[hidden] { display: none; }
.luz__topo { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; }
.luz__cont { font: 700 14px var(--f-titulo); opacity: .8; padding-left: 6px; }
.luz__btn { width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.12); color: #fff; display: grid; place-items: center; cursor: pointer; }
.luz__btn svg { width: 22px; height: 22px; }
.luz__palco { position: relative; display: grid; place-items: center; padding: 0 10px; min-height: 0; touch-action: pan-y; }
.luz__palco img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 14px; }
.luz__leg { padding: 14px 18px calc(18px + env(safe-area-inset-bottom)); text-align: center; font-size: 15px; display: flex; align-items: center; justify-content: center; gap: 12px; }
.luz__nav { position: absolute; top: 50%; margin-top: -24px; }
.luz__nav--a { left: 12px; } .luz__nav--p { right: 12px; }
@media (max-width: 639px) { .luz__nav { display: none; } }

/* =========================================================
   HOSPEDAGEM
   ========================================================= */
.opcoes { display: grid; gap: 22px; }
.opcao { position: relative; border-radius: var(--raio-g); background: #fff; box-shadow: var(--sombra); overflow: hidden; display: grid; }
.opcao__topo { position: relative; padding: 30px 26px 26px; background: var(--cor); color: #fff; overflow: hidden; min-height: 190px; display: grid; align-content: end; }
.opcao__topo h2 { color: #fff; font-size: clamp(2rem, 7vw, 2.8rem); position: relative; z-index: 1; }
.opcao__topo p { color: rgba(255,255,255,.88); max-width: 36ch; position: relative; z-index: 1; margin-top: 8px; }
.opcao__topo .forma { right: -20px; top: -20px; width: 170px; height: 170px; color: rgba(255,255,255,.22); }
.opcao dl { margin: 0; padding: 22px 26px 6px; display: grid; gap: 14px; }
.opcao dl div { display: grid; grid-template-columns: 44px 1fr; gap: 2px 14px; align-items: center; }
.opcao dt { grid-row: span 2; width: 44px; height: 44px; border-radius: 14px; background: var(--sand); color: var(--navy); display: grid; place-items: center; }
.opcao dt svg { width: 22px; height: 22px; }
.opcao dd { margin: 0; }
.opcao dd small { display: block; font: 700 12px/1 var(--f-titulo); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.opcao dd span { font-weight: 600; }
.opcao__acao { padding: 18px 26px 26px; }
@media (min-width: 900px) { .opcoes { grid-template-columns: 1fr 1fr; } }

/* =========================================================
   TRANSPARÊNCIA
   ========================================================= */
.tr-resumo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.tr-resumo div { background: rgba(255,255,255,.12); border-radius: 20px; padding: 16px 14px; }
.tr-resumo strong { display: block; font: 800 clamp(28px, 7vw, 44px)/1 var(--f-titulo); color: #fff; letter-spacing: -.03em; }
.tr-resumo span { font-size: 13px; color: rgba(255,255,255,.8); line-height: 1.25; display: block; margin-top: 4px; }

.tr-barra { position: sticky; top: var(--topo-h); z-index: 50; background: rgba(251,246,236,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.tr-barra__in { display: grid; gap: 10px; padding-block: 12px; }
.busca { position: relative; }
.busca svg { position: absolute; left: 16px; top: 50%; width: 20px; height: 20px; margin-top: -10px; color: var(--muted); pointer-events: none; }
.busca input { width: 100%; min-height: 50px; border-radius: 999px; border: 2px solid var(--line); background: #fff; padding: 0 18px 0 46px; font: 500 16px var(--f-texto); color: var(--ink); }
.busca input:focus { outline: none; border-color: var(--sky); }
.tr-barra .filtros { margin: 0; padding: 0 2px 2px; }
.tr-barra .chip { min-height: 40px; font-size: 14px; padding: 0 14px; }
.chip__n { font: 700 12px/1 var(--f-texto); padding: 3px 7px; border-radius: 999px; background: var(--sand); color: var(--muted); }
.chip[aria-pressed="true"] .chip__n { background: rgba(255,255,255,.2); color: #fff; }
@media (min-width: 900px) { .tr-barra__in { grid-template-columns: 340px 1fr; align-items: center; gap: 16px; } }

.tr-lista { display: grid; gap: 14px; padding-top: 22px; }
.tr-mes { font: 800 13px/1 var(--f-titulo); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: 14px 4px 2px; }
.acao { display: grid; grid-template-columns: 96px 1fr; gap: 14px; align-items: stretch; padding: 12px; border-radius: 24px; background: #fff; box-shadow: var(--sombra-p); text-align: left; border: 0; width: 100%; cursor: pointer; transition: transform .35s var(--ease), box-shadow .35s; text-decoration: none; color: inherit; font: inherit; }
.acao:hover { transform: translateY(-2px); box-shadow: var(--sombra); }
.acao__midia { position: relative; border-radius: 16px; overflow: hidden; background: var(--cor, var(--sky-2)); aspect-ratio: 4 / 5; display: grid; place-items: center; color: #fff; }
.acao__midia img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.acao__midia > svg { width: 34px; height: 34px; position: relative; }
.acao__tipo { position: absolute; left: 6px; bottom: 6px; display: inline-flex; align-items: center; gap: 4px; padding: 4px 7px; border-radius: 999px; background: rgba(6,21,51,.72); font: 700 11px/1 var(--f-titulo); color: #fff; }
.acao__tipo svg { width: 11px; height: 11px; }
.acao__txt { display: grid; gap: 6px; align-content: center; min-width: 0; padding-right: 4px; }
.acao__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.etiqueta { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 999px; font: 700 11.5px/1 var(--f-titulo); letter-spacing: .02em; background: var(--bg, var(--sand)); color: var(--fg, var(--navy)); }
.etiqueta svg { width: 12px; height: 12px; }
.acao h3 { font-size: clamp(17px, 4.4vw, 22px); line-height: 1.15; letter-spacing: -.015em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.acao__resumo { font-size: 14px; color: var(--muted); display: none; }
.acao__data { font-size: 13px; color: var(--muted); font-weight: 600; }
@media (min-width: 640px) {
  .acao { grid-template-columns: 170px 1fr; gap: 22px; padding: 14px; }
  .acao__resumo { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
.tr-vazio { padding: 40px 20px; text-align: center; color: var(--muted); font-weight: 600; }
.tr-mais { display: flex; justify-content: center; margin-top: 22px; }

/* leitor (gaveta lateral no desktop, folha de baixo no celular) */
.leitor { position: fixed; inset: 0; z-index: 400; }
.leitor[hidden] { display: none; }
.leitor__fundo { position: absolute; inset: 0; background: rgba(6,21,51,.6); opacity: 0; transition: opacity .35s; }
.leitor.is-aberto .leitor__fundo { opacity: 1; }
.leitor__painel { position: absolute; left: 0; right: 0; bottom: 0; top: 4vh; background: var(--sand); border-radius: 28px 28px 0 0; display: flex; flex-direction: column; transform: translateY(100%); transition: transform .5s var(--ease); box-shadow: 0 -20px 60px -20px rgba(6,21,51,.6); overflow: hidden; }
.leitor.is-aberto .leitor__painel { transform: none; }
.leitor__barra { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px 10px 18px; background: #fff; border-bottom: 1px solid var(--line); }
.leitor__puxador { position: absolute; left: 50%; top: 6px; width: 44px; height: 5px; margin-left: -22px; border-radius: 5px; background: var(--line); }
.leitor__pos { font: 700 13px var(--f-titulo); color: var(--muted); }
.leitor__botoes { display: flex; gap: 6px; }
.leitor__botoes button, .leitor__botoes a { width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--sand); color: var(--navy); display: grid; place-items: center; cursor: pointer; }
.leitor__botoes button:disabled { opacity: .35; cursor: default; }
.leitor__botoes svg { width: 20px; height: 20px; }
.leitor__botoes .leitor__fechar { background: var(--navy); color: #fff; }
.leitor__rolagem { flex: 1; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.leitor__midia { background: #0B1430; }
.leitor__midia video { width: 100%; max-height: 62vh; background: #000; margin-inline: auto; }
.carrossel { position: relative; }
.carrossel__trilho { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.carrossel__trilho::-webkit-scrollbar { display: none; }
.carrossel__trilho figure { flex: 0 0 100%; margin: 0; scroll-snap-align: center; display: grid; place-items: center; background: #0B1430; }
.carrossel__trilho img { width: 100%; max-height: 70vh; object-fit: contain; }
.carrossel__pontos { position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: center; gap: 6px; }
.carrossel__pontos button { width: 9px; height: 9px; padding: 0; border-radius: 50%; border: 0; background: rgba(255,255,255,.45); cursor: pointer; transition: width .3s var(--ease), background-color .3s; }
.carrossel__pontos button[aria-current="true"] { width: 24px; border-radius: 6px; background: var(--sun); }
.carrossel__seta { position: absolute; top: 50%; margin-top: -22px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.9); color: var(--navy); display: none; place-items: center; cursor: pointer; }
.carrossel__seta svg { width: 20px; height: 20px; }
.carrossel__seta--a { left: 10px; } .carrossel__seta--p { right: 10px; }
@media (min-width: 900px) { .carrossel__seta { display: grid; } }
.leitor__corpo { padding: 22px 20px 40px; display: grid; gap: 16px; max-width: 680px; margin-inline: auto; }
.leitor__corpo h2 { font-size: clamp(26px, 6vw, 36px); line-height: 1.08; }
.leitor__texto { font-size: 17px; line-height: 1.7; color: #24324F; }
.leitor__texto p + p { margin-top: 1em; }
.leitor__acoes { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 8px; border-top: 1px solid var(--line); }
@media (min-width: 900px) {
  .leitor__painel { left: auto; top: 0; width: min(620px, 52vw); border-radius: 0; transform: translateX(100%); }
  .leitor__puxador { display: none; }
}

/* =========================================================
   404
   ========================================================= */
.perdido { min-height: 70vh; display: grid; place-items: center; text-align: center; padding-block: 60px; }
.perdido__num { font: 800 clamp(110px, 32vw, 220px)/.85 var(--f-titulo); letter-spacing: -.06em; color: var(--sky-2); display: flex; align-items: center; justify-content: center; }
.perdido__num img { width: clamp(110px, 30vw, 200px); margin: 0 -10px; }

/* =========================================================
   RODAPÉ
   ========================================================= */
.rodape { position: relative; margin-top: clamp(40px, 8vw, 80px); color: #fff; }
.rodape__onda { display: block; width: 100%; height: 60px; margin-bottom: -1px; }
.rodape__onda-a { fill: var(--sky-2); opacity: .55; }
.rodape__onda-b { fill: var(--navy); }
@media (prefers-reduced-motion: no-preference) {
  .rodape__onda-a { animation: onda-vai 9s ease-in-out infinite alternate; }
  .rodape__onda-b { animation: onda-vai 7s ease-in-out infinite alternate-reverse; }
}
@keyframes onda-vai { to { transform: translateX(-120px); } }
.rodape__corpo { background: var(--navy); padding: 30px 0 calc(90px + env(safe-area-inset-bottom)); }
.rodape__grade { display: grid; gap: 34px; }
.rodape__marca { display: grid; gap: 14px; justify-items: start; }
.rodape__marca img { width: 82px; height: 82px; }
.rodape__marca p { color: rgba(255,255,255,.8); max-width: 26ch; font-size: 15px; }
.rodape__redes { display: flex; gap: 8px; }
.rodape__redes a { width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.1); display: grid; place-items: center; transition: background-color .25s, transform .35s var(--ease); }
.rodape__redes a:hover { background: var(--sky-2); transform: translateY(-2px); }
.rodape__redes svg { width: 20px; height: 20px; }
.rodape__col { display: grid; gap: 12px; align-content: start; }
.rodape__col h2 { color: var(--sun); font-size: 15px; letter-spacing: .08em; text-transform: uppercase; }
.rodape__col p { display: flex; gap: 10px; color: rgba(255,255,255,.85); font-size: 15px; margin: 0; }
.rodape__col p .ico { margin-top: 4px; color: var(--sky); }
.rodape__contato { display: block; padding: 4px 0; min-height: 44px; text-decoration: none; font: 700 17px/1.25 var(--f-titulo); color: #fff; word-break: break-word; }
.rodape__contato small { display: block; font: 600 12.5px/1.3 var(--f-texto); color: rgba(255,255,255,.62); }
.rodape__contato:hover { color: var(--sun); }
.rodape__links { grid-template-columns: 1fr 1fr; column-gap: 16px; }
.rodape__links h2 { grid-column: 1 / -1; }
.rodape__links a { color: rgba(255,255,255,.85); text-decoration: none; font-size: 15px; padding: 3px 0; }
.rodape__links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.rodape__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 36px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14); font-size: 13px; color: rgba(255,255,255,.6); }
@media (min-width: 900px) { .rodape__grade { grid-template-columns: 1.1fr 1fr 1fr 1fr; gap: 40px; } .rodape__corpo { padding-bottom: 40px; } }

/* ---------- movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js [data-revela] { opacity: 1; transform: none; }
  .js [data-revela="arco"] > * { clip-path: none; }
  .js .titulo-anima .linha-mask > span { transform: none; }
  .js .mural__trilho { animation: none; }
  .mural { overflow-x: auto; }
  .intro { display: none; }
}

/* intro só na primeira visita da sessão */
.sem-intro .intro, html:not(.js) .intro { display: none; }

@media (max-width: 899px) { .forma--so-desk { display: none; } }

.rodape__contato--email { font-size: 15px; overflow-wrap: anywhere; }
.contato strong { overflow-wrap: anywhere; word-break: normal; }
@supports (overflow: clip) { main, .rodape { overflow-x: clip; } }
@media (max-width: 899px) { .hero__mini { top: 34%; bottom: auto; width: 36%; } .hero__bica { top: -4%; } }

/* galeria: barra, carregar mais */
.gal-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 16px; }
.gal-barra[hidden], .gal-mais[hidden] { display: none; }
.gal-conta { font: 700 15px/1.3 var(--f-titulo); color: var(--navy); }
.gal-conta small { display: block; font: 500 13px/1.3 var(--f-texto); color: var(--muted); }
.gal-barra .chip .ico { transition: transform .6s var(--ease); }
.gal-barra .chip:active .ico, .gal-barra .chip.is-girando .ico { transform: rotate(-360deg); }
.gal-mais { display: grid; justify-items: center; gap: 14px; margin-top: 28px; }
.gal-progresso { width: min(280px, 70%); height: 6px; border-radius: 6px; background: var(--sand-2); overflow: hidden; }
.gal-progresso span { display: block; height: 100%; width: 0; border-radius: 6px; background: var(--sky-2); transition: width .5s var(--ease); }
.gal-sentinela { display: block; height: 1px; }
.foto-item.is-nova { animation: foto-entra .6s var(--ease) both; animation-delay: calc(var(--k, 0) * 40ms); }
@keyframes foto-entra { from { opacity: 0; transform: translateY(14px) scale(.98); } }
.grade-trocando { opacity: 0; transition: opacity .25s; }
.luz__leg[hidden] { display: none; }
.galeria-grade.is-colunas { columns: auto; display: flex; align-items: flex-start; gap: 10px; }
.galeria-grade.is-colunas > .gal-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 10px; margin: 0; }
.gal-col > .foto-item { margin: 0; }
@media (min-width: 640px) { .galeria-grade.is-colunas, .galeria-grade.is-colunas > .gal-col { gap: 14px; } }
.is-colunas .foto-item:nth-child(n) { border-radius: 18px; }
.is-colunas .foto-item.f-arco { border-radius: 999px 999px 18px 18px; }
.is-colunas .foto-item.f-folha { border-radius: 18px 18px 120px 18px; }
.leitor__fotos { border-radius: 18px; overflow: hidden; background: #0B1430; }
.leitor__fotos[hidden] { display: none; }
.leitor__fotos-tit { padding: 10px 14px; font: 700 13px/1 var(--f-titulo); letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.leitor__fotos .carrossel__trilho img { max-height: 60vh; }
.acao__midia { min-width: 0; width: 100%; }
.acao__tipo { white-space: nowrap; max-width: calc(100% - 12px); overflow: hidden; }

/* resumo da Transparência: números que contam e uma gota que enche a caixa */
.tr-resumo div { position: relative; overflow: hidden; isolation: isolate; }
.tr-resumo strong { font-variant-numeric: tabular-nums; display: inline-block; transform-origin: 0 100%; }
.tr-resumo i { position: absolute; left: 0; right: 0; bottom: 0; height: 0; background: rgba(255,255,255,.14); z-index: -1; transition: height 1.4s var(--ease); }
.tr-resumo i::before { content: ""; position: absolute; left: -10%; right: -10%; top: -7px; height: 14px; background: radial-gradient(circle at 10px -4px, transparent 9px, rgba(255,255,255,.14) 10px) 0 0 / 20px 14px repeat-x; }
.tr-resumo .is-contando i, .tr-resumo .is-contou i { height: 100%; }
.tr-resumo .is-contou strong { animation: num-pula .55s var(--ease); }
.tr-resumo div:nth-child(2) strong { color: var(--sun); }
@keyframes num-pula { 40% { transform: scale(1.18) translateY(-3px); } 70% { transform: scale(.96); } }
@media (prefers-reduced-motion: no-preference) {
  .tr-resumo .is-contando i::before { animation: onda-anda 1.2s linear infinite; }
}
@keyframes onda-anda { to { transform: translateX(20px); } }

/* ---------- enfeites sempre por trás do texto ---------- */
.forma ~ .wrap, .forma ~ .hero__grade, .forma ~ .capa__grade { position: relative; z-index: 1; }
.hero__texto { position: relative; z-index: 2; }
.hero__visual > .forma { z-index: 0; }
@media (max-width: 899px) {
  .hero__bica { top: 3%; right: 2%; width: 22%; }
  .forma--so-desk { display: none !important; }
}
