/* Typography system (air, readability, hierarchy) */

body {
    font-size: 16px;
    line-height: 1.7;
    text-rendering: geometricPrecision;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4 {
    color: var(--color-text);
}

h1 {
    font-size: clamp(2.1rem, 4vw, 3rem);
    line-height: 1.05;
    letter-spacing: -0.06em;
    margin: 0;
}

h2 {
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    line-height: 1.15;
    letter-spacing: -0.04em;
    margin: 0;
}

h3 {
    font-size: 1.25rem;
    line-height: 1.25;
    letter-spacing: -0.03em;
    margin: 0;
}

h4 {
    font-size: 1.05rem;
    line-height: 1.3;
    letter-spacing: -0.02em;
    margin: 0;
}

p {
    margin: 0;
}

small {
    font-size: 0.86rem;
}

/* Tie into existing UI classes */
.page-title {
    line-height: 1.15;
    letter-spacing: -0.04em;
}

.hero-card__title,
.student-hero__title,
.lesson-hero__title,
.admin-hero__title,
.packages-hero__title,
.notes-hero__title,
.notifications-hero__title {
    line-height: 1.15;
    letter-spacing: -0.04em;
}

.hero-card__text,
.student-hero__text,
.lesson-hero__text,
.admin-hero__text,
.packages-hero__text,
.notes-hero__text,
.notifications-hero__text,
.landing-subtitle {
    color: var(--color-text-muted);
}

.section-heading__title {
    line-height: 1.2;
}

.section-heading__eyebrow,
.page-title__eyebrow,
.sidebar__eyebrow,
.landing-widget__label,
.hero-card__badge {
    letter-spacing: 0.12em;
}

