/* ==========================================================================
   APEX — Bouton flottant & panneau d'accessibilité
   (le bouton cookie, dans cookies.css, reprend le même dessin .apex-fab)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Bouton flottant circulaire (partagé : accessibilité + cookies)
   -------------------------------------------------------------------------- */
.apex-a11y [hidden] { display: none !important; }

.apex-fab {
    position: fixed;
    left: var(--fab-edge);
    bottom: var(--fab-edge);
    z-index: 9990;
    width: var(--fab-size);
    height: var(--fab-size);
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--cream);
    cursor: pointer;
    isolation: isolate;
    -webkit-tap-highlight-color: transparent;
    background: var(--fab-bg);
    box-shadow: var(--fab-shadow);
    transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s ease;
    animation: apex-fab-in .7s cubic-bezier(.34, 1.56, .64, 1) .15s backwards;
}
/* Anneau dégradé (terracotta → sable → olive) qui tourne au survol */
.apex-fab::before {
    content: "";
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    background: conic-gradient(from 210deg, var(--terracotta), var(--tan), var(--olive-light), var(--olive-dark), var(--terracotta));
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 calc(100% - 2px));
            mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 calc(100% - 2px));
    opacity: .9;
    z-index: -1;
    animation: apex-fab-spin 7s linear infinite paused;
    pointer-events: none;
}
.apex-fab__icon { display: grid; place-items: center; transition: transform .5s cubic-bezier(.34, 1.56, .64, 1); }
.apex-fab__icon svg { width: 32px; height: 32px; stroke-width: 2; }

.apex-fab:hover,
.apex-fab:focus-visible {
    transform: translateY(-3px) scale(1.05);
    box-shadow: var(--fab-shadow-hover);
}
.apex-fab:hover::before,
.apex-fab:focus-visible::before { animation-play-state: running; }
.apex-fab:hover .apex-fab__icon,
.apex-fab:focus-visible .apex-fab__icon { transform: scale(1.08); }
.apex-fab:active { transform: scale(.94); }
.apex-fab:focus-visible { outline: 3px solid var(--terracotta) !important; outline-offset: 7px !important; border-radius: 50% !important; }

/* Étiquette qui glisse à droite au survol */
.apex-fab__label {
    position: absolute;
    left: calc(100% + 16px);
    top: 50%;
    transform: translate(-8px, -50%);
    opacity: 0;
    white-space: nowrap;
    pointer-events: none;
    font-family: 'Candal', 'Trebuchet MS', Arial, sans-serif;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    line-height: 1;
    color: var(--olive-dark);
    background: var(--cream);
    padding: 10px 15px;
    border-radius: 999px;
    box-shadow: 0 8px 22px -6px rgba(58, 61, 42, .35), 0 0 0 1px rgba(107, 115, 57, .12);
    transition: opacity .25s ease, transform .35s cubic-bezier(.2, .9, .3, 1.2);
}
.apex-fab:hover .apex-fab__label,
.apex-fab:focus-visible .apex-fab__label { opacity: 1; transform: translate(0, -50%); }
.apex-a11y.is-open .apex-fab__label { opacity: 0 !important; }

/* Pastille : des réglages sont actifs */
.apex-fab__dot {
    position: absolute;
    top: 1px;
    right: 1px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: var(--terracotta);
    box-shadow: 0 0 0 2.5px var(--cream);
}

/* État ouvert : l'icône pivote légèrement */
.apex-a11y.is-open .apex-fab--a11y .apex-fab__icon { transform: rotate(-12deg) scale(.96); }
.apex-a11y.is-open .apex-fab--a11y::before { animation-play-state: running; }

@keyframes apex-fab-in {
    from { opacity: 0; transform: scale(.4) rotate(-60deg); }
    to   { opacity: 1; transform: none; }
}
@keyframes apex-fab-spin { to { transform: rotate(360deg); } }

/* --------------------------------------------------------------------------
   2. Panneau
   -------------------------------------------------------------------------- */
.apex-a11y {
    --a11y-display: 'Candal', 'Trebuchet MS', Arial, sans-serif;
    --a11y-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --a11y-line: rgba(107, 115, 57, .16);
}

