/* Typography System - Clean Professional Style */
:root {
    --font-heading: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-body: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --color-primary: #DC2626;  /* Brand red */
    --color-secondary: #991B1B;
    --color-accent: #D97706;   /* Gold accent */
    --color-dark: #1a1a1a;     /* Near black for text */
    --color-text: #333333;     /* Body text */
    --color-light: #F8FAFC;
    --color-white: #ffffff;
    --color-gray: #666666;
    
    /* Font sizes - Professional scale */
    --fs-xs: 0.75rem;     /* 12px */
    --fs-sm: 0.875rem;    /* 14px */
    --fs-base: 1rem;      /* 16px base */
    --fs-md: 1.125rem;    /* 18px */
    --fs-lg: 1.25rem;     /* 20px */
    --fs-xl: 1.5rem;      /* 24px */
    --fs-2xl: 2rem;       /* 32px */
    --fs-3xl: 2.5rem;     /* 40px */
    --fs-4xl: 3rem;       /* 48px */
    --fs-5xl: 3.5rem;     /* 56px */
    --fs-6xl: 4rem;       /* 64px */
    
    /* Line heights */
    --lh-tight: 1.1;
    --lh-snug: 1.3;
    --lh-normal: 1.6;
    --lh-relaxed: 1.8;
    
    /* Font weights */
    --fw-light: 300;
    --fw-normal: 400;
    --fw-medium: 500;
    --fw-semibold: 600;
    --fw-bold: 700;
    --fw-extrabold: 800;
    --fw-black: 900;
    
    /* Letter spacing */
    --ls-tight: -0.025em;
    --ls-normal: 0;
    --ls-wide: 0.025em;
    --ls-wider: 0.05em;
    --ls-widest: 0.1em;
}

/* Base Typography */
html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--font-body);
    font-size: 1rem; /* normalized base size */
    font-weight: var(--fw-normal);
    line-height: var(--lh-normal);
    color: var(--color-text);
    letter-spacing: var(--ls-normal);
}

/* Headings - Bold & Impactful - UNIFORM SIZES */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    color: var(--color-dark);
    line-height: var(--lh-tight);
    margin-bottom: 1rem;
    letter-spacing: var(--ls-tight);
}

/* All main titles use same size for uniformity */
h1, h2, h3 {
    font-size: clamp(2rem, 4vw, 2.75rem); /* Uniform size for all main titles */
    font-weight: var(--fw-extrabold);
    line-height: 1.2;
}

h4 {
    font-size: clamp(1.5rem, 3vw, 2rem); /* Slightly smaller for sub-sections */
    font-weight: var(--fw-bold);
    line-height: 1.3;
}

h5 {
    font-size: 1.5rem; /* Increased from 1.25rem */
    font-weight: var(--fw-semibold);
}

h6 {
    font-size: 1.25rem; /* Increased from 1.125rem */
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--ls-wide);
}

/* Body Text - Increased size */
p {
    font-size: 1rem; /* normalized paragraph size */
    line-height: var(--lh-relaxed);
    margin-bottom: 1.5rem;
    color: var(--color-text);
}

/* Normalization overrides to reduce overall scale across pages */
.section-description,
.testimonial-text,
.card-text,
.program-content p,
ul, ol { font-size: 1rem; }

/* Lead/Intro Text */
.lead, .intro-text {
    font-size: var(--fs-xl);
    font-weight: var(--fw-light);
    line-height: var(--lh-normal);
    color: var(--color-gray);
}

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

/* Links */
a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color 0.3s ease;
}

a:hover {
    color: var(--color-secondary);
}

/* Section Titles - Uniform with h1-h3 */
.section-title {
    font-size: clamp(2rem, 4vw, 2.75rem); /* Match h1-h3 uniform size */
    font-weight: var(--fw-extrabold);
    color: var(--color-dark);
    text-align: center;
    margin-bottom: 1rem;
}

.section-subtitle {
    font-size: 1.25rem; /* Increased from 1.25rem */
    font-weight: var(--fw-normal);
    color: var(--color-gray);
    text-align: center;
    max-width: 700px;
    margin: 0 auto 3rem;
}

/* Hero Typography */
.hero-title {
    font-size: clamp(3rem, 7vw, 5rem);
    font-weight: var(--fw-black);
    line-height: 1;
    letter-spacing: var(--ls-tight);
}

.hero-subtitle {
    font-size: clamp(1rem, 2vw, 1.15rem);
    font-weight: var(--fw-light);
    line-height: var(--lh-snug);
    opacity: 0.9;
}

/* Card Typography */
.card-title {
    font-size: 1.75rem; /* Increased from 1.5rem */
    font-weight: var(--fw-bold);
    margin-bottom: 0.75rem;
}

.card-text {
    font-size: 1.1875rem; /* Slightly increased paragraph size */
    color: var(--color-gray);
    line-height: var(--lh-normal);
}

/* Button Typography */
.btn {
    font-family: var(--font-body);
    font-size: var(--fs-base);
    font-weight: var(--fw-semibold);
    letter-spacing: var(--ls-wide);
    text-transform: uppercase;
}

/* Responsive Typography */
@media (max-width: 768px) {
    body {
        font-size: 1.0625rem; /* Slightly larger on mobile */
    }
    
    p {
        font-size: 1.0625rem; /* Increased from 1rem */
    }
    
    .lead, .intro-text {
        font-size: 1.25rem; /* Increased from 1.25rem */
    }
    
    /* Ensure titles remain uniform on mobile */
    h1, h2, h3 {
        font-size: clamp(1.75rem, 5vw, 2.25rem);
    }
    
    h4 {
        font-size: clamp(1.35rem, 4vw, 1.75rem);
    }
}