/* Modo alto contraste — segue WCAG AAA */
body.high-contrast {
    --color-primary:        #000000;
    --color-primary-dark:   #000000;
    --color-primary-light:  #000000;
    --color-accent:         #ffd900;
    --color-accent-dark:    #ffd900;

    --color-text:           #ffffff;
    --color-text-muted:     #ffffff;
    --color-text-inverse:   #000000;

    --color-bg:             #000000;
    --color-bg-alt:         #111111;
    --color-bg-deep:        #000000;
    --color-border:         #ffffff;
    --color-link:           #ffd900;
    --color-link-hover:     #ffffff;
}

body.high-contrast img,
body.high-contrast video,
body.high-contrast iframe {
    filter: grayscale(1) contrast(1.1);
}
body.high-contrast .hero__media::after {
    background: rgba(0,0,0,.85);
}
body.high-contrast .badge--ok  { background: #ffd900; color: #000; }
body.high-contrast .badge--off { background: #ffffff; color: #000; }

/* Tamanho da fonte controlado por --font-scale (definido em :root e ajustado via JS) */
html.font-size-sm  { --font-scale: 0.875; }
html.font-size-md  { --font-scale: 1.000; }
html.font-size-lg  { --font-scale: 1.125; }
html.font-size-xl  { --font-scale: 1.250; }

/* Indicador visual quando o foco vem do teclado */
body.keyboard-nav :focus-visible {
    outline: 4px solid var(--color-accent);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
