/* CASTRUM - Typography System
----------------------------------------
* Centralized font sizes, weights, and styles
*/

/* Font Families */
:root {
    --font-primary: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    --font-monospace: 'Courier New', Courier, monospace;
    --font-buttons: var(--font-primary);
}

/* Font Sizes */
:root {
    /* Headings */
    --font-size-h1: 2rem;           /* 32px */
    --font-size-h2: 1.5rem;         /* 24px */
    --font-size-h3: 1.25rem;        /* 20px */
    --font-size-h4: 1.125rem;       /* 18px */
    --font-size-h5: 1rem;           /* 16px */
    --font-size-h6: 0.875rem;       /* 14px */
    
    /* Body text */
    --font-size-base: 0.875rem;     /* 14px - Base font size */
    --font-size-lg: 1rem;           /* 16px */
    --font-size-sm: 0.8125rem;      /* 13px */
    --font-size-xs: 0.75rem;        /* 12px */
    
    /* Special */
    --font-size-label: 0.8125rem;   /* 13px - Form labels */
    --font-size-input: 0.8125rem;   /* 13px - Input text */
    --font-size-button: 0.8125rem;  /* 13px - Button text */
}

/* Font Weights */
:root {
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
}

/* Line Heights */
:root {
    --line-height-tight: 1.2;
    --line-height-normal: 1.4;
    --line-height-relaxed: 1.6;
}

/* Heading Styles */
h1, .h1 {
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
    margin-bottom: 1.5rem;
}

h2, .h2 {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
    margin-bottom: 1rem;
}

h3, .h3 {
    font-size: var(--font-size-h3);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
    margin-bottom: 0.75rem;
}

h4, .h4 {
    font-size: var(--font-size-h4);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-normal);
    margin-bottom: 0.5rem;
}

h5, .h5 {
    font-size: var(--font-size-h5);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-normal);
    margin-bottom: 0.5rem;
}

h6, .h6 {
    font-size: var(--font-size-h6);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-normal);
    margin-bottom: 0.5rem;
}

/* Body Text */
body {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-normal);
    line-height: var(--line-height-normal);
    color: var(--text-color);
}

/* Text Utilities */
.text-lg {
    font-size: var(--font-size-lg);
}

.text-sm {
    font-size: var(--font-size-sm);
}

.text-xs {
    font-size: var(--font-size-xs);
}

.text-light {
    font-weight: var(--font-weight-light);
}

.text-normal {
    font-weight: var(--font-weight-normal);
}

.text-medium {
    font-weight: var(--font-weight-medium);
}

.text-semibold {
    font-weight: var(--font-weight-semibold);
}

.text-bold {
    font-weight: var(--font-weight-bold);
}

.text-muted {
    color: var(--text-color-muted);
}

.text-primary {
    color: var(--color-primary);
}

.text-secondary {
    color: var(--color-secondary);
}
