/* ============================================================
   Accessibility Adjustments widget — styles
   ============================================================ */
.a11y-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

#a11y-open {
  position: fixed; right: 20px; bottom: 20px; z-index: 9000;
  width: 56px; height: 56px; border-radius: 50%;
  background: #1e2a44; color: #fff; border: 3px solid #fff;
  box-shadow: 0 6px 24px rgba(20,28,46,0.35);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  transition: transform 0.15s ease, background-color 0.15s ease;
}
#a11y-open:hover { background: #2b3b5f; transform: scale(1.06); }
#a11y-open.is-active { background: #7d651c; }
#a11y-open:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 6px #1e2a44; }
#a11y-open svg { width: 30px; height: 30px; }

#a11y-backdrop { position: fixed; inset: 0; background: rgba(20,28,46,0.45); z-index: 9001; }

#a11y-panel {
  position: fixed; right: 20px; bottom: 90px; z-index: 9002;
  width: min(420px, calc(100vw - 32px)); max-height: min(78vh, 760px);
  background: #fff; color: #1a1f2e; border-radius: 16px; overflow: hidden;
  box-shadow: 0 20px 60px rgba(20,28,46,0.35);
  display: flex; flex-direction: column;
  font-family: "Inter", system-ui, -apple-system, sans-serif; font-size: 15px; line-height: 1.4;
}
.a11y-header {
  background: #1e2a44; color: #fff; padding: 16px 20px;
  display: flex; align-items: center; justify-content: space-between; flex-shrink: 0;
}
.a11y-header h2 { margin: 0; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.5rem; font-weight: 600; letter-spacing: -0.01em; }
.a11y-close {
  width: 44px; height: 44px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.4);
  background: transparent; color: #fff; font-size: 28px; line-height: 1; cursor: pointer;
}
.a11y-close:hover { background: rgba(255,255,255,0.12); }
.a11y-close:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

