/* Konnen Academia: identidade preto + laranja.
   Contraste: texto claro sobre #0b0b0b ≈ 18:1 · laranja sobre preto ≈ 7:1 · texto PRETO sobre laranja ≈ 7:1.
   Nunca usar texto branco sobre laranja (≈ 2,8:1). */
:root {
  --bg: #0b0b0b;
  --surface: #161616;
  --surface-2: #1e1e1e;
  --line: #2b2b2b;
  --text: #f5f5f5;
  --muted: #b3b3b3;
  --orange: #ff6b2b;
  --orange-hi: #ff8a55;
  --ink: #0b0b0b;           /* texto sobre laranja */
  --wa: #25d366; /* verde oficial do WhatsApp */
  --r: 0.875rem;
  --font-h: "Poppins", system-ui, sans-serif;
  --font-b: "Lato", system-ui, sans-serif;
}

/* ── Escala fluida: celular/tablet 1rem = 16px. Desktop (>960px): 1rem = 13px (equivale a ~81% do tamanho original) até 1536px de tela e cresce proporcionalmente depois (teto 22,7px) ── */
html { font-size: 16px; }
/* desktop: escala com a largura da tela. Até 1920px é proporcional (100vw/118.5); acima disso cresce mais devagar (~aspecto de 80% de zoom em monitor 2560, que ficava "perto" demais) */
@media (min-width: 961px) { html { font-size: clamp(13px, min(calc(100vw / 118.5), calc(16.2px + (100vw - 1920px) * .00306)), 22.7px); } }
*, *::before, *::after { box-sizing: border-box; }
body { overflow-x: clip; }   /* faixas que sangram até a borda usam 100vw, que inclui a barra de rolagem do Windows: sem isto aparece uma barra horizontal nas páginas de unidade */
html { scroll-behavior: smooth; scroll-padding-top: 9.375rem; }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 1.0625rem/1.6 var(--font-b); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--font-h); line-height: 1.12; margin: 0 0 .5em; letter-spacing: -.01em; }
h1 { font-size: clamp(2.1rem, 6vw, 3.8rem); font-weight: 800; }
h2 { font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 700; }
h3 { font-size: 1.15rem; font-weight: 700; }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; list-style: none; }
.wrap { width: min(72.5rem, 100% - 2rem); margin-inline: auto; }
.hl { color: var(--orange); }
.lead { font-size: 1.15rem; color: var(--muted); max-width: 58ch; }
.eyebrow { font: 700 .8rem/1 var(--font-h); letter-spacing: .14em; text-transform: uppercase; color: var(--orange); margin-bottom: 0.875rem; }
.note { color: var(--muted); font-size: .95rem; }
:focus-visible { outline: 0.1875rem solid var(--orange-hi); outline-offset: 0.1875rem; border-radius: 0.25rem; }
.skip { position: absolute; left: -62.4375rem; top: 0.5rem; background: var(--orange); color: var(--ink); padding: 0.625rem 0.875rem; z-index: 100; font-weight: 700; }
.skip:focus { left: 0.5rem; }
.ic { width: 1.25rem; height: 1.25rem; flex: none; }
.ic-lg { width: 2.5rem; height: 2.5rem; color: var(--orange); }

/* botões */
.btn { background: transparent; color: inherit; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 3rem; padding: 0.75rem 1.375rem; border-radius: 62.4375rem; border: 0.125rem solid transparent; font: 700 .95rem/1.1 var(--font-h); text-decoration: none; text-align: center; transition: transform .15s, background .15s, color .15s; }
.btn:hover { transform: translateY(-0.125rem); }
.btn-primary { background: var(--orange); color: var(--ink); }
.btn-primary:hover { background: var(--orange-hi); }
.btn-ghost { border-color: var(--text); color: var(--text); }
.btn-ghost:hover { background: var(--text); color: var(--ink); }
.btn-dark { background: var(--ink); color: var(--text); }
.btn-dark:hover { background: #000; }
.btn-dark-ghost { border-color: var(--ink); color: var(--ink); }
.btn-dark-ghost:hover { background: var(--ink); color: var(--text); }
.btn-sm { min-height: 2.5rem; padding: 0.5rem 1rem; }
.actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.375rem; }
.link { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--orange); font-weight: 700; text-decoration: none; }
.link:hover { text-decoration: underline; }