.apex-a11y__backdrop {
    position: fixed;
    inset: 0;
    z-index: 9994;
    background: rgba(45, 38, 30, .22);
    -webkit-backdrop-filter: blur(2px);
            backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity .25s ease;
}
.apex-a11y__backdrop.is-open { opacity: 1; }

.apex-a11y__panel {
    position: fixed;
    left: var(--fab-edge);
    bottom: calc(var(--fab-edge) + var(--fab-size) + 18px);
    z-index: 9995;
    width: min(408px, calc(100vw - 2 * var(--fab-edge)));
    max-height: calc(100vh - var(--fab-edge) - var(--fab-size) - 40px);
    max-height: calc(100dvh - var(--fab-edge) - var(--fab-size) - 40px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--cream);
    color: var(--text);
    border-radius: 28px;
    box-shadow:
        0 0 0 1px rgba(107, 115, 57, .14),
        0 2px 6px rgba(58, 61, 42, .08),
        0 34px 80px -24px rgba(45, 38, 30, .6);
    font-family: var(--a11y-body);
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: normal;
    word-spacing: normal;
    text-align: left;
    transform-origin: 28px calc(100% + 40px);
    opacity: 0;
    transform: translateY(16px) scale(.94);
    transition: opacity .22s ease, transform .38s cubic-bezier(.2, .9, .3, 1.15);
}
.apex-a11y__panel.is-open { opacity: 1; transform: none; }
.apex-a11y__panel *,
.apex-a11y__panel *::before,
.apex-a11y__panel *::after { box-sizing: border-box; }

/* ---- En-tête ---- */
.apex-a11y__head {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 22px 20px 22px 22px;
    color: var(--cream);
    background:
        radial-gradient(120% 140% at 0% 0%, rgba(255, 255, 255, .14), rgba(255, 255, 255, 0) 55%),
        linear-gradient(140deg, #7d8644 0%, var(--olive-dark) 48%, #4d5326 100%);
    overflow: hidden;
    flex: none;
}
/* Filigrane mathématique, clin d'œil à l'identité du site */
.apex-a11y__head::after {
    content: "Σ  π  √";
    position: absolute;
    right: 58px;
    bottom: -38px;
    font: italic 400 76px/1 Georgia, 'Times New Roman', serif;
    letter-spacing: 6px;
    color: rgba(250, 244, 216, .08);
    pointer-events: none;
    white-space: nowrap;
}
.apex-a11y__badge {
    width: 50px;
    height: 50px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    color: var(--olive-dark);
    background: var(--cream);
    box-shadow: 0 8px 18px -8px rgba(0, 0, 0, .45), inset 0 -3px 0 rgba(214, 168, 120, .45);
    transform: rotate(-4deg);
}
.apex-a11y__badge svg { width: 28px; height: 28px; stroke-width: 2; }
.apex-a11y__heading { min-width: 0; position: relative; z-index: 1; }
.apex-a11y__eyebrow {
    margin: 0 0 4px;
    font: 700 11px/1 var(--a11y-body);
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--tan);
}
.apex-a11y .apex-a11y__title {
    margin: 0;
    font-family: var(--a11y-display);
    font-size: 23px;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: .02em;
    color: var(--cream);
    background: none;
    outline: 0;
}
.apex-a11y__desc {
    margin: 5px 0 0;
    font-size: 13.5px;
    line-height: 1.35;
    color: rgba(250, 244, 216, .78);
}
.apex-a11y__close {
    position: relative;
    z-index: 1;
    align-self: start;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--cream);
    background: rgba(250, 244, 216, .14);
    cursor: pointer;
    transition: background .2s ease, transform .35s cubic-bezier(.34, 1.56, .64, 1);
}
.apex-a11y__close svg { width: 18px; height: 18px; stroke-width: 2.2; }
.apex-a11y__close:hover { background: rgba(250, 244, 216, .26); transform: rotate(90deg); }
.apex-a11y__close:focus-visible { outline: 3px solid var(--tan) !important; outline-offset: 2px !important; border-radius: 50% !important; }

