/* =============================================================================
   ROTA FORTE — o visual do Dia D (RF-F6; base da D6 v2 na RF-V1), ATRÁS DA CHAVE.

   ⭐ Esta folha só é pedida quando `BRAND_ROTA_FORTE_ENABLED` está ligada (`marca.rota_forte`):
   quem a inclui é `templates/brand/_folha_rota_forte.html`, e com a chave desligada nenhum
   template a menciona. Ela vem depois das folhas da página, e por isso vence a cascata com a
   mesma especificidade. Logo depois dela vêm as três folhas por superfície (RF-V1):
   `rota-forte-pagina.css` (V2), `rota-forte-checkout.css` (V3) e `rota-forte-area.css` (V4).
   ⛔ As folhas de hoje continuam intactas.

   Identidade: D6 v2, "Trilho de cobre" (owner, 12/10/2026,
   `virada-rota-forte/DIRECAO-DE-ARTE-ROTA-FORTE-D6v2.md`):
   - fundo branco #FFFFFF e texto grafite #202326 para ler · pedra #EEEFEB como superfície ·
     texto secundário #4A4F55 (também o erro, sempre tracejado);
   - AÇÃO cobre #A84F1D (botão, identidade, posição atual; campo só no topo e na conta à vista) ·
     link #8A3F15, sempre sublinhado · cobre-esc #7A3410 no botão invertido · cobre claro
     #F2B38F só sobre grafite;
   - petróleo #176B5B só para dado, prova, acerto e progresso (⛔ botão) · petróleo-claro #E4EFEB ·
     petróleo-escuro #0E4A3F · revisão #8A5A00 · realce editorial #F2C9AE, localizado;
   - borda de controle #767B82 · raio 6 px · foco de 3 px, afastado 2 px: grafite no claro,
     BRANCO sobre o cobre;
   - Literata nos títulos e números de destaque; Hanken Grotesk em todo o resto (texto,
     interface, botões, rótulos, números pequenos);
   - ⛔ azul, ⛔ vermelho.

   Contraste (WCAG 2.x, medido; a tabela inteira está em `apps/brand/test_rf_v1_d6v2.py`):
   grafite/branco 15,79 · grafite/pedra 13,67 · #4A4F55/branco 8,27 · #4A4F55/pedra 7,16 ·
   branco/cobre 5,52 · cobre/pedra 4,78 · #7A3410/branco 9,03 · #8A3F15/branco 7,49 ·
   petróleo/branco 6,38 · petróleo/pedra 5,53 · #0E4A3F/#E4EFEB 8,62 · revisão/branco 5,93 ·
   revisão/pedra 5,13 · borda/branco 4,26 · borda/pedra 3,69 · grafite/realce 10,33 ·
   placeholder #676C72/branco 5,30 · anel grafite/branco 15,79 · anel branco/cobre 5,52.

   ⛔ Recurso de outro domínio: as fontes são as de `static/fonts/`.
   ========================================================================== */

/* ── As faces da marca ──────────────────────────────────────────────────────────────────
   A Literata (SIL OFL 1.1, `static/fonts/literata-OFL.txt`), de 400 a 800 com tamanho óptico,
   gerada do `google/fonts` @ 66928797. As duas faixas são as mesmas da Hanken e do subconjunto
   latino de hoje: o navegador só baixa a segunda se a página tiver um caractere dela. */