.a11y-body { padding: 16px 20px 8px; overflow-y: auto; flex: 1; }
.a11y-intro { margin: 0 0 12px; color: #4b5468; font-size: 0.9rem; }
.a11y-reset {
  width: 100%; min-height: 44px; margin-bottom: 16px;
  border: 2px solid #1e2a44; background: #fff; color: #1e2a44; border-radius: 8px;
  font-weight: 600; font-size: 0.9rem; cursor: pointer;
}
.a11y-reset:hover { background: #f6f7f9; }
.a11y-reset:focus-visible { outline: 3px solid #1e2a44; outline-offset: 3px; }

.a11y-group { border: 0; padding: 0; margin: 0 0 16px; }
.a11y-group legend {
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: #7d651c; margin-bottom: 10px; padding: 0;
}
.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.a11y-opt {
  min-height: 56px; padding: 10px 12px; text-align: left;
  border: 2px solid #e4e7ec; background: #f6f7f9; color: #1a1f2e; border-radius: 10px;
  font-weight: 600; font-size: 0.875rem; cursor: pointer;
  display: flex; flex-direction: column; justify-content: center; gap: 6px;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.a11y-opt:hover { border-color: #1e2a44; background: #fff; }
.a11y-opt.is-on { background: #1e2a44; color: #fff; border-color: #1e2a44; }
.a11y-opt:focus-visible { outline: 3px solid #1e2a44; outline-offset: 3px; }
.a11y-opt.is-on:focus-visible { outline-color: #7d651c; }
.a11y-dots { display: flex; gap: 4px; }
.a11y-dots i { width: 18px; height: 6px; border-radius: 3px; background: #cfd4dd; display: block; }
.a11y-dots i.on { background: #b8952c; }
.a11y-opt.is-on .a11y-dots i { background: rgba(255,255,255,0.3); }
.a11y-opt.is-on .a11y-dots i.on { background: #b8952c; }

.a11y-footer {
  border-top: 1px solid #e4e7ec; padding: 10px 20px; font-size: 0.8rem; color: #4b5468;
  display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; flex-shrink: 0; background: #fff;
}
.a11y-footer a { color: #7d651c; font-weight: 600; text-decoration: underline; min-height: 24px; display: inline-flex; align-items: center; }

@media (max-width: 640px) {
  #a11y-open { right: 12px; bottom: 12px; }
  #a11y-panel { right: 0; left: 0; bottom: 0; width: 100%; max-height: 88vh; border-radius: 16px 16px 0 0; }
  .a11y-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 360px) { .a11y-grid { grid-template-columns: 1fr; } }

/* ---------- Effects applied to the page (html.a11y-*) ---------- */
html.a11y-font-1 { font-size: 112.5%; }
html.a11y-font-2 { font-size: 125%; }
html.a11y-font-3 { font-size: 137.5%; }
html.a11y-font-4 { font-size: 150%; }

html.a11y-line-1 body, html.a11y-line-1 p, html.a11y-line-1 li { line-height: 1.9 !important; }
html.a11y-line-2 body, html.a11y-line-2 p, html.a11y-line-2 li { line-height: 2.2 !important; }
html.a11y-line-3 body, html.a11y-line-3 p, html.a11y-line-3 li { line-height: 2.5 !important; }

html.a11y-letter-1 body { letter-spacing: 0.06em !important; }
html.a11y-letter-2 body { letter-spacing: 0.12em !important; }
html.a11y-letter-3 body { letter-spacing: 0.18em !important; }

html.a11y-readable body, html.a11y-readable h1, html.a11y-readable h2, html.a11y-readable h3, html.a11y-readable h4, html.a11y-readable .logo-text, html.a11y-readable .stat-number, html.a11y-readable .phone, html.a11y-readable blockquote { font-family: Arial, Helvetica, Verdana, sans-serif !important; }
html.a11y-dyslexia body, html.a11y-dyslexia h1, html.a11y-dyslexia h2, html.a11y-dyslexia h3, html.a11y-dyslexia h4, html.a11y-dyslexia .logo-text, html.a11y-dyslexia .stat-number, html.a11y-dyslexia .phone, html.a11y-dyslexia blockquote { font-family: "Comic Sans MS", "Comic Sans", "OpenDyslexic", Verdana, sans-serif !important; letter-spacing: 0.04em; word-spacing: 0.1em; }

html.a11y-align-left * { text-align: left !important; }

html.a11y-titles h1, html.a11y-titles h2, html.a11y-titles h3, html.a11y-titles h4 { outline: 3px solid #b8952c !important; outline-offset: 4px; background: rgba(184,149,44,0.12) !important; }
html.a11y-links a:not(.btn):not(#a11y-open):not(.a11y-opt) { text-decoration: underline !important; text-underline-offset: 3px; outline: 2px solid #b8952c !important; outline-offset: 2px; background: rgba(184,149,44,0.18) !important; }

/* Contrast modes */
html.a11y-dark body, html.a11y-dark body * :not(#a11y-panel):not(#a11y-panel *):not(#a11y-open) { }
html.a11y-dark body { background: #0b0f1a !important; color: #f4f6fa !important; }
html.a11y-dark section, html.a11y-dark header, html.a11y-dark footer, html.a11y-dark nav, html.a11y-dark article, html.a11y-dark aside, html.a11y-dark div:not(#a11y-panel):not(#a11y-panel *):not(#a11y-backdrop), html.a11y-dark form, html.a11y-dark input, html.a11y-dark textarea { background-color: #0b0f1a !important; color: #f4f6fa !important; border-color: #3a4560 !important; }
html.a11y-dark h1, html.a11y-dark h2, html.a11y-dark h3, html.a11y-dark h4, html.a11y-dark p, html.a11y-dark li, html.a11y-dark span:not(.a11y-opt-label):not(.a11y-dots):not(.a11y-dots i), html.a11y-dark strong, html.a11y-dark address, html.a11y-dark label, html.a11y-dark time, html.a11y-dark blockquote, html.a11y-dark small { color: #f4f6fa !important; }
html.a11y-dark a:not(.btn):not(#a11y-open):not(.a11y-footer a) { color: #ffd76a !important; }
html.a11y-dark .btn, html.a11y-dark button:not(#a11y-open):not(.a11y-opt):not(.a11y-close):not(.a11y-reset) { background: #ffd76a !important; color: #0b0f1a !important; border-color: #ffd76a !important; }
html.a11y-dark img { opacity: 0.9; }

html.a11y-light body, html.a11y-light section, html.a11y-light header, html.a11y-light footer, html.a11y-light nav, html.a11y-light article, html.a11y-light aside, html.a11y-light div:not(#a11y-panel):not(#a11y-panel *):not(#a11y-backdrop), html.a11y-light form, html.a11y-light input, html.a11y-light textarea { background-color: #ffffff !important; background-image: none !important; color: #0b0f1a !important; border-color: #6b7385 !important; }
html.a11y-light h1, html.a11y-light h2, html.a11y-light h3, html.a11y-light h4, html.a11y-light p, html.a11y-light li, html.a11y-light span:not(.a11y-opt-label), html.a11y-light strong, html.a11y-light address, html.a11y-light label, html.a11y-light time, html.a11y-light blockquote, html.a11y-light small { color: #0b0f1a !important; }
html.a11y-light a:not(.btn):not(#a11y-open):not(.a11y-footer a) { color: #0033a0 !important; text-decoration: underline !important; }
html.a11y-light .btn, html.a11y-light button:not(#a11y-open):not(.a11y-opt):not(.a11y-close):not(.a11y-reset) { background: #0b0f1a !important; color: #fff !important; border-color: #0b0f1a !important; }
html.a11y-light .page-hero::before { background: rgba(255,255,255,0.92) !important; }
html.a11y-light .page-hero, html.a11y-light .cta-band, html.a11y-light .stats-section { background-image: none !important; }

html.a11y-high body, html.a11y-high section, html.a11y-high header, html.a11y-high footer, html.a11y-high nav, html.a11y-high article, html.a11y-high aside, html.a11y-high div:not(#a11y-panel):not(#a11y-panel *):not(#a11y-backdrop), html.a11y-high form, html.a11y-high input, html.a11y-high textarea { background-color: #000 !important; background-image: none !important; color: #fff !important; border-color: #fff !important; }
html.a11y-high h1, html.a11y-high h2, html.a11y-high h3, html.a11y-high h4, html.a11y-high p, html.a11y-high li, html.a11y-high span:not(.a11y-opt-label), html.a11y-high strong, html.a11y-high address, html.a11y-high label, html.a11y-high time, html.a11y-high blockquote, html.a11y-high small { color: #fff !important; }
html.a11y-high a:not(.btn):not(#a11y-open):not(.a11y-footer a) { color: #ffff00 !important; text-decoration: underline !important; }
html.a11y-high .btn, html.a11y-high button:not(#a11y-open):not(.a11y-opt):not(.a11y-close):not(.a11y-reset) { background: #ffff00 !important; color: #000 !important; border-color: #ffff00 !important; }
html.a11y-high .page-hero::before { background: rgba(0,0,0,0.92) !important; }

html.a11y-gray body { filter: grayscale(1); }
html.a11y-lowsat body { filter: saturate(0.4); }
html.a11y-gray.a11y-lowsat body { filter: grayscale(1); }
/* keep the widget itself out of page filters: it's fixed & portalled at body level, so we re-render it via isolation */
html.a11y-gray #a11y-panel, html.a11y-lowsat #a11y-panel, html.a11y-gray #a11y-open, html.a11y-lowsat #a11y-open { filter: none; }

html.a11y-cursor, html.a11y-cursor body, html.a11y-cursor a, html.a11y-cursor button { cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'><path d='M5 2l14 10-6 1 4 7-3 2-4-7-5 4z' fill='white' stroke='black' stroke-width='1.5'/></svg>") 4 2, auto !important; }

.a11y-guide-bar { position: fixed; left: 0; right: 0; height: 8px; background: #b8952c; opacity: 0.85; z-index: 8999; pointer-events: none; box-shadow: 0 0 0 2px rgba(0,0,0,0.25); }
.a11y-mask-top { position: fixed; left: 0; right: 0; top: 0; height: 0; background: rgba(0,0,0,0.65); z-index: 8998; pointer-events: none; }
.a11y-mask-bottom { position: fixed; left: 0; right: 0; bottom: 0; top: 100%; background: rgba(0,0,0,0.65); z-index: 8998; pointer-events: none; }

html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }

html.a11y-noimg img, html.a11y-noimg iframe { visibility: hidden !important; }
html.a11y-noimg .page-hero, html.a11y-noimg .cta-band, html.a11y-noimg .stats-section { background-image: none !important; }

html.a11y-focus a:focus, html.a11y-focus button:focus, html.a11y-focus input:focus, html.a11y-focus textarea:focus { outline: 4px solid #ff0 !important; outline-offset: 3px !important; box-shadow: 0 0 0 8px #000 !important; }

body.a11y-panel-open { overflow: hidden; }
@media (min-width: 641px) { body.a11y-panel-open { overflow: auto; } }

#a11y-panel[hidden], #a11y-backdrop[hidden] { display: none !important; }
