/* =======================================================================
   _a11y.css — WCAG 2.1 AA accessibility layer
   Shared accessibility layer (2026-11-09). Set --a11y-focus per site if needed.
   Covers requirements common to federal ADA / Section 508 and the
   California Unruh Act: keyboard focus, reduced motion, respectful zoom,
   screen-reader helpers, forced-colors support.
   Per-page contrast fixes stay in the page that needs them.
   ======================================================================= */

/* -----------------------------------------------------------------------
   SC 2.4.7 Focus Visible (AA)
   :focus-visible keeps rings off for mouse users, on for keyboard users.
   !important guarantees this beats any per-page `outline:none`.
   ----------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible,
[role="link"]:focus-visible,
[contenteditable]:focus-visible {
  outline: 3px solid var(--a11y-focus, #157198) !important;
  outline-offset: 2px !important;
  border-radius: 2px;
}

/* Engines without :focus-visible still get a visible ring on :focus */
@supports not selector(:focus-visible) {
  a:focus, button:focus, input:focus, select:focus,
  textarea:focus, summary:focus, [tabindex]:focus {
    outline: 3px solid var(--a11y-focus, #157198) !important;
    outline-offset: 2px !important;
  }
}

/* On navy chrome the dark cyan disappears — use the brand cyan (6.92:1 on navy) */
nav a:focus-visible,
footer a:focus-visible,
.on-navy a:focus-visible,
.on-navy button:focus-visible {
  outline-color: var(--a11y-focus-dark, #29ABE2) !important;
}

/* -----------------------------------------------------------------------
   SC 2.3.3 — respect the OS "Reduce Motion" setting
   ----------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* -----------------------------------------------------------------------
   Skip link — visible only when focused
   ----------------------------------------------------------------------- */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
}
.skip-link:focus {
  left: 0;
  padding: 10px 16px;
  background: #0A1628;
  color: #fff;
  text-decoration: none;
  border: 2px solid #29ABE2;
}

/* -----------------------------------------------------------------------
   Screen-reader-only utility
   ----------------------------------------------------------------------- */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* -----------------------------------------------------------------------
   SC 1.4.4 Resize Text / 1.4.10 Reflow
   ----------------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }

/* -----------------------------------------------------------------------
   Windows High Contrast / forced-colors
   ----------------------------------------------------------------------- */
@media (forced-colors: active) {
  a:focus-visible, button:focus-visible,
  input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid CanvasText !important;
  }
}

/* Footer legal links (compliance 2026-11-09) */
.vc-legal-links{display:flex;flex-wrap:wrap;gap:0 18px;justify-content:center;margin:14px auto 0;font-size:13px;line-height:1.4}
.vc-legal-links a,.vc-legal-links button{color:inherit;text-decoration:underline;text-underline-offset:2px;background:none;border:0;padding:12px 2px;margin:0;font:inherit;cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.vc-legal-footer{padding:16px;text-align:center}
.skip-link{padding:12px 16px}
.vc-sms-consent input[type=checkbox],input#smsConsent,label.check input[type=checkbox]{width:24px;height:24px;min-width:24px}
.nav-back{display:inline-block;padding:12px 0}
nav.vc-legal-links,nav.vc-legal-toc{position:static!important;inset:auto!important;z-index:auto!important;background:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-bottom:0!important;box-shadow:none!important;height:auto!important;width:auto!important;transform:none!important}
nav.vc-legal-links{display:flex!important;justify-content:center!important;padding:0!important}
nav.vc-legal-toc{display:block!important}
.vc-legal a{color:inherit;text-decoration:underline}
.service-link{display:inline-block;padding:12px 0}
input[name="newsletter-optin"]{width:24px;height:24px;min-width:24px}
input[type="date"]{min-height:44px}
.foot-links a{display:inline-block;padding:12px 0}
