/* VidalRun v2 — telemetria de corrida: escuro, preciso, humano.
   Cores do logotipo; o ciano vira a "luz" dos instrumentos. */
:root {
  --vacuo: #030A26;
  --noite: #06103D;
  --pista: #0B2A94;
  --ciano: #1ECBF5;
  --sinal: #F2EC1D;
  --gelo: #EAF4FB;
  --branco: #FFFFFF;
  --claro: #DCE6F7;
  --claro-2: #93A4CC;
  --texto: #0A1433;
  --texto-2: #46506C;
  --fio: rgba(30, 203, 245, .22);
  --fio-forte: rgba(30, 203, 245, .5);
  --fio-escuro: rgba(10, 20, 51, .14);
  --vidro: rgba(6, 16, 61, .62);

  --fonte: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --largura: 1240px;
  --margem: clamp(20px, 5vw, 56px);
  --ritmo: clamp(96px, 13vw, 176px);
  --topo-altura: 64px;
  --curva: cubic-bezier(.2, .7, .1, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--topo-altura) + env(safe-area-inset-top, 0px)); background: var(--vacuo); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0; font-family: var(--fonte); font-stretch: 100%;
  font-size: clamp(1rem, .96rem + .2vw, 1.0625rem); line-height: 1.65;
  color: var(--claro); background: var(--vacuo);
  overflow-x: hidden; -webkit-font-smoothing: antialiased;
}
[hidden] { display: none !important; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, p, figure, blockquote, dl, dd, ol, ul { margin: 0; }
ul, ol { padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--ciano); outline-offset: 3px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--sinal); color: var(--noite); padding: 10px 14px; font-weight: 700; }
.skip:focus { top: calc(12px + env(safe-area-inset-top, 0px)); }
.envoltorio { width: 100%; max-width: var(--largura); margin-inline: auto; padding-inline: var(--margem); }

/* Tipografia: títulos largos e precisos; dados em números tabulares */
.display {
  font-stretch: 125%; font-weight: 800; text-transform: uppercase;
  line-height: .98; letter-spacing: -.025em; text-wrap: balance; overflow-wrap: normal; word-break: normal; hyphens: none;
}
.dado { font-stretch: 112%; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.titulo-secao { font-size: clamp(1.9rem, 1.1rem + 2.6vw, 3.4rem); max-width: 20ch; color: var(--branco); font-stretch: 118%; }
.lead { font-size: clamp(1.125rem, 1.02rem + .45vw, 1.35rem); line-height: 1.55; color: var(--claro-2); max-width: 40ch; }
.subtitulo { font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem); font-weight: 700; font-stretch: 112%; line-height: 1.15; color: var(--branco); }
.secao { padding-block: var(--ritmo); position: relative; }
.cabeca { display: grid; gap: 24px; margin-bottom: clamp(44px, 6vw, 80px); }
.cabeca > * { min-width: 0; }
@media (min-width: 900px) { .cabeca { grid-template-columns: 1.7fr 1fr; align-items: end; } }

/* Botões */
.botao {
  --b-fundo: transparent; --b-cor: inherit; --b-borda: currentColor;
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: .85em 1.6em;
  font: inherit; font-weight: 700; font-stretch: 112%; font-size: .9375rem; letter-spacing: .01em;
  text-decoration: none; text-align: center;
  color: var(--b-cor); background: var(--b-fundo); border: 1px solid var(--b-borda); border-radius: 4px;
  cursor: pointer; transition: background-color .2s, color .2s, box-shadow .3s var(--curva), transform .2s var(--curva);
}
.botao--sinal { --b-fundo: var(--sinal); --b-cor: var(--noite); --b-borda: var(--sinal); }
.botao--sinal:hover { box-shadow: 0 0 0 4px rgba(242, 236, 29, .18), 0 10px 40px -10px rgba(242, 236, 29, .6); transform: translateY(-1px); }
.botao--contorno { --b-cor: var(--branco); --b-borda: var(--fio-forte); }
.botao--contorno:hover { --b-fundo: rgba(30, 203, 245, .1); --b-borda: var(--ciano); }
.botao:active { transform: translateY(1px); }
.botao--grande { font-size: 1.0625rem; min-height: 60px; padding-inline: 2em; }
.link-claro { color: var(--branco); font-weight: 600; text-underline-offset: 5px; text-decoration-thickness: 1px; text-decoration-color: var(--fio-forte); }
.link-claro:hover { text-decoration-color: var(--ciano); }

/* Moldura de instrumento: cantos em colchete, a assinatura visual das fotos */
.moldura { position: relative; }
.moldura::before, .moldura::after {
  content: ""; position: absolute; width: 22px; height: 22px; z-index: 1; pointer-events: none;
  border: 0 solid var(--ciano);
}
.moldura::before { top: -8px; left: -8px; border-top-width: 2px; border-left-width: 2px; }
.moldura::after { top: -8px; right: -8px; border-top-width: 2px; border-right-width: 2px; }
.moldura img { width: 100%; }
.moldura figcaption {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px;
  margin-top: 12px; font-size: .8125rem; color: var(--claro-2);
}
.moldura figcaption span:first-child { color: var(--claro); font-weight: 600; }
.moldura--clara figcaption { color: var(--texto-2); }
.moldura--clara figcaption span:first-child { color: var(--texto); }
.moldura--clara::before, .moldura--clara::after { border-color: var(--pista); }

/* Topo em vidro */
.topo {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  padding-top: env(safe-area-inset-top, 0px); color: var(--branco);
  transition: background-color .3s, border-color .3s;
  border-bottom: 1px solid transparent;
}
.topo::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .3s; background: var(--vidro); backdrop-filter: blur(16px) saturate(140%); -webkit-backdrop-filter: blur(16px) saturate(140%); }
.topo.is-solido::before { opacity: 1; }
.topo.is-solido { border-bottom-color: var(--fio); }
.topo__barra { height: var(--topo-altura); display: flex; align-items: center; gap: 20px; max-width: var(--largura); margin-inline: auto; padding-inline: var(--margem); }
.marca { text-decoration: none; font-style: italic; font-stretch: 62%; font-weight: 900; font-size: 1.75rem; text-transform: uppercase; letter-spacing: .01em; line-height: 1; }
.marca__vidal { color: var(--sinal); }
.marca__run { color: var(--ciano); }
.percurso { margin-right: auto; white-space: nowrap; font-size: .8125rem; font-variant-numeric: tabular-nums; font-stretch: 112%; }
.percurso__valor { color: var(--ciano); font-weight: 700; }
.percurso__total { color: var(--claro-2); }
.menu { display: flex; align-items: center; gap: 28px; }
.menu ul { display: flex; gap: 24px; }
.menu a:not(.botao) { text-decoration: none; font-weight: 500; font-size: .9375rem; color: var(--claro); }
.menu a:not(.botao):hover { color: var(--ciano); }
.menu__cta { min-height: 42px; padding: .5em 1.1em; font-size: .875rem; }
.menu-toggle { display: none; }
.progresso { height: 2px; }
.progresso span { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--ciano), var(--sinal)); transform-origin: left; transform: scaleX(0); box-shadow: 0 0 12px var(--ciano); }

