/* public/css/accessibility.css
   Load AFTER style.css / bootstrap so these rules win. */

/* ---------- Toolbar ---------- */
.a11y-bar{
  display:flex; align-items:center; justify-content:flex-end; gap:12px;
  background:#12124D; color:#fff; padding:4px 16px; font-size:14px;
}
.a11y-controls{ display:flex; align-items:center; gap:6px; }
.a11y-label{ color:#fff; font-size:13px; margin-right:2px; }
.a11y-bar button{
  background:#fff; color:#12124D; border:1px solid #fff; border-radius:4px;
  min-width:34px; height:28px; padding:0 8px; font-weight:700; line-height:1; cursor:pointer;
}
.a11y-bar button:hover{ background:#F3ECCB; }
.a11y-bar button[aria-pressed="true"]{ background:#ffbf00; border-color:#ffbf00; color:#000; }
.a11y-bar button[aria-disabled="true"]{ opacity:.5; cursor:not-allowed; }
.a11y-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Skip link: hidden until keyboard-focused */
.a11y-skip{ position:absolute; left:-9999px; top:0; }
.a11y-skip:focus{
  left:8px; top:8px; z-index:10000; background:#fff; color:#000 !important;
  padding:8px 14px; border-radius:4px; font-weight:700;
}

/* ---------- Text size (scales the whole page, works with px-based CSS) ---------- */
html.a11y-fs-m1 body{ zoom:.9; }
html.a11y-fs-1  body{ zoom:1.15; }
html.a11y-fs-2  body{ zoom:1.3; }

/* ---------- Visible keyboard focus (amber ring + navy halo, visible on light and dark) ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible{
  outline:3px solid #ffbf00 !important;
  outline-offset:0 !important;
  box-shadow:0 0 0 6px #12124D !important;
}

/* ---------- Keyboard access to the hover-only submenus (desktop) ---------- */
@media (min-width:992px){
  .nav-item .dropdown-menu > li:focus-within > .submenu{ display:block; }
}

/* ---------- Respect "reduce motion" ---------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* ---------- High contrast ---------- */
html.a11y-contrast body,
html.a11y-contrast body *{
  background-image:none !important;
  background-color:#000 !important;
  color:#fff !important;
  border-color:#fff !important;
  text-shadow:none !important;
  animation:none !important;
}
html.a11y-contrast body a,
html.a11y-contrast body a *{
  color:#ffffff !important;
  text-decoration:underline !important;
}
html.a11y-contrast body .fa,
html.a11y-contrast body .fas,
html.a11y-contrast body .far,
html.a11y-contrast body .fab{ color:#ffffff !important; }
html.a11y-contrast body img,
html.a11y-contrast body svg,
html.a11y-contrast body video,
html.a11y-contrast body iframe{ background-color:transparent !important; }

/* header: logo strip white, logo keeps its real colors */
html.a11y-contrast body .header,
html.a11y-contrast body .header *{
  background-color:#fff !important;
  color:#000 !important;
}
html.a11y-contrast body .header img{
  background-color:transparent !important;
  filter:none !important;
}

html.a11y-contrast body button,
html.a11y-contrast body input,
html.a11y-contrast body select,
html.a11y-contrast body textarea{ border:1px solid #fff !important; }

/* toolbar stays clearly legible in contrast mode */
html.a11y-contrast body .a11y-bar button{ background-color:#fff !important; color:#000 !important; }
html.a11y-contrast body .a11y-bar button[aria-pressed="true"]{ background-color:#ffff00 !important; }

/* high contrast: hide the page pattern overlay, keep focus visible on black, keep the hero drawing readable */
html.a11y-contrast body::before{ display:none !important; }
html.a11y-contrast a:focus-visible, html.a11y-contrast button:focus-visible,
html.a11y-contrast input:focus-visible, html.a11y-contrast select:focus-visible,
html.a11y-contrast textarea:focus-visible{ box-shadow:0 0 0 6px #fff !important; }
html.a11y-contrast body .a11y-bar button *{ background-color:transparent !important; color:#000 !important; }
html.a11y-contrast body .utd-hero__art svg *{ fill:#000 !important; stroke:#fff !important; }
html.a11y-contrast body .ov-vision{ border-radius:0 !important; }

html.a11y-contrast body .a11y-bar{ position:relative !important; z-index:20 !important; height:auto !important; overflow:visible !important; }
html.a11y-contrast body .header,
html.a11y-contrast body .header > *,
html.a11y-contrast body .header .container,
html.a11y-contrast body .header .row{ margin-top:0 !important; position:static !important; transform:none !important; }

html.a11y-contrast body *{
  -webkit-text-fill-color:#fff !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
}
html.a11y-contrast body .header, html.a11y-contrast body .header *,
html.a11y-contrast body .a11y-bar button, html.a11y-contrast body .a11y-bar button *{
  -webkit-text-fill-color:#000 !important;
}