/* ==========================================================================
   3Lions.ca Design Tokens
   Design · Develop · Automate
   
   SINGLE SOURCE OF TRUTH — Every page imports this file.
   Never hardcode values. Always use var(--token-name).
   ========================================================================== */

:root {
  /* ----------------------------------------------------------------
     COLORS — England FA Heritage Palette on White
     ---------------------------------------------------------------- */
  
  /* Primary */
  --color-navy:          #012169;
  --color-navy-light:    #1B3A8C;
  --color-navy-dark:     #000F3D;
  --color-red:           #CF081F;
  --color-red-hover:     #A8061A;
  --color-red-light:     #E8293E;
  --color-white:         #FFFFFF;
  
  /* Neutrals */
  --color-off-white:     #F5F5F7;
  --color-gray-100:      #F0F0F4;
  --color-gray-200:      #E0E0E8;
  --color-gray-300:      #C8C8D4;
  --color-gray-400:      #9898AC;
  --color-gray-500:      #6E6E82;
  --color-text:          #1A1A2E;
  --color-text-light:    #555570;
  --color-text-inverse:  #FFFFFF;
  --color-border:        #E0E0E8;
  
  /* Semantic */
  --color-success:       #0D7C3F;
  --color-warning:       #D4880F;
  --color-error:         #CF081F;
  --color-info:          #1B3A8C;
  
  /* Surfaces */
  --color-surface:       var(--color-white);
  --color-surface-alt:   var(--color-off-white);
  --color-surface-dark:  var(--color-navy);
  --color-overlay:       rgba(1, 33, 105, 0.85);
  
  /* ----------------------------------------------------------------
     TYPOGRAPHY — Roboto Family
     ---------------------------------------------------------------- */
  --font-primary:        'Roboto', -apple-system, BlinkMacSystemFont, sans-serif;
  
  /* Weights */
  --fw-light:    300;
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-bold:     700;
  --fw-black:    900;
  
  /* Size Scale (desktop) — mobile sizes set via media queries */
  --fs-display:  4rem;       /* 64px — homepage hero only */
  --fs-h1:       3.5rem;     /* 56px */
  --fs-h2:       2.5rem;     /* 40px */
  --fs-h3:       1.5rem;     /* 24px */
  --fs-h4:       1.125rem;   /* 18px */
  --fs-body:     1rem;       /* 16px */
  --fs-body-lg:  1.125rem;   /* 18px */
  --fs-small:    0.875rem;   /* 14px */
  --fs-caption:  0.75rem;    /* 12px */
  --fs-nav:      0.9375rem;  /* 15px */
  --fs-button:   0.9375rem;  /* 15px */
  
  /* Line Heights */
  --lh-tight:    1.1;
  --lh-heading:  1.2;
  --lh-body:     1.6;
  --lh-relaxed:  1.8;
  
  /* Letter Spacing */
  --ls-tight:    -0.02em;
  --ls-normal:   0;
  --ls-wide:     0.05em;
  --ls-wider:    0.1em;
  
  /* ----------------------------------------------------------------
     SPACING
     ---------------------------------------------------------------- */
  --space-2xs:   0.125rem;   /* 2px */
  --space-xs:    0.25rem;    /* 4px */
  --space-sm:    0.5rem;     /* 8px */
  --space-md:    1rem;       /* 16px */
  --space-lg:    1.5rem;     /* 24px */
  --space-xl:    2rem;       /* 32px */
  --space-2xl:   3rem;       /* 48px */
  --space-3xl:   4rem;       /* 64px */
  --space-4xl:   6rem;       /* 96px */
  --space-section: 5rem;     /* 80px — default section vertical padding */
  
  /* ----------------------------------------------------------------
     LAYOUT
     ---------------------------------------------------------------- */
  --max-width:       1440px;
  --content-width:   1200px;
  --narrow-width:    800px;
  --gutter:          2rem;
  --gutter-mobile:   1.25rem;
  
  /* Grid */
  --grid-columns:    12;
  --grid-gap:        2rem;
  --grid-gap-mobile: 1rem;
  
  /* ----------------------------------------------------------------
     BORDERS & RADIUS
     ---------------------------------------------------------------- */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-full: 9999px;
  
  --border-thin:  1px solid var(--color-border);
  --border-focus: 2px solid var(--color-navy);
  
  /* ----------------------------------------------------------------
     SHADOWS
     ---------------------------------------------------------------- */
  --shadow-sm:    0 1px 2px rgba(0, 0, 0, 0.04), 
                  0 1px 4px rgba(0, 0, 0, 0.06);
  --shadow-md:    0 2px 4px rgba(0, 0, 0, 0.04), 
                  0 4px 12px rgba(0, 0, 0, 0.08);
  --shadow-lg:    0 4px 8px rgba(0, 0, 0, 0.04), 
                  0 8px 24px rgba(0, 0, 0, 0.1);
  --shadow-xl:    0 8px 16px rgba(0, 0, 0, 0.06), 
                  0 16px 48px rgba(0, 0, 0, 0.12);
  --shadow-card:  0 2px 8px rgba(0, 0, 0, 0.06), 
                  0 0 1px rgba(0, 0, 0, 0.1);
  --shadow-card-hover: 0 8px 24px rgba(0, 0, 0, 0.1), 
                       0 0 1px rgba(0, 0, 0, 0.1);
  --shadow-nav:   0 1px 0 rgba(0, 0, 0, 0.06),
                  0 4px 12px rgba(0, 0, 0, 0.04);
  
  /* ----------------------------------------------------------------
     TRANSITIONS
     ---------------------------------------------------------------- */
  --ease-default:    cubic-bezier(0.25, 0.1, 0.25, 1);
  --ease-out:        cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out:     cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce:     cubic-bezier(0.34, 1.56, 0.64, 1);
  
  --duration-fast:   150ms;
  --duration-normal: 250ms;
  --duration-slow:   400ms;
  --duration-reveal: 600ms;
  
  --transition-default: all var(--duration-normal) var(--ease-default);
  --transition-fast:    all var(--duration-fast) var(--ease-default);
  --transition-color:   color var(--duration-fast) var(--ease-default),
                        background-color var(--duration-fast) var(--ease-default);
  
  /* ----------------------------------------------------------------
     Z-INDEX SCALE
     ---------------------------------------------------------------- */
  --z-base:      1;
  --z-dropdown:  100;
  --z-sticky:    200;
  --z-overlay:   300;
  --z-modal:     400;
  --z-toast:     500;
  
  /* ----------------------------------------------------------------
     BREAKPOINTS (reference only — use in media queries)
     375px  — mobile
     768px  — tablet
     1024px — small desktop
     1280px — standard desktop
     1440px — max content
     ---------------------------------------------------------------- */
}