@media (max-width: 1040px) {
  .menu-toggle { display: grid; place-items: center; width: 48px; height: 48px; margin-right: -10px; background: none; border: 0; color: inherit; cursor: pointer; }
  .menu-toggle__linhas, .menu-toggle__linhas::before, .menu-toggle__linhas::after { content: ""; display: block; width: 22px; height: 2px; background: currentColor; transition: transform .25s var(--curva); }
  .menu-toggle__linhas { position: relative; }
  .menu-toggle__linhas::before { position: absolute; top: -7px; }
  .menu-toggle__linhas::after { position: absolute; top: 7px; }
  .menu-toggle[aria-expanded="true"] .menu-toggle__linhas { background: transparent; }
  .menu-toggle[aria-expanded="true"] .menu-toggle__linhas::before { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle__linhas::after { transform: translateY(-7px) rotate(-45deg); }
  .menu {
    position: fixed; inset: calc(var(--topo-altura) + env(safe-area-inset-top, 0px)) 0 0 0;
    flex-direction: column; align-items: stretch; justify-content: space-between; gap: 32px;
    padding: 16px var(--margem) calc(32px + env(safe-area-inset-bottom, 0px));
    background: var(--vacuo); overflow-y: auto;
    visibility: hidden; opacity: 0; transition: opacity .25s, visibility 0s .25s;
  }
  .menu.is-aberto { visibility: visible; opacity: 1; transition: opacity .25s; }
  .menu ul { flex-direction: column; gap: 0; }
  .menu a:not(.botao) { display: block; padding: 18px 0; border-bottom: 1px solid var(--fio); font-stretch: 125%; font-weight: 800; text-transform: uppercase; font-size: 1.5rem; letter-spacing: -.02em; line-height: 1; color: var(--branco); }
  .menu__cta { min-height: 56px; font-size: 1rem; }
  body.menu-aberto { overflow: hidden; }
  body.menu-aberto .topo { background: var(--vacuo); }
  .percurso__total { display: none; }
}

/* Hero */
.hero {
  position: relative; min-height: 100svh; display: grid; grid-template-rows: 1fr auto;
  color: var(--branco); background: var(--vacuo); overflow: hidden; isolation: isolate;
}
.hero__midia { position: absolute; inset: 0; z-index: -3; background: var(--pista); }
.hero__foto { width: 100%; height: 100%; object-fit: cover; object-position: 42% 38%; filter: grayscale(1) contrast(1.15) brightness(.95); mix-blend-mode: luminosity; opacity: .6; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background:
    linear-gradient(180deg, rgba(3,10,38,.7) 0%, rgba(3,10,38,.15) 30%, rgba(3,10,38,.55) 62%, var(--vacuo) 100%),
    radial-gradient(120% 80% at 85% 20%, rgba(30,203,245,.22), transparent 60%);
}
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(var(--fio) 1px, transparent 1px), linear-gradient(90deg, var(--fio) 1px, transparent 1px);
  background-size: 72px 72px; opacity: .35;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 40%, #000 70%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 40%, #000 70%, transparent 100%);
}
.hero__rota { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.hero__rota path { fill: none; stroke: var(--ciano); stroke-width: 2; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 6px var(--ciano)); stroke-dasharray: 1; stroke-dashoffset: 0; opacity: .85; }
.hero__conteudo { align-self: end; width: 100%; max-width: var(--largura); margin-inline: auto; padding: calc(var(--topo-altura) + 72px) var(--margem) 48px; }
.hero__sobre { font-size: .875rem; color: var(--ciano); font-weight: 600; margin-bottom: 20px; }
.hero__titulo { font-size: clamp(2.4rem, 1.2rem + 5.4vw, 6rem); max-width: 13ch; }
.hero__texto { margin-top: 28px; max-width: 48ch; font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem); line-height: 1.55; color: var(--claro); }
.hero__acoes { margin-top: 36px; display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }

.hud {
  width: 100%; max-width: var(--largura); margin-inline: auto; padding: 0 var(--margem) clamp(24px, 4vh, 40px);
  display: grid; grid-template-columns: repeat(3, 1fr);
}
.hud > div { padding: 16px 20px 4px 0; border-top: 1px solid var(--fio-forte); position: relative; }
.hud > div::before { content: ""; position: absolute; top: -3px; left: 0; width: 5px; height: 5px; background: var(--ciano); box-shadow: 0 0 10px var(--ciano); }
.hud dt { font-size: .75rem; color: var(--claro-2); }
.hud dd { margin-top: 4px; font-size: .9375rem; font-weight: 600; color: var(--branco); }
.hud dd.dado { color: var(--sinal); font-size: 1.0625rem; }
@media (max-width: 760px) {
  .hud { grid-template-columns: 1fr 1fr; row-gap: 4px; }
  .hud > div:last-child { grid-column: 1 / -1; }
  .hud > div { padding-right: 12px; }
}

/* Sequência de largada: a rota se desenha, o texto entra uma vez */
@media (prefers-reduced-motion: no-preference) {
  .js .hero__rota path { stroke-dashoffset: 1; }
  .js .hero__conteudo > *, .js .hud { opacity: 0; transform: translateY(14px); }
  .js .hero.is-largada .hero__rota path { stroke-dashoffset: 0; transition: stroke-dashoffset 2.4s .1s cubic-bezier(.45,.05,.2,1); }
  .js .hero.is-largada .hero__conteudo > * { opacity: 1; transform: none; transition: opacity .8s, transform .8s var(--curva); }
  .js .hero.is-largada .hero__titulo { transition-delay: .12s; }
  .js .hero.is-largada .hero__texto { transition-delay: .3s; }
  .js .hero.is-largada .hero__acoes { transition-delay: .42s; }
  .js .hero.is-largada .hud { opacity: 1; transform: none; transition: opacity .8s .7s, transform .8s .7s var(--curva); }
}

/* Distâncias */
.distancias { background: var(--vacuo); }
.escada { border-top: 1px solid var(--fio-forte); }
.escada li {
  position: relative; display: grid; grid-template-columns: minmax(8ch, 1fr) 2fr; gap: 8px 32px; align-items: baseline;
  padding: clamp(18px, 2.4vw, 28px) 4px; border-bottom: 1px solid var(--fio);
  transition: background-color .3s, padding .35s var(--curva);
}
.escada__marca { font-size: clamp(1.75rem, 1.2rem + 2.4vw, 3.2rem); color: var(--branco); line-height: 1; transition: color .3s; }
.escada p { color: var(--claro-2); max-width: 46ch; transition: color .3s; }
@media (hover: hover) {
  .escada li:hover { background: linear-gradient(90deg, rgba(30,203,245,.12), transparent 70%); padding-left: 24px; }
  .escada li:hover .escada__marca { color: var(--ciano); }
  .escada li:hover p { color: var(--claro); }
}
@media (max-width: 560px) { .escada li { grid-template-columns: 1fr; gap: 6px; } }

/* História do Vidal */
.historia-vidal { background: linear-gradient(180deg, var(--vacuo), var(--noite) 18%, var(--noite) 82%, var(--vacuo)); padding-block: var(--ritmo); }
.hv__abertura { display: grid; gap: 28px; margin-bottom: clamp(56px, 8vw, 112px); }
.hv__abertura > * { min-width: 0; }
@media (min-width: 1040px) { .hv__abertura { grid-template-columns: 1.5fr 1fr; align-items: end; } }
.hv__titulo { font-size: clamp(2.2rem, 1rem + 3.3vw, 4.4rem); max-width: 18ch; color: var(--branco); }
.hv__abertura .lead { font-size: clamp(1.1875rem, 1.05rem + .6vw, 1.5rem); color: var(--claro); max-width: 44ch; }
.hv__grade { display: grid; gap: 56px; }
.hv__grade > * { min-width: 0; }
@media (min-width: 1040px) {
  .hv__grade { grid-template-columns: minmax(300px, 4fr) 7fr; gap: clamp(56px, 7vw, 120px); align-items: start; }
  .hv__lateral { position: sticky; top: calc(var(--topo-altura) + 32px); }
}
.hv__retrato img { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 28%; }
@media (min-width: 1040px) { .hv__retrato img { max-height: 46vh; } }

