/* ============================================================================
   ACESSIBILIDADE — Para que a mensagem alcance a todos
   "Ide por todo o mundo..." — Marcos 16:15
   ============================================================================ */

/* Alto contraste (toggle via body.alto-contraste) */
body.alto-contraste {
    --primary: #1565C0; --primary-light: #1976D2; --primary-dark: #0D47A1;
    --gold: #E65100; --gold-light: #FF6D00;
    --gray-50: #f0f0f0; --gray-100: #e0e0e0; --gray-200: #bdbdbd;
    --gray-400: #616161; --gray-500: #424242; --gray-600: #212121;
    --gray-700: #111; --gray-800: #000; --gray-900: #000;
    --white: #fff; --black: #000;
}
body.alto-contraste .card { border: 2px solid var(--gray-300); }
body.alto-contraste .btn { border: 2px solid currentColor; }
body.alto-contraste a { text-decoration: underline; }
body.alto-contraste .navbar { background: #fff !important; border-bottom: 2px solid #000 !important; }

/* Fonte grande */
body.fonte-grande { font-size: 18px; }
body.fonte-grande h1 { font-size: 2.5rem; } body.fonte-grande h2 { font-size: 2rem; }
body.fonte-grande h3 { font-size: 1.5rem; } body.fonte-grande .btn { font-size: 1rem; padding: 12px 24px; }

body.fonte-extra-grande { font-size: 20px; }
body.fonte-extra-grande h1 { font-size: 2.8rem; } body.fonte-extra-grande h2 { font-size: 2.2rem; }

/* Focus visible */
*:focus-visible {
    outline: 3px solid var(--primary); outline-offset: 2px;
    border-radius: 4px;
}

/* Reduzir movimento */
@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;
    }
    .fade-up { opacity: 1; transform: none; }
    .hero-rays, .hero-clouds, .hero-particles { display: none; }
}

/* Skip link */
.skip-link {
    position: absolute; top: -50px; left: var(--space-4);
    padding: var(--space-3) var(--space-5); background: var(--primary);
    color: #fff; border-radius: var(--radius-md); font-weight: 700;
    z-index: 10000; transition: top 0.2s;
}
.skip-link:focus { top: var(--space-4); }

/* Screen reader only */
.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0;
    margin: -1px; overflow: hidden; clip: rect(0,0,0,0);
    white-space: nowrap; border-width: 0;
}
