/**
 * Portal Typography System
 * Executive Standards for I-Volunteer Portal
 */

:root {
    --fs-h1: 2.25rem;  /* 36px */
    --fs-h2: 1.75re;   /* 28px */
    --fs-h3: 1.25rem;  /* 20px */
    --fs-h4: 1.125rem; /* 18px */
    --fs-base: 1rem;   /* 16px */
    --fs-sm: 0.875rem; /* 14px */
    --fs-xs: 0.75rem;  /* 12px */
    
    --lh-base: 1.7;
    --lh-article: 1.85;
}

/* Global Scale Overrides */
html {
    font-size: 16px;
}

body {
    font-size: var(--fs-base) !important;
    line-height: var(--lh-base) !important;
}

h1, .h1 { font-size: var(--fs-h1) !important; font-weight: 800 !important; }
h2, .h2 { font-size: var(--fs-h2) !important; font-weight: 700 !important; }
h3, .h3 { font-size: var(--fs-h3) !important; font-weight: 700 !important; }
h4, .h4 { font-size: var(--fs-h4) !important; font-weight: 600 !important; }
h5, .h5 { font-size: var(--fs-base) !important; font-weight: 600 !important; }
h6, .h6 { font-size: var(--fs-sm) !important; font-weight: 600 !important; }

/* Specific Portal Components */
.box-title {
    font-size: var(--fs-h2) !important;
    letter-spacing: -0.5px;
}

.box-title-lite {
    font-size: var(--fs-h3) !important;
    font-weight: 700;
}

.news-headline {
    font-size: 1.2rem !important;
    line-height: 1.5 !important;
}

.hero-title {
    font-size: var(--fs-h1) !important;
}

.section-header h2 {
    font-size: 1.4rem !important;
}

/* Sidebar & Navigation */
.nav-item {
    font-size: var(--fs-sm) !important;
}

.user-name {
    font-size: var(--fs-sm) !important;
}

/* Cards & Counters */
.counter {
    font-size: 2.5rem !important;
    font-weight: 800 !important;
}

/* Reading Experience Optimization */
.article-body-context,
.article-main-text {
    font-size: 1.125rem !important; /* ~18px for better reading */
    line-height: var(--lh-article) !important;
}

.news-date, 
.meta-item,
.text-muted {
    font-size: var(--fs-sm) !important;
}

/* Settings & Forms */
.form-group label {
    font-size: var(--fs-sm) !important;
    font-weight: 600;
    margin-bottom: 8px;
}

.form-control {
    font-size: var(--fs-base) !important;
}

/* Mobile Adjustments */
@media (max-width: 768px) {
    :root {
        --fs-h1: 1.85rem;
        --fs-h2: 1.5rem;
    }
    
    .counter {
        font-size: 2rem !important;
    }
}
