/* ==========================================================================
   utilities.css — single-purpose helpers (prefix u-). See RULES.md §14.
   ========================================================================== */
.u-visually-hidden {
  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;
  white-space: nowrap !important;
  border: 0 !important;
}

.u-hidden {
  display: none !important;
}
.u-flex {
  display: flex !important;
}
.u-flex-wrap {
  flex-wrap: wrap !important;
}
.u-items-center {
  align-items: center !important;
}
.u-justify-center {
  justify-content: center !important;
}
.u-justify-between {
  justify-content: space-between !important;
}
.u-gap-2 {
  gap: var(--space-2) !important;
}
.u-gap-4 {
  gap: var(--space-4) !important;
}

.u-mt-0 {
  margin-top: 0 !important;
}
.u-mt-2 {
  margin-top: var(--space-2) !important;
}
.u-mt-4 {
  margin-top: var(--space-4) !important;
}
.u-mt-6 {
  margin-top: var(--space-6) !important;
}
.u-mt-8 {
  margin-top: var(--space-8) !important;
}
.u-mt-10 {
  margin-top: var(--space-10) !important;
}
.u-mb-0 {
  margin-bottom: 0 !important;
}
.u-mb-4 {
  margin-bottom: var(--space-4) !important;
}
.u-mb-6 {
  margin-bottom: var(--space-6) !important;
}
.u-mb-8 {
  margin-bottom: var(--space-8) !important;
}
.u-mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.u-text-center {
  text-align: center !important;
}
/* Measure-capped paragraphs sit in the middle of a centred block, not at its left */
.u-text-center p {
  margin-left: auto;
  margin-right: auto;
}
.u-text-sm {
  font-size: var(--font-size-sm) !important;
}
.u-text-md {
  font-size: var(--font-size-md) !important;
}
/* The website deck's 13.5pt lead (final deck 10/6/26) */
.u-text-lead {
  font-size: var(--font-size-deck-13) !important;
  line-height: 1.45 !important;
}
.u-text-muted {
  color: var(--color-text-muted) !important;
}
.u-text-inverse-muted {
  color: var(--color-text-inverse-muted) !important;
}
.u-font-bold {
  font-weight: var(--font-weight-bold) !important;
}
/* Keeps a short phrase on one line (e.g. "30-day pilot", so it never breaks at the hyphen) */
.u-nowrap {
  white-space: nowrap !important;
}

.u-max-measure {
  max-width: var(--measure) !important;
}
.u-w-full {
  width: 100% !important;
}

/* Heading size decoupled from heading level: on hub pages a chapter's section
   titles are h3s (one level below the chapter's h2) but keep the h2 look */
.u-h2 {
  font-size: var(--font-size-h2) !important;
  font-weight: var(--font-weight-heavy) !important;
  line-height: 1.12 !important;
  letter-spacing: var(--letter-spacing-tight) !important;
}