.linha-tempo { margin-top: 48px; }
.linha-tempo ol { position: relative; border-left: 1px solid var(--fio); }
.linha-tempo ol::before {
  content: ""; position: absolute; left: -1px; top: 0; width: 1px; height: calc(var(--progresso-cap, 0) * 100%);
  background: var(--ciano); box-shadow: 0 0 8px var(--ciano); transition: height .5s var(--curva);
}
.linha-tempo a {
  position: relative; display: grid; grid-template-columns: 7.5em 1fr; gap: 12px; align-items: baseline;
  padding: 7px 0 7px 20px; text-decoration: none; font-size: .875rem; color: var(--claro-2); transition: color .25s;
}
.linha-tempo a::before {
  content: ""; position: absolute; left: -4px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px;
  border: 1px solid var(--fio-forte); background: var(--noite); transition: background-color .25s, box-shadow .25s, border-color .25s;
}
.linha-tempo .dado { font-size: .8125rem; color: inherit; }
.linha-tempo a:hover { color: var(--branco); }
.linha-tempo a.is-lido::before { background: var(--ciano); border-color: var(--ciano); }
.linha-tempo a.is-ativo { color: var(--branco); }
.linha-tempo a.is-ativo::before { background: var(--sinal); border-color: var(--sinal); box-shadow: 0 0 12px var(--sinal); }
@media (max-width: 1039px) { .linha-tempo { display: none; } }

.capitulo { padding-block: clamp(40px, 5vw, 64px); border-top: 1px solid var(--fio); }
.capitulo:first-child { padding-top: 0; border-top: 0; }
.capitulo > * + * { margin-top: 1.15em; }
.capitulo__num { font-size: .875rem; font-weight: 600; color: var(--ciano); }
.capitulo__titulo { margin-top: .4em !important; font-size: clamp(1.625rem, 1.2rem + 1.8vw, 2.6rem); font-weight: 800; font-stretch: 118%; line-height: 1.08; letter-spacing: -.02em; color: var(--branco); max-width: 22ch; text-wrap: balance; }
.capitulo p:not(.capitulo__num):not(.placeholder-nota) { color: var(--claro); max-width: 62ch; font-size: clamp(1.0625rem, 1rem + .2vw, 1.1875rem); line-height: 1.75; }
.capitulo__destaque { font-stretch: 118%; font-weight: 700; font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem) !important; line-height: 1.3 !important; color: var(--sinal) !important; }
.capitulo .botao { margin-top: 2em; }

.painel-dados {
  display: grid; grid-template-columns: repeat(2, 1fr); margin-block: 2em !important;
  border: 1px solid var(--fio); background: rgba(3, 10, 38, .45);
}
.painel-dados--tres { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.painel-dados > div { min-width: 0; padding: 20px 22px; border-right: 1px solid var(--fio); box-shadow: 0 1px 0 var(--fio); }
.painel-dados > div:last-child { border-right: 0; }
.painel-dados dt { font-size: .8125rem; color: var(--claro-2); }
.painel-dados dd { margin-top: 6px; font-size: clamp(1.3rem, 1.05rem + .9vw, 1.75rem); font-stretch: 100%; color: var(--ciano); line-height: 1.1; }
@media (max-width: 620px) {
  .painel-dados--tres { grid-template-columns: 1fr; }
  .painel-dados--tres > div { border-right: 0; border-bottom: 1px solid var(--fio); }
  .painel-dados--tres > div:last-child { border-bottom: 0; }
}
.capitulo__fotos { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; align-items: start; margin-block: 2.5em !important; }
.capitulo__fotos .moldura:first-child img { aspect-ratio: 1; object-fit: cover; }
.capitulo__fotos .moldura:last-child { margin-top: 48px; }
.capitulo__fotos .moldura:last-child img { aspect-ratio: 3 / 4; object-fit: cover; }
@media (max-width: 560px) { .capitulo__fotos { grid-template-columns: 1fr; } .capitulo__fotos .moldura:last-child { margin-top: 0; } }

.citacao { margin-block: 2.2em !important; padding: 28px 0 28px 28px; border-left: 2px solid var(--sinal); background: linear-gradient(90deg, rgba(242,236,29,.07), transparent 70%); }
.citacao p { font-stretch: 112%; font-weight: 700; font-size: clamp(1.375rem, 1.05rem + 1.4vw, 2.1rem) !important; line-height: 1.22 !important; color: var(--branco) !important; max-width: 26ch !important; }
.citacao cite { display: block; margin-top: 14px; font-style: normal; font-size: .9375rem; color: var(--sinal); }
.valores { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 1.6em !important; }
.valores li { padding: 8px 14px; border: 1px solid var(--fio-forte); font-size: .9375rem; font-weight: 600; font-stretch: 112%; color: var(--branco); background: rgba(30,203,245,.06); }

/* Placeholders */
.placeholder-nota, .placeholder-inline { display: inline-block; margin-top: 20px; padding: 6px 10px; border: 1px dashed var(--sinal); background: rgba(242,236,29,.1); color: var(--sinal) !important; font-size: .8125rem; font-weight: 600; }
.placeholder-inline { margin: 0 0 0 8px; padding: 2px 8px; }
[data-sem-placeholders] [data-placeholder] { display: none; }

/* Método: visor fixo que troca a foto conforme a etapa */
.metodo { background: var(--gelo); color: var(--texto); }
.metodo .titulo-secao { color: var(--texto); }
.metodo .lead { color: var(--texto-2); }
.metodo__grade { display: grid; gap: 48px; }
.metodo__grade > * { min-width: 0; }
.visor { display: none; }
@media (min-width: 960px) {
  .metodo__grade { grid-template-columns: 5fr 6fr; gap: clamp(56px, 7vw, 112px); align-items: start; }
  .visor { display: block; position: sticky; top: calc(var(--topo-altura) + 40px); }
  .visor__quadro { position: relative; aspect-ratio: 4 / 5; max-height: calc(100vh - var(--topo-altura) - 140px); }
  .visor__quadro img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; opacity: 0; transform: scale(1.03); transition: opacity .6s var(--curva), transform 1.2s var(--curva); }
  .visor__quadro img.is-ativo { opacity: 1; transform: none; }
  .visor__etapa { margin-top: 16px; font-size: .875rem; color: var(--texto-2); font-variant-numeric: tabular-nums; }
  .visor__etapa .dado { color: var(--pista); font-size: 1.125rem; }
  .passo__foto { display: none; }
  .passo { min-height: 46vh; display: flex; flex-direction: column; justify-content: center; }
  .passo:last-child { min-height: 0; padding-bottom: 8vh; }
}
.passos { counter-reset: passo; position: relative; }
.passo { counter-increment: passo; position: relative; padding: 28px 0 28px 72px; }
.passo::before {
  content: counter(passo, decimal-leading-zero); position: absolute; left: 0; top: 28px;
  display: grid; place-items: center; width: 48px; height: 48px;
  font-stretch: 112%; font-weight: 700; font-size: .9375rem; font-variant-numeric: tabular-nums;
  color: var(--pista); background: var(--branco); border: 1px solid var(--pista); transition: background-color .3s, color .3s;
}
.passo::after { content: ""; position: absolute; left: 23.5px; top: 76px; bottom: -28px; width: 1px; background: rgba(11,42,148,.25); }
.passo:last-child::after { display: none; }
.passo.is-ativo::before { background: var(--pista); color: var(--sinal); }
@media (min-width: 960px) { .passo::before { top: calc(50% - 24px - 1em); } .passo::after { display: none; } }
.passo__foto { margin: 8px 0 20px; }
.passo__foto img { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 30%; }
/* enquadramento por foto: cabeças e pés dentro do quadro */
[data-passo="1"] .passo__foto img, [data-visor="1"] { object-position: 50% 15% !important; }
[data-passo="2"] .passo__foto img, [data-visor="2"] { object-position: 45% 20% !important; }
[data-passo="3"] .passo__foto img, [data-visor="3"] { object-position: 50% 92% !important; }
[data-passo="4"] .passo__foto img, [data-visor="4"] { object-position: 50% 88% !important; }
[data-passo="5"] .passo__foto img, [data-visor="5"] { object-position: 60% 50% !important; }
.passo h3 { font-size: clamp(1.375rem, 1.15rem + .8vw, 1.875rem); font-weight: 700; font-stretch: 112%; line-height: 1.15; color: var(--texto); }
.passo p { margin-top: 10px; color: var(--texto-2); max-width: 48ch; font-size: clamp(1rem, .96rem + .2vw, 1.0625rem); }
.passo__agenda { display: inline-flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; margin-top: 18px !important; padding: 12px 16px; background: var(--pista); color: var(--branco) !important; }
.passo__agenda .dado { color: var(--sinal); font-size: 1.125rem; }
@media (max-width: 959px) { .passo { padding-left: 64px; } }

