/*
 * AE Brothers — Design System "Claro / Réplica Fiel".
 * Direção de arte extraída do site no ar: fundo claro, títulos em ouro sobre mídia,
 * verde-limão (#CAF700) como cor única de ação. Alterna seções claras e escuras.
 *
 * Tokens amostrados do print (VERIFICADO): verde #CAF700 · ouro #F7C045 · escuro #1E1F1E.
 *
 * Projeto Gerado pelo Prompt Mestre do Desenvolvedor e Vibe Coder Gustavo da Rocha — www.fcazdigitall.com.br
 */

/* ============================================================ FONTES (auto-hospedadas) */
@font-face{
  font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/poppins-600.woff2") format("woff2");
}
@font-face{
  font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;
  src:url("../fonts/poppins-700.woff2") format("woff2");
}
@font-face{
  font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/inter-400.woff2") format("woff2");
}
@font-face{
  font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/inter-600.woff2") format("woff2");
}
@font-face{
  font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;
  src:url("../fonts/inter-700.woff2") format("woff2");
}

/* ============================================================ TOKENS (CLARO) */
:root{
  --bg:#ffffff;             /* fundo padrão */
  --surface:#f1f1f1;        /* seção clara alternada */
  --surface-2:#e9e9e9;      /* cartão alternativo */
  --card:#ffffff;           /* cartão sobre claro */
  --dark:#1e1f1e;           /* seções escuras (hero, agende, passos, footer) */
  --dark-2:#26271f;         /* superfície dentro do escuro */
  --line:#e4e4e4;           /* borda no claro */
  --line-soft:#efefef;
  --ink:#191919;            /* texto sobre claro */
  --ink-dim:#565656;        /* texto secundário sobre claro */
  --ink-faint:#6f6f6f;      /* cinza fraco — AA em texto pequeno sobre branco (~5:1; era #8a8a8a=3.45:1, reprovava) */
  --ink-inv:#ffffff;        /* texto sobre escuro */

  --gold:#f7c045;           /* ouro (uso sobre escuro / display grande) */
  --gold-deep:#9a6f10;      /* ouro escurecido p/ texto sobre claro (contraste AA) */
  --green:#caf700;          /* AÇÃO — cor única de CTA */
  --green-ink:#16210a;      /* texto escuro sobre o verde */
  --green-600:#b3dd00;      /* hover do verde */
  --wa:#25d366;             /* WhatsApp */
  --wa-ink:#04240f;

  --display:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,"SF Mono",Consolas,monospace;

  --wrap:1200px;
  --gap:clamp(1rem,3vw,2rem);
  --radius:14px;
  --radius-sm:10px;
  --shadow:0 20px 50px -30px rgba(0,0,0,.35);
  --shadow-card:0 12px 30px -18px rgba(0,0,0,.25);
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* Escopo ESCURO: inverte as variáveis localmente — todos os componentes filhos se adaptam. */
.on-dark{
  --bg:var(--dark);
  --surface:var(--dark-2);
  --surface-2:#2f3026;
  --card:#25261f;
  --line:rgba(255,255,255,.14);
  --line-soft:rgba(255,255,255,.08);
  --ink:#ffffff;
  --ink-dim:#c9c9c4;
  --ink-faint:#9a9a92;
  --gold-deep:var(--gold);
  background:var(--dark);
  color:var(--ink);
}

/* ============================================================ RESET / BASE */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video,iframe{max-width:100%;height:auto;display:block}
a{color:var(--gold-deep);text-decoration:none;transition:color .18s var(--ease)}
a:hover{color:var(--green-600)}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.12;letter-spacing:-.01em;text-wrap:balance;margin:0;color:var(--ink)}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
button{font-family:inherit}
:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:4px}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.eyebrow{display:inline-block;font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link{position:absolute;left:-999px;top:0;background:var(--green);color:var(--green-ink);padding:.6rem 1rem;z-index:1000;border-radius:0 0 8px 0;font-weight:700}
.skip-link:focus{left:0}

/* ============================================================ BOTÕES */
.btn{
  --btn-bg:var(--green);--btn-fg:var(--green-ink);
  display:inline-flex;align-items:center;gap:.55rem;justify-content:center;
  font-family:var(--body);font-weight:700;font-size:15px;line-height:1;
  padding:.95rem 1.5rem;border-radius:999px;border:1px solid transparent;
  background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;
  transition:transform .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease);
}
.btn svg{flex:none}
/* Tamanho "Menor" (opcional, por banner — painel Banners): reduz só o botão, não o
   título/subtítulo (isso é o "Tamanho do texto", campo separado). */
.btn--sm{padding:.58rem 1.05rem;font-size:12px;gap:.35rem}
/* Verde = ação principal (assinatura do site) */
.btn--green{--btn-bg:var(--green);--btn-fg:var(--green-ink);box-shadow:0 12px 26px -14px rgba(202,247,0,.9)}
.btn--green:hover{--btn-bg:var(--green-600);transform:translateY(-2px);color:var(--green-ink)}
/* WhatsApp (texto escuro p/ contraste AA sobre o verde) */
.btn--wa{--btn-bg:var(--wa);--btn-fg:var(--wa-ink);box-shadow:0 14px 34px -14px rgba(37,211,102,.6)}
.btn--wa:hover{transform:translateY(-2px);box-shadow:0 20px 40px -14px rgba(37,211,102,.7);color:var(--wa-ink)}
/* Primário (herda o verde da marca) */
.btn--primary{--btn-bg:var(--green);--btn-fg:var(--green-ink);box-shadow:0 12px 26px -14px rgba(202,247,0,.9)}
.btn--primary:hover{--btn-bg:var(--green-600);transform:translateY(-2px);color:var(--green-ink)}
/* Botão do menu (cabeçalho) — só esta instância vira verde-WhatsApp + texto branco, a pedido
   do usuário (referência: "botão do cabeçalho ao lado do menu.png"). Os demais CTAs "verde"
   do site (hero, Sobre, Kids etc.) continuam na cor de ação padrão — não tocar em `.btn--green`
   fora deste escopo. */
.site-header__cta .btn--green{--btn-bg:var(--wa);--btn-fg:#fff;box-shadow:0 12px 26px -14px rgba(37,211,102,.7)}
.site-header__cta .btn--green:hover{--btn-bg:#1fae60;transform:translateY(-2px);color:#fff}
/* Layout de 2 linhas (rótulo + telefone) — só quando `aeb_whatsapp_button(['phone'=>true])` é usado. */
.btn__stack{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;gap:.05rem;text-align:left}
.btn__stack-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;opacity:.85}
.btn__stack-phone{font-size:15px;font-weight:800;white-space:nowrap}
/* Claro (botão cinza dos banners) */
.btn--light{--btn-bg:#e9e9e9;--btn-fg:#1a1a1a;border-color:#d8d8d8}
.btn--light:hover{--btn-bg:#fff;transform:translateY(-2px);color:#1a1a1a}
/* Contorno */
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--green);color:var(--ink);background:rgba(202,247,0,.08)}
.btn--block{width:100%}

/* ============================================================ TOPBAR (barra fina) */
.topbar{background:var(--dark);color:var(--ink-inv);font-size:13px}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:38px;flex-wrap:wrap}
.topbar__item{display:inline-flex;align-items:center;gap:.45rem;color:#e7e7e2}
.topbar__item svg{color:var(--gold)}
.topbar a.topbar__item:hover{color:var(--green)}

/* ============================================================ HEADER / NAV (claro) */
/* Opaco o bastante + blur reforçado (com prefixo -webkit- pro Safari/iOS) pra nunca deixar
   texto de seção escura "vazar" por trás do header ao rolar heróis compridos no mobile
   (achado real: fundo 92% + blur sem prefixo deixava o texto do hero legível por trás). */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:box-shadow .2s var(--ease)}
.site-header.is-scrolled{box-shadow:0 10px 30px -22px rgba(0,0,0,.4)}
.site-header__inner{display:flex;align-items:center;gap:1.5rem;min-height:76px;padding-block:.4rem}
/* Recuo lateral do cabeçalho/topbar — igual dos dois lados, proporcional à largura da tela
   (não ao `--wrap` de 1200px do resto do site, que nas telas largas sobra muito espaço morto
   nas laterais). Medida tirada por pixel do print cabecalho.png (referência só de espaçamento,
   sem copiar texto/logo/marca dele): recuo real de ~9,3% da largura da janela — reproduzido
   aqui com `9vw`, com piso pro mobile e teto pra não exagerar em monitor ultrawide. */
.topbar__inner,.site-header__inner{max-width:none;padding-inline:clamp(1rem,9vw,180px)}
.site-header__brand{margin-right:auto;display:flex;align-items:center}
.brandmark{display:inline-flex;flex-direction:column;line-height:1}
.brandmark--logo{flex-direction:row;align-items:center;gap:.65rem}
.brandmark__logo{height:96px;width:96px;flex:none;display:block;object-fit:contain;margin-left:-8px;order:-1}
/* order:-1 garante o logo SEMPRE à esquerda do texto, mesmo se uma extensão de
   análise (ex.: "SEO Meta in 1 Click") reordenar o <img> no DOM em runtime. */
.brandmark__text{display:flex;flex-direction:column;line-height:1}
.brandmark__name{font-family:var(--display);font-weight:700;font-size:24px;letter-spacing:.02em;color:var(--ink)}
.brandmark__tag{font-family:var(--body);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-top:3px}
@media (max-width:520px){.brandmark__logo{height:68px;width:68px}.brandmark__name{font-size:20px}}
.custom-logo-link img{max-height:54px;width:auto}

.site-nav{display:flex;align-items:center}
.site-nav__list{display:flex;gap:.2rem;list-style:none;align-items:center}
.site-nav__list a{display:inline-block;color:var(--ink-dim);font-size:14px;font-weight:600;letter-spacing:.01em;padding:.55rem .8rem;border-radius:8px}
.site-nav__list a:hover,.site-nav__list .current-menu-item>a{color:var(--ink);background:var(--surface)}
.site-nav__toggle{display:none;background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:.45rem;cursor:pointer}
.site-header__cta .btn{padding:.7rem 1.15rem;font-size:13px}

/* Submenu (dropdown) */
.site-nav__list .menu-item-has-children{position:relative}
/* Ponte invisível: preenche o vão entre o item e o dropdown p/ o hover não cair */
.site-nav__list .menu-item-has-children::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px;display:none}
.site-nav__list .menu-item-has-children:hover::after,
.site-nav__list .menu-item-has-children:focus-within::after{display:block}
.site-nav__list .sub-menu{list-style:none;margin:0;position:absolute;top:calc(100% + 8px);left:0;min-width:210px;
  background:var(--bg);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:.35rem;
  display:flex;flex-direction:column;gap:.1rem;opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .16s var(--ease),transform .16s var(--ease);z-index:60}
.site-nav__list .menu-item-has-children:hover>.sub-menu,
.site-nav__list .menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.site-nav__list .sub-menu a{white-space:nowrap;width:100%}

@media (max-width:980px){
  .site-nav__toggle{display:inline-flex}
  .site-nav__list{
    position:fixed;inset:114px 0 auto 0;flex-direction:column;gap:0;align-items:stretch;
    background:var(--bg);border-bottom:1px solid var(--line);padding:.5rem 1rem 1.2rem;
    transform:translateY(-140%);transition:transform .3s var(--ease);max-height:calc(100vh - 114px);overflow:auto;box-shadow:var(--shadow);
  }
  .site-nav__list a{padding:.95rem .6rem;border-bottom:1px solid var(--line-soft);border-radius:0}
  .site-nav[data-open="true"] .site-nav__list{transform:translateY(0)}
  /* No mobile o submenu vira lista aninhada sempre visível (sem hover) */
  .site-nav__list .sub-menu{position:static;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none;
    background:transparent;padding:0 0 0 1rem;min-width:0}
  .site-nav__list .sub-menu a{white-space:normal}
}
@media (max-width:520px){.site-header__cta{display:none}}

