/* MBB Accessibility - WCAG 2.1 AA quick wins
 * Frontend + admin (selecteurs scoped pour ne pas casser l'admin WP)
 */

/* ============== SKIP LINK ============== */
.mbb-skip-link {
    position: absolute;
    top: -100px;
    left: 8px;
    background: #5A6B4F;
    color: #fff;
    padding: 12px 18px;
    border-radius: 0 0 8px 8px;
    text-decoration: none;
    font-weight: 700;
    z-index: 100000;
    transition: top 0.15s ease;
}
.mbb-skip-link:focus {
    top: 0;
    outline: 3px solid #C8D9BA;
    outline-offset: 2px;
    color: #fff;
}

/* ============== SCREEN READER ONLY (helper standard A11y) ============== */
.screen-reader-text:not(.wp-admin .screen-reader-text) {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

/* ============== FOCUS VISIBLE explicite (WCAG 2.4.7) ============== */
/* Frontend uniquement : on n'override pas l'admin pour ne pas casser WP UI */
body:not(.wp-admin) a:focus-visible,
body:not(.wp-admin) button:focus-visible,
body:not(.wp-admin) input:focus-visible,
body:not(.wp-admin) textarea:focus-visible,
body:not(.wp-admin) select:focus-visible,
body:not(.wp-admin) [tabindex]:focus-visible {
    outline: 3px solid #7A8B6F !important;
    outline-offset: 2px !important;
    border-radius: 4px;
}

/* Dark mode : focus plus contraste */
[data-theme="dark"] a:focus-visible,
[data-theme="dark"] button:focus-visible,
[data-theme="dark"] input:focus-visible,
[data-theme="dark"] textarea:focus-visible,
[data-theme="dark"] select:focus-visible {
    outline-color: #C8D9BA !important;
}

/* ============== PREFERS-REDUCED-MOTION ============== */
/* WCAG 2.3.3 + 2.2.2 : respect le reglage OS de l'utilisateur */
@media (prefers-reduced-motion: reduce) {
    /* Neutralise toute animation/transition */
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    /* Desactive les transformations hover qui peuvent causer du motion */
    .mbb-card:hover,
    .mbb-temo-card:hover,
    .mbb-hist-card:hover,
    .mbb-toast:hover,
    .mbb-sp-emoji-btn:hover,
    .mbb-cookie-btn-primary:hover,
    .mbb-dash-btn-primary:hover,
    .mbb-dash-btn-secondary:hover {
        transform: none !important;
    }
    /* Stop background autoplay */
    video[autoplay] { display: none; }
}

/* ============== HIGH CONTRAST MODE (Windows) ============== */
@media (forced-colors: active) {
    .mbb-btn,
    .mbb-cookie-btn,
    .mbb-toast {
        border: 1px solid CanvasText;
    }
    .mbb-card,
    .mbb-temo-card,
    .mbb-hist-card {
        border: 1px solid CanvasText;
    }
}

/* ============== ARIA-CURRENT visuel (menu actif) ============== */
[aria-current="page"] {
    font-weight: 700;
}

/* ============== FORMS : labels + erreurs accessibles ============== */
[aria-invalid="true"] {
    border-color: #C62828 !important;
    box-shadow: 0 0 0 3px rgba(198,40,40,0.15) !important;
}
.mbb-form-error {
    color: #C62828;
    font-size: 0.86rem;
    margin-top: 4px;
    display: block;
}
[data-theme="dark"] [aria-invalid="true"] {
    border-color: #FF8A80 !important;
}

/* ============== TOUCH TARGETS minimum 44x44 (WCAG 2.5.5) ============== */
@media (pointer: coarse) {
    body:not(.wp-admin) button,
    body:not(.wp-admin) .mbb-btn,
    body:not(.wp-admin) input[type="checkbox"],
    body:not(.wp-admin) input[type="radio"],
    body:not(.wp-admin) a.button {
        min-height: 44px;
    }
}

/* ============== TEXT SPACING (WCAG 1.4.12) ============== */
/* On veille a ne pas figer line-height/letter-spacing pour permettre
   l'override utilisateur sans casser la mise en page */
body:not(.wp-admin) p {
    line-height: 1.6;
}
