/* ============================================================================
   UTILITIES  —  @layer utilities  (highest layer → predictable overrides)
   A small, deliberate set. Not a utility framework.
   ============================================================================ */
@layer utilities {
  /* Screen-reader-only, but focusable when needed (.visually-hidden.is-focusable) */
  .visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
    white-space: nowrap; border: 0;
  }
  .visually-hidden.is-focusable:focus,
  .visually-hidden.is-focusable:focus-within {
    position: static !important;
    width: auto; height: auto; margin: 0;
    overflow: visible; clip: auto; clip-path: none; white-space: normal;
  }

  /* Vertical rhythm — owl selector: space between flow children */
  .flow > * + * { margin-top: var(--flow-space, var(--space-4)); }
  .flow--tight > * + * { margin-top: var(--space-2); }
  .flow--loose > * + * { margin-top: var(--space-6); }

  /* Stack / cluster primitives */
  .stack { display: flex; flex-direction: column; gap: var(--stack-gap, var(--space-4)); }
  .cluster { display: flex; flex-wrap: wrap; gap: var(--cluster-gap, var(--space-2)); align-items: center; }

  .text-muted { color: var(--color-text-muted); }
  .text-sm { font-size: var(--text-sm); }

  /* Hide from all users (state-driven) */
  [hidden] { display: none !important; }
}