/* ============================================================ HERO CARROSSEL (slider de imagens) */
.hero-slider{position:relative;overflow:hidden;background:var(--dark)}
.hero-slider__viewport{overflow:hidden}
.hero-slider__track{display:flex;transition:transform .9s cubic-bezier(.45,0,.15,1);will-change:transform}
.slide--clone{flex:0 0 100%;min-width:100%}
@media (prefers-reduced-motion:reduce){.hero-slider__track{transition:none}}
.slide{position:relative;flex:0 0 100%;min-width:100%}
.slide__link{display:block}
.slide picture,.slide img{display:block;width:100%;height:auto}
.slide img{aspect-ratio:1920/720;object-fit:cover}
@media (max-width:768px){.slide img{aspect-ratio:4/5}}
/* Texto sobreposto do banner (editável) — alinhado ao grid do site */
.slide--has-caption::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(10,10,12,.82) 0%,rgba(10,10,12,.55) 40%,rgba(10,10,12,.15) 70%,transparent 100%)}
.hero-slide__overlay{position:absolute;inset:0;z-index:2;display:flex;align-items:center}
.hero-slide__overlay .wrap{width:100%}
.hero-slide__caption{--hero-text-scale:1;max-width:600px}
.hero-slide__caption.txt-sm{--hero-text-scale:.85}
.hero-slide__caption.txt-lg{--hero-text-scale:1.2}
.hero-slide__caption.txt-xl{--hero-text-scale:1.4}
/* Rótulo opcional acima do título — mesmo estilo (tracinho dourado) das páginas de
   modalidade (.adulto-hero etc.), a pedido do usuário pra igualar o 1º slide da Home. */
.hero-slide__eyebrow.eyebrow--dash::before{background:var(--gold)}
.hero-slide__eyebrow{margin:0 0 .7rem}
.hero-slide__title{font-family:var(--display);font-weight:800;line-height:1.05;color:var(--gold);
  font-size:calc(clamp(1.8rem,4.5vw,3.2rem) * var(--hero-text-scale));margin:0 0 1rem}
.hero-slide__subtitle{color:#fff;font-size:calc(clamp(1rem,1.8vw,1.3rem) * var(--hero-text-scale));line-height:1.35;margin:0 0 1.6rem;max-width:46ch}
.hero-slide__caption .btn{align-self:flex-start}
/* Checklist opcional abaixo do botão — mesmo estilo (check verde-limão + divisória) das
   páginas de modalidade; cores fixas (não var(--ink-dim)) pra manter contraste sobre
   qualquer foto de fundo. */
.hero-slide__points{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:1.4rem 0 0;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.25)}
.hero-slide__points li{display:flex;align-items:center;gap:.45rem;color:#f0f0ec;font-size:.9rem}
.hero-slide__points svg{color:var(--green);flex:none}
/* Texto do banner com versão MOBILE diferente da Desktop (painel Banners, aba Mobile) —
   só existe no HTML quando o texto realmente diverge; alterna por breakpoint, nunca os
   dois juntos (display:none tira do fluxo E da árvore de acessibilidade). */
.aeb-rtxt--m{display:none}
.hero-slide__points--m{display:none}
@media (max-width:768px){
  .aeb-rtxt--d{display:none}
  .aeb-rtxt--m{display:inline}
  .hero-slide__points--d{display:none}
  .hero-slide__points--m{display:flex}
  /* "Ocultar no mobile" (painel Banners): some por inteiro no celular — não só o texto,
     também o tracinho/ícone do elemento (ex.: .eyebrow--dash::before). */
  .aeb-hide-m{display:none!important}
  /* Fotos mobile dos banners são compostas com a área escura NO TOPO (pessoas embaixo) —
     texto encostado em cima, gradiente também de cima pra baixo. */
  .slide--has-caption::before{background:linear-gradient(180deg,rgba(10,10,12,.86) 0%,rgba(10,10,12,.5) 45%,rgba(10,10,12,.15) 100%)}
  /* --hero-mobile-pt (opcional, por banner — painel Banners, aba Mobile, campo "Espaçamento
     antes do texto"): sobrescreve o respiro padrão pra subir/descer o texto conforme onde a
     própria arte da imagem mobile já tem espaço vazio. Sem o campo preenchido, usa o padrão. */
  .hero-slide__overlay{align-items:flex-start;padding-top:var(--hero-mobile-pt, clamp(3.2rem,10vw,4.5rem))}
  .hero-slide__overlay .wrap{padding-inline:1.6rem}
  .hero-slide__caption{max-width:30ch}
  .hero-slide__title{font-size:calc(clamp(1.6rem,7vw,2.4rem) * var(--hero-text-scale))}
}
/* Setas */
.hero-slider__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(0,0,0,.4);color:#fff;font-size:26px;line-height:1;
  display:flex;align-items:center;justify-content:center;transition:background .2s var(--ease)}
.hero-slider__arrow:hover{background:rgba(0,0,0,.7)}
.hero-slider__arrow--prev{left:14px}
.hero-slider__arrow--next{right:14px}
/* Dots */
.hero-slider__dots{position:absolute;left:0;right:0;bottom:14px;z-index:3;display:flex;gap:.5rem;justify-content:center}
.hero-slider__dot{width:10px;height:10px;border-radius:50%;border:2px solid #fff;background:transparent;cursor:pointer;padding:0;opacity:.7;transition:background .2s,opacity .2s}
.hero-slider__dot[aria-current="true"]{background:var(--green);border-color:var(--green);opacity:1}
@media (max-width:520px){.hero-slider__arrow{width:36px;height:36px;font-size:20px}}

/* ============================================================ SEÇÕES */
.section{padding:clamp(3.4rem,8vw,6rem) 0}
.section--muted{background:var(--surface)}
.section__note{margin-top:1.4rem;font-family:var(--mono);font-size:12.5px;color:var(--ink-faint)}
.sec-head{margin-bottom:clamp(1.8rem,4vw,3rem);max-width:62ch}
.sec-head--center{margin-inline:auto;text-align:center}
.sec-head__title{font-size:clamp(1.8rem,4.4vw,2.8rem);margin:.5rem 0 0;color:var(--ink)}
.sec-head__intro{color:var(--ink-dim);font-size:1.05rem;margin:1rem 0 0}

.grid{display:grid;gap:var(--gap)}

/* ---- Modalidades: carrossel de cards (5 por vez, desliza p/ ver o resto) ---- */
.mcar{position:relative}
/* Slider de modalidades em largura total (só esta seção): sai do wrap de 1200 e usa a largura da viewport, com respiro nas bordas. */
.mcar--wide{padding-inline:clamp(1rem,4vw,3.5rem)}
/* Em largura total não há gutter fora dos cards → traz as setas para dentro (senão vazam a viewport). */
.mcar--wide .mcar__arrow--prev{left:10px}
.mcar--wide .mcar__arrow--next{right:10px}
.mcar__track{
  display:flex;gap:var(--gap);list-style:none;margin:0;padding:.25rem .25rem 1rem;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scrollbar-width:none;-ms-overflow-style:none;
}
.mcar__track::-webkit-scrollbar{display:none}
@media (prefers-reduced-motion:reduce){.mcar__track{scroll-behavior:auto}}
/* 5 cards por vez no desktop; encolhe com a tela e mostra "espiada" do próximo */
.mcar__item{flex:0 0 calc((100% - 4 * var(--gap)) / 5);scroll-snap-align:start}
@media (max-width:1180px){.mcar__item{flex-basis:calc((100% - 3 * var(--gap)) / 4)}}
@media (max-width:1024px){.mcar__item{flex-basis:calc((100% - 2 * var(--gap)) / 3)}}
@media (max-width:760px){.mcar__item{flex-basis:calc((100% - 1 * var(--gap)) / 2)}}
@media (max-width:520px){.mcar__item{flex-basis:82%}}
/* Setas */
.mcar__arrow{position:absolute;top:calc(50% - 1rem);transform:translateY(-50%);z-index:4;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line);cursor:pointer;
  background:#fff;color:var(--ink);font-size:24px;line-height:1;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-card);transition:background .2s,color .2s}
.mcar__arrow:hover{background:var(--green);color:var(--green-ink);border-color:var(--green)}
.mcar__arrow--prev{left:-10px;visibility:hidden} /* JS revela ao rolar */
.mcar__arrow--next{right:-10px}
@media (max-width:1260px){.mcar__arrow--prev{left:4px}.mcar__arrow--next{right:4px}}
@media (max-width:640px){.mcar__arrow{display:none}} /* no celular, desliza com o dedo */
/* Card */
.mcard2{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column;height:100%;color:inherit;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.mcard2:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(0,0,0,.32)}
.mcard2__media{aspect-ratio:1/1;overflow:hidden;background:var(--surface-2)}
.mcard2__media img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .5s var(--ease)}
.mcard2:hover .mcard2__media img{transform:scale(1.05)}
/* Sem foto: painel elegante com ícone (uniformiza todos os cards) */
.mcard2__media--empty{display:flex;align-items:center;justify-content:center;color:var(--gold-deep);
  background:linear-gradient(135deg,#f6f6f6 0,#e7e7e7 100%);position:relative}
.mcard2__media--empty::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 80% 0,rgba(202,247,0,.14),transparent 60%)}
.mcard2__media--empty svg{position:relative;opacity:.85}
.mcard2__body{padding:1.1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.35rem;flex:1;text-align:center}
.mcard2__title{font-family:var(--display);font-weight:700;font-size:1.15rem;color:var(--ink);line-height:1.25}
.mcard2__meta{font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}
.mcard2__text{color:var(--ink-dim);font-size:.85rem;line-height:1.5}
.mcard2__cta{margin-top:auto;padding-top:.6rem;color:var(--gold-deep);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.35rem;justify-content:center}

/* ---- Por que escolher: grade de 6 cards com ícone ---- */
.feature-grid{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.feature-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.feature-grid{grid-template-columns:1fr}}
.fcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem 1.6rem;text-align:center;box-shadow:var(--shadow-card)}
.fcard__icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--surface);color:var(--ink);margin-bottom:1rem;transition:background .2s var(--ease)}
.fcard:hover .fcard__icon{background:var(--surface-2)}
.fcard__title{font-size:1.2rem;color:var(--ink);margin-bottom:.5rem}
.fcard__text{color:var(--ink-dim);font-size:.92rem;line-height:1.55}
.section__cta{display:flex;justify-content:center;margin-top:clamp(1.8rem,4vw,2.6rem)}

/* ============================================================ AGENDE (form sobre escuro) */
.agenda{padding:clamp(3.4rem,8vw,6rem) 0}
.agenda__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
@media (max-width:900px){.agenda__grid{grid-template-columns:1fr}}
.agenda__title{font-size:clamp(1.8rem,4.4vw,2.6rem);margin-bottom:1rem}
.agenda__text{color:var(--ink-dim);margin-bottom:1.6rem}
.lead-form{display:flex;flex-direction:column;gap:.8rem;max-width:480px}
.lead-form input,.lead-form select,.lead-form textarea{
  width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;color:#1a1a1a;
  padding:.85rem 1rem;font-family:inherit;font-size:.98rem}
