@font-face { font-family: "space"; src: url("../fonts/space.woff2") format("woff2"); font-display: swap; }

:root {
  --ink: #300b4a;
  --mar: #623d7c;
  --espuma: #ece6f3;
  --acafrao: #f0a579;
  --acafrao-deep: #b9764b;
  --branco: #fcfbfd;
  --display: "space", "Bricolage Grotesque", system-ui, sans-serif;
  --body: "Figtree", system-ui, sans-serif;
}
* { box-sizing: border-box; margin: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { font-family: var(--body); font-size: 1.0625rem; line-height: 1.6; color: var(--ink); background: var(--branco); }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--acafrao); outline-offset: 3px; }

.wrap { width: min(1120px, 100% - 32px); margin-inline: auto; }
h1, h2, h3 { font-family: var(--display); line-height: 1.05; letter-spacing: -0.02em; }
h2 { font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 800; }
.ico { width: 1.25rem; height: 1.25rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Botão */
.btn {
  display: inline-block; font-family: var(--display); font-weight: 700; font-size: 1.125rem; text-decoration: none;
  background: var(--acafrao); color: var(--ink); padding: 1.05rem 1.75rem; border-radius: 999px;
  box-shadow: 0 6px 0 var(--acafrao-deep); transition: transform .15s, box-shadow .15s;
}
.btn:hover { transform: translateY(3px); box-shadow: 0 3px 0 var(--acafrao-deep); }
.btn:active { transform: translateY(6px); box-shadow: 0 0 0 var(--acafrao-deep); }
.btn.sm { font-size: .95rem; padding: .65rem 1.15rem; box-shadow: 0 4px 0 var(--acafrao-deep); }
.btn.sm:hover { transform: translateY(2px); box-shadow: 0 2px 0 var(--acafrao-deep); }
.btn.ghost { background: transparent; color: var(--branco); box-shadow: none; border: 2px solid rgba(255,255,255,.5); }
.btn.ghost:hover { transform: none; border-color: var(--acafrao); }
.btn.ghost-dark { background: transparent; color: var(--ink); box-shadow: none; border: 2px solid var(--mar); }
.btn.ghost-dark:hover { transform: none; background: var(--espuma); }

/* Cabeçalho */
.topo { position: sticky; top: 0; z-index: 50; background: var(--branco); border-bottom: 1px solid var(--espuma); }
.topo .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 68px; }
.topo .brand img { height: 40px; width: auto; }
.menu { display: flex; align-items: center; gap: clamp(14px, 2.4vw, 32px); }
.menu a { text-decoration: none; font-weight: 600; font-size: .98rem; color: var(--mar); padding-block: .4rem; border-bottom: 2px solid transparent; }
.menu a:hover, .menu a[aria-current="page"] { border-bottom-color: var(--acafrao); color: var(--ink); }
.menu a.btn { color: var(--ink); border: 0; padding: .65rem 1.15rem; }
.burger { display: none; background: none; border: 0; padding: .5rem; cursor: pointer; color: var(--ink); }
.burger svg { width: 28px; height: 28px; }

/* Placeholders de foto */
.foto {
  display: grid; place-items: center; text-align: center;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,.06) 0 12px, transparent 12px 24px), var(--mar);
  color: var(--espuma); font-size: .95rem; padding: 1rem;
}
.foto strong { display: block; font-family: var(--display); font-size: 1.25rem; }

/* Onda do calçadão, assinatura da página */
.onda { width: 100%; height: 28px; color: var(--acafrao); }

/* HERO (home) */
.hero { background: var(--ink); color: var(--branco); position: relative; overflow: hidden; }
.hero .wrap { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(24px, 5vw, 64px); align-items: center; padding-block: clamp(40px, 8vw, 96px); }
.hero h1 { font-size: clamp(2.5rem, 7vw, 4.75rem); font-weight: 800; }
.hero h1 em { font-style: normal; color: var(--acafrao); }
.hero .sub { margin: 1.25rem 0 2rem; font-size: 1.2rem; max-width: 34ch; color: var(--espuma); }
.hero .foto { aspect-ratio: 4 / 5; border-radius: 240px 240px 16px 16px; }
.hero-foto img { width: 100%; height: auto; filter: drop-shadow(0 24px 40px rgba(0,0,0,.4)); }
.hero small { display: block; margin-top: 1rem; opacity: .7; font-size: .9rem; }

