/* Semantic typography scale for the public site */
:root {
    --type-display-size: clamp(3rem, 5vw, 4.5rem);
    --type-headline-size: clamp(2.25rem, 4vw, 3rem);
    --type-section-size: clamp(1.5rem, 2.25vw, 1.875rem);
    --type-card-title-size: 1.25rem;
    --type-stat-size: clamp(2.5rem, 4.5vw, 3.5rem);
    --type-lead-size: clamp(1.125rem, 1.5vw, 1.25rem);
    --type-body-size: 1rem;
    --type-body-sm-size: 0.875rem;
    --type-nav-size: 0.9375rem;
    --type-caption-size: 0.75rem;
}

body {
    font-size: var(--type-body-size);
    line-height: 1.7;
}

.type-display {
    font-size: var(--type-display-size);
    line-height: 0.95;
    letter-spacing: -0.04em;
}

.type-headline {
    font-size: var(--type-headline-size);
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.type-section {
    font-size: var(--type-section-size);
    line-height: 1.15;
}

.type-card-title {
    font-size: var(--type-card-title-size);
    line-height: 1.25;
}

.type-stat {
    font-size: var(--type-stat-size);
    line-height: 1;
    letter-spacing: -0.03em;
}

.type-lead {
    font-size: var(--type-lead-size);
    line-height: 1.75;
}

.type-body {
    font-size: var(--type-body-size);
    line-height: 1.7;
}

.type-body-sm {
    font-size: var(--type-body-sm-size);
    line-height: 1.5;
}

.type-nav {
    font-size: var(--type-nav-size);
    line-height: 1.25;
}

.type-caption {
    font-size: var(--type-caption-size);
    line-height: 1.4;
    letter-spacing: 0.04em;
}
