/* ==========================================================================
   UTILITIES · ACCESSIBILITY — the helpers that keep the system usable: a
   visually-hidden label that stays in the accessibility tree, a skip link that
   appears on focus, and a focus-ring helper for scripted focus.
   ========================================================================== */

.u-visually-hidden:not(:focus):not(:focus-within) {
  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;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Skip link: off-screen until focused, then a printed tab into the page */
.u-skip-link {
  position: absolute;
  top: var(--space-2xs);
  left: var(--space-2xs);
  z-index: var(--z-overlay);
  transform: translateY(-200%);
  background: var(--surface-inverse);
  color: var(--text-inverse);
  font-family: var(--font-furniture);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  padding: var(--space-2xs) var(--space-sm);
  border-radius: var(--radius-xs);
  text-decoration: none;
  transition: transform var(--duration-fast) var(--ease-entrance);
}
.u-skip-link:focus { transform: translateY(0); outline: 2px solid var(--text-inverse); outline-offset: 2px; }

/* Force a visible focus ring on a scripted-focus target */
.u-focusable:focus-visible {
  outline: 2px solid var(--focus) !important;
  outline-offset: 2px !important;
}
