/* ==========================================================================
   base.css — Constantes Blueberry (padrão da casa, acima dos arquétipos)
   --------------------------------------------------------------------------
   Fonte: valores com DISPERSÃO ZERO nas 4 páginas medidas do acervo
   (advocacia + planetasollar + dalbosco + kabod, 2026-08).
   Regras:
   - ZERO cor aqui — cor é sempre identidade do cliente (tokens do projeto).
   - Os arquétipos incluem este arquivo ANTES do tokens.css deles (cópia
     idêntica em assets/base.css, para o site continuar autocontido) e o
     tokens.css carrega APENAS o que varia.
   - Tudo aqui é default sobrescrevível: redefina o token no tokens.css do
     projeto quando a medição do cliente pedir.
   ========================================================================== */

:root {
  /* ---- Containers alternados (dispersão zero em 4/4 páginas) ---- */
  --container-creme: 1300px;   /* seções de fundo alternado (largas) */
  --container-branco: 1140px;  /* seções de fundo base + rodapé */

  /* ---- Corpo de texto (16/24 peso 300 — majoritário 4/6 no acervo válido;
          a família odonto diverge: stk 16/26, wodonto 18/24. Decisão 2026-08-17:
          16/24 É o default sobrescrevível — projeto que divergir redefine no
          próprio tokens.css) ---- */
  --fs-corpo: 1rem;        /* 16px */
  --lh-corpo: 1.5rem;      /* 24px */
  --fw-corpo: 300;

  /* ---- Título de seção — desktop (42/50 em 3/4; a 4ª usa 40) ---- */
  --fs-secao: 2.625rem;    /* 42px */
  --lh-secao: 3.125rem;    /* 50px */

  /* ---- Título de bloco (20px em 4/4; 28/600 em 3/4) ---- */
  --fs-bloco: 1.25rem;     /* 20px */
  --lh-bloco: 1.75rem;     /* 28px */
  --fw-bloco: 600;

  /* ---- Rodapé (30/30 em 4/4) ---- */
  --pad-rodape: 1.875rem;  /* 30px */

  /* ---- Botão (Questrial 600 em 3/4 — DEFAULT da casa, sobrescrevível) ---- */
  --font-botao: "Questrial", system-ui, sans-serif;
  --fw-botao: 600;
  --tracking-botao: 1px;
  /* uppercase é regra de estilo dos arquétipos (text-transform), não token */

  /* ---- Ritmo vertical POR BREAKPOINT (Correção C) ----
     Desktop 90 é consistente; mobile teve dispersão 40–90 no acervo →
     token obrigatório por breakpoint. Cada arquétipo/projeto sobrescreve
     com o valor medido (arquétipo 1: 90/90; arquétipo 2: 90/50). */
  --space-section: 5.625rem;         /* desktop: 90px */
  --space-section-mobile: 3.125rem;  /* mobile: 50px (mediana do acervo) */
  --space-section-compacta: 3.125rem; /* modificador opcional .section--compacta */
}

/* ==========================================================================
   Correções de padrão técnico web (checklist-qa.md, seção 11) — 2026-08-17
   Regras estruturais, sem cor e sem valor medido do acervo. Cada uma existe
   para zerar um AVISO recorrente do QA nos três arquétipos.
   ========================================================================== */

/* touch-action: remove atraso/zoom de duplo-toque nos controles (mobile).
   Seletores de tipo (0,0,1): não colidem com nenhuma classe dos arquétipos —
   nenhum styles.css declara touch-action. */
a, button, input, select, textarea, summary {
  touch-action: manipulation;
}

/* text-wrap: balance nos títulos. Progressivo (navegador antigo ignora).
   Redistribui SÓ o ponto de quebra de linha — não altera fs/lh medidos. */
h1, h2 {
  text-wrap: balance;
}

/* safe-area: o único elemento full-bleed fixo do sistema é o FAB.
   `a.fab` (0,1,1) VENCE o `.fab` (0,1,0) dos styles.css de cada arquétipo,
   independentemente da ordem de carregamento — por isso a regra pode viver
   aqui sem tocar nos styles.css. Em tela sem notch, env() = 0px e o resultado
   é idêntico ao atual; em tela com notch, o FAB entra para dentro da área segura. */
a.fab {
  right: calc(var(--fab-offset, 20px) + env(safe-area-inset-right, 0px));
  bottom: calc(var(--fab-offset, 20px) + env(safe-area-inset-bottom, 0px));
}

/* Âncoras internas: respiro acima do alvo ao navegar por menu/âncora
   (checklist seção 11 [BLOQUEANTE]; achado B4 da regressão do arq. 02).
   Vale para qualquer arquétipo/projeto; inerte onde não há navegação por
   âncora. Projeto com menu FIXO sobrescreve o token com a altura do menu
   mais o respiro. */
[id] {
  scroll-margin-top: var(--scroll-margem-ancora, 2rem);
}

/* ==========================================================================
   ALTERNÂNCIA DE FUNDOS AUTOMÁTICA — 2026-08-17 (achado do estresse v3)
   --------------------------------------------------------------------------
   Problema: com marcação manual (.section--alt fixa no HTML), desligar um
   bloco do meio produzia duas seções consecutivas de mesmo fundo (critério
   visual 6 da régua). Aqui a alternância é calculada sobre as seções
   EFETIVAMENTE PRESENTES no DOM: remover/religar bloco reencadeia sozinho,
   sem editar HTML.

   Contrato:
   - Participam: filhos diretos de <main> com classe .section.
   - Fora da alternância (não contam posição nem recebem fundo):
     .cta-final e qualquer seção marcada .section--fundo-proprio (ex.: faixa
     de fotos full-bleed, vídeo de fundo próprio) — essas definem o próprio
     background no styles.css do arquétipo. Hero (<header>) e rodapé
     (<footer>) já ficam fora por não serem .section dentro de <main>.
   - Paridade: a 1ª seção do miolo é ALTERNADA (padrão medido nos 3
     arquétipos: a seção logo após o hero é a de fundo alternado).
   - ZERO cor literal aqui: a regra só referencia tokens do projeto
     (--color-alt / --color-on-alt); sem token definido, degrada para
     transparente/herdado.
   - Suporte: :nth-child(... of ...) — Chrome/Edge 111+, Firefox 113+,
     Safari 9+. Navegador sem suporte ignora a regra inteira (página fica
     toda no fundo base — legível, sem quebra).
   ========================================================================== */
main > .section:nth-child(odd of .section:not(.cta-final):not(.section--fundo-proprio)) {
  background: var(--color-alt, transparent);
  color: var(--color-on-alt, inherit);
}