/* ----------------------------------------------------------------
   MOBILE OVERRIDES
   ---------------------------------------------------------------- */
@media (max-width: 768px) {
  :root {
    --fs-display:  2.5rem;
    --fs-h1:       2.25rem;
    --fs-h2:       1.75rem;
    --fs-h3:       1.25rem;
    --fs-h4:       1.0625rem;
    --space-section: 3rem;
    --grid-gap:    var(--grid-gap-mobile);
    --gutter:      var(--gutter-mobile);
  }
}

/* ----------------------------------------------------------------
   UTILITY CLASSES (for quick application in HTML)
   ---------------------------------------------------------------- */

/* Text colors */
.text-navy      { color: var(--color-navy); }
.text-red       { color: var(--color-red); }
.text-light     { color: var(--color-text-light); }
.text-inverse   { color: var(--color-text-inverse); }

/* Backgrounds */
.bg-white       { background-color: var(--color-white); }
.bg-off-white   { background-color: var(--color-off-white); }
.bg-navy        { background-color: var(--color-navy); color: var(--color-text-inverse); }

/* Container */
.container {
  width: 100%;
  max-width: var(--content-width);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.container--narrow {
  max-width: var(--narrow-width);
}

.container--wide {
  max-width: var(--max-width);
}

/* Section spacing */
.section {
  padding-block: var(--space-section);
}

/* Visually hidden (accessible) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