.lead-form textarea{resize:vertical;min-height:4.5rem}
.lead-form input::placeholder,.lead-form textarea::placeholder{color:#8a8a8a}
.lead-form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23555'%3E%3Cpath d='M4 6l4 4 4-4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.lead-form .btn{margin-top:.3rem}
.lead-form__hint{font-size:.8rem;color:var(--ink-faint);margin:0}
/* ---- Seletor de DDI (bandeirinha) + campo de telefone lado a lado ----
   Menu PRÓPRIO (não <select> nativo). A bandeira é um <img> de verdade
   (assets/images/flags/*.svg, baixadas do flagcdn.com) — emoji de bandeira
   NÃO é confiável no Windows (nenhuma fonte instalada por padrão tem a arte
   das bandeiras; mostra só a sigla/código no lugar, dentro ou fora de um
   <select>). */
.phone-field{display:flex;gap:.5rem;align-items:flex-start}
.phone-field input{flex:1 1 auto;min-width:0}
.ddi-picker{position:relative;flex:0 0 auto}
.ddi-picker__toggle{display:flex;align-items:center;gap:.4rem;height:100%;background:#fff;color:#1a1a1a;
  border:1px solid var(--line);border-radius:10px;padding:.85rem .6rem;font:inherit;font-size:.98rem;cursor:pointer;white-space:nowrap}
.ddi-picker__toggle:hover{border-color:#b9b9b9}
.ddi-picker__chevron{color:#8a8a8a;transition:transform .15s var(--ease);flex:none}
.ddi-picker[data-open="true"] .ddi-picker__chevron{transform:rotate(180deg)}
.ddi-picker__flag{display:block;width:20px;height:15px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12);flex:none}
.ddi-picker__code{font-size:.92rem}
.ddi-picker__list{position:absolute;top:calc(100% + 6px);left:0;z-index:20;min-width:230px;max-height:280px;overflow-y:auto;
  background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 40px -12px rgba(0,0,0,.28);padding:.4rem;margin:0;list-style:none}
.ddi-picker__item{display:flex;align-items:center;gap:.6rem;padding:.55rem .6rem;border-radius:8px;cursor:pointer;color:#1a1a1a;font-size:.92rem}
.ddi-picker__item .ddi-picker__name{flex:1 1 auto}
.ddi-picker__item .ddi-picker__code{color:#7a7a7a}
.ddi-picker__item:hover,.ddi-picker__item:focus-visible{background:#f1f1f1}
.ddi-picker__item[aria-selected="true"]{background:rgba(202,247,0,.16);font-weight:700}
@media (max-width:480px){.ddi-picker__list{left:auto;right:0;min-width:210px}}
.agenda__media img{width:100%;border-radius:var(--radius);border:1px solid var(--line);object-fit:cover}
/* Capa de vídeo (botão play estilo YouTube sobre a imagem) */
.agenda__video{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;line-height:0;border-radius:var(--radius)}
.agenda__video img{display:block}
.agenda__play{position:absolute;inset:0;margin:auto;width:72px;height:50px;border-radius:12px;background:#f00;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.35);transition:transform .2s var(--ease),background .2s}
.agenda__play::before{content:"";width:0;height:0;border-style:solid;border-width:11px 0 11px 19px;border-color:transparent transparent transparent #fff;margin-left:3px}
.agenda__video:hover .agenda__play,.agenda__video:focus-visible .agenda__play{transform:scale(1.08);background:#ff2323}
.agenda__video:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
/* Lightbox do vídeo (facade: iframe só carrega no clique) */
.aeb-lightbox{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,5vw,3rem);background:rgba(0,0,0,.86)}
.aeb-lightbox[hidden]{display:none}
.aeb-lightbox__frame{position:relative;width:min(1000px,100%);aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.aeb-lightbox__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.aeb-lightbox__frame video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:contain;background:#000}
.aeb-lightbox__close{position:absolute;top:-16px;right:-16px;width:46px;height:46px;border-radius:50%;background:#fff;color:#111;border:0;font-size:26px;line-height:1;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.4)}
.aeb-lightbox__close:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (max-width:560px){.aeb-lightbox__close{top:8px;right:8px;width:40px;height:40px}}
/* Variante de imagem (galeria de campeonatos): sem aspect-ratio forçado, a foto define a área */
.aeb-lightbox__frame--img{width:min(920px,92vw);aspect-ratio:auto;background:transparent;box-shadow:none;display:flex;align-items:center;justify-content:center}
.aeb-lightbox__img{max-width:100%;max-height:82vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.6);display:block}
.aeb-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.45);color:#fff;font-size:26px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
.aeb-lightbox__nav:hover{background:var(--green);color:var(--green-ink);border-color:var(--green)}
.aeb-lightbox__nav--prev{left:-4px}
.aeb-lightbox__nav--next{right:-4px}
.aeb-lightbox__count{position:absolute;bottom:-2rem;left:50%;transform:translateX(-50%);color:#fff;font-family:var(--mono);font-size:.78rem;opacity:.85}
@media (max-width:640px){.aeb-lightbox__nav{width:38px;height:38px;font-size:20px}.aeb-lightbox__nav--prev{left:2px}.aeb-lightbox__nav--next{right:2px}}

/* ---- Professor: galeria de campeonatos (slider quadrado padronizado) ---- */
.pgal{position:relative}
.pgal__track{display:flex;gap:var(--gap);list-style:none;margin:0;padding:.25rem .25rem 1rem;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
.pgal__track::-webkit-scrollbar{display:none}
@media (prefers-reduced-motion:reduce){.pgal__track{scroll-behavior:auto}}
.pgal__item{flex:0 0 calc((100% - 3 * var(--gap)) / 4);scroll-snap-align:start;aspect-ratio:1/1;border-radius:var(--radius-sm);
  overflow:hidden;border:0;padding:0;cursor:zoom-in;position:relative;background:var(--surface-2);box-shadow:var(--shadow-card)}
.pgal__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease)}
.pgal__item:hover img{transform:scale(1.06)}
.pgal__item:focus-visible{outline:3px solid var(--green);outline-offset:2px}
@media (max-width:1024px){.pgal__item{flex-basis:calc((100% - 2 * var(--gap)) / 3)}}
@media (max-width:760px){.pgal__item{flex-basis:calc((100% - 1 * var(--gap)) / 2)}}
@media (max-width:520px){.pgal__item{flex-basis:78%}}

/* ---- Professor: linha do tempo de trajetória/formação ---- */
.prof-trail{position:relative;max-width:640px}
.prof-trail__list{list-style:none;margin:0;padding:0;position:relative;z-index:1} /* z-index:1 garante que os marcadores/texto fiquem SEMPRE na frente das linhas abaixo */
/* Trilho neutro (sempre visível) + linha de progresso (escura, não verde — verde fica só nos marcadores, é a
   cor única de ação) que "corre" por trás do conteúdo quando a trajetória entra na tela. Elementos reais
   (não ::after da lista) e antes do <ol> no DOM — pintam primeiro, então ficam atrás dos itens sem precisar
   empilhar z-index nos marcadores um por um. */
.prof-trail__track,.prof-trail__progress{position:absolute;left:9px;top:6px;bottom:6px;width:2px;z-index:0}
.prof-trail__track{background:var(--line)}
.prof-trail__progress{background:var(--ink);transform-origin:top;transform:scaleY(0)}
.prof-trail.will-draw .prof-trail__progress{transition:transform 1.1s var(--ease)}
.prof-trail.is-inview .prof-trail__progress{transform:scaleY(1)}
.prof-trail__item{position:relative;padding:0 0 1.6rem 2.4rem}
.prof-trail__item:last-child{padding-bottom:0}
.prof-trail__item::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--green);border:3px solid var(--bg);box-shadow:0 0 0 1px var(--line)}
.prof-trail__year{display:block;font-family:var(--display);font-weight:700;font-size:.85rem;color:var(--gold-deep);margin-bottom:.2rem;letter-spacing:.02em}
.prof-trail__text{color:var(--ink-dim);font-size:.95rem;line-height:1.55}
/* Revelação ao rolar (JS adiciona .will-reveal só com IntersectionObserver + sem prefers-reduced-motion — sem JS/suporte, o conteúdo já nasce visível) */
.prof-trail__item.will-reveal{opacity:0;transform:translateY(18px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
.prof-trail__item.will-reveal.is-visible{opacity:1;transform:none}
.prof-trail__item:nth-child(1){transition-delay:0s}
.prof-trail__item:nth-child(2){transition-delay:.08s}
.prof-trail__item:nth-child(3){transition-delay:.16s}
.prof-trail__item:nth-child(4){transition-delay:.24s}
.prof-trail__item:nth-child(5){transition-delay:.32s}
.prof-trail__item:nth-child(6){transition-delay:.4s}
@media (prefers-reduced-motion:reduce){.prof-trail__item.will-reveal{opacity:1;transform:none;transition:none}}

/* ---- Professor: patrocinadores (chips com link) ---- */
.prof-sponsors__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.8rem}
.prof-sponsors__link{display:inline-flex;align-items:center;gap:.55rem;background:var(--card);border:1px solid var(--line);border-radius:999px;
  padding:.65rem 1.15rem;font-weight:700;font-size:.92rem;color:var(--ink);box-shadow:var(--shadow-card);
  transition:transform .2s var(--ease),border-color .2s var(--ease)}
.prof-sponsors__link svg{color:var(--gold-deep);flex:none}
.prof-sponsors__link:hover{transform:translateY(-3px);border-color:var(--green)}
.prof-sponsors__link--static{cursor:default}
.prof-sponsors__link--static:hover{transform:none;border-color:var(--line)}

/* ============================================================ AVALIAÇÕES (Google) ---- */
.reviews__summary{display:flex;align-items:center;justify-content:center;gap:1.4rem;flex-wrap:wrap;margin-bottom:2.2rem}
.reviews__score{text-align:center}
.reviews__score b{display:block;font-family:var(--display);font-size:2.6rem;line-height:1;color:var(--ink)}
.reviews__stars{display:inline-flex;gap:.15rem;color:#f5b301;margin-top:.3rem}
.reviews__meta{font-size:.9rem;color:var(--ink-dim);max-width:26ch}
.reviews__actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}
.reviews__more{text-align:center;margin-top:1.2rem}
.grid--reviews{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.grid--reviews{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.grid--reviews{grid-template-columns:1fr}}

/* ---- Avaliações: slider (mesmo motor [data-cards] das modalidades) ---- */
.rcar{position:relative}
.rcar__track{
  display:flex;gap:var(--gap);list-style:none;margin:0;padding:.25rem .25rem 1rem;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scrollbar-width:none;-ms-overflow-style:none;
}
.rcar__track::-webkit-scrollbar{display:none}
@media (prefers-reduced-motion:reduce){.rcar__track{scroll-behavior:auto}}
.rcar__item{flex:0 0 calc((100% - 2 * var(--gap)) / 3);scroll-snap-align:start;display:flex}
.rcar__item .tcard{width:100%}
@media (max-width:900px){.rcar__item{flex-basis:calc((100% - 1 * var(--gap)) / 2)}}
@media (max-width:600px){.rcar__item{flex-basis:88%}}
.rcar__arrow{position:absolute;top:calc(50% - 1rem);transform:translateY(-50%);z-index:4;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line);cursor:pointer;
  background:#fff;color:var(--ink);font-size:24px;line-height:1;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-card);transition:background .2s,color .2s}
.rcar__arrow:hover{background:var(--green);color:var(--green-ink);border-color:var(--green)}
.rcar__arrow--prev{left:-10px;visibility:hidden} /* JS revela ao rolar */
.rcar__arrow--next{right:-10px}
@media (max-width:1260px){.rcar__arrow--prev{left:4px}.rcar__arrow--next{right:4px}}
@media (max-width:640px){.rcar__arrow{display:none}} /* no celular, desliza com o dedo */

/* ============================================================ COMO FUNCIONA (passos, escuro) ---- */
.steps{padding:clamp(3.4rem,8vw,6rem) 0}
.grid--steps{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.grid--steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.grid--steps{grid-template-columns:1fr}}
.stepcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;position:relative}
.stepcard__n{font-family:var(--display);font-weight:700;font-size:1rem;color:var(--green-ink);background:var(--green);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:.9rem}
.stepcard__title{font-size:1.15rem;color:var(--ink);margin-bottom:.5rem}
.stepcard__text{color:var(--ink-dim);font-size:.9rem;line-height:1.55}

/* ============================================================ SOBRE (split) ---- */
.section--split .split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
@media (max-width:860px){.section--split .split{grid-template-columns:1fr}}
.checklist{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin:1.4rem 0}
.checklist li{display:flex;align-items:flex-start;gap:.6rem;color:var(--ink-dim)}
.checklist svg{color:var(--gold-deep);flex:none;margin-top:3px}
.about__media img{width:100%;border-radius:var(--radius);object-fit:cover;box-shadow:var(--shadow-card)}
.about__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.4rem;margin-top:.4rem}
.about__actions .sobre-link{margin-top:0}

/* ============================================================ CARDS (modalidade/professor/depoimento) ---- */
.grid--cards{grid-template-columns:repeat(3,1fr)}
.grid--profs{grid-template-columns:repeat(3,1fr)}
.grid--quotes{grid-template-columns:repeat(3,1fr)}
.grid--posts{grid-template-columns:repeat(3,1fr)}
@media (max-width:920px){.grid--cards,.grid--profs,.grid--quotes,.grid--posts{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.grid--cards,.grid--profs,.grid--quotes,.grid--posts{grid-template-columns:1fr}}

.mcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.mcard:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(0,0,0,.3)}
.mcard__link{display:flex;flex-direction:column;height:100%;color:inherit}
.mcard__media{aspect-ratio:1/1;overflow:hidden;background:var(--surface-2)}
.mcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.mcard:hover .mcard__media img{transform:scale(1.05)}
.mcard__body{padding:1.3rem;display:flex;flex-direction:column;gap:.45rem;flex:1;text-align:center}
.mcard__icon{color:var(--gold-deep);align-self:center}
.mcard__title{font-size:1.2rem;color:var(--ink)}
.mcard__meta{font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.mcard__excerpt{color:var(--ink-dim);font-size:.9rem;margin:.2rem 0 0}
.mcard__cta{margin-top:auto;padding-top:.7rem;color:var(--gold-deep);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.4rem;justify-content:center}
.mcard--placeholder .mcard__body{border-top:2px solid var(--green)}

.pcard{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.pcard:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(0,0,0,.32)}
.pcard__link{display:flex;flex-direction:column;height:100%;color:inherit}
.pcard__cta{margin-top:1rem;color:var(--gold-deep);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.4rem}
/* Selo de campeão — medalha em OURO (verde fica reservado só p/ CTA). */
.pcard__medal{position:absolute;top:12px;left:12px;z-index:3;display:inline-flex;align-items:center;gap:.35rem;
  font-family:var(--body);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#3a2a00;
  background:linear-gradient(135deg,#ffdd7a,#f7c045);padding:.4rem .62rem;border-radius:999px;
  box-shadow:0 6px 16px -8px rgba(160,110,0,.7);border:1px solid rgba(255,255,255,.55)}
.pcard__medal svg{color:#6b4e00}
.pcard__media{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--surface-2)}
.pcard__media img{width:100%;height:100%;object-fit:cover}
/* Sem foto → painel-ícone elegante (some quando o professor recebe foto). */
.pcard__media--empty{display:flex;align-items:center;justify-content:center;color:var(--gold-deep)}
.pcard__media--empty::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 80% 0,rgba(247,192,69,.16),transparent 60%)}
.pcard__media--empty svg{position:relative;opacity:.85}
/* Fotos desligadas globalmente → card só texto; selo "Campeão" fica inline no topo. */
.pcard__medalrow{margin:0 0 .6rem}
.pcard__medal--inline{position:static}
.pcard--nomedia .pcard__body{padding-top:1.5rem}
.pcard__body{padding:1.4rem}
.pcard__role{font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)}
.pcard__name{font-size:1.4rem;color:var(--ink);margin:.3rem 0}
.pcard__belt{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--ink-dim);background:var(--surface);border:1px solid var(--line);padding:.3rem .6rem;border-radius:999px}
.pcard__belt svg{color:var(--gold-deep)}
.pcard__titles{list-style:none;margin:1rem 0 0;display:flex;flex-direction:column;gap:.4rem}
.pcard__titles li{display:flex;align-items:flex-start;gap:.5rem;font-size:.9rem;color:var(--ink-dim)}
.pcard__titles svg{color:var(--gold-deep);flex:none;margin-top:3px}

.tcard{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem 1.6rem;margin:0;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-card)}
.tcard__head{display:flex;align-items:center;gap:.75rem}
.tcard__stars{display:flex;gap:.15rem;color:#f5b301}
.tcard__quote{margin:0;font-size:1.02rem;color:var(--ink);line-height:1.6}
.tcard__quote p:last-child{margin-bottom:0}
/* Avaliação longa: "corta" em 5 linhas até o "Ler mais" (cards do slider ficam com a
   mesma altura); ao expandir, volta a mostrar o texto inteiro sem limite. */
.tcard__quote--clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
.tcard--long.is-expanded .tcard__quote--clamp{display:block;-webkit-line-clamp:unset;overflow:visible}
.tcard__more{align-self:flex-start;background:none;border:0;padding:0;margin-top:-.6rem;color:var(--gold-deep);font-weight:700;font-size:.82rem;cursor:pointer;font-family:var(--body)}
.tcard__more:hover{text-decoration:underline}
.tcard__who{display:flex;align-items:center;gap:.75rem;margin-top:auto}
.tcard__avatar{border-radius:50%;width:48px;height:48px;object-fit:cover}
.tcard__who strong{display:block;color:var(--ink);font-size:.95rem}
.tcard__who small{color:var(--ink-faint);font-size:.8rem}
.tcard__g{margin-left:auto;font-weight:700;color:#4285F4;font-family:var(--display)}

/* ---- Post cards ---- */
.postcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.postcard:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(0,0,0,.3)}
.postcard__link{color:inherit;display:flex;flex-direction:column;height:100%}
/* Pôster inteiro (sem corte), igual à Home (#artigos): área 1:1 + contain — os posters do cliente são quadrados. */
.postcard__media{aspect-ratio:1/1;overflow:hidden;background:var(--surface-2)}
.postcard__media img{width:100%;height:100%;object-fit:contain}
.postcard__body{padding:1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.postcard__date{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}
.postcard__title{font-size:1.2rem;color:var(--ink)}
.postcard__excerpt{color:var(--ink-dim);font-size:.92rem}
.postcard__more{margin-top:auto;color:var(--gold-deep);font-weight:700;font-size:.82rem;text-transform:uppercase;display:inline-flex;gap:.4rem;align-items:center}

/* Blog na HOME (#artigos): cards escuros com o poster inteiro (referência do cliente) */
#artigos .postcard{background:var(--dark);border-color:rgba(255,255,255,.10)}
#artigos .postcard__media{aspect-ratio:1/1;background:var(--dark)}
#artigos .postcard__media img{object-fit:contain}
#artigos .postcard__date,#artigos .postcard__excerpt{display:none}
#artigos .postcard__title{color:#fff}
#artigos .postcard__more{color:var(--gold)}

/* ============================================================ CTA FINAL */
.cta-final{background:var(--dark);color:var(--ink-inv);padding:clamp(3rem,7vw,5rem) 0;text-align:center}
.cta-final__inner{max-width:720px;margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:1rem}
.cta-final__title{font-size:clamp(1.7rem,4.5vw,2.6rem);color:#fff}
.cta-final__inner p{color:#cfcfca;max-width:52ch}

/* ============================================================ CONTATO / MAPA */
.contact{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
.contact__line{display:flex;align-items:flex-start;gap:.6rem;color:var(--ink-dim);margin:.4rem 0}
.contact__line svg{color:var(--gold-deep);flex:none;margin-top:2px}
.contact__line a{color:var(--ink)}
.contact__map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);min-height:340px;background:var(--surface)}
.contact__map iframe{width:100%;height:100%;min-height:340px;border:0}
.contact__map-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;min-height:340px;color:var(--ink-faint);text-align:center;padding:2rem}
.contact__map-fallback svg{color:var(--gold-deep)}

/* ============================================================ FLUTUANTE WHATSAPP */
/* Texto/ícone em branco (era --wa-ink escuro) — a pedido do usuário, pra bater com o botão
   verde+branco do WhatsApp de verdade (referência: whatsapp flutuante.png, só espaçamento/
   cor, sem copiar texto). Fundo já era --wa (#25d366), não mudou. */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:200;display:inline-flex;align-items:center;gap:.5rem;
  background:var(--wa);color:#fff;font-weight:800;padding:.7rem .95rem;border-radius:999px;
  box-shadow:0 14px 34px -10px rgba(37,211,102,.6);transition:transform .2s var(--ease)}
.wa-float:hover{transform:scale(1.05);color:#fff}
.wa-float svg{flex:none}
.wa-float__label{font-size:.85rem}
@media (max-width:520px){.wa-float__label{display:none}}

/* ============================================================ PAGEHEAD / SINGLE / PROSE */
.pagehead{background:var(--surface);border-bottom:1px solid var(--line);padding:clamp(2.4rem,6vw,4rem) 0 clamp(1.6rem,4vw,2.6rem)}
.pagehead__title{font-size:clamp(2rem,5.5vw,3.4rem);color:var(--ink);margin:.5rem 0 0}
/* Título do post do blog: menor (~39px) para não ficar exagerado na tela. */
.single-post .pagehead__title{font-size:clamp(1.75rem,4vw,39px)}
.pagehead__meta{font-family:var(--mono);font-size:12px;color:var(--ink-faint);margin-top:.6rem}
.pagehead__desc{color:var(--ink-dim);font-size:1.02rem;line-height:1.6;margin-top:.8rem}
/* ---- Página Contato ---- */
.contato-trust{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.3rem}
.contato-trust__item{display:inline-flex;align-items:center;gap:.45rem;font-size:.88rem;color:var(--ink-dim);text-decoration:none}
.contato-trust__item strong{color:var(--ink)}
.contato-trust__item svg{color:var(--gold-deep);flex:none}
a.contato-trust__item:hover{color:var(--ink)}
.contato-cta-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.3rem}

/* ---- Página Horário (grade de aulas por dia — pensada pra virar link no WhatsApp) ---- */
.horario-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.3rem;align-items:start}
.horario-day{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}
.horario-day__title{display:flex;align-items:center;gap:.55rem;font-size:1.05rem;color:var(--ink);background:var(--surface);padding:.9rem 1.2rem;border-bottom:1px solid var(--line)}
.horario-day__title svg{color:var(--ink);flex:none}
.horario-day__list{list-style:none;margin:0;padding:.4rem 0}
.horario-item{display:flex;align-items:baseline;gap:.9rem;padding:.65rem 1.2rem;border-bottom:1px solid var(--line-soft)}
.horario-item:last-child{border-bottom:0}
.horario-item__time{font-family:var(--mono);font-weight:700;font-size:.92rem;color:var(--ink);flex:none;min-width:3.2em}
.horario-item__body{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.horario-item__name{font-family:var(--display);font-weight:600;font-size:.96rem;color:var(--ink)}
.horario-item__cap{font-size:.76rem;color:var(--ink-faint)}
/* "Ver mais" — mesma altura/padding de um item normal, pra não desalinhar o card quando fechado */
.horario-item--more{padding:0}
.horario-more{width:100%}
.horario-more__toggle{display:flex;align-items:center;justify-content:center;gap:.5rem;list-style:none;cursor:pointer;
  padding:.75rem 1.2rem;font-family:var(--display);font-weight:600;font-size:.86rem;color:var(--gold-deep);
  -webkit-tap-highlight-color:transparent}
.horario-more__toggle::-webkit-details-marker{display:none}
.horario-more__toggle svg{transition:transform .2s var(--ease);transform:rotate(90deg)} /* seta (→) apontando pra baixo = "tem mais abaixo" */
.horario-more[open] .horario-more__toggle svg{transform:rotate(-90deg)} /* aberto: aponta pra cima = "recolher" */
@media (prefers-reduced-motion:reduce){.horario-more__toggle svg{transition:none}}
.horario-more:hover .horario-more__toggle{color:var(--ink)}
.horario-more__list{list-style:none;margin:0;padding:0;border-top:1px dashed var(--line)}

/* Grade de Horários — alternador Tabela/Cards (a tabela é a visão principal, no topo; só
   uma fica visível por vez — nunca as duas empilhadas). Botões com a mesma cara dos outros
   controles do site (--card/--line/--radius), estado ativo em --green (única cor de ação). */
.horario-switch{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem}
.horario-switch__btn{font-family:var(--display);font-weight:600;font-size:.9rem;color:var(--ink-dim);
  background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.65rem 1.4rem;
  cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}
.horario-switch__btn:hover{border-color:var(--green);color:var(--ink)}
.horario-switch__btn.is-active{background:var(--green);border-color:var(--green);color:var(--green-ink)}
.horario-view+.horario-view{margin-top:1.4rem}

/* A pedido do usuário (2026-09-14): só a visão "Cards por dia" fica visível — a tabela e o
   alternador continuam no HTML/JS (nada removido, só ocultos), pra reverter fácil se pedir de
   volta. Nunca remover o `.horario-switch`/`.horario-view[data-horario-view="tabela"]` do PHP. */
.single--horario .horario-switch{display:none}
.single--horario .horario-view[data-horario-view="tabela"]{display:none}
.single--horario .horario-view[data-horario-view="cards"]{display:block}

/* Só a tabela rola de lado (nunca a página) — 1ª coluna fixa pra continuar legível ao arrastar. */
.horario-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);background:var(--card)}
.horario-table{width:100%;border-collapse:collapse;font-size:.92rem}
.horario-table thead th{font-family:var(--display);font-weight:700;font-size:.82rem;color:var(--ink-inv);
  background:var(--dark);padding:.85rem .9rem;text-align:center;white-space:nowrap}
.horario-table thead th.horario-table__time-head{text-align:left;color:var(--gold)}
.horario-table tbody th,.horario-table tbody td{padding:.7rem .9rem;border-bottom:1px solid var(--line-soft);text-align:center;vertical-align:middle}
.horario-table tbody tr:last-child th,.horario-table tbody tr:last-child td{border-bottom:0}
.horario-table tbody tr:nth-child(even){background:var(--surface)}
.horario-table__time{font-family:var(--mono);font-weight:700;color:var(--gold-deep);text-align:left;white-space:nowrap;
  position:sticky;left:0;background:inherit;box-shadow:1px 0 0 var(--line)}
.horario-table thead .horario-table__time-head{position:sticky;left:0;background:var(--dark);z-index:1}
.horario-table td .horario-table__pill{display:block;width:fit-content;margin:.15rem auto;font-weight:700;color:var(--ink)}
.horario-table__empty{color:var(--ink-faint)}
/* Cor por categoria, a pedido do dono da academia — mesmas 3 famílias de cor da legenda que ele
   mandou (verde/Misto, amarelo/Feminino+Open Mat, vermelho/Competição). Só aqui na tabela (os
   cards por dia continuam neutros). Texto em negrito numa versão escurecida/saturada de cada
   matiz (pedido explícito de mais peso e mais contraste) — a cor clara da referência (pensada
   pra fundo quase preto) não passa em AA aqui, que é sobre fundo claro; o fundo/borda mantêm o
   tom vivo original como identificador visual. Sem cor = famílias "Fundamental/No Gi/Faixa/
   Nível" da legenda, que já usam o `.tagpill` neutro (agora também mais escuro/em negrito). */
/* Teste a pedido do usuário: só o Misto em tom "vivo" (fundo sólido, tipo botão) — os outros
   (Feminino/Competição/neutro) continuam na versão anterior até ele confirmar se prefere isso. */
.horario-table__pill--misto{background:#34d399;border-color:#2ec48d;color:var(--green-ink)}
.horario-table__pill--fem{background:rgba(234,179,8,.16);border-color:rgba(234,179,8,.6);color:#7a5209}
.horario-table__pill--comp{background:rgba(248,113,113,.16);border-color:rgba(248,113,113,.6);color:#9f1616}
@media (max-width:640px){
  .horario-table{font-size:.82rem}
  .horario-table thead th,.horario-table tbody th,.horario-table tbody td{padding:.6rem .55rem}
}
/* Badge circular — mesmo padrão do .fcard__icon (seção "Por que escolher"); usa --card (branco) em
   vez de --surface porque aqui o fundo imediato já É --surface (o .pagehead inteiro) — precisa contrastar
   com o que está atrás dele, não repetir o token cego. */
.pagehead__icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;
  border-radius:50%;background:var(--card);color:var(--ink);box-shadow:var(--shadow-card);margin-bottom:.9rem}
.pagehead__tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}
.tagpill{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--line);padding:.35rem .7rem;border-radius:999px}
.tagpill svg{color:var(--ink)}
.crumbs{display:flex;gap:.5rem;align-items:center;font-family:var(--mono);font-size:12px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em}
.crumbs a{color:var(--ink-dim)}
.crumbs span{color:var(--line)}

.single__hero{max-width:var(--wrap);margin:0 auto;padding:2rem clamp(1rem,4vw,2rem) 0}
.single__hero-img{width:100%;border-radius:var(--radius);border:1px solid var(--line);object-fit:cover;max-height:520px}
.single__body{padding-block:clamp(2rem,5vw,3.4rem);max-width:760px}
/* Páginas (ex.: Sobre): conteúdo à esquerda, casando a borda esquerda com o título
   do cabeçalho — usa o MESMO wrap (1200) do título e limita só a medida de leitura. */
body.page .single__body{max-width:var(--wrap)}
body.page .single__body > *{max-width:72ch}
.prose{font-size:1.08rem;color:var(--ink-dim)}
.prose h2{font-size:1.8rem;color:var(--ink);margin:2rem 0 .8rem}
.prose h3{font-size:1.35rem;color:var(--ink);margin:1.6rem 0 .6rem}
.prose p{margin:0 0 1.1em}
.prose a{text-decoration:underline;text-underline-offset:3px}
.prose ul,.prose ol{margin:0 0 1.1em 1.2em}
.prose li{margin:.35em 0}
.prose blockquote{border-left:3px solid var(--green);padding:.4rem 0 .4rem 1.2rem;margin:1.4rem 0;color:var(--ink);font-size:1.12rem}
.prose img{border-radius:var(--radius);border:1px solid var(--line);margin:1.4rem 0}
.prose strong{color:var(--ink)}

/* ===== Single do Blog: layout editorial 2 colunas + sidebar ===== */
.single-layout{max-width:var(--wrap);margin-inline:auto;padding:clamp(1.6rem,4vw,2.6rem) clamp(1rem,4vw,2rem) 0;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(1.8rem,4vw,3.4rem);align-items:start}
@media (max-width:980px){.single-layout{grid-template-columns:1fr}}
.single-main{min-width:0}
.single-main__hero{margin:0 0 1.6rem;text-align:left}
/* Pôster inteiro (sem corte), alinhado à esquerda e com um pouco mais de destaque. */
.single-main__hero-img{width:auto;max-width:100%;height:auto;max-height:504px;display:inline-block;border-radius:var(--radius);border:1px solid var(--line)}
.single-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-family:var(--mono);font-size:12px;letter-spacing:.03em;color:var(--ink-faint);padding:.2rem 0 1rem;border-bottom:1px solid var(--line);margin-bottom:1.6rem}
.single-meta__item{display:inline-flex;align-items:center;gap:.35rem}
.single-meta__item svg{color:var(--gold-deep)}
.single-meta__item a{color:var(--ink-dim)}
.single-meta__sep{color:var(--line)}
.single-layout .single__body{max-width:none;padding-block:0}
.single__comments{margin-top:2.6rem}

