/* ==========================================
   FRANZ Framework - Typography
========================================== */

:root {
    --franz-font-body: var(--font-body, "Inter", Arial, sans-serif);
    --franz-font-heading: var(--font-heading, "Inter", Arial, sans-serif);
    --franz-text-xs: 0.75rem;
    --franz-text-sm: 0.875rem;
    --franz-text-base: 1rem;
    --franz-text-lg: 1.125rem;
    --franz-text-xl: 1.375rem;
    --franz-heading-sm: clamp(1.5rem, 2vw, 2rem);
    --franz-heading-md: clamp(2rem, 3vw, 3rem);
    --franz-heading-lg: clamp(2.75rem, 5vw, 5rem);
    --franz-heading-xl: clamp(3.25rem, 7vw, 6rem);
    --franz-display-heading: clamp(3.25rem, 8vw, 8.875rem);
    --franz-line-height-tight: 1.05;
    --franz-line-height-heading: 1.15;
    --franz-line-height-body: 1.65;
    --franz-letter-spacing-label: 0.12em;
    --franz-letter-spacing-heading: -0.035em;
}

body {
    font-family: var(--franz-font-body);
    font-size: var(--franz-text-base);
    color: var(--franz-text);
    line-height: var(--franz-line-height-body);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    font-family: var(--franz-font-heading);
    font-weight: 700;
    line-height: var(--franz-line-height-heading);
    letter-spacing: var(--franz-letter-spacing-heading);
    text-wrap: balance;
}

h1 {
    font-size: var(--franz-heading-lg);
}

h2 {
    font-size: var(--franz-heading-md);
}

h3 {
    font-size: var(--franz-heading-sm);
}

p {
    margin: 0;
}

.franz-heading-xl {
    font-size: var(--franz-heading-lg);
    line-height: var(--franz-line-height-tight);
    letter-spacing: var(--franz-letter-spacing-heading);
}

.franz-heading-lg {
    font-size: var(--franz-heading-md);
}

.franz-heading-md {
    font-size: var(--franz-heading-sm);
}

.franz-lead {
    max-width: 760px;
    font-size: var(--franz-text-xl);
    line-height: 1.55;
    text-wrap: pretty;
}

.franz-body {
    font-size: var(--franz-text-base);
    line-height: var(--franz-line-height-body);
}

.franz-eyebrow,
.franz-section-kicker {
    margin: 0 0 16px;
    font-size: var(--franz-text-xs);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: var(--franz-letter-spacing-label);
    text-transform: uppercase;
    color: var(--franz-gold-text);
}

.franz-text-muted {
    opacity: 0.72;
}

@media (max-width: 640px) {
    :root {
        --franz-heading-sm: clamp(1.35rem, 2vw, 1.65rem);
        --franz-heading-md: clamp(1.75rem, 4vw, 2.25rem);
        --franz-heading-lg: clamp(2.25rem, 8vw, 3.25rem);
        --franz-text-xl: 1.1875rem;
    }
}
