.accessibility-widget { position: fixed; right: 18px; bottom: 18px; z-index: 999; }
.accessibility-toggle { width: 56px; height: 56px; border-radius: 50%; border: 3px solid #fff; background: #009749; color: #fff; font-size: 1.45rem; cursor: pointer; box-shadow: 0 14px 32px rgba(8,11,36,.24); }
.accessibility-panel { position: absolute; right: 0; bottom: 68px; width: min(280px, calc(100vw - 36px)); background: #fff; border: 1px solid #d9e2ef; border-radius: 18px; box-shadow: 0 22px 60px rgba(8,11,36,.18); padding: 1rem; }
.accessibility-panel h2 { margin: 0 0 .8rem; font-size: 1.1rem; }
.accessibility-panel button { width: 100%; min-height: 42px; margin: .25rem 0; border: 1px solid #d9e2ef; border-radius: 12px; background: #f5f8fc; color: #15124a; font-weight: 800; cursor: pointer; }
.accessibility-font-large body { font-size: 18px; }
.accessibility-font-small body { font-size: 14px; }
.accessibility-high-contrast body { background: #000 !important; color: #fff !important; }
.accessibility-high-contrast .site-header, .accessibility-high-contrast .card, .accessibility-high-contrast .legal-content, .accessibility-high-contrast .project-card, .accessibility-high-contrast .map-consent, .accessibility-high-contrast .accessibility-panel { background: #000 !important; color: #fff !important; border-color: #fff !important; }
.accessibility-high-contrast h1, .accessibility-high-contrast h2, .accessibility-high-contrast h3, .accessibility-high-contrast a { color: #fff !important; }
.accessibility-grayscale body { filter: grayscale(1); }
.accessibility-reduce-motion *, .accessibility-reduce-motion *::before, .accessibility-reduce-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
.accessibility-highlight-links a { text-decoration: underline !important; outline: 2px solid currentColor; outline-offset: 2px; }