/* Sidebar (sticky no desktop, empilha no mobile) */
.single-aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:1.4rem}
@media (max-width:980px){.single-aside{position:static;margin-top:2.6rem}}

/* Bloco de newsletter */
.nl-box{border-radius:var(--radius);padding:1.6rem 1.4rem;border:1px solid var(--line)}
.nl-box__title{font-size:1.1rem;line-height:1.32;color:var(--gold);text-align:center;margin:0 0 1.1rem}
.nl-form{display:flex;flex-direction:column;gap:.7rem;position:relative}
.nl-form input[type=text],.nl-form input[type=email]{width:100%;padding:.75rem .9rem;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.18);background:#fff;color:#1a1a1a;font:inherit}
.nl-form input::placeholder{color:#8a8a8a}
.nl-form input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.nl-form__hp{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden}
.nl-form__consent{display:flex;gap:.5rem;align-items:flex-start;font-size:.78rem;line-height:1.4;color:var(--ink-dim);cursor:pointer;text-align:left}
.nl-form__consent input{margin-top:.15rem;flex:none}
.nl-form .btn{margin-top:.2rem}
.nl-form__msg{font-size:.86rem;margin:.1rem 0 0;min-height:1.1em}
.nl-form__msg.is-ok{color:var(--gold)}
.nl-form__msg.is-err{color:#ffb4b4}

/* Últimos artigos */
.recent{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.2rem}
.recent__title{font-size:1.15rem;color:var(--ink);margin:0 0 1rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.recent__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}
.recent__link{display:flex;gap:.85rem;align-items:center;color:var(--ink)}
.recent__thumb{flex:none;width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--ink-faint)}
.recent__thumb img{width:100%;height:100%;object-fit:cover}
.recent__text{font-family:var(--display);font-size:.92rem;line-height:1.32;font-weight:600}
.recent__link:hover .recent__text{color:var(--gold-deep)}
.recent__link:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:4px}

