/* Outils d accessibilite — contraste, taille, lecture facile (toutes pages LIA) */

html.font-large-root {
    font-size: 108%;
}

html.font-xlarge-root {
    font-size: 118%;
}

body.easy-reading {
    line-height: 1.85;
    letter-spacing: 0.015em;
}

body.easy-reading :where(p, li, label, legend, h1, h2, h3, h4, h5, h6, .lia-step__hint, .lia-section__subtitle) {
    max-width: 72ch;
}

body.easy-reading :where(.lia-section, .lia-hero, .lia-contact-card, .lia-diag-wizard, .lia-wizard, .lia-gc-wizard) {
    line-height: 1.85;
}

body.high-contrast {
    --lia-ink: #000000;
    --lia-muted: #111111;
    --lia-line: #000000;
    --lia-line-strong: #000000;
    --lia-bg: #ffffff;
    --lia-surface: #ffffff;
    --lia-primary: #0033cc;
    --lia-primary-dark: #001f80;
    --bg: #ffffff;
    --surface: #ffffff;
    --surface-2: #f4f4f4;
    --ink: #000000;
    --ink-soft: #111111;
    --line: #000000;
    --primary: #0033cc;
    --primary-dark: #001f80;
}

body.high-contrast .access-toolbar {
    background: #ffffff;
    border-bottom: 2px solid #000000;
}

body.high-contrast .access-toolbar-inner > strong {
    color: #000000;
}

body.high-contrast .access-btn {
    background: #ffffff;
    color: #000000;
    border: 2px solid #000000;
}

body.high-contrast .access-btn:hover {
    background: #eaf2ff;
    color: #001f80;
}

body.high-contrast .access-btn[aria-pressed="true"] {
    background: #0033cc;
    color: #ffffff;
    border-color: #000000;
}

body.high-contrast .access-btn:disabled {
    background: #f4f4f4;
    color: #333333;
    border-color: #666666;
}

body.high-contrast .access-link {
    color: #001f80;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

body.high-contrast :where(
    .lia-btn,
    .lia-btn--ghost,
    .lia-gc-btn,
    .lia-input,
    .lia-diag-input,
    .lia-diag-select,
    .lia-diag-textarea,
    .lia-textarea,
    .lia-select,
    .lia-gc-textarea,
    .lia-gc-select,
    .lia-ft-input,
    .lia-ft-select,
    .lia-ft-textarea,
    .lia-contact-card,
    .lia-diag-field,
    .lia-problem-card,
    .lia-choice,
    .lia-pack,
    .lia-gc-type,
    .card,
    input:not([type="hidden"]),
    select,
    textarea
) {
    border-color: #000000 !important;
}

body.high-contrast :where(.lia-btn--primary, .lia-gc-btn--primary, .btn-primary) {
    background: #0033cc !important;
    color: #ffffff !important;
    border: 2px solid #000000 !important;
}

body.high-contrast :where(a, .text-link) {
    color: #001f80;
    text-decoration: underline;
}

body.high-contrast :where(.lia-section__title, .lia-hero__title, h1, h2, h3) {
    color: #000000;
}

body.high-contrast :where(.lia-section__subtitle, .lia-hero__lead, p, li) {
    color: #111111;
}

body.high-contrast .flash-success,
body.high-contrast .flash-info,
body.high-contrast .flash-error {
    border: 2px solid #000000;
}

body.high-contrast .is-invalid,
body.high-contrast .is-invalid input,
body.high-contrast .is-invalid select,
body.high-contrast .is-invalid textarea {
    outline: 2px solid #cc0000;
}

.visually-hidden,
.a11y-live-status {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* Header desktop — eviter chevauchement menu / langue quand A+ est au maximum */
@media (min-width: 981px) {
    html.font-large-root .main-nav,
    html.font-xlarge-root .main-nav {
        justify-content: flex-end;
        gap: 0.65rem;
        min-width: 0;
    }

    html.font-large-root .main-nav .nav-links,
    html.font-xlarge-root .main-nav .nav-links {
        position: static;
        transform: none;
        flex: 1 1 auto;
        min-width: 0;
        width: auto;
        max-width: none;
        justify-content: center;
        pointer-events: auto;
        gap: 0.3rem;
        margin-inline-end: 0.35rem;
    }

    html.font-xlarge-root .main-nav .nav-links {
        gap: 0.18rem;
        margin-inline-end: 0.5rem;
    }

    html.font-large-root .main-nav .nav-utilities,
    html.font-xlarge-root .main-nav .nav-utilities {
        flex: 0 0 auto;
        z-index: 5;
    }

    html.font-large-root .main-nav .nav-group-title,
    html.font-xlarge-root .main-nav .nav-group-title {
        font-size: 0.86rem;
        padding: 0.44rem 0.68rem 0.44rem 0.74rem;
    }

    html.font-xlarge-root .main-nav .nav-group-title {
        font-size: 0.82rem;
        padding: 0.38rem 0.56rem 0.38rem 0.62rem;
        gap: 0.26rem;
    }

    html.font-large-root .main-nav .lang-native,
    html.font-xlarge-root .main-nav .lang-native {
        display: none;
    }

    html.font-large-root .main-nav .lang-link,
    html.font-xlarge-root .main-nav .lang-link {
        min-width: 2rem;
        min-height: 2rem;
        padding: 0.12rem 0.28rem;
    }

    html.font-xlarge-root .main-nav .lang-link {
        min-width: 1.85rem;
        min-height: 1.85rem;
        padding: 0.1rem 0.22rem;
    }

    html.font-xlarge-root .main-nav .nav-utilities .nav-cta {
        min-height: 2.35rem;
        padding: 0.36rem 0.68rem;
        font-size: 0.74rem;
        max-width: 11.5rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    html.font-xlarge-root .main-nav .nav-utilities .nav-portal-icon {
        width: 2.35rem;
        height: 2.35rem;
    }

    html.font-xlarge-root .main-nav .nav-utilities .nav-cookie-settings {
        width: 2.15rem;
        height: 2.15rem;
    }
}

@media (min-width: 981px) and (max-width: 1280px) {
    html.font-xlarge-root .main-nav .nav-links {
        gap: 0.12rem;
    }

    html.font-xlarge-root .main-nav .nav-group-title {
        font-size: 0.78rem;
        padding: 0.34rem 0.48rem 0.34rem 0.52rem;
    }

    html.font-xlarge-root .brand-wordmark {
        height: 46px;
        max-width: min(360px, 42vw);
    }
}
