/* farpa-ds-core · core/a11y.css · v1.0 · 2026-05-02
   origem: AI/base.css §2-§3 + AI/components/toggle-hc.css @ Wave 19 Onda D3.6
   ==========================================================================
   ACESSIBILIDADE — invariantes Nível 1 absolutos (ADR 022).
   U3 · WCAG AA · skip-link + focus-visible + sr-only.
   U2 · base do toggle alto contraste (CSS está em components-core/toggle-hc.css;
        este arquivo só garante o pré-render anti-flash via [data-theme="hc"]).

   Carregar APÓS tokens-produto.css (precisa de --accent · --surface · --focus-ring-color).
*/

/* ============================================================ */
/* 1. SKIP LINK — WCAG 2.4.1 (U3 Nível 1 absoluto)                */
/* Primeiro elemento focável de toda página farpa.                */
/* ============================================================ */
.skip-link {
  position: fixed;
  top: var(--sp-4);
  left: var(--sp-4);
  z-index: var(--z-skip);
  padding: var(--sp-3) var(--sp-6);
  background: var(--accent);
  color: var(--surface, #fff);
  font-family: var(--font-ui, system-ui, sans-serif);
  font-size: var(--fs-sm);
  font-weight: 700;
  border-radius: var(--r-md);
  transform: translateY(-200%);
  transition: transform var(--dur-fast) var(--ease-out);
  text-decoration: none;
  white-space: nowrap;
}

.skip-link:focus {
  transform: translateY(0);
  outline: var(--focus-ring-width) solid var(--focus-ring-color, var(--accent));
  outline-offset: var(--focus-ring-offset);
}

/* ============================================================ */
/* 2. FOCUS VISIBLE — todos os interativos                         */
/* ============================================================ */
:focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color, var(--accent));
  outline-offset: var(--focus-ring-offset);
  border-radius: var(--r-sm);
}

:focus:not(:focus-visible) {
  outline: none;
}

/* ============================================================ */
/* 3. SR-ONLY — texto visualmente oculto, lido por screen reader  */
/* ============================================================ */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ============================================================ */
/* 4. PRÉ-RENDER ANTI-FLASH — invariante U2                       */
/* O <script> inline em <head> deve setar data-theme="hc" ANTES   */
/* do paint. Esta classe garante que o body já saiba o tema antes */
/* dos componentes carregarem (defesa em profundidade).           */
/* Implementado em components-core/toggle-hc.js + invocado inline */
/* no <head> do template-produto.                                  */
/* ============================================================ */
html[data-theme="hc"],
html[data-theme="hc"] body {
  /* Marcador semântico — overrides reais vêm de themes-hc.css.   */
}