.prof-hero{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(1.6rem,4vw,3rem);align-items:center;
  padding:clamp(2rem,5vw,3.4rem) 0 clamp(2.4rem,5vw,3.2rem);overflow:hidden}
@media (max-width:760px){.prof-hero{grid-template-columns:1fr}}
/* Forma diagonal decorativa de fundo (mesma técnica da página Sobre) — dá profundidade sem custar CWV/a11y */
.prof-hero__bgshape{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(135deg,var(--surface) 0%,var(--surface) 38%,transparent 38.6%);opacity:.8}
.prof-hero__media{position:relative;z-index:1}
.prof-hero__media img{width:100%;border-radius:var(--radius);border:1px solid var(--line);object-fit:cover;box-shadow:var(--shadow-card)}
.prof-hero__media--empty{aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--gold-deep)}
.prof-hero__media--empty svg{opacity:.85}
.prof-hero--nomedia{grid-template-columns:1fr;max-width:760px}
.prof-hero--nomedia .prof-hero__bgshape{display:none}
.prof-hero__info{position:relative;z-index:1}
.prof-hero__name{font-size:clamp(2.3rem,5.6vw,3.4rem);color:var(--ink);margin:.5rem 0 1rem}
/* Ficha rápida (faixa/função/selo) — uma única fileira de chips escaneável, no lugar de badges soltos */
.prof-hero__facts{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 1.2rem}
.prof-hero__fact{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;font-weight:600;color:var(--ink-dim);
  background:var(--card);border:1px solid var(--line);padding:.42rem .8rem;border-radius:999px;box-shadow:var(--shadow-card)}