/* ---- Corps ---- */
.apex-a11y__body {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 20px 18px 6px;
}

.a11y-group { margin: 0 0 20px; }
.apex-a11y .a11y-group__title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 11px;
    font-family: var(--a11y-display);
    font-size: 11.5px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--terracotta-d);
    background: none;
    outline: 0;
}
.a11y-group__title::after { content: ""; flex: 1; height: 1px; background: var(--a11y-line); }

/* ---- Taille du texte ---- */
.a11y-size {
    display: grid;
    grid-template-columns: 50px 1fr 50px;
    align-items: center;
    gap: 10px;
    padding: 9px;
    border-radius: 20px;
    background: var(--white);
    box-shadow: 0 0 0 1px var(--a11y-line), 0 6px 16px -12px rgba(58, 61, 42, .5);
}
.a11y-size__btn {
    width: 50px;
    height: 50px;
    padding: 0;
    border: 0;
    border-radius: 15px;
    display: grid;
    place-items: center;
    color: var(--olive-dark);
    background: var(--cream-soft);
    cursor: pointer;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}
.a11y-size__btn svg { width: 20px; height: 20px; stroke-width: 2.4; }
.a11y-size__btn:hover:not(:disabled) { background: var(--olive-dark); color: var(--cream); }
.a11y-size__btn:active:not(:disabled) { transform: scale(.92); }
.a11y-size__btn:disabled { opacity: .35; cursor: not-allowed; }
.a11y-size__meter { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.a11y-size__value {
    font-family: var(--a11y-display);
    font-size: 21px;
    line-height: 1;
    color: var(--olive-dark);
    font-variant-numeric: tabular-nums;
}
.a11y-size__value small { font-family: var(--a11y-body); font-size: 15px; font-weight: 700; }
.a11y-size__steps { display: flex; gap: 5px; }
.a11y-size__steps i {
    display: block;
    width: 20px;
    height: 5px;
    border-radius: 3px;
    background: rgba(107, 115, 57, .16);
    transition: background .25s ease, transform .25s ease;
}
.a11y-size__steps i.is-on { background: var(--terracotta); }

/* ---- Tuiles (interrupteurs) ---- */
.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.a11y-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 11px;
    min-height: 106px;
    margin: 0;
    padding: 14px 14px 13px;
    border: 0;
    border-radius: 20px;
    text-align: left;
    color: var(--text);
    background: var(--white);
    box-shadow: 0 0 0 1px var(--a11y-line);
    font: inherit;
    cursor: pointer;
    transition: box-shadow .22s ease, transform .22s ease, background .22s ease;
}
.a11y-tile:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(107, 115, 57, .32), 0 12px 22px -14px rgba(58, 61, 42, .55); }
.a11y-tile__icon {
    width: 40px;
    height: 40px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    color: var(--olive-dark);
    background: var(--cream-soft);
    transition: background .22s ease, color .22s ease, transform .35s cubic-bezier(.34, 1.56, .64, 1);
}
.a11y-tile__icon svg { width: 22px; height: 22px; }
.a11y-tile__text { display: flex; flex-direction: column; gap: 2px; }
.a11y-tile__label { font-size: 14px; font-weight: 700; line-height: 1.2; color: var(--text); }
.a11y-tile__hint { font-size: 12px; line-height: 1.25; color: var(--text-soft); }

.a11y-tile__switch {
    position: absolute;
    top: 15px;
    right: 14px;
    width: 32px;
    height: 19px;
    border-radius: 999px;
    background: rgba(107, 115, 57, .2);
    transition: background .25s ease;
}
.a11y-tile__switch::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--white);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
    transition: transform .3s cubic-bezier(.34, 1.56, .64, 1);
}

