/* Confort de lecture (voir site-accessibilite-v1.js). */
.a11y-bouton{position:fixed;left:16px;bottom:16px;z-index:9000;width:56px;height:56px;border-radius:50%;border:2px solid #fff;background:#1B3F8F;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 26px rgba(14,29,58,.3)}
.a11y-bouton:focus-visible,.a11y-panneau button:focus-visible{outline:3px solid #F2A93B;outline-offset:3px}
.a11y-panneau{position:fixed;left:16px;bottom:84px;z-index:9001;width:min(330px,calc(100vw - 32px));max-height:calc(100vh - 110px);overflow:auto;box-sizing:border-box;padding:16px;border-radius:22px;background:#fff;color:#0e1d3a;box-shadow:0 24px 60px rgba(14,29,58,.28);border:1px solid rgba(27,63,143,.15);font:500 15px/1.4 'Public Sans',system-ui,sans-serif;display:flex;flex-direction:column;gap:8px}
.a11y-panneau[hidden]{display:none}
.a11y-titre{display:flex;justify-content:space-between;align-items:center;font-size:17px;margin-bottom:2px}
.a11y-fermer{width:40px;height:40px;border-radius:50%;border:0;background:#EEF2FA;color:#0e1d3a;font-size:22px;cursor:pointer}
.a11y-taille,.a11y-ligne{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:#F4F7FD;text-align:left;color:#0e1d3a;font:inherit}
.a11y-taille span:first-child,.a11y-ligne span:first-child{display:flex;flex-direction:column;gap:2px}
.a11y-panneau small{color:#4a5a78;font-size:13px}
.a11y-boutons{display:flex;gap:6px}
.a11y-boutons button{min-width:48px;height:44px;border-radius:12px;border:1.5px solid rgba(27,63,143,.25);background:#fff;color:#1B3F8F;font:800 16px 'Public Sans',sans-serif;cursor:pointer}
.a11y-boutons button:disabled{opacity:.35;cursor:default}
.a11y-ligne{border:1.5px solid transparent;cursor:pointer;min-height:56px;width:100%}
.a11y-ligne[aria-pressed="true"]{border-color:#1B3F8F;background:#E9F0FC}
.a11y-etat{flex:none;font-weight:800;font-size:13px;padding:4px 10px;border-radius:999px;background:#fff;color:#4a5a78}
.a11y-ligne[aria-pressed="true"] .a11y-etat{background:#1B3F8F;color:#fff}
.a11y-origine{margin-top:4px;min-height:48px;border-radius:999px;border:0;background:#0e1d3a;color:#fff;font:700 15px 'Public Sans',sans-serif;cursor:pointer}
.a11y-note{margin:0;text-align:center;font-size:12.5px;color:#4a5a78}
@media(max-width:760px){.a11y-bouton{bottom:88px;left:12px;width:52px;height:52px}.a11y-panneau{bottom:150px;left:12px}}

/* Les effets s'appliquent à chaque bloc de la page (pas à <body>) : les éléments fixes (en-tête, barre d'appel, ce panneau) restent fixes. */
/* Taille du texte : zoom du contenu ; l'en-tête et les barres fixes gardent leur taille. */
html.a11y-t1{--a11y-z:1.15}html.a11y-t2{--a11y-z:1.3}html.a11y-t3{--a11y-z:1.5}
html:is(.a11y-t1,.a11y-t2,.a11y-t3) body > *:not(script):not(style):not(.a11y-bouton):not(.a11y-panneau):not(.entete-voile):not(.site-entete):not(.mobile-menu):not(.sticky-bar):not(.article-view),
html:is(.a11y-t1,.a11y-t2,.a11y-t3) .article-view > *{zoom:var(--a11y-z)}
/* Contraste élevé : textes gris plus foncés, couleurs plus marquées, liens soulignés */
html.a11y-contraste{--muted:#24314f;--border:rgba(14,29,58,.4)}
html.a11y-contraste body > *:not(script):not(style):not(.a11y-bouton):not(.a11y-panneau){filter:contrast(1.25) saturate(1.1)}
html.a11y-contraste body a:not([class*="btn"]):not([class*="cta"]):not(.camp-mini):not(.lex-item):not(.site-entete a):not(.sticky-bar a){text-decoration:underline!important;text-underline-offset:3px}
/* Mode sombre : inversion des couleurs (photos et illustrations gardent leurs vraies couleurs) */
html.a11y-sombre,html.a11y-sombre body{background:#1a1d24!important}
html.a11y-sombre body > *:not(script):not(style):not(.a11y-bouton):not(.a11y-panneau){filter:invert(.9) hue-rotate(180deg)}
html.a11y-sombre.a11y-contraste body > *:not(script):not(style):not(.a11y-bouton):not(.a11y-panneau){filter:invert(.92) hue-rotate(180deg) contrast(1.25)}
html.a11y-sombre body :is(img,video,picture,iframe,canvas){filter:invert(1) hue-rotate(180deg)}
html.a11y-sombre .a11y-bouton{border-color:#1a1d24}
/* Police plus lisible */
html.a11y-police body,html.a11y-police body *:not(svg):not(svg *){font-family:Verdana,Tahoma,Arial,sans-serif!important;letter-spacing:.015em;word-spacing:.06em}
html.a11y-police body :is(p,li,dd,summary){line-height:1.75!important}
/* Réduire les animations */
html.a11y-calme *,html.a11y-calme *::before,html.a11y-calme *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-calme{scroll-behavior:auto!important}
