/**
 * S-Cloud — Accessibilité (Vague 15 — v2.2.75)
 *
 * Focus visible global, skip-link, contrastes améliorés,
 * respect prefers-reduced-motion.
 */

/* ── Skip-to-content link (visible au focus clavier) ──────────────────── */
.sc-skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 100000;
    background: #5C2D91;
    color: #fff;
    padding: 12px 20px;
    text-decoration: none;
    font-weight: 600;
    border-radius: 0 0 8px 0;
    box-shadow: 0 4px 12px rgba(0,0,0,.25);
}
.sc-skip-link:focus,
.sc-skip-link:focus-visible {
    left: 0;
    outline: 3px solid #fff;
    outline-offset: -3px;
}

/* ── Focus visible global (WCAG 2.4.7) ────────────────────────────────── */
*:focus { outline: none; }

/* Ring focus uniquement sur navigation clavier (pas sur clic souris) */
*:focus-visible {
    outline: 2px solid #5C2D91;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Boutons & liens : ring violet renforcé */
button:focus-visible,
a:focus-visible,
[role="button"]:focus-visible,
.btn:focus-visible {
    outline: 2px solid #5C2D91;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(92, 45, 145, .15);
}

/* Inputs : ring sur le champ (pas around) */
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible {
    outline: 2px solid #5C2D91 !important;
    outline-offset: 0 !important;
    box-shadow: 0 0 0 3px rgba(92, 45, 145, .15) !important;
    border-color: #5C2D91 !important;
}

/* Tabindex éléments interactifs */
[tabindex]:not([tabindex="-1"]):focus-visible {
    outline: 2px solid #5C2D91;
    outline-offset: 2px;
}

/* Dropdown items, list items cliquables */
.dropdown-item:focus-visible,
.sc-flyout-item:focus-visible,
.sc-rail-link:focus-visible,
.sc-cmd-item:focus-visible {
    outline: 2px solid #5C2D91;
    outline-offset: -2px;
    background: #F4EFFC;
}

/* ── Visually hidden (screen-reader only) ─────────────────────────────── */
.sc-sr-only,
.visually-hidden {
    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;
}
.sc-sr-only-focusable:focus,
.sc-sr-only-focusable:focus-visible {
    position: static !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
    margin: 0 !important;
    padding: 4px 8px !important;
}

/* ── Contraste : texte muted (WCAG AA 4.5:1) ──────────────────────────── */
/* #605E5C sur #fff = 6.9:1 ✓
 * #8A8886 sur #fff = 3.2:1 ❌ → on remonte à #6E6C69 = 6.0:1 ✓
 */
.text-muted-strong { color: #484644 !important; } /* AAA */
.sc-text-secondary { color: #6E6C69 !important; } /* AA */

/* Override Bootstrap muted (était trop clair sur fond clair) */
.text-muted { color: #605E5C !important; }
.small.text-muted, small.text-muted { color: #6E6C69 !important; }

/* ── Boutons disabled : ne pas trop fade ──────────────────────────────── */
button:disabled,
.btn:disabled,
.btn.disabled {
    opacity: .55 !important;
    cursor: not-allowed;
}

/* ── Liens dans le contenu : underline visible au survol ──────────────── */
.app-content a:not(.btn):not(.dropdown-item):not(.nav-link):not(.sc-flyout-item):not(.sc-rail-link):not(.sc-view-item) {
    text-decoration-skip-ink: auto;
}
.app-content a:not(.btn):not(.dropdown-item):not(.nav-link):not(.sc-flyout-item):not(.sc-rail-link):not(.sc-view-item):hover {
    text-decoration: underline;
}

/* ── Cible tactile minimum 44×44 (WCAG 2.5.5) ─────────────────────────── */
@media (pointer: coarse), (max-width: 768px) {
    .btn-sm,
    .btn-xs,
    .sc-topbar-icon-btn,
    .sc-pin-btn,
    .dropdown-item {
        min-height: 36px;
    }
}

/* ── prefers-reduced-motion (renforcement global) ─────────────────────── */
@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;
    }
}

/* ── High contrast / forced colors (Windows haut contraste) ───────────── */
@media (forced-colors: active) {
    .sc-rail-link.is-active,
    .btn-primary { forced-color-adjust: none; }
    .sc-greeting,
    .sc-empty,
    .sc-news-card,
    .sc-quick-link {
        border: 1px solid ButtonText !important;
    }
}
