/* ============================================================
   TOKENS — single source of truth for base :root custom properties
   Issue #371 phase 1. Text-move only: every declaration below was
   relocated verbatim from its origin file (same value, same name),
   loaded first so nothing downstream can win the cascade by accident.
   Do NOT edit values here without also checking docs/ for phase 2+.
   ============================================================ */

/* ---- from styles.css (was :root, line ~6) ---- */
:root {
    /* Brand colors */
    --brand-orange: #FF5C35;
    --brand-orange-hover: #e04f2a;
    --brand-orange-glow: rgba(255, 92, 53, 0.25);
    --primary-color: #FF5C35;
    --primary-light: #FF7A5C;
    --primary-dark: #CC4A2A;
    --primary-hover: #E6512F;

    /* Accent */
    --accent-color: #FF8C66;
    --accent-light: #FFA88A;

    /* Backgrounds */
    --background-color: #07080F;
    --background-secondary: #0E1020;
    --background-card: #111328;

    /* Text */
    --text-primary: #F0F0FF;
    --text-secondary: #8080B0;
    --text-muted: #505078;
    --text-inverse: #07080F;

    /* Borders */
    --border-color: #1a1c30;
    --border-light: #12142a;

    /* Topbar */
    --topbar-height: 64px;

    /* Shadows */
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
    --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.6);
    --shadow-lg: 0 10px 20px rgba(0, 0, 0, 0.7);

    /* Radius */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;

    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-normal: 250ms ease;

    /* Fonts */
    --font-display: 'Bebas Neue', sans-serif;
    --font-body: 'Outfit', sans-serif;

    /* Neon Category colors */
    --cat-musique: #FF2D55;
    --cat-bar: #BF5AF2;
    --cat-restaurant: #FF9F0A;
    --cat-sport: #30D158;
    --cat-art: #00C7FF;
    --cat-festival: #FFD60A;
    --cat-pleinair: #00E5B0;
    --cat-prive: #7F8C8D;
    --cat-famille: #FF375F;
    --cat-autre: #95A5A6;
}

/* ---- from homepage.css (was :root, line ~7) ---- */
:root {
  /* 8px spacing scale */
  --hp-space-1: 8px;
  --hp-space-2: 16px;
  --hp-space-3: 24px;
  --hp-space-4: 32px;
  --hp-space-5: 40px;
  --hp-space-6: 48px;

  /* Typography */
  --hp-font-h1: 28px;
  --hp-font-h2: 20px;
  --hp-font-title: 16px;
  --hp-font-meta: 14px;

  /* Color roles */
  --hp-live: #FF2D55;
  --hp-live-bg: rgba(255, 45, 85, 0.12);
  --hp-trending: #FF9F0A;
  --hp-trending-bg: rgba(255, 159, 10, 0.12);
  --hp-soon: #FFD60A;
  --hp-soon-bg: rgba(255, 214, 10, 0.12);
  --hp-social: #BF5AF2;
  --hp-cancelled: #DC2626; /* distinct from --hp-live so it never reads as "on now" */
  --hp-sold-out: #FF9F0A; /* amber, not red — the event still happens, it's just full */

  /* Card */
  --hp-card-radius: 14px;
  --hp-card-radius-lg: 16px;
  --hp-card-gap: 12px;

  /* Section */
  --hp-section-pad: var(--hp-space-4) var(--hp-space-2);
  --hp-max-width: 1200px;
}

/* ---- from homepage.css (was :root, line ~2175 — FOX / RENARD) ---- */
:root {
  --fox-color: #FF6F00;
  --fox-color-soft: rgba(255, 111, 0, 0.08);
  --fox-color-border: rgba(255, 111, 0, 0.6);
}

/* ---- from settings.css (was :root, line ~458) ---- */
:root { --ev-font-scale: 1; }

/* ---- from attractions.css (was :root, line ~9) ---- */
:root {
  --attr-teal: #2FBE96;
  --attr-teal-d: #0F6E56;
  --attr-teal-bg: rgba(47, 190, 150, 0.14);
}
