/**
 * MOLLE Design System — Typography Foundation
 * Style: Stencil Stature & Aggressive Layout Hierarchies
 */

:root {
  /* Fonts */
  --molle-font-body: 'Outfit', 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --molle-font-heading: 'Oswald', 'Impact', 'Arial Black', sans-serif; /* Aggressive, condensed tactical sans */
  
  /* Font Sizes */
  --molle-fs-display: 64px;    /* Landing H1 Full-Size */
  --molle-fs-h1: 48px;         /* Desktop Hero Header */
  --molle-fs-h2: 32px;         /* Section Headers */
  --molle-fs-h3: 24px;         /* Subheadings / Large Card Titles */
  --molle-fs-h4: 18px;         /* Card Titles / Accordions */
  --molle-fs-body-lg: 18px;    /* Hero description text */
  --molle-fs-body: 16px;       /* General Copy */
  --molle-fs-caption: 14px;    /* Metadata details */
  --molle-fs-badge: 12px;      /* High contrast status trackers */

  /* Letter Spacing */
  --molle-ls-badge: 0.15em;    /* Ultra-spaced tracker tracking */
  --molle-ls-heading: -0.02em; /* Tight condensed title tracking */
  --molle-ls-body: 0.01em;     /* Highly readable copy spacing */
}

/* Base Headings reset and utility */
.molle-heading-compact {
  font-family: var(--molle-font-heading);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: var(--molle-ls-heading);
  text-transform: uppercase;
  color: var(--molle-text-primary);
}

.molle-badge-stencil {
  font-family: var(--molle-font-body);
  font-size: var(--molle-fs-badge);
  font-weight: 700;
  letter-spacing: var(--molle-ls-badge);
  text-transform: uppercase;
  color: var(--molle-accent);
  display: inline-block;
}

/* Specific Font Size Utilities */
.fs-display { font-size: var(--molle-fs-display) !important; }
.fs-h1 { font-size: var(--molle-fs-h1) !important; }
.fs-h2 { font-size: var(--molle-fs-h2) !important; }
.fs-h3 { font-size: var(--molle-fs-h3) !important; }
.fs-h4 { font-size: var(--molle-fs-h4) !important; }
.fs-body-lg { font-size: var(--molle-fs-body-lg) !important; }
.fs-body { font-size: var(--molle-fs-body) !important; }
.fs-caption { font-size: var(--molle-fs-caption) !important; }
.fs-badge { font-size: var(--molle-fs-badge) !important; }

/* Namespaced Font Size Utilities */
.molle-u-fs-display { font-size: var(--molle-fs-display) !important; }
.molle-u-fs-h1 { font-size: var(--molle-fs-h1) !important; }
.molle-u-fs-h2 { font-size: var(--molle-fs-h2) !important; }
.molle-u-fs-h3 { font-size: var(--molle-fs-h3) !important; }
.molle-u-fs-h4 { font-size: var(--molle-fs-h4) !important; }
.molle-u-fs-body-lg { font-size: var(--molle-fs-body-lg) !important; }
.molle-u-fs-body { font-size: var(--molle-fs-body) !important; }
.molle-u-fs-caption { font-size: var(--molle-fs-caption) !important; }
.molle-u-fs-badge { font-size: var(--molle-fs-badge) !important; }

/* Font Weight Utilities */
.fw-regular { font-weight: 400 !important; }
.fw-medium { font-weight: 500 !important; }
.fw-semibold { font-weight: 600 !important; }
.fw-bold { font-weight: 700 !important; }

/* Namespaced Font Weight Utilities */
.molle-u-fw-regular { font-weight: 400 !important; }
.molle-u-fw-medium { font-weight: 500 !important; }
.molle-u-fw-semibold { font-weight: 600 !important; }
.molle-u-fw-bold { font-weight: 700 !important; }

/* Text Alignment Utilities */
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-right { text-align: right !important; }
.text-uppercase { text-transform: uppercase !important; }

/* Namespaced Text Alignment & Transform Utilities */
.molle-u-text-left { text-align: left !important; }
.molle-u-text-center { text-align: center !important; }
.molle-u-text-right { text-align: right !important; }
.molle-u-text-uppercase { text-transform: uppercase !important; }
