.heading-hero {
    font-family: var(--font-sans);
    font-size: var(--fs-hero);
    font-weight: 900;
    line-height: 0.88;
    letter-spacing: var(--ls-tight);
    text-transform: uppercase;
}

.heading-xl {
    font-family: var(--font-sans);
    font-size: var(--fs-3xl);
    font-weight: 900;
    line-height: 0.92;
    letter-spacing: -0.035em;
    text-transform: uppercase;
    text-wrap: balance;
}

.heading-lg {
    font-family: var(--font-sans);
    font-size: var(--fs-2xl);
    font-weight: 800;
    line-height: 0.95;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    text-wrap: balance;
}

.heading-md {
    font-family: var(--font-sans);
    font-size: var(--fs-xl);
    font-weight: 700;
    line-height: var(--lh-snug);
    letter-spacing: -0.02em;
}

.heading-sm {
    font-family: var(--font-sans);
    font-size: var(--fs-lg);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.heading-xs {
    font-family: var(--font-sans);
    font-size: var(--fs-sm);
    font-weight: 600;
    line-height: var(--lh-snug);
    letter-spacing: var(--ls-wider);
    text-transform: uppercase;
}

.text-serif {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
}

.text-serif-lg {
    font-family: var(--font-serif);
    font-size: var(--fs-2xl);
    font-style: italic;
    font-weight: 400;
    line-height: 1.2;
}

.text-body {
    font-size: var(--fs-base);
    line-height: 1.65;
    color: var(--text-secondary);
}

.text-caption {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: var(--ls-wider);
    text-transform: uppercase;
    color: var(--text-muted);
}

.text-accent {
    color: var(--accent);
}

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

.text-balance {
    text-wrap: balance;
}

.section-label {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: var(--ls-wider);
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: var(--space-sm);
}
