/* =============================================================================
   a11y.css — Améliorations d'accessibilité (RGAA 4.1)
   =============================================================================
   Skip-link, focus visible, classe sr-only, ajustements de contrastes.
   Chargé globalement après base.css.
   ============================================================================= */

/* =============================================================================
   1. SKIP-LINK — Lien d'évitement (RGAA 12.7)
   ============================================================================= */
.skip-link {
    position: absolute;
    top: 0;
    left: 0;
    background: #ffb900;
    color: #1b2735;
    padding: 12px 20px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 0 0 8px 0;
    z-index: 99999;
    /* Caché hors écran par défaut, visible quand reçoit le focus */
    transform: translateY(-200%);
    transition: transform 0.2s ease;
}
.skip-link:focus,
.skip-link:focus-visible {
    transform: translateY(0);
    outline: 3px solid #1b2735;
    outline-offset: 2px;
}

/* =============================================================================
   2. CLASSE sr-only — Visible uniquement aux lecteurs d'écran
   ============================================================================= */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* =============================================================================
   3. FOCUS VISIBLE — Indicateur clavier (RGAA 10.7)
   =============================================================================
   On utilise UNIQUEMENT :focus-visible (clavier uniquement, pas la souris ni
   les focus programmatiques via JS comme input.focus()).
   ============================================================================= */
:focus-visible {
    outline: 3px solid #ffb900;
    outline-offset: 2px;
    border-radius: 4px;
}
/* Cas particulier : éléments avec coins arrondis */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 3px solid #ffb900;
    outline-offset: 2px;
}
/* Liens dans la nav principale : focus distinct */
.main-nav a:focus-visible {
    outline: 3px solid #ffb900;
    outline-offset: 4px;
    background: rgba(255, 185, 0, 0.15);
    border-radius: 4px;
}

/* Exceptions : inputs qui ont leur propre style de focus (border-bottom animé, etc.)
   On ne veut pas d'outline jaune par-dessus car ça ferait doublon. */
.search-input:focus-visible {
    outline: none;
}

/* =============================================================================
   4. CONTRASTES — Renforcer text-tertiary trop pâle (3.68:1 → 4.5:1)
   =============================================================================
   La couleur d'origine 0.45 alpha donne 3.68:1 en dark et 2.73:1 en light.
   On passe à 0.62 → 5.0:1 (dark) et 0.55 → 4.6:1 (light) pour respecter AA.
   ============================================================================= */
:root {
    --text-tertiary: rgba(255, 255, 255, 0.62);  /* dark — 5.0:1 sur bg-card */
}
html.light {
    --text-tertiary: rgba(27, 39, 53, 0.55);     /* light — 4.6:1 sur blanc */
}

/* =============================================================================
   5. REDUCED MOTION — Respecter prefers-reduced-motion (RGAA 13.8)
   ============================================================================= */
@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;
    }
}

/* =============================================================================
   6. ARIA-HIDDEN — emojis décoratifs ne doivent pas être lus
   ============================================================================= */
[aria-hidden="true"] {
    speak: never;
}
