/* ============================================
   RANK BOOSTER — Design Tokens
   ============================================ */

:root {
  /* ── Colors ── */
  --color-primary:       #0A6EBD;
  --color-primary-dark:  #084D8A;
  --color-primary-light: #E8F4FD;
  --color-primary-rgb:   10, 110, 189;

  --color-navy:          #0B2447;
  --color-navy-light:    #19376D;
  --color-navy-rgb:      11, 36, 71;

  --color-white:         #FFFFFF;
  --color-off-white:     #F8FAFC;

  --color-gray-50:       #F8FAFC;
  --color-gray-100:      #F1F5F9;
  --color-gray-200:      #E2E8F0;
  --color-gray-300:      #CBD5E1;
  --color-gray-400:      #94A3B8;
  --color-gray-500:      #64748B;
  --color-gray-600:      #475569;
  --color-gray-700:      #334155;
  --color-gray-800:      #1E293B;
  --color-gray-900:      #0F172A;

  --color-accent:        #3B82F6;
  --color-success:       #10B981;
  --color-warning:       #F59E0B;
  --color-error:         #EF4444;

  /* ── Gradients ── */
  --gradient-hero:       linear-gradient(135deg, #0B2447 0%, #19376D 40%, #0A6EBD 100%);
  --gradient-cta:        linear-gradient(135deg, #0B2447 0%, #0A6EBD 100%);
  --gradient-light:      linear-gradient(180deg, #E8F4FD 0%, #FFFFFF 100%);
  --gradient-card:       linear-gradient(145deg, #FFFFFF 0%, #F8FAFC 100%);

  /* ── Typography ── */
  --font-family:         'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-size-xs:        0.75rem;
  --font-size-sm:        0.875rem;
  --font-size-base:      1rem;
  --font-size-md:        1.125rem;
  --font-size-lg:        1.25rem;
  --font-size-xl:        1.5rem;
  --font-size-2xl:       2rem;
  --font-size-3xl:       2.5rem;
  --font-size-4xl:       3rem;
  --font-size-5xl:       3.5rem;

  --font-weight-normal:  400;
  --font-weight-medium:  500;
  --font-weight-semi:    600;
  --font-weight-bold:    700;
  --font-weight-extra:   800;

  --line-height-tight:   1.2;
  --line-height-snug:    1.375;
  --line-height-normal:  1.6;
  --line-height-relaxed: 1.75;

  /* ── Spacing ── */
  --space-xs:   0.25rem;
  --space-sm:   0.5rem;
  --space-md:   1rem;
  --space-lg:   1.5rem;
  --space-xl:   2rem;
  --space-2xl:  3rem;
  --space-3xl:  4rem;
  --space-4xl:  6rem;
  --space-5xl:  8rem;

  /* ── Border Radius ── */
  --radius-sm:   0.375rem;
  --radius-md:   0.75rem;
  --radius-lg:   1rem;
  --radius-xl:   1.5rem;
  --radius-2xl:  2rem;
  --radius-full: 9999px;

  /* ── Shadows ── */
  --shadow-sm:    0 1px 3px rgba(var(--color-navy-rgb), 0.08);
  --shadow-md:    0 4px 12px rgba(var(--color-navy-rgb), 0.10);
  --shadow-lg:    0 8px 30px rgba(var(--color-navy-rgb), 0.12);
  --shadow-xl:    0 20px 60px rgba(var(--color-navy-rgb), 0.15);
  --shadow-glass: 0 8px 32px rgba(var(--color-primary-rgb), 0.1);
  --shadow-btn:   0 4px 15px rgba(var(--color-primary-rgb), 0.3);

  /* ── Transitions ── */
  --transition-fast:   150ms ease;
  --transition-base:   250ms ease;
  --transition-smooth: 350ms cubic-bezier(0.16, 1, 0.3, 1);
  --transition-spring: 500ms cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ── Layout ── */
  --container-max:   1280px;
  --container-wide:  1440px;
  --container-narrow: 800px;
  --header-height:   80px;
  --topbar-height:   36px;
}

/* ── Mobile overrides ── */
@media (max-width: 768px) {
  :root {
    --font-size-5xl: 2.25rem;
    --font-size-4xl: 2rem;
    --font-size-3xl: 1.75rem;
    --font-size-2xl: 1.5rem;
    --font-size-xl:  1.25rem;
    --header-height: 64px;
  }
}
