/* ==================================================================
   IRALU TENNIS — iralu-extra.css
   Carrega DEPOIS do styles.css. Só classes novas / realces aditivos —
   não altera nem depende do styles.css. Cobre:
     A) Quiz redesenhado (cards qopt/qchip, grade, animações)
     B) Realce visual + movimento da home (reveal, nav, glows, hover)
   Tudo respeita "reduzir movimento" no fim do arquivo.
   ================================================================== */

/* ---------- Editar perfil: avatar do hero clicável (badge de câmera) ---------- */
.pl-hero__avbtn {
  position: relative; padding: 0; border: none; background: none; cursor: pointer;
  border-radius: 50%; flex: none; line-height: 0;
}
.pl-hero__avcam {
  position: absolute; left: -3px; bottom: -3px;
  width: 1.5rem; height: 1.5rem; display: grid; place-items: center;
  font-size: 0.78rem; border-radius: 50%;
  background: var(--lime, #b4f03a); color: var(--on-accent, #0a0f0a);
  box-shadow: 0 0 0 2px var(--surface, #111a24);
}
.pl-hero__avbtn:hover .pl-hero__avcam { transform: scale(1.08); }
/* bolinha da bola de evolução no canto OPOSTO da câmera (direita) */
.pl-hero__avbtn .pl-hero__ball {
  position: absolute; right: -4px; bottom: -4px; left: auto; top: auto;
  box-shadow: 0 0 0 2px var(--surface, #111a24);
}

/* modal de editar perfil */
.ep-photo { display: flex; align-items: center; gap: 1rem; }
.ep-photo__av { width: 84px; height: 84px; flex: none; border-radius: 50%; overflow: hidden; }
.ep-photo__img { width: 84px; height: 84px; object-fit: cover; border-radius: 50%; }
.ep-photo__ini {
  width: 84px; height: 84px; display: grid; place-items: center; border-radius: 50%;
  font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.8rem;
  font-weight: 800; color: #0a0f0a;
}
.ep-photo__actions { display: flex; flex-direction: column; gap: 0.4rem; }
.modal__box--wide .modal__body > .ep-photo { grid-column: 1 / -1; }

/* ---------- Hero: stats (estavam sem CSS → número e label grudados) ---------- */
.hero__stats { display: flex; flex-wrap: wrap; gap: 1.1rem 2rem; margin-top: 1.7rem; }
.stat { display: flex; flex-direction: column; gap: 0.15rem; position: relative; }
.stat + .stat { padding-left: 2rem; }
.stat + .stat::before {
  content: ""; position: absolute; left: 0; top: 0.1rem; bottom: 0.1rem;
  width: 1px; background: var(--line, rgba(255, 255, 255, 0.12));
}
.stat__num {
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1.9rem; font-weight: 800; line-height: 1;
  background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.stat__label { font-size: 0.82rem; color: var(--text-2, #9aabb4); line-height: 1.2; }
@media (max-width: 560px) {
  .stat + .stat { padding-left: 0; }
  .stat + .stat::before { display: none; }
}

/* ============== A) QUIZ ========================================== */
/* tudo na MESMA largura dos cards (compacto, centralizado, equilibrado) */
.quiz { max-width: 560px; margin-left: auto; margin-right: auto; }

/* exceção: múltipla escolha (objetivos, dias, horários) usa mais largura no desktop → mais horizontal */
@media (min-width: 760px) {
  .quiz[data-step="objetivos"], .quiz[data-step="dias"], .quiz[data-step="horarios"] { max-width: 880px; }
}
.quiz__progress, .quiz__step-label, .quiz__q, .quiz__hint, .quiz__error, .quiz__nav,
.qopts, .qgoals, .qgrid, .qdate { max-width: 100%; margin-left: auto; margin-right: auto; }

/* aproxima barra de progresso, contador e título das opções (menos respiro) */
.quiz__progress { margin-bottom: .5rem; }
.quiz__step-label { margin-bottom: .25rem; }
.quiz__q { margin-bottom: .3rem; }
.quiz__hint { margin-bottom: .85rem; }
.quiz__nav { margin-top: 1rem; }

/* container do quiz com menos espaço vazio nas laterais e embaixo */
#quiz .section { padding-top: .4rem; padding-bottom: 1.3rem; }
#quiz .section > .section-title { margin-bottom: .25rem; }
#quiz .section > .section-lead { margin-bottom: 1.1rem; }

/* faixa superior (Voltar ao site / título) — leve, minimalista, integrada */
.screen .screen-bar {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  padding: .3rem 0; margin-bottom: .45rem; min-height: 0;
  background: transparent; border: 0; box-shadow: none;
}
.screen .screen-bar .back { font-size: .85rem; font-weight: 500; opacity: .72; }
.screen .screen-bar .back:hover { opacity: 1; }
.screen .screen-bar__title { font-size: .8rem; font-weight: 500; letter-spacing: .02em; opacity: .55; }

/* campo de data: limpo, centralizado, só digitação com máscara */
.qdate { display: flex; justify-content: center; max-width: 280px; margin-left: auto; margin-right: auto; }
.qdate__text { width: 100%; text-align: center; letter-spacing: .08em; font-variant-numeric: tabular-nums; }

.qopts { display: flex; flex-direction: column; gap: .5rem; max-width: 560px; margin-left: auto; margin-right: auto; }
.qopt {
  display: flex; align-items: center; gap: .75rem; width: 100%; text-align: left;
  padding: .62rem .9rem; border-radius: 14px; border: 1px solid var(--line, rgba(255,255,255,.12));
  background: var(--surface-2, var(--surface, #151b27)); color: inherit; font: inherit; cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.qopt:hover { transform: translateY(-2px); border-color: #b4f03a; background: var(--surface-3, #1c2331); box-shadow: 0 8px 22px rgba(0,0,0,.28); }
.qopt:focus-visible { outline: 2px solid #b4f03a; outline-offset: 2px; }
.qopt[aria-pressed="true"] { border-color: #b4f03a; background: rgba(180,240,58,.10); box-shadow: 0 0 0 1px #b4f03a inset; }
.qopt__txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: .12rem; }
.qopt__label { font-weight: 700; font-size: .98rem; line-height: 1.18; }
.qopt__desc  { font-size: .8rem; opacity: .62; line-height: 1.28; }
.qopt__go {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%; background: rgba(180,240,58,.12); color: #b4f03a;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}
.qopt__go svg { width: 20px; height: 20px; }
.qopt:hover .qopt__go, .qopt:focus-visible .qopt__go, .qopt[aria-pressed="true"] .qopt__go {
  transform: translateX(4px); background: #b4f03a; color: #0e1118;
}

.qgoals { display: flex; flex-direction: column; gap: .7rem; }
.qgoal-group__title { font-size: .82rem; font-weight: 600; opacity: .75; margin-bottom: .4rem; }
.qgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .5rem; }
.qgrid--days { grid-template-columns: repeat(auto-fit, minmax(76px, 1fr)); }
.qchip {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .12rem; text-align: center; padding: .62rem .55rem; border-radius: 12px;
  border: 1px solid var(--line, rgba(255,255,255,.12)); background: var(--surface-2, var(--surface, #151b27));
  color: inherit; font: inherit; font-size: .86rem; cursor: pointer;
  transition: transform .14s ease, border-color .14s ease, background .14s ease;
}
.qchip:hover { transform: translateY(-2px); border-color: #b4f03a; background: var(--surface-3, #1c2331); }
.qchip:focus-visible { outline: 2px solid #b4f03a; outline-offset: 2px; }
.qchip.is-on { border-color: #b4f03a; background: rgba(180,240,58,.12); box-shadow: 0 0 0 1px #b4f03a inset; }
.qchip__label { font-weight: 600; line-height: 1.2; }
.qchip__desc  { font-size: .72rem; opacity: .6; line-height: 1.25; }
.qchip__tick { position: absolute; top: 5px; right: 8px; font-size: .72rem; color: #b4f03a; opacity: 0; transform: scale(.6); transition: opacity .14s ease, transform .14s ease; }
.qchip.is-on .qchip__tick { opacity: 1; transform: scale(1); }

.qnext-soft {
  margin-left: auto; justify-self: end; background: transparent; border: 0; color: var(--text-2, #9aa3b2);
  font: inherit; font-size: .85rem; padding: .5rem .4rem; cursor: pointer; opacity: .7;
  text-decoration: underline; text-underline-offset: 3px;
}
.qnext-soft:hover { color: #b4f03a; opacity: 1; }

@keyframes qzSlideIn { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } }
.qz-anim { animation: qzSlideIn .26s cubic-bezier(.22,.61,.36,1) both; }

.lead-summary .row { display: flex; align-items: baseline; gap: .55rem; flex-wrap: wrap; }
.lead-summary .row .v { flex: 1 1 auto; min-width: 0; }
.summary-edit {
  flex: 0 0 auto; margin-left: auto; background: transparent; border: 1px solid var(--line, rgba(255,255,255,.18));
  color: #b4f03a; font: inherit; font-size: .76rem; font-weight: 600; padding: .16rem .6rem; border-radius: 999px;
  cursor: pointer; transition: background .15s ease, border-color .15s ease;
}
.summary-edit:hover, .summary-edit:focus-visible { background: rgba(180,240,58,.12); border-color: #b4f03a; outline: none; }

/* ============== B) HOME — realce + movimento ===================== */

/* barra de progresso de rolagem (topo) */
.fx-progress {
  position: fixed; left: 0; top: 0; height: 3px; width: 0; z-index: 9999;
  background: linear-gradient(90deg, #b4f03a, #11c6a6);
  box-shadow: 0 0 12px rgba(180,240,58,.5); pointer-events: none; transition: width .08s linear;
}

/* nav ganha profundidade ao rolar (não mexe no layout base) */
.nav { transition: background .25s ease, box-shadow .25s ease, backdrop-filter .25s ease, -webkit-backdrop-filter .25s ease; }
.nav.is-scrolled { box-shadow: 0 10px 30px rgba(0,0,0,.38); -webkit-backdrop-filter: saturate(140%) blur(10px); backdrop-filter: saturate(140%) blur(10px); }

/* reveal ao entrar na tela — só quando o JS marca .fx-ready (sem JS, nada some) */
.fx-ready .fx-reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1); }
.fx-ready .fx-reveal.is-visible { opacity: 1; transform: none; }

/* hover premium em cards/blocos da home */
.card, .audience, .exp-card, .bcard, .coach, .testi, .news, .access-card, .step {
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.audience:hover, .exp-card:hover, .bcard:hover, .testi:hover, .news:hover, .coach:hover, .card--glow:hover {
  transform: translateY(-4px); border-color: rgba(180,240,58,.45); box-shadow: 0 14px 34px rgba(0,0,0,.30);
}

/* brilho que cruza os botões no hover */
.btn--primary, .btn--gold { position: relative; overflow: hidden; }
.btn--primary::after, .btn--gold::after {
  content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-18deg); transition: left .6s ease; pointer-events: none;
}
.btn--primary:hover::after, .btn--gold:hover::after { left: 140%; }

/* glows decorativos no fundo de algumas seções (atrás do conteúdo) */
#plataforma, #experiencias, #b2b, #publicos { position: relative; isolation: isolate; }
#plataforma::before, #experiencias::before, #b2b::before, #publicos::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(620px 320px at 10% 0%, rgba(17,198,166,.10), transparent 62%),
    radial-gradient(640px 340px at 92% 100%, rgba(180,240,58,.10), transparent 62%);
}

/* ============== Acessibilidade: reduzir movimento =============== */
@media (prefers-reduced-motion: reduce) {
  .qz-anim { animation: none; }
  .qopt, .qopt__go, .qchip, .card, .audience, .exp-card, .bcard, .coach, .testi, .news, .access-card, .step { transition: none; }
  .fx-ready .fx-reveal { opacity: 1; transform: none; transition: none; }
  .btn--primary::after, .btn--gold::after { display: none; }
}

/* ==================================================================
   BLOCO 2 — CENAS, PROFUNDIDADE E JORNADA
   Camada 100% aditiva e removível. Os elementos .fx-* são injetados
   por js/fx.js dentro do #home. Nada aqui altera styles.css/tokens.css.
   Assinatura do bloco: a BOLA DE TÊNIS como fio condutor da jornada.
   ================================================================== */

/* --- base de cena: empilhamento e recorte controlados por seção --- */
.fx-scene { position: relative; isolation: isolate; }
.fx-scene > .container { position: relative; z-index: 1; }

/* camada decorativa: atrás do conteúdo, nunca captura clique */
.fx-deco { position: absolute; pointer-events: none; z-index: 0; will-change: transform; }
.fx-deco svg { display: block; }

/* bolinha decorativa flutuante (reaproveita o SVG da bola) */
.fx-orb { filter: drop-shadow(0 12px 24px rgba(0,0,0,.45)) drop-shadow(0 0 16px rgba(180,240,58,.22)); opacity: .92; }
.fx-orb--ghost { opacity: .10; filter: none; }       /* marca-d'água gigante */
.fx-orb--soft  { opacity: .5; }

/* linhas de quadra (SVG) — traço fino, premium */
.fx-court [stroke] { vector-effect: non-scaling-stroke; }
.fx-court .ln       { stroke: rgba(180,240,58,.26); stroke-width: 1.4; fill: none; }
.fx-court .ln-soft  { stroke: rgba(255,255,255,.09);  stroke-width: 1.2; fill: none; }
.fx-court .ln-teal  { stroke: rgba(17,198,166,.24);  stroke-width: 1.4; fill: none; }

/* desenho das linhas ao entrar na tela (stroke-dash) */
.fx-ready .fx-draw { stroke-dasharray: var(--len,700); stroke-dashoffset: var(--len,700);
  transition: stroke-dashoffset 1.25s cubic-bezier(.22,.61,.36,1); }
.fx-ready .fx-draw.is-drawn { stroke-dashoffset: 0; }

/* badge/selo que surge como conquista */
.fx-ready .fx-pop { opacity: 0; transform: scale(.6); transition: opacity .5s var(--ease,ease), transform .5s cubic-bezier(.2,1.3,.4,1); }
.fx-ready .fx-pop.is-visible { opacity: 1; transform: none; }

/* ---------- HERO cinematográfico ---------- */
.hero > .container { position: relative; z-index: 1; }   /* conteúdo sempre acima da decoração */
.hero .fx-deco { inset: 0; }
.hero .fx-court { position: absolute; inset: -6% -4% auto -4%; height: 78%; width: 108%; opacity: .7; }

/* ---------- HOME: Hero visual estatico por slots de imagem ---------- */
.hero--visual {
  isolation: isolate;
  padding-block: 3.9rem 2.85rem;
  background:
    linear-gradient(118deg, rgba(4, 10, 14, 0.96) 0%, rgba(8, 18, 24, 0.96) 48%, rgba(8, 29, 25, 0.92) 100%),
    linear-gradient(90deg, rgba(180, 240, 58, 0.12), rgba(17, 198, 166, 0.08));
}
.hero--visual::before {
  content: "";
  position: absolute;
  inset: 18% -12% 0 42%;
  z-index: 0;
  pointer-events: none;
  opacity: 0.42;
  background:
    linear-gradient(115deg, transparent 0 38%, rgba(180, 240, 58, 0.22) 39%, transparent 40% 100%),
    repeating-linear-gradient(100deg, rgba(255,255,255,0.075) 0 1px, transparent 1px 92px);
  transform: skewX(-13deg);
}
.hero--visual::after {
  opacity: 0.62;
}
.hero--visual .hero-visual__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.2rem;
  align-items: center;
}
.hero-visual__copy {
  max-width: 680px;
}
.hero-visual__kicker {
  letter-spacing: 0;
  text-transform: uppercase;
}
.hero-visual__title {
  margin: 0.9rem 0 0;
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 3.05rem;
  line-height: 0.92;
  letter-spacing: 0;
  max-width: 9.4ch;
}
.hero-visual__title .line {
  display: block;
}
.hero-visual__sub {
  max-width: 34ch;
  margin-top: 1.25rem;
}
.hero-visual__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  align-items: center;
  margin-top: 1.6rem;
}
.hero-visual__cta .btn {
  flex: 0 1 auto;
  min-width: min(100%, 246px);
  min-height: 54px;
  padding-inline: 1.28rem;
  font-size: 0.98rem;
}
.hero-visual__cta--solo .btn {
  width: min(100%, 520px);
  min-width: min(100%, 520px);
}
.hero-visual__cta .btn--ghost {
  min-width: min(100%, 258px);
}
.hero-visual__quick {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
  width: min(100%, 580px);
  max-width: 100%;
}
.hero-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
  min-height: 31px;
  padding: 0.26rem 0.66rem 0.26rem 0.5rem;
  border-radius: var(--radius-pill, 999px);
  color: var(--text-1, #e7eef2);
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  background: linear-gradient(180deg, rgba(255,255,255,0.075), rgba(255,255,255,0.03));
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 6px 16px -10px rgba(0,0,0,0.7);
  white-space: nowrap;
  transition: transform 0.16s ease, border-color 0.16s ease, color 0.16s ease, background 0.16s ease;
}
.hero-chip__ic {
  font-size: 0.82rem;
  line-height: 1;
}
.hero-chip:hover,
.hero-chip:focus-visible {
  transform: translateY(-2px);
  color: var(--lime, #b4f03a);
  border-color: rgba(180, 240, 58, 0.45);
  background: linear-gradient(180deg, rgba(180,240,58,0.13), rgba(180,240,58,0.04));
  outline: none;
}
.hero-chip:focus-visible {
  box-shadow: 0 0 0 2px rgba(180,240,58,0.55);
}
/* Desktop/tablet largo: 3 chips por linha, esticados para preencher a largura
   do CTA (mesma borda esquerda e direita do botão "Agendar aula diagnóstica"). */
@media (min-width: 700px) {
  .hero-visual__quick {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    width: 100%;
    max-width: 100%;
  }
  .hero-chip {
    justify-content: center;
  }
}
.hero-visual__scene {
  position: relative;
  min-height: 490px;
  isolation: isolate;
}
.hero-visual__scene::before {
  content: "";
  position: absolute;
  left: 4%;
  right: 0;
  bottom: 4%;
  height: 44%;
  z-index: 0;
  border: 1px solid rgba(180, 240, 58, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(150deg, transparent 0 47%, rgba(180, 240, 58, 0.16) 48%, transparent 49% 100%),
    linear-gradient(25deg, rgba(255,255,255,0.055), transparent 42%);
  transform: perspective(700px) rotateX(58deg) rotateZ(-4deg);
  transform-origin: 50% 100%;
}
.hero-visual__scene::after {
  content: "";
  position: absolute;
  inset: 5% 6% 10% 12%;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(112deg, transparent 0 32%, rgba(180, 240, 58, 0.14) 44%, transparent 62% 100%);
  filter: blur(2px);
}
.hero-slot {
  position: absolute;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.25rem;
  padding: 0;
  overflow: hidden;
  color: var(--text, #eaf2f1);
  border: 1px solid rgba(180, 240, 58, 0.26);
  background:
    linear-gradient(145deg, rgba(255,255,255,0.12), rgba(255,255,255,0.035)),
    rgba(10, 20, 25, 0.76);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.38), 0 0 32px rgba(180, 240, 58, 0.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.hero-slot::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(115deg, transparent 0 58%, rgba(180, 240, 58, 0.18) 59%, transparent 62% 100%),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.028) 0 11px, transparent 11px 22px);
}
.hero-slot__label {
  position: relative;
  z-index: 8;
  display: grid;
  gap: 0.28rem;
  width: min(calc(100% - 1.5rem), 270px);
  margin: auto 0.75rem 0.75rem;
  padding: 0.7rem 0.75rem;
  border-radius: 8px;
  text-align: left;
  background: rgba(5, 11, 15, 0.78);
  border: 1px solid rgba(255,255,255,0.13);
  box-shadow: 0 14px 34px rgba(0,0,0,0.28);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.hero-slot__kind {
  width: fit-content;
  padding: 0.22rem 0.46rem;
  border-radius: 999px;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.11);
  border: 1px solid rgba(180, 240, 58, 0.24);
  font-size: 0.67rem;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0;
}
.hero-slot strong {
  font-size: 1rem;
  line-height: 1.08;
}
.hero-slot small {
  max-width: 23ch;
  color: var(--text-2, #9aabb4);
  font-size: 0.78rem;
  line-height: 1.28;
}
.hero-slot--ball {
  width: min(82%, 520px);
  aspect-ratio: 1;
  right: 7%;
  top: 7%;
  align-items: center;
  justify-content: center;
  z-index: auto;
  text-align: left;
  border-radius: 50%;
  background:
    linear-gradient(145deg, rgba(180, 240, 58, 0.28), rgba(17, 198, 166, 0.08)),
    rgba(11, 24, 28, 0.88);
}
.hero-slot--ball .hero-slot__label {
  position: absolute;
  left: 54%;
  top: 39%;
  width: min(68%, 310px);
  margin: 0;
  transform: translate(-50%, -50%);
  text-align: center;
}
.hero-slot--ball .hero-slot__kind {
  margin-inline: auto;
}
.hero-slot--ball strong {
  font-size: 1.35rem;
}
.hero-slot--ball small {
  margin-inline: auto;
}
.hero-slot--adult,
.hero-slot--child {
  aspect-ratio: 4 / 5;
  border-radius: 8px;
}
.hero-slot--adult {
  width: min(34%, 210px);
  right: 0;
  top: 0.2rem;
  z-index: 4;
  transform: rotate(5deg);
}
.hero-slot--child {
  width: min(31%, 190px);
  right: 34%;
  bottom: 1.4rem;
  z-index: 5;
  transform: rotate(-4deg);
}
.hero-glass {
  position: absolute;
  z-index: 6;
  width: 190px;
  padding: 0.78rem 0.9rem;
  border-radius: 8px;
  background: rgba(8, 15, 20, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255,255,255,0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.hero-glass b {
  display: block;
  color: var(--text, #eaf2f1);
  font-size: 0.92rem;
  line-height: 1.1;
}
.hero-glass span {
  display: block;
  margin-top: 0.24rem;
  color: var(--text-2, #9aabb4);
  font-size: 0.76rem;
  line-height: 1.25;
}
.hero-glass--progress {
  left: 2%;
  top: 19%;
  transform: rotate(-4deg);
}
.hero-glass--method {
  right: 9%;
  bottom: 12%;
  transform: rotate(3deg);
}

@media (min-width: 900px) {
  .hero--visual .hero-visual__grid {
    grid-template-columns: minmax(0, 0.91fr) minmax(500px, 1.09fr);
    gap: clamp(3.8rem, 5vw, 4.8rem);
  }
  .hero-visual__copy {
    max-width: 620px;
  }
  .hero-visual__scene {
    min-height: 500px;
    padding-left: clamp(0.8rem, 2vw, 1.8rem);
  }
  .hero-slot--ball {
    width: min(78%, 488px);
    right: 2%;
  }
  .hero-glass--progress {
    left: 6%;
  }
  .hero-visual__title {
    font-size: 4.3rem;
  }
}

@media (min-width: 1180px) {
  .hero--visual .hero-visual__grid {
    grid-template-columns: minmax(500px, 0.9fr) minmax(600px, 1.1fr);
    gap: clamp(4.6rem, 6vw, 5.8rem);
  }
  .hero-visual__scene {
    min-height: 520px;
    padding-left: clamp(1.1rem, 2.4vw, 2.4rem);
  }
  .hero-visual__title {
    font-size: 4.75rem;
  }
}

@media (max-width: 899px) {
  .hero--visual {
    padding-block: 4.6rem 4.2rem;
  }
  .hero-visual__copy {
    max-width: 680px;
  }
  .hero-visual__title {
    max-width: 10ch;
  }
  .hero-visual__scene {
    min-height: 370px;
  }
  .hero-visual__quick {
    max-width: none;
  }
  .hero-slot--adult,
  .hero-slot--child,
  .hero-glass {
    display: none;
  }
  .hero-slot--ball {
    position: relative;
    inset: auto;
    width: min(360px, 100%);
    margin-inline: auto;
  }
  .hero-slot--ball .hero-slot__label {
    left: 50%;
    top: 50%;
    width: min(78%, 280px);
  }
  .hero-visual__scene::before {
    left: 8%;
    right: 8%;
    bottom: 0;
    height: 38%;
  }
  .hero-visual__scene::after {
    inset: 10% 16% 16%;
  }
}

@media (max-width: 520px) {
  .hero--visual {
    padding-block: 3rem 1.35rem;
  }
  .hero--visual .hero-visual__grid {
    gap: 1.25rem;
  }
  .hero-visual__title {
    margin-top: 0.65rem;
    font-size: 2.2rem;
    line-height: 0.98;
    max-width: 11ch;
  }
  .hero-visual__sub {
    margin-top: 0.8rem;
    max-width: 26ch;
  }
  .hero-visual__cta {
    gap: 0.55rem;
    margin-top: 1rem;
  }
  .hero-visual__cta .btn {
    flex-basis: 100%;
    --pad-y: 0.82rem;
    min-height: 44px;
    font-size: 0.95rem;
  }
  .hero-visual__cta--solo .btn {
    width: 100%;
    min-width: 100%;
  }
  .hero-visual__quick {
    gap: 0.4rem;
  }
  .hero-chip {
    min-height: 34px;
    padding: 0.34rem 0.7rem 0.34rem 0.5rem;
    font-size: 0.78rem;
  }
  .hero-visual__scene {
    min-height: 184px;
  }
  .hero-slot {
    padding: 0.85rem;
  }
  .hero-slot--ball {
    width: min(176px, 76vw);
  }
  .hero-slot--ball .hero-slot__label {
    width: min(84%, 158px);
    padding: 0.5rem;
  }
  .hero-slot--ball strong {
    font-size: 0.9rem;
  }
  .hero-slot small {
    display: none;
  }
  .hero-slot__kind {
    font-size: 0.58rem;
  }
}

/* ---------- HOME: bloco "Como e treinar na Iralu" + conceito ---------- */
.about-experience {
  position: relative;
  padding-top: clamp(1.5rem, 3vw, 2.35rem);
  isolation: isolate;
}
.about-experience::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(720px 260px at 50% 0%, rgba(180, 240, 58, 0.08), transparent 70%),
    linear-gradient(180deg, rgba(18, 27, 37, 0.18), rgba(18, 27, 37, 0));
}
.about-experience > .container {
  position: relative;
  z-index: 1;
}
.about-experience__layout {
  display: grid;
  gap: clamp(2rem, 4vw, 4.2rem);
  align-items: center;
  padding-top: clamp(1.3rem, 2vw, 1.9rem);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.about-experience__copy {
  max-width: 35rem;
}
.about-experience__title {
  max-width: 17ch;
}
.about-experience__lead {
  max-width: 40ch;
}
.about-experience__scene {
  position: relative;
  min-height: 510px;
  isolation: isolate;
}
.about-experience__scene::before {
  content: "";
  position: absolute;
  inset: 8% 6% 0 10%;
  z-index: 0;
  border: 1px solid rgba(180, 240, 58, 0.1);
  border-radius: 20px;
  background:
    radial-gradient(360px 200px at 72% 28%, rgba(17, 198, 166, 0.18), transparent 72%),
    radial-gradient(280px 180px at 20% 18%, rgba(180, 240, 58, 0.12), transparent 74%),
    linear-gradient(145deg, rgba(29, 42, 55, 0.62), rgba(14, 22, 30, 0.2));
  transform: perspective(900px) rotateY(-8deg);
}
.about-experience__photo,
.about-experience__mockup,
.about-experience__badge {
  position: absolute;
  overflow: hidden;
  color: var(--text, #eaf2f1);
  border: 1px solid rgba(180, 240, 58, 0.2);
  background:
    linear-gradient(145deg, rgba(255,255,255,0.12), rgba(255,255,255,0.04)),
    rgba(12, 21, 28, 0.82);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.about-experience__photo::before,
.about-experience__mockup::before,
.about-experience__badge::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(118deg, transparent 0 55%, rgba(180, 240, 58, 0.14) 56%, transparent 60% 100%),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.03) 0 12px, transparent 12px 24px);
  pointer-events: none;
}
.about-experience__photo {
  left: 0;
  top: 1.35rem;
  width: min(55%, 340px);
  aspect-ratio: 4 / 5;
  border-radius: 16px;
  transform: rotate(-4deg);
  z-index: 2;
}
.about-experience__mockup {
  right: 2%;
  top: 0;
  width: min(54%, 360px);
  aspect-ratio: 1.08 / 1;
  border-radius: 18px;
  transform: rotate(4deg);
  z-index: 3;
}
.about-experience__badge {
  left: 20%;
  bottom: 2.6rem;
  width: min(28%, 132px);
  aspect-ratio: 1;
  border-radius: 50%;
  transform: rotate(-8deg);
  z-index: 4;
  background:
    linear-gradient(145deg, rgba(180, 240, 58, 0.18), rgba(17, 198, 166, 0.05)),
    rgba(12, 21, 28, 0.9);
}
.about-experience__slot-label {
  position: absolute;
  left: 0.8rem;
  right: 0.8rem;
  bottom: 0.8rem;
  z-index: 2;
  display: grid;
  gap: 0.3rem;
  padding: 0.72rem 0.78rem;
  border-radius: 10px;
  background: rgba(7, 13, 17, 0.8);
  border: 1px solid rgba(255,255,255,0.11);
  box-shadow: 0 14px 28px rgba(0,0,0,0.24);
}
.about-experience__slot-label--compact {
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
}
.about-experience__slot-label--mini {
  left: 50%;
  right: auto;
  bottom: 50%;
  width: max-content;
  min-width: 96px;
  padding: 0.55rem 0.62rem;
  transform: translate(-50%, 50%);
  text-align: center;
}
.about-experience__slot-kind {
  width: fit-content;
  padding: 0.16rem 0.46rem;
  border-radius: 999px;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.09);
  border: 1px solid rgba(180, 240, 58, 0.2);
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.15;
}
.about-experience__slot-label--mini .about-experience__slot-kind {
  margin-inline: auto;
}
.about-experience__slot-label strong {
  font-size: 0.98rem;
  line-height: 1.06;
}
.about-experience__slot-label small {
  color: var(--text-2, #9aabb4);
  font-size: 0.78rem;
  line-height: 1.3;
}
.about-experience__glass {
  position: absolute;
  right: 7%;
  bottom: 4%;
  z-index: 5;
  width: 190px;
  padding: 0.78rem 0.9rem;
  border-radius: 10px;
  background: rgba(8, 15, 20, 0.76);
  border: 1px solid rgba(255,255,255,0.13);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.about-experience__glass b {
  display: block;
  font-size: 0.92rem;
  line-height: 1.08;
}
.about-experience__glass span {
  display: block;
  margin-top: 0.22rem;
  color: var(--text-2, #9aabb4);
  font-size: 0.75rem;
  line-height: 1.28;
}
.about-experience__steps {
  display: grid;
  gap: 1rem;
  margin-top: clamp(1.3rem, 2.4vw, 2.1rem);
}
.about-experience__step {
  display: grid;
  gap: 0.55rem;
  padding: 1.1rem 1.15rem;
  color: var(--text, #eaf2f1);
  border-radius: var(--radius, 16px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(220px 120px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(24, 35, 47, 0.94), rgba(18, 27, 37, 0.9)),
    rgba(17, 26, 36, 0.9);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18);
}
.about-experience__step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 800;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.1);
  border: 1px solid rgba(180, 240, 58, 0.22);
}
.about-experience__step strong {
  font-size: 1.02rem;
  line-height: 1.1;
}
.about-experience__step p {
  margin: 0;
  color: var(--text-2, #9aabb4);
  font-size: 0.88rem;
  line-height: 1.5;
}

.about-concept {
  position: relative;
  padding-top: 0.75rem;
  isolation: isolate;
}
.about-concept::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(560px 190px at 50% 12%, rgba(17, 198, 166, 0.08), transparent 72%),
    radial-gradient(460px 160px at 50% 0%, rgba(180, 240, 58, 0.08), transparent 68%);
}
.about-concept > .container {
  position: relative;
  z-index: 1;
}
.about-concept__card {
  position: relative;
  text-align: center;
  border-color: rgba(180, 240, 58, 0.22);
  background:
    radial-gradient(680px 300px at 50% 0%, rgba(180, 240, 58, 0.16), transparent 60%),
    radial-gradient(460px 200px at 85% 18%, rgba(17, 198, 166, 0.12), transparent 70%),
    linear-gradient(180deg, rgba(27, 39, 52, 0.98), rgba(20, 30, 40, 0.95)),
    var(--surface, #111a24);
  box-shadow:
    0 30px 80px -28px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(180, 240, 58, 0.1),
    0 0 60px -22px rgba(180, 240, 58, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.about-concept__card::after {
  content: "";
  position: absolute;
  left: 22%;
  right: 22%;
  top: 0;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(180, 240, 58, 0.9), rgba(17, 198, 166, 0.9), transparent);
}
.about-concept__eyebrow {
  justify-content: center;
}
.about-concept__title {
  margin-top: 0.8rem;
  font-size: var(--fs-h1);
  line-height: 0.96;
  text-transform: uppercase;
}
.about-concept__lead {
  max-width: 30ch;
  margin: 0.9rem auto 0;
  color: var(--text-2, #9aabb4);
}

@media (min-width: 980px) {
  .about-concept__lead {
    max-width: none;
    white-space: nowrap;
  }
  .about-experience__layout {
    grid-template-columns: minmax(320px, 0.76fr) minmax(0, 1.24fr);
  }
  .about-experience__layout--alternating {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr);
  }
  .about-experience__layout--alternating .about-experience__scene {
    order: 1;
  }
  .about-experience__layout--alternating .about-experience__copy {
    order: 2;
    justify-self: end;
    text-align: left;
  }
  .about-experience__steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .about-experience__step {
    min-height: 154px;
  }
}

@media (max-width: 979px) {
  .about-experience__title,
  .about-experience__lead {
    max-width: none;
  }
  .about-experience__scene {
    min-height: 420px;
  }
  .about-experience__photo {
    width: min(52%, 280px);
  }
  .about-experience__mockup {
    width: min(52%, 300px);
  }
}

@media (max-width: 640px) {
  .about-experience__scene {
    min-height: 280px;
    margin-top: 0.4rem;
  }
  .about-experience__scene::before,
  .about-experience__mockup,
  .about-experience__badge,
  .about-experience__glass {
    display: none;
  }
  .about-experience__photo {
    position: relative;
    top: auto;
    left: auto;
    width: min(100%, 340px);
    margin-inline: auto;
    transform: none;
  }
  .about-experience__slot-label {
    left: 0.7rem;
    right: 0.7rem;
    bottom: 0.7rem;
  }
  .about-experience__steps {
    grid-template-columns: 1fr;
  }
}

/* ---------- HOME: publicos + responsaveis ---------- */
.publicos-section,
.responsaveis-section {
  position: relative;
  isolation: isolate;
}
.publicos-section::before,
.responsaveis-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.publicos-section::before {
  background:
    radial-gradient(720px 220px at 50% 0%, rgba(180, 240, 58, 0.08), transparent 74%),
    linear-gradient(180deg, rgba(21, 31, 41, 0.22), rgba(21, 31, 41, 0));
}
.responsaveis-section::before {
  background:
    radial-gradient(620px 260px at 20% 14%, rgba(180, 240, 58, 0.08), transparent 72%),
    radial-gradient(620px 260px at 82% 12%, rgba(17, 198, 166, 0.07), transparent 76%);
}
.publicos-section > .container,
.responsaveis-section > .container {
  position: relative;
  z-index: 1;
}
.publicos-head {
  max-width: 68rem;
  margin: 0 auto;
  text-align: center;
}
.publicos-section__title {
  max-width: 22ch;
  margin-inline: auto;
}
.publicos-section__lead {
  max-width: 46ch;
  margin-inline: auto;
}
.publicos-grid {
  display: grid;
  gap: 1rem;
  margin-top: clamp(1.4rem, 2.4vw, 2rem);
}
.audience--showcase {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  height: 100%;
  min-height: 0;
  padding: 1.15rem 1.1rem 1rem;
  border-radius: var(--radius, 16px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background:
    radial-gradient(190px 90px at 100% 100%, rgba(17, 198, 166, 0.07), transparent 72%),
    linear-gradient(180deg, rgba(29, 42, 55, 0.96), rgba(22, 33, 43, 0.92)),
    rgba(20, 30, 40, 0.92);
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.03);
  overflow: hidden;
}
.audience--showcase::before {
  content: "";
  position: absolute;
  left: 0.95rem;
  right: 0.95rem;
  top: 0;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(180, 240, 58, 0.86), rgba(17, 198, 166, 0.86));
}
.audience--showcase .audience__icon {
  width: 2.35rem;
  height: 2.35rem;
  margin-bottom: 0.08rem;
  border-radius: 12px;
  font-size: 1rem;
  background: rgba(180, 240, 58, 0.08);
  border: 1px solid rgba(180, 240, 58, 0.14);
}
.audience__meta {
  display: inline-flex;
  width: fit-content;
  color: var(--lime, #b4f03a);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.1;
}
.audience--showcase h3 {
  margin: 0.08rem 0 0;
  font-size: 1.3rem;
  line-height: 1;
}
.audience--showcase p {
  margin: 0;
  max-width: 24ch;
  font-size: 0.9rem;
  line-height: 1.5;
}
.audience--showcase .tag {
  margin-top: auto;
  color: rgba(17, 198, 166, 0.95);
  font-size: 0.76rem;
  font-weight: 700;
}
.audience--kids,
.audience--familia {
  border-color: rgba(180, 240, 58, 0.18);
  background:
    radial-gradient(220px 120px at 100% 100%, rgba(180, 240, 58, 0.09), transparent 72%),
    linear-gradient(180deg, rgba(30, 43, 56, 0.97), rgba(22, 33, 43, 0.93)),
    rgba(20, 30, 40, 0.93);
}
.audience--junior,
.audience--adulto {
  background:
    radial-gradient(200px 110px at 100% 100%, rgba(17, 198, 166, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(29, 42, 55, 0.96), rgba(22, 33, 43, 0.92)),
    rgba(20, 30, 40, 0.92);
}

/* Camada revelada por hover / foco / toque nos cards de público.
   Sem foto real ainda: mostra o slot data-photo + infos extras. */
.audience__reveal {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.55rem;
  padding: 1.1rem 1.05rem 1rem;
  border-radius: inherit;
  background:
    linear-gradient(180deg, rgba(12, 18, 25, 0.55) 0%, rgba(12, 18, 25, 0.93) 62%),
    repeating-linear-gradient(135deg, rgba(255,255,255,0.03) 0 10px, transparent 10px 20px),
    rgba(16, 24, 32, 0.9);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
  z-index: 2;
}
.audience__reveal-label {
  align-self: flex-start;
  padding: 0.2rem 0.5rem;
  border-radius: 7px;
  background: rgba(180, 240, 58, 0.14);
  border: 1px solid rgba(180, 240, 58, 0.28);
  color: var(--lime, #b4f03a);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.audience__reveal-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.3rem;
}
.audience__reveal-list li {
  position: relative;
  padding-left: 1.05rem;
  color: var(--text-1, #e7eef2);
  font-size: 0.86rem;
  line-height: 1.35;
}
.audience__reveal-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: linear-gradient(180deg, var(--lime, #b4f03a), rgba(17, 198, 166, 0.9));
}
.audience--showcase:hover .audience__reveal,
.audience--showcase:focus-within .audience__reveal,
.audience--showcase.is-revealed .audience__reveal {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.audience--showcase:focus-visible {
  outline: 2px solid rgba(180, 240, 58, 0.7);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .audience__reveal { transition: opacity 0.01ms, visibility 0.01ms; transform: none; }
}

.responsaveis-main,
.responsaveis-process {
  display: grid;
  gap: clamp(1.35rem, 2.8vw, 2.6rem);
}
.responsaveis-main {
  align-items: center;
}
.responsaveis-copy {
  max-width: 35rem;
}
.responsaveis-scene {
  position: relative;
  min-height: 520px;
  isolation: isolate;
}
.responsaveis-scene::before {
  content: "";
  position: absolute;
  inset: 8% 2% 0 10%;
  z-index: 0;
  border: 1px solid rgba(180, 240, 58, 0.12);
  border-radius: 22px;
  background:
    radial-gradient(320px 220px at 28% 22%, rgba(180, 240, 58, 0.16), transparent 72%),
    radial-gradient(280px 180px at 78% 24%, rgba(17, 198, 166, 0.14), transparent 76%),
    linear-gradient(145deg, rgba(28, 41, 53, 0.64), rgba(14, 22, 29, 0.16));
  transform: perspective(900px) rotateY(8deg);
}
.responsaveis-photo {
  position: absolute;
  left: 9%;
  top: 0.2rem;
  width: min(74%, 410px);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(180, 240, 58, 0.22);
  background:
    linear-gradient(145deg, rgba(255,255,255,0.12), rgba(255,255,255,0.04)),
    rgba(16, 25, 33, 0.84);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.24);
  transform: rotate(-3deg);
}
.responsaveis-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(118deg, transparent 0 55%, rgba(180, 240, 58, 0.14) 56%, transparent 60% 100%),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.03) 0 12px, transparent 12px 24px);
}
.responsaveis-slot-label {
  position: absolute;
  left: 0.9rem;
  right: 0.9rem;
  bottom: 0.9rem;
  z-index: 2;
  display: grid;
  gap: 0.3rem;
  padding: 0.74rem 0.8rem;
  border-radius: 10px;
  background: rgba(10, 16, 22, 0.8);
  border: 1px solid rgba(255,255,255,0.11);
  box-shadow: 0 14px 28px rgba(0,0,0,0.24);
}
.responsaveis-slot-kind {
  width: fit-content;
  padding: 0.18rem 0.48rem;
  border-radius: 999px;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.09);
  border: 1px solid rgba(180, 240, 58, 0.2);
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}
.responsaveis-slot-label strong {
  font-size: 1rem;
  line-height: 1.06;
}
.responsaveis-slot-label small {
  color: var(--text-2, #9aabb4);
  font-size: 0.78rem;
  line-height: 1.3;
}
.responsaveis-glass {
  position: absolute;
  z-index: 3;
  width: 190px;
  padding: 0.8rem 0.92rem;
  border-radius: 10px;
  background: rgba(10, 18, 24, 0.76);
  border: 1px solid rgba(255,255,255,0.13);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.responsaveis-glass b {
  display: block;
  font-size: 0.92rem;
  line-height: 1.08;
}
.responsaveis-glass span {
  display: block;
  margin-top: 0.22rem;
  color: var(--text-2, #9aabb4);
  font-size: 0.75rem;
  line-height: 1.28;
}
.responsaveis-glass--platform {
  right: 0;
  top: 12%;
  transform: rotate(4deg);
}
.responsaveis-glass--privacy {
  right: 8%;
  bottom: 8%;
  transform: rotate(-3deg);
}
.responsaveis-section .resp-list {
  display: grid;
  gap: 0.8rem;
  margin-top: 1.35rem;
}
.responsaveis-section .resp-item {
  gap: 0.75rem;
  padding: 1rem 1rem;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(220px 110px at 100% 0%, rgba(17, 198, 166, 0.1), transparent 72%),
    radial-gradient(180px 100px at 0% 0%, rgba(180, 240, 58, 0.08), transparent 74%),
    linear-gradient(180deg, rgba(28, 41, 53, 0.96), rgba(22, 33, 43, 0.92)),
    rgba(20, 30, 40, 0.92);
  box-shadow:
    0 14px 34px rgba(0, 0, 0, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
.responsaveis-section .resp-item__ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  font-family: var(--font-ui, "Saira", sans-serif);
  font-size: 0.74rem;
  font-weight: 800;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.1);
  border: 1px solid rgba(180, 240, 58, 0.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}
.responsaveis-section .resp-item b {
  margin-bottom: 0.18rem;
}
.responsaveis-section .resp-cta {
  margin-top: 1.6rem;
}
.responsaveis-section .resp-cta .btn {
  font-size: 1.02rem;
  padding-block: 0.98rem;
  box-shadow: 0 16px 36px -16px rgba(180, 240, 58, 0.55);
}
@media (max-width: 560px) {
  .responsaveis-section .resp-cta .btn {
    width: 100%;
  }
}
.responsaveis-process {
  margin-top: clamp(1.6rem, 3vw, 2.6rem);
  padding: clamp(1.2rem, 2.4vw, 1.8rem);
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(300px 140px at 0% 0%, rgba(180, 240, 58, 0.08), transparent 74%),
    radial-gradient(260px 140px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(27, 39, 52, 0.95), rgba(20, 30, 40, 0.92)),
    rgba(19, 28, 38, 0.92);
  box-shadow:
    0 22px 54px rgba(0, 0, 0, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
.responsaveis-process__intro {
  max-width: 27rem;
}
.responsaveis-process__intro h3 {
  margin: 0.7rem 0 0;
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: clamp(2rem, 3.6vw, 3rem);
  line-height: 0.96;
}
.responsaveis-process__intro p {
  margin: 0.95rem 0 0;
  color: var(--text-2, #9aabb4);
}
.responsaveis-process__grid {
  display: grid;
  gap: 0.8rem;
}
.responsaveis-process__step {
  display: grid;
  gap: 0.28rem;
  padding: 0.95rem 1rem;
  border-radius: 15px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background:
    radial-gradient(180px 90px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 72%),
    rgba(8, 15, 20, 0.28);
}
.responsaveis-process__step b {
  display: block;
  font-size: 0.98rem;
  line-height: 1.18;
}
.responsaveis-process__step span {
  color: var(--text-2, #9aabb4);
  font-size: 0.84rem;
  line-height: 1.45;
}

/* Trilha de bolas do acompanhamento dos pais — reaproveita .ball-orb do Método
   para dar coesão visual. Sempre visível; entrada animada só sob "no-preference". */
.resp-trail {
  position: relative;
  display: grid;
  gap: 1.05rem;
  padding-left: 0.25rem;
}
.resp-trail--balls {
  gap: 0.78rem;
}
.resp-trail__rail {
  position: absolute;
  left: calc(0.25rem + 16px);
  top: 18px;
  bottom: 18px;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(180, 240, 58, 0.85), rgba(17, 198, 166, 0.85));
  opacity: 0.6;
}
.resp-trail--balls .resp-trail__rail {
  background: linear-gradient(180deg, #e8edf2, #9b6cf0 22%, #ef4d4d 42%, #f7882f 60%, #34c759 80%, #ffd400);
  opacity: 0.7;
}
.responsaveis-process__note {
  margin-top: 0.7rem;
  color: var(--text-1, #e7eef2);
  font-size: 0.9rem;
  line-height: 1.5;
}
/* Funil/jornada do acompanhamento (coluna do meio): 5 etapas com trilho
   vertical, do primeiro contato à evolução contínua. */
.responsaveis-process__funnel {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  display: grid;
  gap: 1.05rem;
  align-content: start;
}
.responsaveis-process__funnel::before {
  content: "";
  position: absolute;
  left: 0.875rem;
  top: 1rem;
  bottom: 1rem;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--lime, #b4f03a), var(--teal, #11c6a6));
  opacity: 0.45;
}
.responsaveis-process__stage {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: start;
}
.responsaveis-process__stage-n {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 9px;
  background: rgba(180, 240, 58, 0.12);
  border: 1px solid rgba(180, 240, 58, 0.28);
  color: var(--lime, #b4f03a);
  font-weight: 800;
  font-size: 0.84rem;
  flex: none;
  box-shadow: 0 0 0 4px rgba(19, 28, 38, 0.92);
}
.responsaveis-process__stage b {
  display: block;
  font-size: 0.98rem;
  line-height: 1.18;
}
.responsaveis-process__stage > div > span {
  display: block;
  margin-top: 0.12rem;
  color: var(--text-2, #9aabb4);
  font-size: 0.86rem;
  line-height: 1.45;
}
.responsaveis-process__stage--bridge > div {
  background: rgba(180, 240, 58, 0.07);
  border-radius: 10px;
  padding: 0.4rem 0.6rem;
  margin: -0.4rem -0.6rem;
}
.resp-trail--balls {
  justify-self: start;
}
.resp-trail__node {
  position: relative;
  display: grid;
  grid-template-columns: 34px 1fr;
  column-gap: 0.75rem;
  row-gap: 0.12rem;
  align-items: start;
}
.resp-trail__node .ball-orb {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
  z-index: 1;
}
.resp-trail__node b {
  grid-column: 2;
  grid-row: 1;
  font-size: 0.98rem;
  line-height: 1.18;
}
.resp-trail__node > span:last-child {
  grid-column: 2;
  grid-row: 2;
  color: var(--text-2, #9aabb4);
  font-size: 0.84rem;
  line-height: 1.45;
}
@media (prefers-reduced-motion: no-preference) {
  .resp-trail__node {
    animation: respTrailIn 0.5s ease both;
  }
  .resp-trail__node:nth-of-type(2) { animation-delay: 0.07s; }
  .resp-trail__node:nth-of-type(3) { animation-delay: 0.14s; }
  .resp-trail__node:nth-of-type(4) { animation-delay: 0.21s; }
  .resp-trail__node:nth-of-type(5) { animation-delay: 0.28s; }
  .resp-trail__node:nth-of-type(6) { animation-delay: 0.35s; }
}
@keyframes respTrailIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

@media (min-width: 980px) {
  .publicos-head {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(22rem, 0.95fr);
    align-items: start;
    gap: 0.6rem 2.4rem;
    text-align: left;
  }
  .publicos-head .eyebrow {
    grid-column: 1 / -1;
    justify-self: start;
  }
  .publicos-section__title,
  .publicos-section__lead {
    margin-inline: 0;
  }
  .publicos-section__title {
    max-width: 15ch;
  }
  .publicos-section__lead {
    max-width: 36ch;
    padding-bottom: 0.35rem;
  }
  .publicos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .responsaveis-main {
    grid-template-columns: minmax(320px, 0.92fr) minmax(0, 1.08fr);
  }
  .responsaveis-copy {
    order: 1;
    justify-self: start;
  }
  .responsaveis-scene {
    order: 2;
  }
  .responsaveis-section .resp-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .responsaveis-process {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.04fr) minmax(0, 1.12fr);
    gap: clamp(1.6rem, 3vw, 2.8rem);
    align-items: start;
  }
  .responsaveis-process__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  /* Conector "flui para as bolas": a etapa 4 aponta para a trilha de cores. */
  .responsaveis-process__stage--bridge::after {
    content: "";
    position: absolute;
    top: 0.95rem;
    right: -1.6rem;
    width: 1.2rem;
    height: 2px;
    background: var(--lime, #b4f03a);
    opacity: 0.55;
  }
  .responsaveis-process__stage--bridge::before {
    content: "";
    position: absolute;
    top: 0.6rem;
    right: -1.65rem;
    border: 5px solid transparent;
    border-left-color: var(--lime, #b4f03a);
    opacity: 0.7;
  }
}

@media (min-width: 1180px) {
  .publicos-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 979px) {
  .publicos-head {
    text-align: center;
  }
  .publicos-section__title,
  .publicos-section__lead {
    max-width: none;
  }
  .responsaveis-scene {
    min-height: 390px;
  }
  .responsaveis-photo {
    width: min(78%, 320px);
  }
  .responsaveis-glass--platform {
    right: 2%;
    top: 14%;
  }
  .responsaveis-glass--privacy {
    right: 10%;
    bottom: 4%;
  }
}

@media (max-width: 640px) {
  .publicos-grid {
    grid-template-columns: 1fr;
  }
  .audience--showcase {
    min-height: auto;
  }
  .responsaveis-scene {
    min-height: 280px;
    margin-top: 0.25rem;
  }
  .responsaveis-glass {
    display: none;
  }
  .responsaveis-photo {
    position: relative;
    left: auto;
    top: auto;
    width: min(100%, 340px);
    margin-inline: auto;
    transform: none;
  }
  .responsaveis-scene::before {
    inset: 12% 6% 0;
  }
  .responsaveis-slot-label {
    left: 0.7rem;
    right: 0.7rem;
    bottom: 0.7rem;
  }
  .responsaveis-section .resp-cta .btn {
    width: 100%;
    white-space: normal;
  }
  .responsaveis-process {
    padding: 1rem;
  }
  .responsaveis-process__grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- METODOLOGIA: a jornada (trilha + bola guia) ---------- */
.metodologia-section {
  position: relative;
  isolation: isolate;
}
.metodologia-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(620px 240px at 78% 8%, rgba(17, 198, 166, 0.08), transparent 74%),
    radial-gradient(520px 220px at 18% 20%, rgba(180, 240, 58, 0.08), transparent 74%);
}
.metodologia-section > .container {
  position: relative;
  z-index: 1;
}
.metodologia-showcase,
.metodologia-steps,
.metodologia-trilha {
  display: grid;
  gap: clamp(1.2rem, 2.8vw, 2.4rem);
}
.metodologia-showcase {
  align-items: start;
}
.metodologia-copy {
  max-width: 34rem;
}
.metodologia-section__title {
  max-width: 11ch;
}
.metodologia-section__lead {
  max-width: 36ch;
}
.metodologia-signals {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 1.25rem;
}
.metodologia-signals span {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0.5rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(140px 60px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 74%),
    rgba(255,255,255,0.03);
  color: var(--text, #eaf2f1);
  font-size: 0.82rem;
  font-weight: 700;
}
.metodologia-scene {
  position: relative;
  min-height: 420px;
  isolation: isolate;
}
.metodologia-scene::before {
  content: "";
  position: absolute;
  inset: 8% 4% 0 8%;
  z-index: 0;
  border-radius: 24px;
  border: 1px solid rgba(180, 240, 58, 0.12);
  background:
    radial-gradient(320px 220px at 72% 24%, rgba(17, 198, 166, 0.16), transparent 74%),
    radial-gradient(260px 180px at 24% 28%, rgba(180, 240, 58, 0.12), transparent 74%),
    linear-gradient(145deg, rgba(30, 43, 56, 0.64), rgba(14, 22, 29, 0.14));
  transform: perspective(900px) rotateY(-7deg);
}
.metodologia-panel {
  position: absolute;
  left: 8%;
  top: 2%;
  width: min(78%, 470px);
  min-height: 250px;
  z-index: 2;
  display: grid;
  align-content: start;
  gap: 0.7rem;
  padding: 1.35rem 1.35rem 1.2rem;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(240px 120px at 100% 0%, rgba(17, 198, 166, 0.1), transparent 74%),
    radial-gradient(220px 120px at 0% 100%, rgba(180, 240, 58, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(29, 42, 55, 0.97), rgba(21, 32, 42, 0.93)),
    rgba(20, 30, 40, 0.92);
  box-shadow:
    0 24px 64px rgba(0, 0, 0, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
.metodologia-panel__eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: 0.26rem 0.56rem;
  border-radius: 999px;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.08);
  border: 1px solid rgba(180, 240, 58, 0.16);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}
.metodologia-panel strong {
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 0.96;
}
.metodologia-panel p {
  margin: 0;
  max-width: 30ch;
  color: var(--text-2, #9aabb4);
}
.metodologia-panel__balls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 0.45rem;
}
.ball-dot {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  box-shadow: inset 0 1px 2px rgba(255,255,255,0.24), 0 0 0 4px rgba(255,255,255,0.03);
}
.ball-dot--branca { background: #e8edf2; }
.ball-dot--roxa { background: #9b6cf0; }
.ball-dot--vermelha { background: #ef4d4d; }
.ball-dot--laranja { background: #f7882f; }
.ball-dot--verde { background: #34c759; }
.ball-dot--amarela { background: #ffd400; }
.metodologia-glass {
  position: absolute;
  z-index: 3;
  width: 210px;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  background: rgba(10, 18, 24, 0.78);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.metodologia-glass b {
  display: block;
  font-size: 0.94rem;
  line-height: 1.06;
}
.metodologia-glass span {
  display: block;
  margin-top: 0.22rem;
  color: var(--text-2, #9aabb4);
  font-size: 0.76rem;
  line-height: 1.3;
}
.metodologia-glass--diag {
  left: 0;
  bottom: 12%;
  transform: rotate(-4deg);
}
.metodologia-glass--criteria {
  right: 2%;
  top: 16%;
  transform: rotate(4deg);
}
.metodologia-glass--next {
  right: 12%;
  bottom: 4%;
  transform: rotate(-3deg);
}
.metodologia-steps {
  margin-top: clamp(1.6rem, 3vw, 2.5rem);
}
.metodologia-step {
  display: grid;
  gap: 0.6rem;
  padding: 1.15rem 1.15rem 1.05rem;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(180px 90px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 74%),
    linear-gradient(180deg, rgba(28, 41, 53, 0.96), rgba(21, 32, 42, 0.92)),
    rgba(20, 30, 40, 0.92);
  box-shadow:
    0 18px 44px rgba(0, 0, 0, 0.14),
    inset 0 1px 0 rgba(255,255,255,0.03);
}
.metodologia-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.1);
  border: 1px solid rgba(180, 240, 58, 0.2);
  font-size: 0.76rem;
  font-weight: 800;
}
.metodologia-step h3 {
  font-size: 1.08rem;
}
.metodologia-step p {
  margin: 0.2rem 0 0;
  color: var(--text-2, #9aabb4);
  font-size: 0.9rem;
  line-height: 1.48;
}
.metodologia-trilha {
  margin-top: clamp(1.9rem, 3.4vw, 3rem);
}
.metodologia-trilha__intro {
  max-width: 39rem;
}
.metodologia-trilha__title {
  max-width: 18ch;
}
.metodologia-trilha__lead {
  max-width: 44ch;
}
.metodologia-trilha__grid {
  margin-top: 0;
}
/* Promoção visual da trilha na home: orbs maiores + halo na cor da própria bola,
   cards com mais respiro. Escopado em .metodologia-trilha para não afetar o
   componente .trilha-pub reutilizado em outras telas. */
.metodologia-trilha .trilha-pub__card {
  padding: 1.5rem 1rem 1.35rem;
  gap: 0.7rem;
}
.metodologia-trilha .trilha-pub__card:hover {
  transform: translateY(-6px);
}
.metodologia-trilha .ball-orb {
  width: 56px;
  height: 56px;
  margin-bottom: 0.15rem;
  box-shadow:
    inset 0 -3px 8px rgba(0, 0, 0, 0.35),
    0 4px 12px -4px rgba(0, 0, 0, 0.6),
    0 0 0 6px color-mix(in srgb, var(--ball) 14%, transparent),
    0 12px 30px -8px color-mix(in srgb, var(--ball) 60%, transparent);
}
.metodologia-trilha .trilha-pub__name {
  font-size: 1.3rem;
}
@media (max-width: 619px) {
  .metodologia-trilha .ball-orb {
    width: 48px;
    height: 48px;
  }
}
#metodologia .steps { position: relative; }
.fx-trail { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.fx-trail svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.fx-trail .rail      { stroke: rgba(255,255,255,.10); stroke-width: 2; fill: none; stroke-linecap: round; }
.fx-trail .rail-fill { stroke: url(#fxTrailGrad); stroke-width: 3; fill: none; stroke-linecap: round; }
.fx-trail-ball { position: absolute; left: 0; top: 0; width: 24px; height: 24px; margin: -12px 0 0 -12px;
  will-change: transform; filter: drop-shadow(0 0 12px rgba(180,240,58,.65)); z-index: 1; }
#metodologia .step { position: relative; z-index: 1; }
.fx-step .step__num { transition: background .45s var(--ease,ease), color .45s var(--ease,ease),
  border-color .45s var(--ease,ease), box-shadow .45s var(--ease,ease), transform .45s var(--ease,ease); }
.fx-step.is-active .step__num {
  background: rgba(180,240,58,.16); color: var(--lime,#b4f03a); border-color: rgba(180,240,58,.55);
  box-shadow: 0 0 0 4px rgba(180,240,58,.10), 0 0 24px rgba(180,240,58,.40); transform: scale(1.07);
}
.fx-step.is-active h3 { color: var(--text,#eaf2f1); }

@media (min-width: 980px) {
  .metodologia-showcase {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 0.95fr);
    gap: clamp(1.8rem, 3.8vw, 3.2rem);
  }
  .metodologia-copy {
    order: 2;
    justify-self: end;
    align-self: start;
    padding-top: 0.45rem;
  }
  .metodologia-scene {
    order: 1;
    min-height: 440px;
  }
  .metodologia-steps {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .metodologia-trilha {
    grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1.22fr);
    align-items: start;
  }
}

@media (max-width: 979px) {
  .metodologia-section__title,
  .metodologia-section__lead,
  .metodologia-trilha__title,
  .metodologia-trilha__lead {
    max-width: none;
  }
  .metodologia-scene {
    min-height: 340px;
  }
  .metodologia-panel {
    width: min(86%, 430px);
  }
}

@media (max-width: 640px) {
  .metodologia-scene {
    min-height: 300px;
  }
  .metodologia-panel {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    min-height: auto;
    padding: 1.1rem 1rem 1rem;
  }
  .metodologia-panel strong {
    font-size: 2rem;
  }
  .metodologia-scene::before,
  .metodologia-glass {
    display: none;
  }
  .metodologia-step {
    padding: 1rem;
  }
}

/* ---------- AULA DIAGNÓSTICA: passo 1 da jornada ---------- */
#diagnostica .diagnostic { position: relative; }
.fx-seal {
  position: absolute; top: -14px; left: 22px; z-index: 2;
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .34rem .8rem .34rem .4rem; border-radius: 999px;
  background: linear-gradient(120deg, rgba(255,213,107,.18), rgba(232,135,15,.10));
  border: 1px solid rgba(255,180,46,.45); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  font-family: var(--font-ui,sans-serif); font-size: .74rem; font-weight: 700; letter-spacing: .04em;
  color: #ffd98a; text-transform: uppercase;
}
.fx-seal__n {
  flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center;
  background: var(--grad-gold, linear-gradient(120deg,#ffd56b,#e8870f)); color: #2a1800;
  font-family: var(--font-display,sans-serif); font-weight: 800; font-size: .92rem;
}

/* ---------- PLATAFORMA: ecossistema com profundidade ---------- */
#plataforma .access-card { transition: transform .2s var(--ease,ease), border-color .2s var(--ease,ease), box-shadow .2s var(--ease,ease); }
@media (hover: hover) {
  #plataforma .access-card:hover { transform: translateY(-5px); box-shadow: 0 18px 42px rgba(0,0,0,.34); }
  #plataforma .access-card--aluno:hover { border-color: rgba(180,240,58,.5); }
  #plataforma .access-card--prof:hover  { border-color: rgba(17,198,166,.5); }
}

/* ---------- GALERIA: fotos saindo do frame ---------- */
#galeria { position: relative; }
#galeria .gallery { overflow: visible; }
#galeria .gallery__item { transition: transform .4s var(--ease,ease), box-shadow .4s var(--ease,ease), filter .4s var(--ease,ease); }
@media (hover: hover) {
  #galeria .gallery:hover .gallery__item:not(:hover) { filter: saturate(.85) brightness(.92); }
  #galeria .gallery__item:hover { transform: translateY(-7px) scale(1.035); z-index: 3; box-shadow: 0 26px 54px rgba(0,0,0,.5); }
}
@media (min-width: 920px) {
  #galeria .gallery__item:nth-child(3) { transform: translateY(16px); }
  #galeria .gallery__item:nth-child(5) { transform: translateY(-16px); }
  #galeria .gallery__item:nth-child(3):hover,
  #galeria .gallery__item:nth-child(5):hover { transform: translateY(0) scale(1.035); }
}

/* ---------- CTA final: conclusão da jornada ---------- */
.fx-cta-scene { position: relative; overflow: hidden; isolation: isolate; }
.fx-cta-scene .cta-final { position: relative; z-index: 1; }

/* ---------- parallax: só onde o JS marcar (desktop) ---------- */
.fx-parallax { will-change: transform; }

/* ============== Acessibilidade: reduzir movimento (Bloco 2) ====== */
@media (prefers-reduced-motion: reduce) {
  .fx-deco { display: none !important; }
  .fx-trail { display: none !important; }
  .fx-step .step__num { transition: none; }
  .fx-ready .fx-draw { transition: none; stroke-dashoffset: 0; }
  .fx-ready .fx-pop { opacity: 1; transform: none; transition: none; }
  #galeria .gallery__item { transition: none; }
}

/* ============== Item #12 — Registro ampliado (atividade/partida) ===== */
/* Camada aditiva, classes namespaced `reg-`. Reaproveita .fld/.quiz__*. */
.reg-hint {
  margin: calc(var(--sp-2, .5rem) * -1) 0 var(--sp-3, .75rem);
  font-size: .82rem;
  line-height: 1.35;
  color: var(--text-muted, #9aa3ad);
}
.reg-hint:empty { display: none; }
/* placar de linha única (pro set / super tie-break / desafio interno) */
.reg-onescore .setrow span { opacity: .85; }

/* ============== Item #7 — CRUD admin (alunos/professores) =========== */
.pl-card__actions { display: flex; align-items: center; gap: 0.5rem; }
.mini-btn--icon { padding: 0.3rem 0.45rem; line-height: 1; }
.mini-btn--danger { color: var(--danger, #ff6b6b); }
.mini-btn--danger:hover { border-color: var(--danger, #ff6b6b); color: var(--danger, #ff6b6b); }
/* grade de 2 colunas dentro dos modais de cadastro */
.reg-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
.reg-grid2 .fld { min-width: 0; }
@media (max-width: 460px) { .reg-grid2 { grid-template-columns: 1fr; } }
/* checkbox "é menor de idade" */
.auth-check {
  display: flex; align-items: center; gap: 0.5rem; margin: 0.2rem 0 0.4rem;
  font-size: 0.86rem; color: var(--text-2, #9aabb4); cursor: pointer;
}
.auth-check input { width: 1.05rem; height: 1.05rem; accent-color: var(--lime, #b4f03a); }

/* ============== Item #13 — Menu mobile do nav ====================== */
.nav__toggle {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 42px; height: 38px; padding: 0 9px; margin-left: 0.1rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  border-radius: 10px; cursor: pointer;
}
.nav__toggle span {
  display: block; height: 2px; width: 100%; border-radius: 2px;
  background: var(--text, #eaf2f1); transition: transform 0.2s, opacity 0.2s;
}
.nav.is-menu-open .nav__toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav.is-menu-open .nav__toggle span:nth-child(2) { opacity: 0; }
.nav.is-menu-open .nav__toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nav__mobile {
  display: none; position: absolute; top: 100%; left: 0; right: 0;
  flex-direction: column; gap: 0.15rem; padding: 0.6rem 0.9rem 1rem;
  max-height: calc(100vh - var(--nav-h, 72px)); overflow-y: auto;
  background: rgba(8, 12, 17, 0.97); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4);
}
.nav.is-menu-open .nav__mobile { display: flex; }
.nav__mobile a {
  padding: 0.7rem 0.4rem; border-radius: 8px;
  color: var(--text-2, #9aabb4); font-family: var(--font-ui, "Saira", sans-serif); font-weight: 500;
}
.nav__mobile a:hover { color: var(--text, #eaf2f1); background: rgba(255, 255, 255, 0.04); }
.nav__mobile a.btn { text-align: center; margin-top: 0.5rem; }
.nav__mobile-sep { height: 1px; background: var(--line, rgba(255, 255, 255, 0.08)); margin: 0.4rem 0; }

/* Navegação pública por subtópicos: a âncora principal continua clicável e o
   botão adjacente abre o mesmo conteúdo para teclado e telas touch. */
.nav__links {
  align-items: center;
  gap: 0.18rem;
}
.nav {
  overflow: visible;
}
.nav-group {
  position: relative;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  transition: background 0.18s ease, box-shadow 0.18s ease;
}
.nav-group__main,
.nav__direct {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0.42rem 0.3rem 0.42rem 0.68rem;
  border-radius: 999px;
  white-space: nowrap;
}
.nav__direct { padding-inline: 0.68rem; }
.nav-group__toggle {
  width: 16px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--text-3, #6f7c87);
  cursor: pointer;
  opacity: 0;
  transition: width 0.18s ease, opacity 0.18s ease, background 0.18s ease;
}
.nav-group__toggle span {
  display: block;
  font-size: 1rem;
  line-height: 1;
  transform: translateY(-1px);
  color: transparent;
  transition: transform 0.18s ease, color 0.18s ease;
}
.nav-group:hover,
.nav-group.is-open,
.nav-group:focus-within {
  background: rgba(180, 240, 58, 0.08);
  box-shadow: inset 0 0 0 1px rgba(180, 240, 58, 0.12);
}
.nav-group:hover .nav-group__main,
.nav-group.is-open .nav-group__main,
.nav-group:focus-within .nav-group__main,
.nav-group:hover .nav-group__toggle,
.nav-group.is-open .nav-group__toggle,
.nav-group:focus-within .nav-group__toggle {
  color: var(--lime, #b4f03a);
}
.nav-group:hover .nav-group__toggle span,
.nav-group.is-open .nav-group__toggle span,
.nav-group:focus-within .nav-group__toggle span {
  transform: none;
  color: transparent;
}
.nav-group__toggle:focus-visible {
  width: 16px;
  opacity: 0;
  background: transparent;
  outline: none;
  box-shadow: none;
}
.nav-group__toggle:focus-visible span {
  color: transparent;
}
.nav__direct:hover,
.nav__direct:focus-visible {
  color: var(--lime, #b4f03a);
}
.nav-group__menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  z-index: 120;
  width: min(330px, calc(100vw - 32px));
  display: grid;
  gap: 0.22rem;
  padding: 0.72rem;
  border: 1px solid rgba(180, 240, 58, 0.18);
  border-radius: 18px;
  background:
    radial-gradient(320px 150px at 30% 0%, rgba(17, 198, 166, 0.12), transparent 70%),
    rgba(10, 16, 22, 0.98);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.48);
  backdrop-filter: blur(18px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-7px);
  transition: opacity 0.16s ease, visibility 0.16s ease, transform 0.16s ease;
}
.nav-group__menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 16px;
}
.nav-group__menu--right {
  left: auto;
  right: 0;
  transform: translateY(-7px);
}
.nav-group:hover .nav-group__menu,
.nav-group.is-open .nav-group__menu,
.nav-group:focus-within .nav-group__menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.nav-group:hover .nav-group__menu--right,
.nav-group.is-open .nav-group__menu--right,
.nav-group:focus-within .nav-group__menu--right {
  transform: translateY(0);
}
.nav-group__eyebrow {
  padding: 0.28rem 0.52rem 0.42rem;
  color: var(--lime, #b4f03a);
  font-family: var(--font-ui, "Saira", sans-serif);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.nav-group__menu a {
  display: grid;
  gap: 0.08rem;
  padding: 0.62rem 0.68rem;
  border: 1px solid transparent;
  border-radius: 12px;
  color: var(--text, #eaf2f1);
}
.nav-group__menu a:hover,
.nav-group__menu a:focus-visible {
  border-color: rgba(180, 240, 58, 0.2);
  background: rgba(255, 255, 255, 0.055);
  outline: none;
}
.nav-group__menu b {
  font-size: 0.86rem;
  line-height: 1.2;
}
.nav-group__menu a span {
  color: var(--text-3, #6f7c87);
  font-family: var(--font-body, "Hanken Grotesk", sans-serif);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.3;
}

.nav-mobile-group {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.nav-mobile-group summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.62rem 0.4rem;
  color: var(--text-2, #9aabb4);
  font-family: var(--font-ui, "Saira", sans-serif);
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.nav-mobile-group summary::-webkit-details-marker { display: none; }
.nav-mobile-group summary::after {
  content: "+";
  color: var(--lime, #b4f03a);
  font-size: 1.15rem;
  line-height: 1;
}
.nav-mobile-group[open] summary { color: var(--text, #eaf2f1); }
.nav-mobile-group[open] summary::after { content: "−"; }
.nav-mobile-group__links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.3rem;
  padding: 0 0.25rem 0.72rem;
}
.nav__mobile .nav-mobile-group__links a {
  min-width: 0;
  padding: 0.52rem 0.58rem;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.025);
  font-size: 0.78rem;
  line-height: 1.2;
}

@media (max-width: 899px) {
  .nav__toggle { display: flex; }
}
@media (max-width: 759px) {
  .nav__actions .nav__login,
  .nav__actions .btn--ghost { display: none; }
}

/* Entre zoom/desktop apertado e notebook, o menu completo recolhe, mas os acessos
   continuam visíveis para não sumirem do topo. */
@media (min-width: 760px) and (max-width: 1499px) {
  .nav__links { display: none; }
  .nav__toggle { display: flex; }
  .nav__actions {
    gap: 0.38rem;
    margin-left: auto;
  }
  .nav__actions .nav__login,
  .nav__actions .btn--ghost {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    white-space: nowrap;
  }
  .nav__actions .nav__login {
    padding: 0 0.72rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.03);
    font-size: 0.78rem;
    color: var(--text-2, #9aabb4);
  }
  .nav__actions .nav__login:hover,
  .nav__actions .nav__login:focus-visible {
    color: var(--text, #eaf2f1);
    border-color: rgba(180, 240, 58, 0.28);
    background: rgba(180, 240, 58, 0.08);
  }
  .nav__actions .btn--ghost,
  .nav__actions .btn--primary {
    --pad-y: 0.5rem;
    --pad-x: 0.85rem;
    font-size: 0.78rem;
  }
}
@media (min-width: 1500px) {
  .nav__links { display: flex; }
  .nav-group__toggle { display: none; }
  .nav-group__main { padding-right: 0.68rem; }
}
@media (max-width: 520px) {
  .nav__mobile {
    max-height: calc(100vh - var(--nav-h, 72px));
    overflow-y: auto;
  }
  .nav-mobile-group__links { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-group__menu,
  .nav-group__toggle span { transition: none; }
}

/* ---------- rodapé: linha legal/LGPD ---------- */
.footer__bottom { align-items: flex-start; }
.footer__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.45rem 0.7rem;
  max-width: min(100%, 34rem);
  text-align: right;
}
.footer__legal a { display: inline-flex; color: var(--text-2, #9aabb4); text-decoration: underline; }
.footer__legal a:hover { color: var(--lime, #b4f03a); }
.footer__dot { margin: 0; opacity: 0.5; }

@media (max-width: 820px) {
  .footer__legal {
    justify-content: flex-start;
    text-align: left;
    max-width: 100%;
  }
}

/* ---------- professores: área de atuação ---------- */
.coach__area {
  margin-top: 0.7rem; font-size: 0.8rem;
  color: var(--text-3, #6f7c87); font-family: var(--font-ui, "Saira", sans-serif);
}

/* ---------- Item #11 — Privado × Social: realce do cartão "Minha conta" ---------- */
.pl-card--private {
  border-style: dashed;
  border-color: var(--text-3, rgba(255, 255, 255, 0.2));
}
.pl-card--private .evo-status__row { margin-top: var(--sp-3, 0.75rem); }

/* ---------- A0 — Entrada para a Comunidade (tela própria) ---------- */
.community-entry {
  display: flex; align-items: center; gap: 0.8rem;
  margin: 0 0 1rem; padding: 0.85rem 1rem;
  border-radius: var(--radius, 16px);
  background:
    radial-gradient(420px 120px at 0% 0%, rgba(17, 198, 166, 0.16), transparent 70%),
    var(--surface-2, #16222f);
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  color: var(--text, #eaf2f1); text-decoration: none;
  transition: transform 0.16s, border-color 0.16s, box-shadow 0.16s;
}
.community-entry:hover {
  transform: translateY(-1px);
  border-color: var(--lime, #b4f03a);
  box-shadow: var(--glow-lime, 0 0 0 1px rgba(180, 240, 58, 0.3));
}
.community-entry__ic {
  font-size: 1.4rem; width: 2.4rem; height: 2.4rem; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--surface-3, #1e2d3d);
}
.community-entry__txt { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.community-entry__txt b { font-size: 0.98rem; }
.community-entry__txt span { font-size: 0.8rem; color: var(--text-2, #9aabb4); }
.community-entry__go { margin-left: auto; color: var(--lime, #b4f03a); font-weight: 800; font-size: 1.2rem; }

/* botão de Comunidade na barra de conta flutuante */
.acct__btn--community { background: var(--surface-3, #1e2d3d); }
.acct__btn--community:hover { background: var(--surface, #111a24); color: var(--lime, #b4f03a); }

/* ---------- Modais largos no DESKTOP (formulários em 2 colunas) ----------
   Mobile continua vertical/otimizado; a partir de 720px o formulário ganha
   largura e os campos fluem em 2 colunas. Não toca quiz nem avaliação. */
@media (min-width: 720px) {
  .modal__box--wide { max-width: 680px; }
  .modal__box--wide .modal__body {
    grid-template-columns: 1fr 1fr;
    column-gap: 1rem; row-gap: 0.9rem;
  }
  /* itens que sempre ocupam a linha inteira */
  .modal__box--wide .modal__body > .reg-grid2,
  .modal__box--wide .modal__body > .sets,
  .modal__box--wide .modal__body > #mtScore,
  .modal__box--wide .modal__body > #mtExtWrap,
  .modal__box--wide .modal__body > .quiz__hint,
  .modal__box--wide .modal__body > .reg-hint,
  .modal__box--wide .modal__body > .screen-note,
  .modal__box--wide .modal__body > .auth-check,
  .modal__box--wide .modal__body > .ep-full,
  .modal__box--wide .modal__body > .fld:first-child {
    grid-column: 1 / -1;
  }
}

/* ===================================================================== */
/* COMUNIDADE — compositor + feed social (post, foto, enquete, comentário) */
/* ===================================================================== */
.composer { margin-bottom: 1rem; padding: 0.9rem 1rem; }
.composer__row { display: flex; gap: 0.7rem; align-items: flex-start; }
.composer__av { width: 38px; height: 38px; flex: none; }
.composer__field {
  flex: 1; min-width: 0; resize: vertical; min-height: 2.6rem;
  background: var(--ink-700, #0c1219);
  border: 1px solid var(--line, rgba(255, 255, 255, 0.1));
  border-radius: var(--radius-sm, 12px);
  color: var(--text, #eaf2f1); font: inherit; font-size: 0.98rem;
  padding: 0.6rem 0.8rem; outline: none;
}
.composer__field:focus { border-color: var(--lime, #b4f03a); box-shadow: 0 0 0 3px rgba(180, 240, 58, 0.16); }
.composer__media { position: relative; margin-top: 0.7rem; max-width: 320px; }
.composer__media img { width: 100%; border-radius: var(--radius, 14px); display: block; }
.composer__media-x {
  position: absolute; top: 0.4rem; right: 0.4rem; width: 1.8rem; height: 1.8rem;
  border-radius: 50%; border: none; cursor: pointer;
  background: rgba(0, 0, 0, 0.6); color: #fff; font-size: 0.85rem;
}
.composer__poll {
  margin-top: 0.7rem; display: grid; gap: 0.35rem;
  padding: 0.6rem; border-radius: var(--radius, 14px);
  background: var(--ink-700, #0c1219); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.composer__poll-head { font-size: 0.78rem; color: var(--text-2, #9aabb4); font-family: var(--font-ui, "Saira", sans-serif); }
.composer__pollopt {
  width: 100%; box-sizing: border-box;
  background: var(--surface-2, #16222f);
  border: 1px solid var(--line, rgba(255, 255, 255, 0.1));
  border-radius: var(--radius-pill, 999px);
  color: var(--text, #eaf2f1); font: inherit; font-size: 0.88rem;
  padding: 0.45rem 0.8rem; outline: none;
}
.composer__pollopt:focus { border-color: var(--lime, #b4f03a); }
.composer__bar { display: flex; align-items: center; justify-content: space-between; margin-top: 0.7rem; }
.composer__tools { display: flex; gap: 0.3rem; }
.composer__tool {
  display: inline-grid; place-items: center; width: 2.2rem; height: 2.2rem;
  border-radius: 50%; cursor: pointer; font-size: 1.1rem;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  color: var(--text, #eaf2f1);
}
.composer__tool:hover, .composer__tool.is-on { border-color: var(--lime, #b4f03a); background: var(--surface-3, #1e2d3d); }

/* reações por emoji (Discord/WhatsApp) */
.post__reacts { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; }
.react-chip {
  display: inline-flex; align-items: center; gap: 0.25rem; cursor: pointer;
  border-radius: var(--radius-pill, 999px); padding: 0.2rem 0.55rem;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  color: var(--text, #eaf2f1); font: inherit; font-size: 0.9rem; line-height: 1;
  transition: transform 0.12s, border-color 0.12s, background 0.12s;
}
.react-chip:hover { transform: translateY(-1px); }
.react-chip b { font-size: 0.78rem; color: var(--text-2, #9aabb4); font-weight: 700; }
.react-chip.is-mine { border-color: var(--lime, #b4f03a); background: rgba(180, 240, 58, 0.12); }
.react-chip.is-mine b { color: var(--lime, #b4f03a); }
.react-add { position: relative; }
.react-add__btn {
  display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem;
  border-radius: 50%; cursor: pointer; font-size: 0.95rem; line-height: 1;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  color: var(--text-2, #9aabb4);
}
.react-add__btn:hover { color: var(--text, #eaf2f1); border-color: var(--lime, #b4f03a); }
.react-picker {
  position: absolute; bottom: calc(100% + 0.35rem); left: 0; z-index: 5;
  display: grid; gap: 0.35rem; padding: 0.4rem;
  background: var(--surface, #111a24); border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.16));
  border-radius: 18px; box-shadow: var(--shadow-pop, 0 16px 32px -18px rgba(0, 0, 0, 0.85));
}
.react-picker__quick {
  display: flex; gap: 0.15rem; align-items: center;
}
.react-pick {
  cursor: pointer; border: none; background: none; font-size: 1.2rem; line-height: 1;
  width: 2rem; height: 2rem; border-radius: 50%; transition: transform 0.12s, background 0.12s;
}
.react-pick:hover { transform: scale(1.25); background: var(--surface-2, #16222f); }
.react-custom {
  display: grid; grid-template-columns: minmax(2.4rem, 1fr) auto; gap: 0.3rem; align-items: center;
}
.react-custom__input {
  width: 100%; min-width: 0; height: 2rem; border-radius: var(--radius-pill, 999px);
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08)); background: var(--surface-2, #16222f);
  color: var(--text, #eaf2f1); text-align: center; font-size: 1.05rem; outline: none;
}
.react-custom__input:focus { border-color: var(--lime, #b4f03a); }
.react-custom__send {
  height: 2rem; border-radius: var(--radius-pill, 999px); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  padding: 0 0.6rem; background: var(--surface-2, #16222f); color: var(--text, #eaf2f1);
  font-weight: 800; font-size: 0.72rem; cursor: pointer;
}
.react-custom__send:hover { border-color: var(--lime, #b4f03a); color: var(--lime, #b4f03a); }

/* IMPORTANTE: o atributo hidden precisa vencer os display:flex/grid abaixo,
   senão o seletor de emojis e a enquete ficam sempre abertos (como pré-clicados). */
.react-picker[hidden],
.composer__poll[hidden],
.composer__media[hidden] { display: none; }

/* ---------- Hero: barra de XP/nível (além da barra de liga) ----------
   A de liga sobe só com partidas confirmadas; a de XP sobe a cada atividade. */
.pl-hero__xphead--xp { margin-top: 0.55rem; }
.xpbar--xp i { background: var(--ouro, #f7c948); }

/* ===================================================================== */
/* INÍCIO (home do aluno) + MISSÕES + CELEBRAÇÃO                          */
/* ===================================================================== */
.home-week__stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; margin: 0.3rem 0 0.8rem;
}
@media (max-width: 460px) { .home-week__stats { grid-template-columns: repeat(2, 1fr); } }
.home-stat {
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  border-radius: var(--radius, 14px); padding: 0.6rem 0.5rem; text-align: center;
}
.home-stat__v { font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.25rem; color: var(--text, #eaf2f1); }
.home-stat__k { font-size: 0.72rem; color: var(--text-2, #9aabb4); text-transform: uppercase; letter-spacing: 0.03em; }
.home-week__cta { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.home-mission__txt { color: var(--text, #eaf2f1); font-size: 0.96rem; line-height: 1.45; margin: 0.2rem 0 0; }
.home-acts { display: grid; gap: 0.4rem; }
.home-act {
  display: flex; align-items: center; gap: 0.6rem;
  background: var(--surface-2, #16222f); border-radius: var(--radius-sm, 10px); padding: 0.5rem 0.75rem;
  font-size: 0.9rem; color: var(--text, #eaf2f1);
}
.home-act__d { flex: none; font-size: 0.74rem; color: var(--text-3, #6b7b85); min-width: 4.2rem; }
.home-act__t { flex: 1; min-width: 0; }
.home-act__xp { color: var(--ouro, #f7c948); font-weight: 700; font-size: 0.82rem; flex: none; }

/* missões / desafios */
.missions { display: grid; gap: 0.6rem; }
.mission {
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  border-radius: var(--radius, 14px); padding: 0.7rem 0.85rem;
}
.mission.is-done { border-color: var(--lime, #b4f03a); background: rgba(180, 240, 58, 0.07); }
.mission__top { display: flex; align-items: center; gap: 0.55rem; margin-bottom: 0.5rem; }
.mission__icon { font-size: 1.2rem; flex: none; }
.mission__title { flex: 1; min-width: 0; font-size: 0.94rem; color: var(--text, #eaf2f1); }
.mission__scope {
  font-size: 0.68rem; color: var(--teal, #11c6a6); background: rgba(17, 198, 166, 0.12);
  border-radius: var(--radius-pill, 999px); padding: 0.05rem 0.4rem; white-space: nowrap;
}
.mission__reward { font-size: 0.8rem; color: var(--text-3, #6b7b85); font-weight: 700; flex: none; }
.mission__claimed { font-size: 0.8rem; color: var(--lime, #b4f03a); font-weight: 700; flex: none; }
.mission__bar { height: 7px; border-radius: 999px; background: var(--ink-700, #0c1219); overflow: hidden; }
.mission__bar i { display: block; height: 100%; border-radius: 999px; background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); transition: width 0.5s var(--ease, ease); }
.mission.is-done .mission__bar i { background: var(--lime, #b4f03a); }
.mission__meta { font-size: 0.74rem; color: var(--text-3, #6b7b85); margin-top: 0.3rem; }

/* celebração (overlay + confete) */
.celebrate {
  position: fixed; inset: 0; z-index: 1400; display: grid; place-items: center;
  pointer-events: none; opacity: 0; transition: opacity 0.3s;
}
.celebrate.is-on { opacity: 1; }
.celebrate__card {
  position: relative; z-index: 1; text-align: center; padding: 1.4rem 1.8rem;
  background: var(--surface, #111a24); border: 1px solid var(--lime, #b4f03a);
  border-radius: var(--radius-lg, 20px); box-shadow: var(--glow-lime, 0 0 40px -8px rgba(180, 240, 58, 0.5));
  transform: scale(0.85); transition: transform 0.35s cubic-bezier(0.22, 1.4, 0.36, 1);
}
.celebrate.is-on .celebrate__card { transform: scale(1); }
.celebrate__ic { font-size: 2.6rem; line-height: 1; }
.celebrate__title { font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.4rem; color: var(--text, #eaf2f1); margin-top: 0.3rem; }
.celebrate__sub { color: var(--ouro, #f7c948); font-weight: 700; margin-top: 0.2rem; }
.celebrate__burst { position: absolute; inset: 0; overflow: hidden; }
.celebrate__burst i {
  position: absolute; top: -8%; width: 9px; height: 14px; background: var(--c, #b4f03a);
  border-radius: 2px; opacity: 0; transform: rotate(var(--rot, 0deg));
  animation: confetti-fall var(--d, 0.6s) var(--delay, 0s) ease-in forwards;
}
@keyframes confetti-fall {
  0% { opacity: 1; top: -8%; }
  100% { opacity: 0; top: 108%; transform: rotate(calc(var(--rot, 0deg) + 360deg)); }
}
@media (prefers-reduced-motion: reduce) { .celebrate__burst i { animation: none; display: none; } }

/* ---------- Emblema social: bola de evolução ao lado do nome ---------- */
.ball-orb--xs { width: 16px; height: 16px; }
.post-emblem {
  display: inline-flex; align-items: center; gap: 0.15rem;
  margin-left: 0.4rem; vertical-align: middle; transform: translateY(-1px);
}
.post-emblem__medal { font-size: 0.8rem; line-height: 1; }
.comment__author .post-emblem { margin-left: 0.3rem; }
.comment__author .ball-orb--xs { width: 13px; height: 13px; }

/* ações do post viram botões */
.post__actions { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.post__act {
  display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer;
  background: none; border: none; padding: 0.3rem 0.5rem; border-radius: var(--radius-pill, 999px);
  color: var(--text-2, #9aabb4); font: inherit; font-size: 0.9rem;
  transition: color 0.15s, background 0.15s;
}
.post__act:hover { background: var(--surface-2, #16222f); color: var(--text, #eaf2f1); }
.post__act.is-liked { color: var(--lime, #b4f03a); }
.post__act.is-pop { animation: likePop 0.3s ease; }
@keyframes likePop { 0% { transform: scale(1); } 40% { transform: scale(1.25); } 100% { transform: scale(1); } }

.post__photo { margin: 0.6rem 0; }
.post__photo img { width: 100%; max-height: 380px; object-fit: cover; border-radius: var(--radius, 14px); display: block; }

/* enquete */
.poll { display: grid; gap: 0.4rem; margin: 0.6rem 0; }
.poll__opt {
  position: relative; overflow: hidden; text-align: left; cursor: pointer;
  border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.14)); border-radius: var(--radius-sm, 10px);
  background: var(--surface-2, #16222f); color: var(--text, #eaf2f1);
  padding: 0.55rem 0.8rem; font: inherit; font-size: 0.92rem;
}
.poll__opt:hover { border-color: var(--lime, #b4f03a); }
.poll__opt--res { cursor: default; display: flex; align-items: center; gap: 0.5rem; }
.poll__opt--res.is-mine { border-color: var(--lime, #b4f03a); }
.poll__bar {
  position: absolute; inset: 0 auto 0 0; z-index: 0;
  background: rgba(180, 240, 58, 0.16); border-radius: inherit; transition: width 0.4s var(--ease, ease);
}
.poll__lbl { position: relative; z-index: 1; flex: 1; min-width: 0; }
.poll__pct { position: relative; z-index: 1; font-weight: 700; color: var(--text-2, #9aabb4); }
.poll__opt--res.is-mine .poll__pct { color: var(--lime, #b4f03a); }
.poll__total { font-size: 0.78rem; color: var(--text-3, #6b7b85); }

/* comentários */
.post__comments { margin-top: 0.6rem; border-top: 1px solid var(--line, rgba(255, 255, 255, 0.06)); padding-top: 0.6rem; }
.comment-list { display: grid; gap: 0.55rem; margin-bottom: 0.6rem; }
.comment { display: flex; gap: 0.5rem; align-items: flex-start; }
.comment__av { width: 30px; height: 30px; flex: none; font-size: 0.7rem; }
.comment__body {
  background: var(--surface-2, #16222f); border-radius: 0.8rem; padding: 0.45rem 0.7rem;
  display: flex; flex-direction: column; gap: 0.1rem; min-width: 0;
}
.comment__author { font-weight: 700; font-size: 0.82rem; color: var(--text, #eaf2f1); }
.comment__text { font-size: 0.9rem; color: var(--text, #eaf2f1); word-break: break-word; }
.comment__time { font-size: 0.7rem; color: var(--text-3, #6b7b85); }
.comment-add { display: flex; gap: 0.4rem; }
.comment-add__field {
  flex: 1; min-width: 0; background: var(--ink-700, #0c1219);
  border: 1px solid var(--line, rgba(255, 255, 255, 0.1)); border-radius: var(--radius-pill, 999px);
  color: var(--text, #eaf2f1); font: inherit; font-size: 0.9rem; padding: 0.5rem 0.85rem; outline: none;
}
.comment-add__field:focus { border-color: var(--lime, #b4f03a); }
.comment-add__btn {
  flex: none; cursor: pointer; border: none; border-radius: var(--radius-pill, 999px);
  background: var(--surface-3, #1e2d3d); color: var(--text, #eaf2f1);
  font: inherit; font-size: 0.85rem; padding: 0.5rem 0.9rem;
}
.comment-add__btn:hover { background: var(--lime, #b4f03a); color: var(--on-accent, #0a0f0a); }

/* ==================================================================
   REDE SOCIAL — perfil clicável + flair discreto (Twitter/Instagram-like)
   ================================================================== */

/* cabeçalho do post e autor do comentário viram botões clicáveis */
.post__head {
  display: flex; align-items: center; gap: 0.6rem;
  background: none; border: none; padding: 0; margin: 0 0 0.55rem; cursor: pointer;
  font: inherit; color: inherit; text-align: left; width: auto; border-radius: 0.6rem;
}
.post__head:hover .post__author { text-decoration: underline; }
.comment__avbtn {
  background: none; border: none; padding: 0; cursor: pointer; line-height: 0;
  border-radius: 50%; flex: none;
}
.comment__author {
  background: none; border: none; padding: 0; cursor: pointer; font: inherit;
  font-weight: 700; font-size: 0.82rem; color: var(--text, #eaf2f1);
  text-align: left; display: inline-flex; align-items: center;
}
.comment__author:hover { text-decoration: underline; }

/* flair: pontinho colorido da bola atual (substitui a "bola gigante") */
.author-flair {
  display: inline-block; width: 8px; height: 8px; border-radius: 50%;
  background: var(--fc, var(--lime, #b4f03a)); margin-left: 0.4rem;
  vertical-align: middle; transform: translateY(-1px);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--fc, #b4f03a) 25%, transparent);
}

/* ---------- Modal de perfil (estilo card de rede social) ---------- */
.prof-view { display: grid; gap: 1rem; }
.prof-view__top { display: flex; align-items: center; gap: 0.9rem; }
.prof-view__avwrap { position: relative; flex: none; }
.prof-view__av { width: 76px; height: 76px; font-size: 1.5rem; }
.prof-view__avwrap .prof-view__ball {
  position: absolute; right: -4px; bottom: -4px; left: auto; top: auto;
  box-shadow: 0 0 0 3px var(--surface, #111a24);
}
.prof-view__id { min-width: 0; }
.prof-view__name {
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1.45rem; font-weight: 800; line-height: 1.05; color: var(--text, #eaf2f1);
}
.prof-view__handle { font-size: 0.86rem; color: var(--text-2, #9aabb4); margin-top: 0.15rem; }
.prof-view__league { margin-top: 0.4rem; }
.prof-view__bio {
  margin: 0; font-size: 0.95rem; line-height: 1.5; color: var(--text, #eaf2f1);
  border-left: 3px solid var(--lime, #b4f03a); padding-left: 0.75rem;
}
.prof-view__bio--empty {
  color: var(--text-2, #9aabb4); border-left-color: var(--line-strong, rgba(255,255,255,0.14)); font-style: italic;
}
.prof-view__ficha { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.prof-attr {
  display: inline-flex; align-items: baseline; gap: 0.35rem;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255,255,255,0.07));
  border-radius: var(--radius-pill, 999px); padding: 0.3rem 0.7rem;
  font-size: 0.85rem; color: var(--text, #eaf2f1);
}
.prof-attr b { font-size: 0.72rem; font-weight: 700; color: var(--text-3, #6b7b85); text-transform: uppercase; letter-spacing: 0.03em; }
.prof-view__stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem;
  background: var(--surface-2, #16222f); border-radius: var(--radius, 14px); padding: 0.7rem;
}
.prof-view__stats .pl-stat { text-align: center; }
.prof-view__lbl {
  font-size: 0.74rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--text-3, #6b7b85); margin-bottom: -0.4rem;
}
.prof-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.prof-badge {
  display: inline-flex; align-items: center; gap: 0.3rem;
  background: var(--surface-3, #1e2d3d); border-radius: var(--radius-pill, 999px);
  padding: 0.32rem 0.7rem; font-size: 0.82rem; color: var(--text, #eaf2f1);
}
.prof-badge--empty { color: var(--text-3, #6b7b85); background: none; border: 1px dashed var(--line-strong, rgba(255,255,255,0.14)); }

@media (max-width: 520px) {
  .prof-view__stats { grid-template-columns: repeat(2, 1fr); }
}

.rankrow__acts { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* ---------- Solicitar acesso: criar perfil interativo ---------- */
.auth-card--wide { max-width: 540px; }
.ar-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.7rem; }
.ar-block { margin: 0.85rem 0 0.2rem; }
.ar-label {
  display: block; font-size: 0.78rem; font-weight: 700; color: var(--text-2, #9aabb4);
  text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.45rem;
}
.ar-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.ar-chip {
  display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer;
  background: var(--surface-2, #16222f); border: 1px solid var(--line-strong, rgba(255,255,255,0.12));
  border-radius: var(--radius-pill, 999px); padding: 0.5rem 0.85rem;
  color: var(--text, #eaf2f1); font: inherit; font-size: 0.88rem;
  transition: border-color 0.15s, background 0.15s, transform 0.1s;
}
.ar-chip:hover { border-color: var(--lime, #b4f03a); }
.ar-chip:active { transform: scale(0.96); }
.ar-chip.is-active {
  background: var(--lime, #b4f03a); border-color: var(--lime, #b4f03a);
  color: var(--on-accent, #0a0f0a); font-weight: 700;
}
.ar-chip__ic { line-height: 1; }
[data-chips="role"] .ar-chip { flex: 1 1 auto; justify-content: center; }

@media (max-width: 480px) { .ar-grid { grid-template-columns: 1fr; } }

/* nota suave no form de solicitar acesso */
.ar-soft {
  font-size: 0.82rem; color: var(--text-2, #9aabb4); line-height: 1.45;
  background: var(--surface-2, #16222f); border-radius: var(--radius-sm, 10px);
  padding: 0.6rem 0.8rem; margin: 0.9rem 0 0.2rem;
}
.ar-soft b { color: var(--text, #eaf2f1); }

/* ==================================================================
   REDE SOCIAL DA IRALU — 3 celulares verticais (galeria → feed)
   ================================================================== */
.phones {
  display: flex; align-items: center; justify-content: center; gap: 1.4rem;
  flex-wrap: wrap; perspective: 1400px;
}
.phone {
  position: relative; margin: 0; flex: 0 0 auto;
  width: 230px; border-radius: 30px;
  background: linear-gradient(160deg, #1b2838, #0d141d);
  padding: 8px; box-shadow: 0 26px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}
.phone--main {
  width: 270px; z-index: 2;
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(180, 240, 58, 0.18) inset, 0 0 40px rgba(180, 240, 58, 0.12);
}
.phone--side { transform: translateY(18px) scale(0.96); opacity: 0.96; }
.phone--side:first-child { transform: translateY(18px) scale(0.96) rotate(-3deg); }
.phone--side:last-child { transform: translateY(18px) scale(0.96) rotate(3deg); }
.phone__notch {
  position: absolute; top: 14px; left: 50%; transform: translateX(-50%);
  width: 78px; height: 7px; border-radius: 999px; background: rgba(0, 0, 0, 0.55); z-index: 4;
}
.phone__screen {
  position: relative; border-radius: 24px; overflow: hidden;
  aspect-ratio: 9 / 16; background: var(--surface-2, #16222f);
  display: flex; align-items: center; justify-content: center;
}
.phone__slot {
  position: absolute; inset: 0; width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  border-radius: 0; font-size: 0.78rem; opacity: 0.6;
}
.phone__tag {
  position: absolute; top: 14px; left: 12px; z-index: 3;
  background: rgba(0, 0, 0, 0.55); backdrop-filter: blur(4px);
  color: #fff; font-size: 0.72rem; font-weight: 600;
  padding: 0.28rem 0.6rem; border-radius: 999px;
}
.phone__tag--live { color: #ff5a5a; }
.phone__play {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 58px; height: 58px; border-radius: 50%; border: none; cursor: pointer; z-index: 3;
  background: var(--lime, #b4f03a); color: #0a0f0a; font-size: 1.3rem; padding-left: 4px;
  box-shadow: 0 8px 24px rgba(180, 240, 58, 0.45); transition: transform 0.18s ease;
}
.phone__play:hover { transform: translate(-50%, -50%) scale(1.08); }
.phone__ui {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
  padding: 1.6rem 0.8rem 0.85rem;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.82), rgba(0, 0, 0, 0));
  color: #fff; text-align: left;
}
.phone__author { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; font-weight: 700; }
.phone__av {
  width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center;
  background: var(--grad-brand, linear-gradient(135deg, #b4f03a, #11c6a6)); color: #0a0f0a; font-size: 0.6rem; font-weight: 800;
}
.phone__cap { margin: 0.35rem 0 0; font-size: 0.76rem; line-height: 1.35; opacity: 0.95; }
.phone__react { display: flex; gap: 0.7rem; margin-top: 0.5rem; font-size: 0.72rem; opacity: 0.9; }

@media (max-width: 760px) {
  .phones { gap: 0.8rem; }
  .phone { width: 180px; }
  .phone--main { width: 210px; }
  .phone--side { display: none; }
}
@media (max-width: 460px) {
  .phone--main { width: 240px; }
}
@media (prefers-reduced-motion: reduce) {
  .phone--side, .phone--side:first-child, .phone--side:last-child { transform: none; }
}

/* ==================================================================
   COMPLETE SEU PERFIL (onboarding gamificado) + QUIZ DE NÍVEL
   ================================================================== */
.pc-card { border: 1px solid rgba(180, 240, 58, 0.22); }
.pc-card__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.7rem; }
.pc-card__head h3 { margin: 0; }
.pc-card__sub { margin: 0.2rem 0 0; font-size: 0.82rem; color: var(--text-2, #9aabb4); }
.pc-ring {
  flex: none; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center;
  background: conic-gradient(var(--lime, #b4f03a) var(--pct, 0%), var(--surface-3, #1e2d3d) 0);
}
.pc-ring span {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center;
  background: var(--surface, #111a24); font-size: 0.74rem; font-weight: 800; color: var(--lime, #b4f03a);
}
.pc-rows { display: grid; gap: 0.45rem; }
.pc-row {
  display: flex; align-items: center; gap: 0.6rem; width: 100%; text-align: left; cursor: pointer;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.07));
  border-radius: var(--radius-sm, 10px); padding: 0.6rem 0.75rem; font: inherit; color: var(--text, #eaf2f1);
  transition: border-color 0.15s, background 0.15s, transform 0.1s;
}
.pc-row:hover:not(.is-done) { border-color: var(--lime, #b4f03a); transform: translateX(2px); }
.pc-row__ic { font-size: 1.1rem; flex: none; }
.pc-row__lbl { flex: 1; min-width: 0; font-size: 0.9rem; }
.pc-row__go { font-size: 0.8rem; font-weight: 700; color: var(--lime, #b4f03a); flex: none; }
.pc-row__ok { font-size: 0.76rem; color: var(--text-3, #6b7b85); flex: none; }
.pc-row.is-done { opacity: 0.65; cursor: default; }
.pc-row.is-done .pc-row__lbl { text-decoration: line-through; }
.pc-row.is-hot { border-color: rgba(180, 240, 58, 0.5); background: rgba(180, 240, 58, 0.07); }

/* quiz de nível — modal focado, NÃO usa a grade de 2 colunas do --wide
   (era isso que "quebrava" o layout: o #tqBody, filho único, ficava só na coluna 1) */
.modal__box--quiz { max-width: 520px; }
.modal__box--quiz .modal__body { display: block; }
.tq { display: grid; gap: 0.85rem; }
.tq-prog { height: 6px; border-radius: 999px; background: var(--surface-3, #1e2d3d); overflow: hidden; }
.tq-prog i { display: block; height: 100%; background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); transition: width 0.3s ease; }
.tq-step { font-size: 0.76rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-3, #6b7b85); }
.tq-q { margin: 0; font-size: 1.15rem; line-height: 1.3; color: var(--text, #eaf2f1); }
.tq-opts { display: grid; gap: 0.5rem; }
.tq-opt {
  text-align: left; cursor: pointer; background: var(--surface-2, #16222f);
  border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.12)); border-radius: var(--radius-sm, 10px);
  padding: 0.7rem 0.9rem; font: inherit; font-size: 0.92rem; color: var(--text, #eaf2f1);
  transition: border-color 0.14s, background 0.14s, transform 0.1s;
}
.tq-opt:hover { border-color: var(--lime, #b4f03a); background: var(--surface-3, #1e2d3d); transform: translateX(3px); }
.tq-result { text-align: center; }
.tq-badge {
  width: 84px; height: 84px; margin: 0.4rem auto 0; border-radius: 50%; display: grid; place-items: center;
  font-size: 2.4rem; background: color-mix(in srgb, var(--c, #b4f03a) 18%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--c, #b4f03a) 40%, transparent);
}
.tq-result__lbl { font-size: 0.82rem; color: var(--text-2, #9aabb4); margin-top: 0.6rem; }
.tq-result__lvl { margin: 0.1rem 0 0.3rem; font-size: 1.8rem; }
.tq-result__desc { margin: 0 auto 0.4rem; max-width: 420px; font-size: 0.9rem; color: var(--text, #eaf2f1); line-height: 1.45; }
.tq-score { font-size: 0.86rem; color: var(--text-2, #9aabb4); margin-bottom: 0.8rem; }
.tq-result__note { font-size: 0.76rem; color: var(--text-3, #6b7b85); margin: 0.7rem 0 0; }

/* ===================================================================== */
/* RODADA CONVERSÃO — WhatsApp flutuante, prévia, diagnóstica, responsáveis,
   B2B passos, prova social, placeholders premium. Tudo aditivo.          */
/* ===================================================================== */

/* ---------- WhatsApp flutuante ---------- */
.wa-fab {
  position: fixed; right: 18px; bottom: 18px; z-index: 1200;
  display: inline-flex; align-items: center; gap: 0.55rem;
  padding: 0.7rem 0.95rem; border-radius: var(--radius-pill, 999px);
  background: #25d366; color: #07251a; font-weight: 800; font-size: 0.95rem;
  text-decoration: none; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35), 0 0 0 6px rgba(37, 211, 102, 0.14);
  transition: transform 0.18s ease, box-shadow 0.18s ease; line-height: 1;
}
.wa-fab:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 14px 38px rgba(0, 0, 0, 0.4), 0 0 0 8px rgba(37, 211, 102, 0.2); }
.wa-fab__ic { width: 26px; height: 26px; flex: none; }
.wa-fab.is-hidden { opacity: 0; pointer-events: none; transform: translateY(20px); }
@media (max-width: 560px) {
  .wa-fab { right: 14px; bottom: 14px; padding: 0.7rem; }
  .wa-fab__txt { display: none; }   /* só o ícone no mobile, não cobre conteúdo */
  .wa-fab__ic { width: 28px; height: 28px; }
}
@media (prefers-reduced-motion: reduce) { .wa-fab { transition: none; } }

/* ---------- Prévia pública da plataforma (botão + nota) ---------- */
.platform-peek { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; text-align: center; }
.platform-peek__note { font-size: 0.85rem; color: var(--text-2, #9aabb4); }
.platform-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.platform-card {
  display: grid;
  gap: 0.75rem;
  align-content: start;
}
.platform-card__sample {
  margin-top: 0.1rem;
  padding: 0.8rem 0.9rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(180px 90px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 72%),
    rgba(255, 255, 255, 0.03);
}
.platform-card__label {
  display: inline-flex;
  margin-bottom: 0.45rem;
  color: var(--lime, #b4f03a);
  font-family: var(--font-ui, "Saira", sans-serif);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}
.platform-card__list {
  display: grid;
  gap: 0.42rem;
  margin: 0;
  padding-left: 1rem;
  color: var(--text-2, #9aabb4);
  font-size: 0.84rem;
  line-height: 1.45;
}

/* ---------- Aula diagnóstica: passos + valor ---------- */
.diag-steps { display: grid; gap: 0.6rem; margin: 1.4rem 0 0; }
.diag-step { display: flex; gap: 0.7rem; align-items: flex-start; }
.diag-step__n {
  flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center;
  font-weight: 800; font-size: 0.85rem; background: rgba(180, 240, 58, 0.14); color: var(--lime, #b4f03a);
}
.diag-step b { display: block; font-size: 0.98rem; color: var(--text, #eaf2f1); }
.diag-step span { font-size: 0.88rem; color: var(--text-2, #9aabb4); }
.diag-value {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; margin-top: 1.3rem;
  padding: 0.85rem 1rem; border-radius: var(--radius, 14px);
  background: radial-gradient(500px 200px at 0% 0%, rgba(232, 201, 110, 0.12), transparent 60%), var(--surface-2, #16222f);
  border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.12));
}
.diag-value__badge {
  flex: none; font-weight: 800; font-size: 0.82rem; padding: 0.35rem 0.7rem; border-radius: var(--radius-pill, 999px);
  background: var(--gold, #e8c96e); color: #2a1f05; white-space: nowrap;
}
.diag-value__txt { flex: 1 1 260px; font-size: 0.9rem; color: var(--text, #eaf2f1); line-height: 1.45; }

/* ---------- Para responsáveis ---------- */
.resp-list { display: grid; gap: 0.7rem; margin-top: 1.3rem; }
.resp-item { display: flex; gap: 0.7rem; align-items: flex-start; }
.resp-item__ic { flex: none; font-size: 1.3rem; line-height: 1; }
.resp-item b { display: block; color: var(--text, #eaf2f1); font-size: 0.98rem; }
.resp-item span { font-size: 0.88rem; color: var(--text-2, #9aabb4); }
.resp-media { display: flex; align-items: stretch; }
.resp-media .ph--media { width: 100%; border-radius: var(--radius, 14px); }

/* ---------- B2B: parceria em 3 passos ---------- */
.b2b-steps { margin-top: 1.6rem; }
.b2b-steps__title { display: block; font-weight: 700; color: var(--text-2, #9aabb4); margin-bottom: 0.8rem; font-size: 0.9rem; }
.b2b-steps__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; }
.b2b-step {
  position: relative; padding: 1rem; border-radius: var(--radius, 14px);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.b2b-step__n {
  display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; margin-bottom: 0.5rem;
  font-weight: 800; background: var(--grad-brand, linear-gradient(135deg, #b4f03a, #11c6a6)); color: #07140f;
}
.b2b-step b { display: block; color: var(--text, #eaf2f1); margin-bottom: 0.2rem; }
.b2b-step span { font-size: 0.86rem; color: var(--text-2, #9aabb4); }
@media (max-width: 720px) { .b2b-steps__row { grid-template-columns: 1fr; } }

/* ---------- Prova social: números + vídeo ---------- */
.proof-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.8rem; margin-top: 1.6rem;
}
.proof-stat {
  text-align: center; padding: 1rem 0.6rem; border-radius: var(--radius, 14px);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.proof-stat__n {
  display: block; font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1.7rem; font-weight: 800; line-height: 1.05;
  background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.proof-stat__l { display: block; font-size: 0.8rem; color: var(--text-2, #9aabb4); margin-top: 0.2rem; }
@media (max-width: 620px) { .proof-stats { grid-template-columns: repeat(2, 1fr); } }
.testi-video {
  display: flex; gap: 1rem; align-items: center; margin-top: 1.4rem; padding: 0.9rem;
  border-radius: var(--radius, 14px); border: 1px dashed var(--line-strong, rgba(255, 255, 255, 0.14));
  background: var(--surface, #111a24);
}
.testi-video__slot { width: 180px; flex: none; aspect-ratio: 16/10; border-radius: var(--radius-sm, 10px); }
.testi-video__txt b { display: block; color: var(--text, #eaf2f1); }
.testi-video__txt span { font-size: 0.88rem; color: var(--text-2, #9aabb4); }
@media (max-width: 560px) { .testi-video { flex-direction: column; align-items: stretch; } .testi-video__slot { width: 100%; } }

/* ---------- Placeholders de mídia mais premium (data-photo) ---------- */
.ph--media {
  display: flex; align-items: center; justify-content: center; gap: 0.4rem;
  min-height: 120px; color: var(--text-3, #6b7b85); font-size: 0.82rem; letter-spacing: 0.02em;
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,0.018) 0 12px, transparent 12px 24px),
    radial-gradient(420px 160px at 50% 0%, rgba(180, 240, 58, 0.06), transparent 70%),
    var(--surface-2, #16222f);
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08)); border-radius: var(--radius, 14px);
}

/* ---------- Prévia pública da plataforma (modal) ---------- */
.pp__lead { margin: 0 0 1rem; color: var(--text, #eaf2f1); font-size: 1rem; line-height: 1.5; }
.pp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.7rem; }
.pp-card {
  display: flex; gap: 0.7rem; padding: 0.85rem; border-radius: var(--radius, 14px);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.pp-card__ic { flex: none; font-size: 1.4rem; line-height: 1; }
.pp-card__b b { display: block; color: var(--text, #eaf2f1); font-size: 0.96rem; }
.pp-card__b span { font-size: 0.85rem; color: var(--text-2, #9aabb4); line-height: 1.4; }
.pp-card__demo { margin-top: 0.55rem; }
.pp-balls { display: flex; align-items: center; gap: 0.28rem; flex-wrap: wrap; }
.pp-balls .ball-orb--xs { width: 16px; height: 16px; }
.pp-balls__lbl { font-size: 0.72rem; color: var(--text-3, #6b7b85); margin-left: 0.25rem; }
.pp-bar { height: 7px; border-radius: 999px; background: var(--surface-3, #1e2d3d); overflow: hidden; }
.pp-bar i { display: block; height: 100%; background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); }
.pp-bar__lbl { display: block; font-size: 0.72rem; color: var(--text-3, #6b7b85); margin-top: 0.3rem; }
.pp__foot { margin: 1rem 0 0; text-align: center; font-weight: 700; color: var(--lime, #b4f03a); }
#platformPreviewModal .modal__box--wide {
  max-width: min(920px, calc(100vw - 32px));
}
#platformPreviewModal .modal__body {
  display: block;
}
#platformPreviewModal .modal__foot {
  display: block;
}
@media (min-width: 860px) {
  #platformPreviewModal .pp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #platformPreviewModal .pp-card { min-height: 160px; }
}
@media (max-width: 620px) { .pp-grid { grid-template-columns: 1fr; } }

/* ---------- Quiz: selos de confiança na intro ---------- */
.quiz-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin: 0.9rem auto 0; max-width: 560px; }
.quiz-trust__chip {
  font-size: 0.82rem; color: var(--text-2, #9aabb4);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  border-radius: var(--radius-pill, 999px); padding: 0.35rem 0.75rem;
}

/* ---------- Comunidade: faixa de boas-vindas + estado vazio ---------- */
.community-hero {
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 0.9rem;
  padding: 0.9rem 1rem; border-radius: var(--radius, 14px);
  background: radial-gradient(600px 200px at 0% 0%, rgba(180, 240, 58, 0.10), transparent 60%), var(--surface, #111a24);
  border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.12));
}
.community-hero__txt b { display: block; font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.2rem; color: var(--text, #eaf2f1); }
.community-hero__txt span { font-size: 0.88rem; color: var(--text-2, #9aabb4); }
.community-empty { text-align: center; padding: 2rem 1rem; display: grid; gap: 0.3rem; justify-items: center; }
.community-empty__ic { font-size: 2.2rem; }
.community-empty b { color: var(--text, #eaf2f1); font-size: 1.05rem; }
.community-empty span { color: var(--text-2, #9aabb4); font-size: 0.9rem; max-width: 42ch; }

/* ---------- Admin: solicitações de acesso ---------- */
.req-flow {
  font-size: 0.84rem; color: var(--text-2, #9aabb4); margin-bottom: 0.7rem;
  padding: 0.55rem 0.75rem; border-radius: var(--radius-sm, 10px);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.req-flow b { color: var(--text, #eaf2f1); }
.req-row { padding: 0.7rem 0; border-bottom: 1px solid var(--line, rgba(255, 255, 255, 0.06)); }
.req-row:last-child { border-bottom: 0; }
.req-row__top { display: flex; align-items: center; gap: 0.6rem; }
.req-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.5rem 0 0 2.4rem; }
.req-chip { font-size: 0.76rem; color: var(--text-2, #9aabb4); background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255,255,255,0.08)); border-radius: var(--radius-pill, 999px); padding: 0.2rem 0.55rem; }
.req-msg { margin: 0.5rem 0 0 2.4rem; font-size: 0.86rem; color: var(--text, #eaf2f1); font-style: italic; }
.req-row .mini-btn--go { margin: 0.6rem 0 0 2.4rem; }

/* ===================================================================== */
/* RODADA 2 — Layout desktop: modal de perfil em 2 colunas + ajustes      */
/* ===================================================================== */

/* Box do perfil: NÃO usa a grade de 2 colunas do --wide (que prendia o
   conteúdo na coluna esquerda). Corpo em bloco; a 2-coluna é interna. */
.modal__box--profile { max-width: 460px; }
.modal__box--profile .modal__body { display: block; }

.prof-view__cols { display: grid; gap: 1rem; }
.prof-view__main, .prof-view__side { display: grid; gap: 1rem; align-content: start; }

@media (min-width: 880px) {
  .modal__box--profile { max-width: 700px; }
  /* minmax(0,…) faz o ratio ser respeitado mesmo com a grade de stats dentro
     (senão o min-content da lateral espreme a coluna principal). */
  .prof-view__cols { grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr); gap: 1.4rem; align-items: start; }
  .prof-view__side {
    padding-left: 1.4rem; border-left: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  }
  /* stats em 2 colunas no painel lateral (mais legível que 3 num espaço estreito) */
  .prof-view__side .prof-view__stats { grid-template-columns: 1fr 1fr; }
  /* header mais respirado no desktop */
  .prof-view__top { gap: 1.1rem; }
  .prof-view__av { width: 92px; height: 92px; font-size: 1.8rem; }
  .prof-view__name { font-size: 1.7rem; }
}

/* ---------- Hero: avatar maior, bola de nível (direita) + câmera discreta (esquerda) ---------- */
.pl-hero__avwrap { position: relative; flex: none; line-height: 0; }
.pl-hero__av { width: 84px; height: 84px; font-size: 1.7rem; }
@media (min-width: 760px) { .pl-hero__av { width: 96px; height: 96px; font-size: 1.9rem; } }
/* bola de evolução (nível) — canto inferior-direito */
.pl-hero__avwrap .pl-hero__ball {
  position: absolute; right: -3px; bottom: -3px; left: auto; top: auto;
  box-shadow: 0 0 0 3px var(--surface, #111a24);
}
/* câmera = ícone DISCRETO (sem o círculo verde) no canto inferior-esquerdo.
   Só um disco escuro translúcido para legibilidade do emoji; vira "só a foto". */
.pl-hero__avwrap .pl-hero__avcam {
  position: absolute; left: -2px; bottom: -2px; right: auto; top: auto;
  width: 1.55rem; height: 1.55rem; display: grid; place-items: center; cursor: pointer;
  font-size: 0.8rem; border-radius: 50%; padding: 0;
  background: rgba(8, 14, 20, 0.72); color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.22);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35); transition: transform 0.15s ease, background 0.15s ease;
}
.pl-hero__avwrap .pl-hero__avcam:hover { transform: scale(1.08); background: rgba(8, 14, 20, 0.9); }

/* ---------- Action sheet da foto + lightbox ---------- */
.modal__box--sheet { max-width: 380px; }
.modal__box--sheet .modal__body { display: block; }
.photo-sheet { display: grid; gap: 0.6rem; }
.photo-sheet__opt {
  display: flex; align-items: center; gap: 0.7rem; width: 100%; text-align: left; cursor: pointer;
  padding: 0.85rem 1rem; border-radius: var(--radius, 14px); font: inherit; font-size: 1rem;
  background: var(--surface-2, #16222f); border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.12));
  color: var(--text, #eaf2f1); transition: border-color 0.15s, background 0.15s;
}
.photo-sheet__opt:hover { border-color: var(--lime, #b4f03a); background: var(--surface-3, #1e2d3d); }
.photo-sheet__ic { font-size: 1.2rem; }
.photo-lightbox { display: grid; place-items: center; }
.photo-lightbox img { max-width: 100%; max-height: 70vh; border-radius: var(--radius, 14px); object-fit: contain; }

/* ---------- Check-in rápido (professor) ---------- */
.qe-head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.3rem; }
.qe-head b { display: block; color: var(--text, #eaf2f1); font-size: 1.05rem; }
.qe-head span { font-size: 0.85rem; color: var(--text-2, #9aabb4); }
.qe-block { margin: 0.2rem 0; }
.qe-lbl { display: block; font-size: 0.8rem; font-weight: 700; color: var(--text-2, #9aabb4); text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 0.45rem; }
.qe-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.qe-chip {
  cursor: pointer; font: inherit; font-size: 0.88rem; padding: 0.45rem 0.8rem;
  border-radius: var(--radius-pill, 999px); background: var(--surface-2, #16222f);
  border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.12)); color: var(--text, #eaf2f1);
  transition: border-color 0.15s, background 0.15s;
}
.qe-chip:hover { border-color: var(--lime, #b4f03a); }
.qe-chip.is-active { background: var(--lime, #b4f03a); border-color: var(--lime, #b4f03a); color: var(--on-accent, #0a0f0a); font-weight: 700; }
.modal__box--wide .modal__body > .qe-head,
.modal__box--wide .modal__body > .qe-block { grid-column: 1 / -1; }

/* ---------- Resumo do professor (aluno/responsável) ---------- */
.teacher-note { border-left: 3px solid var(--lime, #b4f03a); }
.teacher-note--empty { border-left-color: var(--line-strong, rgba(255, 255, 255, 0.14)); }
.tn-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin: 0.3rem 0 0.6rem; }
.tn-item { background: var(--surface-2, #16222f); border-radius: var(--radius-sm, 10px); padding: 0.55rem 0.7rem; }
.tn-item b { display: block; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-3, #6b7b85); }
.tn-item span { color: var(--text, #eaf2f1); font-size: 0.92rem; }
.tn-mission { font-size: 0.92rem; color: var(--text, #eaf2f1); margin-top: 0.2rem; }
.tn-rec { display: inline-block; margin-top: 0.5rem; font-weight: 700; font-size: 0.85rem; color: var(--lime, #b4f03a); }
.tn-by { margin: 0.5rem 0 0; font-size: 0.8rem; color: var(--text-3, #6b7b85); text-align: right; }
@media (max-width: 520px) { .tn-grid { grid-template-columns: 1fr; } }

/* ---------- Admin: ações da solicitação ---------- */
.req-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.6rem 0 0 2.4rem; }

/* ===================================================================== */
/* RODADA 2 — refinamentos desktop das seções novas (aditivo)            */
/* ===================================================================== */
.resp-cta { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1.5rem; }

/* Aula diagnóstica: passos em 2 colunas no desktop (menos "lista mobile") */
@media (min-width: 760px) {
  .diag-steps { grid-template-columns: 1fr 1fr; gap: 0.6rem 1.4rem; }
  .diag-steps .diag-step:nth-child(5) { grid-column: 1 / -1; }
}
/* Para responsáveis: imagem com altura cheia ao lado do texto no desktop */
@media (min-width: 760px) {
  #responsaveis .two-col { align-items: center; }
  .resp-media .ph--media { min-height: 340px; }
}
/* Prévia da plataforma: cards mais respirados no desktop largo */
@media (min-width: 1200px) {
  .modal__box--profile { max-width: 760px; }
}
/* Comunidade: largura de leitura confortável no desktop (não esticar texto) */
@media (min-width: 760px) {
  .community-hero { padding: 1.1rem 1.3rem; }
}

/* ---------- 🐛 Correção: grade de conquistas estourava no mobile ----------
   styles.css usa repeat(4,1fr)/repeat(6,1fr) fixos; com itens de ~81px de
   min-content num card estreito, a última coluna vazava. auto-fit + minmax
   torna responsivo (quebra linha quando não cabe) sem mexer no styles.css. */
.achievements { grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); }

/* ---------- 🐛 Correção: roster-row do admin estourava no mobile ----------
   O grid fixo (auto 1fr auto auto auto) não comporta status + pgto + ⚡ +
   Avaliar + editar. No mobile vira flex-wrap: nome ocupa a linha, os botões
   quebram para baixo. Desktop intacto (só <560px). */
@media (max-width: 560px) {
  /* !important porque evolution.css carrega DEPOIS deste arquivo no index.html
     (a .roster-row de lá venceria por ordem de fonte na mesma especificidade). */
  .roster .roster-row, .ready-list .ready-row, #adminApp .roster-row {
    display: flex !important; flex-wrap: wrap; align-items: center; row-gap: 0.5rem;
  }
  .roster-row__id, .ready-row__id { flex: 1 1 45%; min-width: 0; }
  .roster-row__media, .ready-row__media { margin-left: auto; }
}

/* 🐛 mobile: cabeçalho de card com botões de ação (+ Novo aluno/professor)
   quebra para baixo do título em vez de estourar a largura. */
@media (max-width: 560px) {
  .pl-card__head { flex-wrap: wrap; }
  .pl-card__actions { flex-wrap: wrap; }
}

/* ===================================================================== */
/* RODADA 3 — Rede social conectada (tipos de post, feed, home, perfil,   */
/* evolução, missões, ranking, responsável, professor). Tudo aditivo.     */
/* ===================================================================== */

/* ---------- Tipos de post: faixa de cabeçalho ---------- */
.post__banner {
  display: flex; align-items: center; gap: 0.45rem;
  font-family: var(--font-ui, "Saira", sans-serif); font-weight: 700;
  font-size: 0.8rem; letter-spacing: 0.01em; color: var(--text, #eaf2f1);
  padding: 0.4rem 0.7rem; margin: -0.2rem -0.2rem 0.6rem;
  border-radius: 999px; width: fit-content; max-width: 100%;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.post__banner-ic { font-size: 0.95rem; line-height: 1; }
.post__banner--match       { background: rgba(247, 201, 72, 0.12);  border-color: rgba(247, 201, 72, 0.35); }
.post__banner--mission     { background: rgba(255, 122, 41, 0.12);  border-color: rgba(255, 122, 41, 0.35); }
.post__banner--achievement { background: rgba(180, 240, 58, 0.12);  border-color: rgba(180, 240, 58, 0.35); }
.post__banner--highlight   { background: rgba(155, 108, 240, 0.14); border-color: rgba(155, 108, 240, 0.4); color: #d8c6ff; }
.post__banner--teacher_tip { background: rgba(17, 198, 166, 0.12);  border-color: rgba(17, 198, 166, 0.4); }
.post__banner--checkin     { background: var(--surface-3, #1e2d3d); }
.post--highlight { border: 1px solid rgba(155, 108, 240, 0.3); box-shadow: 0 0 0 1px rgba(155, 108, 240, 0.12) inset; }
.post--teacher_tip { border-left: 3px solid var(--teal, #11c6a6); }

/* ---------- Cartões de meta por tipo ---------- */
.pmatch {
  display: grid; gap: 0.2rem; text-align: center; margin: 0.5rem 0;
  padding: 0.7rem; border-radius: var(--radius-sm, 10px);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.pmatch__vs { font-size: 0.9rem; color: var(--text, #eaf2f1); font-weight: 700; }
.pmatch__vs span { color: var(--text-3, #6b7b85); font-weight: 600; margin: 0 0.2rem; }
.pmatch__score {
  font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.7rem;
  font-weight: 800; color: var(--text, #eaf2f1); line-height: 1.05; letter-spacing: 0.03em;
}
.pmatch__foot { font-size: 0.82rem; color: var(--text-2, #9aabb4); }
.pmatch__pts { color: var(--ouro, #f7c948); font-weight: 700; margin-left: 0.5rem; }
.pmeta-card {
  display: flex; align-items: center; gap: 0.6rem; margin: 0.5rem 0;
  padding: 0.6rem 0.75rem; border-radius: var(--radius-sm, 10px);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.pmeta-card__ic { font-size: 1.4rem; flex: none; }
.pmeta-card b { color: var(--text, #eaf2f1); font-size: 0.94rem; }
.pmeta-card__xp { color: var(--ouro, #f7c948); font-weight: 700; font-size: 0.84rem; margin-left: 0.5rem; }
.pmeta-card__sub { display: block; font-size: 0.78rem; color: var(--text-3, #6b7b85); }
.pmeta-card--mission { border-color: rgba(255, 122, 41, 0.3); }
.pmeta-card--ach { border-color: rgba(180, 240, 58, 0.3); }
.phl {
  margin: 0.5rem 0; padding: 0.7rem 0.8rem; border-radius: var(--radius-sm, 10px);
  background: rgba(155, 108, 240, 0.08); border: 1px solid rgba(155, 108, 240, 0.25);
}
.phl__who { font-weight: 800; color: #d8c6ff; font-size: 0.95rem; }
.phl__msg { margin: 0.3rem 0; color: var(--text, #eaf2f1); font-size: 0.92rem; line-height: 1.45; }
.phl__by { font-size: 0.8rem; color: var(--text-3, #6b7b85); text-align: right; }

/* ---------- Ações de post: parabéns + link ---------- */
.post__cheer {
  border: 1px solid rgba(180, 240, 58, 0.35); background: rgba(180, 240, 58, 0.08);
  color: var(--lime, #b4f03a); font-weight: 700; font-size: 0.8rem;
  padding: 0.3rem 0.65rem; border-radius: 999px; cursor: pointer;
  font-family: var(--font-ui, "Saira", sans-serif); transition: transform 0.15s ease, background 0.15s ease;
}
.post__cheer:hover { transform: translateY(-1px); background: rgba(180, 240, 58, 0.16); }
.post__act--link { color: var(--teal, #11c6a6); font-weight: 700; }
.post__photo--tall img { max-height: 480px; object-fit: contain; background: var(--ink-700, #0c1219); }

/* ---------- Feed: barra de filtros ---------- */
.feed-filters { display: flex; gap: 0.4rem; flex-wrap: wrap; margin: 0.2rem 0 0.8rem; }
.chip--feed { white-space: nowrap; }
@media (max-width: 560px) {
  .feed-filters { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 0.2rem; }
  .feed-filters::-webkit-scrollbar { height: 0; }
}

/* ---------- "Esta semana na Iralu" ---------- */
.week-strip {
  margin-bottom: 1rem; padding: 0.8rem 0.9rem; border-radius: var(--radius, 14px);
  background: var(--surface, #111a24); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.week-strip__head {
  font-family: var(--font-ui, "Saira", sans-serif); font-weight: 700; font-size: 0.82rem;
  color: var(--text-2, #9aabb4); margin-bottom: 0.55rem; letter-spacing: 0.02em;
}
.week-strip__empty { margin: 0; font-size: 0.88rem; color: var(--text-2, #9aabb4); }
.week-strip__row { display: flex; gap: 0.5rem; flex-wrap: wrap; }
@media (max-width: 560px) {
  .week-strip__row { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .week-strip__row::-webkit-scrollbar { height: 0; }
}
.week-chip {
  display: inline-flex; align-items: center; gap: 0.4rem; white-space: nowrap;
  padding: 0.4rem 0.7rem; border-radius: 999px; cursor: pointer;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.1));
  color: var(--text, #eaf2f1); font-size: 0.82rem; font-weight: 600;
  transition: transform 0.15s ease, border-color 0.15s ease;
}
.week-chip:hover { transform: translateY(-1px); border-color: var(--lime, #b4f03a); }
.week-chip__ic { font-size: 0.95rem; }

/* ---------- Compositor guiado ---------- */
.composer__title {
  font-family: var(--font-ui, "Saira", sans-serif); font-weight: 700; font-size: 0.92rem;
  color: var(--text, #eaf2f1); margin-bottom: 0.55rem;
}
.cmp-intents { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 0.7rem; }
@media (max-width: 560px) {
  .cmp-intents { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 0.2rem; }
  .cmp-intents::-webkit-scrollbar { height: 0; }
}
.cmp-intent {
  display: inline-flex; align-items: center; gap: 0.35rem; white-space: nowrap;
  padding: 0.4rem 0.7rem; border-radius: 999px; cursor: pointer;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.1));
  color: var(--text-2, #9aabb4); font-size: 0.82rem; font-weight: 600;
  font-family: var(--font-ui, "Saira", sans-serif); transition: all 0.15s ease;
}
.cmp-intent__ic { font-size: 0.95rem; }
.cmp-intent:hover { color: var(--text, #eaf2f1); border-color: var(--lime, #b4f03a); }
.cmp-intent.is-on {
  color: var(--on-accent, #0a0f0a); background: var(--lime, #b4f03a); border-color: var(--lime, #b4f03a);
}
.composer--observer { display: grid; gap: 0.2rem; }
.composer--observer b { color: var(--text, #eaf2f1); font-size: 0.98rem; }
.composer--observer span { color: var(--text-2, #9aabb4); font-size: 0.86rem; }

/* ---------- Home: "Hoje na sua jornada" ---------- */
.jt-card .ball-orb { width: 30px; height: 30px; }
.jt-rows { display: grid; gap: 0.55rem; }
.jt-row {
  display: flex; align-items: flex-start; gap: 0.65rem; text-decoration: none;
  padding: 0.55rem 0.65rem; border-radius: var(--radius-sm, 10px);
  background: var(--surface-2, #16222f); color: inherit;
}
.jt-row__ic { font-size: 1.05rem; flex: none; line-height: 1.4; }
.jt-row b { display: block; font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-3, #6b7b85); }
.jt-row span { color: var(--text, #eaf2f1); font-size: 0.92rem; line-height: 1.4; }
.jt-row--link { transition: border-color 0.15s ease, transform 0.15s ease; border: 1px solid transparent; }
.jt-row--link:hover { border-color: var(--lime, #b4f03a); transform: translateX(2px); }
.jt-row__go { margin-left: auto; align-self: center; color: var(--lime, #b4f03a); font-weight: 800; font-size: 1.1rem; }

/* ---------- Perfil: Momento atual + Últimos marcos ---------- */
.prof-moment { display: grid; gap: 0.4rem; }
.prof-moment__txt { margin: 0; color: var(--text, #eaf2f1); font-size: 0.95rem; line-height: 1.5; }
.pm-marks { display: grid; gap: 0.35rem; }
.pm-mark {
  display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.88rem; color: var(--text, #eaf2f1);
  padding: 0.45rem 0.6rem; border-radius: var(--radius-sm, 10px); background: var(--surface-2, #16222f);
}
.pm-mark__ic { flex: none; }
.pm-mark--empty { color: var(--text-2, #9aabb4); font-size: 0.85rem; }

/* ---------- Evolução: passos Agora/Próximo ---------- */
.evo-steps { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.7rem 0 0.2rem; }
.evo-steps span {
  font-size: 0.82rem; color: var(--text-2, #9aabb4);
  padding: 0.35rem 0.65rem; border-radius: 999px; background: var(--surface-2, #16222f);
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.evo-steps b { color: var(--text, #eaf2f1); }
.evo-steps__now { border-color: rgba(180, 240, 58, 0.4) !important; }

/* ---------- Missões: semana completa + compartilhar ---------- */
.week-complete {
  text-align: center; display: grid; gap: 0.35rem; justify-items: center;
  border: 1px solid rgba(180, 240, 58, 0.3); background: rgba(180, 240, 58, 0.06);
}
.wc-ic { font-size: 2rem; }
.week-complete b { font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.3rem; color: var(--text, #eaf2f1); }
.week-complete p { margin: 0; color: var(--text-2, #9aabb4); font-size: 0.92rem; max-width: 42ch; }
.mission__share {
  margin-top: 0.5rem; background: none; border: none; cursor: pointer; padding: 0;
  color: var(--teal, #11c6a6); font-weight: 700; font-size: 0.82rem; font-family: var(--font-ui, "Saira", sans-serif);
}
.mission__share:hover { text-decoration: underline; }

/* ---------- Responsável: resumo da semana ---------- */
.gw-card { border-left: 3px solid var(--teal, #11c6a6); }
.gw-sentence { margin: 0.6rem 0 0.4rem; color: var(--text, #eaf2f1); font-size: 0.95rem; line-height: 1.5; }
.gw-next { font-size: 0.9rem; color: var(--text, #eaf2f1); margin-bottom: 0.3rem; }
.gw-teacher { font-size: 0.88rem; color: var(--text-2, #9aabb4); }
.gw-teacher span { color: var(--text-3, #6b7b85); }

/* ---------- Professor: atalhos sociais ---------- */
.prof-greet__shortcuts {
  display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
  margin-top: 0.7rem; padding-top: 0.7rem; border-top: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.pg-short__lbl { font-size: 0.78rem; color: var(--text-3, #6b7b85); font-weight: 600; }
.pg-short {
  display: inline-flex; align-items: center; gap: 0.3rem;
  padding: 0.4rem 0.7rem; border-radius: 999px; cursor: pointer;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.1));
  color: var(--text, #eaf2f1); font-size: 0.82rem; font-weight: 600;
  font-family: var(--font-ui, "Saira", sans-serif); transition: transform 0.15s ease, border-color 0.15s ease;
}
.pg-short:hover { transform: translateY(-1px); border-color: var(--lime, #b4f03a); }

@media (prefers-reduced-motion: reduce) {
  .week-chip, .cmp-intent, .pg-short, .jt-row--link, .post__cheer, .pm-mark { transition: none; }
  .week-chip:hover, .cmp-intent:hover, .pg-short:hover, .jt-row--link:hover, .post__cheer:hover { transform: none; }
}

/* ===================================================================== */
/* RODADA 2 (refinamento) — progresso visível: emblemas, próxima conquista, */
/* notificação leve, foto vertical, conquista do responsável. Aditivo.     */
/* ===================================================================== */

/* ---------- Emblemas: grupos + em progresso + próximos ---------- */
.ach-grp__lbl {
  font-family: var(--font-ui, "Saira", sans-serif); font-weight: 700; font-size: 0.8rem;
  color: var(--text-2, #9aabb4); letter-spacing: 0.02em; margin: 0.9rem 0 0.5rem;
}
.ach-grp__lbl:first-child { margin-top: 0.2rem; }
.ach-progs { display: grid; gap: 0.55rem; }
.ach-prog {
  padding: 0.6rem 0.7rem; border-radius: var(--radius-sm, 10px);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.ach-prog__top { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; }
.ach-prog__ic { font-size: 1.1rem; flex: none; }
.ach-prog__t { flex: 1; min-width: 0; font-size: 0.9rem; color: var(--text, #eaf2f1); font-weight: 600; }
.ach-prog__count { flex: none; font-size: 0.8rem; font-weight: 700; color: var(--text-2, #9aabb4); }
.ach-prog__bar { height: 7px; border-radius: 999px; background: var(--ink-700, #0c1219); overflow: hidden; }
.ach-prog__bar i { display: block; height: 100%; border-radius: 999px; background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); transition: width 0.5s var(--ease, ease); }
.ach-prog__hint { margin-top: 0.35rem; font-size: 0.78rem; color: var(--text-3, #6b7b85); display: flex; align-items: center; gap: 0.4rem; }
.ach-prog__near {
  font-weight: 700; color: var(--lime, #b4f03a); background: rgba(180, 240, 58, 0.12);
  border-radius: 999px; padding: 0.05rem 0.45rem; font-size: 0.72rem;
}
.ach-nexts { display: grid; gap: 0.45rem; }
.ach-next {
  display: flex; align-items: center; gap: 0.55rem; padding: 0.5rem 0.65rem;
  border-radius: var(--radius-sm, 10px); background: var(--surface-2, #16222f);
  border: 1px dashed var(--line-strong, rgba(255, 255, 255, 0.14)); opacity: 0.92;
}
.ach-next__ic { flex: none; font-size: 0.95rem; opacity: 0.8; }
.ach-next__b { min-width: 0; }
.ach-next__b b { display: block; font-size: 0.88rem; color: var(--text, #eaf2f1); font-weight: 600; }
.ach-next__b span { font-size: 0.78rem; color: var(--text-3, #6b7b85); }

/* ---------- Card "Próxima conquista" ---------- */
.next-ach { border: 1px solid rgba(180, 240, 58, 0.24); background: rgba(180, 240, 58, 0.05); }
.next-ach__head {
  font-family: var(--font-ui, "Saira", sans-serif); font-weight: 700; font-size: 0.82rem;
  color: var(--text-2, #9aabb4); margin-bottom: 0.5rem; letter-spacing: 0.02em;
}
.next-ach__row { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.5rem; }
.next-ach__ic { font-size: 1.5rem; flex: none; }
.next-ach__title { font-size: 0.96rem; color: var(--text, #eaf2f1); line-height: 1.35; }
.next-ach__bar { height: 8px; border-radius: 999px; background: var(--ink-700, #0c1219); overflow: hidden; }
.next-ach__bar i { display: block; height: 100%; border-radius: 999px; background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); transition: width 0.5s var(--ease, ease); }
.next-ach__count { margin-top: 0.35rem; font-size: 0.8rem; font-weight: 700; color: var(--lime, #b4f03a); }
.next-ach__hint { font-size: 0.86rem; color: var(--text-2, #9aabb4); }
.next-ach__fallback { margin: 0; font-size: 0.9rem; color: var(--text-2, #9aabb4); }

/* ---------- Notificação leve (home) + ponto na comunidade ---------- */
.home-notice {
  display: flex; align-items: center; gap: 0.6rem; text-decoration: none;
  margin-bottom: 1rem; padding: 0.6rem 0.8rem; border-radius: var(--radius, 14px);
  background: rgba(247, 201, 72, 0.1); border: 1px solid rgba(247, 201, 72, 0.32);
  color: var(--text, #eaf2f1); transition: transform 0.15s ease, border-color 0.15s ease;
}
.home-notice:hover { transform: translateY(-1px); border-color: var(--ouro, #f7c948); }
.home-notice__ic { font-size: 1.2rem; flex: none; }
.home-notice__txt { flex: 1; min-width: 0; font-size: 0.92rem; font-weight: 600; }
.home-notice__go { flex: none; color: var(--ouro, #f7c948); font-weight: 800; font-size: 1.1rem; }
.community-entry__dot {
  display: inline-block; width: 9px; height: 9px; border-radius: 50%;
  background: var(--lime, #b4f03a); margin-left: -0.35rem; vertical-align: top;
  box-shadow: 0 0 0 2px var(--surface, #111a24); animation: noticePulse 2s ease-in-out infinite;
}
@keyframes noticePulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }

/* ---------- Foto vertical: prévia do compositor com contain ---------- */
.composer__media--tall img { max-height: 340px; object-fit: contain; background: var(--ink-700, #0c1219); }

/* ---------- Responsável: conquista recente ---------- */
.gw-recent { font-size: 0.9rem; color: var(--text, #eaf2f1); margin-bottom: 0.3rem; }

@media (max-width: 460px) {
  .next-ach__title { font-size: 0.9rem; }
  .ach-prog__t { font-size: 0.86rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ach-prog__bar i, .next-ach__bar i { transition: none; }
  .home-notice { transition: none; }
  .home-notice:hover { transform: none; }
  .community-entry__dot { animation: none; }
}

/* ===================================================================== */
/* RODADA 3 — Mural da Turma + Reconhecimento entre alunos. Aditivo.       */
/* ===================================================================== */

/* ---------- Tag de turma + banners novos ---------- */
.post__turma {
  display: inline-flex; align-items: center; gap: 0.3rem; width: fit-content; max-width: 100%;
  font-size: 0.76rem; font-weight: 700; color: var(--text-2, #9aabb4);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  border-radius: 999px; padding: 0.2rem 0.55rem; margin: 0 0 0.5rem;
}
.post__banner--peer_praise   { background: rgba(180, 240, 58, 0.12); border-color: rgba(180, 240, 58, 0.35); }
.post__banner--team_highlight { background: rgba(155, 108, 240, 0.14); border-color: rgba(155, 108, 240, 0.4); color: #d8c6ff; }
.post__banner--team_challenge { background: rgba(17, 198, 166, 0.12); border-color: rgba(17, 198, 166, 0.4); }
.post__banner--teacher_poll   { background: rgba(17, 198, 166, 0.1); border-color: rgba(17, 198, 166, 0.3); }
.post--peer_praise { border-left: 3px solid var(--lime, #b4f03a); }
.post--team_highlight { border: 1px solid rgba(155, 108, 240, 0.3); }
.post--team_challenge { border: 1px solid rgba(17, 198, 166, 0.3); }

/* ---------- Card Parabéns de Quadra (peer_praise) ---------- */
.kudos {
  margin: 0.5rem 0; padding: 0.65rem 0.75rem; border-radius: var(--radius-sm, 10px);
  background: rgba(180, 240, 58, 0.07); border: 1px solid rgba(180, 240, 58, 0.24);
}
.kudos__line { font-size: 0.94rem; color: var(--text, #eaf2f1); }
.kudos__line b { font-weight: 800; }
.kudos__motive {
  display: inline-block; font-weight: 800; color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.12); border-radius: 999px; padding: 0.05rem 0.5rem;
}
.kudos__msg { margin: 0.4rem 0 0; font-size: 0.9rem; color: var(--text, #eaf2f1); }
.phl--team { background: rgba(155, 108, 240, 0.08); border-color: rgba(155, 108, 240, 0.25); }

/* ---------- Desafio da turma (in-post + card) ---------- */
.tchal, .tchal-card { margin: 0.5rem 0; }
.tchal { padding: 0.65rem 0.75rem; border-radius: var(--radius-sm, 10px); background: var(--surface-2, #16222f); border: 1px solid rgba(17, 198, 166, 0.3); }
.tchal__t, .tchal-card__t { font-weight: 700; color: var(--text, #eaf2f1); font-size: 0.94rem; margin-bottom: 0.4rem; }
.tchal__bar { height: 8px; border-radius: 999px; background: var(--ink-700, #0c1219); overflow: hidden; }
.tchal__bar i { display: block; height: 100%; border-radius: 999px; background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); transition: width 0.5s var(--ease, ease); }
.tchal__meta, .tchal-card__meta { margin-top: 0.35rem; font-size: 0.82rem; color: var(--text-2, #9aabb4); font-weight: 600; }
.tchal-card { border: 1px solid rgba(17, 198, 166, 0.3); background: rgba(17, 198, 166, 0.05); }
.tchal-card__head { font-family: var(--font-ui, "Saira", sans-serif); font-weight: 700; font-size: 0.82rem; color: var(--text-2, #9aabb4); margin-bottom: 0.5rem; letter-spacing: 0.02em; }

/* ---------- Cabeçalho Mural da Turma ---------- */
.turma-head { border: 1px solid rgba(155, 108, 240, 0.24); background: rgba(155, 108, 240, 0.05); }
.turma-head__title { font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.25rem; color: var(--text, #eaf2f1); }
.turma-head__name { font-weight: 800; color: #d8c6ff; font-size: 0.98rem; margin-top: 0.2rem; }
.turma-head__sub { font-size: 0.85rem; color: var(--text-2, #9aabb4); margin-top: 0.15rem; }
.turma-head__counts { font-size: 0.86rem; color: var(--text, #eaf2f1); margin-top: 0.4rem; }
.turma-head--empty { border-color: var(--line-strong, rgba(255, 255, 255, 0.14)); background: var(--surface, #111a24); }

/* ---------- Home: card "Sua turma" ---------- */
.turma-home { border-left: 3px solid var(--platina, #cfe0ee); }
.turma-home__name { font-weight: 800; color: var(--text, #eaf2f1); font-size: 0.98rem; margin-bottom: 0.3rem; }
.turma-home__row { font-size: 0.9rem; color: var(--text, #eaf2f1); margin-bottom: 0.25rem; }
.turma-home__cta { margin-top: 0.5rem; }

/* ---------- Compositor: painel Parabéns de Quadra ---------- */
.composer__kudos { margin-top: 0.7rem; display: grid; gap: 0.6rem; }
.composer__kudos[hidden] { display: none; }
.composer__kudos-head { font-size: 0.84rem; font-weight: 700; color: var(--lime, #b4f03a); }
.kudos-fld { display: grid; gap: 0.35rem; }
.kudos-fld > span { font-size: 0.78rem; color: var(--text-2, #9aabb4); font-weight: 600; }
.kudos-motives { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.kudos-motive {
  padding: 0.35rem 0.65rem; border-radius: 999px; cursor: pointer; font-size: 0.82rem; font-weight: 600;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.1)); color: var(--text, #eaf2f1);
}
.kudos-motive:hover { border-color: var(--lime, #b4f03a); }
.kudos-motive.is-on { background: var(--lime, #b4f03a); color: var(--on-accent, #0a0f0a); border-color: var(--lime, #b4f03a); }

/* ---------- Perfil: reconhecimentos da semana ---------- */
.prof-praise { display: grid; gap: 0.4rem; }
.prof-praise__lead { margin: 0; font-size: 0.9rem; color: var(--text, #eaf2f1); }
.prof-praise__empty { margin: 0; font-size: 0.86rem; color: var(--text-2, #9aabb4); }
.praise-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.praise-chip {
  font-size: 0.82rem; font-weight: 600; color: var(--text, #eaf2f1);
  background: rgba(180, 240, 58, 0.1); border: 1px solid rgba(180, 240, 58, 0.28);
  border-radius: 999px; padding: 0.2rem 0.6rem;
}

/* ---------- Responsável: linha de turma + reconhecimento ---------- */
.gw-praise, .gw-turma { font-size: 0.9rem; color: var(--text, #eaf2f1); margin-bottom: 0.3rem; }

/* ---------- Professor: templates de enquete + foco do reconhecimento ---------- */
.poll-tpls { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.3rem; }
.poll-tpls__lbl, .poll-kids-row__lbl { width: 100%; font-size: 0.76rem; color: var(--text-3, #6b7b85); font-weight: 600; }
.poll-tpl, .poll-kids, .tt-focus {
  padding: 0.35rem 0.6rem; border-radius: 999px; cursor: pointer; font-size: 0.8rem; font-weight: 600;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.1)); color: var(--text, #eaf2f1);
}
.poll-tpl { font-size: 0.78rem; }
.poll-tpl:hover, .poll-kids:hover, .tt-focus:hover { border-color: var(--lime, #b4f03a); }
.poll-kids-row { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.5rem; }
.tt-focuses { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.tt-focus.is-on { background: var(--lime, #b4f03a); color: var(--on-accent, #0a0f0a); border-color: var(--lime, #b4f03a); }

@media (prefers-reduced-motion: reduce) {
  .tchal__bar i { transition: none; }
}

/* ===================================================================== */
/* RODADA 4 — Mural da Turma Vivo (desafio social, momentos, novidades,    */
/* resumo semanal, comemoração, cap de parabéns). Aditivo.                 */
/* ===================================================================== */

/* ---------- Desafio coletivo concluído ---------- */
.tchal-card--done { border-color: rgba(180, 240, 58, 0.4); background: rgba(180, 240, 58, 0.07); }
.tchal--done .tchal__t { color: var(--lime, #b4f03a); }
.tchal-done {
  margin-top: 0.5rem; font-size: 0.9rem; font-weight: 700; color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.1); border-radius: var(--radius-sm, 10px); padding: 0.5rem 0.65rem;
}

/* ---------- Galeria "Momentos da aula" ---------- */
.moments__head { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.6rem; }
.moments__title { font-family: var(--font-ui, "Saira", sans-serif); font-weight: 700; font-size: 0.9rem; color: var(--text, #eaf2f1); }
.moments__cta {
  background: none; border: none; cursor: pointer; padding: 0; flex: none;
  color: var(--teal, #11c6a6); font-weight: 700; font-size: 0.82rem; font-family: var(--font-ui, "Saira", sans-serif);
}
.moments__cta:hover { text-decoration: underline; }
.moments__strip { display: flex; gap: 0.5rem; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 0.2rem; }
.moments__strip::-webkit-scrollbar { height: 0; }
.moment-thumb {
  flex: none; width: 110px; height: 82px; padding: 0; border: 1px solid var(--line, rgba(255, 255, 255, 0.1));
  border-radius: var(--radius-sm, 10px); overflow: hidden; cursor: pointer; background: var(--ink-700, #0c1219);
  transition: transform 0.15s ease, border-color 0.15s ease;
}
.moment-thumb:hover { transform: translateY(-2px); border-color: var(--lime, #b4f03a); }
.moment-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.moment-thumb--tall img { object-fit: contain; background: var(--ink-700, #0c1219); }

/* ---------- Resumo da semana da turma ---------- */
.tws-card { border-left: 3px solid var(--platina, #cfe0ee); }
.tws-line { margin: 0; color: var(--text, #eaf2f1); font-size: 0.94rem; line-height: 1.5; }
.tws-tip { margin-top: 0.4rem; font-size: 0.86rem; color: var(--text-2, #9aabb4); }

/* ---------- Chip "Novo" (read-tracking discreto) ---------- */
.novo-chip {
  display: inline-block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.02em;
  color: var(--on-accent, #0a0f0a); background: var(--lime, #b4f03a);
  border-radius: 999px; padding: 0.05rem 0.45rem; vertical-align: middle; margin-left: 0.35rem;
}

/* ---------- Cap de Parabéns no compositor ---------- */
.kudos-remain { font-size: 0.78rem; color: var(--text-3, #6b7b85); }
.kudos-remain--done { color: var(--ouro, #f7c948); font-weight: 600; }

/* ---------- Professor: card de turma ativa ---------- */
.prof-turma-card {
  margin-top: 0.7rem; padding-top: 0.7rem; border-top: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.prof-turma-card__lbl { font-size: 0.76rem; font-weight: 700; color: var(--text-3, #6b7b85); margin-bottom: 0.2rem; }
.prof-turma-card__line { font-size: 0.9rem; color: var(--text, #eaf2f1); }
.prof-turma-card__ctas { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }

@media (prefers-reduced-motion: reduce) {
  .moment-thumb { transition: none; }
  .moment-thumb:hover { transform: none; }
}

/* ===================================================================== */
/* RODADA 5 — INDIVIDUAL-FIRST (Diário de Quadra, Meta pessoal, Recap,     */
/* Momentos, histórico do perfil). Aditivo.                               */
/* ===================================================================== */

/* ---------- Banners dos novos tipos de post ---------- */
.post__banner--court_log    { background: rgba(180, 240, 58, 0.12);  border-color: rgba(180, 240, 58, 0.35); }
.post__banner--weekly_recap, .post__banner--team_weekly_recap { background: rgba(17, 198, 166, 0.12); border-color: rgba(17, 198, 166, 0.4); }
.post--court_log { border-left: 3px solid var(--lime, #b4f03a); }

/* ---------- Card Diário de Quadra (no feed) ---------- */
.clog { margin: 0.5rem 0; }
.clog__type { font-weight: 700; color: var(--text, #eaf2f1); font-size: 0.92rem; margin-bottom: 0.35rem; }
.clog__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.clog__chip {
  font-size: 0.8rem; font-weight: 600; color: var(--text, #eaf2f1);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.1));
  border-radius: 999px; padding: 0.15rem 0.55rem;
}

/* ---------- Card Recap (no feed) ---------- */
.recap { margin: 0.5rem 0; padding: 0.6rem 0.75rem; border-radius: var(--radius-sm, 10px); background: var(--surface-2, #16222f); border: 1px solid rgba(17, 198, 166, 0.25); }
.recap__stats { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.recap__stat { font-size: 0.82rem; font-weight: 700; color: var(--text, #eaf2f1); background: var(--surface-3, #1e2d3d); border-radius: 999px; padding: 0.15rem 0.6rem; }
.recap__focus, .recap__goal { font-size: 0.86rem; color: var(--text-2, #9aabb4); margin-top: 0.4rem; }

/* ---------- Card "Minha meta" (home) ---------- */
.goal-card { border: 1px solid rgba(180, 240, 58, 0.3); background: rgba(180, 240, 58, 0.05); }
.goal-card--empty { border-color: var(--line-strong, rgba(255, 255, 255, 0.14)); background: var(--surface, #111a24); }
.goal-card__title { font-weight: 800; color: var(--text, #eaf2f1); font-size: 1.02rem; margin: 0.2rem 0 0.5rem; }
.goal-card__bar { height: 9px; border-radius: 999px; background: var(--ink-700, #0c1219); overflow: hidden; }
.goal-card__bar i { display: block; height: 100%; border-radius: 999px; background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); transition: width 0.5s var(--ease, ease); }
.goal-card__meta { margin-top: 0.35rem; font-size: 0.88rem; font-weight: 700; color: var(--lime, #b4f03a); }
.goal-card__next { margin-top: 0.3rem; font-size: 0.86rem; color: var(--text-2, #9aabb4); }
.goal-card__cta { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.6rem; }

/* ---------- Card "Meu resumo da semana" (home) ---------- */
.recap-card { border-left: 3px solid var(--teal, #11c6a6); }
.recap-card__line { margin: 0.6rem 0 0; color: var(--text, #eaf2f1); font-size: 0.94rem; line-height: 1.5; }
.recap-card__praise { margin-top: 0.4rem; font-size: 0.86rem; color: var(--text-2, #9aabb4); }
.recap-card .btn { margin-top: 0.6rem; }

/* ---------- Modal Diário de Quadra ---------- */
.dq-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.dq-chip {
  padding: 0.3rem 0.6rem; border-radius: 999px; cursor: pointer; font-size: 0.8rem; font-weight: 600;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.1)); color: var(--text, #eaf2f1);
}
.dq-chip:hover { border-color: var(--lime, #b4f03a); }
.dq-chip.is-on { background: var(--lime, #b4f03a); color: var(--on-accent, #0a0f0a); border-color: var(--lime, #b4f03a); }
.dq-photo { width: fit-content; }
.dq-share { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; color: var(--text, #eaf2f1); cursor: pointer; }
.modal__box--wide .dq-share, .modal__box--wide .dq-photo { grid-column: 1 / -1; }

/* ---------- Modal Meta: templates ---------- */
.goal-tpls { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.goal-tpls__lbl { width: 100%; font-size: 0.76rem; color: var(--text-3, #6b7b85); font-weight: 600; }
.goal-tpl {
  padding: 0.35rem 0.6rem; border-radius: 999px; cursor: pointer; font-size: 0.78rem; font-weight: 600;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.1)); color: var(--text, #eaf2f1);
}
.goal-tpl:hover { border-color: var(--lime, #b4f03a); }

/* ---------- Momentos (modal) ---------- */
.moments-filters { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 0.8rem; }
@media (max-width: 560px) {
  .moments-filters { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .moments-filters::-webkit-scrollbar { height: 0; }
}
.moments-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 0.6rem; }
.mom-card {
  display: flex; flex-direction: column; padding: 0; cursor: pointer; text-align: left;
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.1));
  border-radius: var(--radius-sm, 10px); overflow: hidden; transition: transform 0.15s ease, border-color 0.15s ease;
}
.mom-card:hover { transform: translateY(-2px); border-color: var(--lime, #b4f03a); }
.mom-card__img { width: 100%; height: 100px; background: var(--ink-700, #0c1219); }
.mom-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mom-card__img--tall img { object-fit: contain; }
.mom-card__ic { height: 100px; display: grid; place-items: center; font-size: 1.8rem; background: var(--surface-3, #1e2d3d); }
.mom-card__cap { padding: 0.4rem 0.55rem; font-size: 0.76rem; color: var(--text-2, #9aabb4); }
.moments-foot { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.9rem; }

/* ---------- Perfil: histórico ---------- */
.prof-hist { display: grid; gap: 0.35rem; }
.prof-goal { font-size: 0.92rem; color: var(--text, #eaf2f1); }
.prof-diary { display: grid; gap: 0.25rem; }
.prof-diary__row { font-size: 0.88rem; color: var(--text-2, #9aabb4); }
.home-act__feel { font-size: 0.72rem; color: var(--text-3, #6b7b85); font-style: italic; }

/* ---------- QA Rodada 5: seções do Diário + prompt de ranking ---------- */
.dq-sect {
  font-family: var(--font-ui, "Saira", sans-serif); font-weight: 700; font-size: 0.74rem;
  text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-3, #6b7b85);
  margin: 0.4rem 0 0.1rem; padding-top: 0.5rem; border-top: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.modal__box--wide .dq-sect { grid-column: 1 / -1; }
.rank-prompt__txt { margin: 0 0 0.4rem; color: var(--text, #eaf2f1); font-size: 0.96rem; line-height: 1.5; }

/* ---------- Interceptor do FAB: nudge pro quiz antes do WhatsApp ---------- */
.wai__box {
  max-width: 420px;
  overflow: hidden;
  border-color: rgba(180, 240, 58, 0.24);
  background:
    radial-gradient(440px 240px at 112% -40%, rgba(17, 198, 166, 0.20), transparent 70%),
    radial-gradient(380px 220px at -12% -24%, rgba(180, 240, 58, 0.18), transparent 72%),
    var(--surface, #111a24);
}
.wai__box .modal__head h3 { font-size: 1.55rem; }
.wai { display: grid; gap: 1rem; }
.wai__badge {
  width: fit-content;
  padding: 0.32rem 0.7rem;
  border-radius: var(--radius-pill, 999px);
  font-size: 0.74rem; font-weight: 700; letter-spacing: 0.01em;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.10);
  border: 1px solid rgba(180, 240, 58, 0.28);
}
.wai__lead { margin: 0; color: var(--text, #eaf2f1); font-size: 1rem; line-height: 1.5; }
.wai__lead b { color: var(--lime, #b4f03a); }
.wai__steps { display: grid; gap: 0.55rem; }
.wai__step {
  display: flex; align-items: center; gap: 0.6rem;
  font-size: 0.9rem; color: var(--text-2, #9aabb4);
}
.wai__step b {
  flex: none; width: 1.55rem; height: 1.55rem;
  display: grid; place-items: center;
  border-radius: 999px; font-size: 0.8rem; font-weight: 800;
  color: var(--on-accent, #06140a);
  background: var(--grad-brand, linear-gradient(118deg, #b4f03a, #11c6a6));
}
.wai__cta { box-shadow: var(--glow-lime); font-weight: 700; }
.wai__cta:hover { transform: translateY(-1px); }
.wai__alt {
  display: block; width: 100%;
  margin-top: 0.7rem; padding: 0.45rem;
  background: none; border: 0; cursor: pointer;
  color: var(--text-3, #6b7b85); font-size: 0.86rem; text-align: center;
  transition: color var(--t-fast);
}
.wai__alt:hover { color: var(--text-2, #9aabb4); text-decoration: underline; }

/* ---------- Prova social antecipada (esteira infinita de depoimentos) ---------- */
.proof-belt__head { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 1rem; }
.proof-belt__stars {
  color: var(--gold, #ffb42e); letter-spacing: 0.16em; font-size: 0.95rem;
  text-shadow: 0 0 14px rgba(255, 180, 46, 0.3);
}
.proof-belt__head b { color: var(--text, #eaf2f1); font-size: 0.98rem; font-weight: 700; }
.proof-belt__head i { font-style: normal; color: var(--text-2, #9aabb4); font-size: 0.9rem; }
.proof-belt__viewport {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.proof-belt__track {
  display: flex; width: max-content;
  animation: proofRoll 32s linear infinite;
}
.proof-belt__track:hover { animation-play-state: paused; }
.proof-chip {
  flex: none;
  display: flex; gap: 0.8rem; align-items: flex-start;
  width: 340px; margin-right: 1rem;
  padding: 1.1rem 1.2rem;
  border-radius: 18px;
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  background: linear-gradient(160deg, rgba(28, 41, 53, 0.5), rgba(14, 22, 29, 0.3)), var(--surface, #111a24);
}
.proof-chip__av {
  flex: none; width: 2.6rem; height: 2.6rem;
  display: grid; place-items: center;
  border-radius: 50%; font-size: 1rem; font-weight: 800;
  color: var(--on-accent, #06140a);
  background: var(--grad-brand, linear-gradient(118deg, #b4f03a, #11c6a6));
}
.proof-chip__stars { color: var(--gold, #ffb42e); letter-spacing: 0.12em; font-size: 0.78rem; margin-bottom: 0.3rem; }
.proof-chip__q { margin: 0 0 0.4rem; font-size: 0.9rem; line-height: 1.4; color: var(--text, #eaf2f1); }
.proof-chip__who { font-size: 0.78rem; font-weight: 700; color: var(--text, #eaf2f1); }
.proof-chip__who i { font-style: normal; font-weight: 400; color: var(--text-2, #9aabb4); }
@keyframes proofRoll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
/* Decisão do Iran: a esteira anima sempre, na mesma velocidade, mesmo com
   "reduzir movimento" ligado no sistema. */

/* Diário recente: 2 botões no header sem espremer no mobile */
.pl-card__actions { display: flex; gap: 0.4rem; flex-wrap: wrap; }

@media (prefers-reduced-motion: reduce) {
  .goal-card__bar i { transition: none; }
  .mom-card { transition: none; }
  .mom-card:hover { transform: none; }
}

/* ===================================================================== */
/* RODADA 6 — Fechamento do loop da meta (concluída, próxima, histórico).  */
/* Aditivo.                                                               */
/* ===================================================================== */

/* ---------- Card meta concluída (home) ---------- */
.goal-card--done { border-color: rgba(247, 201, 72, 0.4); background: rgba(247, 201, 72, 0.07); }
.goal-done__sub { margin: 0.3rem 0 0.4rem; font-size: 0.9rem; color: var(--text-2, #9aabb4); }

/* ---------- Banners + cards de post de meta ---------- */
.post__banner--goal_completed { background: rgba(247, 201, 72, 0.14); border-color: rgba(247, 201, 72, 0.4); }
.post__banner--goal_started   { background: rgba(17, 198, 166, 0.12); border-color: rgba(17, 198, 166, 0.4); }
.post--goal_completed { border-left: 3px solid var(--ouro, #f7c948); }
.pgoal { margin: 0.5rem 0; padding: 0.6rem 0.75rem; border-radius: var(--radius-sm, 10px); border: 1px solid var(--line, rgba(255, 255, 255, 0.1)); }
.pgoal--done { background: rgba(247, 201, 72, 0.08); border-color: rgba(247, 201, 72, 0.3); }
.pgoal--new { background: rgba(17, 198, 166, 0.08); border-color: rgba(17, 198, 166, 0.3); }
.pgoal__t { font-weight: 700; color: var(--text, #eaf2f1); font-size: 0.94rem; }
.pgoal__meta { font-size: 0.84rem; color: var(--text-2, #9aabb4); margin-top: 0.25rem; }

/* ---------- Perfil: histórico de metas ---------- */
.prof-goals { display: grid; gap: 0.25rem; }
.prof-goal__row { font-size: 0.9rem; color: var(--text, #eaf2f1); }
.prof-goal__row--done { color: var(--text-2, #9aabb4); }

/* ---------- Professor: resumo por aluno no roster ---------- */
.roster-row__recap {
  display: block; font-size: 0.78rem; color: var(--text-2, #9aabb4); margin-top: 0.2rem; line-height: 1.4;
}
.roster-row__recap--idle { color: var(--ouro, #f7c948); }
.link-btn {
  background: none; border: none; padding: 0; cursor: pointer; font: inherit;
  color: var(--teal, #11c6a6); font-weight: 700; text-decoration: underline;
}
.link-btn:hover { color: var(--lime, #b4f03a); }

/* ---------- Diário: tag de ranking ---------- */
.home-act__rank {
  font-size: 0.68rem; font-weight: 700; color: var(--ouro, #f7c948);
  background: rgba(247, 201, 72, 0.12); border-radius: 999px; padding: 0.05rem 0.4rem;
}
.home-act__rank--pessoal { color: var(--text-3, #6b7b85); background: var(--surface-3, #1e2d3d); }

/* ===================================================================== */
/* RODADA 7 — Novidades granulares + histórico de metas. Aditivo.         */
/* ===================================================================== */

/* ---------- Badge "Novo" no post (read-tracking granular) ---------- */
.post { position: relative; }
.post__new {
  position: absolute; top: 0.6rem; right: 0.6rem; z-index: 1;
  font-size: 0.66rem; font-weight: 800; letter-spacing: 0.02em;
  color: var(--on-accent, #0a0f0a); background: var(--lime, #b4f03a);
  border-radius: 999px; padding: 0.1rem 0.5rem;
}
.post--new { box-shadow: 0 0 0 1px rgba(180, 240, 58, 0.25) inset; }

/* ---------- Histórico de metas (modal) ---------- */
.gh-list { display: grid; gap: 0.6rem; }
.gh-row {
  padding: 0.65rem 0.75rem; border-radius: var(--radius-sm, 10px);
  background: var(--surface-2, #16222f); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.gh-row--active { border-color: rgba(180, 240, 58, 0.3); }
.gh-row--completed { border-color: rgba(247, 201, 72, 0.3); }
.gh-row__top { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.4rem; }
.gh-row__t { font-weight: 700; color: var(--text, #eaf2f1); font-size: 0.92rem; }
.gh-row__st { flex: none; font-size: 0.72rem; font-weight: 700; color: var(--text-2, #9aabb4); }
.gh-row--completed .gh-row__st { color: var(--ouro, #f7c948); }
.gh-row--active .gh-row__st { color: var(--lime, #b4f03a); }
.gh-row__bar { height: 7px; border-radius: 999px; background: var(--ink-700, #0c1219); overflow: hidden; }
.gh-row__bar i { display: block; height: 100%; border-radius: 999px; background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); transition: width 0.5s var(--ease, ease); }
.gh-row__meta { margin-top: 0.35rem; font-size: 0.8rem; color: var(--text-2, #9aabb4); }
.prof-goals__more { margin-top: 0.2rem; display: inline-block; }

@media (prefers-reduced-motion: reduce) { .gh-row__bar i { transition: none; } }

/* ===================================================================== */
/* RODADA DE LAYOUT DESKTOP — shell mais largo + dashboards 2 colunas.    */
/* 100% aditivo e namespaced. Mobile (<1024px) permanece inalterado.      */
/* Não edita styles.css/tokens.css; nenhuma regra de produto é tocada.    */
/* ===================================================================== */

/* ---- 1. Shell do app: aproveita o espaço horizontal no desktop ----
   Até 1023px a largura atual (--container-narrow, 820px) é preservada.
   Escopo restrito às telas de app para não afetar outros usos de .container--narrow. */
@media (min-width: 1024px) {
  #aluno .container--narrow,
  #comunidade .container--narrow,
  #admin .container--narrow { max-width: 1180px; padding-inline: 28px; }
}
@media (min-width: 1536px) {
  #aluno .container--narrow,
  #comunidade .container--narrow,
  #admin .container--narrow { max-width: 1240px; }
}

/* ---- 2. Home do aluno: dashboard de 2 colunas (individual-first) ----
   Coluna principal = jornada individual; lateral = acompanhamento secundário.
   Mobile/tablet: empilha em coluna única com espaçamento uniforme de 1rem
   (mesma ordem já validada). O gap das colunas substitui a margem de
   adjacência dos .pl-card dentro do dashboard (evita espaçamento dobrado). */
.dash-grid { display: flex; flex-direction: column; gap: 1rem; }
.dash-main, .dash-side { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.dash-grid .pl-card + .pl-card { margin-top: 0; }

@media (min-width: 1024px) {
  .dash-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: 1.4rem; align-items: start;
  }
}
@media (min-width: 1440px) {
  .dash-grid { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 1.6rem; }
}

/* ALINHAMENTO DAS ABAS DO ALUNO — antes os painéis de fluxo único ficavam
   presos a 940px e alinhados à esquerda, criando uma "borda serrilhada" contra
   a hero/abas (largura cheia). Agora todo o shell do aluno compartilha UMA
   largura centralizada: hero, faixa de comunidade, abas e painéis batem nas
   mesmas bordas. Início já era a referência ("certo"); as demais abas agora
   acompanham. */
@media (min-width: 1024px) {
  #alunoApp > .pl-hero,
  #alunoApp > .community-entry,
  #alunoApp > .app-tabs,
  #alunoApp > .app-panels,
  #alunoApp > .child-picker { max-width: 1080px; margin-inline: auto; }
  /* painéis de fluxo único centram a leitura dentro do shell, sem serrilhado */
  .app-panel[data-panel="evolucao"],
  .app-panel[data-panel="ranking"],
  .app-panel[data-panel="conta"] { max-width: 880px; margin-inline: auto; }
}

/* ---- Aba Conta: formas de pagamento ---- */
.conta-formas { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.2rem; }
.conta-forma {
  padding: 0.3rem 0.7rem; border-radius: 999px; font-size: 0.82rem; font-weight: 600;
  border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.16)); color: var(--text-2, #9aabb4);
}
.conta-forma.is-on { border-color: var(--lime, #b4f03a); color: var(--lime, #b4f03a); background: rgba(180, 240, 58, 0.08); }
.conta-intro .pl-card__head h3 { display: inline-flex; align-items: center; gap: 0.35rem; }

/* ---- 3. Comunidade / feed: largura de leitura + lateral sticky ----
   Mobile: empilha na ordem do DOM (semana → compositor → mural), idêntica
   à validada. Desktop: feed à esquerda (order:1), "Esta semana" à direita
   (order:2) e sticky. Sem destaques, o feed ocupa a coluna sozinho. */
.feed-grid { display: flex; flex-direction: column; gap: 1rem; }
.feed-main { min-width: 0; }
.feed-side { min-width: 0; }

@media (min-width: 1024px) {
  .feed-grid {
    display: grid; grid-template-columns: minmax(0, 680px) 300px;
    gap: 1.8rem; align-items: start; justify-content: center;
  }
  .feed-grid--solo { grid-template-columns: minmax(0, 680px); }
  .feed-main { order: 1; }
  .feed-side { order: 2; position: sticky; top: 1rem; }
  /* "Esta semana" vira lista vertical limpa na lateral. */
  .feed-side .week-strip__row { flex-direction: column; flex-wrap: nowrap; }
  .feed-side .week-chip { width: 100%; justify-content: flex-start; }
  /* a hero da comunidade acompanha a largura do conteúdo, centralizada. */
  .community-hero { max-width: 1000px; margin-inline: auto; }
}

/* Responsável: bloco de evolução (fora de .app-panels) — espaçamento + leitura. */
.resp-evo { margin-top: 1rem; }
@media (min-width: 1024px) { .resp-evo { max-width: 940px; } }

/* ---- 4. Perfil: um pouco mais de respiro em telas amplas ---- */
@media (min-width: 1280px) {
  .modal__box--profile { max-width: 760px; }
}

/* ---- 5. Consistência de cards no desktop ----
   Pequenos ajustes de respiro sem mexer na identidade (dark + verde Iralu). */
@media (min-width: 1024px) {
  .dash-main > .pl-card,
  .feed-main > .pl-card { border-radius: var(--radius-lg, 22px); }
  /* o card de meta (principal) ganha leve destaque no topo da coluna. */
  .dash-main > .pl-card:first-child { box-shadow: var(--shadow-card, 0 24px 48px -28px rgba(0,0,0,0.85)); }
}

/* ===================================================================== */
/* MICRO-RODADA DE LAYOUT — admin dashboard, evolução, ranking, desafios. */
/* Aditivo e namespaced. Mobile (<1024px) inalterado. Só layout.          */
/* ===================================================================== */

/* ---- Admin: pares de listas curtas em 2 colunas; roster/tabelas full ----
   O .admin-grid envolve só os cards-resumo curtos (pendentes/prontos/em
   desenvolvimento). O roster e as avaliações recentes ficam fora dele, em
   largura total. gap cuida do espaçamento (zera a margem de adjacência). */
.admin-grid { display: grid; gap: 1rem; margin-top: 1rem; }
.admin-grid .pl-card + .pl-card { margin-top: 0; }
.admin-grid + .pl-card { margin-top: 1rem; }
@media (min-width: 1024px) {
  .admin-grid { grid-template-columns: 1fr 1fr; align-items: start; }
}

/* ---- Evolução: status atual + próxima missão lado a lado (cards curtos) ---- */
.evo-pair { display: grid; gap: 1rem; margin-top: 1rem; }
.evo-pair .pl-card { margin-top: 0; }
.evo-pair + .pl-card { margin-top: 1rem; }
@media (min-width: 1024px) {
  .evo-pair { grid-template-columns: 1fr 1fr; align-items: stretch; }
}

/* ---- Desafios: agora em dashboard (desafios na coluna principal, partidas na
   lateral). As missões da principal vão a 2 colunas; as partidas da lateral
   ficam em 1 coluna (coluna estreita). NÃO afeta as missões resumidas da home. */
@media (min-width: 1024px) {
  .app-panel[data-panel="desafios"] .dash-main .missions { grid-template-columns: 1fr 1fr; }
}

/* ---- Ranking: leitura mais contida + filtros alinhados no desktop ----
   A lista de ranking é uma sequência ordenada (1 coluna por natureza); no
   desktop limitamos a largura e centralizamos para não esticar, e os filtros
   passam a quebrar/alinhar em vez de rolar horizontalmente. */
@media (min-width: 1024px) {
  .pl-card:has(> .rankrows) { max-width: 760px; margin-inline: auto; }
  .pl-card:has(> .rankrows) .rank-filters { flex-wrap: wrap; overflow-x: visible; }
}

/* =====================================================================
   LIQUID GLASS — utilitário reutilizável (.glass)
   Superfície translúcida com blur, brilho de borda e realce superior.
   Usada em cards de meta, resumo do quiz, dashboard ao vivo e conta.
   Degrada com elegância onde backdrop-filter não existe. */
.glass {
  position: relative;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)) padding-box,
    rgba(17, 26, 36, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.12);
  -webkit-backdrop-filter: blur(16px) saturate(135%);
  backdrop-filter: blur(16px) saturate(135%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    inset 0 -1px 0 rgba(0, 0, 0, 0.25),
    0 22px 44px -28px rgba(0, 0, 0, 0.9);
  overflow: hidden;
}
.glass::before {  /* faísca diagonal de luz, bem sutil */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(120% 70% at 12% -10%, rgba(180, 240, 58, 0.14), transparent 55%);
}
.goal-card.glass { background:
    linear-gradient(180deg, rgba(180, 240, 58, 0.10), rgba(17, 198, 166, 0.04)) padding-box,
    rgba(17, 26, 36, 0.55);
  border-color: rgba(180, 240, 58, 0.28); }
@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
  .glass { background: var(--surface-2, #16222f); }
}

/* Biblioteca de Exercícios — consulta rápida para professor */
.exlib-panel { margin-top: 1rem; }
.exlib-stats { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0.8rem 0 1rem; }
.exlib-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.34rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
  color: var(--text-2, #9aabb4);
  font-size: 0.78rem;
}
.exlib-chip--focus {
  color: var(--text, #eaf2f1);
  border-color: rgba(180,240,58,0.22);
  background: rgba(180,240,58,0.1);
}
.exlib-filters {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}
.exlib-field { margin: 0; }
.exlib-field--search { grid-column: span 2; }
.exlib-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.9rem;
}
.exlib-toolbar__meta { display: flex; flex-direction: column; gap: 0.15rem; color: var(--text-2, #9aabb4); font-size: 0.82rem; }
.exlib-toolbar__meta b { color: var(--text, #eaf2f1); font-size: 0.95rem; }
.exlib-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.exlib-card {
  margin: 0;
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: var(--shadow-card, 0 24px 48px -28px rgba(0,0,0,0.85));
}
.exlib-card[open] {
  border-color: rgba(180,240,58,0.22);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 28px 54px -30px rgba(0,0,0,0.92);
}
.exlib-card summary {
  list-style: none;
  cursor: pointer;
  padding: 1rem 1rem 0.95rem;
}
.exlib-card summary::-webkit-details-marker { display: none; }
.exlib-card__eyebrow,
.exlib-card__chips,
.exlib-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.exlib-card__eyebrow { margin-bottom: 0.7rem; }
.exlib-card__titlewrap h3 {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.05;
}
.exlib-card__titlewrap p {
  margin: 0.45rem 0 0;
  color: var(--text-2, #9aabb4);
  line-height: 1.45;
}
.exlib-card__meta { margin-top: 0.85rem; }
.exlib-card__toggle {
  margin-top: 0.9rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  color: var(--text-3, #6b7b85);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.exlib-card__caret {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
  color: var(--text, #eaf2f1);
  font-size: 0.95rem;
  transform: rotate(0deg);
  transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}
.exlib-card[open] .exlib-card__toggle { color: var(--lime, #b4f03a); }
.exlib-card[open] .exlib-card__caret {
  transform: rotate(180deg);
  border-color: rgba(180,240,58,0.28);
  background: rgba(180,240,58,0.12);
}
.exlib-meta {
  display: inline-flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 120px;
  color: var(--text-2, #9aabb4);
  font-size: 0.76rem;
}
.exlib-meta b { color: var(--text-3, #6b7b85); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; }
.exlib-meta span:last-child { color: var(--text, #eaf2f1); font-size: 0.84rem; }
.exlib-card__chips { margin-top: 0.85rem; align-items: center; }
.exlib-card__body {
  padding: 0 1rem 1rem;
  display: grid;
  gap: 0.9rem;
}
.exlib-intro,
.exlib-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
}
.exlib-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.exlib-intro__block,
.exlib-section,
.exlib-checkin {
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
  border-radius: var(--radius-lg, 22px);
  padding: 0.8rem 0.9rem;
}
.exlib-intro__block { display: flex; flex-direction: column; gap: 0.24rem; }
.exlib-label {
  color: var(--text-3, #6b7b85);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.exlib-intro__block strong { color: var(--text, #eaf2f1); font-size: 0.92rem; }
.exlib-intro__block span:last-child { color: var(--text-2, #9aabb4); font-size: 0.82rem; line-height: 1.4; }
.exlib-section h4 {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  color: var(--text, #eaf2f1);
}
.exlib-list {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--text-2, #9aabb4);
  display: grid;
  gap: 0.32rem;
}
.exlib-focusrows { display: grid; gap: 0.45rem; }
.exlib-focusrow {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 0.55rem;
  align-items: start;
}
.exlib-focusrow__label {
  color: var(--text-3, #6b7b85);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.exlib-focusrow__value { color: var(--text, #eaf2f1); line-height: 1.45; }
.exlib-checkin p { margin: 0.4rem 0 0; color: var(--text, #eaf2f1); line-height: 1.5; }
@media (max-width: 1100px) {
  .exlib-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .exlib-field--search { grid-column: span 3; }
  .exlib-grid,
  .exlib-intro { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .exlib-filters,
  .exlib-columns { grid-template-columns: 1fr; }
  .exlib-field--search { grid-column: auto; }
  .exlib-toolbar { flex-direction: column; align-items: stretch; }
  .exlib-focusrow { grid-template-columns: 1fr; }
  .exlib-card__toggle { font-size: 0.74rem; }
}

/* =====================================================================
   MINI-QUIZ DE META (criar meta por etapas — divertido, sem "meta número")
   ===================================================================== */
.gq-box { max-width: 760px; }
.gq-box .modal__body { display: block; }       /* anula o grid 2-col do wide */
.gq-box .modal__foot { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.gq-box .modal__foot .btn--block { width: auto; flex: 1; }
.gq-box .modal__foot [hidden],
.gq-customzone[hidden],
.gq-picked[hidden] { display: none !important; }
.gquiz { display: block; }
.gq-student { display: block; margin-bottom: 0.8rem; }
.gq-dots { display: flex; gap: 0.4rem; justify-content: center; margin: 0.1rem 0 1rem; }
.gq-dots i { width: 26px; height: 5px; border-radius: 999px; background: var(--line-strong, rgba(255, 255, 255, 0.16)); transition: background var(--t, 0.28s ease); }
.gq-dots i.is-on { background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); }
.gq-step { animation: gqIn 0.3s var(--ease, ease) both; }
@keyframes gqIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.gq-kicker { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lime, #b4f03a); margin-bottom: 0.35rem; }
.gq-q { font-family: var(--font-display, sans-serif); font-size: 1.35rem; margin: 0 0 0.2rem; color: var(--text, #eaf2f1); }
.gq-sub { color: var(--text-2, #9aabb4); font-size: 0.92rem; margin: 0 0 1rem; }
.gq-section { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; margin: 0 0 0.65rem; }
.gq-section--soft { margin-top: 0.95rem; padding-top: 0.95rem; border-top: 1px solid var(--line, rgba(255, 255, 255, 0.08)); }
.gq-section__t { font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text, #eaf2f1); }
.gq-section__s { font-size: 0.78rem; color: var(--text-3, #6b7b85); text-align: right; }
.gq-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
.gq-grid--3 { grid-template-columns: repeat(3, 1fr); }
.gq-grid--templates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gq-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 0.15rem;
  text-align: left; padding: 0.85rem 0.9rem; cursor: pointer;
  border-radius: var(--radius, 16px); border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.16));
  background: var(--surface, #111a24); color: var(--text, #eaf2f1);
  transition: transform var(--t-fast, 0.16s ease), border-color var(--t-fast, 0.16s ease), box-shadow var(--t-fast, 0.16s ease);
}
.gq-card:hover { transform: translateY(-2px); border-color: rgba(180, 240, 58, 0.5); }
.gq-card.is-sel { border-color: var(--lime, #b4f03a); box-shadow: var(--glow-lime, 0 0 0 1px rgba(180, 240, 58, 0.3)); background: rgba(180, 240, 58, 0.06); }
.gq-card__top { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 0.7rem; margin-bottom: 0.35rem; }
.gq-card__ic { font-size: 1.5rem; line-height: 1; }
.gq-card__tag {
  display: inline-flex; align-items: center; border-radius: 999px; padding: 0.18rem 0.55rem;
  background: rgba(180, 240, 58, 0.08); color: var(--lime, #b4f03a); font-size: 0.7rem;
  font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
}
.gq-card__t { font-weight: 800; font-size: 0.96rem; }
.gq-card__s { font-size: 0.76rem; color: var(--text-3, #6b7b85); }
.gq-card--custom { border-style: dashed; }
.gq-card--customsolo { width: 100%; }
.gq-effort { align-items: center; text-align: center; }
.gq-customzone { display: grid; gap: 0.75rem; margin-top: 0.85rem; }
.gq-custom { display: block; margin-top: 0.8rem; }
.gq-current {
  display: grid;
  gap: 0.18rem;
  margin: 0.55rem 0 0.85rem;
  padding: 0.7rem 0.8rem;
  border-radius: var(--radius, 16px);
  border: 1px solid rgba(180, 240, 58, 0.24);
  background: rgba(180, 240, 58, 0.08);
}
.gq-current span {
  color: var(--lime, #b4f03a);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.gq-current b { color: var(--text, #eaf2f1); }
.gq-current small { color: var(--text-2, #9aabb4); font-weight: 700; }
.gq-foco { margin-top: 0.8rem; }
.gq-foco__lbl { display: block; font-size: 0.78rem; color: var(--text-3, #6b7b85); font-weight: 600; margin-bottom: 0.4rem; }
.gq-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.gq-chip {
  cursor: pointer; padding: 0.32rem 0.7rem; border-radius: 999px; font-size: 0.82rem; font-weight: 600;
  border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.16)); background: var(--surface, #111a24); color: var(--text-2, #9aabb4);
  transition: all var(--t-fast, 0.16s ease);
}
.gq-chip:hover { border-color: rgba(180, 240, 58, 0.5); color: var(--text, #eaf2f1); }
.gq-chip.is-sel { background: var(--lime, #b4f03a); color: var(--on-accent, #06140a); border-color: var(--lime, #b4f03a); }
.gq-picked {
  border: 1px solid rgba(180, 240, 58, 0.2); border-radius: var(--radius, 16px); padding: 0.85rem 0.95rem;
  background: rgba(180, 240, 58, 0.05); margin-bottom: 0.85rem;
}
.gq-picked__k { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lime, #b4f03a); }
.gq-picked__t { margin-top: 0.2rem; font-size: 1rem; font-weight: 800; color: var(--text, #eaf2f1); }
.gq-picked__m { margin-top: 0.18rem; font-size: 0.82rem; color: var(--text-2, #9aabb4); }
.gq-picked__m b { color: var(--text, #eaf2f1); }
.gq-summary { border-radius: var(--radius, 16px); padding: 1rem; }
.gq-sum__t { font-family: var(--font-display, sans-serif); font-size: 1.25rem; color: var(--text, #eaf2f1); margin-bottom: 0.5rem; }
.gq-sum__row { display: flex; justify-content: space-between; gap: 1rem; padding: 0.35rem 0; border-top: 1px solid var(--line, rgba(255, 255, 255, 0.08)); font-size: 0.9rem; }
.gq-sum__row span { color: var(--text-2, #9aabb4); }
.gq-sum__row b { color: var(--text, #eaf2f1); text-align: right; }
@media (min-width: 900px) { .gq-grid--templates { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .gq-section { flex-direction: column; } .gq-section__s { text-align: left; } }
@media (max-width: 420px) { .gq-grid { grid-template-columns: 1fr; } .gq-grid--3 { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .gq-step { animation: none; } .gq-card:hover { transform: none; } }

/* ===================================================================== */
/* RODADA CIRÚRGICA — enquete (desvotar/trocar + pergunta aberta),        */
/* comunidade mais viva, e limpeza visual. Aditivo. Mobile preservado.    */
/* ===================================================================== */

/* ---- 1. Enquete: voto controlável ----
   Após votar, as barras viram BOTÕES (trocar/remover voto) — revertendo o
   cursor:default antigo e dando feedback de hover. */
.poll__opt--res { cursor: pointer; }
.poll__opt--res:hover { border-color: var(--lime, #b4f03a); }
.poll__opt--res:hover .poll__bar { background: rgba(180, 240, 58, 0.22); }
.poll__chk { color: var(--lime, #b4f03a); font-weight: 800; }
.poll__hint { color: var(--text-3, #6b7b85); font-weight: 400; }

/* Caixinha de pergunta / pergunta aberta (responder nos comentários). */
.poll--ask { margin: 0.6rem 0; }
.poll__ask {
  padding: 0.6rem 0.8rem; border-radius: var(--radius-sm, 10px);
  background: rgba(180, 240, 58, 0.08); border: 1px dashed rgba(180, 240, 58, 0.3);
  color: var(--text-2, #9aabb4); font-size: 0.9rem;
}
/* Compositor: alternar entre opções e pergunta aberta (toggle via :checked). */
.composer__pollopts { display: grid; gap: 0.4rem; }
.composer__ask {
  display: flex; align-items: center; gap: 0.5rem; cursor: pointer;
  font-size: 0.82rem; color: var(--text-2, #9aabb4); margin: 0.1rem 0 0.4rem;
}
.composer__ask input { accent-color: var(--lime, #b4f03a); }
.composer__poll:has(#cmpPollAsk:checked) .composer__pollopts { display: none; }

/* ---- 2. Comunidade mais viva e com mais protagonismo (desktop) ----
   Feed um pouco mais largo e com mais respiro entre posts: menos "módulo
   apertado", mais sensação de rede viva. */
@media (min-width: 1024px) {
  .feed-grid { grid-template-columns: minmax(0, 700px) 300px; }
  .feed-grid--solo { grid-template-columns: minmax(0, 700px); }
  .feed-main .mural { gap: 1rem; }
  /* hero da comunidade com mais presença (acento de marca à esquerda). */
  .community-hero {
    border-left: 3px solid var(--lime, #b4f03a);
    background:
      linear-gradient(90deg, rgba(180, 240, 58, 0.06), transparent 60%),
      var(--surface, #111a24);
  }
  .community-hero__txt b { font-size: 1.35rem; }
}

/* ---- 3. Limpeza visual / menos caixas aninhadas ----
   O mural é um feed, não um painel: aliviamos a moldura externa do card-mural
   no desktop para os posts respirarem (cada post já tem sua própria borda). */
@media (min-width: 1024px) {
  .feed-main > .pl-card--flush {
    background: transparent; border-color: transparent; box-shadow: none; padding-top: 0.2rem;
  }
  .feed-main > .pl-card--flush > .pl-card__head { padding-inline: 0.2rem; }
  /* cards secundários da lateral: tom mais discreto (não competem com o principal). */
  .dash-side > .pl-card { background: rgba(255, 255, 255, 0.018); }
  /* títulos de seção com um pouco mais de hierarquia. */
  .dash-main > .pl-card > .pl-card__head h3,
  .feed-main .pl-card__head h3 { letter-spacing: -0.01em; }
}

/* ---- 4. Alinhamento: colunas começam no topo (só no grid desktop; no mobile
   as colunas são flex e PRECISAM esticar à largura total — não usar align-self
   global, que encolheria a lateral ao conteúdo e causaria overflow horizontal). ---- */
@media (min-width: 1024px) {
  .dash-side, .feed-side { align-self: start; }
}
@media (prefers-reduced-motion: reduce) {
  .poll__opt--res:hover .poll__bar { background: rgba(180, 240, 58, 0.16); }
}

/* ===================================================================== */
/* IRALU AO VIVO — dashboard de pulso da escola (topo da Comunidade)      */
/* ===================================================================== */
.live-dash { border-radius: var(--radius-lg, 22px); padding: 1.1rem 1.2rem; margin-bottom: 1rem; }
.live-dash__head { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.9rem; flex-wrap: wrap; }
.live-dash__head b { font-family: var(--font-display, sans-serif); font-size: 1.2rem; color: var(--text, #eaf2f1); }
.live-dash__sub { color: var(--text-2, #9aabb4); font-size: 0.85rem; }
.live-dash__pulse {
  width: 10px; height: 10px; border-radius: 50%; background: var(--lime, #b4f03a);
  box-shadow: 0 0 0 0 rgba(180, 240, 58, 0.7); animation: livePulse 1.8s var(--ease, ease) infinite;
}
@keyframes livePulse {
  0% { box-shadow: 0 0 0 0 rgba(180, 240, 58, 0.55); }
  70% { box-shadow: 0 0 0 12px rgba(180, 240, 58, 0); }
  100% { box-shadow: 0 0 0 0 rgba(180, 240, 58, 0); }
}
.live-dash__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.6rem; }
.live-stat {
  display: flex; flex-direction: column; align-items: center; gap: 0.1rem;
  padding: 0.7rem 0.4rem; border-radius: var(--radius, 16px);
  background: rgba(255, 255, 255, 0.04); border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
.live-stat__ic { font-size: 1.25rem; line-height: 1; }
.live-stat__v {
  font-family: var(--font-display, sans-serif); font-size: 1.6rem; font-weight: 800; line-height: 1.1;
  background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--lime, #b4f03a);
}
.live-stat__k { font-size: 0.72rem; color: var(--text-2, #9aabb4); text-align: center; line-height: 1.2; }
@media (max-width: 720px) { .live-dash__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 380px) { .live-dash__grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .live-dash__pulse { animation: none; } }

/* ===================================================================== */
/* POLIMENTO ESTRATÉGICO — clareza, foco por perfil e confiança            */
/* ===================================================================== */

/* Primeira dobra pública: caminho curto para lead mobile/Instagram */
.hero-quickpath {
  display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 1rem;
}
.hero-quickpath a {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 36px; padding: 0.38rem 0.72rem;
  border-radius: var(--radius-pill, 999px);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--text, #eaf2f1); font-size: 0.84rem; font-weight: 700;
  text-decoration: none;
}
.hero-quickpath a:hover { border-color: rgba(180, 240, 58, 0.45); color: var(--lime, #b4f03a); }
.hero-trustline {
  display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0 0;
  padding: 0; list-style: none;
  color: var(--text-1, #e7eef2); font-size: 0.8rem; line-height: 1.2;
}
.hero-trustline li {
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: 0.34rem 0.7rem 0.34rem 0.55rem;
  border-radius: var(--radius-pill, 999px);
  background: rgba(17, 198, 166, 0.08);
  border: 1px solid rgba(17, 198, 166, 0.2);
  font-weight: 600;
}
.hero-trustline__ic {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.05rem; height: 1.05rem; border-radius: 50%;
  background: rgba(180, 240, 58, 0.18); color: var(--lime, #b4f03a);
  font-size: 0.72rem; font-weight: 900; flex: none;
}
/* Desktop/tablet largo: selos em 2 colunas iguais, preenchendo a largura do CTA.
   Fica depois da base .hero-trustline para vencer a cascata (media query não
   soma especificidade). */
@media (min-width: 700px) {
  .hero-trustline {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
    width: 100%;
  }
}
@media (max-width: 520px) {
  .hero__cta .btn { width: 100%; }
  .hero-quickpath { display: grid; grid-template-columns: 1fr 1fr; }
  .hero-quickpath a { font-size: 0.8rem; padding-inline: 0.55rem; }
}

/* Home do aluno: uma próxima ação antes de todos os detalhes */
.student-focus {
  position: relative; overflow: hidden;
  background:
    radial-gradient(520px 220px at 92% 0%, rgba(180, 240, 58, 0.16), transparent 62%),
    linear-gradient(135deg, rgba(17, 198, 166, 0.08), rgba(255, 255, 255, 0.02)),
    var(--surface, #111a24);
  border-color: rgba(180, 240, 58, 0.22);
}
.student-focus__k,
.guardian-scope__k {
  font-size: 0.72rem; color: var(--lime, #b4f03a); font-weight: 800;
  text-transform: uppercase; letter-spacing: 0.06em;
}
.student-focus__top {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 0.9rem; margin-top: 0.35rem;
}
.student-focus h3 {
  margin: 0; font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: clamp(1.45rem, 4vw, 2rem); line-height: 0.98; color: var(--text, #eaf2f1);
}
.student-focus p { margin: 0.35rem 0 0; color: var(--text-2, #9aabb4); line-height: 1.35; }
.student-focus__badge {
  width: 52px; height: 52px; flex: none; display: grid; place-items: center;
  border-radius: 18px; font-size: 1.65rem;
  background: rgba(180, 240, 58, 0.12);
  border: 1px solid rgba(180, 240, 58, 0.22);
}
.student-focus__bar {
  height: 10px; margin-top: 0.95rem; border-radius: 999px;
  background: rgba(255, 255, 255, 0.08); overflow: hidden;
}
.student-focus__bar i { display: block; height: 100%; background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6)); }
.student-focus__meta {
  display: flex; justify-content: space-between; gap: 0.7rem; flex-wrap: wrap;
  margin-top: 0.45rem; color: var(--text-2, #9aabb4); font-size: 0.82rem;
}
.student-focus__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.95rem; }
.student-focus__note {
  margin-top: 0.8rem !important; font-size: 0.82rem;
  color: var(--text-3, #6b7b85) !important;
}
@media (max-width: 520px) {
  .student-focus__actions .btn { flex: 1 1 100%; }
  .student-focus__badge { width: 46px; height: 46px; border-radius: 15px; }
}

/* Notas de justiça entre engajamento e evolução técnica */
.boundary-note {
  display: grid; gap: 0.16rem; margin: 0.25rem 0 0.8rem;
  padding: 0.58rem 0.72rem; border-radius: var(--radius-sm, 12px);
  background: rgba(17, 198, 166, 0.07);
  border: 1px solid rgba(17, 198, 166, 0.16);
}
.boundary-note b { color: var(--text, #eaf2f1); font-size: 0.88rem; }
.boundary-note span { color: var(--text-2, #9aabb4); font-size: 0.82rem; line-height: 1.35; }
.boundary-note--evo { max-width: 1000px; margin: 0.9rem auto; }

/* Responsável: comunidade contextual, não rede social ampla */
.community-entry--guardian {
  border-color: rgba(180, 240, 58, 0.22);
  background: linear-gradient(135deg, rgba(180, 240, 58, 0.08), rgba(17, 198, 166, 0.04)), var(--surface-2, #16222f);
}
.community-hero--guardian {
  border-left: 3px solid var(--lime, #b4f03a);
  background:
    linear-gradient(90deg, rgba(180, 240, 58, 0.08), transparent 70%),
    var(--surface, #111a24);
}
.guardian-scope {
  display: grid; gap: 0.35rem; margin-bottom: 0.8rem;
  border-color: rgba(180, 240, 58, 0.18);
}
.guardian-scope__t {
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1.35rem; color: var(--text, #eaf2f1); line-height: 1.05;
}
.guardian-scope__meta { color: var(--text-2, #9aabb4); font-size: 0.86rem; }
.guardian-scope__note { margin: 0; color: var(--text-2, #9aabb4); font-size: 0.86rem; line-height: 1.4; }
.comment-add--locked {
  color: var(--text-3, #6b7b85); font-size: 0.82rem; line-height: 1.35;
  background: rgba(255, 255, 255, 0.035); border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-sm, 10px); padding: 0.6rem 0.7rem;
}

/* Rodada extensa: clareza entre meta, missão e desafio */
.student-focus__lanes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.45rem;
  margin-top: 0.9rem;
}
.student-focus__lane {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
  padding: 0.55rem 0.65rem;
  border-radius: var(--radius-sm, 12px);
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.09);
}
.student-focus__lane span {
  color: var(--text-3, #6b7b85);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.student-focus__lane b {
  color: var(--text, #eaf2f1);
  font-size: 0.82rem;
  line-height: 1.2;
}
.student-focus__lane.is-on {
  background: rgba(180, 240, 58, 0.09);
  border-color: rgba(180, 240, 58, 0.24);
}
.student-focus__lane--foco {
  background: rgba(46, 212, 191, 0.07);
  border-color: rgba(46, 212, 191, 0.18);
}
.student-focus__lane--meta {
  background: rgba(180, 240, 58, 0.06);
  border-color: rgba(180, 240, 58, 0.18);
}
.student-focus__lane--missao {
  background: rgba(255, 184, 77, 0.06);
  border-color: rgba(255, 184, 77, 0.18);
}
.student-focus__lane--desafio {
  background: rgba(110, 168, 255, 0.06);
  border-color: rgba(110, 168, 255, 0.18);
}
.mission__meta {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
}
.mission__state {
  color: var(--lime, #b4f03a);
  font-weight: 800;
  white-space: nowrap;
}
.roster-row__actions .mini-btn {
  white-space: nowrap;
}
@media (max-width: 1080px) {
  .student-focus__lanes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .student-focus__lanes { grid-template-columns: 1fr; }
}
@media (min-width: 900px) {
  .roster-row__actions {
    justify-content: flex-end;
    max-width: 540px;
  }
}

/* ---------- FAQ agrupada por tema (rótulos no estilo eyebrow da marca) ---------- */
.faq .faq-group {
  margin: 1.5rem 0 0.15rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lime, #b4f03a);
}
.faq .faq-group::before {
  content: "";
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: var(--lime, #b4f03a);
}
.faq .faq-group:first-child {
  margin-top: 0;
}

/* ---------- Experiências (B2C) — cena rica no padrão das seções superiores ---------- */
.exp-showcase {
  display: grid;
  gap: clamp(1.35rem, 2.8vw, 2.6rem);
  align-items: center;
}
.exp-showcase__copy {
  max-width: 35rem;
}
.exp-formats {
  list-style: none;
  margin: 1.4rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.7rem;
}
.exp-format {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  padding: 0.9rem 1rem;
  border-radius: 16px;
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)),
    var(--surface, #0f1a20);
  transition: transform var(--t, 0.3s), border-color var(--t, 0.3s);
}
.exp-format:hover {
  transform: translateY(-3px);
  border-color: var(--line-strong, rgba(180, 240, 58, 0.3));
}
.exp-format__ic {
  flex: none;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  font-size: 1.15rem;
  background: rgba(180, 240, 58, 0.1);
  border: 1px solid rgba(180, 240, 58, 0.18);
}
.exp-format b {
  display: block;
  font-family: var(--font-display);
  font-size: 1.02rem;
}
.exp-format span {
  display: block;
  margin-top: 0.15rem;
  color: var(--text-2, #9aabb4);
  font-size: 0.85rem;
  line-height: 1.4;
}
.exp-showcase__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9rem 1.2rem;
  margin-top: 1.4rem;
}
.exp-showcase__note {
  font-size: 0.86rem;
  color: var(--text-2, #9aabb4);
}
.exp-showcase__note a {
  color: var(--lime, #b4f03a);
  font-weight: 600;
}
.exp-scene {
  position: relative;
  min-height: 480px;
  isolation: isolate;
}
.exp-scene::before {
  content: "";
  position: absolute;
  inset: 8% 8% 0 4%;
  z-index: 0;
  border: 1px solid rgba(180, 240, 58, 0.12);
  border-radius: 22px;
  background:
    radial-gradient(320px 220px at 72% 22%, rgba(17, 198, 166, 0.16), transparent 72%),
    radial-gradient(280px 180px at 22% 24%, rgba(180, 240, 58, 0.13), transparent 76%),
    linear-gradient(145deg, rgba(28, 41, 53, 0.64), rgba(14, 22, 29, 0.16));
  transform: perspective(900px) rotateY(-8deg);
}
.exp-photo {
  position: absolute;
  right: 8%;
  top: 0.2rem;
  width: min(74%, 400px);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(180, 240, 58, 0.22);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04)),
    rgba(16, 25, 33, 0.84);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.24);
  transform: rotate(3deg);
  z-index: 2;
}
.exp-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(118deg, transparent 0 55%, rgba(180, 240, 58, 0.14) 56%, transparent 60% 100%),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.03) 0 12px, transparent 12px 24px);
}
.exp-slot-label {
  position: absolute;
  left: 0.9rem;
  right: 0.9rem;
  bottom: 0.9rem;
  z-index: 2;
  display: grid;
  gap: 0.3rem;
  padding: 0.74rem 0.8rem;
  border-radius: 10px;
  background: rgba(10, 16, 22, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.11);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.24);
}
.exp-slot-kind {
  width: fit-content;
  padding: 0.18rem 0.48rem;
  border-radius: 999px;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.09);
  border: 1px solid rgba(180, 240, 58, 0.2);
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}
.exp-slot-label strong {
  font-size: 1rem;
  line-height: 1.06;
}
.exp-slot-label small {
  color: var(--text-2, #9aabb4);
  font-size: 0.78rem;
  line-height: 1.3;
}
.exp-glass {
  position: absolute;
  z-index: 3;
  width: 180px;
  padding: 0.8rem 0.92rem;
  border-radius: 10px;
  background: rgba(10, 18, 24, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.13);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.exp-glass b {
  display: block;
  font-size: 0.92rem;
  line-height: 1.08;
}
.exp-glass span {
  display: block;
  margin-top: 0.22rem;
  color: var(--text-2, #9aabb4);
  font-size: 0.75rem;
  line-height: 1.28;
}
.exp-glass--a {
  left: 0;
  top: 16%;
  transform: rotate(-4deg);
}
.exp-glass--b {
  left: 6%;
  bottom: 8%;
  transform: rotate(3deg);
}

/* ---------- Locais + Noticias: mesma linguagem de cena + glass ---------- */
#locais,
#noticias {
  position: relative;
  isolation: isolate;
}
#locais::before,
#noticias::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(620px 260px at 10% 0%, rgba(180, 240, 58, 0.08), transparent 66%),
    radial-gradient(520px 240px at 92% 100%, rgba(17, 198, 166, 0.08), transparent 64%);
}
.locais-showcase__copy,
.noticias-showcase__copy {
  max-width: 36rem;
}
.locais-signals,
.noticias-signals {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 1.2rem;
}
.locais-signals span,
.noticias-signals span {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0.48rem 0.82rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(140px 60px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 74%),
    rgba(255,255,255,0.03);
  color: var(--text, #eaf2f1);
  font-size: 0.82rem;
  font-weight: 700;
}
.locais-grid {
  display: grid;
  gap: 0.85rem;
  margin-top: 1.2rem;
}
.locais-card {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  padding: 0.95rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(180px 90px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(28, 41, 53, 0.96), rgba(21, 32, 42, 0.92)),
    rgba(20, 30, 40, 0.92);
  box-shadow:
    0 16px 40px rgba(0, 0, 0, 0.14),
    inset 0 1px 0 rgba(255,255,255,0.03);
}
.locais-card__ic {
  flex: none;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  font-size: 1.15rem;
  background: rgba(180, 240, 58, 0.1);
  border: 1px solid rgba(180, 240, 58, 0.18);
}
.locais-card h3,
.news__body h3 {
  margin: 0;
}
.locais-card p,
.news__body p {
  margin: 0.22rem 0 0;
  color: var(--text-2, #9aabb4);
  font-size: 0.88rem;
  line-height: 1.45;
}
.locais-cta {
  margin-top: 1.2rem;
}
.locais-scene {
  min-height: 500px;
}
.locais-photo {
  right: 6%;
  top: 3%;
}
.locais-glass {
  left: 0;
  top: 12%;
  transform: rotate(-4deg);
}
.locais-board,
.noticias-board--scene {
  position: absolute;
  z-index: 2;
  display: grid;
  gap: 0.75rem;
  padding: 1.15rem 1.1rem 1rem;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(240px 120px at 100% 0%, rgba(17, 198, 166, 0.1), transparent 74%),
    radial-gradient(220px 110px at 0% 100%, rgba(180, 240, 58, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(29, 42, 55, 0.97), rgba(21, 32, 42, 0.93)),
    rgba(20, 30, 40, 0.92);
  box-shadow:
    0 24px 64px rgba(0, 0, 0, 0.22),
    inset 0 1px 0 rgba(255,255,255,0.03);
}
.locais-board {
  left: 0;
  bottom: 6%;
  width: min(54%, 300px);
}
.locais-board__eyebrow,
.noticias-board__eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: 0.24rem 0.54rem;
  border-radius: 999px;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.08);
  border: 1px solid rgba(180, 240, 58, 0.16);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}
.locais-board strong,
.noticias-board--scene strong {
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 0.96;
}
.locais-board__list,
.noticias-board__items {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.locais-board__list li,
.noticias-board__items div {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.72rem 0.78rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background:
    radial-gradient(180px 90px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 72%),
    rgba(8, 15, 20, 0.28);
}
.locais-board__list span,
.noticias-board__items b {
  flex: none;
  min-width: 42px;
  color: var(--lime, #b4f03a);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}
.locais-board__list b,
.noticias-board__items span {
  color: var(--text, #eaf2f1);
  font-size: 0.84rem;
  line-height: 1.35;
}
.noticias-scene {
  min-height: 420px;
}
.noticias-board--scene {
  inset: 6% 6% auto 12%;
  width: auto;
}
.noticias-scene--minimal::before {
  display: none;
}
.noticias-board--minimal {
  inset: 0;
  width: 100%;
  min-height: 100%;
  align-content: start;
  padding: 1.5rem 1.4rem 1.3rem;
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(28, 41, 53, 0.98), rgba(21, 32, 42, 0.95)),
    rgba(20, 30, 40, 0.94);
  box-shadow:
    0 24px 60px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255,255,255,0.03);
}
.noticias-board__foot {
  margin: 0;
  color: var(--text-2, #9aabb4);
  font-size: 0.86rem;
  line-height: 1.45;
}
.noticias-grid {
  margin-top: clamp(1.4rem, 2.6vw, 2.1rem) !important;
}
#noticias .news {
  align-items: flex-start;
  min-height: 100%;
  border-color: rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(180px 90px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(28, 41, 53, 0.96), rgba(21, 32, 42, 0.92)),
    rgba(20, 30, 40, 0.92);
  box-shadow:
    0 16px 40px rgba(0, 0, 0, 0.14),
    inset 0 1px 0 rgba(255,255,255,0.03);
}
#noticias .news__date {
  width: 64px;
  padding: 0.5rem 0.35rem;
  border-radius: 16px;
  background: rgba(180, 240, 58, 0.08);
  border: 1px solid rgba(180, 240, 58, 0.18);
}
.news__tag {
  display: inline-flex;
  margin-bottom: 0.45rem;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--teal, #11c6a6);
  background: rgba(17, 198, 166, 0.1);
  font-size: 0.66rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* grade de eventos: auto-fit preenche a largura (corrige o vazio do auto-fill) */
.experiencias-section .exp-grid {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 1rem;
  margin-top: clamp(1.4rem, 2.6vw, 2.2rem);
}
.exp-card h3 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.exp-card h3 .soon {
  padding: 0.12rem 0.46rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-3, #6f828c);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.13);
}
/* parceiros: auto-fit também, para os 4 cards preencherem */
.b2b .b2b-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.b2b-showcase {
  margin-bottom: clamp(2rem, 3.6vw, 3rem);
}
.b2b-glass {
  left: 0;
  top: 10%;
  transform: rotate(-3deg);
}
.b2b .b2b-grid {
  gap: 1rem;
}
.bcard {
  position: relative;
  display: grid;
  gap: 0.5rem;
  padding: 1.2rem 1.15rem 1.1rem;
}
.bcard::before {
  content: "";
  position: absolute;
  left: 1rem;
  right: 1rem;
  top: 0;
  height: 3px;
  border-radius: 999px;
  background: var(--bcard-accent, rgba(180, 240, 58, 0.35));
}
.bcard__ic {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  font-size: 1.4rem;
  background: color-mix(in srgb, var(--bcard-accent, #b4f03a) 14%, rgba(255, 255, 255, 0.02));
  border: 1px solid color-mix(in srgb, var(--bcard-accent, #b4f03a) 32%, rgba(255, 255, 255, 0.08));
}
.bcard h3 {
  margin: 0;
}
.bcard p {
  margin: 0;
  color: var(--text-2, #9aabb4);
  line-height: 1.52;
}
.bcard--escolas { --bcard-accent: var(--lime, #b4f03a); }
.bcard--condominios { --bcard-accent: var(--teal, #11c6a6); }
.bcard--clubes { --bcard-accent: var(--gold, #e8c96e); }
.bcard--empresas { --bcard-accent: var(--blue-deep, #2c6fb2); }
.bcard:hover {
  border-color: color-mix(in srgb, var(--bcard-accent, #b4f03a) 55%, rgba(255,255,255,0.12));
  box-shadow: 0 16px 36px rgba(0,0,0,.26);
}
.b2b-steps {
  margin-top: 2rem;
}
.b2b-steps__row {
  gap: 0.95rem;
}
.b2b-step {
  background:
    linear-gradient(180deg, rgba(24, 36, 46, 0.94), rgba(17, 27, 35, 0.9)),
    var(--surface-2, #16222f);
}
.b2b__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2rem;
}
.b2b__cta-ghost {
  gap: 0.45rem;
}
@media (min-width: 980px) {
  .exp-showcase {
    grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1.05fr);
  }
  .exp-showcase__copy {
    order: 1;
  }
  .exp-scene {
    order: 2;
  }
}
@media (max-width: 979px) {
  .exp-scene {
    min-height: 380px;
  }
  .exp-photo {
    width: min(78%, 320px);
  }
  .locais-scene {
    min-height: 420px;
  }
  .locais-board {
    width: min(64%, 280px);
  }
  .noticias-board--scene {
    inset: 8% 8% auto;
  }
}
@media (max-width: 640px) {
  .exp-scene {
    min-height: 300px;
    margin-top: 0.5rem;
  }
  .exp-glass {
    display: none;
  }
  .exp-photo {
    position: relative;
    right: auto;
    top: auto;
    width: min(100%, 340px);
    margin-inline: auto;
    transform: none;
  }
  .exp-scene::before {
    inset: 10% 6% 0;
  }
  .platform-grid {
    grid-template-columns: 1fr;
  }
  .locais-grid {
    grid-template-columns: 1fr;
  }
  .locais-scene,
  .noticias-scene {
    min-height: 300px;
  }
  .locais-photo {
    position: relative;
    right: auto;
    top: auto;
    margin-inline: auto;
    transform: none;
  }
  .locais-glass {
    display: none;
  }
  .locais-board,
  .noticias-board--scene {
    position: relative;
    inset: auto;
    width: 100%;
    margin-top: 1rem;
  }
  .b2b__cta {
    flex-direction: column;
  }
}

/* ================================================================
   METODOLOGIA EXPANDIDA — 5 dimensões, boletim 0–10, jornada
   ================================================================ */
.metodo-h3 {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.6vw, 1.9rem);
  line-height: 1.08;
  margin: 0.5rem 0 0;
}
.metodo-dims {
  margin-top: clamp(2rem, 4vw, 3.2rem);
}
.metodo-dims__intro {
  max-width: 46rem;
  margin-bottom: 1.4rem;
}
.metodo-dims__intro p {
  color: var(--text-2, #9aabb4);
  margin-top: 0.5rem;
  max-width: 54ch;
}
.metodo-dims__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.9rem;
}
.dim-card {
  display: grid;
  gap: 0.32rem;
  padding: 1.2rem 1.1rem;
  border-radius: 16px;
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  background:
    linear-gradient(160deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)),
    var(--surface, #0f1a20);
  transition: transform var(--t, 0.3s), border-color var(--t, 0.3s);
}
.dim-card:hover {
  transform: translateY(-4px);
  border-color: rgba(180, 240, 58, 0.3);
}
.dim-card__ic {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  font-size: 1.25rem;
  background: rgba(180, 240, 58, 0.1);
  border: 1px solid rgba(180, 240, 58, 0.18);
  margin-bottom: 0.25rem;
}
.dim-card b {
  font-family: var(--font-display);
  font-size: 1.08rem;
}
.dim-card span {
  color: var(--text-2, #9aabb4);
  font-size: 0.85rem;
  line-height: 1.4;
}
.metodo-boletim {
  display: grid;
  gap: clamp(1.3rem, 2.8vw, 2.4rem);
  align-items: center;
  margin-top: clamp(2rem, 4vw, 3.2rem);
}
.metodo-boletim__copy {
  max-width: 36rem;
}
.metodo-boletim__copy p {
  color: var(--text-2, #9aabb4);
  margin-top: 0.5rem;
}
.metodo-list {
  list-style: none;
  padding: 0;
  margin: 1.1rem 0 0;
  display: grid;
  gap: 0.55rem;
}
.metodo-list li {
  position: relative;
  padding-left: 1.5rem;
  color: var(--text-2, #9aabb4);
  font-size: 0.92rem;
}
.metodo-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--lime, #b4f03a);
  font-weight: 800;
}
.boletim-card {
  border-radius: 20px;
  padding: 1.4rem 1.5rem;
  border: 1px solid rgba(180, 240, 58, 0.16);
  background:
    linear-gradient(160deg, rgba(28, 41, 53, 0.6), rgba(14, 22, 29, 0.4)),
    var(--surface, #0f1a20);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
}
.boletim-card__head {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 1.1rem;
}
.boletim-card__head .ball-orb {
  width: 44px;
  height: 44px;
}
.boletim-card__head b {
  display: block;
  font-family: var(--font-display);
  font-size: 1.1rem;
}
.boletim-card__head span {
  color: var(--text-2, #9aabb4);
  font-size: 0.82rem;
}
.boletim-card__rows {
  display: grid;
  gap: 0.7rem;
}
.boletim-row {
  display: grid;
  grid-template-columns: 7.5rem 1fr 2.2rem;
  align-items: center;
  gap: 0.7rem;
}
.boletim-row > span {
  font-size: 0.82rem;
  color: var(--text-2, #9aabb4);
}
.boletim-row > i {
  display: block;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  position: relative;
  overflow: hidden;
}
.boletim-row > i::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--v, 0%);
  border-radius: 999px;
  background: linear-gradient(90deg, var(--lime, #b4f03a), var(--teal, #11c6a6));
}
.boletim-row > b {
  font-family: var(--font-display);
  font-size: 0.95rem;
  text-align: right;
}
.boletim-card__note {
  display: block;
  margin-top: 1rem;
  font-size: 0.72rem;
  color: var(--text-3, #6f828c);
}
.metodo-journey {
  margin-top: clamp(2rem, 4vw, 3.2rem);
}
.metodo-journey__intro {
  max-width: 46rem;
  margin-bottom: 1.4rem;
}
.metodo-journey__intro p {
  color: var(--text-2, #9aabb4);
  margin-top: 0.5rem;
}
.journey {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.6rem;
  position: relative;
}
.journey::before {
  content: "";
  position: absolute;
  left: 6%;
  right: 6%;
  top: 22px;
  height: 2px;
  background: linear-gradient(90deg, rgba(232, 237, 242, 0.5), #9b6cf0, #ef4d4d, #f7882f, #34c759, #ffd400);
  opacity: 0.5;
  z-index: 0;
}
.journey-step {
  position: relative;
  z-index: 1;
  text-align: center;
  display: grid;
  gap: 0.3rem;
  justify-items: center;
}
.journey-step .ball-orb {
  width: 44px;
  height: 44px;
}
.journey-step b {
  font-family: var(--font-display);
  font-size: 0.98rem;
}
.journey-step span {
  color: var(--text-2, #9aabb4);
  font-size: 0.76rem;
  line-height: 1.35;
}
.journey-step--goal b {
  color: var(--lime, #b4f03a);
}
@media (min-width: 900px) {
  .metodo-boletim {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.85fr);
  }
}
@media (max-width: 720px) {
  .journey {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem 0.6rem;
  }
  .journey::before {
    display: none;
  }
  .boletim-row {
    grid-template-columns: 6rem 1fr 2rem;
  }
}

/* ================================================================
   ROUND C — rollout visual de Professores em diante
   ================================================================ */
/* Professores: cards com mais presença + selo flutuante + chip de região */
#professores .coach {
  position: relative;
  background:
    linear-gradient(170deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)),
    var(--surface, #0f1a20);
  transition: transform var(--t, 0.3s), border-color var(--t, 0.3s);
}
#professores .coach:hover {
  transform: translateY(-5px);
  border-color: rgba(180, 240, 58, 0.28);
}
#professores .coach--lead {
  border-color: rgba(180, 240, 58, 0.3);
}
#professores .coach__photo {
  aspect-ratio: 4 / 5;
  background:
    linear-gradient(150deg, rgba(180, 240, 58, 0.1), rgba(17, 198, 166, 0.06)),
    linear-gradient(135deg, var(--surface-3, #16242e), var(--ink-700, #0c151b));
  border-bottom: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}
#professores .coach__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(118deg, transparent 0 58%, rgba(180, 240, 58, 0.12) 59%, transparent 63% 100%),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.03) 0 12px, transparent 12px 24px);
}
#professores .coach__badge {
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  z-index: 2;
  padding: 0.28rem 0.62rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.13);
  border: 1px solid rgba(180, 240, 58, 0.32);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
#professores .coach__area {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-top: 0.95rem;
  padding: 0.32rem 0.62rem;
  border-radius: 999px;
  font-size: 0.74rem;
  color: var(--text-2, #9aabb4);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
}

/* Depoimentos: destaque com foto + aspas grandes */
.testi-featured {
  display: grid;
  gap: clamp(1.1rem, 2.4vw, 2rem);
  align-items: stretch;
  margin-top: 1.6rem;
}
.testi-featured__media {
  position: relative;
  overflow: hidden;
  min-height: 260px;
  border-radius: 18px;
  border: 1px solid rgba(180, 240, 58, 0.2);
  background:
    linear-gradient(150deg, rgba(180, 240, 58, 0.1), rgba(17, 198, 166, 0.06)),
    linear-gradient(135deg, var(--surface-3, #16242e), var(--ink-700, #0c151b));
}
.testi-featured__media::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(118deg, transparent 0 56%, rgba(180, 240, 58, 0.12) 57%, transparent 61% 100%),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.03) 0 12px, transparent 12px 24px);
}
.testi-featured__body {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.4rem, 3vw, 2.2rem);
  border-radius: 18px;
  border: 1px solid var(--line, rgba(255, 255, 255, 0.08));
  background:
    linear-gradient(160deg, rgba(28, 41, 53, 0.5), rgba(14, 22, 29, 0.3)),
    var(--surface, #0f1a20);
}
.testi-featured__mark {
  font-family: var(--font-display);
  font-size: 3.4rem;
  line-height: 0.6;
  color: var(--lime, #b4f03a);
  opacity: 0.5;
}
.testi-featured__quote {
  font-size: clamp(1.1rem, 1.8vw, 1.4rem);
  line-height: 1.5;
  margin: 0.4rem 0 1.1rem;
}
.testi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
  margin-top: 1.2rem;
}
@media (min-width: 860px) {
  .testi-featured {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  }
}

/* Plataforma: mockup de ranking flutuante */
.platform-scene .rank-mock {
  position: absolute;
  right: 7%;
  top: 1.2rem;
  z-index: 2;
  width: min(80%, 360px);
  border-radius: 18px;
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(180, 240, 58, 0.18);
  background:
    linear-gradient(160deg, rgba(28, 41, 53, 0.72), rgba(14, 22, 29, 0.52)),
    var(--surface, #0f1a20);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.32);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transform: rotate(2deg);
}
.rank-mock__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 0.8rem;
}
.rank-mock__head b {
  font-family: var(--font-display);
  font-size: 0.98rem;
}
.rank-mock__head span {
  font-size: 0.7rem;
  color: var(--text-3, #6f828c);
}
.rank-mock__row {
  display: grid;
  grid-template-columns: 1.4rem 1.7rem 1fr auto;
  align-items: center;
  gap: 0.6rem;
  padding: 0.5rem 0.45rem;
  border-radius: 10px;
}
.rank-mock__row + .rank-mock__row {
  margin-top: 0.15rem;
}
.rank-mock__row--top {
  background: rgba(180, 240, 58, 0.08);
}
.rank-mock__row--you {
  background: rgba(17, 198, 166, 0.13);
  border: 1px solid rgba(17, 198, 166, 0.32);
}
.rank-mock__pos {
  font-family: var(--font-display);
  color: var(--text-3, #6f828c);
  text-align: center;
}
.rank-mock__av {
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 0.64rem;
  font-weight: 800;
  background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6));
  color: var(--on-accent, #0b1206);
}
.rank-mock__name {
  font-size: 0.86rem;
}
.rank-mock__pts {
  font-family: var(--font-display);
  font-size: 0.9rem;
  color: var(--lime, #b4f03a);
}
@media (max-width: 640px) {
  .platform-scene .rank-mock {
    position: relative;
    right: auto;
    top: auto;
    width: min(100%, 360px);
    margin-inline: auto;
    transform: none;
  }
}

/* ===================================================================== */
/* TÊNIS NAS FÉRIAS — landing independente /tenisnasferias/              */
/* ===================================================================== */
.ferias-page {
  min-width: 0;
  overflow-x: hidden;
  color: var(--text, #eaf2f1);
  background:
    radial-gradient(900px 620px at 86% -8%, rgba(180, 240, 58, 0.08), transparent 68%),
    #071017;
}
.ferias-page::selection { background: rgba(180, 240, 58, 0.28); color: #fff; }
.ferias-shell {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}
.ferias-nav {
  position: sticky;
  top: 0;
  z-index: 90;
  min-height: 72px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(7, 16, 23, 0.82);
  backdrop-filter: blur(18px) saturate(135%);
}
.ferias-nav__inner { display: flex; align-items: center; gap: 1rem; }
.ferias-nav__meta {
  display: grid;
  gap: 0.08rem;
  padding-left: 1rem;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
}
.ferias-nav__section {
  color: var(--text-3, #6f7c87);
  font-family: var(--font-ui, "Saira", sans-serif);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}
.ferias-nav__campaign {
  color: var(--text-2, #9aabb4);
  font-family: var(--font-ui, "Saira", sans-serif);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.ferias-nav__links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.4rem;
  margin-left: auto;
}
.ferias-nav__links a {
  color: var(--text-2, #9aabb4);
  font-family: var(--font-ui, "Saira", sans-serif);
  font-size: 0.86rem;
  font-weight: 600;
}
.ferias-nav__links a:hover { color: var(--text, #eaf2f1); }
.ferias-nav__cta { margin-left: 0.5rem; }

.ferias-hero {
  position: relative;
  isolation: isolate;
  min-height: min(760px, calc(100vh - 72px));
  display: grid;
  align-items: center;
  overflow: hidden;
  padding: clamp(4rem, 8vw, 7rem) 0;
  background: linear-gradient(145deg, #081119 0%, #0b171e 56%, #08140f 100%);
}
.ferias-hero__grid {
  position: absolute;
  inset: 0;
  z-index: -3;
  opacity: 0.34;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 58px 58px;
  -webkit-mask-image: linear-gradient(to bottom, #000, transparent 92%);
  mask-image: linear-gradient(to bottom, #000, transparent 92%);
}
.ferias-glow { position: absolute; z-index: -2; border-radius: 50%; filter: blur(70px); pointer-events: none; }
.ferias-glow--a { width: 480px; height: 480px; right: -160px; top: -120px; background: rgba(180, 240, 58, 0.15); }
.ferias-glow--b { width: 520px; height: 520px; left: -240px; bottom: -300px; background: rgba(17, 198, 166, 0.13); }
.ferias-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(460px, 1.08fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 6rem);
}
.ferias-hero__copy { min-width: 0; animation: ferias-rise 0.7s cubic-bezier(.22,.61,.36,1) both; }
.ferias-kicker,
.ferias-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--lime, #b4f03a);
  font-family: var(--font-ui, "Saira", sans-serif);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.ferias-kicker i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--lime, #b4f03a);
  box-shadow: 0 0 0 6px rgba(180, 240, 58, 0.12);
}
.ferias-hero h1 {
  max-width: 10.5ch;
  margin-top: 1.05rem;
  font-size: clamp(4rem, 5.4vw, 5.35rem);
  line-height: 0.84;
  letter-spacing: -0.035em;
  text-transform: uppercase;
}
.ferias-hero h1 span {
  display: block;
  color: transparent;
  background: linear-gradient(92deg, var(--lime, #b4f03a), var(--teal, #11c6a6));
  -webkit-background-clip: text;
  background-clip: text;
}
.ferias-hero__copy > p {
  max-width: 57ch;
  margin-top: 1.15rem;
  color: var(--text-2, #9aabb4);
  font-size: clamp(1.05rem, 1.8vw, 1.22rem);
  line-height: 1.55;
}
.ferias-hero__actions { display: flex; align-items: center; gap: 1.25rem; margin-top: 1.4rem; }
.ferias-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text, #eaf2f1);
  font-family: var(--font-ui, "Saira", sans-serif);
  font-size: 0.88rem;
  font-weight: 700;
}
.ferias-text-link:hover { color: var(--lime, #b4f03a); }
.ferias-text-link span { color: var(--lime, #b4f03a); }
.ferias-hero__trust { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.25rem; }
.ferias-hero__trust span {
  padding: 0.38rem 0.62rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.035);
  color: var(--text-2, #9aabb4);
  font-size: 0.74rem;
  font-weight: 600;
}

.ferias-hero__scene {
  position: relative;
  min-height: 520px;
  border: 1px solid rgba(180, 240, 58, 0.18);
  border-radius: 42px 42px 140px 42px;
  overflow: hidden;
  background:
    linear-gradient(155deg, rgba(255, 255, 255, 0.06), transparent 44%),
    linear-gradient(155deg, rgba(17, 198, 166, 0.17), rgba(8, 18, 17, 0.82));
  box-shadow: 0 40px 90px rgba(0, 0, 0, 0.38);
  animation: ferias-rise 0.78s 0.12s cubic-bezier(.22,.61,.36,1) both;
}
.ferias-sun {
  position: absolute;
  width: 320px;
  height: 320px;
  right: -80px;
  top: -80px;
  border-radius: 50%;
  background: radial-gradient(circle at 36% 36%, #d9ff83, #8eca2e 55%, #294d1d 100%);
  box-shadow: 0 0 80px rgba(180, 240, 58, 0.26);
  opacity: 0.72;
}
.ferias-court {
  position: absolute;
  inset: 110px -70px -100px 18%;
  border: 2px solid rgba(255, 255, 255, 0.34);
  transform: perspective(560px) rotateX(52deg) rotateZ(-9deg);
  transform-origin: center bottom;
}
.ferias-court__line { position: absolute; display: block; background: rgba(255, 255, 255, 0.34); }
.ferias-court__line--v { width: 2px; top: 0; bottom: 0; left: 50%; }
.ferias-court__line--h1 { height: 2px; left: 0; right: 0; top: 33%; }
.ferias-court__line--h2 { height: 2px; left: 0; right: 0; top: 67%; }
.ferias-ball {
  position: absolute;
  left: 16%;
  top: 15%;
  width: 138px;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  background: radial-gradient(circle at 32% 28%, #edff9a 0 7%, #b8ed42 28%, #76a928 78%, #43691b 100%);
  box-shadow: -18px 25px 48px rgba(0, 0, 0, 0.35), 0 0 50px rgba(180, 240, 58, 0.22);
  transform: rotate(-18deg);
}
.ferias-ball::before,
.ferias-ball::after {
  content: "";
  position: absolute;
  width: 88%;
  height: 72%;
  border: 4px solid rgba(255, 255, 255, 0.88);
  border-radius: 50%;
}
.ferias-ball::before { left: -65%; top: 12%; }
.ferias-ball::after { right: -65%; bottom: 12%; }
.ferias-scene-card {
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(8, 17, 23, 0.7);
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(16px);
}
.ferias-scene-card small { display: block; color: var(--text-3, #6f7c87); font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.ferias-scene-card strong { display: block; margin-top: 0.2rem; font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.35rem; line-height: 1; }
.ferias-scene-card--top { top: 8%; right: 7%; padding: 1rem 1.1rem; border-radius: 18px; }
.ferias-scene-card--bottom { left: 8%; right: 10%; bottom: 8%; display: flex; align-items: center; gap: 1rem; padding: 1rem 1.15rem; border-radius: 20px; }
.ferias-scene-card--bottom > span { color: var(--lime, #b4f03a); font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 2.5rem; font-weight: 800; line-height: 1; }
.ferias-scene-card--bottom strong { font-size: 1.05rem; line-height: 1.25; }

.ferias-proof { border-block: 1px solid rgba(255, 255, 255, 0.08); background: rgba(255, 255, 255, 0.025); }
.ferias-proof__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ferias-proof__grid > div { min-width: 0; padding: 1.25rem 1.4rem; border-right: 1px solid rgba(255, 255, 255, 0.07); }
.ferias-proof__grid > div:first-child { padding-left: 0; }
.ferias-proof__grid > div:last-child { border-right: 0; }
.ferias-proof strong { display: block; color: var(--lime, #b4f03a); font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.35rem; line-height: 1; }
.ferias-proof span { display: block; margin-top: 0.2rem; color: var(--text-3, #6f7c87); font-size: 0.76rem; line-height: 1.3; }

.ferias-section { position: relative; padding: clamp(5rem, 9vw, 8rem) 0; }
.ferias-section--split { background: linear-gradient(180deg, rgba(255, 255, 255, 0.018), rgba(17, 198, 166, 0.035)); }
.ferias-section__head { max-width: 760px; margin-inline: auto; text-align: center; }
.ferias-section__head--left { margin-inline: 0; text-align: left; }
.ferias-section h2,
.ferias-final h2 {
  margin-top: 0.75rem;
  font-size: clamp(2.7rem, 5.2vw, 4.6rem);
  line-height: 0.92;
  letter-spacing: -0.025em;
}
.ferias-section__head > p,
.ferias-profile-copy > p,
.ferias-method__copy > p,
.ferias-interest__copy > p {
  margin-top: 1rem;
  color: var(--text-2, #9aabb4);
  font-size: 1.04rem;
  line-height: 1.55;
}
.ferias-experience-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(320px, 0.9fr);
  align-items: end;
  gap: clamp(2rem, 6vw, 5rem);
  margin-bottom: 2rem;
}
.ferias-experience-board {
  display: grid;
  gap: 0.8rem;
  padding: 1.25rem 1.2rem 1.1rem;
  border: 1px solid rgba(180, 240, 58, 0.14);
  border-radius: 24px;
  background:
    radial-gradient(260px 120px at 100% 0%, rgba(17, 198, 166, 0.1), transparent 74%),
    radial-gradient(220px 120px at 0% 100%, rgba(180, 240, 58, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(24, 35, 45, 0.96), rgba(15, 23, 31, 0.92));
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.24);
}
.ferias-experience-board__eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: 0.24rem 0.54rem;
  border-radius: 999px;
  color: var(--lime, #b4f03a);
  background: rgba(180, 240, 58, 0.08);
  border: 1px solid rgba(180, 240, 58, 0.16);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.ferias-experience-board strong {
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);
  line-height: 0.96;
}
.ferias-experience-board__items {
  display: grid;
  gap: 0.6rem;
}
.ferias-experience-board__items div {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 0.7rem;
  align-items: start;
  padding: 0.75rem 0.8rem;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.03);
}
.ferias-experience-board__items b {
  color: var(--lime, #b4f03a);
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1.1rem;
  line-height: 1;
}
.ferias-experience-board__items span {
  color: var(--text-2, #9aabb4);
  line-height: 1.42;
}
.ferias-value-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2.6rem; }
.ferias-value-card {
  position: relative;
  min-height: 340px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  padding: 1.6rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 28px;
  background:
    radial-gradient(300px 220px at 86% 5%, rgba(17, 198, 166, 0.13), transparent 70%),
    rgba(255, 255, 255, 0.035);
  box-shadow: 0 20px 56px rgba(0, 0, 0, 0.22);
}
.ferias-value-card--lime { transform: translateY(1.5rem); background: radial-gradient(320px 220px at 80% 8%, rgba(180, 240, 58, 0.18), transparent 70%), rgba(255, 255, 255, 0.045); }
.ferias-value-card__n { position: absolute; left: 1.5rem; top: 1.3rem; color: var(--text-3, #6f7c87); font-family: var(--font-ui, "Saira", sans-serif); font-size: 0.72rem; font-weight: 700; }
.ferias-value-card__icon { position: absolute; right: 1.4rem; top: 1.2rem; width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid rgba(180, 240, 58, 0.22); border-radius: 18px; color: var(--lime, #b4f03a); background: rgba(180, 240, 58, 0.07); font-size: 1.5rem; }
.ferias-value-card__tag {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 0.65rem;
  padding: 0.24rem 0.56rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.05);
  color: var(--lime, #b4f03a);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ferias-value-card h3 { font-size: 2rem; }
.ferias-value-card p { margin-top: 0.65rem; color: var(--text-2, #9aabb4); line-height: 1.5; }

.ferias-profile-layout { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); align-items: start; gap: clamp(3rem, 8vw, 7rem); }
.ferias-profile-copy { position: sticky; top: 120px; }
.ferias-profile-copy .ferias-text-link { margin-top: 1.35rem; }
.ferias-profile-list { display: grid; gap: 0.75rem; }
.ferias-profile-list article {
  position: relative;
  overflow: hidden;
  padding: 1.35rem 1.4rem 1.35rem 9.4rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 20px;
  background:
    radial-gradient(240px 140px at 100% 0%, rgba(17, 198, 166, 0.1), transparent 72%),
    linear-gradient(180deg, rgba(24, 35, 45, 0.92), rgba(13, 21, 29, 0.88));
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.16);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.ferias-profile-list article::after {
  content: "";
  position: absolute;
  inset: auto -8% -28% 48%;
  height: 180px;
  background: radial-gradient(circle, rgba(180, 240, 58, 0.16), transparent 68%);
  transform: rotate(-8deg);
  pointer-events: none;
}
.ferias-profile-list article:hover {
  transform: translateY(-4px);
  border-color: rgba(180, 240, 58, 0.22);
  box-shadow: 0 24px 56px rgba(0, 0, 0, 0.22);
}
.ferias-profile-list article > span { position: absolute; left: 1.35rem; top: 1.55rem; color: var(--lime, #b4f03a); font-family: var(--font-ui, "Saira", sans-serif); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }
.ferias-profile-list h3 { font-size: 1.45rem; }
.ferias-profile-list p { margin-top: 0.35rem; color: var(--text-2, #9aabb4); line-height: 1.45; }

.ferias-method { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr); align-items: center; gap: clamp(3rem, 8vw, 7rem); }
.ferias-method__visual { position: relative; min-height: 520px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 42px; overflow: hidden; background: radial-gradient(circle at 50% 50%, rgba(17, 198, 166, 0.12), rgba(255, 255, 255, 0.025) 58%, transparent 59%); }
.ferias-method__core { position: relative; z-index: 2; width: 180px; aspect-ratio: 1; display: grid; place-content: center; text-align: center; border: 1px solid rgba(180, 240, 58, 0.32); border-radius: 50%; background: radial-gradient(circle, rgba(180, 240, 58, 0.17), rgba(8, 18, 22, 0.96) 68%); box-shadow: 0 0 70px rgba(180, 240, 58, 0.13); }
.ferias-method__core span { color: var(--lime, #b4f03a); font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 2.5rem; font-weight: 800; line-height: 0.8; }
.ferias-method__core strong { margin-top: 0.6rem; color: var(--text-2, #9aabb4); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.1em; }
.ferias-method__orbit { position: absolute; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 50%; }
.ferias-method__orbit--one { width: 320px; height: 320px; }
.ferias-method__orbit--two { width: 470px; height: 470px; border-style: dashed; }
.ferias-method__tag { position: absolute; z-index: 3; padding: 0.52rem 0.76rem; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 999px; background: rgba(8, 17, 23, 0.86); color: var(--text-2, #9aabb4); font-size: 0.73rem; font-weight: 700; }
.ferias-method__tag--a { left: 9%; top: 22%; }
.ferias-method__tag--b { right: 9%; top: 19%; }
.ferias-method__tag--c { right: 5%; bottom: 25%; }
.ferias-method__tag--d { left: 12%; bottom: 17%; }
.ferias-method__tag--e { left: 50%; top: 8%; transform: translateX(-50%); }
.ferias-method__copy h2 { max-width: 10ch; }
.ferias-method__copy ul { display: grid; gap: 0.7rem; margin-top: 1.5rem; }
.ferias-method__copy li { display: flex; align-items: flex-start; gap: 0.9rem; padding: 0.9rem 0; border-top: 1px solid rgba(255, 255, 255, 0.08); color: var(--text-2, #9aabb4); line-height: 1.45; }
.ferias-method__copy li i { flex: none; color: var(--lime, #b4f03a); font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.25rem; font-style: normal; font-weight: 800; }
.ferias-method__copy li b { display: block; color: var(--text, #eaf2f1); }

.ferias-quote { padding: clamp(4rem, 8vw, 7rem) 0; border-block: 1px solid rgba(255, 255, 255, 0.08); background: linear-gradient(120deg, rgba(17, 198, 166, 0.07), rgba(180, 240, 58, 0.05)); }
.ferias-quote__inner { position: relative; max-width: 920px; }
.ferias-quote__mark { position: absolute; left: -0.2rem; top: -2.2rem; color: rgba(180, 240, 58, 0.22); font-family: Georgia, serif; font-size: 8rem; line-height: 1; }
.ferias-quote blockquote { position: relative; max-width: 28ch; font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: clamp(2.2rem, 4.5vw, 4rem); font-weight: 700; line-height: 1.02; }
.ferias-quote cite { display: flex; gap: 0.55rem; margin-top: 1.25rem; color: var(--lime, #b4f03a); font-style: normal; font-weight: 700; }
.ferias-quote cite span { color: var(--text-3, #6f7c87); font-weight: 500; }

.ferias-interest { background: radial-gradient(650px 500px at 10% 35%, rgba(17, 198, 166, 0.1), transparent 70%); }
.ferias-interest__layout { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(500px, 1.18fr); align-items: start; gap: clamp(3rem, 8vw, 7rem); }
.ferias-interest__copy { position: sticky; top: 120px; }
.ferias-interest__copy h2 { max-width: 9ch; }
.ferias-interest__steps { display: grid; gap: 0.65rem; margin-top: 1.5rem; }
.ferias-interest__steps span { display: flex; align-items: center; gap: 0.75rem; color: var(--text-2, #9aabb4); }
.ferias-interest__steps b { width: 30px; height: 30px; display: grid; place-items: center; flex: none; border: 1px solid rgba(180, 240, 58, 0.24); border-radius: 50%; color: var(--lime, #b4f03a); font-size: 0.75rem; }
.ferias-interest__copy > small { display: block; margin-top: 1.1rem; color: var(--text-3, #6f7c87); }
.ferias-form { min-width: 0; padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid rgba(180, 240, 58, 0.16); border-radius: 30px; background: rgba(10, 20, 27, 0.86); box-shadow: 0 32px 80px rgba(0, 0, 0, 0.3); }
.ferias-form__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; padding-bottom: 1.2rem; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.ferias-form__head span { color: var(--lime, #b4f03a); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.ferias-form__head strong { font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.8rem; }
.ferias-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; margin-top: 1.2rem; }
.ferias-field { display: grid; gap: 0.4rem; min-width: 0; }
.ferias-field--full { grid-column: 1 / -1; }
.ferias-field > span,
.ferias-choice legend { color: var(--text-2, #9aabb4); font-family: var(--font-ui, "Saira", sans-serif); font-size: 0.75rem; font-weight: 700; }
.ferias-field input { width: 100%; min-width: 0; min-height: 48px; padding: 0.75rem 0.85rem; border: 1px solid rgba(255, 255, 255, 0.11); border-radius: 12px; background: rgba(255, 255, 255, 0.035); color: var(--text, #eaf2f1); font: inherit; outline: none; }
.ferias-field input:focus { border-color: rgba(180, 240, 58, 0.58); box-shadow: 0 0 0 3px rgba(180, 240, 58, 0.08); }
.ferias-field input::placeholder { color: var(--text-3, #6f7c87); }
.ferias-choice { min-width: 0; margin-top: 1.15rem; padding: 0; border: 0; }
.ferias-choice__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.45rem; margin-top: 0.55rem; }
.ferias-choice__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ferias-choice label { min-width: 0; cursor: pointer; }
.ferias-choice input { position: absolute; opacity: 0; pointer-events: none; }
.ferias-choice label span { min-height: 44px; display: grid; place-items: center; padding: 0.5rem; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 11px; color: var(--text-2, #9aabb4); background: rgba(255, 255, 255, 0.025); text-align: center; font-size: 0.74rem; font-weight: 700; line-height: 1.2; }
.ferias-choice input:checked + span { border-color: rgba(180, 240, 58, 0.54); color: var(--text, #eaf2f1); background: rgba(180, 240, 58, 0.1); }
.ferias-choice input:focus-visible + span { outline: 2px solid var(--lime, #b4f03a); outline-offset: 2px; }
.ferias-consent { display: flex; align-items: flex-start; gap: 0.65rem; margin: 1.2rem 0; color: var(--text-3, #6f7c87); font-size: 0.76rem; line-height: 1.4; cursor: pointer; }
.ferias-consent input { flex: none; width: 17px; height: 17px; margin-top: 0.08rem; accent-color: var(--lime, #b4f03a); }
.ferias-form__error { min-height: 1.25rem; margin-top: 0.65rem; color: #ff9a9a; font-size: 0.78rem; font-weight: 700; }
.ferias-result { margin-top: 1rem; padding: 1rem; border: 1px solid rgba(17, 198, 166, 0.28); border-radius: 16px; background: rgba(17, 198, 166, 0.075); outline: none; }
.ferias-result > span { color: var(--teal, #11c6a6); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.ferias-result > strong { display: block; margin-top: 0.15rem; font-family: var(--font-display, "Saira Condensed", sans-serif); font-size: 1.35rem; }
.ferias-result p { margin: 0.35rem 0 0.8rem; color: var(--text-2, #9aabb4); font-size: 0.82rem; }
.ferias-result small { display: block; margin-top: 0.5rem; color: var(--text-3, #6f7c87); font-size: 0.7rem; text-align: center; }

.ferias-faq { background: rgba(255, 255, 255, 0.018); }
.ferias-faq__layout { display: grid; grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr); align-items: start; gap: clamp(3rem, 8vw, 7rem); }
.ferias-faq__items { display: grid; }
.ferias-faq details { border-top: 1px solid rgba(255, 255, 255, 0.1); }
.ferias-faq details:last-child { border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.ferias-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 0; color: var(--text, #eaf2f1); font-family: var(--font-ui, "Saira", sans-serif); font-weight: 700; cursor: pointer; list-style: none; }
.ferias-faq summary::-webkit-details-marker { display: none; }
.ferias-faq summary::after { content: "+"; color: var(--lime, #b4f03a); font-size: 1.35rem; }
.ferias-faq details[open] summary::after { content: "−"; }
.ferias-faq details p { max-width: 62ch; padding: 0 0 1.2rem; color: var(--text-2, #9aabb4); line-height: 1.55; }
.ferias-final { position: relative; overflow: hidden; padding: clamp(5rem, 10vw, 9rem) 0; text-align: center; background: radial-gradient(600px 320px at 50% 100%, rgba(180, 240, 58, 0.16), transparent 70%), #081219; }
.ferias-final::before { content: ""; position: absolute; width: 440px; height: 440px; left: 50%; top: 50%; border: 1px solid rgba(180, 240, 58, 0.11); border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 0 80px rgba(180, 240, 58, 0.018), 0 0 0 160px rgba(180, 240, 58, 0.012); }
.ferias-final__inner { position: relative; }
.ferias-final__inner > span { color: var(--lime, #b4f03a); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.ferias-final h2 { max-width: 11ch; margin-inline: auto; }
.ferias-final .btn { margin-top: 1.6rem; }
.ferias-footer { padding: 2rem 0; border-top: 1px solid rgba(255, 255, 255, 0.08); background: #060d12; }
.ferias-footer__inner { display: flex; align-items: center; gap: 1.5rem; }
.ferias-footer p { color: var(--text-3, #6f7c87); font-size: 0.82rem; }
.ferias-footer__inner > div { display: flex; gap: 1rem; margin-left: auto; }
.ferias-footer__inner > div a { color: var(--text-2, #9aabb4); font-size: 0.78rem; }
.ferias-footer__inner > div a:hover { color: var(--lime, #b4f03a); }
.ferias-mobile-cta { display: none; }

@keyframes ferias-rise {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 980px) {
  .ferias-nav__links { display: none; }
  .ferias-hero { min-height: auto; }
  .ferias-hero__layout { grid-template-columns: 1fr; }
  .ferias-hero__copy { max-width: 720px; }
  .ferias-hero h1 { max-width: 9ch; }
  .ferias-hero__scene { min-height: 440px; }
  .ferias-experience-layout,
  .ferias-profile-layout,
  .ferias-method,
  .ferias-interest__layout,
  .ferias-faq__layout { grid-template-columns: 1fr; }
  .ferias-profile-copy,
  .ferias-interest__copy { position: static; }
  .ferias-method__visual { min-height: 480px; order: 2; }
  .ferias-method__copy { order: 1; }
  .ferias-interest__copy h2,
  .ferias-method__copy h2 { max-width: 12ch; }
}

@media (max-width: 720px) {
  .ferias-page { padding-bottom: 58px; }
  .ferias-shell { width: min(100% - 28px, 1180px); }
  .ferias-nav { min-height: 64px; }
  .ferias-nav__meta {
    padding-left: 0.75rem;
  }
  .ferias-nav__section { display: none; }
  .ferias-nav__cta { margin-left: auto; }
  .ferias-nav .brand img { width: 34px; height: 34px; }
  .ferias-nav .brand__name { font-size: 1.15rem; }
  .ferias-hero { padding: 3.6rem 0 3rem; }
  .ferias-hero h1 { font-size: clamp(3.5rem, 18vw, 5.4rem); }
  .ferias-hero__actions { align-items: stretch; flex-direction: column; }
  .ferias-hero__actions .btn { width: 100%; }
  .ferias-hero__scene { min-height: 370px; border-radius: 28px 28px 90px 28px; }
  .ferias-sun { width: 230px; height: 230px; }
  .ferias-ball { width: 104px; }
  .ferias-scene-card--top { right: 5%; max-width: 52%; }
  .ferias-scene-card--bottom { left: 5%; right: 5%; bottom: 6%; }
  .ferias-proof__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ferias-proof__grid > div { padding: 1rem; border-bottom: 1px solid rgba(255, 255, 255, 0.07); }
  .ferias-proof__grid > div:nth-child(2) { border-right: 0; }
  .ferias-proof__grid > div:first-child { padding-left: 1rem; }
  .ferias-proof__grid > div:nth-last-child(-n+2) { border-bottom: 0; }
  .ferias-value-grid { grid-template-columns: 1fr; }
  .ferias-value-card { min-height: 250px; }
  .ferias-value-card--lime { transform: none; }
  .ferias-experience-board { padding: 1rem; border-radius: 20px; }
  .ferias-profile-list article { padding: 4.1rem 1.1rem 1.15rem; }
  .ferias-profile-list article > span { left: 1.1rem; top: 1.2rem; }
  .ferias-method__visual { min-height: 400px; }
  .ferias-method__orbit--two { width: 360px; height: 360px; }
  .ferias-method__orbit--one { width: 250px; height: 250px; }
  .ferias-method__core { width: 145px; }
  .ferias-method__tag--a { left: 4%; }
  .ferias-method__tag--b { right: 4%; }
  .ferias-method__tag--c { right: 3%; }
  .ferias-method__tag--d { left: 4%; }
  .ferias-quote cite { align-items: flex-start; flex-direction: column; gap: 0.15rem; }
  .ferias-interest__layout { gap: 2.3rem; }
  .ferias-form { border-radius: 22px; }
  .ferias-form__head { align-items: flex-start; flex-direction: column; }
  .ferias-form__grid { grid-template-columns: 1fr; }
  .ferias-field--full { grid-column: auto; }
  .ferias-choice__grid,
  .ferias-choice__grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ferias-footer__inner { align-items: flex-start; flex-direction: column; }
  .ferias-footer__inner > div { flex-wrap: wrap; margin-left: 0; }
  .ferias-mobile-cta { position: fixed; z-index: 100; left: 10px; right: 10px; bottom: 8px; min-height: 48px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 999px; background: linear-gradient(90deg, var(--lime, #b4f03a), var(--teal, #11c6a6)); color: #071006; box-shadow: 0 14px 34px rgba(0, 0, 0, 0.45); font-family: var(--font-ui, "Saira", sans-serif); font-weight: 800; }
}

@media (max-width: 380px) {
  .ferias-nav__cta { padding-inline: 0.75rem; font-size: 0.72rem; }
  .ferias-hero__trust { display: grid; grid-template-columns: 1fr; }
  .ferias-scene-card--top { max-width: 60%; }
  .ferias-scene-card--bottom strong { font-size: 0.92rem; }
  .ferias-method__tag { padding: 0.4rem 0.56rem; font-size: 0.65rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ferias-hero__copy,
  .ferias-hero__scene { animation: none; }
  .ferias-page { scroll-behavior: auto; }
}

/* ===================================================================== */
/* HOME PUBLICA - leitura comercial e exemplos concretos (2026-06-29)    */
/* ===================================================================== */

/* Metodologia: um resumo do sistema no topo e uma unica trilha de bolas. */
.metodologia-panel__system {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: 0.45rem;
}
.metodologia-panel__system span {
  min-width: 0;
  padding: 0.62rem 0.58rem;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(7, 15, 20, 0.3);
  color: var(--text-2, #9aabb4);
  font-size: 0.7rem;
  line-height: 1.25;
}
.metodologia-panel__system b {
  display: block;
  margin-bottom: 0.14rem;
  color: var(--lime, #b4f03a);
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1.35rem;
  line-height: 1;
}
.metodologia-track {
  min-width: 0;
  padding: clamp(1rem, 2.2vw, 1.4rem);
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  background:
    radial-gradient(460px 180px at 12% 0%, rgba(180, 240, 58, 0.07), transparent 70%),
    radial-gradient(420px 180px at 100% 100%, rgba(17, 198, 166, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(24, 36, 47, 0.96), rgba(15, 24, 32, 0.94));
  box-shadow: 0 20px 52px rgba(0, 0, 0, 0.2);
}
.metodologia-track__rail {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.35rem;
}
.metodologia-track__rail::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 23px;
  left: 7%;
  right: 7%;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, #e8edf2, #9b6cf0, #ef4d4d, #f7882f, #34c759, #ffd400);
  opacity: 0.45;
}
.metodologia-track__node {
  position: relative;
  z-index: 1;
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 0.28rem;
  text-align: center;
}
.metodologia-track__node .ball-orb {
  width: 48px;
  height: 48px;
  margin-bottom: 0.2rem;
  box-shadow:
    inset 0 -3px 8px rgba(0, 0, 0, 0.35),
    0 0 0 5px color-mix(in srgb, var(--ball) 13%, transparent),
    0 9px 24px -8px color-mix(in srgb, var(--ball) 65%, transparent);
}
.metodologia-track__node b {
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1rem;
}
.metodologia-track__node > span:last-child {
  color: var(--text-3, #6f828c);
  font-size: 0.62rem;
  font-weight: 700;
  white-space: nowrap;
}
.metodologia-track__phases {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 1.2rem;
}
.metodologia-track__phases article {
  min-width: 0;
  padding: 0.85rem 0.88rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.025);
}
.metodologia-track__phases span {
  display: block;
  color: var(--lime, #b4f03a);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.metodologia-track__phases b {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.86rem;
}
.metodologia-track__phases p {
  margin: 0.3rem 0 0;
  color: var(--text-2, #9aabb4);
  font-size: 0.74rem;
  line-height: 1.4;
}
.metodologia-track__note {
  margin: 0.9rem 0 0;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--text-2, #9aabb4);
  font-size: 0.78rem;
  line-height: 1.45;
}

/* Plataforma: recortes de interface no lugar de cards apenas textuais. */
.platform-inside {
  margin-top: clamp(2.2rem, 4vw, 3.6rem);
}
.platform-inside__intro {
  display: grid;
  gap: 0.55rem;
  max-width: 60rem;
  margin-bottom: 1.3rem;
}
.platform-inside__intro h3 {
  margin: 0;
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: clamp(1.8rem, 3.4vw, 2.7rem);
  line-height: 1;
}
.platform-inside__intro p {
  margin: 0;
  max-width: 66ch;
  color: var(--text-2, #9aabb4);
  line-height: 1.55;
}
.platform-screens {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, 0.82fr);
  gap: 1rem;
}
.platform-screen {
  min-width: 0;
  padding: 1rem;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background:
    radial-gradient(260px 140px at 100% 0%, rgba(17, 198, 166, 0.08), transparent 72%),
    linear-gradient(180deg, rgba(24, 36, 47, 0.98), rgba(15, 24, 32, 0.96));
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.2);
}
.platform-screen--feed {
  grid-row: span 2;
}
.platform-screen__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.8rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.platform-screen__head div {
  min-width: 0;
}
.platform-screen__head span,
.platform-screen__head b {
  display: block;
}
.platform-screen__head span {
  color: var(--lime, #b4f03a);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.platform-screen__head b {
  margin-top: 0.16rem;
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1.25rem;
}
.platform-screen__head small {
  flex: none;
  color: var(--text-3, #6f828c);
  font-size: 0.66rem;
}
.platform-post {
  margin-top: 0.9rem;
}
.platform-post__author {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.platform-post__avatar {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 50%;
  background: var(--grad-brand, linear-gradient(135deg, #b4f03a, #11c6a6));
  color: #07140f;
  font-size: 0.72rem;
  font-weight: 900;
}
.platform-post__author b,
.platform-post__author small {
  display: block;
}
.platform-post__author small {
  margin-top: 0.08rem;
  color: var(--text-3, #6f828c);
  font-size: 0.7rem;
}
.platform-post > p {
  margin: 0.8rem 0;
  color: var(--text-2, #9aabb4);
  font-size: 0.9rem;
  line-height: 1.5;
}
.platform-post__photo {
  min-height: 190px;
  display: grid;
  align-content: end;
  gap: 0.18rem;
  padding: 1rem;
  overflow: hidden;
  position: relative;
  border-radius: 16px;
  border: 1px dashed rgba(180, 240, 58, 0.28);
  background:
    linear-gradient(180deg, transparent 28%, rgba(5, 12, 17, 0.84) 100%),
    radial-gradient(circle at 72% 24%, rgba(180, 240, 58, 0.18), transparent 18%),
    repeating-linear-gradient(128deg, rgba(255,255,255,0.035) 0 12px, transparent 12px 24px),
    #17242d;
}
.platform-post__photo::before {
  content: "";
  position: absolute;
  width: 170px;
  height: 170px;
  right: -35px;
  top: -58px;
  border: 2px solid rgba(180, 240, 58, 0.16);
  border-radius: 50%;
}
.platform-post__photo span,
.platform-post__photo b,
.platform-post__photo small {
  position: relative;
  z-index: 1;
}
.platform-post__photo span {
  color: var(--lime, #b4f03a);
  font-size: 0.61rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}
.platform-post__photo b {
  font-size: 0.94rem;
}
.platform-post__photo small {
  max-width: 48ch;
  color: var(--text-2, #9aabb4);
  font-size: 0.7rem;
  line-height: 1.35;
}
.platform-post__reactions,
.platform-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.75rem;
}
.platform-post__reactions span,
.platform-badges span {
  padding: 0.34rem 0.58rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.035);
  color: var(--text-2, #9aabb4);
  font-size: 0.7rem;
}
.platform-challenge {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.7rem;
  margin-top: 1rem;
}
.platform-challenge__icon,
.platform-achievement__medal {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 14px;
  background: rgba(180, 240, 58, 0.1);
  border: 1px solid rgba(180, 240, 58, 0.16);
}
.platform-challenge b,
.platform-achievement b {
  display: block;
  font-size: 0.88rem;
}
.platform-challenge p,
.platform-achievement p {
  margin: 0.2rem 0 0;
  color: var(--text-2, #9aabb4);
  font-size: 0.72rem;
  line-height: 1.35;
}
.platform-challenge > strong {
  color: var(--lime, #b4f03a);
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1.35rem;
}
.platform-progress {
  height: 8px;
  margin-top: 0.8rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}
.platform-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--grad-brand, linear-gradient(90deg, #b4f03a, #11c6a6));
}
.platform-screen__status {
  display: flex;
  justify-content: space-between;
  gap: 0.7rem;
  margin-top: 0.55rem;
  color: var(--text-3, #6f828c);
  font-size: 0.68rem;
}
.platform-screen__status b {
  color: var(--text-2, #9aabb4);
}
.platform-achievement {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1rem;
}
.platform-achievement small {
  color: var(--teal, #11c6a6);
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
}
.platform-inside__note {
  margin: 0.85rem 0 0;
  color: var(--text-3, #6f828c);
  font-size: 0.72rem;
  line-height: 1.4;
}

/* Locais: leitura cartografica imediata, sem prometer enderecos fixos. */
.locais-map {
  min-width: 0;
  min-height: 500px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
  border-radius: 28px;
  border: 1px solid rgba(180, 240, 58, 0.16);
  background:
    radial-gradient(360px 240px at 86% 14%, rgba(17, 198, 166, 0.14), transparent 72%),
    linear-gradient(160deg, rgba(24, 37, 47, 0.98), rgba(10, 18, 24, 0.98));
  box-shadow: 0 26px 64px rgba(0, 0, 0, 0.25);
}
.locais-map__head {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 0.16rem;
  padding: 1.25rem 1.35rem 0.8rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.locais-map__head span {
  color: var(--lime, #b4f03a);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.locais-map__head strong {
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1;
}
.locais-map__head small {
  color: var(--text-2, #9aabb4);
  font-size: 0.75rem;
}
.locais-map__canvas {
  position: relative;
  min-height: 315px;
  overflow: hidden;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 36px 36px;
}
.locais-map__canvas svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.locais-map__street {
  fill: none;
  stroke: rgba(151, 177, 187, 0.16);
  stroke-width: 8;
  stroke-linecap: round;
}
.locais-map__street--wide {
  stroke-width: 14;
  stroke: rgba(151, 177, 187, 0.12);
}
.locais-map__street--soft {
  stroke-width: 4;
  stroke-dasharray: 10 14;
}
.locais-map__route {
  fill: none;
  stroke: var(--teal, #11c6a6);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 7 9;
  opacity: 0.6;
}
.locais-map__district {
  position: absolute;
  color: rgba(154, 171, 180, 0.46);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.locais-map__district--a { left: 9%; top: 22%; }
.locais-map__district--b { left: 44%; top: 56%; }
.locais-map__district--c { right: 8%; bottom: 13%; }
.locais-pin {
  position: absolute;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: 0.35rem;
}
.locais-pin--a { left: 17%; top: 54%; }
.locais-pin--b { left: 46%; top: 25%; }
.locais-pin--c { right: 13%; top: 48%; }
.locais-pin span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50% 50% 50% 8px;
  transform: rotate(-45deg);
  border: 2px solid rgba(7, 16, 22, 0.72);
  background: var(--grad-brand, linear-gradient(135deg, #b4f03a, #11c6a6));
  color: transparent;
  box-shadow: 0 8px 28px rgba(17, 198, 166, 0.3), 0 0 0 7px rgba(180, 240, 58, 0.08);
}
.locais-pin span::after {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #071016;
}
.locais-pin b {
  padding: 0.3rem 0.5rem;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  background: rgba(7, 15, 20, 0.84);
  color: var(--text, #eaf2f1);
  font-size: 0.68rem;
  white-space: nowrap;
}
.locais-map__legend {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1.1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(5, 12, 17, 0.38);
}
.locais-map__legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex: none;
  color: var(--text-3, #6f828c);
  font-size: 0.68rem;
}
.locais-map__legend i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--lime, #b4f03a);
}
.locais-map__legend b {
  max-width: 36ch;
  color: var(--text-2, #9aabb4);
  font-size: 0.7rem;
  line-height: 1.35;
  text-align: right;
}

/* B2B: sequencia de passos com verbo, titulo e explicacao separados. */
.b2b-steps {
  margin-top: 2.2rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(7, 15, 20, 0.24);
}
.b2b-steps__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.b2b-steps__heading .eyebrow {
  margin: 0;
}
.b2b-steps__heading h3 {
  margin: 0;
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: clamp(1.45rem, 2.6vw, 2rem);
  line-height: 1;
  text-align: right;
}
.b2b-steps__row {
  list-style: none;
  margin: 0;
  padding: 0;
}
.b2b-step {
  min-width: 0;
  min-height: 190px;
  padding: 1.15rem;
  border-color: rgba(255, 255, 255, 0.11);
}
.b2b-step:not(:last-child)::after {
  content: "→";
  position: absolute;
  z-index: 3;
  top: 50%;
  right: -1.34rem;
  width: 1.7rem;
  height: 1.7rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(180, 240, 58, 0.25);
  background: #0d171e;
  color: var(--lime, #b4f03a);
  font-weight: 900;
  transform: translateY(-50%);
}
.b2b-step__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  margin-bottom: 0.9rem;
}
.b2b-step .b2b-step__n {
  width: 42px;
  height: 42px;
  margin: 0;
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1rem;
}
.b2b-step .b2b-step__verb {
  color: var(--teal, #11c6a6);
  font-size: 0.64rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.b2b-step > b {
  margin: 0;
  font-family: var(--font-display, "Saira Condensed", sans-serif);
  font-size: 1.2rem;
  line-height: 1.05;
}
.b2b-step p {
  margin: 0.55rem 0 0;
  color: var(--text-2, #9aabb4);
  font-size: 0.84rem;
  line-height: 1.5;
}

/* Noticias: abertura horizontal, sem painel de agenda duplicado. */
.noticias-head {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  align-items: end;
  gap: clamp(1.4rem, 4vw, 4rem);
  padding-bottom: 1.3rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.noticias-head__title .section-title {
  max-width: none;
  white-space: nowrap;
}
.noticias-head__body .section-lead {
  max-width: 62ch;
  margin: 0;
}
.noticias-head__body .noticias-signals {
  margin-top: 0.9rem;
}

@media (min-width: 980px) {
  .metodologia-trilha {
    grid-template-columns: minmax(260px, 0.68fr) minmax(0, 1.32fr);
  }
  .locais-map {
    order: 2;
  }
}

@media (max-width: 820px) {
  .platform-screens {
    grid-template-columns: 1fr;
  }
  .platform-screen--feed {
    grid-row: auto;
  }
  .locais-map {
    min-height: 460px;
  }
  .b2b-steps__heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .b2b-steps__heading h3 {
    text-align: left;
  }
  .b2b-step:not(:last-child)::after {
    display: none;
  }
  .noticias-head {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 0.8rem;
  }
  .noticias-head__title .section-title {
    white-space: normal;
  }
}

@media (max-width: 640px) {
  .metodologia-panel__system {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .metodologia-panel__system span {
    padding: 0.55rem 0.45rem;
    font-size: 0.62rem;
  }
  .metodologia-track__rail {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem 0.45rem;
  }
  .metodologia-track__rail::before {
    display: none;
  }
  .metodologia-track__phases {
    grid-template-columns: 1fr;
  }
  .metodologia-track__phases article {
    padding: 0.75rem 0.8rem;
  }
  .platform-inside__intro h3 {
    font-size: 2rem;
  }
  .platform-screen {
    padding: 0.85rem;
    border-radius: 18px;
  }
  .platform-screen__head small {
    display: none;
  }
  .platform-post__photo {
    min-height: 170px;
  }
  .platform-challenge {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .platform-challenge > strong {
    grid-column: 2;
  }
  .locais-map {
    min-height: 430px;
    border-radius: 22px;
  }
  .locais-showcase {
    display: flex;
    flex-direction: column;
  }
  .locais-showcase__copy {
    display: contents;
  }
  .locais-showcase__copy > .eyebrow { order: 1; }
  .locais-showcase__copy > .section-title { order: 2; }
  .locais-showcase__copy > .section-lead { order: 3; }
  .locais-showcase__copy > .locais-signals { display: none; }
  .locais-map { order: 4; }
  .locais-grid { order: 5; }
  .locais-cta { order: 6; }
  .locais-map__head {
    padding: 1rem 1rem 0.75rem;
  }
  .locais-map__canvas {
    min-height: 270px;
  }
  .locais-pin--a { left: 10%; }
  .locais-pin--b { left: 43%; }
  .locais-pin--c { right: 6%; }
  .locais-pin b {
    font-size: 0.6rem;
  }
  .locais-map__legend {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.75rem 0.9rem;
  }
  .locais-map__legend b {
    text-align: left;
  }
  .b2b-steps {
    padding: 0.85rem;
    border-radius: 20px;
  }
  .b2b {
    padding: 0.9rem;
    border-radius: 22px;
  }
  .b2b-step {
    min-height: auto;
  }
  .noticias-head {
    padding-bottom: 1rem;
  }
  .noticias-head__body .noticias-signals {
    gap: 0.45rem;
  }
  .noticias-head__body .noticias-signals span {
    min-height: 34px;
    padding: 0.38rem 0.62rem;
    font-size: 0.72rem;
  }
}