@font-face {
  font-family: "Literata RF";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/literata-latin.0ec468520014.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Literata RF";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/literata-latin-ext.fcf978c0dd0c.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
    U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ── 1 · Os tokens da ROTA FORTE e a ponte para os nomes de cada folha ───────────────── */
:root {
  /* D6 v2, §2 da direção de arte */
  --rf-fundo: #FFFFFF;
  --rf-pedra: #EEEFEB;
  --rf-grafite: #202326;
  --rf-texto2: #4A4F55;
  --rf-cobre: #A84F1D;
  --rf-cobre-esc: #7A3410;
  --rf-cobre-texto: #8A3F15;
  --rf-cobre-claro: #F2B38F;
  --rf-petroleo: #176B5B;
  --rf-petroleo-claro: #E4EFEB;
  --rf-petroleo-escuro: #0E4A3F;
  --rf-revisao: #8A5A00;
  --rf-realce: #F2C9AE;
  /* borda de controle (campo, botão vazado, opção): 4,26:1 no branco, 3,69:1 na pedra */
  --rf-borda: #767B82;
  /* o texto de exemplo dos campos (WCAG 1.4.3 vale para ele): 5,30:1 no branco, 4,59:1 na pedra */
  --rf-placeholder: #676C72;
  --rf-branco: #FFFFFF;
  --rf-tinta-escura: #C9C2B6;
  --rf-foco-claro: var(--rf-grafite);
  --rf-foco-no-cobre: var(--rf-branco);
  /* o anel no rodapé GRAFITE (D6-01): branco, 15,79:1 */
  --rf-foco-no-escuro: var(--rf-branco);
  /* ⭐ O anel em uso. Quem pinta um campo cobre troca este token (seção 2): o anel fica branco
     em TODO controle e link de dentro dele, não só no botão. */
  --rf-anel: var(--rf-foco-claro);

  /* os nomes de antes, que as folhas da página, da contagem e do aviso usam */
  --rf-papel: var(--rf-fundo);
  --rf-superficie: var(--rf-pedra);
  --rf-linha: var(--rf-pedra);
  --rf-controle: var(--rf-borda);
  --rf-cobre-escuro: var(--rf-cobre-esc);

  --rf-titulo: "Literata RF", Georgia, "Times New Roman", serif;
  --rf-texto: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --rf-foco: 3px solid var(--rf-anel);
  --rf-raio: 6px;

  /* app.css (base.html: checkout, confirmação, login, senha, legais, erros) */
  --paper: var(--rf-fundo);
  --paper-panel: var(--rf-pedra);
  --ink: var(--rf-grafite);
  --ink-soft: var(--rf-texto2);
  --ink-faint: var(--rf-texto2);
  --legal-black: var(--rf-grafite);
  --gold: var(--rf-cobre);
  --gold-deep: var(--rf-cobre-texto);
  --teal: var(--rf-petroleo);
  /* ⭐ a serifa de hoje (`--font-display`) vira Hanken: a Literata só entra por seletor LISTADO */
  --font-display: var(--rf-texto);
  --font-body: var(--rf-texto);
  --radius: var(--rf-raio);

  /* página do 48º (pagina-vendas-48-uau.css e a casca) */
  --raised: var(--rf-pedra);
  --soft: var(--rf-texto2);
  --quiet: var(--rf-pedra);
  --ctl: var(--rf-borda);
  --accent: var(--rf-cobre-texto);
  --accent-escuro: var(--rf-cobre-esc);
  --accent-soft: rgba(168, 79, 29, .12);
  --accent-selo: var(--rf-pedra);
  --accent-area: rgba(23, 107, 91, .22);
  --on-accent: var(--rf-branco);
  --focus: var(--rf-foco-claro);
  --serif: var(--rf-texto);
  --sans: var(--rf-texto);
  --rule: rgba(32, 35, 38, .14);
  --rule2: rgba(32, 35, 38, .30);
}

/* O checkout transparente declara os tokens dele em `body.checkout-v2-page` (mais específico
   que `:root`): a ponte precisa estar no MESMO seletor. */
body.checkout-v2-page {
  --ckv2-black: var(--rf-grafite);
  --ckv2-black-deep: var(--rf-grafite);
  --ckv2-surface: #2B2F33;
  --ckv2-cream: var(--rf-fundo);
  --ckv2-paper: var(--rf-pedra);
  --ckv2-gold: var(--rf-cobre);
  --ckv2-gold-deep: var(--rf-cobre-texto);
  --ckv2-text: var(--rf-grafite);
  --ckv2-muted: var(--rf-texto2);
  /* S03 (RF-REV1): a borda dos campos era 1,56:1; agora 4,26:1 (WCAG 1.4.11) */
  --ckv2-border: var(--rf-borda);
  --ckv2-page: var(--rf-fundo);
  --ckv2-focus: var(--rf-foco-claro);
  --ckv2-success: var(--rf-petroleo);
}

/* ── gerado por docs/evidence/gate-d6v2-correcoes/gerar_rem.py: ⛔ editar à mão ── */
/* pagina-vendas-48-uau.css */
body:where(.rf-p1).pv48 { font-size: 1rem; }
body:where(.rf-p1).pv48 .pv-h1 { font-size: 2.1875rem; }
body:where(.rf-p1).pv48 .pv-h2 { font-size: 1.875rem; }
body:where(.rf-p1).pv48 .pv-h3,
body:where(.rf-p1).pv48 .pv-afericao > h3 { font-size: 1.5rem; }
:where(body.rf-p1) .pv-sub { font-size: 1.1875rem; }
:where(body.rf-p1) .pv-prosa { font-size: 1.125rem; }
:where(body.rf-p1) .pv-leg { font-size: 0.90625rem; }
@media (max-width: 359.98px) { body:where(.rf-p1).pv48 .pv-h1 { font-size: 1.8125rem; } }
@media (max-width: 359.98px) { body:where(.rf-p1).pv48 .pv-h2 { font-size: 1.6875rem; } }
@media (min-width: 600px) { body:where(.rf-p1).pv48 .pv-h1 { font-size: 2.875rem; } }
@media (min-width: 600px) { body:where(.rf-p1).pv48 .pv-h2 { font-size: 2.375rem; } }
@media (min-width: 600px) { :where(body.rf-p1) .pv-sub { font-size: 1.3125rem; } }
@media (min-width: 600px) { :where(body.rf-p1) .pv-prosa { font-size: 1.1875rem; } }
@media (min-width: 1100px) { body:where(.rf-p1).pv48 .pv-h1 { font-size: 3.875rem; } }
@media (min-width: 1100px) { body:where(.rf-p1).pv48 .pv-h2 { font-size: 2.875rem; } }
@media (min-width: 1100px) { body:where(.rf-p1).pv48 .pv-h3,
body:where(.rf-p1).pv48 .pv-afericao > h3 { font-size: 1.75rem; } }
@media (min-width: 1100px) { :where(body.rf-p1) .pv-sub { font-size: 1.375rem; } }
body:where(.rf-p1).pv48 .pv-cta { font-size: 1.0625rem; }
:where(body.rf-p1) .pv-cta__rodape { font-size: 0.875rem; }
:where(body.rf-p1) .pv-lead { font-size: 1.125rem; }
:where(body.rf-p1) .pv-publico { font-size: 0.84375rem; }
:where(body.rf-p1) .pv-instrucao { font-size: 1.0625rem; }
:where(body.rf-p1) .pv-sob-video { font-size: 1.1875rem; }
body:where(.rf-p1).pv48 .pv-oque__titulo { font-size: 1.3125rem; }
:where(body.rf-p1) .pv-oque__resumo { font-size: 1.03125rem; }
:where(body.rf-p1) .pv-oque__passos > li { font-size: 0.96875rem; }
:where(body.rf-p1) .pv-oque__passos > li::before { font-size: 0.96875rem; }
:where(body.rf-p1) .pv-oque__fecho { font-size: 1.03125rem; }
body:where(.rf-p1).pv48 .pv-oque__link { font-size: 0.96875rem; }
@media (min-width: 1100px) { body:where(.rf-p1).pv48 .pv-oque__titulo { font-size: 1.4375rem; } }
@media (min-width: 1100px) { :where(body.rf-p1) .pv-oque__resumo,
:where(body.rf-p1) .pv-oque__fecho { font-size: 1.09375rem; } }
@media (min-width: 1100px) { :where(body.rf-p1) .pv-oque__passos > li { font-size: 1.03125rem; } }
@media (min-width: 1100px) { :where(body.rf-p1) .pv-oque__passos > li::before { font-size: 1.03125rem; } }
@media (max-width: 480px) and (max-height: 720px) { body:where(.rf-p1).pv48 .pv-oque__titulo { font-size: 1.1875rem; } }
@media (max-width: 480px) and (max-height: 720px) { :where(body.rf-p1) .pv-oque__resumo { font-size: 0.96875rem; } }
@media (max-width: 480px) and (max-height: 720px) { :where(body.rf-p1) .pv-oque__passos > li { font-size: 0.90625rem; } }
@media (max-width: 480px) and (max-height: 720px) { :where(body.rf-p1) .pv-oque__passos > li::before { font-size: 0.90625rem; } }
@media (max-width: 480px) and (max-height: 720px) { :where(body.rf-p1) .pv-oque__fecho { font-size: 0.96875rem; } }
body:where(.rf-p1).pv48 .pv-som__aviso { font-size: 0.875rem; }
@media (min-width: 600px) { body:where(.rf-p1).pv48 .pv-som__aviso { font-size: 0.9375rem; } }
@media (min-width: 600px) { :where(body.rf-p1) .pv-lead { font-size: 1.1875rem; } }
@media (min-width: 1100px) { :where(body.rf-p1) .pv-sob-video { font-size: 1.0625rem; } }
@media (min-width: 1100px) { :where(body.rf-p1) .pv-lead { font-size: 1.25rem; } }
@media (min-width: 1100px) { body:where(.rf-p1).pv48 .pv-h1 { font-size: 3.125rem; } }
@media (min-width: 1100px) and (max-height: 820px) { body:where(.rf-p1).pv48 .pv-h1 { font-size: 2.625rem; } }
@media (max-width: 480px) and (max-height: 720px) { body:where(.rf-p1).pv48 .pv-h1 { font-size: 1.875rem; } }
@media (max-width: 480px) and (max-height: 720px) { :where(body.rf-p1) .pv-lead { font-size: 1rem; } }
@media (max-width: 480px) and (max-height: 720px) { :where(body.rf-p1) .pv-instrucao { font-size: 0.9375rem; } }
@media (max-width: 480px) and (max-height: 720px) { :where(body.rf-p1) .pv-publico { font-size: 0.78125rem; } }
@media (max-width: 480px) and (max-height: 720px) { :where(body.rf-p1) .pv-sob-video { font-size: 1.0625rem; } }
:where(body.rf-p1) .pv-toboga__rotulo { font-size: 0.875rem; }
:where(body.rf-p1) .pv-toboga__leg { font-size: 0.90625rem; }
body:where(.rf-p1).pv48 .pv-conta__titulo { font-size: 1.5rem; }
:where(body.rf-p1) .pv-conta__intro { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-campo__rotulo { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-campo__entrada { font-size: 1rem; }
:where(body.rf-p1) .pv-campo__dado { font-size: 1.25rem; }
:where(body.rf-p1) .pv-campo__dica { font-size: 0.875rem; }
:where(body.rf-p1) .pv-campo__erro { font-size: 0.875rem; }
:where(body.rf-p1) .pv-minutos__un { font-size: 0.9375rem; }
body:where(.rf-p1).pv48 .pv-atalho { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-opcao { font-size: 1rem; }
:where(body.rf-p1) .pv-conta__vazio { font-size: 1.0625rem; }
:where(body.rf-p1) .pv-conta__frase { font-size: 1.375rem; }
:where(body.rf-p1) .pv-conta__complemento { font-size: 1.0625rem; }
:where(body.rf-p1) .pv-conta__aviso { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-adv { font-size: 1rem; }
:where(body.rf-p1) .pv-rota__rotulo { font-size: 0.875rem; }
:where(body.rf-p1) .pv-rota__leg { font-size: 0.90625rem; }
:where(body.rf-p1) .pv-livro dt { font-size: 0.90625rem; }
:where(body.rf-p1) .pv-livro dd { font-size: 1.0625rem; }
:where(body.rf-p1) .pv-comparar__cab { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-comparar__lista li { font-size: 1.0625rem; }
@media (min-width: 600px) { :where(body.rf-p1) .pv-comparar__lista li { font-size: 1.1875rem; } }
:where(body.rf-p1) .pv-elo { font-size: 1.125rem; }
:where(body.rf-p1) .pv-num { font-size: 2.75rem; }
:where(body.rf-p1) .pv-cadeia__seta { font-size: 1.125rem; }
@media (min-width: 600px) { :where(body.rf-p1) .pv-elo { font-size: 1.25rem; } }
@media (min-width: 600px) { :where(body.rf-p1) .pv-num { font-size: 3.5rem; } }
:where(body.rf-p1) .pv-marcos { font-size: 0.90625rem; }
:where(body.rf-p1) .pv-lupa__dica { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-pergunta__n { font-size: 1.625rem; }
body:where(.rf-p1).pv48 .pv-pergunta__q { font-size: 1.4375rem; }
:where(body.rf-p1) .pv-pergunta p { font-size: 1.125rem; }
@media (min-width: 1100px) { :where(body.rf-p1) .pv-pergunta__n { font-size: 2.125rem; } }
@media (min-width: 1100px) { body:where(.rf-p1).pv48 .pv-pergunta__q { font-size: 1.5625rem; } }
:where(body.rf-p1) .pv-serve__cab { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-serve__lista li { font-size: 1.125rem; }
:where(body.rf-p1) .pv-item__n { font-size: 1.625rem; }
body:where(.rf-p1).pv48 .pv-item__t { font-size: 1.5rem; }
@media (min-width: 1100px) { :where(body.rf-p1) .pv-item__n { font-size: 2rem; } }
@media (min-width: 1100px) { body:where(.rf-p1).pv48 .pv-item__t { font-size: 1.75rem; } }
:where(body.rf-p1) .pv-celular__leg { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-cel__tela { font-size: 0.75rem; }
:where(body.rf-p1) .pv-t-marca { font-size: 0.875rem; }
:where(body.rf-p1) .pv-t-hbtn { font-size: 0.625rem; }
:where(body.rf-p1) .pv-t-sec { font-size: 0.6875rem; }
:where(body.rf-p1) .pv-t-kicker { font-size: 0.6875rem; }
:where(body.rf-p1) .pv-t-foco { font-size: 1.1875rem; }
:where(body.rf-p1) .pv-t-foco2 { font-size: 0.875rem; }
:where(body.rf-p1) .pv-t-meta { font-size: 0.65625rem; }
:where(body.rf-p1) .pv-t-btn { font-size: 0.75rem; line-height: 2.125rem; }
:where(body.rf-p1) .pv-t-link { font-size: 0.71875rem; }
:where(body.rf-p1) .pv-t-idx .n { font-size: 0.59375rem; }
:where(body.rf-p1) .pv-t-idx .t { font-size: 0.78125rem; }
:where(body.rf-p1) .pv-t-idx .d { font-size: 0.65625rem; }
:where(body.rf-p1) .pv-t-regua { font-size: 0.65625rem; }
:where(body.rf-p1) .pv-t-enun { font-size: 0.78125rem; }
:where(body.rf-p1) .pv-t-opt { font-size: 0.71875rem; }
:where(body.rf-p1) .pv-t-letra { font-size: 0.59375rem; }
:where(body.rf-p1) .pv-t-otag { font-size: 0.59375rem; }
:where(body.rf-p1) .pv-t-result { font-size: 0.875rem; }
:where(body.rf-p1) .pv-t-coment { font-size: 0.71875rem; }
:where(body.rf-p1) .pv-t-fim__titulo { font-size: 1.1875rem; }
:where(body.rf-p1) .pv-t-fim__conta { font-size: 0.875rem; }
:where(body.rf-p1) .pv-t-fim__nota { font-size: 0.6875rem; }
:where(body.rf-p1) .pv-t-volta__cab { font-size: 0.6875rem; }
:where(body.rf-p1) .pv-t-volta__datas b { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-t-volta__datas span { font-size: 0.59375rem; }
:where(body.rf-p1) .pv-t-vitoria { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-barra__pos { font-size: 0.9375rem; }
body:where(.rf-p1).pv48 .pv-barra__rever { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-indice__rot { font-size: 0.90625rem; }
:where(body.rf-p1) .pv-indice__eixo { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-preco__rot { font-size: 0.78125rem; }
:where(body.rf-p1) .pv-preco__parcela { font-size: 2.875rem; }
:where(body.rf-p1) .pv-preco__vista { font-size: 1.875rem; }
:where(body.rf-p1) .pv-preco__frase { font-size: 1.0625rem; }
:where(body.rf-p1) .pv-preco__de { font-size: 1.3125rem; }
:where(body.rf-p1) .pv-preco__ate { font-size: 0.875rem; }
:where(body.rf-p1) .pv-cert { font-size: 1.125rem; }
:where(body.rf-p1) .pv-cert__cab { font-size: 1.5rem; }
:where(body.rf-p1) .pv-cert--rota .pv-cert__cab { font-size: 1.5625rem; }
:where(body.rf-p1) .pv-cert__selo { font-size: 0.71875rem; }
:where(body.rf-p1) .pv-cert__selo b { font-size: 1.5625rem; }
:where(body.rf-p1) .pv-cert--rota .pv-cert__selo b { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-cert p.pv-cert__ass { font-size: 0.84375rem; }
@media (min-width: 600px) { :where(body.rf-p1) .pv-cert { font-size: 1.1875rem; } }
@media (min-width: 600px) { :where(body.rf-p1) .pv-cert__cab { font-size: 1.6875rem; } }
@media (min-width: 600px) { :where(body.rf-p1) .pv-cert--rota .pv-cert__cab { font-size: 1.75rem; } }
@media (max-width: 359.98px) { :where(body.rf-p1) .pv-cert__cab,
:where(body.rf-p1) .pv-cert--rota .pv-cert__cab { font-size: 1.375rem; } }
body:where(.rf-p1).pv48 .pv-faq__rot { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-faq__grupo summary { font-size: 1.0625rem; }
:where(body.rf-p1) .pv-faq__grupo details p { font-size: 1.125rem; }
:where(body.rf-p1) .pv-alterna { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-rbloco { font-size: 0.875rem; }
:where(body.rf-p1) .pv-rbloco__pto { font-size: 0.78125rem; }
:where(body.rf-p1) .pv-ritem__t { font-size: 1.0625rem; }
:where(body.rf-p1) .pv-ritem__m { font-size: 0.84375rem; }
:where(body.rf-p1) .pv-rsalto { font-size: 0.875rem; }
:where(body.rf-p1) .pv-rparada { font-size: 0.875rem; }
:where(body.rf-p1) .pv-reordena__parada { font-size: 0.9375rem; }
:where(body.rf-p1) .pv-cartao__nome { font-size: 0.875rem; }
:where(body.rf-p1) .pv-cartao__n { font-size: 2.75rem; }
body:where(.rf-p1).pv48 .pv-bolha { font-size: 0.65625rem; }
@media (min-width: 600px) { body:where(.rf-p1).pv48 .pv-bolha { font-size: 0.71875rem; } }
:where(body.rf-p1) .pv-cartao__assunto { font-size: 0.90625rem; }
:where(body.rf-p1) .pv-regua__rotulo { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-regua__zero,
:where(body.rf-p1) .pv-regua__oitenta { font-size: 0.78125rem; }
:where(body.rf-p1) .pv-volta__parada em { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-volta__estados li { font-size: 1rem; }
:where(body.rf-p1) .pv-demo__aviso { font-size: 1rem; }
:where(body.rf-p1) .pv-demoq__conta { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-demoq__enun { font-size: 1.125rem; }
body:where(.rf-p1).pv48 .pv-opt { font-size: 1rem; }
:where(body.rf-p1) .pv-opt__l { font-size: 0.8125rem; }
:where(body.rf-p1) .pv-demoq__veredito { font-size: 1.25rem; }
:where(body.rf-p1) .pv-demoq__coment { font-size: 1.03125rem; }
:where(body.rf-p1) .pv-demo__fecho { font-size: 1.0625rem; }
body:where(.rf-p1).pv48 .pv-demo__abrir { font-size: 0.9375rem; }
body:where(.rf-p1).pv48 .pv-wa__pergunta { font-size: 0.875rem; }
body:where(.rf-p1).pv48 .pv-wa__botao { font-size: 0.9375rem; }
@media (min-width: 1360px) { :where(body.rf-p1) .pv-guia__item { font-size: 0.78125rem; } }
body:where(.rf-p1).pv48 .pv-dupla--afericao .pv-realce { font-size: 1.5rem; }
@media (min-width: 600px) { body:where(.rf-p1).pv48 .pv-dupla--afericao .pv-realce { font-size: 1.8125rem; } }
@media (min-width: 1100px) { body:where(.rf-p1).pv48 .pv-dupla--afericao .pv-realce { font-size: 2.25rem; } }
/* pagina-vendas-48-casca.css */
body:where(.rf-p1).pv48 .pv-contagem__chamada { font-size: 0.875rem; }
:where(body.rf-p1) .pv-contagem__n { font-size: 1.125rem; }
:where(body.rf-p1) .pv-contagem__u { font-size: 0.8125rem; }
body:where(.rf-p1).pv48 .pv-contagem__data,
body:where(.rf-p1).pv48 .pv-contagem__fim,
body:where(.rf-p1).pv48 .pv-contagem__semjs { font-size: 0.8125rem; }
body:where(.rf-p1).pv48 .pv-oferta__chamada { font-size: 0.84375rem; }
:where(body.rf-p1) .pv-oferta__de { font-size: 0.84375rem; }
:where(body.rf-p1) .pv-oferta__u { font-size: 0.75rem; }
@media (min-width: 1100px) { :where(body.rf-p1) .pv-oferta__cel:not(:last-child)::after { font-size: 0.75rem; } }
body:where(.rf-p1).pv48 .pv-oferta__fim { font-size: 0.75rem; }
body:where(.rf-p1).pv48 .pv-oferta__acabou { font-size: 0.875rem; }
@media (min-width: 600px) { body:where(.rf-p1).pv48 .pv-oferta__chamada { font-size: 0.9375rem; } }
@media (min-width: 600px) { :where(body.rf-p1) .pv-oferta__de { font-size: 0.9375rem; } }
@media (max-width: 1099.98px) { :where(body.rf-p1) .pv-oferta__ate { font-size: 0.8125rem; } }
@media (max-width: 1099.98px) { :where(body.rf-p1) .pv-oferta__n { font-size: clamp(0.78125rem, 3.2vw, 1.0625rem); } }
@media (max-width: 1099.98px) { :where(body.rf-p1) .pv-oferta__u--curta { font-size: 0.625rem; } }
:where(body.rf-p1) .pv-marca { font-size: 1.3125rem; }
body:where(.rf-p1).pv48 .pv-menu__link { font-size: 0.9375rem; }
body:where(.rf-p1).pv48 .pv-entrar { font-size: 0.9375rem; }
body:where(.rf-p1).pv48 .sp4-footer { font-size: 0.875rem; }
body:where(.rf-p1).pv48 .sp4-footer h4 { font-size: 0.875rem; }
body:where(.rf-p1).pv48 .sp4-footer li a,
body:where(.rf-p1).pv48 .sp4-footer li .linklike { font-size: 0.875rem; }
body:where(.rf-p1).pv48 .sp5-footer__brand .brand__mark { font-size: 1.1875rem; }
/* study_today.css */
:where(.study-html, .training-html) .home .sec { font-size: 0.9375rem; }
:where(.study-html, .training-html) .home .kicker { font-size: 0.875rem; }
:where(.study-html, .training-html) .home .btn--grande { font-size: 1.0625rem; }
:where(.study-html, .training-html) .hoje__data { font-size: 0.875rem; }
:where(.study-html, .training-html) .hoje__h { font-size: 1.875rem; }
:where(.study-html, .training-html) .hoje__ordem { font-size: 1.0625rem; }
:where(.study-html, .training-html) .hoje__errata { font-size: 1rem; }
:where(.study-html, .training-html) .agenda__n { font-size: 1rem; }
:where(.study-html, .training-html) .agenda__t { font-size: 1.3125rem; }
:where(.study-html, .training-html) .agenda__meta { font-size: 0.875rem; }
:where(.study-html, .training-html) .agenda__nota { font-size: 0.875rem; }
:where(.study-html, .training-html) .agenda__etapas { font-size: 0.875rem; }
:where(.study-html, .training-html) .home__bloco-onde { font-size: 0.875rem; }
:where(.study-html, .training-html) .today__peca::before { font-size: 0.84375rem; }
:where(.study-html, .training-html) .today__peca-t { font-size: 1rem; }
:where(.study-html, .training-html) .today__peca-m { font-size: 0.84375rem; }
:where(.study-html, .training-html) .evo__n { font-size: 2rem; }
:where(.study-html, .training-html) .evo__t { font-size: 1.0625rem; }
:where(.study-html, .training-html) .evo__s { font-size: 0.875rem; }
:where(.study-html, .training-html) .evo--falta .evo__t { font-size: 1rem; }
:where(.study-html, .training-html) .home__onde-frase { font-size: 1.0625rem; }
:where(.study-html, .training-html) .garantia__frase { font-size: 1.0625rem; }
:where(.study-html, .training-html) .garantia__nota { font-size: 0.875rem; }
@media (max-width: 400px) { :where(.study-html, .training-html) .hoje__h { font-size: 1.6875rem; } }
@media (max-width: 400px) { :where(.study-html, .training-html) .agenda__t { font-size: 1.25rem; } }
@media (min-width: 600px) { :where(.study-html, .training-html) .hoje__h { font-size: 2.5rem; } }
/* study_progress.css */
:where(.study-html, .training-html) .rota__title { font-size: 1.875rem; }
:where(.study-html, .training-html) .rota__lead { font-size: 1.0625rem; }
:where(.study-html, .training-html) .rota__tudo { font-size: 0.9375rem; }
:where(.study-html, .training-html) .tobogan__aqui { font-size: 0.8125rem; }
:where(.study-html, .training-html) .tobogan__faixa { font-size: 0.8125rem; }
:where(.study-html, .training-html) .rota-fatos p { font-size: 1.0625rem; }
:where(.study-html, .training-html) .faixa__h { font-size: 1.625rem; }
:where(.study-html, .training-html) .bloco-row .n { font-size: 0.84375rem; }
:where(.study-html, .training-html) .bloco-row .t { font-size: 1rem; }
:where(.study-html, .training-html) .bloco-row .t small { font-size: 0.84375rem; }
:where(.study-html, .training-html) .bloco-row__nota { font-size: 0.84375rem; }
@media (min-width: 600px) { :where(.study-html, .training-html) .rota__title { font-size: 2.75rem; } }
@media (min-width: 600px) { :where(.study-html, .training-html) .rota__lead { font-size: 1.1875rem; } }
@media (max-width: 479px) { :where(.study-html, .training-html) .tobogan__faixa { font-size: 0.75rem; } }
/* study_notebook.css */
:where(.study-html, .training-html) .nb-title { font-size: 1.875rem; }
:where(.study-html, .training-html) .nb-summary { font-size: 1.0625rem; }
:where(.study-html, .training-html) .nb-rule { font-size: 0.90625rem; }
@media (min-width: 600px) { :where(.study-html, .training-html) .nb-title { font-size: 2.75rem; } }
@media (min-width: 600px) { :where(.study-html, .training-html) .nb-summary { font-size: 1.25rem; } }
:where(.study-html, .training-html) .nb-lead { font-size: 1.0625rem; }
:where(.study-html, .training-html) .nb-main .sec { font-size: 0.9375rem; }
:where(.study-html, .training-html) .nb-prova__frase { font-size: 1.375rem; }
:where(.study-html, .training-html) .nb-prova__sub { font-size: 0.9375rem; }
:where(.study-html, .training-html) .nb-grupo__nota { font-size: 0.875rem; }
:where(.study-html, .training-html) .nb-row .n { font-size: 0.84375rem; }
:where(.study-html, .training-html) .nb-row .t { font-size: 1.0625rem; }
:where(.study-html, .training-html) .nb-row .dur { font-size: 0.875rem; }
:where(.study-html, .training-html) .nb-row__estado { font-size: 0.875rem; }
:where(.study-html, .training-html) .selo { font-size: 0.8125rem; }
@media (min-width: 600px) { :where(.study-html, .training-html) .nb-lead { font-size: 1.1875rem; } }
@media (min-width: 600px) { :where(.study-html, .training-html) .nb-prova__frase { font-size: 1.625rem; } }
/* study_shell.css */
:where(.study-html, .training-html) .brand { font-size: 1.1875rem; }
:where(.study-html, .training-html) .navl { font-size: 0.9375rem; }
:where(.study-html, .training-html) .hbtn { font-size: 0.90625rem; }
:where(.study-html, .training-html) .tab { font-size: 0.78125rem; }
@media (max-width: 359px) { :where(.study-html, .training-html) .tab { font-size: 0.71875rem; } }
:where(.study-html, .training-html) .sessao-caiu { font-size: 0.875rem; }
:where(.study-html, .training-html) .sessao-caiu__link { font-size: 0.875rem; }
/* ── fim do bloco gerado (GATE-D6v2-COR) ── */

/* ── 2 · Base comum (base.html) ─────────────────────────────────────────────────────── */
body {
  background-image: none;
  font-family: var(--rf-texto);
  caret-color: var(--rf-cobre);
}
h1, h2,
.meta__value,
.offer__price {
  font-family: var(--rf-titulo);
  font-weight: 800;
  letter-spacing: -0.01em;
}
h3 { font-family: var(--rf-texto); font-weight: 700; }

/* As superfícies do navegador: a seleção no realce (grafite/realce 10,33:1), a barra de rolagem
   em borda e pedra, o sublinhado afastado da letra e os números de tabela alinhados. */
::selection { background: var(--rf-realce); color: var(--rf-grafite); }
html { scrollbar-color: var(--rf-borda) var(--rf-pedra); }
a { text-underline-offset: .18em; }
table { font-variant-numeric: tabular-nums; }

/* O foco é o mesmo em toda superfície: 3 px, afastado 2 px, na cor de `--rf-anel` — grafite no
   claro (15,79:1 no branco). */
.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible,
body.pv48 :focus-visible {
  outline: 3px solid var(--rf-anel);
  outline-offset: 2px;
}
/* ⭐ Sobre o campo cobre o anel grafite dá 2,86:1 (reprovado); o branco dá 5,52:1. A troca é
   do CAMPO inteiro: todo controle e link de dentro dele herda o anel branco, inclusive o botão
   invertido (branco com texto cobre-esc) do topo no computador. */
.rf-campo,
.rf-contagem {
  --rf-anel: var(--rf-foco-no-cobre);
  --rf-foco: 3px solid var(--rf-foco-no-cobre);
  --focus: var(--rf-foco-no-cobre);
}
@media (min-width: 1000px) {
  .rf-hero {
    --rf-anel: var(--rf-foco-no-cobre);
    --rf-foco: 3px solid var(--rf-foco-no-cobre);
    --focus: var(--rf-foco-no-cobre);
  }
}
/* ⭐ D6-01 (gate D6 v2): o rodapé é GRAFITE, e o anel grafite nele dava 1:1 — o foco sumia em todo
   link e botão do rodapé (página, contagem, aviso; Pro, retornos, erro, entrar e senha pelo
   `base.html`). A troca é do rodapé INTEIRO, como no campo cobre: o anel fica branco (15,79:1 no
   grafite), pelos três nomes que as folhas leem (`--rf-anel`, `--rf-foco`, `--focus`). */
.site-footer,
.rf-rodape {
  --rf-anel: var(--rf-foco-no-escuro);
  --rf-foco: 3px solid var(--rf-foco-no-escuro);
  --focus: var(--rf-foco-no-escuro);
}

/* Botões: a ação é UMA cor, o cobre; o texto é branco (5,52:1). Altura de toque ≥ 48 px. */
.btn { min-height: 48px; border-radius: var(--rf-raio); font-family: var(--rf-texto); }
.btn--primary { background: var(--rf-grafite); color: var(--rf-branco); }
.btn--primary:hover { background: var(--rf-cobre-texto); }
.btn--conversion,
.btn--purchase { background: var(--rf-cobre); border-color: var(--rf-cobre); color: var(--rf-branco); }
.btn--conversion:hover, .btn--conversion:focus-visible,
.btn--purchase:hover, .btn--purchase:focus-visible {
  background: var(--rf-cobre-texto); border-color: var(--rf-cobre-texto); color: var(--rf-branco);
}
.btn--ghost { color: var(--rf-grafite); border-color: var(--rf-borda); }
.btn--ghost:hover { border-color: var(--rf-grafite); }
.link-underline { color: var(--rf-cobre-texto); }

/* O topo e o rodapé do portal. A assinatura é imagem (`.rf-assinatura`): ⛔ fonte, ⛔ texto. */
.site-header { background: color-mix(in srgb, var(--rf-fundo) 94%, transparent); border-bottom-color: var(--rf-pedra); }
.nav a { color: var(--rf-texto2); }
.nav a:hover { color: var(--rf-grafite); }
.site-footer { background: var(--rf-grafite); color: var(--rf-tinta-escura); }
.site-footer a { color: var(--rf-tinta-escura); }
.site-footer a:hover { color: var(--rf-branco); }
.site-footer h4 { color: var(--rf-tinta-escura); }
.site-footer__legal { color: var(--rf-tinta-escura); border-top-color: rgba(255, 255, 255, .14); }

.rf-assinatura { display: block; flex: none; width: auto; max-width: none; }
.brand .rf-assinatura, .sp5-brand .rf-assinatura { height: 24px; }
.site-footer .rf-assinatura, .sp4-footer .rf-assinatura { height: 22px; }
.site-footer__grid .rf-assinatura { margin-bottom: 8px; }
@media (min-width: 600px) {
  .brand .rf-assinatura, .sp5-brand .rf-assinatura { height: 40px; }
}
/* S09 (1E.4c): a 320 e a 360 px a assinatura do topo (24 px de altura, 243 px de largura) passava por baixo do
   "Entrar": o link `.brand` encolhia (`min-width: 0`, app.css) e a imagem não. Agora ela ocupa a largura que sobra
   ao lado da navegação e diminui na proporção, com teto de 24 px de altura (40 px a partir de 600). Abaixo de 360 px
   o "Entrar" perde respiro dos lados para a assinatura ficar acima de 18 px de altura; a letra e os 48 px de altura
   do botão ficam. */
.site-header .brand .rf-assinatura-quadro { min-width: 0; max-width: 100%; }
.site-header .brand .rf-assinatura { height: auto; max-width: 100%; max-height: 24px; }
@media (min-width: 600px) {
  .site-header .brand .rf-assinatura { max-height: 40px; }
}
@media (max-width: 359.98px) {
  .site-header .nav__cta { padding-inline: .75rem; }
}
/* "Pular para o conteúdo": branco no grafite (15,79:1) também onde a folha da página pinta `a`. */
body .skip-link, body.checkout-v2-page a.skip-link { color: var(--rf-branco); background: var(--rf-grafite); }
.messages li { background: var(--rf-pedra); border-color: var(--rf-pedra); }

/* Formulários (login, cadastro, senha, checkout): campo de 48 px, letra de 17 px. */
.form input[type="email"], .form input[type="password"], .form input[type="text"],
input.input, .field input {
  min-height: 48px;
  font-size: 1.0625rem;
  border-color: var(--rf-borda);
  border-radius: var(--rf-raio);
}
/* S18 (RF-REV1): o texto de exemplo era um cinza de 3,43:1; agora 5,30:1 no branco, em todo campo
   (login, pré-checkout, checkout). O Firefox apaga o placeholder com `opacity`: volta a 1. */
input::placeholder, textarea::placeholder,
body.checkout-v2-page .ckv2-field input::placeholder {
  color: var(--rf-placeholder);
  opacity: 1;
}

/* ── 3 · A página de vendas do 48º ──────────────────────────────────────────────────── */
/* Literata 800 SÓ aqui: os títulos de seção (h1/h2/h3 de 24 px ou mais) e os números de
   destaque. Todo o resto que hoje é serifado passa à Hanken (o `--serif` aponta para ela). */
body.pv48 .pv-h1,
body.pv48 .pv-h2,
body.pv48 .pv-h3, body.pv48 .pv-afericao > h3,
body.pv48 .pv-conta__titulo,
body.pv48 .pv-item__t,
.pv-cert__cab,
.pv-num,
.pv-cartao__n,
.pv-preco__parcela,
.pv-preco__vista,
.pv-cert__selo b,
.pv-pergunta__n,
.pv-item__n,
.pv-oferta__por {
  font-family: var(--rf-titulo);
  font-weight: 800;
  font-variation-settings: normal;
}
.pv-preco__parcela span:first-child { font-family: var(--rf-texto); font-weight: 600; }
/* Com a oferta, o único `span` do bloco É o preço (hoje sai pela metade, na regra do "12×" acima):
   o número de destaque volta ao tamanho do bloco, em Literata 800. */
body.pv48 .pv-preco__parcela > .pv-nowrap:only-child {
  font-family: var(--rf-titulo);
  font-weight: 800;
  font-size: 1em;
  letter-spacing: -.02em;
}
body.pv48 .pv-h1 { letter-spacing: -.012em; }

/* O botão de compra: cobre com texto branco (5,52:1); a mão em cima escurece um tom (7,49:1). */
body.pv48 .pv-cta,
body.pv48 .pv-cta[aria-disabled="true"]:hover,
body.pv48 .pv-cta[aria-disabled="true"]:active,
.pv-t-btn--pri {
  background: var(--rf-cobre); border-color: var(--rf-cobre); color: var(--rf-branco);
}
body.pv48 .pv-cta { min-height: 56px; border-radius: var(--rf-raio); font-size: 1.125rem; }
body.pv48 .pv-cta:hover, body.pv48 .pv-cta:active {
  background: var(--rf-cobre-texto); border-color: var(--rf-cobre-texto);
}
body.pv48 .pv-pular { background: var(--rf-grafite); color: var(--rf-branco); }

/* Dados e sequência (a parte "B" da mistura): barras, blocos, réguas e curvas em petróleo. */
.pv-blocos i,
.pv-barra__trilho i,
.pv-regua__teto,
.pv-serve__col--sim li::before { background: var(--rf-petroleo); }
.pv-toboga__tom { stop-color: var(--rf-petroleo); }

/* A barra de oferta e a contagem: grafite e papel; o preço em cobre claro (8,74:1). */
.pv-oferta { background: var(--rf-grafite); }
.pv-oferta__por { color: var(--rf-cobre-claro); }
.pv-contagem__n { color: var(--rf-grafite); }
.pv-contagem { background: var(--rf-superficie); }

/* O topo: a assinatura no papel. Os controles de toque com 48 px. */
.pv-topo { background: var(--rf-fundo); border-bottom-color: var(--rf-pedra); }
.pv-marca .rf-assinatura { width: auto; height: 24px; border-radius: 0; }
@media (min-width: 600px) { .pv-marca .rf-assinatura { height: 40px; } }
html.com-js .pv-menu__abrir, body.pv48 .pv-entrar {
  min-height: 48px; border-color: var(--rf-borda); border-radius: var(--rf-raio);
}
body.pv48 .pv-menu__fechar { min-width: 48px; min-height: 48px; }

/* O rodapé da 48: superfície quente, a assinatura-casa. */
body.pv48 .sp4-footer { background: var(--rf-superficie); }
body.pv48 .sp5-footer__brand .rf-assinatura { width: auto; height: 22px; border-radius: 0; }
/* Espaço livre em volta da assinatura: no mínimo a altura de um bloco do símbolo (LEIA-ME). */
body.pv48 .sp5-footer__brand { margin-bottom: 16px; }

/* O botão fixo do celular: 56 px de toque, papel atrás. */
.pv-fixo { background: var(--rf-fundo); }
body.pv48 .pv-cta--fixo { min-height: 56px; }

/* O diálogo de pré-checkout (pagina-vendas-48-precheckout.css). */
.pv-pre__titulo, .pv-pre h2 { font-family: var(--rf-titulo); font-weight: 800; }

/* ── 4 · O checkout transparente e a confirmação do Checkout Pro ────────────────────── */
body.checkout-v2-page h1,
body.checkout-v2-page .ckv2-title { font-family: var(--rf-titulo); font-weight: 800; }
/* Os h2 e h3 do checkout são pequenos (18 a 21 px): Hanken, ⛔ serifa. */
body.checkout-v2-page h2,
body.checkout-v2-page h3 { font-family: var(--rf-texto); font-weight: 700; }
body.checkout-v2-page .ckv2-price__value,
body.checkout-v2-page .ckv2-installments__amount { font-family: var(--rf-titulo); font-weight: 800; }
body.checkout-v2-page .ckv2-banner { border-radius: 14px; box-shadow: none; }
body.checkout-v2-page .ckv2-trust__check { color: var(--rf-branco); background: var(--rf-petroleo); }
body.checkout-v2-page .ckv2-summary__icon { border-radius: 12px; }
/* S03 (RF-REV1): o campo do checkout desenha a própria borda (um cinza de 1,56:1) e um foco dourado de
   hoje. Com a chave: a borda de controle (4,26:1) e o anel da casa, grafite de 3 px. */
body.checkout-v2-page .ckv2-field input { border-color: var(--rf-borda); border-radius: var(--rf-raio); }
body.checkout-v2-page .ckv2-field input:focus,
body.checkout-v2-page .ckv2-field input:focus-visible {
  outline: 3px solid var(--rf-anel);
  outline-offset: 2px;
  border-color: var(--rf-borda);
  box-shadow: none;
}

/* ── 5 · A área do aluno (study_*.css), começando pelo "Hoje" ───────────────────────── */
.study-html {
  --paper: var(--rf-fundo);
  --raised: var(--rf-pedra);
  --ink: var(--rf-grafite);
  --soft: var(--rf-texto2);
  --rule: rgba(32, 35, 38, .14);
  --rule2: rgba(32, 35, 38, .30);
  --ctl: var(--rf-borda);
  --accent: var(--rf-cobre-texto);
  --accent-soft: rgba(168, 79, 29, .12);
  --on-accent: var(--rf-branco);
  --focus: var(--rf-foco-claro);
  --quiet: var(--rf-pedra);
  --serif: var(--rf-texto);
  --sans: var(--rf-texto);
}
/* O enunciado e as alternativas (treino, leitor, progresso) vêm do token `--font-text` de cada
   folha, declarado no mesmo seletor dela: a ponte o leva à Literata (⛔ a serifa antiga na Rota Forte). */
.training-html,
.reader-html,
.rp-html { --font-text: var(--rf-titulo); }
/* O tema escuro que a pessoa escolhe na Conta: grafite, e o cobre claro como destaque. */
.study-html[data-tema-aluno="escuro"] {
  --paper: #1A1C1F;
  --raised: var(--rf-grafite);
  --ink: #EDE6DA;
  --soft: var(--rf-tinta-escura);
  --rule: rgba(237, 230, 218, .16);
  --rule2: rgba(237, 230, 218, .32);
  --ctl: #8C8780;
  --accent: var(--rf-cobre-claro);
  --accent-soft: rgba(242, 179, 143, .16);
  --on-accent: var(--rf-grafite);
  --focus: var(--rf-cobre-claro);
  --rf-anel: var(--rf-cobre-claro);
  --quiet: #2B2F33;
}
.study-html .hoje__h,
.study-html .evo__n,
.study-html .msg h1 { font-family: var(--rf-titulo); font-weight: 800; }
.study-html .btn--primary {
  background: var(--rf-cobre); border-color: var(--rf-cobre); color: var(--rf-branco);
  min-height: 52px; border-radius: var(--rf-raio);
}
.study-html .btn--primary:hover { background: var(--rf-cobre-texto); border-color: var(--rf-cobre-texto); }
.study-html[data-tema-aluno="escuro"] .btn--primary,
.study-html[data-tema-aluno="escuro"] .btn--primary:hover {
  background: var(--rf-cobre-claro); border-color: var(--rf-cobre-claro); color: var(--rf-grafite);
}
/* No celular a marca divide a linha com "Buscar" e "Conta": 15 px de altura = 152 px de largura,
   acima do mínimo de 120 px da assinatura-casa (marca/LEIA-ME.md), e o topo ⛔ quebra em duas. */
.study-html .brand .rf-assinatura { height: 15px; }
@media (min-width: 600px) { .study-html .brand .rf-assinatura { height: 22px; } }
.rf-assinatura-quadro { display: block; line-height: 0; }

/* ── 6 · As páginas de erro (404 e 500, `templates/brand/erro.html`) ─────────────────── */
.rf-erro__corpo { padding-block: 3.5rem 4rem; }
.rf-erro__corpo h1 { font-size: clamp(2rem, 6vw, 3rem); }
.rf-erro__corpo p { margin-top: 1rem; font-size: 1.125rem; color: var(--rf-texto2); }

/* Movimento reduzido: nada aqui anima; a folha só herda as transições de hoje. */