.prof-hero__fact svg{color:var(--gold-deep);flex:none}
.prof-hero__fact--champion{background:var(--gold);color:#191919;border-color:transparent;font-weight:700}
.prof-hero__fact--champion svg{color:#191919}

/* ---- Paginação ---- */
.pagination,.comments__title{margin-top:2.4rem}
.nav-links{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center}
.page-numbers{display:inline-flex;min-width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;color:var(--ink-dim);padding:0 .6rem}
.page-numbers.current{background:var(--green);color:var(--green-ink);border-color:var(--green);font-weight:700}
.page-numbers:hover:not(.current){border-color:var(--green);color:var(--ink)}

/* ---- 404 ---- */
.error404{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center}
.error404__inner{max-width:620px;padding:3rem 1.5rem}
.error404__code{font-family:var(--display);font-size:clamp(5rem,18vw,10rem);color:var(--green-600);line-height:1;display:block}
.error404__title{font-size:clamp(1.8rem,5vw,2.6rem);color:var(--ink);margin:.4rem 0 1rem}
.error404__inner p{color:var(--ink-dim)}
.error404__cta{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:1.6rem}

/* ---- Busca ---- */
.searchform{display:flex;gap:.5rem;max-width:460px;margin-top:1.4rem}
.searchform__input{flex:1;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:.7rem .9rem;font-size:.95rem}
.searchform__submit{background:var(--green);color:var(--green-ink);border:0;border-radius:8px;padding:0 1.2rem;font-weight:700;cursor:pointer}

/* ============================================================ RODAPÉ (escuro) */
.site-footer{background:var(--dark);color:var(--ink-inv);border-top:3px solid var(--green)}
.site-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(1.6rem,4vw,3rem);padding:clamp(2.6rem,5vw,4rem) 0}
@media (max-width:820px){.site-footer__grid{grid-template-columns:1fr;gap:2rem}}
.site-footer .brandmark__name{color:#fff}
.site-footer__tag{color:#a8a8a2;margin:.5rem 0 0}
.site-footer__social{display:flex;gap:.6rem;margin-top:1.2rem}
.social-link{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#cfcfca}
.social-link:hover{border-color:var(--green);color:var(--green)}
.site-footer__title{font-family:var(--display);font-size:1.05rem;color:#fff;margin-bottom:1rem;letter-spacing:.02em}
.site-footer__line{display:flex;align-items:flex-start;gap:.55rem;color:#cfcfca;margin:.5rem 0;font-size:.94rem}
.site-footer__line svg{color:var(--gold);flex:none;margin-top:2px}
.site-footer__line a{color:#cfcfca}
.site-footer__line a:hover{color:var(--green)}
.site-footer__col .btn{margin-top:.8rem}
.site-footer__menu{list-style:none;margin-top:1rem;display:flex;flex-direction:column;gap:.4rem}
.site-footer__menu a{color:#a8a8a2;font-size:.9rem}
.site-footer__bar{border-top:1px solid rgba(255,255,255,.1)}
.site-footer__bar-inner{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.2rem 0;font-family:var(--mono);font-size:11.5px;color:#8a8a82;letter-spacing:.02em}
/* Espaço extra embaixo no mobile pro botão flutuante do WhatsApp (.wa-float, fixed) nunca
   ficar colado/sobrepondo a última linha do rodapé — achado real via print de celular.
   Empilha em coluna (mesmo padrão de espaçamento do .site-footer__line, usado em "Onde
   treinamos") em vez de flex-wrap+space-between, que deixava as 2 linhas "grudadas". */
@media (max-width:600px){
  .site-footer__bar-inner{flex-direction:column;align-items:flex-start;gap:.5rem;padding-bottom:6.5rem}
}

/* ============================================================ FORM DE COMENTÁRIO */
.comment-form{display:flex;flex-direction:column;gap:.8rem;margin-top:1.4rem}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{
  width:100%;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:.75rem .9rem;font-family:inherit}
.comments__list{list-style:none}
.comments__list .comment{border-bottom:1px solid var(--line-soft);padding:1rem 0}

/* ============================================================ PÁGINA KIDS */
/* Hero com foto + scrim (garante contraste AA do texto sobre a imagem — R48) */
/* ---- Hero Kids (dedicado desde v1.37.0, mesma técnica da Adulto/Feminino/NoGi) ---- */
.kids-hero .eyebrow--dash::before{background:var(--gold-deep)}
.kids-hero{padding:0}
.kids-hero__grid{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch}
@media (max-width:900px){.kids-hero__grid{grid-template-columns:1fr}}
.kids-hero__col{display:flex;flex-direction:column;justify-content:center;padding:clamp(2.4rem,6vw,3.6rem) clamp(1.4rem,4vw,3rem) clamp(2.4rem,6vw,3.6rem) 0}
@media (max-width:900px){.kids-hero__col{padding:clamp(2.4rem,8vw,3.2rem) 0}}
.kids-hero__title{font-size:clamp(2.4rem,4.6vw,3.75rem);margin:.7rem 0 1.2rem}
.kids-hero__title-mark{color:var(--gold-deep);font-style:normal}
.kids-hero__text{color:var(--ink-dim);margin:0 0 1.5rem;max-width:48ch}
.kids-hero__action{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;margin-bottom:1.5rem}
.kids-hero__note{color:var(--ink-faint);font-size:.85rem;margin:0}
.kids-hero__points{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:0;padding-top:1.3rem;border-top:1px solid var(--line)}
.kids-hero__points li{display:flex;align-items:center;gap:.45rem;color:var(--ink-dim);font-size:.9rem}
.kids-hero__points svg{color:var(--green);flex:none}
.kids-hero__media{position:relative;min-height:clamp(360px,42vw,620px)}
@media (max-width:900px){.kids-hero__media{min-height:440px}}
.kids-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.kids-hero__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--dark),transparent 45%),linear-gradient(0deg,rgba(30,31,30,.6),transparent 30%)}

/* Faixas Kids e Juvenil */
.kids-faixas__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.6rem,4vw,3rem);align-items:center;margin-top:1rem}
.kids-faixas__grid--noimg{grid-template-columns:1fr;max-width:60ch;margin-inline:auto;text-align:center}
@media (max-width:860px){.kids-faixas__grid{grid-template-columns:1fr}}
.kids-faixas__img img{width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-card)}
.kids-faixas__text p{margin:0 0 1rem;color:var(--ink-dim)}

/* 4 pilares (faixas etárias) — cards coloridos */
.pilares-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:1rem}
@media (max-width:1000px){.pilares-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.pilares-grid{grid-template-columns:1fr}}
.pilar{--pc:#2b6fd6;background:var(--pc);color:#fff;border-radius:var(--radius);padding:1.5rem 1.4rem;box-shadow:0 14px 30px -18px rgba(0,0,0,.5)}
.pilar--azul{--pc:#2b6fd6}
.pilar--amarelo{--pc:#e2a90b}
.pilar--vermelho{--pc:#d23c3c}
.pilar--verde{--pc:#1f804a} /* escurecido de #2e9e57: branco reprovava AA (3.4:1); agora 4.95:1 */
.pilar__head{display:flex;align-items:center;gap:.7rem;margin:0 0 1rem}
.pilar__icon{flex:none;display:flex}
.pilar__icon svg{opacity:.97}
.pilar__heading{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.pilar__title{font-family:var(--display);font-size:1.22rem;margin:0;color:#fff;line-height:1.12}
.pilar__sub{margin:0;font-size:.86rem;font-weight:500;color:#fff}
.pilar__list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin:0}
.pilar__list li{display:flex;align-items:flex-start;gap:.45rem;font-size:.92rem;color:#fff}
.pilar__list svg{flex:none;margin-top:3px;opacity:.9}
/* Card amarelo: fundo claro exige texto ESCURO p/ contraste AA (igual ao print) */
.pilar--amarelo .pilar__title,
.pilar--amarelo .pilar__icon,
.pilar--amarelo .pilar__list li{color:#241c00}
.pilar--amarelo .pilar__sub{color:rgba(36,28,0,.82)}

/* ============================================================ FAQ (acordeão) */
.faq .wrap{max-width:840px}
.faq__list{display:flex;flex-direction:column;gap:.75rem;margin-top:1.6rem}
.faq__item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card)}
.faq__q{display:flex;align-items:center;justify-content:space-between;gap:1rem;list-style:none;cursor:pointer;padding:1.05rem 1.3rem;font-family:var(--display);font-weight:600;font-size:1.06rem;line-height:1.3;color:var(--ink)}
.faq__q::-webkit-details-marker{display:none}
.faq__q:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;border-radius:var(--radius-sm)}
.faq__icon{position:relative;flex:none;width:20px;height:20px}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;background:var(--gold-deep);border-radius:2px;transition:transform .25s var(--ease)}
.faq__icon::before{left:2px;right:2px;top:9px;height:2px}
.faq__icon::after{top:2px;bottom:2px;left:9px;width:2px}
.faq__item[open] .faq__icon::after{transform:scaleY(0)}
.faq__a{padding:0 1.3rem 1.2rem}
.faq__a p{margin:0;color:var(--ink-dim);line-height:1.62}
@media (prefers-reduced-motion:reduce){.faq__icon::before,.faq__icon::after{transition:none}}

/* ============================================================ UTIL */
.taglist{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}
.taglist li a{font-family:var(--mono);font-size:12px;border:1px solid var(--line);padding:.3rem .7rem;border-radius:999px;color:var(--ink-dim)}

/* ============================================================ PÁGINA "SOBRE" */
.sobre-link{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--gold-deep);margin-top:.4rem}
.sobre-link:hover{color:var(--green-600)}
.btn--dark{--btn-bg:var(--ink);--btn-fg:#fff}
.on-dark .btn--dark{--btn-bg:#fff;--btn-fg:var(--ink)}

/* ---- Eyebrow com tracinho lime (usada em vários pontos da Sobre) ---- */
.eyebrow--dash{display:inline-flex;align-items:center;gap:.6rem}
.eyebrow--dash::before{content:"";display:inline-block;width:18px;height:2px;background:var(--green-600);flex:none}

/* ---- Hero ---- */
.sobre-hero{position:relative;padding:clamp(2.2rem,5vw,3.6rem) 0 clamp(3.4rem,6vw,4.6rem);overflow:hidden}
.sobre-hero__bgshape{position:absolute;top:0;right:0;width:55%;height:100%;z-index:0;pointer-events:none;
  background:linear-gradient(135deg,transparent 42%,var(--surface) 42.5%);opacity:.7}
.sobre-hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
@media (max-width:860px){.sobre-hero__grid{grid-template-columns:1fr}}
.sobre-hero__title{font-size:clamp(2rem,5vw,3.2rem);margin:.6rem 0 1.1rem}
.sobre-hero__title-mark{position:relative;display:inline-block}
.sobre-hero__title-mark::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.3em;background:var(--green);z-index:-1;opacity:.9}
.sobre-hero__text{color:var(--ink-dim);margin:0 0 .8rem;max-width:56ch}
.sobre-hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.3rem}
.sobre-hero__media{position:relative;width:100%;aspect-ratio:4/5;max-width:420px;margin-inline:auto}
.sobre-hero__photo{position:absolute;border-radius:calc(var(--radius) - 2px);overflow:hidden;box-shadow:var(--shadow);
  background:#fff;padding:6px;transition:transform .3s var(--ease)}
.sobre-hero__photo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:calc(var(--radius) - 8px)}
.sobre-hero__photo--back{inset:2% 8% 14% 0;transform:rotate(-4deg);z-index:1}
.sobre-hero__photo--front{inset:14% 0 0 22%;transform:rotate(4deg);z-index:2}
.sobre-hero__media:hover .sobre-hero__photo--back{transform:rotate(-6deg) translateX(-4px)}
.sobre-hero__media:hover .sobre-hero__photo--front{transform:rotate(6deg) translateX(4px)}
.sobre-hero__badge{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);z-index:3;
  width:104px;height:104px;border-radius:50%;background:var(--green);color:var(--green-ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  font-family:var(--display);font-weight:800;font-size:.78rem;line-height:1.25;box-shadow:0 14px 30px -12px rgba(0,0,0,.45)}
.sobre-hero__badge small{font-family:var(--body);font-weight:600;font-size:.66rem;opacity:.85}
@media (max-width:480px){.sobre-hero__badge{width:84px;height:84px;font-size:.68rem}}

/* ---- Barra de destaques ---- */
.sobre-stats{position:relative;overflow:hidden;background:var(--green);color:var(--green-ink)}
.sobre-stats::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(135deg,rgba(0,0,0,.06) 0 2px,transparent 2px 16px)}
.sobre-stats__grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;padding:1.6rem 0}
@media (max-width:760px){.sobre-stats__grid{grid-template-columns:1fr 1fr}}
.sobre-stats__item{display:flex;flex-direction:column;gap:.15rem}
.sobre-stats__item b{font-family:var(--display);font-weight:800;font-size:1.5rem;line-height:1}
.sobre-stats__item span{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;line-height:1.3}

/* ---- Nossa história ---- */
.sobre-historia__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
@media (max-width:860px){.sobre-historia__grid{grid-template-columns:1fr}}
.sobre-historia__media{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card)}
.sobre-historia__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.sobre-historia__tag{position:absolute;right:14px;bottom:14px;background:rgba(18,19,26,.82);color:#fff;padding:.55rem .8rem;
  border-radius:8px;font-family:var(--display);font-weight:700;font-size:.85rem}
.sobre-historia__title{font-size:clamp(1.7rem,3.6vw,2.4rem);margin:0 0 1rem}
.sobre-historia__copy p{color:var(--ink-dim)}

/* ---- Existe um lugar para você ---- */
.sobre-publico__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:2rem}
@media (max-width:980px){.sobre-publico__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.sobre-publico__grid{grid-template-columns:1fr}}
.sobre-publico__card{position:relative;border-radius:var(--radius);padding:1.6rem 1.4rem;min-height:220px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.sobre-publico__card h3{font-size:1.05rem;margin:0 0 .5rem;color:#fff}
.sobre-publico__card p{font-size:.86rem;margin:0;color:rgba(255,255,255,.85);line-height:1.5}
.sobre-publico__card--icon{background:var(--card);border:1px solid var(--line);justify-content:flex-start}
.sobre-publico__card--icon h3{color:var(--ink)}
.sobre-publico__card--icon p{color:var(--ink-dim)}
.sobre-publico__card--dark{background:var(--card);border:1px solid var(--line);justify-content:flex-start}
.sobre-publico__icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;
  background:rgba(202,247,0,.16);color:var(--green-600);margin-bottom:1rem}
.sobre-publico__card--photo{background-size:cover;background-position:center}
.sobre-publico__card--photo::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.78),rgba(0,0,0,.15) 60%)}
.sobre-publico__card--photo h3,.sobre-publico__card--photo p{position:relative;z-index:1}

/* ---- Por que treinar aqui (numerado) ---- */
.sobre-estrutura__grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:1rem}
@media (max-width:760px){.sobre-estrutura__grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.sobre-estrutura__grid{grid-template-columns:1fr}}
.sobre-estrutura__item{padding:1.6rem 1.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background-color .18s var(--ease)}
.sobre-estrutura__item:hover{background:var(--surface)}
.sobre-estrutura__item:nth-child(3n){border-right:none}
@media (max-width:760px){.sobre-estrutura__item:nth-child(2n){border-right:none}.sobre-estrutura__item:nth-child(3n){border-right:1px solid var(--line)}}
@media (max-width:480px){.sobre-estrutura__item{border-right:none!important}}
.sobre-estrutura__n{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;
  border:1.5px solid var(--line);font-family:var(--mono);font-size:.78rem;color:var(--gold-deep);margin-bottom:.9rem;transition:border-color .18s var(--ease)}
.sobre-estrutura__item:hover .sobre-estrutura__n{border-color:var(--green-600)}
.sobre-estrutura__item h3{font-size:1.05rem;margin:0 0 .5rem}
.sobre-estrutura__item p{font-size:.9rem;color:var(--ink-dim);margin:0}

