/* Página pública do treinamento. Paleta e tipografia do brandbook Luminatti. */
@font-face {
  font-family: "Montserrat";
  src: url("/static/fontes/montserrat-latin-wght-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --preto: #1D1D1B;
  --amarelo: #FCC972;
  --amarelo-forte: #F3B955;
  --cinza: #585857;
  --claro: #F5F5F5;
  --branco: #FFFFFF;
  --sobre-preto: #D6D6D3;   /* texto secundário em fundo preto */
  --fio: #DEDEDC;
  --erro: #A8261C;
  --raio: 4px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--preto);
  background: var(--preto);
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, p { margin: 0; }

.largura { max-width: 68rem; margin: 0 auto; padding: 0 1.25rem; }
.coluna { max-width: 40rem; }

/* ───────── Topo ───────── */
.topo { background: var(--preto); padding: 1.125rem 0 1rem; }
.topo .largura { text-align: center; }
.topo a { display: inline-block; }
.topo img { display: block; width: 200px; }

/* ───────── Palco: o perfil aceso ─────────
   A linha amarela é um perfil de LED embutido; a luz dela cai sobre o título. */
.palco { position: relative; overflow: hidden; background: var(--preto); color: var(--branco); padding-bottom: 3rem; }
.perfil {
  position: relative;
  height: 5px;
  background: var(--amarelo);
  transform-origin: left center;
  animation: acender .9s cubic-bezier(.2, .7, .2, 1) both;
}
.perfil::after {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 5px;
  height: 17rem;
  background: linear-gradient(to bottom, rgba(252, 201, 114, .2), rgba(252, 201, 114, 0));
  pointer-events: none;
  animation: clarear 1s ease-out .55s both;
}
@keyframes acender { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes clarear { 0% { opacity: 0; } 35% { opacity: .9; } 50% { opacity: .45; } 100% { opacity: 1; } }

.palco-grade { position: relative; z-index: 1; display: grid; gap: 2rem; padding-top: 2rem; }
.chamada { color: var(--amarelo); font-weight: 600; font-size: .9375rem; margin-bottom: .75rem; }
h1 {
  font-size: clamp(2.125rem, 8.4vw, 3.75rem);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -.02em;
  text-wrap: balance;
}
.sub { margin-top: 1rem; font-size: 1.0625rem; color: var(--sobre-preto); max-width: 34rem; }
.sub strong, .proxima strong { color: var(--branco); font-weight: 700; }
.proxima {
  margin-top: 1.5rem;
  padding-left: 1rem;
  border-left: 3px solid var(--amarelo);
  color: var(--sobre-preto);
  max-width: 34rem;
}

/* ───────── Formulário ───────── */
.inscricao { background: var(--claro); color: var(--preto); padding: 1.5rem 1.25rem 1.375rem; border-radius: var(--raio); }
.inscricao h2 { font-size: 1.25rem; font-weight: 800; letter-spacing: -.01em; margin-bottom: 1.125rem; }
.campo { margin-bottom: 1rem; }
.campo label { display: block; font-weight: 600; font-size: .9375rem; margin-bottom: .375rem; }
.campo input {
  display: block;
  width: 100%;
  height: 3.375rem;
  padding: 0 .875rem;
  font: inherit;
  font-size: 1.0625rem;   /* 17px: abaixo de 16px o iPhone dá zoom ao focar */
  color: var(--preto);
  background: var(--branco);
  border: 1.5px solid #8A8A88;
  border-radius: var(--raio);
}
.campo input::placeholder { color: #8A8A88; }
.campo input:focus-visible { outline: 3px solid var(--amarelo); outline-offset: 1px; border-color: var(--preto); }
.campo.com-erro input { border-color: var(--erro); }
.erro { margin-top: .375rem; color: var(--erro); font-size: .875rem; font-weight: 600; }
.erro-geral { margin: 0 0 1rem; padding: .75rem .875rem; background: #FBEAE8; border-radius: var(--raio); }
.reserva { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.aceite { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: start; margin: 1.25rem 0 0; font-size: .875rem; line-height: 1.45; cursor: pointer; }
.aceite input { width: 1.375rem; height: 1.375rem; margin: .0625rem 0 0; accent-color: var(--preto); }
.aceite input:focus-visible { outline: 3px solid var(--amarelo); outline-offset: 2px; }

.botao {
  display: block;
  width: 100%;
  min-height: 3.5rem;
  margin-top: 1.25rem;
  padding: .9375rem 1.25rem;
  font: inherit;
  font-weight: 700;
  font-size: 1.0625rem;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  color: var(--preto);
  background: var(--amarelo);
  border: 0;
  border-radius: var(--raio);
  cursor: pointer;
}
.botao:hover { background: var(--amarelo-forte); }
.botao:focus-visible { outline: 3px solid var(--preto); outline-offset: 2px; }
.palco-simples .botao:focus-visible { outline-color: var(--branco); }
.botao[disabled] { opacity: .7; cursor: progress; }
.botao-escuro { color: var(--branco); background: var(--preto); }
.botao-escuro:hover { background: #333331; }
.botao-escuro:focus-visible { outline-color: var(--amarelo-forte); }
.nota { margin-top: .875rem; font-size: .875rem; color: var(--cinza); text-align: center; text-wrap: balance; }

/* ───────── Faixas de conteúdo ───────── */
.faixa { background: var(--branco); color: var(--preto); padding: 3.25rem 0; }
.faixa-clara { background: var(--claro); }
.faixa h2 { font-size: clamp(1.5rem, 5vw, 2rem); font-weight: 800; line-height: 1.15; letter-spacing: -.015em; margin-bottom: 1.5rem; }

.topicos { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--fio); }
.topicos li { position: relative; padding: 1rem 0 1rem 2.25rem; border-bottom: 1px solid var(--fio); font-size: 1.0625rem; font-weight: 500; }
.topicos li::before { content: ""; position: absolute; left: 0; top: 1.6875rem; width: 1.25rem; height: 4px; background: var(--amarelo); }

.passos { list-style: none; counter-reset: passo; margin: 0; padding: 0; display: grid; gap: 1.75rem; }
.passos li { counter-increment: passo; }
.passos li::before {
  content: counter(passo);
  display: block;
  width: 2.5rem;
  margin-bottom: .75rem;
  padding-bottom: .375rem;
  border-bottom: 4px solid var(--amarelo);
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1;
}
.passos strong { display: block; font-size: 1.125rem; font-weight: 700; }
.passos span { color: var(--cinza); }
.voltar { margin-top: 2.25rem; }
.voltar .botao { margin-top: 0; }

/* ───────── Páginas simples (obrigado, sair, aviso) ───────── */
.palco-simples { min-height: 62vh; }
.palco-simples .coluna { position: relative; z-index: 1; padding-top: 3rem; margin-left: auto; margin-right: auto; }
.acoes { margin-top: 2rem; }
.acoes .botao { margin-top: 0; }
.nota-escura { margin-top: .875rem; font-size: .9375rem; color: var(--sobre-preto); }
.indicar { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid #3A3A38; color: var(--sobre-preto); }
.indicar a, .nota-escura a { color: var(--amarelo); }

/* ───────── Texto corrido (privacidade) ───────── */
.texto h1 { font-size: clamp(1.75rem, 6vw, 2.5rem); margin: 1.5rem 0 .5rem; }
.texto h2 { font-size: 1.125rem; margin: 2rem 0 .5rem; }
.texto p { margin-bottom: .75rem; }
.texto .coluna { margin-left: auto; margin-right: auto; }
.discreto { color: var(--cinza); font-size: .9375rem; }

/* ───────── Rodapé ───────── */
.rodape { background: var(--preto); color: var(--sobre-preto); font-size: .875rem; padding: 2rem 0 2.5rem; border-top: 1px solid #3A3A38; }
.rodape p + p { margin-top: .5rem; }
.rodape a { display: inline-block; margin-right: 1.25rem; padding: .25rem 0; }
.rodape a:focus-visible, .topo a:focus-visible { outline: 2px solid var(--amarelo); outline-offset: 3px; }

/* ───────── Telas largas ───────── */
@media (min-width: 30rem) {
  .inscricao { padding: 1.75rem 1.75rem 1.5rem; }
  .botao { display: inline-block; width: auto; min-width: 16rem; }
  .inscricao .botao { display: block; width: 100%; }
}
@media (min-width: 58rem) {
  .topo { padding: 1.5rem 0 1.25rem; }
  .palco { padding-bottom: 5rem; }
  .palco-grade { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 4.5rem; align-items: start; padding-top: 4.5rem; }
  .apresentacao { padding-top: 1rem; }
  .sub { font-size: 1.1875rem; }
  .faixa { padding: 5rem 0; }
  .faixa-grade { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 4.5rem; align-items: start; }
  .passos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; }
  .palco-simples .coluna { padding-top: 5rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .perfil, .perfil::after { animation: none; }
}
