/* Typography System - Precise Harmonic Spacing */

h1,
.h1 {
    font-size: 2.25rem;
    /* 36px */
    font-weight: 800;
    margin-bottom: var(--sp-6);
    letter-spacing: -0.05em;
}

h2,
.h2 {
    font-size: 1.75rem;
    /* 28px */
    font-weight: 700;
    margin-bottom: var(--sp-4);
    letter-spacing: -0.04em;
}

h3,
.h3 {
    font-size: 1.25rem;
    /* 20px */
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: var(--sp-4);
    letter-spacing: -0.03em;
}

h4,
.h4 {
    font-size: 1rem;
    /* 16px */
    font-weight: 700;
    margin-bottom: var(--sp-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-secondary);
}

body,
.body {
    font-size: 0.9375rem;
    /* 15px is better for dense SaaS dashboards */
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: -0.01em;
}

small,
.small {
    font-size: 0.8125rem;
    /* 13px */
    font-weight: 500;
    line-height: 1.5;
}

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

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

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

.font-medium {
    font-weight: 500;
}

.font-bold {
    font-weight: 700;
}

.font-extrabold {
    font-weight: 800;
}

.lh-tight {
    line-height: 1.25;
}

.lh-body {
    line-height: 1.6;
}

.lh-relaxed {
    line-height: 1.8;
}

.tracking-tighter {
    letter-spacing: -0.05em;
}

.tracking-tight {
    letter-spacing: -0.025em;
}

.tracking-normal {
    letter-spacing: 0em;
}

.tracking-wide {
    letter-spacing: 0.025em;
}

.tracking-wider {
    letter-spacing: 0.05em;
}

.tracking-widest {
    letter-spacing: 0.1em;
}