/* ---- Professores (teaser da Sobre) ---- */
.prof-teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,2rem);margin-top:2rem}
@media (max-width:860px){.prof-teaser-grid{grid-template-columns:1fr}}
.prof-teaser{display:grid;grid-template-columns:38% 1fr;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
@media (max-width:560px){.prof-teaser{grid-template-columns:1fr}}
.prof-teaser__media{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--surface-2)}
.prof-teaser__media img{width:100%;height:100%;object-fit:cover}
.prof-teaser__media--empty{display:flex;align-items:center;justify-content:center;color:var(--gold-deep)}
.prof-teaser__belt{position:absolute;left:12px;bottom:12px;z-index:3;display:inline-block;
  font-family:var(--body);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#3a2a00;
  background:linear-gradient(135deg,#ffdd7a,#f7c045);padding:.45rem .7rem;border-radius:8px;line-height:1.25;max-width:calc(100% - 24px);
  box-shadow:0 6px 16px -8px rgba(160,110,0,.7);border:1px solid rgba(255,255,255,.55)}
.prof-teaser__body{padding:clamp(1.3rem,2.6vw,2rem);display:flex;flex-direction:column}
.prof-teaser__name{font-size:clamp(1.25rem,2.4vw,1.55rem);margin:.4rem 0 .8rem;color:var(--ink)}
.prof-teaser__bio p{margin:0 0 .9rem;color:var(--ink-dim);font-size:.96rem;line-height:1.65}
.prof-teaser__bio p:last-child{margin-bottom:0}
.prof-teaser__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.prof-teaser__list li{display:flex;align-items:flex-start;gap:.5rem;font-size:.92rem;color:var(--ink-dim)}
.prof-teaser__list svg{color:var(--gold-deep);flex:none;margin-top:3px}
.prof-teaser__cta{margin-top:1.2rem;padding-top:.2rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.9rem;color:var(--gold-deep)}
.prof-teaser__cta:hover{color:var(--green-600)}

/* ---- De Laguna para os maiores tatames ---- */
.sobre-resultado{background:var(--green);color:var(--green-ink);padding:clamp(2.6rem,6vw,4rem) 0}
.sobre-resultado__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,3rem);align-items:center}
@media (max-width:860px){.sobre-resultado__grid{grid-template-columns:1fr}}
.sobre-resultado__eyebrow{color:var(--green-ink);opacity:.75}
.sobre-resultado__title{font-size:clamp(1.9rem,4vw,2.6rem);margin:.6rem 0 1rem;color:var(--green-ink)}
.sobre-resultado p{color:var(--green-ink);opacity:.88}
.sobre-resultado__stats{display:flex;gap:2rem;margin:1.4rem 0;flex-wrap:wrap}
.sobre-resultado__stats div{display:flex;flex-direction:column;gap:.2rem}
.sobre-resultado__stats b{font-family:var(--display);font-weight:800;font-size:1.6rem}
.sobre-resultado__stats span{font-size:.8rem;font-weight:600;max-width:20ch;opacity:.85}
.sobre-resultado__quote{margin:0 0 1.4rem;font-style:italic;font-weight:600;font-size:1.05rem;border-left:3px solid var(--green-ink);padding-left:1rem}
.sobre-resultado__media{border-radius:var(--radius);overflow:hidden;box-shadow:0 20px 50px -30px rgba(0,0,0,.5)}
.sobre-resultado__media img{width:100%;height:100%;object-fit:cover}

/* ---- Como começa (linha do tempo clara) ---- */
.sobre-steps__grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1.8rem 1.2rem;margin-top:2.6rem;text-align:center}
.sobre-steps__grid::before{content:"";position:absolute;top:17px;left:12%;right:12%;height:1px;background:var(--line);z-index:0}
@media (max-width:760px){.sobre-steps__grid{grid-template-columns:1fr 1fr}.sobre-steps__grid::before{display:none}}
@media (max-width:480px){.sobre-steps__grid{grid-template-columns:1fr}}
.sobre-steps__item{position:relative;z-index:1}
.sobre-steps__n{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;
  background:var(--ink);color:#fff;font-family:var(--display);font-weight:700;margin-bottom:1rem}
.sobre-steps__item h3{font-size:1.05rem;margin:0 0 .5rem}
.sobre-steps__item p{font-size:.9rem;color:var(--ink-dim);margin:0}

/* ---- FAQ da Sobre (2 colunas: intro fixa + lista) ---- */
.sobre-faq__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,3.5rem);align-items:start}
@media (max-width:860px){.sobre-faq__grid{grid-template-columns:1fr}}
.sobre-faq__intro{position:sticky;top:110px}
@media (max-width:860px){.sobre-faq__intro{position:static}}
.sobre-faq__intro h2{font-size:clamp(1.6rem,3.4vw,2.2rem);margin:.6rem 0 1rem}
.sobre-faq__intro p{color:var(--ink-dim);margin:0 0 1.3rem}
.sobre-faq__list{display:flex;flex-direction:column}
.sobre-faq__item{border-bottom:1px solid var(--line);padding:1.15rem 0}
.sobre-faq__item:first-child{padding-top:0}
.sobre-faq__q{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none;
  font-family:var(--display);font-weight:700;font-size:1.02rem;color:var(--ink)}
.sobre-faq__q::-webkit-details-marker{display:none}
.sobre-faq__q:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:6px}
.sobre-faq__toggle{position:relative;flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line);transition:background-color .18s var(--ease),border-color .18s var(--ease)}
.sobre-faq__toggle::before,.sobre-faq__toggle::after{content:"";position:absolute;top:50%;left:50%;background:var(--ink-dim);border-radius:2px;transition:transform .2s var(--ease),background-color .18s var(--ease)}
.sobre-faq__toggle::before{width:10px;height:2px;transform:translate(-50%,-50%)}
.sobre-faq__toggle::after{width:2px;height:10px;transform:translate(-50%,-50%)}
.sobre-faq__item[open] .sobre-faq__toggle{background:var(--green);border-color:var(--green)}
.sobre-faq__item[open] .sobre-faq__toggle::before,.sobre-faq__item[open] .sobre-faq__toggle::after{background:var(--green-ink)}
.sobre-faq__item[open] .sobre-faq__toggle::after{transform:translate(-50%,-50%) scaleY(0)}
.sobre-faq__a{padding-top:.7rem}
.sobre-faq__a p{margin:0;color:var(--ink-dim);line-height:1.6}
@media (prefers-reduced-motion:reduce){.sobre-faq__toggle::before,.sobre-faq__toggle::after{transition:none}}

/* ---- CTA final + contato ---- */
.sobre-close{padding:clamp(2.6rem,6vw,4rem) 0}
.sobre-close__title{font-size:clamp(1.8rem,4vw,2.5rem);margin:.6rem 0 1rem;max-width:22ch}
.sobre-close__text{color:var(--ink-dim);max-width:60ch;margin:0 0 1.4rem}
.sobre-close__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,2.6rem);margin-top:2.2rem;padding-top:2rem;border-top:1px solid var(--line)}
@media (max-width:860px){.sobre-close__grid{grid-template-columns:1fr}}
.sobre-close__info{display:flex;flex-direction:column;gap:1.2rem}
.sobre-close__label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.3rem}
.sobre-close__info strong{font-weight:600;line-height:1.5}
.sobre-close__map{border-radius:var(--radius);overflow:hidden;min-height:220px}
.sobre-close__map iframe{width:100%;height:100%;min-height:220px;border:0}
.sobre-close__map .contact__map-fallback{height:100%;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.6rem;background:var(--surface);color:var(--ink-faint);text-align:center;padding:1.5rem}

/* ==================================================================
   Landing "Jiu-Jitsu Funcional" (v1.33.1) — fiel à referência do dono
   (print de site gerado via ChatGPT). Componentes só desta página.
   ================================================================== */

/* O tracinho do eyebrow nesta página é DOURADO (medido no site de referência
   ao vivo), não verde — troca escopada só aqui pra não afetar a página Sobre,
   que usa o mesmo .eyebrow--dash com o tracinho verde de propósito. */
.func-hero .eyebrow--dash::before,
#o-funcional .eyebrow--dash::before,
.func-steps .eyebrow--dash::before,
#faq.sobre-faq .eyebrow--dash::before,
.func-cta__card .eyebrow--dash::before{background:var(--gold-deep)}

/* ---- Hero (ESCURO — full-bleed foto na coluna, sem card/moldura) ---- */
.func-hero{padding:0}
.func-hero__grid{display:grid;grid-template-columns:1.22fr 1fr;align-items:stretch}
@media (max-width:900px){.func-hero__grid{grid-template-columns:1fr}}
.func-hero__col{display:flex;flex-direction:column;justify-content:center;padding:clamp(2.4rem,6vw,3.6rem) clamp(1.4rem,4vw,3rem) clamp(2.4rem,6vw,3.6rem) 0}
@media (max-width:900px){.func-hero__col{padding:clamp(2.4rem,8vw,3.2rem) 0}}
.func-hero__title{font-family:var(--display);letter-spacing:-.01em;text-wrap:balance;font-size:clamp(2.2rem,5vw,3.5rem);margin:.7rem 0 1.2rem;line-height:1.15;font-weight:600;color:#fff}
.func-hero__title-mark{color:var(--green);font-style:normal}
.func-hero__text-copy{color:var(--ink-dim);margin:0 0 1.4rem;max-width:48ch}
.func-hero__text-copy strong{color:#fff;font-weight:700}
.func-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.8rem;margin-bottom:1.1rem}
.func-hero__link{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:#fff}
.func-hero__link:hover{color:var(--green)}
.func-hero__link svg,.func-steps__link svg{transition:transform .2s var(--ease)}
.func-hero__link:hover svg,.func-steps__link:hover svg{transform:translate(3px,-2px)}
@media (prefers-reduced-motion:reduce){.func-hero__link svg,.func-steps__link svg{transition:none}.func-hero__link:hover svg,.func-steps__link:hover svg{transform:none}}
.func-hero__note{display:flex;align-items:center;gap:.5rem;color:var(--ink-dim);font-size:.9rem}
.func-hero__note svg{color:var(--green);flex:none}
.func-hero__media{position:relative;min-height:clamp(420px,42vw,650px)}
@media (max-width:900px){.func-hero__media{min-height:340px}}
.func-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:900px){.func-hero__media img{object-position:center 12%}}
.func-hero__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--dark),transparent 45%),linear-gradient(0deg,rgba(30,31,30,.77),transparent 30%)}
.func-hero__caption{position:absolute;left:clamp(1.2rem,3vw,2rem);bottom:clamp(1.2rem,3vw,2rem);max-width:260px;z-index:1}
.func-hero__caption::before{content:"";display:block;width:34px;height:3px;background:var(--green);margin-bottom:.7rem}
.func-hero__caption p{margin:0;color:#fff;font-size:.94rem;line-height:1.4;font-weight:600;text-shadow:0 2px 14px rgba(0,0,0,.6)}

/* ---- Destaques (linha de 3 números, fundo claro com divisórias) ---- */
.func-stats{background:#fff;padding:1.8rem 0;border-bottom:1px solid var(--line)}
.func-stats__grid{display:grid;grid-template-columns:repeat(3,1fr)}
.func-stats__item{padding:0 clamp(1rem,3vw,2rem)}
.func-stats__item + .func-stats__item{border-left:1px solid var(--line)}
.func-stats__n{display:block;font-family:var(--display);font-weight:400;font-size:1.65rem;color:var(--gold-deep);margin-bottom:.3rem}
.func-stats__title{display:block;font-weight:700;color:var(--ink);font-size:.92rem}
.func-stats__sub{display:block;color:var(--ink-dim);font-size:.88rem}
@media (max-width:700px){.func-stats__grid{grid-template-columns:1fr;gap:1.2rem}.func-stats__item+.func-stats__item{border-left:0;border-top:1px solid var(--line);padding-top:1.2rem}}

/* ---- Cabeçalho de seção em 2 colunas (título esq. + parágrafo dir.) ---- */
.func-head{display:grid;grid-template-columns:1.3fr 1fr;gap:2rem;align-items:end;margin-bottom:2.4rem}
@media (max-width:860px){.func-head{grid-template-columns:1fr}}
.func-head__title{font-size:clamp(1.9rem,4vw,2.6rem);margin:.6rem 0 0}
.func-head__text{color:var(--ink-dim);margin:0}

/* ---- "O Funcional" — 6 cards à esquerda, ícone + numeração ---- */
.func-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media (max-width:860px){.func-cards{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.func-cards{grid-template-columns:1fr}}
.func-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.7rem;box-shadow:var(--shadow-card);
  transition:border-color .2s var(--ease),transform .2s var(--ease)}
.func-card:hover{border-color:#a0b66d;transform:translateY(-3px)}
@media (prefers-reduced-motion:reduce){.func-card{transition:none}.func-card:hover{transform:none}}
.func-card__top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.1rem}
.func-card__icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;background:var(--surface);color:var(--ink)}
.func-card__n{color:var(--ink-faint);font-size:.85rem;font-weight:600}
.func-card__title{font-size:1.1rem;margin-bottom:.5rem}
.func-card__text{color:var(--ink-dim);font-size:.92rem;line-height:1.55}
.func-note{display:flex;align-items:center;justify-content:center;gap:.8rem;text-align:center;margin-top:1.6rem;
  padding:1.1rem 1.4rem;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-card);color:var(--ink-dim);font-size:.92rem}