/* Cabeçalho de páginas internas */
.pagina-topo { background: var(--ink); color: var(--branco); }
.pagina-topo .wrap { padding-block: clamp(40px, 7vw, 80px) clamp(28px, 5vw, 56px); }
.pagina-topo .eyebrow { font-weight: 600; color: var(--acafrao); letter-spacing: .08em; text-transform: uppercase; font-size: .85rem; margin-bottom: .75rem; }
.pagina-topo h1 { font-size: clamp(2.25rem, 6vw, 4rem); font-weight: 800; max-width: 18ch; }
.pagina-topo p { margin-top: 1rem; max-width: 52ch; color: var(--espuma); font-size: 1.15rem; }

.secao { padding-block: clamp(48px, 8vw, 96px); }
.secao.alt { background: var(--espuma); }
.secao > .wrap > h2 { margin-bottom: 2rem; }

/* POR QUE AQUI */
.porque h2 { max-width: 16ch; margin-bottom: 2.5rem; }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
.card { background: var(--espuma); border-radius: 18px; padding: 1.75rem; }
.card h3 { font-size: 1.4rem; font-weight: 700; margin-bottom: .6rem; color: var(--mar); }

/* Faixa de horários (home) */
.horarios { margin-top: 3rem; }
.horarios h3 { font-size: 1.4rem; font-weight: 700; margin-bottom: 1rem; }
.faixa { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
.faixa img { flex: 0 0 min(320px, 80%); height: auto; scroll-snap-align: start; border-radius: 14px; border: 1px solid var(--espuma); }
.mais { margin-top: 1.25rem; }
.mais a { font-weight: 600; color: var(--mar); }

/* PLANOS */
.planos { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; align-items: stretch; }
.plano { position: relative; background: var(--branco); border: 2px solid var(--espuma); border-radius: 20px; padding: 1.75rem; display: flex; flex-direction: column; }
.plano.destaque { border-color: var(--mar); background: var(--ink); color: var(--branco); }
.plano .selo { position: absolute; top: -14px; left: 1.5rem; background: var(--acafrao); color: var(--ink); font-weight: 700; font-size: .8rem; padding: .25rem .8rem; border-radius: 999px; }
.plano h3 { font-size: 1.6rem; font-weight: 800; }
.plano .resumo { margin-top: .35rem; color: var(--mar); font-weight: 600; }
.plano.destaque .resumo { color: var(--acafrao); }
.plano .preco { font-family: var(--display); font-size: 2.25rem; font-weight: 800; margin: 1.25rem 0 .25rem; }
.plano .preco small { font-family: var(--body); font-size: .95rem; font-weight: 500; opacity: .75; }
.plano ul { list-style: none; padding: 0; margin: 1rem 0 1.5rem; display: grid; gap: .5rem; font-size: .98rem; }
.plano li { padding-left: 1.6rem; position: relative; }
.plano li::before { content: ""; position: absolute; left: 0; top: .55em; width: .9rem; height: .5rem; border-left: 3px solid var(--acafrao); border-bottom: 3px solid var(--acafrao); transform: rotate(-45deg) translateY(-30%); }
.plano .btn { margin-top: auto; text-align: center; }

.grupo { margin-bottom: 3.5rem; }
.grupo > h3 { font-size: clamp(1.5rem, 3.5vw, 2rem); font-weight: 800; margin-bottom: .35rem; }
.grupo > p { margin-bottom: 1.5rem; color: var(--mar); max-width: 62ch; }

.regras { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.regra { background: var(--branco); border-radius: 16px; padding: 1.5rem; border-left: 6px solid var(--acafrao); }
.regra h3 { font-size: 1.2rem; margin-bottom: .5rem; }
.familiar { margin-top: 2rem; background: var(--mar); color: var(--branco); border-radius: 20px; padding: 2rem; display: grid; gap: .5rem; }
.familiar h3 { font-size: 1.6rem; color: var(--acafrao); }

/* GRADE DE HORÁRIOS */
.grade-wrap { overflow-x: auto; border-radius: 16px; border: 2px solid var(--ink); background: var(--branco); }
table.grade { border-collapse: collapse; width: 100%; min-width: 760px; table-layout: fixed; font-size: .95rem; }
.grade th, .grade td { border: 1px solid rgba(48,11,74,.25); text-align: center; padding: .6rem .4rem; height: 64px; }
.grade thead th { background: var(--ink); color: var(--branco); font-family: var(--display); letter-spacing: .06em; height: auto; padding: .85rem .4rem; }
.grade tbody th { background: var(--espuma); font-family: var(--display); font-weight: 800; width: 76px; position: sticky; left: 0; }
.grade td.aula { position: relative; font-weight: 700; line-height: 1.2; }
.grade td.aula span { display: block; font-weight: 500; font-size: .85rem; margin-top: .15rem; }
.grade td.aula.on::after { content: ""; position: absolute; right: 0; bottom: 0; width: 12px; height: 12px; background: var(--ink); }
.legenda { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 1rem; font-size: .95rem; }
.legenda i { display: inline-block; width: 12px; height: 12px; background: var(--ink); margin-right: .5rem; }
.dica-rolagem { display: none; margin-top: .75rem; font-size: .9rem; color: var(--mar); }
.c-pocket { background: #fdf0c8; } .c-flow { background: #f7d354; } .c-oni { background: #b0d69b; }
.c-cordas { background: #f98d8d; } .c-kids { background: #fbf3c9; } .c-hatha { background: #b3e8fb; }
.c-hvinyasa { background: #5bd3fb; } .c-dakshina { background: #d8ac3e; } .c-hatha2 { background: #e2eedb; }
.c-cadeira { background: #fff; } .c-gentil { background: #bb86e8; } .c-sutil { background: #f4d3f4; }
.c-medit { background: #ececec; } .c-sound { background: #8fc1e3; } .c-hatha3 { background: #f4b591; }
.c-hflow { background: #ef9a68; } .c-mtvy { background: #8b9eea; } .c-hflow2 { background: #bfa39a; }

.antes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }

/* PROVA SOCIAL */
.prova h2 { margin-bottom: 2.5rem; }
.depoimentos { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
blockquote { background: var(--branco); border-radius: 18px; padding: 1.75rem; border-left: 6px solid var(--acafrao); }
blockquote p { font-family: var(--display); font-size: 1.25rem; font-weight: 500; line-height: 1.3; }
blockquote footer { margin-top: 1rem; font-size: .9rem; color: var(--mar); }

/* OFERTA */
.oferta { position: relative; color: var(--branco); }
.oferta .foto { position: absolute; inset: 0; border-radius: 0; z-index: 0; }
.oferta .veu { position: absolute; inset: 0; background: rgba(48,11,74,.80); z-index: 1; }
.oferta .wrap { position: relative; z-index: 2; padding-block: clamp(72px, 11vw, 140px); text-align: center; }
.oferta h2 { max-width: 14ch; margin-inline: auto; }
.oferta p { margin: 1.25rem auto 2rem; max-width: 40ch; color: var(--espuma); font-size: 1.15rem; }
.avulsa { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.25); font-size: 1rem; }
.avulsa strong { font-family: var(--display); font-size: 1.5rem; color: var(--acafrao); }
.avulsa a { color: var(--branco); font-weight: 600; }

/* TERMO */
.termo { display: grid; grid-template-columns: 220px 1fr; gap: clamp(24px, 5vw, 64px); align-items: start; }
.termo nav { position: sticky; top: 92px; display: grid; gap: .35rem; font-size: .92rem; }
.termo nav a { text-decoration: none; color: var(--mar); padding: .25rem .75rem; border-left: 3px solid var(--espuma); }
.termo nav a:hover { border-left-color: var(--acafrao); color: var(--ink); }
.clausula { padding-block: 1.5rem; border-top: 1px solid var(--espuma); max-width: 68ch; }
.clausula:first-of-type { border-top: 0; padding-top: 0; }
.clausula h2 { font-size: 1.5rem; margin-bottom: .6rem; }
.clausula p + p { margin-top: .75rem; }
.clausula a { color: var(--mar); font-weight: 600; }
.assinatura { margin-top: 2rem; padding: 1.5rem; background: var(--espuma); border-radius: 16px; max-width: 68ch; }
.assinatura strong { display: block; font-family: var(--display); font-size: 1.2rem; }

/* CONTATO */
.contato-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(20px, 4vw, 48px); align-items: stretch; }
.canais { display: grid; gap: 16px; align-content: start; }
.canal { display: flex; align-items: center; gap: 1rem; text-decoration: none; background: var(--branco); border: 2px solid var(--espuma); border-radius: 20px; padding: 1.25rem 1.5rem; transition: border-color .15s, transform .15s; }
.canal:hover { border-color: var(--acafrao); transform: translateY(-2px); }
.canal .ico-caixa { flex: 0 0 52px; height: 52px; border-radius: 50%; background: var(--ink); color: var(--acafrao); display: grid; place-items: center; }
.canal .ico-caixa svg { width: 26px; height: 26px; }
.canal small { display: block; color: var(--mar); font-weight: 600; font-size: .85rem; }
.canal strong { font-family: var(--display); font-size: 1.25rem; }
.canal.principal { background: var(--ink); color: var(--branco); border-color: var(--ink); }
.canal.principal small { color: var(--acafrao); }
.mapa { border-radius: 28px; overflow: hidden; border: 2px solid var(--ink); min-height: 420px; background: var(--espuma); }
.mapa iframe { width: 100%; height: 100%; min-height: 420px; border: 0; display: block; }
.como-chegar { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.como-chegar div { background: var(--espuma); border-radius: 16px; padding: 1.25rem 1.5rem; }
.como-chegar h3 { font-size: 1.1rem; color: var(--mar); margin-bottom: .35rem; }

/* CTA FINAL + RODAPÉ */
.final { background: var(--ink); color: var(--branco); text-align: center; padding-block: clamp(56px, 9vw, 96px) 32px; }
.final h2 { max-width: 16ch; margin: 0 auto 1.75rem; }
.rodape-nav { margin-top: 3rem; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: center; font-size: .95rem; }
.rodape-nav a { text-decoration: none; color: var(--espuma); }
.rodape-nav a:hover { color: var(--acafrao); }
.contato { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .5rem 2rem; justify-content: center; font-size: .95rem; color: var(--espuma); }
.contato a { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; }
.direitos { margin-top: 1.5rem; font-size: .8rem; opacity: .6; }

@media (max-width: 900px) {
  .burger { display: block; }
  .menu { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--branco); flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 16px 1.25rem; border-bottom: 1px solid var(--espuma); }
  .menu.aberto { display: flex; }
  .menu a { padding: .9rem 0; border-bottom: 1px solid var(--espuma); }
  .menu a.btn { margin-top: 1rem; text-align: center; border-bottom: 0; }
  .termo { grid-template-columns: 1fr; }
  .termo nav { position: static; grid-template-columns: 1fr 1fr; }
  .contato-grid { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .hero .wrap { grid-template-columns: 1fr; }
  .hero .foto { aspect-ratio: 4 / 3; border-radius: 120px 120px 16px 16px; }
  .hero-foto { max-width: 380px; margin-inline: auto; }
  .dica-rolagem { display: block; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn, .canal { transition: none; }
}
