/* ─── Screen-reader-only utility (always-loaded) ───────────────────────────
   The single shared visually-hidden utility, so components stop re-inlining the
   clip technique (several audit findings needed one). `.hzo-sr-only` content is
   invisible on screen but stays in the accessibility tree AND the keyboard/tab
   flow — use it for the real label an icon-only control needs, a heading that
   orders the document outline, or status text that has a visible twin.

   Uses the clip technique (NOT display:none / visibility:hidden / [hidden],
   which drop the node from the a11y tree). `--focusable` reveals on focus (the
   skip-link pattern) so a hidden-but-focusable control isn't a silent trap. */
.hzo-sr-only {
    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;
}

.hzo-sr-only--focusable:focus,
.hzo-sr-only--focusable:focus-within {
    position: static !important;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
}
