/* =============================================================================
   Utilities - single-purpose helpers. Loaded last so they win.
   Keep this list short: reach for a module or component class before adding one.
   ============================================================================= */

.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;
}

/* --- Text ------------------------------------------------------------------- */
.text-center  { text-align: center; }
.text-muted   { color: var(--color-text-muted); }
.text-inverse { color: var(--color-text-inverse); }

/* --- Spacing ---------------------------------------------------------------- */
.mt-0  { margin-block-start: 0; }
.mt-sm { margin-block-start: var(--space-sm); }
.mt-md { margin-block-start: var(--space-md); }
.mt-lg { margin-block-start: var(--space-lg); }

.mb-0  { margin-block-end: 0; }
.mb-sm { margin-block-end: var(--space-sm); }
.mb-md { margin-block-end: var(--space-md); }
.mb-lg { margin-block-end: var(--space-lg); }

/* Prevents the page behind the menu panel from scrolling. The scrollbar is
   replaced by padding of the same width, so nothing shifts as it disappears -
   assets/js/modules/nav.js measures it and sets --scrollbar-width. */
body.is-nav-open {
    overflow: hidden;
    padding-inline-end: var(--scrollbar-width, 0px);
}
