/* ── Spacing ── */
.mt-1 {
    margin-top: var(--sp-1);
}

.mt-2 {
    margin-top: var(--sp-2);
}

.mt-3 {
    margin-top: var(--sp-3);
}

.mt-4 {
    margin-top: var(--sp-4);
}

.mt-6 {
    margin-top: var(--sp-6);
}

.mt-8 {
    margin-top: var(--sp-8);
}

.mb-2 {
    margin-bottom: var(--sp-2);
}

.mb-4 {
    margin-bottom: var(--sp-4);
}

.mb-6 {
    margin-bottom: var(--sp-6);
}

.mb-8 {
    margin-bottom: var(--sp-8);
}

.p-2 {
    padding: var(--sp-2);
}

.p-4 {
    padding: var(--sp-4);
}

.p-6 {
    padding: var(--sp-6);
}

/* ── Text ── */
.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

.text-accent {
    color: var(--color-gold);
}

.text-olive {
    color: var(--color-olive-main);
}

.text-muted {
    color: var(--color-ink-soft);
    opacity: 0.7;
}

.text-white {
    color: var(--color-white);
}

.text-sm {
    font-size: var(--fs-sm);
}

.text-lg {
    font-size: var(--fs-lg);
}

.text-xl {
    font-size: var(--fs-xl);
}

.italic {
    font-style: italic;
}

.serif {
    font-family: var(--font-serif);
}

/* ── Display ── */
.hidden {
    display: none !important;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ── Background ── */
.bg-surface {
    background: var(--color-surface);
}

.bg-white {
    background: var(--color-white);
}

.bg-olive {
    background: var(--color-olive-main);
    color: var(--color-white);
}

.bg-dark {
    background: var(--color-ink-green);
    color: var(--color-white);
}

.bg-muted {
    background: rgba(118, 137, 75, 0.07);
}

/* ── Width helpers ── */
.w-full {
    width: 100%;
}

.max-prose {
    max-width: 68ch;
}