/* Equipe */
.equipe { background: var(--vacuo); }
.equipe__fotos { display: grid; gap: 24px; max-width: calc(var(--largura) + 120px); margin-inline: auto; padding-inline: var(--margem); }
@media (min-width: 960px) { .equipe__fotos { grid-template-columns: 2fr 1fr; align-items: start; gap: 40px; } }
.equipe__larga img { aspect-ratio: 3 / 2; object-fit: cover; object-position: 45% 50%; }
.equipe__coluna { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (min-width: 960px) { .equipe__coluna { grid-template-columns: 1fr; } }
.equipe__coluna img { aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 35%; }
@media (max-width: 959px) { .equipe__coluna img { aspect-ratio: 3 / 4; } }
.historias { margin-top: clamp(72px, 9vw, 120px); }
.historias .subtitulo { margin-bottom: 28px; max-width: 24ch; }
.historias__lista { display: grid; gap: 16px; }
@media (min-width: 800px) { .historias__lista { grid-template-columns: repeat(3, 1fr); } }
.historia { padding: 28px 24px; border: 1px solid var(--fio); background: linear-gradient(180deg, rgba(30,203,245,.06), transparent); }
.historia__conquista { font-stretch: 118%; font-weight: 800; text-transform: uppercase; letter-spacing: -.01em; font-size: 1.25rem; line-height: 1.1; color: var(--ciano); }
.historia blockquote { margin-top: 14px; }
.historia blockquote p { color: var(--claro); }
.historia__nome { margin-top: 16px; font-size: .875rem; font-weight: 600; color: var(--claro-2); }
.historia--placeholder { border-style: dashed; border-color: var(--sinal); }
.historia__tag, .historia__exemplo { display: inline-block; margin-bottom: 12px; padding: 2px 8px; font-size: .75rem; font-weight: 700; color: var(--noite); background: var(--sinal); }

/* Notícias */
.noticias { background: var(--noite); }
.noticias__lista { display: grid; gap: 40px 24px; }
@media (min-width: 720px) { .noticias__lista { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .noticias__lista { grid-template-columns: repeat(3, 1fr); } }
.noticia { display: flex; flex-direction: column; }
.noticia__abrir { all: unset; cursor: pointer; display: flex; flex-direction: column; gap: 14px; }
.noticia__abrir:focus-visible { outline: 2px solid var(--ciano); outline-offset: 6px; }
.noticia__img { overflow: hidden; background: var(--vacuo); aspect-ratio: 1 / 1; border: 1px solid var(--fio); }
.noticia__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; transition: transform .6s var(--curva); }
.noticia__abrir:hover .noticia__img img { transform: scale(1.04); }
.noticia time { font-size: .8125rem; font-weight: 600; color: var(--ciano); font-variant-numeric: tabular-nums; }
.noticia h3 { font-size: 1.25rem; font-weight: 700; font-stretch: 112%; line-height: 1.25; color: var(--branco); }
.noticia__abrir:hover h3 { color: var(--ciano); }
.noticia p { color: var(--claro-2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.noticias__vazio { padding: 40px 0; border-block: 1px solid var(--fio); color: var(--claro-2); grid-column: 1 / -1; }
.noticias__mais { margin-top: 48px; }
.esqueleto { background: linear-gradient(90deg, rgba(30,203,245,.06), rgba(30,203,245,.14), rgba(30,203,245,.06)); background-size: 200% 100%; animation: brilho 1.4s infinite linear; }
@keyframes brilho { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .esqueleto { animation: none; } }

.noticia-modal { width: min(760px, calc(100vw - 24px)); max-height: calc(100svh - 24px); padding: 0; border: 1px solid var(--fio-forte); background: var(--noite); color: var(--claro); overflow: auto; }
.noticia-modal::backdrop { background: rgba(3,10,38,.8); backdrop-filter: blur(6px); }
.noticia-modal article { position: relative; }
.noticia-modal img { width: 100%; max-height: 56vh; object-fit: cover; }
.noticia-modal img:not([src]), .noticia-modal img[src=""] { display: none; }
.noticia-modal__corpo { padding: 28px clamp(20px, 5vw, 48px) 48px; }
.noticia-modal time { font-size: .8125rem; font-weight: 600; color: var(--ciano); }
.noticia-modal h2 { margin-top: 8px; font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.1rem); font-weight: 800; font-stretch: 112%; line-height: 1.12; color: var(--branco); }
.noticia-modal [data-modal-texto] p { margin-top: 1em; max-width: 64ch; }
.noticia-modal__fechar { position: sticky; top: 12px; float: right; margin: 12px 12px -56px 0; z-index: 2; width: 44px; height: 44px; border: 1px solid var(--fio-forte); background: var(--vidro); color: var(--branco); font-size: 1.5rem; line-height: 1; cursor: pointer; backdrop-filter: blur(8px); }

/* Planos */
.planos { background: var(--vacuo); }
.tabela-planos { display: grid; gap: 16px; }
@media (min-width: 720px) { .tabela-planos { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .tabela-planos { grid-template-columns: repeat(4, 1fr); } }
.plano {
  position: relative; display: flex; flex-direction: column; gap: 10px; padding: 32px 26px;
  border: 1px solid var(--fio); background: linear-gradient(180deg, rgba(11,42,148,.22), rgba(3,10,38,.2));
  transition: border-color .3s, transform .3s var(--curva);
}
@media (hover: hover) { .plano:hover { border-color: var(--fio-forte); transform: translateY(-3px); } }
.plano__nome { font-size: 1.125rem; font-weight: 700; font-stretch: 112%; color: var(--branco); }
.plano__para { color: var(--claro-2); min-height: 3.3em; }
.plano__preco { display: flex; align-items: baseline; gap: 10px; margin-top: 12px; padding-top: 18px; border-top: 1px solid var(--fio); }
.plano__preco .dado { font-size: clamp(2.4rem, 2rem + 1.6vw, 3.25rem); line-height: 1; color: var(--branco); }
.plano__preco small { font-size: .875rem; color: var(--claro-2); }
.plano__detalhe { font-size: .9375rem; color: var(--claro-2); flex: 1; }
.plano .botao { margin-top: 16px; width: 100%; }
.plano--destaque { border-color: var(--sinal); background: linear-gradient(180deg, rgba(242,236,29,.1), rgba(11,42,148,.25)); }
.plano--destaque .plano__preco .dado { color: var(--sinal); }
.plano__selo { position: absolute; top: -12px; left: 24px; padding: 3px 10px; font-size: .75rem; font-weight: 700; background: var(--sinal); color: var(--noite); }
.planos__nota { margin-top: 28px; font-size: .8125rem; color: var(--claro-2); }

/* Chegada */
.chegada { position: relative; background: var(--pista); color: var(--branco); padding-block: calc(var(--ritmo) + 20px) var(--ritmo); overflow: hidden; isolation: isolate; }
.chegada::after {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .25;
  background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(80% 90% at 80% 40%, #000, transparent); mask-image: radial-gradient(80% 90% at 80% 40%, #000, transparent);
}
.chegada__faixa { position: absolute; left: 0; right: 0; top: 0; height: 16px; background: repeating-linear-gradient(90deg, var(--branco) 0 16px, var(--vacuo) 16px 32px); }
.chegada__faixa::after { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 8px; background: repeating-linear-gradient(90deg, var(--vacuo) 0 16px, var(--branco) 16px 32px); }
.chegada__km { font-size: .9375rem; color: var(--sinal); margin-bottom: 20px; }
.chegada__titulo { font-size: clamp(2.4rem, 1.2rem + 5.6vw, 6.4rem); max-width: 13ch; }
.chegada .lead { margin-top: 28px; color: rgba(255,255,255,.88); }
.chegada__acoes { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }

/* Rodapé */
.rodape { background: var(--vacuo); color: var(--claro-2); padding-block: 64px calc(40px + env(safe-area-inset-bottom, 0px)); font-size: .9375rem; border-top: 1px solid var(--fio); }
.rodape__grade { display: grid; gap: 32px; align-items: start; }
@media (min-width: 860px) { .rodape__grade { grid-template-columns: auto 1.4fr 1fr; gap: 48px; } }
.rodape__logo { width: 88px; height: 88px; }
.rodape__frase { font-size: 1.5rem; color: var(--sinal); }
.rodape__tag { margin: 4px 0 12px; color: var(--claro); font-weight: 600; }
.rodape__grade p:not(.rodape__frase) { max-width: 44ch; }
.rodape__links { display: grid; gap: 10px; }
.rodape__links a { text-decoration: none; font-weight: 600; color: var(--claro); }
.rodape__links a:hover { color: var(--ciano); }
.rodape__base { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--fio); font-size: .8125rem; }

/* CTA fixo no celular */
.cta-fixo { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 12px var(--margem) calc(12px + env(safe-area-inset-bottom, 0px)); background: linear-gradient(180deg, rgba(3,10,38,0), rgba(3,10,38,.92) 45%); transform: translateY(110%); transition: transform .35s var(--curva); }
.cta-fixo.is-visivel { transform: none; }
.cta-fixo .botao { width: 100%; }
@media (min-width: 1041px) { .cta-fixo { display: none !important; } }

/* Telas estreitas: títulos um pouco menos largos para nenhuma palavra quebrar */
@media (max-width: 560px) {
  .display { font-stretch: 100%; letter-spacing: -.02em; }
  .titulo-secao { font-size: clamp(1.5rem, .9rem + 3vw, 1.95rem); }
  .hv__titulo { font-size: clamp(1.8rem, 1rem + 4vw, 2.4rem); }
  .hero__titulo { font-size: clamp(2.1rem, 1.2rem + 5vw, 2.8rem); }
  .chegada__titulo { font-size: clamp(2rem, 1.1rem + 5vw, 2.7rem); }
}

/* História em texto corrido */
.hv__texto { max-width: 66ch; }
.hv__texto p:not(.placeholder-nota) { color: var(--claro); font-size: clamp(1.0625rem, 1rem + .25vw, 1.1875rem); line-height: 1.8; }
.hv__texto p + p, .trecho + .trecho { margin-top: 1.2em; }
.hv__primeiro { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem) !important; line-height: 1.6 !important; color: var(--branco) !important; }
.hv__fotos { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; align-items: start; margin-block: 2.4em; }
.hv__fotos .moldura:first-child img { aspect-ratio: 1; object-fit: cover; }
.hv__fotos .moldura:last-child { margin-top: 48px; }
.hv__fotos .moldura:last-child img { aspect-ratio: 3 / 4; object-fit: cover; }
@media (max-width: 560px) { .hv__fotos { gap: 16px; } .hv__fotos .moldura:last-child { margin-top: 32px; } }
.hv__texto .citacao { margin-block: 2em; }
.hv__crença { margin-top: 2.2em; font-stretch: 118%; font-weight: 700; font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem) !important; line-height: 1.3 !important; color: var(--sinal) !important; }
.hv__texto .botao { margin-top: 2.2em; }

.historia__topo { display: flex; align-items: center; gap: 14px; margin-top: 16px; }
.historia__foto { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 1px solid var(--fio-forte); }
.historia__topo .historia__nome { margin-top: 0; }

/* ============================================================
   Novas seções: quiz, SisRUN, treinão, mural, calculadora,
   parceiros, Instagram e dúvidas
   ============================================================ */

/* Menu móvel: o topo ocupa a tela inteira quando o menu abre,
   então a lista aparece completa em qualquer ponto da página */
@media (max-width: 1040px) {
  body.menu-aberto .topo { bottom: 0; }
  .menu { position: absolute; inset: calc(var(--topo-altura) + env(safe-area-inset-top, 0px)) 0 0 0; }
}

/* Quiz: qual é o seu próximo passo */
.quiz { background: var(--noite); }
.quiz__grade { display: grid; gap: 48px; }
.quiz__grade > * { min-width: 0; }
@media (min-width: 960px) { .quiz__grade { grid-template-columns: 5fr 6fr; gap: clamp(48px, 7vw, 104px); align-items: start; } .quiz__intro { position: sticky; top: calc(var(--topo-altura) + 40px); } }
.quiz__intro .lead { margin-top: 24px; }
.quiz__painel { border: 1px solid var(--fio-forte); background: rgba(3, 10, 38, .55); padding: clamp(24px, 4vw, 44px); min-height: 440px; display: flex; flex-direction: column; }
.quiz__barra { height: 2px; background: var(--fio); margin-bottom: 28px; }
.quiz__barra span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--ciano), var(--sinal)); box-shadow: 0 0 10px var(--ciano); transition: width .45s var(--curva); }
.quiz__corpo { flex: 1; display: flex; flex-direction: column; }
.quiz__passo { font-size: .8125rem; color: var(--ciano); font-weight: 600; font-variant-numeric: tabular-nums; }
.quiz__pergunta { margin-top: 10px; font-size: clamp(1.5rem, 1.15rem + 1.3vw, 2.2rem); font-weight: 800; font-stretch: 118%; line-height: 1.08; letter-spacing: -.02em; color: var(--branco); text-wrap: balance; }
.quiz__opcoes { margin-top: 28px; display: grid; gap: 10px; }
.quiz__opcao {
  display: grid; grid-template-columns: 2.2em 1fr; align-items: center; gap: 12px; width: 100%;
  min-height: 58px; padding: 12px 16px; text-align: left; cursor: pointer;
  font: inherit; font-weight: 600; font-size: 1.0625rem; color: var(--branco);
  background: rgba(30, 203, 245, .04); border: 1px solid var(--fio); border-radius: 4px;
  transition: background-color .2s, border-color .2s, transform .15s var(--curva);
}
.quiz__opcao:hover { background: rgba(30, 203, 245, .12); border-color: var(--ciano); }
.quiz__opcao:active { transform: translateY(1px); }
.quiz__letra { display: grid; place-items: center; width: 2.2em; height: 2.2em; font-size: .8125rem; font-stretch: 112%; color: var(--ciano); border: 1px solid var(--fio-forte); }
.quiz__rodape { margin-top: auto; padding-top: 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.quiz__voltar { background: none; border: 0; padding: 8px 0; font: inherit; font-weight: 600; color: var(--claro-2); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--fio-forte); }
.quiz__voltar:hover { color: var(--branco); }
.quiz__resultado-rotulo { font-size: .8125rem; font-weight: 600; color: var(--ciano); }
.quiz__resultado { margin-top: 10px; font-size: clamp(2rem, 1.3rem + 2.8vw, 3.4rem); font-weight: 800; font-stretch: 125%; text-transform: uppercase; line-height: .98; letter-spacing: -.025em; color: var(--sinal); text-wrap: balance; }
.quiz__explica { margin-top: 20px; color: var(--claro); max-width: 46ch; }
.quiz__resumo { margin-top: 24px; display: grid; grid-template-columns: auto 1fr; gap: 6px 18px; font-size: .9375rem; border-top: 1px solid var(--fio); padding-top: 18px; }
.quiz__resumo dt { color: var(--claro-2); }
.quiz__resumo dd { color: var(--branco); font-weight: 600; }
.quiz__acoes { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }

