/* =====================================================================
   BOOOT · CHASSI · _MARCA/patterns/chassis.css
   A camada de RITMO VERTICAL e layout que TODA superficie consome:
   Portal (Area 1, ja tem .lp) · Plataforma (Area 2, opta com .chassis) · posts.

   Regra-mae: a SEÇÃO NAO inventa espaçamento. Existe UM ritmo (--section-pad)
   e um grande so pros extremos (--section-pad-lg). Todo limite entre seções
   é 2x o ritmo, uniforme em 100% do portal. O gap virou defeito MENSURAVEL
   (_MOTOR/.gates/rhythm-gate.mjs), nunca o olho do dono.
   Proveniencia do padrao: every-layout (Stack) + DS B2B v1.3.0. Adotado, nao inventado.
   ===================================================================== */
:root{
  --section-pad: clamp(var(--space-6), 5.5vw, var(--space-7));   /* 48->64px · o ritmo padrao de TODA seção */
  --section-pad-lg: clamp(var(--space-7), 8vw, var(--space-8));  /* 64->80px · so o TOPO do hero e o EMBAIXO do fecho */
  --stack: var(--space-4);                                        /* respiro vertical padrao entre irmaos num bloco */
}

/* ---- SEÇÃO · o tijolo do chassi · herda o ritmo, zero override por pagina ---- */
:is(.chassis, .lp) main > section,
:is(.chassis, .lp) > section{ padding-block: var(--section-pad); }

/* divisor UNICO entre seções adjacentes (substitui os border-top espalhados nas paginas).
   ⚠️ `--borda` e SO A COR (armadilha 3 do _DE-PARA-REPINTURA): o `--hairline-dark` que morava
   aqui ja trazia o `1px solid` dentro, e trocar 1:1 apagaria o divisor de TODA seção do Portal
   sem erro nenhum, com a pagina continuando a subir. Por isso o `1px solid` esta escrito. */
:is(.chassis, .lp) main > section + section,
:is(.chassis, .lp) > section + section{ border-top: 1px solid var(--borda); }

/* extremos: o hero respira no TOPO, o fecho respira EMBAIXO · o limite INTERNO entre seções fica uniforme */
:is(.chassis, .lp) .hero,
:is(.chassis, .lp) .doc-hero{ padding-block: var(--section-pad-lg) var(--section-pad); }
:is(.chassis, .lp) .closing,
:is(.chassis, .lp) .doc-cta{ padding-block: var(--section-pad) var(--section-pad-lg); }

/* ---- STACK · respiro vertical interno previsível (every-layout) · mata o margin-top solto ---- */
.stack{ display:flex; flex-direction:column; }
.stack > * + *{ margin-block-start: var(--stack); }
.stack--tight > * + *{ margin-block-start: var(--space-3); }
.stack--loose > * + *{ margin-block-start: var(--space-6); }

/* ---- AUTOFILL · o navegador repinta o campo e leva o texto junto ----------------------------
   CLASSE: `autofill-do-navegador-repinta-o-campo`. O Chrome pinta o campo autopreenchido com o
   fundo DELE e mantem a `color` da pagina: em pagina escura isso da texto quase-branco sobre
   campo claro, e o dono de academia nao le o que digitou. Nao e defeito de token: medido no ar
   em 24/ago, `/cadastro` e `/ativar` entregam #F6F7F8 sobre 4% de branco no #0E1216 (legivel) e
   `regrasAutofill: 0` nas 5 folhas carregadas.
   PRONTO: a casa JA curou isso uma vez, em `_MARCA/patterns/painel.css:1635` (E3, 14/jul), com o
   padrao de mercado (inset box-shadow de 1000px + `-webkit-text-fill-color`). ADOTO a mesma forma,
   nos tokens do canon. A copia do Painel FICA: ele nao carrega este chassi e fala outro conjunto
   de tokens (`--bg-surface`/`--text-heading`); mexer nele seria melhorar codigo vizinho de carona.
   ALCANCE: toda pagina que carrega o chassi — checkout, cadastro, ativar, e as 4 de captacao. */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill{
  -webkit-box-shadow: 0 0 0 1000px var(--superficie) inset;
  -webkit-text-fill-color: var(--texto);
  caret-color: var(--texto);
  transition: background-color 9999s ease-out 0s;
}