.func-note__badge{flex:none;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--green);color:var(--green-ink)}
.func-note strong{color:var(--ink)}

/* ---- Bio do professor (foto ESQ. + texto DIR. — swap do .split padrão) ---- */
.func-bio__media{position:relative}
.func-bio__caption{position:absolute;left:1.2rem;bottom:1.2rem;max-width:calc(100% - 2.4rem);background:rgba(255,255,255,.925);
  color:var(--dark);font-size:.82rem;font-weight:600;padding:.5rem .9rem;border-radius:8px}

/* ---- "Seu primeiro passo" (ESCURO — cabeçalho com link + cards numerados) ---- */
.func-steps{padding:clamp(3rem,7vw,5rem) 0}
.func-steps__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.4rem}
.func-steps__title{font-size:clamp(1.9rem,4vw,2.6rem);margin:.6rem 0 0;color:#fff}
.func-steps__link{display:inline-flex;align-items:center;gap:.7rem;font-weight:600;color:var(--green);padding-bottom:.3rem;border-bottom:1px solid var(--line)}
.func-steps__link svg{flex:none}
.func-steps__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media (max-width:760px){.func-steps__grid{grid-template-columns:1fr}.func-steps__head{flex-direction:column;align-items:flex-start}}
.func-step{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.7rem}
.func-step__n{display:block;font-family:var(--display);font-weight:400;font-size:1.9rem;color:var(--green);margin-bottom:.8rem}
.func-step__line{display:block;width:85%;height:1px;background:#414634;margin-bottom:1rem}
.func-step__title{color:#fff;font-size:1.1rem;margin-bottom:.5rem}
.func-step__text{color:var(--ink-dim);font-size:.92rem;line-height:1.55}

/* ---- FAQ em 2 colunas (mesmo padrão visual da página Sobre — .sobre-faq*) ---- */

/* ---- CTA final: card ESCURO com form BRANCO flutuando dentro ---- */
.func-cta{padding:clamp(1.2rem,3vw,2rem) 0 clamp(3.2rem,6vw,4.6rem)}
.func-cta__card{border-radius:calc(var(--radius) + 6px);padding:clamp(2rem,5vw,3.5rem);
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,3rem);align-items:center}
@media (max-width:900px){.func-cta__card{grid-template-columns:1fr}}
.func-cta__title{font-size:clamp(1.9rem,4vw,2.6rem);margin:.6rem 0 1rem;color:#fff}
.func-cta__title-mark{color:var(--green)}
.func-cta__text{color:var(--ink-dim);margin:0 0 1.6rem;max-width:44ch}
.func-cta__pin{display:flex;align-items:flex-start;gap:.6rem;color:var(--ink-dim);font-size:.92rem}
.func-cta__pin strong{display:block;color:#fff}
.func-cta__pin svg{color:var(--green);flex:none;margin-top:2px}
.func-cta__form{--card:#ffffff;--line:#e6e6e1;--surface:#f6f6f4;--ink:#16171b;--ink-dim:#565656;--ink-faint:#8a8a86;
  background:var(--card);color:var(--ink);border-radius:var(--radius);padding:clamp(1.6rem,4vw,2.2rem);box-shadow:0 25px 60px -20px rgba(0,0,0,.5)}
.func-cta__form h3{font-size:1.3rem;margin:0 0 .3rem;color:var(--ink)}
.func-cta__form > p{color:var(--ink-dim);font-size:.92rem;margin:0 0 1.4rem}
.func-cta__field{margin-bottom:1.1rem}
.func-cta__field label{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;font-weight:700;font-size:.88rem;margin-bottom:.4rem;color:var(--ink)}
.func-cta__field label small{font-weight:500;color:var(--ink-faint)}
.func-cta__hint{color:var(--ink-faint);font-size:.8rem;text-align:center;margin:.9rem 0 0}

/* ==================================================================
   Landing "Jiu-Jitsu Adulto" — Hero dedicado (v1.35.0), fiel ao site
   de referência ao vivo do dono do negócio (medido via getComputedStyle/
   cssRules — mesmos tokens de cor do tema, só layout+copy foram clonados).
   Substitui o carrossel de banners genérico só nesta seção.
   ================================================================== */
.adulto-hero .eyebrow--dash::before{background:var(--gold-deep)}
.adulto-hero{padding:0}
.adulto-hero__grid{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch}
@media (max-width:900px){.adulto-hero__grid{grid-template-columns:1fr}}
.adulto-hero__col{display:flex;flex-direction:column;justify-content:center;padding:clamp(2.4rem,6vw,3.6rem) clamp(1.4rem,4vw,3rem) clamp(2.4rem,6vw,3.6rem) 0}
@media (max-width:900px){.adulto-hero__col{padding:clamp(2.4rem,8vw,3.2rem) 0}}
.adulto-hero__title{font-size:clamp(2.4rem,4.6vw,3.75rem);margin:.7rem 0 1.2rem}
.adulto-hero__title-mark{color:var(--gold-deep);font-style:normal}
.adulto-hero__text{color:var(--ink-dim);margin:0 0 1.5rem;max-width:48ch}
.adulto-hero__action{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;margin-bottom:1.5rem}
.adulto-hero__note{color:var(--ink-faint);font-size:.85rem;margin:0}
.adulto-hero__points{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:0;padding-top:1.3rem;border-top:1px solid var(--line)}
.adulto-hero__points li{display:flex;align-items:center;gap:.45rem;color:var(--ink-dim);font-size:.9rem}
.adulto-hero__points svg{color:var(--green);flex:none}
.adulto-hero__media{position:relative;min-height:clamp(360px,42vw,620px)}
@media (max-width:900px){.adulto-hero__media{min-height:440px}}
.adulto-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.adulto-hero__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--dark),transparent 45%),linear-gradient(0deg,rgba(30,31,30,.6),transparent 30%)}

/* ==================================================================
   Landing "Jiu-Jitsu Feminino" — Hero dedicado (v1.36.0), mesma técnica/
   tokens da Adulto, fiel ao site de referência ao vivo do dono do negócio.
   Substitui o carrossel de banners genérico só nesta seção.
   ================================================================== */
.feminino-hero .eyebrow--dash::before{background:var(--gold-deep)}
.feminino-hero{padding:0}
.feminino-hero__grid{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch}
@media (max-width:900px){.feminino-hero__grid{grid-template-columns:1fr}}
.feminino-hero__col{display:flex;flex-direction:column;justify-content:center;padding:clamp(2.4rem,6vw,3.6rem) clamp(1.4rem,4vw,3rem) clamp(2.4rem,6vw,3.6rem) 0}
@media (max-width:900px){.feminino-hero__col{padding:clamp(2.4rem,8vw,3.2rem) 0}}
.feminino-hero__title{font-size:clamp(2.4rem,4.6vw,3.75rem);margin:.7rem 0 1.2rem}
.feminino-hero__title-mark{color:var(--gold-deep);font-style:normal}
.feminino-hero__text{color:var(--ink-dim);margin:0 0 1.5rem;max-width:48ch}
.feminino-hero__action{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;margin-bottom:1.5rem}
.feminino-hero__note{color:var(--ink-faint);font-size:.85rem;margin:0}
.feminino-hero__points{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:0;padding-top:1.3rem;border-top:1px solid var(--line)}
.feminino-hero__points li{display:flex;align-items:center;gap:.45rem;color:var(--ink-dim);font-size:.9rem}
.feminino-hero__points svg{color:var(--green);flex:none}
.feminino-hero__media{position:relative;min-height:clamp(360px,42vw,620px)}
@media (max-width:900px){.feminino-hero__media{min-height:440px}}
.feminino-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.feminino-hero__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--dark),transparent 45%),linear-gradient(0deg,rgba(30,31,30,.6),transparent 30%)}

/* ==================================================================
   Landing "NoGi" — Hero dedicado (v1.37.0), mesma técnica/tokens da
   Adulto/Feminino. Substitui o carrossel de banners genérico só nesta seção.
   ================================================================== */
.nogi-hero .eyebrow--dash::before{background:var(--gold-deep)}
.nogi-hero{padding:0}
.nogi-hero__grid{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch}
@media (max-width:900px){.nogi-hero__grid{grid-template-columns:1fr}}
.nogi-hero__col{display:flex;flex-direction:column;justify-content:center;padding:clamp(2.4rem,6vw,3.6rem) clamp(1.4rem,4vw,3rem) clamp(2.4rem,6vw,3.6rem) 0}
@media (max-width:900px){.nogi-hero__col{padding:clamp(2.4rem,8vw,3.2rem) 0}}
.nogi-hero__title{font-size:clamp(2.4rem,4.6vw,3.75rem);margin:.7rem 0 1.2rem}
.nogi-hero__title-mark{color:var(--gold-deep);font-style:normal}
.nogi-hero__text{color:var(--ink-dim);margin:0 0 1.5rem;max-width:48ch}
.nogi-hero__action{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;margin-bottom:1.5rem}
.nogi-hero__note{color:var(--ink-faint);font-size:.85rem;margin:0}
.nogi-hero__points{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:0;padding-top:1.3rem;border-top:1px solid var(--line)}
.nogi-hero__points li{display:flex;align-items:center;gap:.45rem;color:var(--ink-dim);font-size:.9rem}
.nogi-hero__points svg{color:var(--green);flex:none}
.nogi-hero__media{position:relative;min-height:clamp(360px,42vw,620px)}
@media (max-width:900px){.nogi-hero__media{min-height:440px}}
.nogi-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.nogi-hero__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--dark),transparent 45%),linear-gradient(0deg,rgba(30,31,30,.6),transparent 30%)}

/* ==================================================================
   Landing "Aulas Particulares" — Hero dedicado (v1.37.0), mesma técnica/
   tokens da Adulto/Feminino/NoGi. Substitui o carrossel genérico só aqui.
   ================================================================== */
.particulares-hero .eyebrow--dash::before{background:var(--gold-deep)}
.particulares-hero{padding:0}
.particulares-hero__grid{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch}
@media (max-width:900px){.particulares-hero__grid{grid-template-columns:1fr}}
.particulares-hero__col{display:flex;flex-direction:column;justify-content:center;padding:clamp(2.4rem,6vw,3.6rem) clamp(1.4rem,4vw,3rem) clamp(2.4rem,6vw,3.6rem) 0}
@media (max-width:900px){.particulares-hero__col{padding:clamp(2.4rem,8vw,3.2rem) 0}}
.particulares-hero__title{font-size:clamp(2.4rem,4.6vw,3.75rem);margin:.7rem 0 1.2rem}
.particulares-hero__title-mark{color:var(--gold-deep);font-style:normal}
.particulares-hero__text{color:var(--ink-dim);margin:0 0 1.5rem;max-width:48ch}
.particulares-hero__action{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;margin-bottom:1.5rem}
.particulares-hero__note{color:var(--ink-faint);font-size:.85rem;margin:0}
.particulares-hero__points{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:0;padding-top:1.3rem;border-top:1px solid var(--line)}
.particulares-hero__points li{display:flex;align-items:center;gap:.45rem;color:var(--ink-dim);font-size:.9rem}
.particulares-hero__points svg{color:var(--green);flex:none}
.particulares-hero__media{position:relative;min-height:clamp(360px,42vw,620px)}
@media (max-width:900px){.particulares-hero__media{min-height:440px}}
.particulares-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.particulares-hero__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--dark),transparent 45%),linear-gradient(0deg,rgba(30,31,30,.6),transparent 30%)}