/* SisRUN: o treino no relógio */
.sysrun { background: var(--vacuo); overflow: hidden; }
.sysrun__grade { display: grid; gap: 56px; align-items: center; }
.sysrun__grade > * { min-width: 0; }
@media (min-width: 960px) { .sysrun__grade { grid-template-columns: 7fr 4fr; gap: clamp(48px, 7vw, 112px); } }
.sysrun .lead { margin-top: 24px; }
.ciclo { margin-top: 44px; position: relative; display: grid; gap: 0; counter-reset: ciclo; }
.ciclo::before { content: ""; position: absolute; left: 5px; top: 10px; bottom: 10px; width: 1px; background: linear-gradient(var(--ciano), var(--sinal)); box-shadow: 0 0 8px var(--ciano); }
.ciclo li { position: relative; display: grid; grid-template-columns: minmax(10ch, 13ch) 1fr; gap: 4px 24px; align-items: baseline; padding: 14px 0 14px 32px; border-bottom: 1px solid var(--fio); }
.ciclo li:last-child { border-bottom: 0; }
.ciclo li::before { content: ""; position: absolute; left: 1px; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; background: var(--vacuo); border: 1px solid var(--ciano); }
.ciclo li:last-child::before { background: var(--sinal); border-color: var(--sinal); box-shadow: 0 0 10px var(--sinal); }
.ciclo b { font-stretch: 112%; font-weight: 700; color: var(--branco); }
.ciclo span { color: var(--claro-2); }
@media (max-width: 560px) { .ciclo li { grid-template-columns: 1fr; } }
.relogio { justify-self: center; width: min(320px, 78vw); }
.relogio svg { width: 100%; height: auto; overflow: visible; }
.relogio__pulseira { fill: #0A1646; stroke: var(--fio); }
.relogio__caixa { fill: #0B1A55; stroke: var(--fio-forte); stroke-width: 2; }
.relogio__tela { fill: #020718; }
.relogio__trilha { fill: none; stroke: rgba(30, 203, 245, .14); stroke-width: 6; }
.relogio__arco { fill: none; stroke: var(--ciano); stroke-width: 6; stroke-linecap: round; stroke-dasharray: 64 100; filter: drop-shadow(0 0 6px var(--ciano)); }
.relogio text { text-anchor: middle; font-family: var(--fonte); }
.relogio__rotulo { font-size: 11px; font-weight: 700; letter-spacing: .12em; fill: var(--claro-2); }
.relogio__principal { font-size: 28px; font-weight: 800; font-stretch: 112%; fill: var(--branco); }
.relogio__pace { font-size: 26px; font-weight: 700; font-stretch: 112%; fill: var(--sinal); font-variant-numeric: tabular-nums; }
.relogio figcaption { margin-top: 12px; text-align: center; font-size: .75rem; color: var(--claro-2); }
@media (prefers-reduced-motion: no-preference) {
  .js .relogio__arco { stroke-dasharray: 0 100; transition: stroke-dasharray 1.6s .2s var(--curva); }
  .js .relogio.is-visivel .relogio__arco { stroke-dasharray: 64 100; }
}

/* Próximo treinão */
.treinao { background: linear-gradient(180deg, var(--vacuo), var(--noite)); padding-block: clamp(72px, 9vw, 120px); }
.treinao__cartao { display: grid; gap: 0; border: 1px solid var(--fio-forte); background: rgba(3, 10, 38, .6); }
.treinao__cartao > * { min-width: 0; }
@media (min-width: 900px) { .treinao__cartao { grid-template-columns: 6fr 5fr; } }
.treinao__info { padding: clamp(28px, 4vw, 52px); display: flex; flex-direction: column; gap: 18px; }
.treinao__status { display: inline-flex; align-items: center; gap: 10px; font-size: .875rem; font-weight: 600; color: var(--ciano); }
.treinao__status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sinal); box-shadow: 0 0 0 4px rgba(242, 236, 29, .18), 0 0 14px var(--sinal); }
@media (prefers-reduced-motion: no-preference) { .treinao__status::before { animation: pulso 1.8s infinite; } }
@keyframes pulso { 50% { box-shadow: 0 0 0 8px rgba(242, 236, 29, 0), 0 0 14px var(--sinal); } }
.treinao__titulo { font-size: clamp(2rem, 1.3rem + 3vw, 3.6rem); color: var(--branco); }
.treinao__quando { display: flex; flex-wrap: wrap; gap: 8px 28px; align-items: baseline; }
.treinao__data { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.625rem); font-weight: 700; font-stretch: 112%; color: var(--branco); }
.treinao__hora { font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); color: var(--sinal); line-height: 1; }
.treinao__local { border-top: 1px solid var(--fio); padding-top: 18px; }
.treinao__local b { display: block; color: var(--branco); font-weight: 700; }
.treinao__local span { color: var(--claro-2); }
.treinao__texto { color: var(--claro); max-width: 52ch; }
.treinao__acoes { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; }
.treinao__midia { display: grid; grid-template-rows: auto 1fr; border-left: 1px solid var(--fio); }
@media (max-width: 899px) { .treinao__midia { border-left: 0; border-top: 1px solid var(--fio); } }
.treinao__midia--sem-foto { grid-template-rows: 1fr; }
.treinao__foto { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: 50% 40%; }
.treinao__mapa { width: 100%; height: 100%; min-height: 240px; border: 0; display: block; filter: grayscale(.2) contrast(1.05); }
.treinao__mapa-cartao {
  position: relative; display: grid; place-items: center; align-content: center; gap: 10px; min-height: 240px; padding: 24px; text-align: center;
  color: var(--branco); text-decoration: none; font-weight: 600;
  background:
    radial-gradient(60% 60% at 50% 45%, rgba(30, 203, 245, .18), transparent 70%),
    linear-gradient(var(--fio) 1px, transparent 1px) 0 0 / 36px 36px,
    linear-gradient(90deg, var(--fio) 1px, transparent 1px) 0 0 / 36px 36px,
    #041036;
}
.treinao__mapa-cartao svg { width: 36px; height: 36px; fill: var(--sinal); filter: drop-shadow(0 0 10px rgba(242, 236, 29, .6)); }
.treinao__mapa-cartao small { color: var(--claro-2); font-weight: 500; }
.treinao__mapa-cartao:hover { color: var(--ciano); }

