/* ==========================================================================
   4. UTILITIES — single-purpose helpers
   ==========================================================================

   Loaded last, so these win on source order alone. No !important is needed
   and none is allowed.

   THIS LIST IS CLOSED. Do not add a utility because it saves five seconds.
   A utility is justified only when the same one-line need has appeared in
   three or more unrelated places. Everything else belongs to a component.

   An open-ended utility file is how the last site ended up with forty ways
   to set a margin.
   ========================================================================== */

/* --- Accessibility ------------------------------------------------------- */

.wva-u-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* --- Measure ------------------------------------------------------------- */

.wva-u-measure        { max-width: var(--wva-measure); }
.wva-u-measure-narrow { max-width: var(--wva-measure-narrow); }

/* --- Rules --------------------------------------------------------------- */

.wva-u-rule-top    { border-block-start: var(--wva-line-width) solid var(--wva-line); }
.wva-u-rule-bottom { border-block-end:   var(--wva-line-width) solid var(--wva-line); }

/* --- Type -------------------------------------------------------------- */

/* Display face on a block that would otherwise use the text face. */
.wva-u-display {
	font-family: var(--wp--preset--font-family--display);
	letter-spacing: -0.02em;
}

/* Uppercase tracked label. Distinct from .wva-eyebrow: no margin, no colour. */
.wva-u-label {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wva-u-muted { color: var(--wva-text-muted); }

/* --- Flow ---------------------------------------------------------------- */

/* Vertical rhythm for a container of mixed blocks. */
.wva-u-flow > * + * { margin-block-start: var(--wp--preset--spacing--40); }

/* Remove the trailing margin of the last child of any container. */
.wva-u-flush > :last-child { margin-block-end: 0; }
