.header-accessibility {
  display: inline-flex;
  width: 44px;
  min-height: 44px;
  flex: 0 0 44px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  color: var(--pine-950);
  background: transparent;
  font-size: 13px;
  font-weight: 850;
  white-space: nowrap;
  cursor: pointer;
  transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.header-accessibility svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.header-accessibility:hover,
.header-accessibility.is-active { color: var(--white); background: var(--pine-950); }
.header-accessibility span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

body.accessibility-dialog-open { overflow: hidden; }
.accessibility-dialog {
  width: min(94vw, 980px);
  max-width: none;
  max-height: min(92dvh, 900px);
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  color: var(--ink);
  background: var(--cream-50);
  box-shadow: 0 30px 110px rgba(3,28,20,.5);
}
.accessibility-dialog::backdrop { background: rgba(3,28,20,.76); backdrop-filter: blur(7px); }
.accessibility-dialog__panel { display: flex; max-height: min(92dvh, 900px); flex-direction: column; }
.accessibility-dialog__header {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 25px clamp(22px, 4vw, 44px);
  border-bottom: 1px solid var(--line);
  color: var(--white);
  background: var(--pine-950);
}
.accessibility-dialog__header > div { display: grid; gap: 4px; }
.accessibility-dialog__header span { color: var(--lime-300); font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.accessibility-dialog__header h2 { margin: 0; font-family: var(--display); font-size: clamp(24px, 3vw, 38px); line-height: 1.08; letter-spacing: -.04em; }
.accessibility-dialog__header > button { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border: 1px solid rgba(255,255,255,.4); color: var(--white); background: transparent; font-size: 28px; cursor: pointer; }
.accessibility-dialog__content { display: grid; min-height: 0; gap: 26px; padding: clamp(24px, 4vw, 42px); overflow-y: auto; overscroll-behavior: contain; }
.accessibility-dialog__mode { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 24px; border: 1px solid var(--line); background: var(--white); }
.accessibility-dialog__mode h3 { margin: 0 0 7px; font-family: var(--display); font-size: 20px; letter-spacing: -.03em; }
.accessibility-dialog__mode p { max-width: 600px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.accessibility-dialog__mode button { min-width: 180px; min-height: 52px; padding: 10px 18px; border: 1px solid var(--pine-950); color: var(--white); background: var(--pine-950); font-weight: 850; cursor: pointer; }
.accessibility-dialog__mode button[aria-pressed="true"] { color: var(--pine-950); background: var(--lime-300); }
.accessibility-options { margin: 0; padding: 0; border: 0; }
.accessibility-options legend { margin-bottom: 12px; padding: 0; font-size: 14px; font-weight: 850; }
.accessibility-options > div { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.accessibility-options button { display: flex; min-height: 54px; align-items: center; justify-content: center; gap: 10px; padding: 11px 14px; border: 1px solid var(--line); color: var(--ink); background: var(--white); font-weight: 750; cursor: pointer; }
.accessibility-options button:hover { border-color: var(--green-600); }
.accessibility-options button[aria-pressed="true"] { border: 2px solid var(--pine-950); background: var(--mint-200); }
.accessibility-options button > span { font-family: Arial, sans-serif; font-size: 20px; font-weight: 900; }
.accessibility-options button:last-child > span { font-size: 25px; }
.accessibility-options--themes > div { grid-template-columns: repeat(3, minmax(0,1fr)); }
.accessibility-options--themes button { justify-content: flex-start; text-align: left; }
.accessibility-swatch { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border: 1px solid currentColor; font-family: Arial, sans-serif; font-size: 17px; font-style: normal; font-weight: 900; }
.accessibility-swatch--white { color: #000; background: #fff; }
.accessibility-swatch--black { color: #fff; background: #000; }
.accessibility-swatch--blue { color: #00205b; background: #9ddfff; }
.accessibility-options-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.accessibility-options-grid .accessibility-options > div { grid-template-columns: 1fr; }
.accessibility-dialog__status { margin: 0; padding: 14px 18px; border-left: 4px solid var(--green-600); color: var(--muted); background: var(--cream-100); font-size: 14px; }
.accessibility-dialog__footer { display: flex; flex: 0 0 auto; justify-content: flex-end; gap: 12px; padding: 18px clamp(22px, 4vw, 44px); border-top: 1px solid var(--line); background: var(--white); }
.accessibility-dialog__footer button { min-height: 50px; padding: 11px 18px; border: 1px solid var(--pine-950); background: transparent; font-weight: 850; cursor: pointer; }
.accessibility-dialog__footer button:last-child { color: var(--white); background: var(--pine-950); }

html[data-a11y-mode="on"] {
  --a11y-bg: #fff;
  --a11y-fg: #000;
  --a11y-link: #0645ad;
  --a11y-accent: #ffeb3b;
  --a11y-min-text: 18px;
  --a11y-min-small: 16px;
  --font: Arial, Helvetica, sans-serif;
  --display: Arial, Helvetica, sans-serif;
  scroll-behavior: auto;
}
html[data-a11y-mode="on"][data-a11y-size="xlarge"] { --a11y-min-text: 22px; --a11y-min-small: 19px; }
html[data-a11y-mode="on"][data-a11y-theme="black"] { --a11y-bg: #000; --a11y-fg: #fff; --a11y-link: #ffeb3b; --a11y-accent: #00e5ff; }
html[data-a11y-mode="on"][data-a11y-theme="blue"] { --a11y-bg: #9ddfff; --a11y-fg: #00205b; --a11y-link: #000; --a11y-accent: #fff200; }
html[data-a11y-mode="on"] body { color: var(--a11y-fg) !important; background: var(--a11y-bg) !important; font-family: Arial, Helvetica, sans-serif !important; font-size: var(--a11y-min-text) !important; line-height: 1.7 !important; }
html[data-a11y-mode="on"] body * { background-image: none !important; box-shadow: none !important; text-shadow: none !important; }
html[data-a11y-mode="on"] :where(main, .site-footer) :where(section, article, aside, div, header, footer, nav, ol, ul, dl, figure) { color: var(--a11y-fg) !important; background-color: transparent !important; }
html[data-a11y-mode="on"] :where(main, .site-footer) :where(p, li, dd, dt, figcaption, label, summary, td, th, a, button, input, select, textarea, span) { font-size: max(1em, var(--a11y-min-text)) !important; line-height: 1.65 !important; }
html[data-a11y-mode="on"] :where(main, .site-footer, .site-header, .admission-bar) small { font-size: max(1em, var(--a11y-min-small)) !important; line-height: 1.55 !important; }
html[data-a11y-mode="on"] :where(h1, h2, h3, h4, h5, h6) { max-width: 100% !important; font-family: Arial, Helvetica, sans-serif !important; font-weight: 800 !important; line-height: 1.2 !important; letter-spacing: normal !important; overflow-wrap: anywhere; text-transform: none; }
html[data-a11y-mode="on"] :where(main, .site-footer) a { color: var(--a11y-link) !important; text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px; }
html[data-a11y-mode="on"] :where(button, input, select, textarea, .button) { min-height: 50px; border: 2px solid var(--a11y-fg) !important; border-radius: 0 !important; color: var(--a11y-fg) !important; background: var(--a11y-bg) !important; }
html[data-a11y-mode="on"] :where(a, button, input, select, textarea):focus-visible { outline: 4px solid var(--a11y-accent) !important; outline-offset: 4px !important; }
html[data-a11y-mode="on"] :where(.site-header, .admission-bar, .main-nav, .site-footer, dialog, .accessibility-dialog__header, .accessibility-dialog__footer, .accessibility-dialog__mode, .accessibility-dialog__status) { color: var(--a11y-fg) !important; background: var(--a11y-bg) !important; border-color: var(--a11y-fg) !important; backdrop-filter: none !important; }
html[data-a11y-mode="on"] .admission-bar__inner { min-height: 54px; }
html[data-a11y-mode="on"] .admission-bar__inner > span,
html[data-a11y-mode="on"] .admission-bar__services :where(a, button) { color: var(--a11y-fg) !important; font-size: var(--a11y-min-small) !important; }
html[data-a11y-mode="on"] .header-accessibility.is-active { color: var(--a11y-bg) !important; background: var(--a11y-fg) !important; }
html[data-a11y-mode="on"] .site-header__inner { min-height: 86px; }
html[data-a11y-mode="on"] .menu-toggle { display: flex; min-height: 50px; align-items: center; gap: 12px; margin-left: auto; padding: 8px 12px; cursor: pointer; }
html[data-a11y-mode="on"] .main-nav { position: fixed; inset: var(--mobile-menu-top, 140px) 0 0; display: none; min-height: 0; overflow-y: auto; overscroll-behavior: contain; align-items: stretch; flex-direction: column; gap: 0; padding: 28px var(--edge) max(36px, env(safe-area-inset-bottom)); background: var(--a11y-bg) !important; }
html[data-a11y-mode="on"] .main-nav.is-open { display: flex; }
html[data-a11y-mode="on"] .main-nav a { padding: 16px 0; border-bottom: 2px solid var(--a11y-fg); color: var(--a11y-link) !important; font-size: var(--a11y-min-text) !important; text-decoration: underline; }
html[data-a11y-mode="on"] .main-nav__certificate,
html[data-a11y-mode="on"] .main-nav a.main-nav__header-social { display: flex; }
html[data-a11y-mode="on"] .header-social-link,
html[data-a11y-mode="on"] .header-certificate,
html[data-a11y-mode="on"] .header-phone,
html[data-a11y-mode="on"] .header-actions .button { display: none; }
html[data-a11y-mode="on"] .header-actions { margin-left: 0; }
html[data-a11y-mode="on"] .brand__copy strong { font-size: var(--a11y-min-text); }
html[data-a11y-mode="on"] .site-search-toggle { width: auto; padding-inline: 12px; }
html[data-a11y-mode="on"] .site-search-toggle span { position: static; display: inline; width: auto; height: auto; overflow: visible; clip-path: none; font-size: var(--a11y-min-small); white-space: normal; }
html[data-a11y-mode="on"] .accessibility-dialog__header h2 { color: var(--a11y-fg) !important; }
html[data-a11y-mode="on"] .accessibility-dialog__header span { color: var(--a11y-link) !important; }
html[data-a11y-mode="on"] .accessibility-dialog :where(p, button, legend) { font-size: var(--a11y-min-small) !important; line-height: 1.55 !important; }
html[data-a11y-mode="on"] .accessibility-dialog button[aria-pressed="true"] { color: var(--a11y-bg) !important; background: var(--a11y-fg) !important; }
html[data-a11y-mode="on"] .accessibility-dialog__mode p,
html[data-a11y-mode="on"] .accessibility-dialog__status { color: var(--a11y-fg) !important; }
html[data-a11y-mode="on"][data-a11y-spacing="wide"] body :where(p, li, dd, dt, figcaption, label, summary, td, th, a, button, input, select, textarea) { letter-spacing: .04em !important; word-spacing: .12em !important; line-height: 1.85 !important; }
html[data-a11y-mode="on"][data-a11y-images="hide"] :where(main, .site-footer) :where(img, picture, video, canvas) { visibility: hidden !important; }
html[data-a11y-mode="on"][data-a11y-motion="reduce"] { scroll-behavior: auto !important; }
html[data-a11y-mode="on"][data-a11y-motion="reduce"] *,
html[data-a11y-mode="on"][data-a11y-motion="reduce"] *::before,
html[data-a11y-mode="on"][data-a11y-motion="reduce"] *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }

@media (max-width: 820px) {
  .accessibility-dialog { width: 100vw; height: 100dvh; max-height: none; }
  .accessibility-dialog__panel { height: 100%; max-height: none; }
  .accessibility-options--themes > div,
  .accessibility-options-grid { grid-template-columns: 1fr; }
  .accessibility-dialog__mode { align-items: stretch; flex-direction: column; }
  .accessibility-dialog__mode button { width: 100%; }
}

@media (max-width: 640px) {
  .admission-bar__services a { font-size: 11px; }
  .accessibility-dialog__header { padding: max(18px, env(safe-area-inset-top)) 18px 18px; }
  .accessibility-dialog__header h2 { font-size: 23px; }
  .accessibility-dialog__content { gap: 22px; padding: 20px 16px; }
  .accessibility-options > div { grid-template-columns: 1fr; }
  .accessibility-dialog__footer { align-items: stretch; flex-direction: column-reverse; padding: 14px 16px max(14px, env(safe-area-inset-bottom)); }
  .accessibility-dialog__footer button { width: 100%; }
  html[data-a11y-mode="on"] .brand__copy small { display: none; }
  html[data-a11y-mode="on"] .site-search-toggle { width: 50px; padding: 0; }
  html[data-a11y-mode="on"] .site-search-toggle span { display: none; }
  html[data-a11y-mode="on"] .menu-toggle__label { font-size: var(--a11y-min-small); }
}