/* Linha de chegada: mural de conquistas */
.mural { position: relative; background: var(--vacuo); padding-top: calc(var(--ritmo) + 16px); }
.mural__faixa { position: absolute; left: 0; right: 0; top: 0; height: 16px; background: repeating-linear-gradient(90deg, var(--branco) 0 16px, var(--vacuo) 16px 32px); opacity: .9; }
.mural__faixa::after { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 8px; background: repeating-linear-gradient(90deg, var(--vacuo) 0 16px, var(--branco) 16px 32px); }
.mural__lista { display: grid; gap: 20px; }
@media (min-width: 640px) { .mural__lista { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .mural__lista { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 639px) {
  .mural__lista { grid-auto-flow: column; grid-auto-columns: 80%; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(var(--margem) * -1); padding: 8px var(--margem) 16px; scrollbar-width: none; }
  .mural__lista::-webkit-scrollbar { display: none; }
  .conquista { scroll-snap-align: start; }
}
.conquista { position: relative; display: flex; flex-direction: column; background: var(--noite); border: 1px solid var(--fio); }
.conquista__foto { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--pista); }
.conquista__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.conquista__foto::after { content: ""; position: absolute; inset: 45% 0 0 0; background: linear-gradient(180deg, transparent, rgba(3, 10, 38, .92)); }
.conquista__dist { position: absolute; left: 14px; top: 14px; z-index: 1; padding: 4px 10px; font-size: .875rem; color: var(--branco); background: var(--vidro); border: 1px solid var(--fio-forte); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.conquista__rp {
  position: absolute; right: 12px; top: 12px; z-index: 1; width: 64px; height: 64px; border-radius: 50%;
  display: grid; place-items: center; align-content: center; gap: 0;
  background: var(--sinal); color: var(--noite); box-shadow: 0 0 0 4px rgba(3, 10, 38, .5), 0 8px 24px -6px rgba(242, 236, 29, .7);
  transform: rotate(-8deg);
}
.conquista__rp b { font-size: 1.375rem; font-weight: 900; font-style: italic; font-stretch: 80%; line-height: 1; }
.conquista__rp small { font-size: .5rem; font-weight: 800; letter-spacing: .04em; line-height: 1.1; text-align: center; text-transform: uppercase; }
.conquista__tempo { position: absolute; left: 16px; right: 16px; bottom: 12px; z-index: 1; font-size: clamp(2rem, 1.6rem + 1.4vw, 2.6rem); line-height: 1; color: var(--branco); }
.conquista__corpo { padding: 16px 16px 20px; display: grid; gap: 4px; }
.conquista__nome { font-weight: 700; font-stretch: 112%; color: var(--branco); font-size: 1.0625rem; }
.conquista__prova { font-size: .875rem; color: var(--claro-2); }
.conquista__frase { margin-top: 8px; font-size: .9375rem; color: var(--claro); border-left: 2px solid var(--sinal); padding-left: 10px; }
.mural__mais { margin-top: 40px; }

/* Depoimentos (painel) */
.historia__detalhe { font-stretch: 118%; font-weight: 800; text-transform: uppercase; letter-spacing: -.01em; font-size: 1rem; line-height: 1.1; color: var(--ciano); margin-bottom: 12px; }

/* Calculadora de pace */
.calc { background: var(--gelo); color: var(--texto); }
.calc .titulo-secao { color: var(--texto); }
.calc .lead { color: var(--texto-2); margin-top: 24px; }
.calc__grade { display: grid; gap: 48px; }
.calc__grade > * { min-width: 0; }
@media (min-width: 900px) { .calc__intro { display: grid; grid-template-columns: 1.7fr 1fr; gap: 24px; align-items: end; } .calc__intro .lead { margin-top: 0; } }
.calc__form { display: grid; gap: 0; border: 1px solid var(--fio-escuro); background: var(--branco); }
.calc__form > * { min-width: 0; }
@media (min-width: 720px) { .calc__form { grid-template-columns: 1fr 1.1fr; } }
.calc__campos { padding: clamp(24px, 3vw, 36px); display: grid; gap: 20px; align-content: start; }
.calc__campo { display: grid; gap: 8px; border: 0; padding: 0; margin: 0; min-width: 0; }
.calc__campo > span, .calc__campo legend { font-size: .875rem; font-weight: 600; color: var(--texto); padding: 0; margin-bottom: 8px; }
.calc__campo select, .calc__campo input { width: 100%; min-height: 52px; padding: 10px 14px; font: inherit; color: var(--texto); background: var(--branco); border: 1px solid rgba(10, 20, 51, .25); border-radius: 4px; }
.calc__campo select:focus, .calc__campo input:focus { outline: 2px solid var(--pista); outline-offset: 1px; border-color: var(--pista); }
.calc__tempo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.calc__tempo legend { grid-column: 1 / -1; }
.calc__tempo label { position: relative; }
.calc__tempo input { padding-right: 38px; font-variant-numeric: tabular-nums; font-stretch: 112%; font-weight: 600; }
.calc__tempo span { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: .8125rem; color: var(--texto-2); pointer-events: none; }
.calc__erro { min-height: 1.4em; font-size: .9375rem; font-weight: 600; color: #B42318; }
.calc__erro:empty { min-height: 0; }
.calc__visor { position: relative; padding: clamp(24px, 3vw, 36px); background: var(--noite); color: var(--claro); display: flex; flex-direction: column; gap: 14px; }
.calc__visor::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(var(--fio) 1px, transparent 1px), linear-gradient(90deg, var(--fio) 1px, transparent 1px); background-size: 36px 36px; opacity: .35; -webkit-mask-image: linear-gradient(180deg, #000, transparent 70%); mask-image: linear-gradient(180deg, #000, transparent 70%); }
.calc__visor > * { position: relative; z-index: 1; }
.calc__rotulo { font-size: .8125rem; font-weight: 600; color: var(--ciano); }
.calc__pace { font-size: clamp(3rem, 2.2rem + 3vw, 4.4rem); line-height: 1; color: var(--branco); }
.calc__pace small { margin-left: 8px; font-size: 1rem; color: var(--claro-2); font-weight: 500; }
.calc__visor.is-calculado .calc__pace { color: var(--sinal); text-shadow: 0 0 24px rgba(242, 236, 29, .35); }
.calc__tabela { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.calc__tabela th, .calc__tabela td { padding: 11px 0; border-top: 1px solid var(--fio); text-align: left; font-weight: 500; }
.calc__tabela th { color: var(--claro-2); }
.calc__tabela td { text-align: right; color: var(--branco); font-weight: 700; font-stretch: 112%; font-size: 1.125rem; }
.calc__nota { font-size: .8125rem; color: var(--claro-2); }
.calc__cta { align-self: flex-start; }

/* Notícias no formato do painel */
.noticia__abrir p { margin-top: -4px; }

/* Parceiros */
.parceiros { background: var(--noite); padding-block: clamp(48px, 6vw, 72px); border-block: 1px solid var(--fio); }
.parceiros__grade { display: grid; gap: 24px; align-items: center; }
@media (min-width: 900px) { .parceiros__grade { grid-template-columns: 1fr 3fr; gap: 48px; } }
.parceiros__titulo { font-size: 1rem; font-weight: 700; font-stretch: 112%; color: var(--claro-2); max-width: 18ch; }
.parceiros__lista { display: flex; flex-wrap: wrap; gap: 12px; }
.parceiros__lista a, .parceiros__lista span { display: grid; place-items: center; width: 168px; height: 84px; padding: 14px 18px; background: var(--branco); border-radius: 4px; transition: transform .2s var(--curva), box-shadow .2s; }
.parceiros__lista a:hover { transform: translateY(-2px); box-shadow: 0 10px 30px -12px rgba(30, 203, 245, .6); }
.parceiros__lista img { max-width: 100%; max-height: 100%; object-fit: contain; }
@media (max-width: 480px) { .parceiros__lista a, .parceiros__lista span { width: calc(50% - 6px); } }

/* Instagram */
.insta { background: var(--vacuo); }
.insta__grade { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
@media (min-width: 720px) { .insta__grade { grid-template-columns: repeat(3, 1fr); gap: 12px; } }
.insta__grade a { display: block; aspect-ratio: 1; overflow: hidden; border: 1px solid var(--fio); }
.insta__grade img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--curva); }
.insta__grade a:hover img { transform: scale(1.04); }

/* Dúvidas */
.duvidas { background: var(--noite); }
.duvidas__grade { display: grid; gap: 40px; }
.duvidas__grade > * { min-width: 0; }
@media (min-width: 960px) { .duvidas__grade { grid-template-columns: 4fr 7fr; gap: clamp(48px, 7vw, 112px); align-items: start; } }
.faq { border-top: 1px solid var(--fio-forte); }
.faq details { border-bottom: 1px solid var(--fio); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; font-weight: 700; font-stretch: 112%; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); color: var(--branco); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; flex: none; width: 14px; height: 14px; background: linear-gradient(var(--ciano), var(--ciano)) center / 100% 2px no-repeat, linear-gradient(var(--ciano), var(--ciano)) center / 2px 100% no-repeat; transition: transform .25s var(--curva); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq summary:hover { color: var(--ciano); }
.faq details p { padding: 0 0 24px; color: var(--claro); max-width: 62ch; }

.rodape__contato { margin-top: 12px; }
.rodape__contato a { color: var(--branco); font-weight: 600; text-decoration-color: var(--fio-forte); text-underline-offset: 4px; }

@media (max-width: 560px) {
  .treinao__titulo { font-size: clamp(1.75rem, 1rem + 5vw, 2.4rem); }
}

/* Depoimento em destaque (fixo) */
.destaque { display: grid; gap: 32px; margin-top: clamp(64px, 8vw, 112px); align-items: center; }
.destaque > * { min-width: 0; }
@media (min-width: 900px) { .destaque { grid-template-columns: 5fr 7fr; gap: clamp(48px, 7vw, 104px); } }
.destaque__foto img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.destaque__rotulo { font-size: .875rem; font-weight: 600; color: var(--ciano); }
.destaque__citacao { margin: 16px 0 0; }
.destaque__citacao p { font-size: clamp(1.375rem, 1.1rem + 1.1vw, 2rem); font-weight: 700; font-stretch: 108%; line-height: 1.3; letter-spacing: -.01em; color: var(--branco); text-wrap: pretty; }
.destaque__nome { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--fio-forte); font-weight: 700; font-stretch: 112%; color: var(--sinal); display: grid; gap: 2px; }
.destaque__nome span { font-weight: 500; font-stretch: 100%; color: var(--claro-2); }
.destaque + .historias { margin-top: clamp(64px, 8vw, 104px); }

/* Previsão de prova */
.calc__linha { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.calc__linha > * { min-width: 0; }
.calc__grupo { border: 0; margin: 0; padding: 18px 0 0; border-top: 1px solid var(--fio-escuro); display: grid; gap: 12px; min-width: 0; }
.calc__grupo legend { float: left; width: 100%; padding: 0; margin-bottom: 4px; font-weight: 700; font-stretch: 112%; color: var(--texto); }
.calc__grupo legend + * { clear: both; }
.calc__prova { font-size: .9375rem; font-weight: 700; font-stretch: 112%; color: var(--branco); padding-bottom: 12px; border-bottom: 1px solid var(--fio-forte); }
.calc__blocos { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0; }
.calc__bloco { padding: 16px 12px 16px 0; border-bottom: 1px solid var(--fio); min-width: 0; }
.calc__bloco:nth-child(odd) { border-right: 1px solid var(--fio); }
.calc__bloco:nth-child(even) { padding-left: 16px; }
.calc__bloco dt { font-size: .8125rem; font-weight: 600; color: var(--ciano); }
.calc__bloco dd { margin: 6px 0 0; display: grid; gap: 4px; }
.calc__bloco .dado { font-size: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem); line-height: 1.05; color: var(--branco); }
.calc__bloco small { font-size: .8125rem; line-height: 1.35; color: var(--claro-2); }
.calc__visor.is-calculado .calc__bloco--destaque .dado { color: var(--sinal); text-shadow: 0 0 20px rgba(242, 236, 29, .3); }
@media (max-width: 380px) { .calc__blocos { grid-template-columns: 1fr; } .calc__bloco:nth-child(odd) { border-right: 0; } .calc__bloco:nth-child(even) { padding-left: 0; } }

/* Corrida + musculação + mobilidade */
.forca { background: var(--gelo); color: var(--texto); }
.forca .titulo-secao { color: var(--texto); }
.forca .lead { color: var(--texto-2); }
.tripe { display: grid; gap: 0; border-top: 1px solid var(--fio-escuro); }
@media (min-width: 820px) { .tripe { grid-template-columns: repeat(3, 1fr); } .tripe__item + .tripe__item { border-left: 1px solid var(--fio-escuro); } .tripe__item { padding-inline: clamp(20px, 3vw, 40px); } .tripe__item:first-child { padding-left: 0; } }
.tripe__item { padding-block: 32px; border-bottom: 1px solid var(--fio-escuro); display: grid; gap: 10px; align-content: start; }
@media (min-width: 820px) { .tripe__item { border-bottom: 0; } }
.tripe__sinal { font-size: .875rem; color: var(--pista); }
.tripe__item h3 { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.6rem); font-weight: 900; font-style: italic; font-stretch: 80%; text-transform: uppercase; letter-spacing: -.01em; line-height: 1; color: var(--texto); }
.tripe__item p { color: var(--texto-2); max-width: 36ch; }
.forca__soma { margin-top: clamp(32px, 4vw, 56px); display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; font-weight: 700; font-stretch: 112%; color: var(--texto-2); }
.forca__soma i { font-style: normal; color: var(--pista); font-weight: 800; }
.forca__soma b { color: var(--texto); background: var(--sinal); padding: 4px 10px; }
.calc__tempo input { width: 100%; min-height: 52px; padding: 10px 38px 10px 14px; font: inherit; font-weight: 600; font-stretch: 112%; font-variant-numeric: tabular-nums; color: var(--texto); background: var(--branco); border: 1px solid rgba(10, 20, 51, .25); border-radius: 4px; }
.calc__tempo input:focus { outline: 2px solid var(--pista); outline-offset: 1px; border-color: var(--pista); }
@media (max-width: 480px) { .calc__linha { grid-template-columns: 1fr; } }

/* Acompanhe a VidalRun: fotos fixas */
.insta__grade { grid-template-columns: repeat(3, 1fr); }
@media (min-width: 900px) { .insta__grade { grid-template-columns: repeat(6, 1fr); } }
.insta__grade a { aspect-ratio: 4 / 5; }
.insta__botao { margin-top: 32px; }

/* Enquadramento das fotos da equipe: cada foto com o assunto no quadro */
@media (min-width: 960px) { .equipe__coluna { gap: 40px; } }
.equipe__coluna figure:first-child img { object-position: 50% 82%; }
.equipe__coluna figure:last-child img { object-position: 50% 28%; }

/* Link discreto para o painel */
.rodape__admin { margin-left: 12px; color: inherit; opacity: .45; font-size: .75rem; text-decoration: none; }
.rodape__admin:hover, .rodape__admin:focus-visible { opacity: .9; text-decoration: underline; }