.a11y-tile[aria-pressed="true"] {
    background: linear-gradient(165deg, var(--white) 0%, #f4efcf 100%);
    box-shadow: 0 0 0 2px var(--olive-dark), 0 12px 24px -16px rgba(58, 61, 42, .7);
}
.a11y-tile[aria-pressed="true"] .a11y-tile__icon { color: var(--cream); background: var(--olive-dark); transform: rotate(-6deg); }
.a11y-tile[aria-pressed="true"] .a11y-tile__switch { background: var(--green-btn); }
.a11y-tile[aria-pressed="true"] .a11y-tile__switch::after { transform: translateX(13px); }

/* Tuile seule sur sa ligne : pleine largeur, disposition horizontale */
.a11y-grid > .a11y-tile:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    gap: 14px;
    min-height: 0;
    padding-right: 64px;
}
.a11y-grid > .a11y-tile:last-child:nth-child(odd) .a11y-tile__switch { top: 50%; margin-top: -9.5px; }

/* ---- Couleurs (choix unique) ---- */
.a11y-colors { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.a11y-color {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 12px 4px 11px;
    border: 0;
    border-radius: 18px;
    color: var(--text);
    background: var(--white);
    box-shadow: 0 0 0 1px var(--a11y-line);
    font: inherit;
    cursor: pointer;
    transition: box-shadow .22s ease, transform .22s ease;
}
.a11y-color:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(107, 115, 57, .32), 0 12px 22px -14px rgba(58, 61, 42, .55); }
.a11y-color__swatch {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-family: var(--a11y-display);
    font-size: 15px;
    line-height: 1;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08);
}
.a11y-color__swatch--default  { background: linear-gradient(135deg, var(--cream) 0 50%, #efe4b5 50% 100%); color: var(--olive-dark); }
.a11y-color__swatch--contrast { background: #111; color: #FFE58A; }
.a11y-color__swatch--gray     { background: linear-gradient(135deg, #e6e6e6 0%, #8c8c8c 100%); color: #222; }
.a11y-color__swatch--invert   { background: linear-gradient(135deg, #2b2a47 0%, #1a1c2e 100%); color: #eef0c8; }
.a11y-color__label { font-size: 11.5px; font-weight: 600; line-height: 1.2; text-align: center; color: var(--text); }

.a11y-color[aria-checked="true"] { box-shadow: 0 0 0 2px var(--olive-dark), 0 12px 24px -16px rgba(58, 61, 42, .7); }
.a11y-color[aria-checked="true"]::after {
    content: "";
    position: absolute;
    top: 7px;
    right: 7px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--green-btn) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat;
    box-shadow: 0 0 0 2px var(--white);
}

/* Focus clavier dans le panneau */
.apex-a11y__panel .a11y-tile:focus-visible,
.apex-a11y__panel .a11y-color:focus-visible,
.apex-a11y__panel .a11y-size__btn:focus-visible,
.apex-a11y__panel .apex-a11y__reset:focus-visible {
    outline: 3px solid var(--terracotta-d) !important;
    outline-offset: 3px !important;
    border-radius: 20px !important;
}

/* ---- Pied ---- */
.apex-a11y__foot {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px 8px;
    border-top: 1px solid var(--a11y-line);
    background: var(--cream-card);
}
.apex-a11y__reset {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 10px 17px 10px 13px;
    border: 0;
    border-radius: 999px;
    font-family: var(--a11y-display);
    font-size: 12px;
    line-height: 1;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--olive-dark);
    background: transparent;
    box-shadow: inset 0 0 0 1.5px var(--olive-dark);
    cursor: pointer;
    transition: background .2s ease, color .2s ease;
}
.apex-a11y__reset svg { width: 16px; height: 16px; stroke-width: 2.2; transition: transform .5s cubic-bezier(.34, 1.56, .64, 1); }
.apex-a11y__reset:hover { background: var(--olive-dark); color: var(--cream); }
.apex-a11y__reset:hover svg { transform: rotate(-200deg); }
.apex-a11y__statement {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    text-align: right;
    color: var(--terracotta-d);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}
.apex-a11y__statement svg { width: 14px; height: 14px; flex: none; stroke-width: 2.2; transition: transform .25s ease; }
.apex-a11y__statement:hover { color: var(--green-btn); }
.apex-a11y__statement:hover svg { transform: translate(2px, -2px); }
.apex-a11y__note {
    flex: none;
    margin: 0;
    padding: 2px 18px 14px;
    font-size: 11.5px;
    line-height: 1.3;
    color: var(--text-soft);
    background: var(--cream-card);
}

/* ---- Variante à droite (pages sans le bouton WhatsApp) ---- */
body.apex-a11y-right .apex-fab--a11y { left: auto; right: var(--fab-edge); }
body.apex-a11y-right .apex-fab--a11y .apex-fab__label {
    left: auto;
    right: calc(100% + 16px);
    transform: translate(8px, -50%);
}
body.apex-a11y-right .apex-fab--a11y:hover .apex-fab__label,
body.apex-a11y-right .apex-fab--a11y:focus-visible .apex-fab__label { transform: translate(0, -50%); }
body.apex-a11y-right .apex-fab__dot { right: auto; left: 1px; }
@media (min-width: 601px) {
    body.apex-a11y-right .apex-a11y__panel {
        left: auto;
        right: var(--fab-edge);
        transform-origin: calc(100% - 28px) calc(100% + 40px);
    }
}

/* ---- Mobile : feuille qui monte du bas ---- */
@media (max-width: 600px) {
    .apex-a11y__panel {
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        max-height: 90vh;
        max-height: 90dvh;
        border-radius: 28px 28px 0 0;
        transform: translateY(100%);
        transition: opacity .2s ease, transform .4s cubic-bezier(.2, .9, .3, 1);
    }
    .apex-a11y__panel.is-open { transform: none; }
    .apex-a11y__head { padding-top: 28px; }
    .apex-a11y__head::before {
        content: "";
        position: absolute;
        top: 10px;
        left: 50%;
        width: 42px;
        height: 4px;
        margin-left: -21px;
        border-radius: 4px;
        background: rgba(250, 244, 216, .35);
    }
    .apex-a11y__backdrop { background: rgba(45, 38, 30, .45); }
    .apex-a11y__note { padding-bottom: calc(14px + env(safe-area-inset-bottom)); }
    .apex-fab__label { display: none; }
}
@media (max-width: 360px) {
    .a11y-colors { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .apex-fab, .apex-fab::before, .apex-fab__icon,
    .apex-a11y__panel, .apex-a11y__backdrop,
    .a11y-tile, .a11y-color, .a11y-tile__switch::after { animation: none !important; transition: none !important; }
}

/* ==========================================================================
   3. Effets appliqués au site (classes posées sur <html>)
   ========================================================================== */

/* -- Taille du texte -- */
html.a11y-text { font-size: calc(100% * var(--a11y-scale, 1)); }
html.a11y-text body { font-size: calc(17px * var(--a11y-scale, 1)); }

/* -- Police lisible (dyslexie) -- */
html.a11y-font {
    --font-display: Verdana, Tahoma, 'Segoe UI', sans-serif;
    --font-body: Verdana, Tahoma, 'Segoe UI', sans-serif;
}
html.a11y-font body :not(.apex-a11y *):not(code):not(pre):not(kbd) { font-family: Verdana, Tahoma, 'Segoe UI', sans-serif !important; }

/* -- Espacement (valeurs WCAG 1.4.12) -- */
html.a11y-spacing body :not(.apex-a11y *) { letter-spacing: .12em !important; word-spacing: .16em !important; }

/* -- Interligne -- */
html.a11y-lineheight body :is(p, li, dd, dt, td, th, blockquote, figcaption, label, h1, h2, h3, h4, h5, h6):not(.apex-a11y *) { line-height: 1.9 !important; }
html.a11y-lineheight body :is(p, li):not(.apex-a11y *) { margin-bottom: .9em; }

/* -- Liens soulignés -- */
html.a11y-links a:not(.apex-a11y *) {
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: .22em !important;
}
html.a11y-links a:not(.apex-a11y *):hover,
html.a11y-links a:not(.apex-a11y *):focus { background-color: rgba(214, 168, 120, .3) !important; }

/* -- Titres en relief -- */
html.a11y-titles :is(h1, h2, h3, h4, h5, h6):not(.apex-a11y *) {
    outline: 2px dashed var(--terracotta) !important;
    outline-offset: 6px !important;
    border-radius: 4px;
    background-color: rgba(214, 168, 120, .14) !important;
}

/* -- Masque de lecture -- */
.a11y-readmask { display: none; }
html.a11y-mask .a11y-readmask { display: block; }
.a11y-readmask__top,
.a11y-readmask__bottom {
    position: fixed;
    left: 0;
    right: 0;
    z-index: 9980;
    background: rgba(24, 22, 14, .62);
    pointer-events: none;
}
.a11y-readmask__top { top: 0; height: var(--mask-top, 40vh); box-shadow: 0 3px 0 var(--terracotta); }
.a11y-readmask__bottom { bottom: 0; height: var(--mask-bottom, 40vh); box-shadow: 0 -3px 0 var(--terracotta); }

/* -- Pause des animations -- */
html.a11y-noanim *,
html.a11y-noanim *::before,
html.a11y-noanim *::after {
    animation-duration: .001ms !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
}
html.a11y-noanim [data-rv],
html.a11y-noanim .hero__logo-img,
html.a11y-noanim .hero h1,
html.a11y-noanim .hero__wave svg { opacity: 1 !important; transform: none !important; clip-path: none !important; }
html.a11y-noanim [data-rv="title"] { letter-spacing: 1px; }

/* -- Grand curseur -- */
html.a11y-cursor,
html.a11y-cursor * {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M9 4v36l9-8.6 6.4 13.6 6.2-2.9-6.2-13.2H37z' fill='%233A3D2A' stroke='%23FAF4D8' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 9 4, auto !important;
}
html.a11y-cursor :is(a, button, [role="button"], [role="radio"], label, summary, select, input[type="submit"], input[type="checkbox"], input[type="radio"]),
html.a11y-cursor :is(a, button, [role="button"], [role="radio"], label, summary) * {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M9 4v36l9-8.6 6.4 13.6 6.2-2.9-6.2-13.2H37z' fill='%23C8814E' stroke='%23FAF4D8' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 9 4, pointer !important;
}
html.a11y-cursor :is(input:not([type]), input[type="text"], input[type="email"], input[type="tel"], input[type="search"], textarea) { cursor: text !important; }

/* -- Focus renforcé -- */
html.a11y-focus :focus {
    outline: 4px solid var(--terracotta-d) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 10px rgba(214, 168, 120, .45) !important;
}

/* -- Contraste élevé : la charte est assombrie via ses variables -- */
html.a11y-contrast {
    --text:        #111111;
    --text-soft:   #26281c;
    --olive-dark:  #3B4218;
    --olive:       #6D6A38;
    --olive-light: #807d45;
    --green-btn:   #2F3F14;
    --green-btn-h: #1f2b0b;
    --terracotta:  #8E4A1C;
    --terracotta-d:#6E2F0B;
    --tan:         #B57E48;
    --cream:       #FFFDF4;
    --cream-card:  #FFFFFF;
    --cream-soft:  #FAF6E4;
}
html.a11y-contrast body :is(p, li, span, td, dd):not(.apex-a11y *) { color: #111; }

/* -- Niveaux de gris -- */
html.a11y-gray { filter: grayscale(1); }

/* -- Couleurs inversées (les images gardent leurs couleurs) -- */
html.a11y-invert { filter: invert(1) hue-rotate(180deg); background: #fff; }
html.a11y-invert :is(img, picture, video, iframe, canvas, .hero, .page-header, [style*="background-image"]) { filter: invert(1) hue-rotate(180deg) !important; }
html.a11y-invert :is(.hero, .page-header, [style*="background-image"]) :is(img, picture, video, iframe) { filter: none !important; }

/* --------------------------------------------------------------------------
   4. L'ancienne extension « Sienna » est masquée si elle est encore active
   -------------------------------------------------------------------------- */
.asw-widget,
.asw-menu,
.asw-menu-btn,
.asw-overlay,
.asw-container,
.asw-rg-container { display: none !important; }
