/* ==========================================================================
   Accessible Paris — Design Tokens & CSS Custom Properties
   ========================================================================== */

:root {
  /* ── Color Palette: Parisian Editorial ── */
  --color-navy:        #1B2A4A;
  --color-navy-light:  #2A3D66;
  --color-navy-dark:   #111D35;
  --color-gold:        #C9A96E;
  --color-gold-light:  #D4BA8A;
  --color-gold-dark:   #A8873F;
  --color-cream:       #FAF7F2;
  --color-cream-dark:  #F0EBE1;
  --color-stone:       #E8E0D4;
  --color-stone-dark:  #D4C9B8;
  --color-warm-gray:   #6B6560;
  --color-text:        #2C2825;
  --color-text-light:  #5A5550;
  --color-white:       #FFFFFF;
  --color-black:       #1A1714;
  --color-success:     #2E7D4F;
  --color-warning:     #B8860B;
  --color-error:       #C0392B;
  --color-info:        #2980B9;

  /* ── Accessible Focus ── */
  --color-focus:       #C9A96E;
  --focus-ring:        0 0 0 3px var(--color-focus);

  /* ── Typography ── */
  --font-heading:      'Playfair Display', 'Georgia', 'Times New Roman', serif;
  --font-body:         'Source Sans 3', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --font-mono:         'Source Code Pro', 'Consolas', 'Monaco', monospace;

  --text-xs:           0.75rem;    /* 12px */
  --text-sm:           0.875rem;   /* 14px */
  --text-base:         1rem;       /* 16px */
  --text-md:           1.125rem;   /* 18px */
  --text-lg:           1.25rem;    /* 20px */
  --text-xl:           1.5rem;     /* 24px */
  --text-2xl:          1.875rem;   /* 30px */
  --text-3xl:          2.25rem;    /* 36px */
  --text-4xl:          3rem;       /* 48px */
  --text-5xl:          3.75rem;    /* 60px */

  --leading-tight:     1.25;
  --leading-normal:    1.6;
  --leading-relaxed:   1.75;

  --tracking-tight:    -0.02em;
  --tracking-normal:   0;
  --tracking-wide:     0.02em;
  --tracking-wider:    0.05em;
  --tracking-widest:   0.1em;

  /* ── Spacing Scale ── */
  --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 */

  /* ── Layout ── */
  --max-width:         1280px;
  --max-width-narrow:  800px;
  --max-width-wide:    1440px;
  --sidebar-width:     300px;
  --header-height:     80px;

  /* ── Borders & Radii ── */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-full: 9999px;
  --border-thin: 1px solid var(--color-stone);
  --border-gold: 2px solid var(--color-gold);

  /* ── Shadows ── */
  --shadow-sm:   0 1px 3px rgba(27, 42, 74, 0.06), 0 1px 2px rgba(27, 42, 74, 0.04);
  --shadow-md:   0 4px 12px rgba(27, 42, 74, 0.08), 0 2px 4px rgba(27, 42, 74, 0.04);
  --shadow-lg:   0 10px 30px rgba(27, 42, 74, 0.1), 0 4px 8px rgba(27, 42, 74, 0.06);
  --shadow-xl:   0 20px 50px rgba(27, 42, 74, 0.12), 0 8px 16px rgba(27, 42, 74, 0.08);
  --shadow-gold: 0 4px 20px rgba(201, 169, 110, 0.3);

  /* ── Transitions ── */
  --transition-fast:   150ms ease;
  --transition-normal: 250ms ease;
  --transition-slow:   400ms ease;
  --transition-spring: 500ms cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ── Z-Index Scale ── */
  --z-dropdown:  100;
  --z-sticky:    200;
  --z-overlay:   300;
  --z-modal:     400;
  --z-tooltip:   500;
  --z-toolbar:   600;
}

/* ── High Contrast Mode ── */
[data-theme="high-contrast"] {
  --color-navy:        #000000;
  --color-navy-light:  #1A1A1A;
  --color-navy-dark:   #000000;
  --color-gold:        #FFD700;
  --color-gold-light:  #FFED4A;
  --color-cream:       #FFFFFF;
  --color-cream-dark:  #F5F5F5;
  --color-stone:       #CCCCCC;
  --color-stone-dark:  #999999;
  --color-text:        #000000;
  --color-text-light:  #333333;
  --color-white:       #FFFFFF;
  --color-focus:       #FFD700;
  --shadow-sm:         none;
  --shadow-md:         0 0 0 2px #000;
  --shadow-lg:         0 0 0 3px #000;
}

/* ── Text Size Adjustments ── */
[data-text-size="large"] {
  font-size: 112.5%;  /* 18px base */
}
[data-text-size="x-large"] {
  font-size: 125%;    /* 20px base */
}

/* ── Dyslexia Font ── */
[data-dyslexia="true"] {
  --font-body: 'OpenDyslexic', 'Comic Sans MS', sans-serif;
}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

[data-reduced-motion="true"] *,
[data-reduced-motion="true"] *::before,
[data-reduced-motion="true"] *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}