/* ── Header no tema Konnen: faixa fixa + navbar PRETA flutuante, letras brancas ── */
:root { --offer-h: 2.25rem; --nav-bg: #0d0d0d; --nav-line: #2a2a2a; }
.offer { position: fixed; top: 0; left: 0; right: 0; z-index: 90; background: var(--orange); color: var(--ink); text-align: center;
  font: italic 600 0.875rem/1rem var(--font-b); letter-spacing: -.01em; }
.offer a { display: block; padding: 0.625rem 2.75rem; text-decoration: none; }
.offer a:hover { text-decoration: underline; }
.offer-x { position: absolute; right: 0.5rem; top: 50%; transform: translateY(-50%); width: 1.75rem; height: 1.75rem; border: 0; background: none; color: var(--ink);
  font: 400 1.5rem/1 var(--font-b); cursor: pointer; border-radius: 50%; }
.offer-x:hover { background: rgba(0,0,0,.14); }
.offer-closed .offer { display: none; }
.offer-closed .navbar { top: 1.25rem; }
.site-header { position: relative; z-index: 100; }
.navbar { position: fixed; top: 3.75rem; left: 50%; transform: translateX(-50%); width: min(87.5rem, 100% - 2rem);
  display: flex; align-items: center; background: var(--nav-bg); color: #fff; padding: 1.125rem 1.5rem; border-radius: 0.3125rem;
  border: 1px solid var(--nav-line); box-shadow: 0 0.375rem 1.5rem rgba(0,0,0,.55); z-index: 1; }
.logo img { width: 8.25rem; height: auto; }
.menu { display: flex; align-items: center; justify-content: space-between; flex: 1; }
.menu-left { display: flex; margin-left: 2.5rem; }
.menu-left > li { margin-right: 1.375rem; position: relative; }
.menu-left a { display: block; text-transform: uppercase; font: 700 .875rem/1.25rem var(--font-b); letter-spacing: .03em; color: #fff; text-decoration: none; transition: color .3s; }
.menu-left > li > a:hover, .menu-left a[aria-current] { color: var(--orange); }
.has-sub::before { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 1.375rem; }
.sub { position: absolute; left: -0.875rem; top: calc(100% + 1.125rem); min-width: 18.125rem; white-space: nowrap; background: var(--nav-bg); border: 1px solid var(--nav-line);
  border-radius: 0.3125rem; padding: 0.5rem; box-shadow: 0 0.75rem 1.875rem rgba(0,0,0,.6); display: none; }
.sub-right { left: auto; right: -0.625rem; min-width: 18.75rem; }
.has-sub:hover .sub, .has-sub:focus-within .sub { display: block; }
.sub a { display: flex; justify-content: space-between; align-items: baseline; gap: 1.125rem; padding: 0.6875rem 0.75rem; border-radius: 0.25rem; color: #fff; text-decoration: none; text-transform: uppercase; font: 700 .85rem/1.25rem var(--font-b); letter-spacing: .03em; }
.sub a:hover { background: #1c1c1c; color: var(--orange); }
.sub small { color: #a3a3a3; font: 400 .8rem var(--font-b); text-transform: none; letter-spacing: 0; }
.sub-h { padding: 0.375rem 0.75rem 0.5rem; color: var(--orange); font: 700 .72rem var(--font-h); text-transform: uppercase; letter-spacing: .1em; }
.menu-right { display: flex; align-items: center; }
.cta, .mcta { display: inline-block; text-decoration: none; background: var(--orange); border: 1px solid var(--orange); border-radius: 0.3125rem; padding: 0.1875rem 1rem; transition: all .4s; }
.cta span, .mcta span { display: inline-block; font: 700 .82rem/1em var(--font-b); color: var(--ink); text-transform: uppercase; transform: translateY(1px); padding: 0.5625rem 0; }
.cta:hover { background: #fff; border-color: #fff; }
.socials { margin-left: 1.0625rem; padding: 0.125rem 0 0.125rem 0.125rem; border-left: 1px solid rgba(255,255,255,.35); display: flex; align-items: center; }
.soc { margin-left: 0.75rem; width: 2.375rem; height: 2.375rem; border-radius: 50%; border: 0; background: #fff; color: #000; display: grid; place-items: center; cursor: pointer; transition: all .3s; padding: 0; }
.soc .ic { width: 1.25rem; height: 1.25rem; }
/* cores travadas: evita que extensões/temas do navegador repintem o ícone (ex.: Instagram rosa) */
.soc { background: #fff !important; color: #000 !important; }
.soc svg, .soc svg * { color: #000 !important; stroke: #000; filter: none !important; opacity: 1 !important; mix-blend-mode: normal !important; }
.soc svg[fill="currentColor"], .soc svg[fill="currentColor"] * { fill: #000; stroke: none; }
.soc svg circle[fill="currentColor"] { fill: #000; stroke: none; }
.soc:hover, .tel:focus-within .soc { background: var(--orange) !important; }
.soc:hover, .tel:focus-within .soc { background: var(--orange); color: var(--ink); }
.tel { position: relative; }
#nav-underline { position: absolute; bottom: 0.75rem; left: 1.5rem; width: 2.25rem; border-bottom: 0.125rem solid var(--orange); transition: all .4s ease-in-out; pointer-events: none; }
.navbar.scrolled #nav-underline { opacity: 0; }
.mbar, .mpanel { display: none; }

/* hero */
.hero { position: relative; overflow: hidden; padding: 11.875rem 0 clamp(3.5rem, 8vw, 6.25rem); background: radial-gradient(56.25rem 31.25rem at 85% 20%, rgba(255,107,43,.28), transparent 60%), var(--bg); }
.hero-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 2rem; align-items: center; }
.hero-art img { width: min(18.75rem, 80%); margin-inline: auto; filter: drop-shadow(0 1.25rem 3.75rem rgba(255,107,43,.35)); }
.chiffres { margin: 1.625rem 0 0.375rem; }
.chiffre { margin: 0; padding: 0.375rem 0; font: 500 1.6rem/2rem var(--font-b); letter-spacing: -.01em; color: #fff; }
.chiffre strong { font-weight: 800; }
.js .chiffre { opacity: 0; transform: translateX(60vw); transition: transform 1s ease-out, opacity 1s ease-out; }
.js .chiffre.animate { opacity: 1; transform: none; }

/* hero com vídeo de fundo */
.hero.has-video { min-height: clamp(41.25rem, 92vh, 55rem); display: flex; align-items: center; background: #0b0b0b; padding-bottom: 8.125rem; }
.hero.has-video .hero-grid { grid-template-columns: 1fr; position: relative; z-index: 2; width: min(72.5rem, 100% - 2rem); }
.hero.has-video .hero-grid > div { max-width: 40rem; }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hero-shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(11,11,11,.88) 0%, rgba(11,11,11,.55) 55%, rgba(11,11,11,.25) 100%), linear-gradient(0deg, #0b0b0b 0%, transparent 28%); }

/* seções */
.section { padding: clamp(2.2rem, 5.6vw, 4.4rem) 0; }   /* respiro entre seções (−20%) */
.section.alt { background: var(--surface); }
/* faixa de diferenciais: cartão flutuante (mesma linguagem da navbar), sobreposto à base do vídeo */
.band { position: relative; z-index: 5; margin-top: -4.5rem; padding-bottom: clamp(1.75rem, 4vw, 3rem); }
.perks { display: grid; grid-template-columns: repeat(5, 1fr); background: rgba(13,13,13,.92);
  border: 1px solid var(--nav-line); border-radius: 0.5rem; box-shadow: 0 1.125rem 3.125rem rgba(0,0,0,.55); padding: 0.375rem 0; }
.perks li { display: flex; align-items: center; gap: 0.875rem; padding: 1.375rem 1.375rem; position: relative; }
.perks li + li::before { content: ""; position: absolute; left: 0; top: 24%; bottom: 24%; width: 1px; background: rgba(255,255,255,.14); }
.perks .pi { flex: none; width: 2.875rem; height: 2.875rem; border-radius: 50%; display: grid; place-items: center; color: var(--orange);
  background: rgba(255,107,43,.12); border: 1px solid rgba(255,107,43,.32); transition: background .3s, color .3s; }
.perks .pi .ic { width: 1.5rem; height: 1.5rem; }
.perks li:hover .pi { background: var(--orange); color: var(--ink); }
.perks strong { display: block; font: 700 .95rem/1.2 var(--font-h); color: #fff; }
.perks div > span { display: block; margin-top: 0.1875rem; color: var(--muted); font-size: .85rem; line-height: 1.35; }
.page-head { padding: 11.25rem 0 1.5rem; background: radial-gradient(43.75rem 18.75rem at 90% 0, rgba(255,107,43,.2), transparent 65%); }
.cta-band { background: var(--orange); color: var(--ink); text-align: center; }
.cta-band .lead { color: #2a1308; margin-inline: auto; }
.cta-band .actions { justify-content: center; }
/* Konnen Pass: texto + cartão de passe ilustrado */
.pass { background: radial-gradient(43.75rem 23.75rem at 82% 50%, rgba(255,107,43,.16), transparent 70%), var(--bg); }
.pass-box { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.75rem, 5vw, 4rem); align-items: center; padding: clamp(1.75rem, 5vw, 3.5rem);
  border: 1px solid rgba(255,107,43,.55); border-radius: 0.875rem; background: linear-gradient(135deg, rgba(255,107,43,.10), rgba(13,13,13,.9) 55%); box-shadow: 0 1.5rem 4.375rem rgba(0,0,0,.5); }
.pass-price { margin: 0.375rem 0 0; font: 800 clamp(2.6rem, 6vw, 3.8rem)/1 var(--font-h); color: #fff; }
.pass-price small { font-size: 1.1rem; vertical-align: top; margin-right: 0.375rem; color: var(--orange); }
.pass-price span { font: 400 1.1rem var(--font-b); color: var(--muted); }
.pass-sub { margin: 0.5rem 0 1.125rem; color: var(--muted); }
.pass-list { margin-bottom: 0.5rem; }
.pass-visual { display: grid; justify-items: center; gap: 0.875rem; }
.pcards { position: relative; width: min(100%, 25rem); aspect-ratio: 1.586; margin-bottom: 1.125rem; }
.pcard { position: absolute; inset: 0; border-radius: 1.125rem; }
.pcard-back { background: linear-gradient(135deg, #262626, #121212); border: 1px solid #3a3a3a; transform: rotate(7deg) translate(0.875rem, 0.375rem); box-shadow: 0 1.125rem 2.5rem rgba(0,0,0,.5); }
.pcard-front { background: linear-gradient(135deg, #ff7a3d 0%, #ff6b2b 45%, #d9500f 100%); color: var(--ink); padding: 1.375rem 1.5rem; transform: rotate(-4deg);
  box-shadow: 0 1.625rem 3.75rem rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.22); overflow: hidden; transition: transform .5s cubic-bezier(.22,.8,.26,1); }
.pcard-front::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(0,0,0,.07) 0 0.75rem, transparent 0.75rem 1.5rem); pointer-events: none; }
.pcard-front::after { content: ""; position: absolute; right: -30%; top: -40%; width: 80%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.28), transparent 70%); pointer-events: none; }
.pass-visual:hover .pcard-front { transform: rotate(-1deg) translateY(-0.375rem); }
.pc-k { position: absolute; top: 1.25rem; right: 1.375rem; width: 3.625rem; height: 3.625rem; }
.pc-name { position: relative; margin: 0; font: 800 clamp(1.5rem, 4.4vw, 2.1rem)/1 var(--font-h); letter-spacing: -.01em; }
.pc-all { position: absolute; left: 1.5rem; bottom: 3.375rem; margin: 0; font: 700 .85rem var(--font-h); letter-spacing: .14em; text-transform: uppercase; }
.pc-foot { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.25rem; margin: 0; display: flex; justify-content: space-between; font: 700 .8rem var(--font-h); letter-spacing: .08em; text-transform: uppercase; border-top: 0.125rem solid rgba(0,0,0,.35); padding-top: 0.625rem; }
.pass-valid { margin: 0; color: var(--muted); font: 700 .75rem var(--font-h); letter-spacing: .14em; text-transform: uppercase; }
.pass-units { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; }
.pass-units a { display: inline-block; padding: 0.5rem 0.875rem; border: 1px solid var(--line); border-radius: 62.4375rem; background: rgba(255,255,255,.04); text-decoration: none; font: 700 .85rem var(--font-b); transition: all .25s; }
.pass-units a:hover { border-color: var(--orange); color: var(--orange); }
@media (max-width: 860px) { .pass-box { grid-template-columns: 1fr; } .pass-visual { order: -1; } .pcards { width: min(100%, 21.25rem); } }
@media (prefers-reduced-motion: reduce) { .pcard-front { transition: none; } }

.offer-closed .hero { padding-top: 9.75rem; }
.offer-closed .page-head { padding-top: 9.125rem; }

/* ── Seletor de unidades: carrossel coverflow (tema Konnen) ── */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.units { background: radial-gradient(56.25rem 26.25rem at 50% 60%, rgba(255,107,43,.14), transparent 70%), var(--bg); overflow: hidden; }
.uc-wrap { position: relative; margin-top: 2.125rem; }
.uc-vert { display: none; }
/* sem JS: grade de cartões */
.uc-stage { width: min(72.5rem, 100% - 2rem); margin-inline: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.uc { position: relative; min-height: 26.25rem; border-radius: 0.625rem; overflow: hidden; background: var(--surface); border: 1px solid var(--line); display: flex; }
.uc-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.uc-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,8,8,.96) 0%, rgba(8,8,8,.78) 34%, rgba(8,8,8,.12) 70%, rgba(8,8,8,.25) 100%); }
.uc-body { position: relative; z-index: 2; align-self: flex-end; width: 100%; padding: 1.375rem; display: flex; flex-direction: column; gap: 0.375rem; }
.uc-body h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 800; margin: 0.125rem 0 0.375rem; text-transform: uppercase; letter-spacing: -.01em; }
.uc-body .meta { color: #d6d6d6; }
.uc-actions { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 0.75rem; }
.uc-actions .btn { min-height: 2.75rem; padding: 0.625rem 1.125rem; font-size: .85rem; flex: 1 1 auto; }
.uc-nav, .uc-tabs { display: none; }
/* com JS: palco do carrossel */
.js .uc-stage { position: relative; display: block; width: 100%; height: 37.5rem; overflow: hidden; touch-action: pan-y; cursor: grab; outline-offset: -0.1875rem; }
.js .uc-stage.dragging { cursor: grabbing; }
.js .uc { position: absolute; top: 1.25rem; left: 50%; width: 25rem; height: 35rem; min-height: 0; margin-left: -12.5rem; cursor: pointer; border: 0;
  box-shadow: 0 1.125rem 2.5rem rgba(0,0,0,.55); will-change: transform;
  transition: transform .6s cubic-bezier(.22,.8,.26,1), opacity .5s ease, filter .5s ease; }
.js .uc.active { cursor: default; box-shadow: 0 1.5rem 3.75rem rgba(0,0,0,.65), 0 0 0 1px rgba(255,107,43,.55); }
.js .uc-info { max-height: 0; opacity: 0; overflow: hidden; transform: translateY(0.5rem); transition: max-height .5s ease, opacity .4s ease .1s, transform .5s ease .1s; }
.js .uc.active .uc-info { max-height: 13.75rem; opacity: 1; transform: none; }
.js .uc-nav { display: grid; position: absolute; top: 50%; z-index: 40; width: 3.25rem; height: 3.25rem; margin-top: -1.625rem; border-radius: 50%; place-items: center;
  border: 1px solid rgba(255,255,255,.35); background: rgba(10,10,10,.7); color: #fff; backdrop-filter: blur(0.375rem); cursor: pointer; transition: all .25s; }
.js .uc-nav:hover { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.js .uc-prev { left: max(1rem, calc(50% - 37.5rem)); }
.js .uc-prev .ic { transform: rotate(180deg); }
.js .uc-next { right: max(1rem, calc(50% - 37.5rem)); }
.js .uc-tabs { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.5rem; width: min(72.5rem, 100% - 2rem); margin: 1.375rem auto 0; }
.uc-tab { padding: 0.625rem 1.125rem; border-radius: 62.4375rem; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: 700 .85rem var(--font-b); cursor: pointer; transition: all .25s; }
.uc-tab:hover { border-color: var(--orange); color: var(--orange); }
.uc-tab[aria-current="true"] { background: var(--orange); border-color: var(--orange); color: var(--ink); }
@media (min-width: 1280px) {
  .uc-vert { display: block; position: absolute; left: 1.375rem; top: 50%; z-index: 30; writing-mode: vertical-rl; transform: translateY(-50%) rotate(180deg);
    font: 800 .9rem var(--font-h); letter-spacing: .32em; color: rgba(255,255,255,.4); }
}
@media (max-width: 960px) { .uc-stage { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) {
  .uc-stage { grid-template-columns: 1fr; }
  .js .uc-stage { height: 32.5rem; }
  .js .uc { width: 18.125rem; height: 29.375rem; margin-left: -9.0625rem; }
  .js .uc-nav { width: 2.75rem; height: 2.75rem; margin-top: -1.375rem; }
  .js .uc-prev { left: 0.375rem; }
  .js .uc-next { right: 0.375rem; }
}

/* unidades (grade antiga) */
.unit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 1.75rem; }
.unit-card, .plan, .card, .post, .day { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.unit-card { overflow: hidden; display: flex; flex-direction: column; }
.unit-body { padding: 1.25rem; display: flex; flex-direction: column; gap: 0.375rem; flex: 1; }
.unit-body .actions { margin-top: auto; padding-top: 0.875rem; }
.chip { display: inline-block; align-self: flex-start; font: 700 .72rem/1 var(--font-h); text-transform: uppercase; letter-spacing: .08em; color: var(--orange); border: 1px solid var(--orange); border-radius: 62.4375rem; padding: 0.375rem 0.625rem; margin: 0; }
.meta { display: flex; gap: 0.5rem; align-items: flex-start; color: var(--muted); font-size: .95rem; margin: 0; }
.meta .ic { margin-top: 0.1875rem; color: var(--orange); }
.meta.big { font-size: 1.1rem; color: var(--text); margin-top: 0.75rem; }
.photo-slot { aspect-ratio: 16/9; display: grid; place-items: center; background: repeating-linear-gradient(135deg, #1b1b1b 0 0.875rem, #151515 0.875rem 1.75rem); color: var(--muted); font: 700 .8rem var(--font-h); letter-spacing: .1em; text-transform: uppercase; }
.photo-slot span { background: rgba(0,0,0,.6); padding: 0.375rem 0.75rem; border-radius: 62.4375rem; }

/* chips / listas */
.chips { display: flex; flex-wrap: wrap; gap: 0.625rem; margin: 1.25rem 0; }
.chips a, .chips li:not(:has(a)) { display: inline-block; padding: 0.625rem 1rem; border: 1px solid var(--line); border-radius: 62.4375rem; background: var(--surface); text-decoration: none; font-weight: 700; }
.chips a:hover { border-color: var(--orange); color: var(--orange); }
.review-links { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 1.25rem; }
.review-links a { display: inline-flex; gap: 0.5rem; align-items: center; padding: 0.75rem 1.125rem; border: 1px solid var(--line); border-radius: 62.4375rem; text-decoration: none; background: var(--surface); }
.review-links a:hover { border-color: var(--orange); }
.review-links .ic { color: var(--orange); }
.ticks li { display: flex; gap: 0.625rem; align-items: flex-start; padding: 0.3125rem 0; }
.ticks .ic { color: var(--orange); margin-top: 0.1875rem; width: 1.125rem; height: 1.125rem; }
.ticks.cols { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.5rem; }

/* unidade */
.two-col { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.75rem; align-items: start; }
.card { padding: 1.5rem; }
.card h2 { font-size: 1.3rem; display: flex; gap: 0.625rem; align-items: center; }
.hours li { display: flex; justify-content: space-between; gap: 0.75rem; padding: 0.625rem 0; border-bottom: 1px solid var(--line); }
.plan-grid { display: grid; gap: 1.125rem; margin-top: 1.75rem; grid-template-columns: repeat(3, 1fr); }
.plan-grid.n4 { grid-template-columns: repeat(4, 1fr); }
.plan { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.25rem; position: relative; }
.plan .btn { margin-top: auto; }
.plan .ticks { margin: 0.75rem 0 1.25rem; font-size: .95rem; }
.plan-hl { border-color: var(--orange); box-shadow: 0 0 0 1px var(--orange), 0 1.25rem 3.125rem rgba(255,107,43,.15); }
.tag { position: absolute; top: -0.8125rem; left: 1.25rem; background: var(--orange); color: var(--ink); font: 700 .72rem/1 var(--font-h); padding: 0.4375rem 0.75rem; border-radius: 62.4375rem; text-transform: uppercase; letter-spacing: .06em; }
.price { font: 800 2.6rem/1 var(--font-h); margin: 0.5rem 0 0.25rem; color: var(--text); }
.price small { font-size: 1rem; vertical-align: top; margin-right: 0.25rem; color: var(--orange); }
.price span { font: 400 1rem var(--font-b); color: var(--muted); }
.parc, .fid { color: var(--muted); font-size: .9rem; margin: 0; }
.day-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(14.375rem, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.day { padding: 1.125rem; }
.day h3 { color: var(--orange); font-size: 1rem; }
.day li { display: flex; gap: 0.75rem; padding: 0.375rem 0; border-bottom: 1px dashed var(--line); font-size: .95rem; }
.day time { font: 700 .95rem var(--font-h); min-width: 3.25rem; }
.map iframe { width: 100%; height: 23.75rem; border: 0; border-radius: var(--r); }
.quote-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.quote { margin: 0; padding: 1.375rem; background: var(--bg); border: 1px solid var(--line); border-radius: var(--r); }
.quote footer { color: var(--muted); font-size: .9rem; }
.stars { color: var(--orange); letter-spacing: 0.125rem; }
.other-units { display: grid; grid-template-columns: repeat(auto-fill, minmax(10.625rem, 1fr)); gap: 0.75rem; margin-top: 1rem; }
.other-units a { display: flex; flex-direction: column; padding: 0.875rem 1rem; border: 1px solid var(--line); border-radius: var(--r); text-decoration: none; background: var(--surface); font-weight: 700; }
.other-units a:hover { border-color: var(--orange); color: var(--orange); }
.other-units small { color: var(--muted); font-weight: 400; }

/* atividades / blog / sobre */
.acts { display: grid; gap: 1.75rem; padding-bottom: 3.75rem; }
.act { display: grid; grid-template-columns: 1fr 1.2fr; gap: 1.75rem; align-items: center; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1.125rem; background: var(--surface); }
.act:nth-child(even) .photo-slot { order: 2; }
.act .photo-slot { border-radius: var(--r); }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin: 1.5rem 0; }
.post { overflow: hidden; padding-bottom: 1.25rem; }
.post time { display: block; color: var(--orange); font-size: .85rem; margin: 1rem 1.25rem 0.375rem; font-weight: 700; }
.post h3 { margin: 0 1.25rem; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; margin-top: 1.25rem; }
.prose { max-width: 70ch; }

/* footer */
.site-footer { position: relative; background: #050505; padding: 4.5rem 0 1.625rem; border-top: 1px solid var(--line); }
.site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 0.125rem; background: linear-gradient(90deg, transparent, var(--orange) 30%, var(--orange) 70%, transparent); }
.ft-grid { display: grid; grid-template-columns: 1.05fr 2fr .8fr; gap: clamp(1.75rem, 5vw, 4rem); }
.ft-brand img { width: 10.625rem; margin-bottom: 1.125rem; }
.ft-motto { font: 800 clamp(1.3rem, 2.2vw, 1.7rem)/1.2 var(--font-h); margin: 0 0 0.625rem; color: #fff; }
.ft-text { color: var(--muted); max-width: 34ch; }
.ft-soc { display: flex; margin: 1.125rem 0 1.375rem; }
.ft-soc .soc { margin-left: 0; margin-right: 0.625rem; }
.ft-cta { min-height: 3rem; font-size: .88rem; }
.ft-h { font: 700 .8rem var(--font-h); letter-spacing: .16em; text-transform: uppercase; color: var(--orange); margin: 0.25rem 0 1.25rem; }
.ft-units { display: grid; grid-template-columns: 1fr 1fr; gap: 1.625rem 2.25rem; }
.ft-unit { display: flex; flex-direction: column; gap: 0.3125rem; }
.ft-uname { font: 700 1.05rem var(--font-h); color: #fff; text-decoration: none; }
.ft-uname:hover { color: var(--orange); }
.ft-unit address { font-style: normal; color: var(--muted); font-size: .92rem; line-height: 1.5; }
.ft-hours { display: inline-flex; align-items: center; gap: 0.4375rem; color: #bdbdbd; font-size: .88rem; }
.ft-hours .ic { width: 0.9375rem; height: 0.9375rem; color: var(--orange); }
.ft-wa { display: inline-flex; align-items: center; gap: 0.4375rem; align-self: flex-start; color: #fff; text-decoration: none; font-weight: 700; font-size: .92rem; }
.ft-wa .wa-ic { width: 1.0625rem; height: 1.0625rem; color: var(--wa); }
.ft-wa:hover { color: var(--wa); }
.ft-nav li { margin-bottom: 0.25rem; }
.ft-nav a { display: inline-block; padding: 0.3125rem 0; color: #e6e6e6; text-decoration: none; transition: color .2s, transform .2s; }
.ft-nav a:hover { color: var(--orange); transform: translateX(0.25rem); }
.ft-bottom { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem 1.5rem; flex-wrap: wrap; margin-top: 3.25rem; padding-top: 1.375rem; border-top: 1px solid var(--line); }
.ft-copy { margin: 0; color: #a6a6a6; font-size: .9rem; }
.ft-links { display: flex; gap: 0.5rem 1.625rem; flex-wrap: wrap; align-items: center; }
.ft-links a { color: #cfcfcf; text-decoration: none; font-size: .9rem; }
.ft-links a:hover { color: var(--orange); }
.ft-top { display: inline-flex; align-items: center; gap: 0.375rem; font-weight: 700; }
.ft-top .ic { width: 0.9375rem; height: 0.9375rem; transform: rotate(-90deg); }
.ft-legal { display: flex; flex-wrap: wrap; gap: 0.25rem 1.375rem; margin: 0.875rem 0 0; color: #7d7d7d; font-size: .78rem; }
@media (max-width: 1000px) { .ft-grid { grid-template-columns: 1fr 1fr; } .ft-brand { grid-column: 1 / -1; } }
@media (max-width: 620px) {
  .ft-grid { grid-template-columns: 1fr; }
  .ft-units { grid-template-columns: 1fr; gap: 1.375rem; }
  .site-footer { padding-top: 3.5rem; }
  .ft-cta { width: 100%; }
}

/* WhatsApp flutuante: texto escuro sobre verde para contraste */
.wa-float { position: fixed; right: 1.5rem; bottom: 2.5rem; z-index: 60; }
a.wa-float, .wa-pick summary { position: relative; display: inline-flex; align-items: center; height: 3.75rem; min-width: 3.75rem; padding: 0 0.8125rem; border-radius: 62.4375rem;
  background: var(--wa); color: #fff; font: 700 .95rem var(--font-h); text-decoration: none; list-style: none; cursor: pointer;
  box-shadow: 0 0.75rem 1.875rem rgba(0,0,0,.5); transition: transform .3s ease, box-shadow .3s ease; }
a.wa-float { position: fixed; }   /* o "position: relative" acima vence .wa-float (mesma especificidade, vem depois): sem esta linha o botão das páginas de unidade, que é um <a>, não ficava fixo */
.wa-pick summary::-webkit-details-marker { display: none; }
.wa-ic { width: 2.125rem; height: 2.125rem; flex: none; }
.wa-label { color: #062b14; }
.wa-label { max-width: 0; margin-left: 0; opacity: 0; overflow: hidden; white-space: nowrap; transition: max-width .4s ease, margin .4s ease, opacity .25s ease; }
/* expande ao passar o mouse, focar pelo teclado ou com o seletor aberto (só em telas com mouse) */
@media (hover: hover) {
  a.wa-float:hover .wa-label, .wa-pick summary:hover .wa-label { max-width: 13.75rem; margin-left: 0.625rem; opacity: 1; }
  a.wa-float:hover, .wa-pick summary:hover { transform: translateY(-0.125rem); box-shadow: 0 1rem 2.25rem rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.3); }
}
a.wa-float:focus-visible .wa-label, .wa-pick summary:focus-visible .wa-label, .wa-pick[open] .wa-label { max-width: 13.75rem; margin-left: 0.625rem; opacity: 1; }
/* anel suave chamando atenção, só 3 vezes depois de carregar */
a.wa-float::after, .wa-pick summary::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; box-shadow: 0 0 0 0 rgba(37,211,102,.6); animation: waPulse 2.4s ease-out 2.5s 3; }
@keyframes waPulse { to { box-shadow: 0 0 0 1.125rem rgba(37,211,102,0); } }
@media (prefers-reduced-motion: reduce) { a.wa-float::after, .wa-pick summary::after { animation: none; } .wa-label { transition: none; } }
.wa-menu { position: absolute; right: 0; bottom: 4.625rem; width: 16.875rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 0.875rem; box-shadow: 0 1.25rem 3.125rem rgba(0,0,0,.6); }
.wa-menu p { font: 700 .9rem var(--font-h); margin-bottom: 0.5rem; }
.wa-menu a { display: flex; justify-content: space-between; padding: 0.625rem 0.5rem; text-decoration: none; border-radius: 0.5rem; }
.wa-menu a:hover { background: var(--surface-2); color: var(--orange); }
.wa-menu small { color: var(--muted); }

@media (max-width: 960px) {
  :root { --offer-h: 2.4375rem; }
  html { scroll-padding-top: 6.875rem; }
  .offer { font-size: 0.75rem; line-height: 0.9375rem; }
  .offer a { padding: 0.75rem 2.5rem 0.75rem 0.75rem; }
  .offer-closed .mbar { top: 0; }
  .offer-closed .hero { padding-top: 7rem; }
  .offer-closed .page-head { padding-top: 6.375rem; }
  .hide-m { display: none; }
  .navbar { display: none; }
  .mbar { display: flex; position: fixed; top: var(--offer-h); left: 0; right: 0; z-index: 2; justify-content: space-between; align-items: center;
    padding: 0.75rem 1rem 0.75rem 1.25rem; background: rgba(8,8,8,.96); border-bottom: 1px solid var(--nav-line); transition: background .3s, top .3s; }
  .mlogo img { width: 6.625rem; height: auto; }
  .mbtns { display: flex; align-items: center; gap: 0.75rem; }
  .mcta { padding: 0 0.5rem; }
  .mcta span { font-size: 0.6875rem; padding: 0.5rem 0; }
  .burger { background: none; border: 0; width: 2.5rem; height: 2.3125rem; padding: 0; cursor: pointer; }
  .burger .bar { display: block; height: 0.25rem; width: 2.5rem; background: #fff; margin: 0.4375rem auto; border-radius: 1px; transition: all .5s ease; }
  .mpanel { display: block; position: fixed; inset: 0; z-index: 1; background: var(--nav-bg); color: #fff; text-align: right;
    padding: 6.875rem 1.25rem 2.5rem 3.5rem; overflow-y: auto; opacity: 0; visibility: hidden; transition: all .3s ease-in-out; }
  .mpanel ul { margin: 0; padding: 0; }
  .mpanel li { margin-bottom: 0.8125rem; }
  .mpanel a { font: 700 1.25rem/1.75rem var(--font-b); text-transform: uppercase; text-decoration: none; color: #fff; }
  .mpanel a[aria-current], .mpanel a:hover { color: var(--orange); }
  .mpanel a.soc { color: #000; margin: 0 0 0 0.625rem; }
  .mh { margin: 1.375rem 0 0.5rem; color: var(--orange); font: 700 .75rem var(--font-h); text-transform: uppercase; letter-spacing: .1em; }
  .msubs { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem; }
  .msubs a { font-size: 0.8125rem; line-height: 1; text-transform: none; font-weight: 700; padding: 0.5625rem 0.75rem; border: 1px solid #3a3a3a; border-radius: 62.4375rem; }
  .msep { display: block; height: 1px; width: 1.4375rem; border-bottom: 1px solid #fff; margin: 1.125rem 0 0 auto; }
  .mlink { display: block; margin: 0.8125rem 0; }
  .mlink span { font: 700 1.25rem/1.75rem var(--font-b); text-transform: uppercase; color: var(--orange); }
  .msocials { display: flex; justify-content: flex-end; margin-top: 1.75rem; }
  .mtels a { font-size: 0.8125rem; }
  .chiffre { font-size: 1.25rem; line-height: 1.7rem; }
  .menu-open { overflow: hidden; }
  .menu-open .mpanel { opacity: 1; visibility: visible; }
  .menu-open .mbar { background: transparent; border-color: transparent; }
  .menu-open .mlogo, .menu-open .mcta { opacity: 0; pointer-events: none; }
  .menu-open .burger { position: relative; z-index: 3; }
  .menu-open .burger .bar { background: #fff; }
  .menu-open .burger .bar:nth-child(1) { transform: translateY(0.6875rem) rotate(45deg); }
  .menu-open .burger .bar:nth-child(2) { opacity: 0; }
  .menu-open .burger .bar:nth-child(3) { transform: translateY(-0.6875rem) rotate(-45deg); }
  .hero { padding-top: 9.375rem; }
  .hero.has-video { min-height: 0; padding-bottom: 4.5rem; }
  .hero-shade { background: linear-gradient(0deg, #0b0b0b 0%, rgba(11,11,11,.7) 45%, rgba(11,11,11,.55) 100%); }
  .page-head { padding-top: 8.75rem; }
  .hero-grid, .two-col, .act { grid-template-columns: 1fr; }
  .hero-art { display: none; }
  .band { margin-top: -3rem; }
  .perks { grid-template-columns: repeat(2, 1fr); padding: 0.5rem 0; }
  .perks li + li::before { display: none; }
  .perks li { padding: 1rem 1.125rem; }
  .perks li:last-child { grid-column: 1 / -1; }
  .unit-grid, .post-grid, .plan-grid, .plan-grid.n4 { grid-template-columns: 1fr 1fr; }
  .foot-grid { grid-template-columns: 1fr; }
  .act:nth-child(even) .photo-slot { order: 0; }
}
@media (max-width: 620px) {
  .unit-grid, .post-grid, .plan-grid, .plan-grid.n4, .ticks.cols, .foot-units { grid-template-columns: 1fr; }
  .wa-float { right: 1rem; bottom: 1.5rem; }
  a.wa-float, .wa-pick summary { height: 3.5rem; min-width: 3.5rem; padding: 0 0.75rem; }
  .wa-ic { width: 2rem; height: 2rem; }
  .wa-menu { bottom: 4.25rem; }
  .actions .btn { flex: 1 1 100%; }
  .perks li { flex-direction: column; align-items: flex-start; gap: 0.625rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .btn { transition: none; } }

/* ── Atividades (home): abas por categoria + cartões ── */
.acts-home { background: radial-gradient(50rem 23.75rem at 12% 30%, rgba(255,107,43,.10), transparent 70%), var(--bg); overflow: hidden; }
.sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.25rem; flex-wrap: wrap; margin-bottom: 1.75rem; }
.sec-head .lead { margin-bottom: 0; }
.ag-tabs { display: flex; gap: 0.625rem; flex-wrap: wrap; margin-bottom: 1.875rem; }
.ag-tab { display: inline-flex; align-items: center; gap: 0.625rem; padding: 0.875rem 1.375rem; border-radius: 62.4375rem; border: 1px solid var(--nav-line); background: rgba(255,255,255,.03);
  color: #fff; font: 700 1rem var(--font-h); cursor: pointer; transition: all .3s; }
.ag-tab .ic { width: 1.375rem; height: 1.375rem; color: var(--orange); transition: color .3s; }
.ag-tab em { font: 700 .75rem var(--font-b); font-style: normal; padding: 0.1875rem 0.5rem; border-radius: 62.4375rem; background: rgba(255,255,255,.1); }
.ag-tab:hover { border-color: var(--orange); }
.ag-tab[aria-selected="true"] { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.ag-tab[aria-selected="true"] .ic { color: var(--ink); }
.ag-tab[aria-selected="true"] em { background: rgba(0,0,0,.18); }
.ag-panel { position: relative; padding-top: 0.375rem; }
.ag-panel[hidden] { display: none; }
.ag-panel::before { content: attr(data-word); position: absolute; right: -0.625rem; top: -3.875rem; z-index: 0; pointer-events: none; font: 800 clamp(5rem, 15vw, 12rem)/1 var(--font-h);
  color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.16); letter-spacing: -.02em; }
.ag-panel > * { position: relative; z-index: 1; }
.ag-panel.in { animation: agIn .5s ease both; }
@keyframes agIn { from { opacity: 0; transform: translateY(0.875rem); } to { opacity: 1; transform: none; } }
.ag-title { font-size: 1.4rem; margin: 0 0 0.25rem; }
.ag-lead { color: var(--muted); max-width: 56ch; margin-bottom: 1.375rem; }
.ag-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15.625rem, 1fr)); gap: 1rem; }
.ag-card { position: relative; display: flex; flex-direction: column; gap: 0.375rem; padding: 1.375rem; border-radius: 0.625rem; text-decoration: none;
  background: linear-gradient(160deg, #1b1b1b, #121212); border: 1px solid var(--line); transition: transform .3s, border-color .3s, background .3s; }
.ag-card::after { content: ""; position: absolute; left: 0; top: 18%; bottom: 18%; width: 0.1875rem; border-radius: 0 0.1875rem 0.1875rem 0; background: var(--orange); transform: scaleY(0); transition: transform .3s; }
.ag-card:hover { transform: translateY(-0.25rem); border-color: rgba(255,107,43,.6); background: linear-gradient(160deg, #2a170e, #131313); }
.ag-card:hover::after { transform: scaleY(1); }
.ag-ic { width: 2.625rem; height: 2.625rem; border-radius: 50%; display: grid; place-items: center; color: var(--orange); background: rgba(255,107,43,.12); border: 1px solid rgba(255,107,43,.3); margin-bottom: 0.5rem; }
.ag-ic .ic { width: 1.375rem; height: 1.375rem; }
.ag-card h4 { margin: 0; font: 700 1.1rem/1.2 var(--font-h); color: #fff; }
.ag-card p { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.5; flex: 1; }
.ag-more { display: inline-flex; align-items: center; gap: 0.375rem; margin-top: 0.625rem; color: var(--orange); font: 700 .85rem var(--font-b); }
.ag-more .ic { width: 1rem; height: 1rem; transition: transform .3s; }
.ag-card:hover .ag-more .ic { transform: translateX(0.25rem); }
@media (max-width: 620px) {
  .ag-tabs { flex-wrap: nowrap; overflow-x: auto; margin-inline: -1rem; padding: 0 1rem 0.375rem; scrollbar-width: none; }
  .ag-tabs::-webkit-scrollbar { display: none; }
  .ag-tab { flex: none; padding: 0.75rem 1.125rem; }
  .ag-panel::before { top: -2.5rem; }
  .ag-grid { display: flex; gap: 0.75rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 1rem; margin-inline: -1rem; padding: 0.25rem 1rem 0.625rem; scrollbar-width: none; }
  .ag-grid::-webkit-scrollbar { display: none; }
  .ag-card { flex: 0 0 78%; scroll-snap-align: start; }
}
@media (prefers-reduced-motion: reduce) { .ag-panel.in { animation: none; } }

/* ── Aula experimental: faixa laranja + formulário que abre o WhatsApp da unidade ── */
.trial { position: relative; overflow: hidden; background: var(--orange); color: var(--ink); }
.trial::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(0,0,0,.055) 0 0.875rem, transparent 0.875rem 1.75rem); pointer-events: none; }
.trial-word { position: absolute; left: -0.625rem; bottom: -2.125rem; font: 800 clamp(5rem, 16vw, 13rem)/1 var(--font-h); color: transparent; -webkit-text-stroke: 1px rgba(0,0,0,.2); letter-spacing: -.02em; pointer-events: none; white-space: nowrap; }
.trial-grid { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.75rem, 5vw, 4.5rem); align-items: center; }
.trial .eyebrow { color: var(--ink); opacity: .75; }
.trial h2 { color: var(--ink); font-size: clamp(2rem, 4.6vw, 3.2rem); }
.trial .lead { color: #2a1308; max-width: 44ch; }
.steps { margin: 1.625rem 0 0; padding: 0; list-style: none; display: grid; gap: 1rem; }
.steps li { display: flex; align-items: center; gap: 0.875rem; color: #1a0c04; }
.steps b { flex: none; width: 2.375rem; height: 2.375rem; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--orange); font: 800 1rem var(--font-h); }
.steps strong { font-weight: 700; }
.trial-form { background: #0d0d0d; color: #fff; border: 1px solid #2a2a2a; border-radius: 0.875rem; padding: clamp(1.375rem, 4vw, 2.125rem); box-shadow: 0 1.875rem 4.375rem rgba(0,0,0,.45); }
.trial-form h3 { font-size: 1.5rem; margin: 0 0 0.25rem; }
.tf-sub { color: var(--muted); font-size: .95rem; margin-bottom: 1.25rem; }
.tf-field { margin-bottom: 0.875rem; }
.tf-field label { display: block; margin-bottom: 0.375rem; font: 700 .75rem var(--font-h); letter-spacing: .1em; text-transform: uppercase; color: #cfcfcf; }
.tf-field input, .tf-field select { width: 100%; height: 3.125rem; padding: 0 1rem; border-radius: 0.5rem; border: 1px solid #333; background: #171717; color: #fff; font: 400 1rem var(--font-b); appearance: none; -webkit-appearance: none; }
.tf-field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; }
.tf-field input::placeholder { color: #7d7d7d; }
.tf-field input:focus, .tf-field select:focus { outline: 0.125rem solid var(--orange); outline-offset: 1px; border-color: var(--orange); }
.tf-field.bad input, .tf-field.bad select { border-color: #ff8a8a; }
.tf-error { color: #ff9b9b; font-size: .9rem; margin: 0 0 0.75rem; }
.tf-submit { width: 100%; min-height: 3.375rem; font-size: 1rem; }
.tf-submit .wa-ic { width: 1.375rem; height: 1.375rem; }
.tf-alt { margin: 0.875rem 0 0; text-align: center; color: var(--muted); font-size: .9rem; }
.tf-alt a { color: var(--orange); font-weight: 700; }
@media (max-width: 860px) { .trial-grid { grid-template-columns: 1fr; } .trial-word { bottom: -1.125rem; } }

.tf-field option { color: #fff; background: #171717; }

/* ── Avaliações: carrossel de cartões ── */
.reviews { position: relative; overflow: hidden; background: radial-gradient(50rem 23.75rem at 88% 20%, rgba(255,107,43,.10), transparent 70%), var(--bg); }
.rv-quote { position: absolute; right: 4%; top: -2.5rem; font: 800 clamp(12rem, 26vw, 24rem)/1 var(--font-h); color: transparent; -webkit-text-stroke: 1px rgba(255,107,43,.28); pointer-events: none; }
.reviews .wrap { position: relative; }
.rv-arrows { display: flex; gap: 0.625rem; }
.uc-nav-s { width: 3rem; height: 3rem; border-radius: 50%; display: grid; place-items: center; cursor: pointer; border: 1px solid rgba(255,255,255,.35); background: rgba(10,10,10,.7); color: #fff; transition: all .25s; }
.uc-nav-s:hover { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.rv-prev .ic { transform: rotate(180deg); }
.rv-filter { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.375rem; }
.rv-filter .uc-tab[aria-pressed="true"] { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.rv-track { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; margin-right: calc(50% - 50vw); padding: 0.375rem 1.5rem 1.25rem 0.125rem; scrollbar-width: none; outline-offset: 0.25rem; }
.rv-track::-webkit-scrollbar { display: none; }
.rv-card { flex: 0 0 min(23.75rem, 84vw); scroll-snap-align: start; margin: 0; padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; border-radius: 0.75rem;
  background: linear-gradient(160deg, #1b1b1b, #121212); border: 1px solid var(--line); transition: border-color .3s, transform .3s; }
.rv-card[hidden] { display: none; }
.rv-card:hover { border-color: rgba(255,107,43,.55); transform: translateY(-0.1875rem); }
.rv-top { display: flex; align-items: center; justify-content: space-between; gap: 0.625rem; }
.stars { color: var(--orange); letter-spacing: 0.1875rem; font-size: 1.05rem; }
.stars i { font-style: normal; color: #3b3b3b; }
.rv-g { color: var(--muted); font: 700 .72rem var(--font-h); letter-spacing: .08em; text-transform: uppercase; }
.rv-card blockquote { margin: 0; flex: 1; }
.rv-card blockquote p { margin: 0; font-size: 1.05rem; line-height: 1.6; color: #f0f0f0; }
.rv-card blockquote p::before { content: "“"; }
.rv-card blockquote p::after { content: "”"; }
.rv-card figcaption { display: flex; align-items: center; gap: 0.75rem; padding-top: 0.875rem; border-top: 1px solid var(--line); }
.rv-av { flex: none; width: 2.625rem; height: 2.625rem; border-radius: 50%; display: grid; place-items: center; background: var(--orange); color: var(--ink); font: 800 1.05rem var(--font-h); }
.rv-who { display: flex; flex-direction: column; line-height: 1.25; }
.rv-who b { font: 700 .98rem var(--font-b); color: #fff; }
.rv-unit { color: var(--orange); font: 700 .78rem var(--font-b); letter-spacing: .04em; text-transform: uppercase; }
.rv-foot { display: flex; align-items: center; gap: 0.875rem 1.125rem; flex-wrap: wrap; margin-top: 1.125rem; padding-top: 1.375rem; border-top: 1px solid var(--line); }
.rv-foot p { margin: 0; color: var(--muted); }
.rv-foot .review-links { margin: 0; }
.rv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(18.125rem, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.rv-grid .rv-card { flex: initial; }
@media (max-width: 620px) { .rv-arrows { display: none; } .rv-quote { top: -1.25rem; right: -6%; } }

/* ── Blog: cartões, página de artigo ── */
.blog-home { background: radial-gradient(50rem 22.5rem at 10% 80%, rgba(255,107,43,.09), transparent 70%), var(--bg); }
.bp-grid { display: grid; grid-template-columns: 1.2fr 1fr; grid-template-rows: 1fr 1fr; gap: 1.25rem; }
.bp-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); gap: 1.25rem; margin: 1.125rem 0; }
.bp { display: flex; flex-direction: column; border-radius: 0.75rem; overflow: hidden; text-decoration: none; color: inherit;
  background: linear-gradient(160deg, #1b1b1b, #121212); border: 1px solid var(--line); transition: transform .3s, border-color .3s; }
.bp:hover { transform: translateY(-0.25rem); border-color: rgba(255,107,43,.6); }
.bp-img { overflow: hidden; aspect-ratio: 3 / 2; background: #161616; }
.bp-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.bp:hover .bp-img img { transform: scale(1.05); }
.bp-body { display: flex; flex-direction: column; gap: 0.5rem; padding: 1.25rem 1.375rem 1.375rem; flex: 1; }
.bp-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 0.375rem 0.75rem; color: var(--muted); font-size: .85rem; }
.bp-meta time { color: var(--orange); font-weight: 700; }
.bp h3 { margin: 0; font: 700 1.15rem/1.3 var(--font-h); color: #fff; }
.bp p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.bp-more { display: inline-flex; align-items: center; gap: 0.375rem; margin-top: auto; padding-top: 0.375rem; color: var(--orange); font: 700 .88rem var(--font-b); }
.bp-more .ic { width: 1rem; height: 1rem; transition: transform .3s; }
.bp:hover .bp-more .ic { transform: translateX(0.25rem); }
.bp-big { grid-row: 1 / span 2; }
.bp-big .bp-img { aspect-ratio: 4 / 3; }
.bp-big h3 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.bp-grid .bp:not(.bp-big) { flex-direction: row; }
.bp-grid .bp:not(.bp-big) .bp-img { flex: 0 0 40%; aspect-ratio: auto; }
.bp-grid .bp:not(.bp-big) p { -webkit-line-clamp: 2; }
@media (max-width: 860px) {
  .bp-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
  .bp-big { grid-row: auto; }
  .bp-grid .bp:not(.bp-big) { flex-direction: column; }
  .bp-grid .bp:not(.bp-big) .bp-img { flex: none; aspect-ratio: 3 / 2; }
}
/* página do artigo */
.post-hero { position: relative; overflow: hidden; padding: 11.875rem 0 3.5rem; min-height: 28.75rem; display: flex; align-items: flex-end; background: #0b0b0b; }
.ph-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph-shade { position: absolute; inset: 0; background: linear-gradient(0deg, #0b0b0b 4%, rgba(11,11,11,.72) 45%, rgba(11,11,11,.5) 100%); }
.ph-in { position: relative; z-index: 2; max-width: 53.75rem; margin-inline: auto 0; margin-left: max(1rem, calc(50% - 36.25rem)); }
.ph-in h1 { font-size: clamp(1.9rem, 4.6vw, 3.2rem); margin: 0.875rem 0 0.75rem; }
.ph-meta { display: flex; gap: 0.625rem; flex-wrap: wrap; color: #cfcfcf; margin: 0; }
.crumb { display: flex; gap: 0.5rem; margin-bottom: 1.125rem; font-size: .88rem; color: #cfcfcf; }
.crumb a { text-decoration: none; }
.crumb a:hover { color: var(--orange); }
.crumb span { opacity: .5; }
.article { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: clamp(1.75rem, 5vw, 4rem); align-items: start; }
.prose-post { max-width: 70ch; font-size: 1.1rem; line-height: 1.85; color: #e4e4e4; }
.prose-post > :first-child { font-size: 1.25rem; color: #fff; line-height: 1.7; }
.prose-post h2 { font: 700 clamp(1.4rem, 2.6vw, 1.8rem)/1.25 var(--font-h); color: #fff; margin: 2.2em 0 .6em; }
.prose-post h3 { font: 700 1.1rem/1.3 var(--font-h); color: var(--orange); margin: 1.6em 0 .4em; text-transform: uppercase; letter-spacing: .04em; }
.prose-post p { margin: 0 0 1.2em; }
.prose-post ul, .prose-post ol { margin: 0 0 1.4em; padding-left: 1.3em; }
.prose-post ul { list-style: none; padding-left: 0; }
.prose-post ul li { position: relative; padding-left: 1.4em; margin-bottom: .55em; }
.prose-post ul li::before { content: ""; position: absolute; left: 0; top: .72em; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--orange); }
.prose-post ol li { margin-bottom: .55em; padding-left: .3em; }
.prose-post ol li::marker { color: var(--orange); font-weight: 700; }
.prose-post strong { color: #fff; }
.prose-post a { color: var(--orange); text-underline-offset: 0.1875rem; }
.prose-post blockquote { margin: 1.6em 0; padding: .4em 0 .4em 1.2em; border-left: 0.1875rem solid var(--orange); color: #fff; font-style: italic; }
.art-side { position: sticky; top: 7.5rem; display: grid; gap: 0.875rem; }
.art-cta h2 { font-size: 1.4rem; display: block; }
.art-cta p { color: var(--muted); }
.share { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.75rem 1rem; border: 1px solid var(--line); border-radius: 62.4375rem; text-decoration: none; font-weight: 700; font-size: .92rem; transition: all .25s; }
.share:hover { border-color: var(--wa); color: var(--wa); }
@media (max-width: 960px) { .article { grid-template-columns: 1fr; } .art-side { position: static; } .post-hero { padding: 9.375rem 0 2.5rem; min-height: 23.75rem; } .ph-in { margin-left: 1rem; } }

/* ── Página de atividades: índice + cartões com abas ── */
.at-layout { display: grid; grid-template-columns: 15.625rem minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; padding-bottom: 4.5rem; }
.at-index { position: sticky; top: 7.5rem; max-height: calc(100vh - 8.75rem); overflow-y: auto; padding-right: 0.25rem; scrollbar-width: thin; }
.at-filter { display: flex; flex-wrap: wrap; gap: 0.375rem; margin-bottom: 1rem; }
.at-filter .uc-tab { padding: 0.5rem 0.875rem; font-size: .8rem; }
.at-filter .uc-tab[aria-pressed="true"] { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.at-list li { margin: 0; }
.at-list .at-gh { margin: 1rem 0 0.375rem; color: var(--orange); font: 700 .72rem var(--font-h); letter-spacing: .14em; text-transform: uppercase; }
.at-list a { display: block; padding: 0.4375rem 0.75rem; border-left: 0.125rem solid var(--line); color: #cfcfcf; text-decoration: none; font-size: .95rem; transition: all .2s; }
.at-list a:hover { color: #fff; border-color: var(--orange); }
.at-list a[aria-current="true"] { color: var(--orange); border-color: var(--orange); background: rgba(255,107,43,.08); font-weight: 700; }
.at-list [hidden], .at-card[hidden] { display: none; }
.at-main { display: grid; gap: 1.75rem; }
.at-card { position: relative; overflow: hidden; scroll-margin-top: 7.5rem; padding: clamp(1.375rem, 3.4vw, 2.375rem); border-radius: 0.875rem; border: 1px solid var(--line); background: linear-gradient(160deg, #1b1b1b, #111); }
.at-card::before { content: attr(data-word); position: absolute; right: -0.625rem; top: -0.875rem; font: 800 clamp(3.4rem, 8vw, 7rem)/1 var(--font-h); color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.08); letter-spacing: -.02em; white-space: nowrap; pointer-events: none; }
.at-card > * { position: relative; }
.at-head { display: flex; gap: 1.125rem; align-items: flex-start; }
.at-ic { flex: none; width: 3.375rem; height: 3.375rem; border-radius: 50%; display: grid; place-items: center; color: var(--orange); background: rgba(255,107,43,.12); border: 1px solid rgba(255,107,43,.35); }
.at-ic .ic { width: 1.625rem; height: 1.625rem; }
.at-head h2 { margin: 0.5rem 0 0.375rem; font-size: clamp(1.6rem, 3.2vw, 2.3rem); }
.at-lead { margin: 0 0 0.75rem; color: var(--muted); max-width: 60ch; }
.at-where { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; font-size: .88rem; color: var(--muted); }
.at-where b { color: #fff; }
.at-where a { padding: 0.25rem 0.75rem; border: 1px solid var(--line); border-radius: 62.4375rem; color: #e8e8e8; text-decoration: none; font-weight: 700; transition: all .2s; }
.at-where a:hover { border-color: var(--orange); color: var(--orange); }
.at-photo { width: 100%; max-height: 20rem; object-fit: cover; border-radius: 0.625rem; margin-top: 1.25rem; }
.at-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.5rem 0 1.125rem; }
.at-tab { padding: 0.5625rem 1rem; border-radius: 62.4375rem; border: 1px solid var(--nav-line); background: rgba(255,255,255,.03); color: #fff; font: 700 .85rem var(--font-b); cursor: pointer; transition: all .25s; }
.at-tab:hover { border-color: var(--orange); }
.at-tab[aria-selected="true"] { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.at-panel { max-width: 72ch; line-height: 1.75; color: #e2e2e2; }
.js .at-panel:not(.on) { display: none; }
.js .at-panel.on { animation: agIn .4s ease both; }
.at-panel h3 { margin: 0 0 0.625rem; font: 700 .85rem var(--font-h); letter-spacing: .12em; text-transform: uppercase; color: var(--orange); }
.at-panel p { margin: 0 0 1em; }
.at-panel strong { color: #fff; }
.at-panel ul, .at-panel ol { margin: 0 0 1em; padding: 0; list-style: none; }
.at-panel li { position: relative; padding-left: 1.4em; margin-bottom: .6em; }
.at-panel ul li::before { content: ""; position: absolute; left: 0; top: .72em; width: 0.4375rem; height: 0.4375rem; border-radius: 50%; background: var(--orange); }
.at-panel ol { counter-reset: n; }
.at-panel ol li { counter-increment: n; }
.at-panel ol li::before { content: counter(n); position: absolute; left: 0; top: 0; color: var(--orange); font-weight: 800; }
.at-foot { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.at-close { color: #d4d4d4; max-width: 72ch; }
.at-close p { margin: 0 0 0.25rem; }
.at-foot .actions { margin-top: 0.875rem; }
@media (max-width: 960px) {
  .at-layout { grid-template-columns: minmax(0, 1fr); }
  .at-main, .at-card { min-width: 0; }
  .at-index { position: sticky; top: 6.25rem; z-index: 20; max-height: none; overflow: visible; margin: 0 -1rem; padding: 0.625rem 1rem; background: rgba(8,8,8,.97); border-bottom: 1px solid var(--line); }
  .at-filter { margin-bottom: 0.5rem; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .at-filter .uc-tab { flex: none; }
  .at-list { display: flex; gap: 0.375rem; overflow-x: auto; scrollbar-width: none; }
  .at-list .at-gh { display: none; }
  .at-list li { flex: none; }
  .at-list a { border: 1px solid var(--line); border-radius: 62.4375rem; padding: 0.375rem 0.875rem; white-space: nowrap; }
  .at-list a[aria-current="true"] { border-color: var(--orange); }
  .at-card { scroll-margin-top: 11.875rem; }
}
@media (max-width: 620px) { .at-head { flex-direction: column; gap: 0.75rem; } .at-tabs { flex-wrap: nowrap; overflow-x: auto; margin-inline: -0.25rem; padding: 0 0.25rem 0.375rem; scrollbar-width: none; } .at-tab { flex: none; } }

/* ── Trabalhe conosco ── */
.jobs-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.75rem, 5vw, 4rem); align-items: start; }
.jobs-text { font-size: 1.1rem; line-height: 1.7; color: #e4e4e4; }
.jobs-text p { margin: 0 0 1em; }
.jobs-text p:first-child { font-size: 1.35rem; color: #fff; font-weight: 700; line-height: 1.4; }
.jobs-perks { grid-template-columns: 1fr 1fr; margin-top: 1.75rem; padding: 0.375rem; gap: 0; }
.jobs-perks li { padding: 1.125rem; }
.jobs-perks li::before { display: none; }
.jobs-form { position: sticky; top: 7.5rem; }
.jobs-form h2 { font-size: 1.5rem; margin: 0 0 0.25rem; }
.tf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 0.875rem; }
.tf-row-uf { grid-template-columns: 1fr 7.5rem; }
.tf-field textarea { width: 100%; padding: 0.75rem 1rem; border-radius: 0.5rem; border: 1px solid #333; background: #171717; color: #fff; font: 400 1rem var(--font-b); resize: vertical; }
.tf-field textarea:focus { outline: 0.125rem solid var(--orange); outline-offset: 1px; border-color: var(--orange); }
.tf-field input[type="file"] { height: auto; padding: 0.625rem 0.75rem; }
.tf-field input[type="file"]::file-selector-button { margin-right: 0.75rem; padding: 0.5rem 0.875rem; border: 0; border-radius: 0.375rem; background: var(--orange); color: var(--ink); font: 700 .85rem var(--font-b); cursor: pointer; }
.tf-field label small { text-transform: none; letter-spacing: 0; font-weight: 400; color: #9a9a9a; }
.tf-radio { border: 0; padding: 0; margin: 0 0 0.875rem; min-width: 0; }
.tf-radio legend { padding: 0; margin-bottom: 0.5rem; font: 700 .75rem var(--font-h); letter-spacing: .1em; text-transform: uppercase; color: #cfcfcf; }
.tf-radio label { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0 1.125rem 0 0; font: 400 1rem var(--font-b); letter-spacing: 0; text-transform: none; color: #fff; cursor: pointer; }
.tf-radio input, .tf-check input { width: 1.125rem; height: 1.125rem; accent-color: var(--orange); margin: 0; }
.tf-check { display: flex; align-items: flex-start; gap: 0.625rem; margin: 0.25rem 0 1rem; font-size: .92rem; line-height: 1.5; color: #d6d6d6; cursor: pointer; }
.tf-check a { color: var(--orange); }
.tf-hint { margin: -0.25rem 0 0.875rem; color: #8f8f8f; font-size: .82rem; line-height: 1.45; }
.tf-field.bad textarea, .tf-field.bad input[type="file"] { border-color: #ff8a8a; }
.tf-radio.bad legend, .tf-check.bad span { color: #ff9b9b; }
@media (max-width: 960px) { .jobs-grid { grid-template-columns: minmax(0, 1fr); } .jobs-form { position: static; } .jobs-perks { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .tf-row, .tf-row-uf { grid-template-columns: 1fr; } .tf-row-uf .tf-field:last-child { max-width: 8.75rem; } }

.tf-field.tf-radio input[type="radio"] { width: 1.125rem; height: 1.125rem; min-width: 1.125rem; padding: 0; border-radius: 50%; appearance: auto; -webkit-appearance: radio; background: none; border: 0; }

/* ── Páginas legais ── */
.lg-grid { display: grid; grid-template-columns: 18.125rem minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.75rem); align-items: start; }
.lg-side { position: sticky; top: 7.5rem; max-height: calc(100vh - 8.75rem); overflow-y: auto; scrollbar-width: thin; }
.lg-toc { border: 1px solid var(--line); border-radius: 0.75rem; background: linear-gradient(160deg, #1b1b1b, #121212); padding: 0.375rem 0.25rem; }
.lg-toc summary { cursor: pointer; padding: 0.75rem 0.875rem; font: 700 .78rem var(--font-h); letter-spacing: .14em; text-transform: uppercase; color: var(--orange); list-style: none; }
.lg-toc summary::-webkit-details-marker { display: none; }
.lg-toc ol { margin: 0; padding: 0 0.375rem 0.625rem; list-style: none; }
.lg-toc a { display: block; padding: 0.4375rem 0.625rem; border-left: 0.125rem solid var(--line); color: #cfcfcf; text-decoration: none; font-size: .92rem; line-height: 1.35; transition: all .2s; }
.lg-toc a:hover { color: #fff; border-color: var(--orange); }
.lg-toc a[aria-current="true"] { color: var(--orange); border-color: var(--orange); background: rgba(255,107,43,.08); font-weight: 700; }
.lg-meta { margin: 0 0 1.375rem; color: var(--muted); font-size: .92rem; }
.lg-meta time { color: #fff; font-weight: 700; }
.lg-body .prose-post { max-width: 75ch; font-size: 1.04rem; line-height: 1.8; }
.lg-body .prose-post > :first-child { font-size: 1.04rem; color: #e4e4e4; line-height: 1.8; }
.lg-body .prose-post h2 { scroll-margin-top: 7.5rem; }
.lg-top { margin-top: 2.5rem; }
.lg-top a { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--orange); font-weight: 700; text-decoration: none; }
.lg-top .ic { transform: rotate(-90deg); }
@media (max-width: 960px) { .lg-grid { grid-template-columns: minmax(0, 1fr); } .lg-side { position: static; max-height: none; } .lg-body .prose-post h2 { scroll-margin-top: 8.125rem; } }

/* ── Sobre a academia ── */
.ab-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.75rem, 5vw, 4.5rem); align-items: center; }
.ab-text p:not(.eyebrow) { color: #dcdcdc; font-size: 1.08rem; line-height: 1.8; }
.ab-photo { position: relative; margin: 0; }
.ab-photo::before { content: ""; position: absolute; inset: 1.125rem -1.125rem -1.125rem 1.125rem; border: 0.125rem solid var(--orange); border-radius: 0.875rem; }
.ab-photo img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 0.875rem; box-shadow: 0 1.5rem 3.75rem rgba(0,0,0,.55); }
.ab-stats { background: var(--orange); color: var(--ink); position: relative; overflow: hidden; }
.ab-stats::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(0,0,0,.055) 0 0.875rem, transparent 0.875rem 1.75rem); }
.ab-stats ul { position: relative; display: flex; justify-content: space-around; gap: 1.5rem; flex-wrap: wrap; padding: 2.5rem 0; text-align: center; }
.ab-stats strong { display: block; font: 800 clamp(2.6rem, 6vw, 4rem)/1 var(--font-h); }
.ab-stats span { font: 700 .9rem var(--font-h); letter-spacing: .14em; text-transform: uppercase; }
.ab-mv { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.mv-card { position: relative; overflow: hidden; padding: clamp(1.5rem, 4vw, 2.75rem); border-radius: 0.875rem; border: 1px solid var(--line); background: linear-gradient(160deg, #1b1b1b, #111); }
.mv-card::before { content: attr(data-word); position: absolute; right: -0.5rem; bottom: -0.875rem; font: 800 clamp(4rem, 9vw, 8rem)/1 var(--font-h); color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.09); pointer-events: none; }
.mv-card > * { position: relative; }
.mv-text { margin: 0.5rem 0 0; font: 600 clamp(1.15rem, 2vw, 1.5rem)/1.5 var(--font-h); color: #fff; max-width: 34ch; }
.ab-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(12.1875rem, 1fr)); gap: 1rem; margin-top: 1.375rem; }
.ab-card { padding: 1.5rem; border-radius: 0.75rem; border: 1px solid var(--line); background: linear-gradient(160deg, #1b1b1b, #121212); transition: transform .3s, border-color .3s; }
.ab-card:hover { transform: translateY(-0.25rem); border-color: rgba(255,107,43,.55); }
.ab-card .pi { display: grid; place-items: center; width: 2.875rem; height: 2.875rem; margin-bottom: 0.875rem; border-radius: 50%; color: var(--orange); background: rgba(255,107,43,.12); border: 1px solid rgba(255,107,43,.32); }
.ab-card .pi .ic { width: 1.5rem; height: 1.5rem; }
.ab-card h3 { margin: 0 0 0.375rem; font-size: 1.1rem; }
.ab-card p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.55; }
.ab-units { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.375rem; }
.ab-unit { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; border-radius: 0.75rem; text-decoration: none; border: 1px solid var(--line); }
.ab-unit img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ab-unit::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,8,8,.92), rgba(8,8,8,.1) 60%); }
.ab-unit span { position: absolute; left: 1.125rem; bottom: 0.875rem; z-index: 2; display: flex; flex-direction: column; line-height: 1.2; }
.ab-unit b { font: 800 1.2rem var(--font-h); text-transform: uppercase; color: #fff; }
.ab-unit small { color: var(--orange); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .75rem; }
.ab-unit:hover img { transform: scale(1.06); }
@media (max-width: 960px) { .ab-grid, .ab-mv { grid-template-columns: minmax(0, 1fr); } .ab-photo { margin: 0 1.125rem 1.125rem 0; } .ab-units { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .ab-units { grid-template-columns: 1fr; } }

/* ── Página de unidade ── */
.u-hero { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 35rem; padding: 11.875rem 0 3.25rem; background: #0b0b0b; }
.u-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.u-shade { position: absolute; inset: 0; background: linear-gradient(0deg, #0b0b0b 3%, rgba(11,11,11,.7) 46%, rgba(11,11,11,.55) 100%), linear-gradient(90deg, rgba(11,11,11,.78), transparent 70%); }
.u-in { position: relative; z-index: 2; }
.u-in h1 { margin: 0.375rem 0 0.875rem; font-size: clamp(2.4rem, 6vw, 4.2rem); }
.u-status { display: inline-flex; align-items: center; gap: 0.625rem; margin: 0 0 0.875rem; padding: 0.5rem 1rem; border-radius: 62.4375rem; border: 1px solid rgba(255,255,255,.22); background: rgba(0,0,0,.45); font: 700 .88rem var(--font-b); }
.u-status i { width: 0.625rem; height: 0.625rem; border-radius: 50%; background: #9a9a9a; }
.u-status.open i { background: var(--wa); box-shadow: 0 0 0 0.25rem rgba(37,211,102,.25); }
.u-status.closed i { background: #ff8a8a; box-shadow: 0 0 0 0.25rem rgba(255,138,138,.2); }
.u-sub { position: sticky; top: var(--stick-top, 7.5rem); z-index: 30; background: rgba(8,8,8,.97); border-bottom: 1px solid var(--line); }
.u-sub ul { display: flex; gap: 0.25rem; overflow-x: auto; scrollbar-width: none; }
.u-sub ul::-webkit-scrollbar { display: none; }
.u-sub ul { gap: .5rem; }
.u-sub a { display: block; padding: 1.2rem 1.35rem; white-space: nowrap; color: #d6d6d6; text-decoration: none; font: 700 1.02rem var(--font-b); border-bottom: 0.1875rem solid transparent; transition: all .2s; }
.u-sub a:hover { color: #fff; }
.u-sub a[aria-current="true"] { color: var(--orange); border-bottom-color: var(--orange); }
html:has(.u-sub) { scroll-padding-top: 14rem; }
/* Grade de aulas: abas por dia, filtro por tipo, colunas por período */
.gd { --c-bike: #ff6b2b; --c-forca: #ffc24b; --c-danca: #ff5c8a; --c-mente: #6cc6b8; --c-especial: #b9a8ff; }
.gd [data-c="bike"] { --c: var(--c-bike); } .gd [data-c="forca"] { --c: var(--c-forca); } .gd [data-c="danca"] { --c: var(--c-danca); }
.gd [data-c="mente"] { --c: var(--c-mente); } .gd [data-c="especial"] { --c: var(--c-especial); }
.gd-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 1.125rem 0 0.75rem; }
.gd-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gd-tab { position: relative; display: inline-flex; align-items: baseline; gap: 0.5rem; padding: 0.625rem 1.125rem; border-radius: 62.4375rem; border: 1px solid var(--nav-line); background: rgba(255,255,255,.03); color: #fff; font: 700 .9rem var(--font-b); cursor: pointer; transition: all .25s; }
.gd-tab small { font: 600 .74rem var(--font-b); opacity: .6; }
.gd-tab:hover { border-color: var(--orange); }
.gd-tab[aria-selected="true"] { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.gd-tab[aria-selected="true"] small { opacity: .75; }
.gd-tab em { align-self: center; padding: 0.125rem 0.5rem; border-radius: 62.4375rem; background: rgba(0,0,0,.2); font: 700 .68rem var(--font-h); font-style: normal; letter-spacing: .08em; text-transform: uppercase; }
.gd-tab:not([aria-selected="true"]) em { background: var(--orange); color: var(--ink); }
.gd-live { display: flex; align-items: center; gap: 0.5rem; font: 600 .92rem var(--font-b); color: #d6d6d6; }
.gd-live::before { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 0.25rem rgba(255,107,43,.22); }
.gd-live b { color: #fff; }
.gd-live[hidden] { display: none; }
.gd-bar { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem 1.25rem; flex-wrap: wrap; margin-bottom: 0.875rem; }
.gd-nota { display: inline-flex; align-items: center; gap: 0.5rem; font: 600 .86rem var(--font-b); color: #bdbdbd; }
.gd-nota .ic { width: 1rem; height: 1rem; color: var(--orange); }
.gd-filter { display: none; flex-wrap: wrap; gap: 0.5rem; }
.js .gd-filter { display: flex; }
.gd-chip { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.4375rem 0.875rem; border-radius: 0.5rem; border: 1px solid var(--line); background: transparent; color: #cfcfcf; font: 600 .84rem var(--font-b); cursor: pointer; transition: border-color .2s, color .2s, background .2s; }
.gd-chip:hover { border-color: #555; color: #fff; }
.gd-chip[aria-pressed="true"] { background: #fff; border-color: #fff; color: var(--ink); }
.gd-dot { flex: none; width: 0.625rem; height: 0.625rem; border-radius: 50%; background: var(--c, #777); }
.gd-chip[aria-pressed="true"] .gd-dot { box-shadow: 0 0 0 0.125rem rgba(0,0,0,.15); }
.gd-panel h3 { color: var(--orange); font-size: 1rem; margin: 1.125rem 0 0.5rem; }
.gd-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 0.75rem; background: linear-gradient(160deg, #1b1b1b, #121212); overflow: hidden; }
.gd-col { padding: 0 1.5rem 0.75rem; }
.gd-col + .gd-col { border-left: 1px solid var(--line); }
.gd-col h4 { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; margin: 0 -1.5rem 0.375rem; padding: 0.875rem 1.5rem 0.75rem; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.025); font: 700 .78rem var(--font-h); letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.gd-col h4 small { font: 500 .76rem var(--font-b); letter-spacing: 0; text-transform: none; color: #8d8d8d; }
.gd-col ul { list-style: none; }
.gd-col li { display: grid; grid-template-columns: 3.5rem 0.625rem minmax(0, 1fr); align-items: center; gap: 0.75rem; padding: 0.5rem 0.625rem; margin: 0 -0.625rem; border-radius: 0.5rem; }
.gd-col li + li { border-top: 1px dashed var(--line); border-top-left-radius: 0; border-top-right-radius: 0; }
.gd-col time { font: 700 1rem var(--font-h); color: #fff; font-variant-numeric: tabular-nums; }
.gd-col li span { font: 600 .98rem var(--font-b); color: #e9e9e9; }
.gd-none { display: none; padding: 1rem 0 0.5rem; color: #6f6f6f; font: 500 .9rem var(--font-b); }
.gd-col.empty ul { display: none; }
.gd-col.empty .gd-none { display: block; }
.gd-col li.past { opacity: .38; }
.gd-col li.next { background: rgba(255,107,43,.12); box-shadow: inset 0.1875rem 0 0 var(--orange); border-radius: 0.5rem; opacity: 1; }
.gd-col li.next + li { border-top-color: transparent; }
.gd-col li.next span::after { content: "Próxima"; margin-left: 0.625rem; padding: 0.125rem 0.5rem; border-radius: 62.4375rem; background: var(--orange); color: var(--ink); font: 700 .66rem var(--font-h); letter-spacing: .08em; text-transform: uppercase; vertical-align: .08em; }
.gd-col li.hide { display: none; }
.gd + .note { margin-top: 0.875rem; }
.js .gd-panel h3 { display: none; }
.js .gd-panel:not(.on) { display: none; }
.js .gd-panel.on { animation: agIn .35s ease both; }
.loc-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 1.25rem; align-items: stretch; }
.loc-card { display: flex; flex-direction: column; gap: 0.375rem; }
.loc-card .actions { margin-top: auto; padding-top: 1rem; }
.loc-grid .map { min-height: 23.75rem; }
.loc-grid .map iframe { height: 100%; min-height: 23.75rem; }
.ab-units-5 { grid-template-columns: repeat(5, 1fr); }
.ab-units-5 .ab-unit { aspect-ratio: 3 / 4; }
@media (max-width: 960px) {
  .u-hero { min-height: 30rem; padding: 9.375rem 0 2.5rem; }
  .loc-grid { grid-template-columns: minmax(0, 1fr); }
  .gd-cols { grid-template-columns: minmax(0, 1fr); }
  .gd-col { padding-bottom: 0.5rem; }
  .gd-col + .gd-col { border-left: 0; border-top: 1px solid var(--line); }
  .gd-col.empty { display: none; }
  .gd-col h4 { margin-top: 0; }
  .ab-units-5 { grid-template-columns: 1fr 1fr; }
  .ab-units-5 .ab-unit { aspect-ratio: 4 / 3; }
  html:has(.u-sub) { scroll-padding-top: 10.625rem; }
}
@media (max-width: 520px) {
  .gd-tab small { display: none; }
  .gd-filter { flex-wrap: nowrap; overflow-x: auto; margin: 0 -1rem; padding: 0 1rem; scrollbar-width: none; max-width: calc(100% + 2rem); }
  .gd-filter::-webkit-scrollbar { display: none; }
  .gd-chip { white-space: nowrap; }
}

/* ── Ajustes de responsividade (tablet e telas pequenas) ── */
.prose-post, .prose-post a, .lg-body, .at-panel { overflow-wrap: anywhere; }
.plan-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.plan-grid.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1180px) {
  .plan-grid.n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-photo { margin-right: 1.25rem; }
}
@media (max-width: 960px) { .plan-grid, .plan-grid.n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .plan-grid, .plan-grid.n4 { grid-template-columns: minmax(0, 1fr); } }
/* navbar compacta entre o menu hambúrguer (960) e o desktop confortável (1180): nada quebra em duas linhas */
@media (min-width: 961px) and (max-width: 1180px) {
  .navbar { padding: .75rem 1rem; }
  .logo img { width: 6.75rem; }
  .menu-left { margin-left: 1rem; }
  .menu-left > li { margin-right: .5rem; }
  .menu-left a { font-size: .75rem; white-space: nowrap; letter-spacing: .01em; }
  .cta span { font-size: .72rem; white-space: nowrap; }
  .cta { padding: .1rem .75rem; }
  .socials { margin-left: .6rem; }
  .soc { margin-left: .45rem; width: 2.1rem; height: 2.1rem; }
  .soc .ic { width: 1.1rem; height: 1.1rem; }
}

/* celular/tablet: diferenciais viram uma faixa que desliza para o lado (sem a caixa grande) */
@media (max-width: 960px) {
  .band { margin-top: -2rem; }
  .perks { display: flex; gap: .75rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 1rem; margin-inline: -1rem; padding: .25rem 1rem .5rem;
    background: none; border: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; border-radius: 0; scrollbar-width: none; }
  .perks::-webkit-scrollbar { display: none; }
  .perks li { flex: 0 0 auto; width: min(15.5rem, 72vw); scroll-snap-align: start; flex-direction: row; align-items: center; gap: .75rem; padding: .85rem 1rem;
    border: 1px solid var(--nav-line); border-radius: .75rem; background: rgba(13,13,13,.88); }
  .perks li:last-child { grid-column: auto; }
  .perks li::before { display: none; }
  .perks .pi { width: 2.5rem; height: 2.5rem; }
  .perks .pi .ic { width: 1.25rem; height: 1.25rem; }
  .perks strong { font-size: .92rem; }
  .perks div > span { font-size: .8rem; }
}

/* diferenciais: no desktop a cópia fica escondida; no celular/tablet vira um letreiro contínuo (itens colados, passando sozinhos) */
.perks li.dup { display: none; }
@keyframes perksMarquee { to { transform: translateX(-50%); } }
@media (max-width: 960px) {
  .band { margin-top: -1.25rem; padding-bottom: 1.5rem; overflow: hidden; }
  .band .wrap { width: 100%; }
  .perks { display: flex; width: max-content; gap: 0; margin: 0; padding: 0; overflow: visible; scroll-snap-type: none;
    background: rgba(13,13,13,.92); border-block: 1px solid var(--nav-line); animation: perksMarquee 38s linear infinite; }
  .perks li, .perks li.dup { display: flex; flex: none; width: auto; align-items: center; gap: .6rem; padding: .6rem 1.4rem; border: 0; border-right: 1px solid var(--nav-line); border-radius: 0; background: none; scroll-snap-align: none; }
  .perks .pi { width: 2rem; height: 2rem; }
  .perks .pi .ic { width: 1rem; height: 1rem; }
  .perks strong { font-size: .85rem; white-space: nowrap; }
  .perks div > span { font-size: .72rem; white-space: nowrap; margin-top: .05rem; }
  .perks:active { animation-play-state: paused; }
}
/* o letreiro é lento e decorativo: roda mesmo com "reduzir movimento" no sistema; encostar o dedo pausa */

/* ── Menu do celular (painel): lista limpa, Unidades expansível, CTA e redes fixos embaixo ── */
@media (max-width: 960px) {
  .mpanel.mp { display: flex; flex-direction: column; inset: 0; padding: 6.25rem 1.5rem 0; text-align: left; overflow-y: auto; overscroll-behavior: contain; }
  .mpanel.mp li { margin: 0; }
  .mp-nav { border-top: 1px solid var(--nav-line); }
  .mp-nav > li { border-bottom: 1px solid var(--nav-line); }
  .mpanel.mp .mp-row { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 3.5rem; padding: .25rem 0; background: none; border: 0;
    color: #fff; font: 700 1.2rem/1.2 var(--font-h); text-transform: none; letter-spacing: -.01em; text-align: left; cursor: pointer; }
  .mpanel.mp .mp-row[aria-current], .mpanel.mp .mp-row:hover, .mpanel.mp .mp-row[aria-expanded="true"] { color: var(--orange); }
  .mp-chev { display: grid; place-items: center; width: 2rem; height: 2rem; transition: transform .3s; }
  .mp-chev .ic { transform: rotate(90deg); }
  .mp-row[aria-expanded="true"] .mp-chev { transform: rotate(180deg); }
  .mp-units { padding: 0 0 .75rem !important; }
  .mp-units li { display: flex; align-items: stretch; gap: .5rem; margin-bottom: .5rem; }
  .mpanel.mp .mp-unit { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: .7rem 1rem; border: 1px solid var(--nav-line); border-radius: .6rem; background: rgba(255,255,255,.03);
    font: 700 1rem/1.2 var(--font-b); text-transform: none; color: #fff; }
  .mp-unit small { margin-top: .15rem; color: #a3a3a3; font: 400 .8rem var(--font-b); }
  .mp-unit:active, .mp-call:active { background: rgba(255,107,43,.15); }
  .mpanel.mp .mp-call { flex: none; display: grid; place-items: center; width: 3.1rem; border-radius: .6rem; background: #fff; color: #000; }
  .mp-call .ic { width: 1.2rem; height: 1.2rem; }
  .mp-foot { margin-top: auto; position: sticky; bottom: 0; padding: 1rem 0 calc(1.25rem + env(safe-area-inset-bottom)); background: linear-gradient(0deg, var(--nav-bg) 78%, transparent); }
  .mpanel.mp .mp-cta { width: 100%; min-height: 3.3rem; font-size: 1rem; text-transform: none; color: var(--ink); }
  .mp-soc { display: flex; align-items: center; justify-content: space-between; margin-top: 1rem; color: #a3a3a3; font: 700 .72rem var(--font-h); letter-spacing: .12em; text-transform: uppercase; }
  .mp-soc > div { display: flex; }
  .mpanel.mp .mp-soc a.soc { margin: 0 0 0 .6rem; color: #000; width: 2.4rem; height: 2.4rem; }
}
@media (max-width: 960px) { .menu-open .mlogo { opacity: 1; pointer-events: auto; } }

/* ── Atividades (home) no celular/tablet: categorias que cabem na tela e cartões em coverflow infinito ── */
.ag-ctrl { display: none; }
@media (max-width: 960px) {
  .ag-tabs { flex-wrap: wrap; overflow: visible; margin-inline: 0; padding: 0; gap: .5rem; }
  .ag-tab { flex: 1 1 auto; justify-content: center; padding: .7rem .9rem; font-size: .9rem; }
  .ag-tab .ic { display: none; }
  .ag-grid.cf { display: grid; overflow: hidden; margin-inline: -1rem; padding: .5rem 0 1rem; gap: 0; touch-action: pan-y; scroll-snap-type: none; }
  .ag-grid.cf .ag-card { grid-area: 1 / 1; width: min(76%, 22rem); justify-self: center; flex: none; will-change: transform;
    transition: transform .55s cubic-bezier(.22,.8,.26,1), opacity .4s ease, filter .4s ease; }
  .ag-grid.cf .ag-card:hover { transform: none; }
  .ag-ctrl { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin-top: .25rem; }
  .ag-count { min-width: 3.5rem; text-align: center; color: var(--muted); font: 700 .9rem var(--font-h); letter-spacing: .08em; }
}
@media (max-width: 960px) and (prefers-reduced-motion: reduce) { .ag-grid.cf .ag-card { transition-duration: .01s; } }
@media (max-width: 960px) { .ag-grid.cf { grid-template-columns: minmax(0, 1fr); } }
.ag-prev .ic { transform: rotate(180deg); }

/* ── Avaliações no celular/tablet: coverflow infinito, setas + contador e links do Google compactos ── */
.rv-ctrl { display: none; }
@media (max-width: 960px) {
  .rv-arrows { display: none; }
  .rv-track.cf { display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; margin: 0 -1rem; padding: .5rem 0 1rem; gap: 0; touch-action: pan-y; scroll-snap-type: none; }
  .rv-track.cf .rv-card { grid-area: 1 / 1; flex: none; width: min(80%, 22rem); justify-self: center; will-change: transform;
    transition: transform .55s cubic-bezier(.22,.8,.26,1), opacity .4s ease, filter .4s ease; }
  .rv-track.cf .rv-card:hover { transform: none; }
  .rv-ctrl { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin-top: .25rem; }
  .rv-count { min-width: 3.5rem; text-align: center; color: var(--muted); font: 700 .9rem var(--font-h); letter-spacing: .08em; }
  .rv-foot { flex-direction: column; align-items: flex-start; }
  .rv-foot .review-links { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; width: 100%; }
  .rv-foot .review-links a { justify-content: center; padding: .7rem .75rem; font-size: .92rem; }
}
@media (max-width: 960px) and (prefers-reduced-motion: reduce) { .rv-track.cf .rv-card { transition-duration: .01s; } }
.rvc-prev .ic { transform: rotate(180deg); }

/* ── Blog no celular/tablet: 1 destaque + demais em linhas compactas (miniatura, título e data) ── */
@media (max-width: 860px) {
  .bp-grid, .bp-list { gap: .75rem; }
  .bp .bp-img { aspect-ratio: 16 / 10; }
  .bp-big p, .bp-list .bp:first-child p { -webkit-line-clamp: 2; }
  .bp-grid .bp:not(.bp-big), .bp-list .bp:not(:first-child) { flex-direction: row; align-items: stretch; }
  .bp-grid .bp:not(.bp-big) .bp-img, .bp-list .bp:not(:first-child) .bp-img { flex: 0 0 8.5rem; aspect-ratio: auto; min-height: 7.5rem; }
  .bp-grid .bp:not(.bp-big) .bp-body, .bp-list .bp:not(:first-child) .bp-body { padding: .85rem 1rem; gap: .4rem; justify-content: center; }
  .bp-grid .bp:not(.bp-big) h3, .bp-list .bp:not(:first-child) h3 { font-size: .98rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .bp-grid .bp:not(.bp-big) p, .bp-list .bp:not(:first-child) p,
  .bp-grid .bp:not(.bp-big) .bp-more, .bp-list .bp:not(:first-child) .bp-more,
  .bp-grid .bp:not(.bp-big) .chip, .bp-list .bp:not(:first-child) .chip { display: none; }
  .bp-grid .bp:not(.bp-big) .bp-meta, .bp-list .bp:not(:first-child) .bp-meta { font-size: .76rem; }
  .bp-big h3, .bp-list .bp:first-child h3 { font-size: 1.3rem; }
}
@media (max-width: 380px) {
  .bp-grid .bp:not(.bp-big) .bp-img, .bp-list .bp:not(:first-child) .bp-img { flex-basis: 6.5rem; }
}

/* ── Rodapé: unidades como <details> (no desktop ficam sempre abertas; no celular abrem ao toque) ── */
.ft-unit { display: block; }
.ft-unit summary { list-style: none; display: block; pointer-events: none; }
.ft-unit summary::-webkit-details-marker { display: none; }
.ft-unit .ft-uname { pointer-events: auto; }
.ft-ub { display: flex; flex-direction: column; gap: .3125rem; margin-top: .3125rem; }
.ft-city, .ft-chev { display: none; }
@media (max-width: 960px) {
  .ft-units { gap: 0; border-top: 1px solid var(--line); }
  .ft-units > li { border-bottom: 1px solid var(--line); }
  .ft-unit summary { pointer-events: auto; display: flex; align-items: center; gap: .6rem; min-height: 3.4rem; cursor: pointer; }
  .ft-unit .ft-uname { font-size: 1.05rem; }
  .ft-city { display: block; flex: 1; color: #8f8f8f; font: 400 .85rem var(--font-b); }
  .ft-chev { display: grid; place-items: center; width: 2rem; height: 2rem; transition: transform .3s; color: var(--orange); }
  .ft-chev .ic { transform: rotate(90deg); }
  .ft-unit[open] .ft-chev { transform: rotate(180deg); }
  .ft-ub { padding: 0 0 1rem; gap: .45rem; }
  .ft-nav { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; }
}
.ft-page { display: none; }
@media (max-width: 960px) { .ft-page { display: inline-flex; align-items: center; gap: .4rem; align-self: flex-start; margin-top: .2rem; color: var(--orange); font: 700 .88rem var(--font-b); text-decoration: none; } .ft-page .ic { width: 1rem; height: 1rem; } }
@media (max-width: 520px) { .ab-units, .ab-units-5 { grid-template-columns: 1fr 1fr; gap: .6rem; } .ab-units .ab-unit, .ab-units-5 .ab-unit { aspect-ratio: 1 / 1; } .ab-unit b { font-size: 1rem; } .ab-unit span { left: .75rem; bottom: .6rem; } }

/* palavras gigantes de fundo: o tamanho se ajusta ao comprimento da palavra e à largura disponível (nada corta) */
.ag-panel::before { font-size: min(12rem, calc(min(100vw - 2rem, 72rem) / (var(--wl, 6) * .8))); right: 0; }
.at-card::before { font-size: min(7rem, calc(min(100vw - 3rem, 52rem) / (var(--wl, 8) * .8))); right: .5rem; }

/* ── Avaliações: coverflow infinito também no desktop (largura da tela, como o seletor de unidades) ── */
.rv-arrows { display: none; }
.rv-ctrl { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin-top: .25rem; }
.rv-track.cf { display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; margin: 0 calc(50% - 50vw); padding: .75rem 0 1.25rem; gap: 0; touch-action: pan-y; scroll-snap-type: none; cursor: grab; }
.rv-track.cf .rv-card { grid-area: 1 / 1; flex: none; width: clamp(17.5rem, 30vw, 27rem); justify-self: center; will-change: transform; cursor: pointer;
  transition: transform .55s cubic-bezier(.22,.8,.26,1), opacity .4s ease, filter .4s ease; }
.rv-track.cf .rv-card[aria-hidden="false"] { cursor: default; border-color: rgba(255,107,43,.5); }
.rv-track.cf .rv-card:hover { transform: none; }
.rv-card blockquote p { font-size: 1.08rem; }

/* ── Rodapé desktop: unidades compactas (nome, cidade, endereço em 1 bloco curto e WhatsApp), 3 colunas ── */
.ft-grid { grid-template-columns: 1fr 2.6fr .7fr; }
.ft-units { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 1.5rem; }
.ft-city { display: block; margin-top: .1rem; color: #8f8f8f; font: 400 .82rem var(--font-b); }
.ft-hours { display: none; }
.ft-ub { margin-top: .5rem; gap: .35rem; }
.ft-unit address { font-size: .88rem; line-height: 1.45; }
@media (max-width: 1180px) { .ft-grid { grid-template-columns: 1fr 1fr; } .ft-units-col { grid-column: 1 / -1; order: 3; } .ft-brand { grid-column: 1 / -1; } .ft-units { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 960px) {
  .ft-grid { grid-template-columns: 1fr; }
  .ft-units-col { order: 0; }
  .ft-units { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ft-city { display: block; margin-top: 0; flex: 1; font-size: .85rem; }
  .ft-hours { display: inline-flex; }
  .ft-ub { margin-top: 0; }
}

/* ── Atividades (home): coverflow infinito em todas as larguras, ocupando a largura da tela ── */
.ag-tabs { overflow: visible; flex-wrap: wrap; }
.ag-grid.cf { display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; margin: 0 calc(50% - 50vw); padding: .75rem 0 1.25rem; gap: 0; touch-action: pan-y; scroll-snap-type: none; cursor: grab; }
.ag-grid.cf .ag-card { grid-area: 1 / 1; flex: none; width: clamp(16.5rem, 24vw, 23rem); justify-self: center; padding: 1.75rem; will-change: transform; cursor: pointer;
  transition: transform .55s cubic-bezier(.22,.8,.26,1), opacity .4s ease, filter .4s ease; }
.ag-grid.cf .ag-card[aria-hidden="false"] { cursor: default; border-color: rgba(255,107,43,.55); background: linear-gradient(160deg, #241a14, #131313); }
.ag-grid.cf .ag-card:hover { transform: none; }
.ag-grid.cf .ag-card h4 { font-size: 1.25rem; }
.ag-grid.cf .ag-card p { font-size: .98rem; }
.ag-ctrl { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin-top: .25rem; }
.ag-count { min-width: 3.5rem; text-align: center; color: var(--muted); font: 700 .9rem var(--font-h); letter-spacing: .08em; }
.ag-panel::before { top: -4.6rem; font-size: min(8.5rem, calc(min(100vw - 2rem, 72rem) / (var(--wl, 6) * .8))); }
.ag-lead { max-width: 36rem; }
.ag-panel::before { font-size: min(7rem, calc(min(100vw - 2rem, 72rem) / (var(--wl, 6) * .8))); top: -3.4rem; }
@media (min-width: 961px) { .rv-ctrl { display: none; } }   /* desktop: avaliações passam sozinhas, sem setas */

/* ── Padrão único dos carrosséis (unidades, atividades, avaliações): mesmo tamanho de cartão, espaçamento, destaque e textos ── */
:root { --cf-w: clamp(18rem, 27vw, 26rem); }
.ag-grid.cf .ag-card, .rv-track.cf .rv-card { width: var(--cf-w); min-height: 15.5rem; padding: 1.625rem; border-radius: .75rem; gap: .75rem;
  background: linear-gradient(160deg, #1b1b1b, #121212); border: 1px solid var(--line); }
.ag-grid.cf .ag-card[aria-hidden="false"], .rv-track.cf .rv-card[aria-hidden="false"] { border-color: rgba(255,107,43,.55); background: linear-gradient(160deg, #241a14, #131313);
  box-shadow: 0 1.5rem 3.75rem rgba(0,0,0,.65); }
.ag-grid.cf .ag-card h4 { font-size: 1.2rem; }
.ag-grid.cf .ag-card p, .rv-card blockquote p { font-size: 1rem; line-height: 1.55; }
.ag-more { margin-top: auto; }
.units .lead, .acts-home .sec-head .lead, .reviews .lead, .blog-home .lead { max-width: 42rem; }
.ag-tabs, .rv-filter { margin-bottom: 1.75rem; }
.ag-ctrl, .rv-ctrl { margin-top: .5rem; }

/* benefícios da página Trabalhe conosco: lista normal (sem o letreiro dos diferenciais da home) */
@media (max-width: 960px) {
  .jobs-perks { display: grid; grid-template-columns: 1fr; width: auto; margin: 1.75rem 0 0; padding: .375rem; gap: 0; animation: none; border: 1px solid var(--nav-line); border-radius: .875rem; background: rgba(13,13,13,.86); }
  .jobs-perks li, .jobs-perks li.dup { display: flex; width: auto; padding: 1.125rem; border: 0; flex: initial; white-space: normal; }
  .jobs-perks li.dup { display: none; }
  .jobs-perks strong, .jobs-perks div > span { white-space: normal; }
}

/* ── Konnen Pass: mais presença ao redor do box (brilho e listras suaves) ── */
.pass { position: relative; overflow: hidden;
  background: radial-gradient(38rem 26rem at 84% 52%, rgba(255,107,43,.26), transparent 70%), radial-gradient(30rem 22rem at 8% 100%, rgba(255,107,43,.12), transparent 70%), var(--bg); }
.pass::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(135deg, rgba(255,107,43,.05) 0 .875rem, transparent .875rem 1.75rem);
  -webkit-mask-image: radial-gradient(ellipse 75% 70% at 50% 50%, transparent 52%, #000 100%); mask-image: radial-gradient(ellipse 75% 70% at 50% 50%, transparent 52%, #000 100%); }
.pass .pass-box { position: relative; z-index: 1; background: linear-gradient(135deg, rgba(255,107,43,.12), rgba(13,13,13,.86) 55%); }
@media (min-width: 961px) {
  .pass .pass-box { width: min(80rem, 100% - 2rem); }
  .pcards { width: min(100%, 28rem); }
}
.pass::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; background: linear-gradient(180deg, var(--bg) 0, transparent 22%, transparent 78%, var(--bg) 100%); }

/* transição unidades → Pass: linha de brilho laranja com o "K" no centro e luz descendo sobre o box */
.pass { padding-top: clamp(3.6rem, 5.6vw, 5.6rem); }
.pass-sep { position: absolute; z-index: 2; top: 0; left: 0; right: 0; height: 9rem; pointer-events: none; display: flex; justify-content: center; }
.pass-sep::before { content: ""; position: absolute; top: 1.5rem; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, rgba(255,107,43,.85) 50%, transparent); }
.pass-sep::after { content: ""; position: absolute; top: 1.5rem; left: 50%; width: min(60rem, 90%); height: 9rem; transform: translateX(-50%); background: radial-gradient(ellipse 50% 100% at 50% 0, rgba(255,107,43,.22), transparent 75%); }
.pass-sep span { position: relative; z-index: 1; margin-top: 0; width: 3rem; height: 3rem; border-radius: 50%; display: grid; place-items: center; background: var(--bg); border: 1px solid rgba(255,107,43,.6); box-shadow: 0 0 1.75rem rgba(255,107,43,.35); }
.pass-sep img { width: 1.5rem; height: 1.5rem; }

/* rodapé: unidades alinhadas pela base (endereço sempre com 2 linhas no desktop) + Instagram da unidade */
.ft-ig { display: inline-flex; align-items: center; gap: .4375rem; align-self: flex-start; color: #bdbdbd; text-decoration: none; font-size: .88rem; }
.ft-ig .ic { width: 1rem; height: 1rem; color: var(--orange); }
.ft-ig:hover { color: var(--orange); }
@media (min-width: 961px) { .ft-unit address { min-height: 2.9em; } }

/* ── Mapa sob demanda (leve para rolar): cartão escuro com botão; o iframe só entra ao clicar ── */
.map { position: relative; border-radius: var(--r); overflow: hidden; }
.map-go { display: grid; place-content: center; justify-items: center; gap: .5rem; width: 100%; height: 100%; min-height: 23.75rem; padding: 1.5rem; text-align: center; cursor: pointer; color: #fff; border: 1px solid var(--line); border-radius: var(--r);
  background: radial-gradient(ellipse at 50% 40%, rgba(255,107,43,.16), transparent 62%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 2.5rem), repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 2.5rem), #0e0e0e; transition: border-color .25s, background-color .25s; }
.map-go:hover, .map-go:focus-visible { border-color: var(--orange); }
.map-go svg { width: 2.6rem; height: 2.6rem; color: var(--orange); }
.map-go b { font: 800 1.15rem var(--font-h); }
.map-go small { color: var(--muted); font: 400 .9rem var(--font-b, inherit); max-width: 22rem; }
.map.on { background: none; }
.map noscript iframe { display: block; }

/* ── Convite da aula experimental logo abaixo dos planos (página da unidade) ── */
.plan-cta { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 1.5rem; padding: 1.25rem 1.6rem; border: 1px solid var(--nav-line); border-left: .25rem solid var(--orange); border-radius: var(--r);
  background: linear-gradient(100deg, rgba(255,107,43,.12), rgba(255,107,43,.02) 60%), #121212; }
.plan-cta b { display: block; font: 800 1.15rem var(--font-h); }
.plan-cta span { display: block; margin-top: .2rem; color: var(--muted); }
.plan-cta .btn { flex: none; }
@media (max-width: 720px) { .plan-cta { flex-direction: column; align-items: stretch; text-align: left; gap: 1rem; padding: 1.1rem 1.15rem; } .plan-cta .btn { justify-content: center; } }

/* ── Diferenciais da unidade: "ficha técnica" (foto real + lista numerada, sem ícones) ── */
.est { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: clamp(1.75rem, 4vw, 3.5rem); align-items: stretch; margin-top: 1.75rem; }
.est-ph { position: relative; margin: 0; min-height: 30rem; border-radius: var(--r); overflow: hidden; background: #111; isolation: isolate; }
.est-ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.85) contrast(1.06); transform: scale(1.04); transition: transform 1.2s cubic-bezier(.22,.8,.26,1); }
.est.in .est-ph img { transform: none; }
.est-ph::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(8,8,8,.1) 25%, rgba(8,8,8,.9) 100%), linear-gradient(90deg, rgba(255,107,43,.14), transparent 55%); }
.est-ph::before { content: ""; position: absolute; z-index: 2; top: 1rem; left: 1rem; width: 2rem; height: 2rem; border-top: 2px solid var(--orange); border-left: 2px solid var(--orange); }
.est-ph figcaption { position: absolute; z-index: 2; left: 1.5rem; right: 1.5rem; bottom: 1.4rem; display: flex; align-items: flex-end; gap: 1rem; }
.est-ph figcaption::after { content: ""; position: absolute; right: -.5rem; bottom: -.4rem; width: 2rem; height: 2rem; border-right: 2px solid var(--orange); border-bottom: 2px solid var(--orange); }
.est-ph b { font: 800 clamp(5.5rem, 9vw, 9rem)/.78 var(--font-h); color: transparent; -webkit-text-stroke: 2px var(--orange); letter-spacing: -.04em; }
.est-ph span { padding-bottom: .35rem; font: 700 .82rem/1.5 var(--font-h); letter-spacing: .16em; text-transform: uppercase; color: #fff; }
.est-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; justify-content: center; counter-reset: est; }
.est-row { position: relative; display: grid; grid-template-columns: 4.4rem minmax(0, 1fr) 1.25rem; align-items: center; gap: .5rem 1rem; padding: 1.05rem .5rem; border-top: 1px solid var(--line); transition: padding .3s ease, background-color .3s ease; }
.est-row:last-child { border-bottom: 1px solid var(--line); }
.est-row::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: .1875rem; background: var(--orange); transform: scaleY(0); transform-origin: center; transition: transform .3s ease; }
.est-row .n { font: 800 2rem/1 var(--font-h); font-variant-numeric: tabular-nums; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.34); transition: color .3s ease, -webkit-text-stroke-color .3s ease; }
.est-row h3 { margin: 0; font: 700 1.18rem/1.25 var(--font-h); letter-spacing: -.005em; }
.est-row i { width: .8rem; height: .8rem; border-top: 2px solid var(--orange); border-right: 2px solid var(--orange); transform: translateX(-.5rem) rotate(45deg); opacity: 0; transition: transform .3s ease, opacity .3s ease; }
.est-row:hover { padding-left: 1.1rem; background: linear-gradient(90deg, rgba(255,107,43,.09), transparent 70%); }
.est-row:hover::before { transform: scaleY(1); }
.est-row:hover .n { color: var(--orange); -webkit-text-stroke-color: var(--orange); }
.est-row:hover i { opacity: 1; transform: translateX(0) rotate(45deg); }
.js .est .est-row { opacity: 0; transform: translateY(.9rem); }
.js .est.in .est-row { opacity: 1; transform: none; transition: opacity .55s ease, transform .55s cubic-bezier(.22,.8,.26,1), padding .3s ease, background-color .3s ease; }
.js .est.in .est-row:nth-child(1) { transition-delay: .05s, .05s, 0s, 0s; } .js .est.in .est-row:nth-child(2) { transition-delay: .1s, .1s, 0s, 0s; }
.js .est.in .est-row:nth-child(3) { transition-delay: .15s, .15s, 0s, 0s; } .js .est.in .est-row:nth-child(4) { transition-delay: .2s, .2s, 0s, 0s; }
.js .est.in .est-row:nth-child(5) { transition-delay: .25s, .25s, 0s, 0s; } .js .est.in .est-row:nth-child(6) { transition-delay: .3s, .3s, 0s, 0s; }
.js .est.in .est-row:nth-child(7) { transition-delay: .35s, .35s, 0s, 0s; } .js .est.in .est-row:nth-child(8) { transition-delay: .4s, .4s, 0s, 0s; }
.js .est.in .est-row:nth-child(9) { transition-delay: .45s, .45s, 0s, 0s; } .js .est.in .est-row:nth-child(n+10) { transition-delay: .5s, .5s, 0s, 0s; }
@media (max-width: 960px) {
  .est { grid-template-columns: 1fr; gap: 1.5rem; }
  .est-ph { min-height: 0; aspect-ratio: 16 / 10; }
  .est-ph b { font-size: clamp(4.5rem, 20vw, 7rem); }
  .est-row { grid-template-columns: 3.1rem minmax(0, 1fr) 1rem; padding: .9rem .25rem; }
  .est-row .n { font-size: 1.5rem; }
  .est-row h3 { font-size: 1.05rem; }
}
@media (prefers-reduced-motion: reduce) { .js .est .est-row { opacity: 1; transform: none; } .est-ph img { transform: none; transition: none; } }

/* Diferenciais: no desktop a lista vira 2 colunas ao lado da foto, para a seção inteira caber na tela do notebook */
@media (min-width: 961px) {
  .est { grid-template-columns: minmax(0, .58fr) minmax(0, 1.42fr); gap: clamp(1.5rem, 3vw, 2.75rem); }
  .est-ph { min-height: 0; }
  .est-ph b { font-size: clamp(4.5rem, 7vw, 7.5rem); }
  .est-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(var(--rows), minmax(4.2rem, 1fr)); grid-auto-flow: column; column-gap: clamp(1.25rem, 2.4vw, 2.25rem); }
  .est-row { grid-template-columns: 2.9rem minmax(0, 1fr) .8rem; padding: .7rem .4rem; gap: .5rem .75rem; border-bottom: 0; }
  .est-row:last-child { border-bottom: 0; }
  .est-row.end { border-bottom: 1px solid var(--line); }
  .est-row .n { font-size: 1.5rem; }
  .est-row h3 { font-size: 1.02rem; }
  .est-row:hover { padding-left: .8rem; }
}

/* Diferenciais: galeria que passa sozinha (fotos reais), legenda e barras de progresso; as linhas ligadas à foto atual acendem */
.est-ph img.est-s { opacity: 0; transform: scale(1.04); transition: opacity .9s ease, transform 6s ease-out; }
.est-ph img.est-s.on { opacity: 1; transform: scale(1.1); z-index: 0; }
.est.in .est-ph img.est-s { transform: scale(1.04); }
.est.in .est-ph img.est-s.on { transform: scale(1.1); }
.est-slides { position: absolute; inset: 0; }
.est-ph figcaption { flex-direction: column; align-items: stretch; gap: .8rem; }
.est-ph figcaption::after { display: none; }
.est-leg { display: block; padding: 0; }
.est-leg small { display: block; font: 700 .72rem var(--font-h); letter-spacing: .18em; text-transform: uppercase; color: var(--orange); }
.est-leg b { display: block; margin-top: .25rem; font: 800 clamp(1.15rem, 2vw, 1.6rem)/1.15 var(--font-h); color: #fff; -webkit-text-stroke: 0; letter-spacing: -.01em; animation: estLeg .5s ease both; }
@keyframes estLeg { from { opacity: 0; transform: translateY(.45rem); } to { opacity: 1; transform: none; } }
.est-ticks { display: flex; gap: .35rem; }
.est-t { position: relative; flex: 1 1 0; height: 1.25rem; padding: 0; border: 0; background: none; cursor: pointer; }
.est-t::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: .1875rem; margin-top: -.09rem; border-radius: 2px; background: rgba(255,255,255,.28); }
.est-t i { position: absolute; left: 0; top: 50%; height: .1875rem; margin-top: -.09rem; width: 0; border-radius: 2px; background: var(--orange); }
.est-t.on i { width: 100%; animation: estTick 4.8s linear both; }
.est.paused .est-t.on i { animation-play-state: paused; }
@keyframes estTick { from { width: 0; } to { width: 100%; } }
.est-row.lit .n { color: var(--orange); -webkit-text-stroke-color: var(--orange); }
.est-row.lit::before { transform: scaleY(1); }
.est-row.lit { background: linear-gradient(90deg, rgba(255,107,43,.07), transparent 70%); }
@media (min-width: 961px) { .est { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } }
@media (prefers-reduced-motion: reduce) { .est-ph img.est-s, .est.in .est-ph img.est-s.on { transform: none; transition: opacity .2s; } .est-t.on i { animation: none; width: 100%; } .est-leg b { animation: none; } }
.est-ph .est-leg, .est-ph .est-ticks { padding: 0; font: inherit; letter-spacing: 0; text-transform: none; color: inherit; }

.est-ph[data-n="1"] .est-ticks { display: none; }

/* selo "imagem ilustrativa" nas fotos provisórias */
.est-ilu { position: absolute; z-index: 3; top: .9rem; right: .9rem; padding: .3rem .65rem; border-radius: 62.4375rem; background: rgba(8,8,8,.72); border: 1px solid rgba(255,255,255,.22); color: #e9e9e9; font: 700 .68rem var(--font-h); letter-spacing: .1em; text-transform: uppercase; opacity: 0; transform: translateY(-.3rem); transition: opacity .35s, transform .35s; pointer-events: none; }
.est-ph.ilu .est-ilu { opacity: 1; transform: none; }

/* ── Planos: comparativo profissional (tabela alinhada no desktop, cartões com as mesmas linhas no celular) ── */
.pm { display: grid; grid-template-columns: minmax(10rem, 13rem) repeat(var(--n), minmax(0, 1fr)); column-gap: .75rem; margin-top: 1.75rem; }
.pm-r { display: contents; }
.pm-corner { display: flex; flex-direction: column; justify-content: flex-end; padding: 0 .5rem 1.5rem 0; }
.pm-corner span { font: 800 1.35rem/1.15 var(--font-h); }
.pm-corner small { margin-top: .4rem; color: var(--muted); font-size: .9rem; line-height: 1.4; }
.pm-h { position: relative; padding: 1.6rem 1.1rem 1.25rem; text-align: center; background: linear-gradient(170deg, #1d1d1d, #131313); border: 1px solid var(--line); border-bottom: 0; border-radius: var(--r) var(--r) 0 0; display: flex; flex-direction: column; align-items: center; }
.pm-h h3 { margin: 0; font-size: 1.12rem; }
.pm-for { margin: .35rem 0 0; min-height: 2.6em; color: var(--muted); font-size: .85rem; line-height: 1.3; }
.pm-h .price { margin: .55rem 0 1rem; font-size: 2.35rem; }
.pm-h .btn { margin-top: auto; width: 100%; justify-content: center; }
.pm-tag { position: absolute; top: -.8125rem; left: 50%; transform: translateX(-50%); white-space: nowrap; padding: .4375rem .8rem; border-radius: 62.4375rem; background: var(--orange); color: var(--ink); font: 700 .7rem/1 var(--font-h); letter-spacing: .06em; text-transform: uppercase; }
.pm-l { display: flex; align-items: center; padding: .72rem .5rem .72rem 0; border-top: 1px solid var(--line); color: #d9d9d9; font: 700 .92rem var(--font-b); }
.pm-c { display: flex; align-items: center; justify-content: center; padding: .72rem .9rem; text-align: center; background: #121212; border-left: 1px solid var(--line); border-right: 1px solid var(--line); border-top: 1px dashed rgba(255,255,255,.1); font-size: .95rem; }
.pm-c b { font-weight: 700; color: #fff; }
.pm-y { display: inline-flex; align-items: center; gap: .5rem; color: #fff; font-weight: 700; }
.pm-y .ic { width: 1.15rem; height: 1.15rem; color: var(--orange); }
.pm-n { color: rgba(255,255,255,.32); font-size: 1.1rem; }
.pm-r.grp .pm-l, .pm-r.grp .pm-c { border-top: 1px solid var(--line); }
.pm-c.end { border-bottom: 1px solid var(--line); border-radius: 0 0 var(--r) var(--r); }
.pm-h.hl { border-color: var(--orange); background: linear-gradient(170deg, rgba(255,107,43,.2), #151515 70%); box-shadow: 0 -.5rem 2.5rem rgba(255,107,43,.12); }
.pm-c.hl { border-left-color: var(--orange); border-right-color: var(--orange); background: linear-gradient(180deg, rgba(255,107,43,.09), rgba(255,107,43,.045)); }
.pm-c.hl.end { border-bottom-color: var(--orange); }
.pm-cards { display: none; }
.pm-note { margin: 1.1rem 0 0; color: var(--muted); font-size: .85rem; max-width: 52rem; }
@media (max-width: 1080px) { .pm { grid-template-columns: minmax(8rem, 10rem) repeat(var(--n), minmax(0, 1fr)); column-gap: .5rem; } .pm-h { padding-inline: .7rem; } .pm-c { padding-inline: .5rem; font-size: .88rem; } .pm-l { font-size: .85rem; } .pm-h .price { font-size: 2rem; } }
@media (max-width: 960px) {
  .pm { display: none; }
  .pm-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1.75rem; }
  .pm-card { position: relative; background: linear-gradient(170deg, #1b1b1b, #121212); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
  .pm-card.hl { border-color: var(--orange); box-shadow: 0 0 0 1px var(--orange), 0 1.25rem 3rem rgba(255,107,43,.14); }
  .pm-ch { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: 1.6rem 1.25rem 1.25rem; text-align: left; }
  .pm-card.hl .pm-ch { background: linear-gradient(170deg, rgba(255,107,43,.18), transparent 75%); }
  .pm-ch .pm-tag { left: 1.25rem; transform: none; }
  .pm-ch .pm-for { min-height: 0; }
  .pm-ch .btn { width: 100%; }
  .pm-card dl { margin: 0; padding: 0 1.25rem .5rem; }
  .pm-card dl > div { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 0; border-top: 1px dashed rgba(255,255,255,.12); }
  .pm-card dt { color: #cfcfcf; font-size: .9rem; }
  .pm-card dd { margin: 0; text-align: right; font-size: .92rem; }
}
@media (max-width: 680px) { .pm-cards { grid-template-columns: minmax(0, 1fr); } }

/* Planos: faixa "Em todos os planos", cabeçalhos alinhados e tabela mais compacta */
.pm-all { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .5rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.pm-all li { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .9rem; border: 1px solid var(--line); border-radius: 62.4375rem; background: rgba(255,255,255,.03); font: 700 .88rem var(--font-b); }
.pm-all li .ic { width: 1.05rem; height: 1.05rem; color: var(--orange); }
.pm-all .pm-all-t { padding-left: 0; border: 0; background: none; color: var(--muted); font: 800 .78rem var(--font-h); letter-spacing: .12em; text-transform: uppercase; }
.pm { margin-top: 1.25rem; }
.pm-h h3 { display: flex; align-items: center; justify-content: center; min-height: 2.5em; }
.pm-h .btn, .pm-ch .btn { white-space: nowrap; padding-inline: .8rem; }
.pm-l, .pm-c { padding-block: .7rem; }
.pm-y .ic { width: 1.3rem; height: 1.3rem; stroke-width: 2.6; }
@media (max-width: 960px) { .pm-all { margin-top: 1.25rem; } .pm-cards { margin-top: 1.25rem; } .pm-ch h3 { display: block; min-height: 0; } }

/* Planos: tabela compacta para caber inteira na tela do notebook (a faixa "em todos os planos" ocupa o canto vazio da tabela) */
.pm-all { display: none; }
@media (max-width: 960px) { .pm-all { display: flex; } }
.pm { margin-top: 1.4rem; }
.pm-corner { justify-content: flex-end; padding: 0 .75rem 1.1rem 0; }
.pm-corner small { margin: 0 0 .6rem; color: var(--muted); font: 800 .72rem var(--font-h); letter-spacing: .12em; text-transform: uppercase; }
.pm-corner ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.pm-corner li { display: flex; align-items: center; gap: .5rem; font: 700 .9rem/1.25 var(--font-b); }
.pm-corner li .ic { flex: none; width: 1.05rem; height: 1.05rem; color: var(--orange); }
.pm-h { padding: 1.35rem 1rem 1.05rem; }
.pm-for { min-height: 2.5em; margin-top: .3rem; }
.pm-h .price { margin: .4rem 0 .75rem; font-size: 2.2rem; }
.pm-l, .pm-c { padding-block: .6rem; }
.pm { margin-top: 1rem; }
.pm-h { padding: 1.15rem 1rem .9rem; }
.pm-for { min-height: 2.4em; }
.pm-h .price { margin-bottom: .6rem; font-size: 2.1rem; }
.pm-l, .pm-c { padding-block: .52rem; }
@media (min-width: 961px) and (max-height: 780px) { .pm-for { display: none; } .pm-h h3 { min-height: 0; } .pm-h { padding-top: 1.25rem; } .pm-h h3 { margin-bottom: .1rem; } }
@media (min-width: 961px) and (max-height: 780px) { .pm-h { padding-inline: .5rem; } .pm-h h3 { font-size: .94rem; white-space: nowrap; } }

/* ── App Konnen: botões das lojas, seção da home, rodapé, menu do celular e linha nas unidades ── */
.app-btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.app-btn { display: inline-flex; align-items: center; gap: .75rem; padding: .7rem 1.3rem .7rem 1.1rem; border: 1px solid #3b3b3b; border-radius: .7rem; background: #000; color: #fff; text-decoration: none; transition: border-color .25s, transform .25s, background .25s; }
.app-btn:hover { border-color: var(--orange); background: #111; transform: translateY(-.125rem); }
.app-btn .app-ic { flex: none; width: 1.75rem; height: 1.75rem; }
.app-btn span { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.app-btn small { font: 500 .7rem var(--font-b); color: #b9b9b9; letter-spacing: .02em; }
.app-btn b { font: 700 1.1rem var(--font-h); letter-spacing: -.01em; white-space: nowrap; }
.app-btns.sm { gap: .5rem; }
.app-btns.sm .app-btn { gap: .5rem; padding: .45rem .8rem .45rem .7rem; border-radius: .55rem; }
.app-btns.sm .app-ic { width: 1.25rem; height: 1.25rem; }
.app-btns.sm .app-btn small { font-size: .6rem; }
.app-btns.sm .app-btn b { font-size: .86rem; }
/* no celular, só a loja do aparelho (o JS define html[data-os]) */
html[data-os="ios"] .app-btns.smart [data-store="android"], html[data-os="android"] .app-btns.smart [data-store="ios"] { display: none; }

.app-sec { position: relative; overflow: hidden; background: radial-gradient(40rem 28rem at 78% 55%, rgba(255,107,43,.2), transparent 70%), var(--bg); }
.app-in { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.app-copy h2 { margin-bottom: .75rem; }
.app-copy .lead { max-width: 34rem; }
.app-feats { list-style: none; display: grid; gap: 1rem; margin: 1.75rem 0 2rem; padding: 0; }
.app-feats li { display: flex; align-items: flex-start; gap: .9rem; }
.app-feats .pi { flex: none; width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,107,43,.45); background: rgba(255,107,43,.1); color: var(--orange); }
.app-feats .pi .ic { width: 1.2rem; height: 1.2rem; }
.app-feats strong { display: block; font: 700 1.02rem var(--font-h); color: #fff; }
.app-feats span { font-size: .92rem; color: #b9b9b9; }
.app-note { margin: 1rem 0 0; font-size: .82rem; color: #8d8d8d; }

.app-vis { position: relative; align-self: center; aspect-ratio: 1100 / 978; }   /* as duas imagens têm o mesmo quadro e se sobrepõem */
.app-glow { position: absolute; inset: 6% 6% 4%; border-radius: 50%; background: radial-gradient(closest-side, rgba(255,107,43,.32), transparent); filter: blur(1.5rem); }
.app-ph { position: absolute; inset: 0; width: 100%; height: 100%; filter: drop-shadow(0 1.4rem 1.6rem rgba(0,0,0,.5)); user-select: none; }
.ph-a { z-index: 2; }
.ph-b { z-index: 1; }
.app-ilu { position: absolute; right: 0; bottom: .25rem; margin: 0; padding: .2rem .55rem; border-radius: .3rem; background: rgba(0,0,0,.55); color: #bdbdbd; font: 500 .68rem var(--font-b); z-index: 2; }
/* entrada: os celulares deslizam da direita quando a seção chega na tela */
.js .app-ph { opacity: 0; transform: translateX(55vw) rotate(-12deg); transition: transform 1.5s cubic-bezier(.2,.8,.25,1), opacity 1.1s ease-out; }
.js .app-sec.in .app-ph { opacity: 1; transform: none; }
.js .app-sec.in .ph-b { transition-delay: .18s; }
.js .app-glow { opacity: 0; transition: opacity 1.6s ease-out .4s; }
.js .app-sec.in .app-glow { opacity: 1; }
/* movimento reduzido (opção do Windows/macOS): entrada mais calma, sem giro e com deslocamento curto, mas ainda visível */
@media (prefers-reduced-motion: reduce) { .js .app-ph { transform: translateX(10vw); transition-duration: 1s, .8s; } .js .app-sec.in .app-ph { transform: none; } }

@media (max-width: 860px) {
  .app-in { grid-template-columns: minmax(0, 1fr); }
  .app-vis { width: min(100%, 34rem); margin-inline: auto; }
  .app-btns:not(.sm) .app-btn { flex: 1 1 14rem; justify-content: center; }
}
html[data-os] .app-sec .app-btns.smart .app-btn { flex: 1 1 100%; justify-content: center; }

.ft-app { margin-top: 1.5rem; }
.ft-app > span { display: block; margin-bottom: .6rem; color: #a3a3a3; font: 700 .72rem var(--font-h); letter-spacing: .12em; text-transform: uppercase; }
.mp-app { margin-top: 1rem; }
.mp-app > span { display: block; margin-bottom: .5rem; color: #a3a3a3; font: 700 .72rem var(--font-h); letter-spacing: .12em; text-transform: uppercase; }
.mp-app .app-btns { flex-wrap: nowrap; }
.mp-app .app-btn { flex: 1 1 0; justify-content: center; min-width: 0; }
.est-app { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .6rem; margin-top: .3rem; font: 500 .84rem var(--font-b); color: #a3a3a3; }
.est-app a { color: var(--orange); font-weight: 700; text-decoration: none; padding: .05rem .5rem; border: 1px solid rgba(255,107,43,.45); border-radius: 62rem; transition: background .2s, color .2s; }
.est-app a:hover { background: var(--orange); color: var(--ink); }
html[data-os="ios"] .est-app [data-store="android"], html[data-os="android"] .est-app [data-store="ios"] { display: none; }
