/**
 * LBC Design Tokens - SINGLE SOURCE OF TRUTH
 * 
 * @package LBC_Theme
 * @version 1.4.0
 * 
 * CRITICAL: This file defines ALL CSS custom properties for the theme.
 * Page-specific CSS files should NOT redefine these variables.
 * 
 * Load Order (in enqueue.php):
 * 1. lbc-tokens.css      ← THIS FILE (loads first)
 * 2. lbc-canon-shell.css ← Header/footer/nav
 * 3. lbc-global.css      ← Shared components
 * 4. Page-specific CSS   ← Only page-unique styles
 */

:root {
  /* =========================================================
     COLORS - Brand Palette
     ========================================================= */
  
  /* Primary: Navy (dark, authoritative) */
  --lbc-navy: #0b1021;
  --lbc-navy-soft: #1e293b;
  --lbc-navy-light: #141d33;
  
  /* Accent: Gold (warm, inviting) */
  --lbc-gold: #d0a75f;
  --lbc-gold-hover: #b48e4d;
  --lbc-gold-light: #facc6b;
  --lbc-gold-deep: #8a6a2f;   /* gold for TEXT on light surfaces — 5:1 on white (WCAG AA) */

  /* Neutrals: Warm tones */
  --lbc-cream: #fdf8ee;
  --lbc-sand: #e6dac4;
  --lbc-white: #ffffff;
  
  /* Text Colors */
  --lbc-text: #1f2933;
  --lbc-text-soft: #4b5563;
  --lbc-text-muted: #9ca3af;
  --lbc-text-inverse: #ffffff;

  /* Functional Colors */
  --lbc-error: #dc2626;
  
  /* Borders */
  --lbc-border-soft: rgba(148, 163, 184, 0.35);
  --lbc-border-light: rgba(148, 163, 184, 0.15);
  --lbc-border-dark: rgba(0, 0, 0, 0.08);

  /* Seasonal accent: event alert banner (VBS emerald) */
  --lbc-emerald-deep: #12331f;
  --lbc-emerald: #1d5c33;

  /* Third-party brand colors (calendar provider icons only) */
  --lbc-brand-google: #4285f4;
  --lbc-brand-outlook: #0078d4;

  /* =========================================================
     TYPOGRAPHY
     ========================================================= */
  
  /* Font Families */
  --font-heading: "Montserrat", sans-serif;
  --font-body: "Source Sans 3", system-ui, sans-serif;
  
  /* Font Sizes - Mobile First (base: 16px) */
  --font-size-xs: 0.75rem;    /* 12px */
  --font-size-sm: 0.875rem;   /* 14px */
  --font-size-base: 1rem;     /* 16px */
  --font-size-md: 1.125rem;   /* 18px */
  --font-size-lg: 1.25rem;    /* 20px */
  --font-size-xl: 1.5rem;     /* 24px */
  --font-size-2xl: 1.75rem;   /* 28px */
  --font-size-3xl: 2rem;      /* 32px */
  --font-size-4xl: 2.5rem;    /* 40px */
  --font-size-5xl: 3rem;      /* 48px */
  
  /* Line Heights */
  --line-height-tight: 1.15;
  --line-height-snug: 1.3;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.7;
  --line-height-loose: 1.8;
  
  /* Font Weights */
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  
  /* Letter Spacing */
  --letter-spacing-tight: -0.02em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.05em;
  --letter-spacing-wider: 0.08em;
  --letter-spacing-widest: 0.12em;
  
  /* =========================================================
     SPACING
     ========================================================= */
  --space-1: 0.25rem;   /* 4px */
  --space-2: 0.5rem;    /* 8px */
  --space-3: 0.75rem;   /* 12px */
  --space-4: 1rem;      /* 16px */
  --space-5: 1.25rem;   /* 20px */
  --space-6: 1.5rem;    /* 24px */
  --space-8: 2rem;      /* 32px */
  --space-10: 2.5rem;   /* 40px */
  --space-12: 3rem;     /* 48px */
  --space-16: 4rem;     /* 64px */
  --space-20: 5rem;     /* 80px */
  --space-24: 6rem;     /* 96px */
  
  /* Section Padding (responsive) */
  --section-padding-sm: 3rem;
  --section-padding-md: 4rem;
  --section-padding-lg: 5rem;
  
  /* =========================================================
     BORDER RADIUS
     ========================================================= */
  --radius-none: 0;
  --radius-sm: 0.375rem;  /* 6px */
  --radius-md: 0.5rem;    /* 8px */
  --radius-lg: 0.75rem;   /* 12px */
  --radius-xl: 1rem;      /* 16px */
  --radius-2xl: 1.25rem;  /* 20px */
  --radius-full: 999px;   /* Pill shape */
  
  /* =========================================================
     SHADOWS
     ========================================================= */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 15px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.12);
  --shadow-xl: 0 15px 35px rgba(0, 0, 0, 0.15);
  --shadow-2xl: 0 25px 50px rgba(0, 0, 0, 0.2);
  
  /* Colored Shadows */
  --shadow-gold: 0 4px 15px rgba(208, 167, 95, 0.3);
  --shadow-gold-hover: 0 6px 20px rgba(208, 167, 95, 0.4);
  --shadow-navy: 0 6px 14px rgba(15, 23, 42, 0.35);
  
  /* =========================================================
     TRANSITIONS
     ========================================================= */
  --transition-fast: 150ms ease-out;
  --transition-normal: 250ms ease-out;
  --transition-slow: 350ms ease-out;
  --transition-colors: color 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out;
  --transition-transform: transform 200ms ease-out;
  --transition-all: all 200ms ease-out;
  
  /* =========================================================
     Z-INDEX SCALE
     ========================================================= */
  --z-below: -1;
  --z-base: 0;
  --z-above: 1;
  --z-dropdown: 100;
  --z-sticky: 500;
  --z-fixed: 900;
  --z-modal-backdrop: 950;
  --z-modal: 1000;
  --z-tooltip: 1100;
  
  /* =========================================================
     LAYOUT
     ========================================================= */
  --container-max: 1120px;
  --container-xl: 1120px;
  --container-md: 768px;
  --container-2xl: 1400px;
  --container-padding: 1rem;
  --header-height: 80px;
  --header-height-scrolled: 64px;
  
  /* =========================================================
     BREAKPOINTS (for reference - use in media queries)
     ========================================================= */
  /* 
   * Mobile:  < 640px   (default styles)
   * Tablet:  >= 641px  @media (min-width: 641px)
   * Desktop: >= 900px  @media (min-width: 900px)
   * Large:   >= 1100px @media (min-width: 1100px)
   */
}

/* =========================================================
   RESPONSIVE TOKEN ADJUSTMENTS
   ========================================================= */

/* Tablet and up */
@media (min-width: 641px) {
  :root {
    --container-padding: 1.5rem;
    --header-height: 96px;
  }
}

/* Desktop and up */
@media (min-width: 900px) {
  :root {
    --container-padding: 2rem;
  }
}
