/*
 * WCCM Design System — CSS Custom Properties
 * All design tokens live here. Nothing else.
 * ─────────────────────────────────────────────────────────────────────────────
 */

:root {

  /* ── Colors: Brand ────────────────────────────────────────────────────── */
  --color-navy:        #0f2b46;
  --color-navy-light:  #1a3e63;
  --color-navy-dark:   #081b2d;

  --color-teal:        #1a7a72;
  --color-teal-light:  #23a599;
  --color-teal-dark:   #115950;

  --color-orange:      #e8622a;
  --color-orange-light:#f08050;
  --color-orange-dark: #c44b18;

  /* ── Colors: Neutrals ─────────────────────────────────────────────────── */
  --color-white:    #ffffff;
  --color-gray-50:  #f8f9fa;
  --color-gray-100: #f1f3f5;
  --color-gray-200: #e9ecef;
  --color-gray-300: #dee2e6;
  --color-gray-400: #ced4da;
  --color-gray-500: #adb5bd;
  --color-gray-600: #6c757d;
  --color-gray-700: #495057;
  --color-gray-800: #343a40;
  --color-gray-900: #212529;
  --color-black:    #0d0f11;

  /* ── Colors: Semantic ─────────────────────────────────────────────────── */
  --color-primary:      var(--color-navy);
  --color-secondary:    var(--color-teal);
  --color-accent:       var(--color-orange);
  --color-bg:           var(--color-white);
  --color-bg-alt:       var(--color-gray-50);
  --color-bg-dark:      var(--color-navy-dark);
  --color-text:         var(--color-gray-900);
  --color-text-muted:   var(--color-gray-600);
  --color-text-light:   var(--color-gray-400);
  --color-text-inverse: var(--color-white);
  --color-border:       var(--color-gray-200);
  --color-border-dark:  var(--color-gray-300);
  --color-link:         var(--color-teal);
  --color-link-hover:   var(--color-teal-dark);

  /* ── Typography: Families ─────────────────────────────────────────────── */
  --font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:    'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:    'Fira Code', 'Courier New', Courier, monospace;

  /* ── Typography: Scale (fluid via clamp where useful) ─────────────────── */
  --text-xs:   0.75rem;   /* 12px */
  --text-sm:   0.875rem;  /* 14px */
  --text-base: 1rem;      /* 16px */
  --text-lg:   1.125rem;  /* 18px */
  --text-xl:   1.25rem;   /* 20px */
  --text-2xl:  1.5rem;    /* 24px */
  --text-3xl:  1.875rem;  /* 30px */
  --text-4xl:  2.25rem;   /* 36px */
  --text-5xl:  clamp(2.5rem, 5vw, 3rem);    /* 40–48px */
  --text-6xl:  clamp(3rem,   6vw, 3.75rem); /* 48–60px */
  --text-7xl:  clamp(3.5rem, 8vw, 4.5rem);  /* 56–72px */

  /* ── Typography: Line-height ──────────────────────────────────────────── */
  --leading-none:    1;
  --leading-tight:   1.25;
  --leading-snug:    1.375;
  --leading-normal:  1.5;
  --leading-relaxed: 1.625;
  --leading-loose:   2;

  /* ── Typography: Letter-spacing ───────────────────────────────────────── */
  --tracking-tighter: -0.05em;
  --tracking-tight:   -0.025em;
  --tracking-normal:   0;
  --tracking-wide:     0.025em;
  --tracking-wider:    0.05em;
  --tracking-widest:   0.1em;

  /* ── Typography: Weights ──────────────────────────────────────────────── */
  --weight-light:    300;
  --weight-normal:   400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;

  /* ── Spacing ──────────────────────────────────────────────────────────── */
  --space-px:  1px;
  --space-0:   0;
  --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 */
  --space-32:  8rem;      /* 128px */
  --space-40:  10rem;     /* 160px */
  --space-48:  12rem;     /* 192px */

  /* ── Section spacing (responsive) ─────────────────────────────────────── */
  --section-sm:  clamp(var(--space-8),  6vw, var(--space-16));
  --section-md:  clamp(var(--space-12), 8vw, var(--space-24));
  --section-lg:  clamp(var(--space-16), 10vw, var(--space-32));

  /* ── Border radius ────────────────────────────────────────────────────── */
  --radius-none:  0;
  --radius-sm:    0.125rem;  /* 2px  */
  --radius-base:  0.25rem;   /* 4px  */
  --radius-md:    0.375rem;  /* 6px  */
  --radius-lg:    0.5rem;    /* 8px  */
  --radius-xl:    0.75rem;   /* 12px */
  --radius-2xl:   1rem;      /* 16px */
  --radius-3xl:   1.5rem;    /* 24px */
  --radius-full:  9999px;

  /* ── Shadows ──────────────────────────────────────────────────────────── */
  --shadow-xs:    0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm:    0 1px 3px 0 rgb(0 0 0 / 0.10), 0 1px 2px -1px rgb(0 0 0 / 0.10);
  --shadow-md:    0 4px 6px -1px rgb(0 0 0 / 0.10), 0 2px 4px -2px rgb(0 0 0 / 0.10);
  --shadow-lg:    0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10);
  --shadow-xl:    0 20px 25px -5px rgb(0 0 0 / 0.10), 0 8px 10px -6px rgb(0 0 0 / 0.10);
  --shadow-2xl:   0 25px 50px -12px rgb(0 0 0 / 0.25);
  --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
  --shadow-none:  none;

  /* ── Animation ────────────────────────────────────────────────────────── */
  --duration-instant: 75ms;
  --duration-fast:    150ms;
  --duration-base:    250ms;
  --duration-slow:    400ms;
  --duration-slower:  600ms;
  --duration-slowest: 900ms;

  --ease-linear:    linear;
  --ease-in:        cubic-bezier(0.4, 0, 1, 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);
  --ease-snappy:    cubic-bezier(0.2, 0, 0, 1);

  --transition-base:    all var(--duration-base) var(--ease-in-out);
  --transition-colors:  color var(--duration-fast) var(--ease-in-out),
                        background-color var(--duration-fast) var(--ease-in-out),
                        border-color var(--duration-fast) var(--ease-in-out);
  --transition-opacity: opacity var(--duration-base) var(--ease-in-out);
  --transition-transform: transform var(--duration-base) var(--ease-out);

  /* ── Layout ───────────────────────────────────────────────────────────── */
  --container-max:       1200px;
  --container-wide:      1400px;
  --container-narrow:    760px;
  --container-padding-x: clamp(var(--space-4), 5vw, var(--space-8));

  /* ── Z-index ──────────────────────────────────────────────────────────── */
  --z-below:    -1;
  --z-base:      0;
  --z-raised:   10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-overlay:  300;
  --z-modal:    400;
  --z-toast:    500;

  /* ── Header ───────────────────────────────────────────────────────────── */
  --header-height:       72px;
  --header-height-sm:    60px;
}

/* ── Dark mode stub (extend later) ──────────────────────────────────────── */
@media (prefers-color-scheme: dark) {
  :root {
    --color-bg:          var(--color-gray-900);
    --color-bg-alt:      var(--color-gray-800);
    --color-text:        var(--color-gray-100);
    --color-text-muted:  var(--color-gray-400);
    --color-border:      var(--color-gray-700);
  }
}
