/* ===== TYPOGRAPHY ===== */

/* Font families are defined in variables.css */

/* Headings */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
    color: var(--dark-color);
    margin-bottom: var(--spacing-md);
}

h1 {
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-bold);
}

h2 {
    font-size: var(--font-size-4xl);
}

h3 {
    font-size: var(--font-size-3xl);
}

h4 {
    font-size: var(--font-size-2xl);
}

h5 {
    font-size: var(--font-size-xl);
}

h6 {
    font-size: var(--font-size-lg);
}

/* Body text */
p {
    font-family: var(--font-secondary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-relaxed);
    color: var(--gray-color);
    margin-bottom: var(--spacing-md);
}

/* Lead text */
.lead {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-relaxed);
}

/* Small text */
small, .small {
    font-size: var(--font-size-sm);
}

/* Extra small text */
.text-xs {
    font-size: var(--font-size-xs);
}

/* Links */
a {
    color: var(--primary-color);
    text-decoration: none;
    transition: color var(--animation-duration-fast) var(--ease-in-out);
}

a:hover {
    color: var(--primary-dark);
}

/* Text weights */
.font-light { font-weight: var(--font-weight-light); }
.font-normal { font-weight: var(--font-weight-normal); }
.font-medium { font-weight: var(--font-weight-medium); }
.font-semibold { font-weight: var(--font-weight-semibold); }
.font-bold { font-weight: var(--font-weight-bold); }

/* Text sizes */
.text-xs { font-size: var(--font-size-xs); }
.text-sm { font-size: var(--font-size-sm); }
.text-base { font-size: var(--font-size-base); }
.text-lg { font-size: var(--font-size-lg); }
.text-xl { font-size: var(--font-size-xl); }
.text-2xl { font-size: var(--font-size-2xl); }
.text-3xl { font-size: var(--font-size-3xl); }
.text-4xl { font-size: var(--font-size-4xl); }
.text-5xl { font-size: var(--font-size-5xl); }

/* Text colors */
.text-primary { color: var(--primary-color); }
.text-secondary { color: var(--accent-color); }
.text-dark { color: var(--dark-color); }
.text-gray { color: var(--gray-color); }
.text-light { color: var(--gray-color-light); }
.text-white { color: var(--white-color); }

/* Section typography */
.section__title {
    font-size: var(--font-size-4xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    color: var(--dark-color);
    margin-bottom: var(--spacing-md);
}

.section__subtitle {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--primary-color);
    margin-bottom: var(--spacing-sm);
}

.section__description {
    font-size: var(--font-size-lg);
    line-height: var(--line-height-relaxed);
    color: var(--gray-color);
    max-width: 60ch;
    margin: 0 auto;
} 