/* =====================================================
   SPK — Utilities (spacing, display, text helpers)
   ===================================================== */

/* Display */
.d-none { display: none !important; }
.d-block { display: block !important; }
.d-flex { display: flex !important; }
.d-grid { display: grid !important; }
.d-inline-block { display: inline-block !important; }

/* Text alignment */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }

/* Text colour */
.text-primary { color: var(--color-text-primary); }
.text-secondary { color: var(--color-text-secondary); }
.text-brand { color: var(--color-primary-teal); }
.text-inverse { color: var(--color-bg-white); }
.text-muted { color: var(--color-text-tertiary); }

/* Font size */
.fs-small { font-size: var(--fs-small); }
.fs-micro { font-size: var(--fs-micro); }
.fs-body-lg { font-size: var(--fs-body-lg); }

/* Font family */
.font-serif { font-family: var(--font-serif); }
.font-sans  { font-family: var(--font-sans); }
.font-mono  { font-family: var(--font-mono); }

/* Font weight */
.fw-regular { font-weight: var(--fw-regular); }
.fw-medium  { font-weight: var(--fw-medium); }

/* Spacing helpers (margin / padding) */
.mt-0 { margin-top: 0; } .mt-2 { margin-top: var(--space-2); } .mt-3 { margin-top: var(--space-3); } .mt-4 { margin-top: var(--space-4); } .mt-5 { margin-top: var(--space-5); } .mt-6 { margin-top: var(--space-6); } .mt-8 { margin-top: var(--space-8); } .mt-10 { margin-top: var(--space-10); } .mt-12 { margin-top: var(--space-12); }
.mb-0 { margin-bottom: 0; } .mb-2 { margin-bottom: var(--space-2); } .mb-3 { margin-bottom: var(--space-3); } .mb-4 { margin-bottom: var(--space-4); } .mb-5 { margin-bottom: var(--space-5); } .mb-6 { margin-bottom: var(--space-6); } .mb-8 { margin-bottom: var(--space-8); } .mb-10 { margin-bottom: var(--space-10); } .mb-12 { margin-bottom: var(--space-12); }
.mx-auto { margin-left: auto; margin-right: auto; }
.pt-0 { padding-top: 0; } .pt-4 { padding-top: var(--space-4); } .pt-8 { padding-top: var(--space-8); } .pt-12 { padding-top: var(--space-12); }
.pb-0 { padding-bottom: 0; } .pb-4 { padding-bottom: var(--space-4); } .pb-8 { padding-bottom: var(--space-8); } .pb-12 { padding-bottom: var(--space-12); }

/* Gap */
.gap-2 { gap: var(--space-2); } .gap-3 { gap: var(--space-3); } .gap-4 { gap: var(--space-4); } .gap-5 { gap: var(--space-5); } .gap-6 { gap: var(--space-6); } .gap-8 { gap: var(--space-8); }

/* Flex helpers */
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }

/* Width */
.w-full { width: 100%; }
.max-w-prose { max-width: var(--container-prose); }

/* Backgrounds */
.bg-default { background: var(--color-bg-default); }
.bg-white { background: var(--color-bg-white); }
.bg-teal-50 { background: var(--color-primary-teal-50); }
.bg-coral-50 { background: var(--color-accent-coral-50); }
.bg-primary-dark { background: var(--color-primary-dark); color: var(--color-bg-white); }

/* Borders */
.rounded-md { border-radius: var(--radius-md); }
.rounded-lg { border-radius: var(--radius-lg); }
.border { border: var(--border-normal); }
.border-t { border-top: var(--border-normal); }
.border-b { border-bottom: var(--border-normal); }

/* Visually hidden */
.visually-hidden {
	position: absolute; width: 1px; height: 1px;
	padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
