/* ============================================================
   COUSSA GROUP — DESIGN TOKENS  ·  Version 1.0
   Source of truth. No deviation without written approval.
   Part 2 / Book 1 — Prompts 006–010
   ============================================================ */

:root {
  /* ---- BRAND COLOR SCALES ---- */

  /* navy */
  --cg-navy-50: #f4f5f7;
  --cg-navy-100: #e4e7eb;
  --cg-navy-200: #c9cfd6;
  --cg-navy-300: #a8b3be;
  --cg-navy-400: #8594a3;
  --cg-navy-500: #627589;
  --cg-navy-600: #475d74;
  --cg-navy-700: #2b4560;
  --cg-navy-800: #13304d;
  --cg-navy-900: #001f3f;
  --cg-navy-950: #071424;

  /* blue */
  --cg-blue-50: #f2f6fa;
  --cg-blue-100: #dfe9f2;
  --cg-blue-200: #bfd4e5;
  --cg-blue-300: #99bad6;
  --cg-blue-400: #6f9ec5;
  --cg-blue-500: #4682b4;
  --cg-blue-600: #38678e;
  --cg-blue-700: #294b69;
  --cg-blue-800: #1d3347;
  --cg-blue-900: #131f2d;
  --cg-blue-950: #0d141e;

  /* gold */
  --cg-gold-50: #fbf9f0;
  --cg-gold-100: #f6efda;
  --cg-gold-200: #ecdfb5;
  --cg-gold-300: #e1cc88;
  --cg-gold-400: #d5b757;
  --cg-gold-500: #c9a227;
  --cg-gold-600: #9c7f23;
  --cg-gold-700: #6e5c1f;
  --cg-gold-800: #453d1b;
  --cg-gold-900: #252418;
  --cg-gold-950: #131617;

  /* cream */
  --cg-cream-50: #f6f4f0;
  --cg-cream-100: #eae4da;
  --cg-cream-200: #d4c8b5;
  --cg-cream-300: #b6ac9d;
  --cg-cream-400: #958e83;
  --cg-cream-500: #747069;
  --cg-cream-600: #5b5956;
  --cg-cream-700: #424242;
  --cg-cream-800: #2b2d30;
  --cg-cream-900: #191d22;
  --cg-cream-950: #0f141a;

  /* charcoal  /* neutral */ */
  --cg-charcoal-50: #f5f5f5;
  --cg-charcoal-100: #e5e6e7;
  --cg-charcoal-200: #cbcdcf;
  --cg-charcoal-300: #acafb3;
  --cg-charcoal-400: #8b8e94;
  --cg-charcoal-500: #696e75;
  --cg-charcoal-600: #4f555d;
  --cg-charcoal-700: #353c45;
  --cg-charcoal-800: #1e2530;
  --cg-charcoal-900: #131922;
  --cg-charcoal-950: #0d121a;

  /* slate  /* neutral */ */
  --cg-slate-50: #f4f4f5;
  --cg-slate-100: #e3e4e7;
  --cg-slate-200: #c6cace;
  --cg-slate-300: #a4a9b1;
  --cg-slate-400: #7f8792;
  --cg-slate-500: #5a6472;
  --cg-slate-600: #47505c;
  --cg-slate-700: #343c46;
  --cg-slate-800: #232932;
  --cg-slate-900: #151b23;
  --cg-slate-950: #0e131a;

  /* ---- CANONICAL BRAND ALIASES ---- */
  --cg-navy:   var(--cg-navy-900);   /* #001F3F */
  --cg-blue:   var(--cg-blue-500);   /* #4682B4 */
  --cg-gold:   var(--cg-gold-500);   /* #C9A227 */
  --cg-cream:  var(--cg-cream-200);  /* #D4C8B5 */

  /* ---- SEMANTIC TOKENS ---- */
  --cg-success:      var(--cg-blue-700);
  --cg-warning:      var(--cg-gold-600);
  --cg-information:  var(--cg-blue-500);
  --cg-confidential: var(--cg-navy-900);
  --cg-restricted:   var(--cg-charcoal-800);
  --cg-private:      var(--cg-slate-700);
  --cg-nda:          var(--cg-gold-700);
  --cg-approved:     var(--cg-blue-600);
  --cg-under-loi:    var(--cg-gold-500);
  --cg-closed:       var(--cg-slate-500);
  /* future-state domain accents */
  --cg-research:     var(--cg-navy-700);
  --cg-marketplace:  var(--cg-blue-600);
  --cg-advisory:     var(--cg-navy-900);
  --cg-capital:      var(--cg-gold-600);

  /* ---- TEXT ---- */
  --cg-text-primary:   var(--cg-charcoal-800);
  --cg-text-secondary: var(--cg-slate-500);
  --cg-text-inverse:   #ffffff;
  --cg-text-accent:    var(--cg-navy-900);

  /* ---- BACKGROUNDS ---- */
  --cg-bg-primary:     #ffffff;
  --cg-bg-secondary:   var(--cg-cream-50);
  --cg-bg-institution: var(--cg-navy-900);
  --cg-bg-research:    var(--cg-cream-50);
  --cg-bg-capital:     var(--cg-navy-950);
  --cg-bg-marketplace: var(--cg-slate-50);
  --cg-bg-dark:        var(--cg-navy-900);
  --cg-bg-light:       #ffffff;
  --cg-bg-cta:         var(--cg-navy-900);

  /* ---- BORDERS ---- */
  --cg-border-subtle: var(--cg-cream-300);
  --cg-border-default: var(--cg-slate-300);
  --cg-border-strong: var(--cg-navy-900);

  /* ---- TYPOGRAPHY ---- */
  --cg-font-display: "Canela", "Georgia", "Times New Roman", serif;
  --cg-font-serif:   "Georgia", "Times New Roman", serif;
  --cg-font-sans:    "Inter", "Helvetica Neue", Arial, sans-serif;
  --cg-font-mono:    "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;

  --cg-fs-display: 3.815rem;  /* 61px */
  --cg-fs-h1: 3.052rem;       /* 49px */
  --cg-fs-h2: 2.441rem;       /* 39px */
  --cg-fs-h3: 1.953rem;       /* 31px */
  --cg-fs-h4: 1.563rem;       /* 25px */
  --cg-fs-h5: 1.25rem;        /* 20px */
  --cg-fs-body-lg: 1.125rem;  /* 18px */
  --cg-fs-body: 1rem;         /* 16px */
  --cg-fs-body-sm: 0.875rem;  /* 14px */
  --cg-fs-caption: 0.75rem;   /* 12px */
  --cg-fs-legal: 0.6875rem;   /* 11px */

  --cg-lh-tight: 1.1;
  --cg-lh-heading: 1.2;
  --cg-lh-body: 1.6;
  --cg-lh-relaxed: 1.75;

  --cg-tracking-display: -0.02em;
  --cg-tracking-heading: -0.01em;
  --cg-tracking-body: 0;
  --cg-tracking-kicker: 0.12em;

  /* ---- SPACING (8pt grid) ---- */
  --cg-space-0: 0;
  --cg-space-1: 0.25rem;  /* 4  half-step */
  --cg-space-2: 0.5rem;   /* 8  */
  --cg-space-3: 1rem;     /* 16 */
  --cg-space-4: 1.5rem;   /* 24 */
  --cg-space-5: 2rem;     /* 32 */
  --cg-space-6: 3rem;     /* 48 */
  --cg-space-7: 4rem;     /* 64 */
  --cg-space-8: 6rem;     /* 96 */
  --cg-space-9: 8rem;     /* 128 */

  /* ---- GRID ---- */
  --cg-container-max: 1440px;
  --cg-columns: 12;
  --cg-gutter: 80px;
  --cg-margin-desktop: 96px;
  --cg-margin-tablet: 48px;
  --cg-margin-mobile: 24px;

  /* ---- RADIUS (restrained) ---- */
  --cg-radius-none: 0;
  --cg-radius-sm: 2px;
  --cg-radius-md: 4px;

  /* ---- MOTION ---- */
  --cg-motion-fast: 150ms;
  --cg-motion-base: 200ms;
  --cg-motion-slow: 320ms;
  --cg-ease: cubic-bezier(0.4, 0, 0.2, 1);   /* ease-out, institutional */
  --cg-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

  /* ---- ELEVATION (borders over shadow) ---- */
  --cg-elev-0: none;
  --cg-elev-1: 0 1px 2px rgba(0,31,63,0.06);
  --cg-elev-2: 0 2px 6px rgba(0,31,63,0.08);
}

/* ---- INTERACTION STATES ---- */
.cg-interactive { transition: color var(--cg-motion-fast) var(--cg-ease),
  background-color var(--cg-motion-fast) var(--cg-ease),
  border-color var(--cg-motion-fast) var(--cg-ease); }
.cg-interactive:hover { /* darken one step; never brighten */ }
.cg-interactive:focus-visible { outline: 2px solid var(--cg-blue-500); outline-offset: 2px; }
.cg-interactive:disabled { opacity: 0.4; cursor: not-allowed; }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
