/* WDHC accessibility utilities (Wave D) */

.skip-link {
  position: fixed;
  top: -120px;
  left: 16px;
  z-index: var(--wdhc-z-skip, 10001);
  padding: 10px 16px;
  background: var(--wdhc-gold, #d4af37);
  color: #000;
  font-family: var(--wdhc-font-body, 'Source Sans 3', system-ui, sans-serif);
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--wdhc-radius-sm, 8px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);
}

.skip-link:focus {
  top: 16px;
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Visible keyboard focus without punishing mouse users */
:focus {
  outline: none;
}

:focus-visible {
  outline: var(--wdhc-focus-outline, 2px solid #f0d78c);
  outline-offset: 3px;
  box-shadow: var(--wdhc-focus-ring, 0 0 0 3px rgba(212, 175, 55, 0.45));
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: var(--wdhc-focus-outline, 2px solid #f0d78c);
  outline-offset: 3px;
}

/* Prefer reduced motion for decorative animation hooks */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

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