/* ================================================================
   DESIGN TOKENS & CSS VARIABLES
   Multi-Vendor Marketplace Platform
   ================================================================ */

:root {
  /* Brand & Theme Colors (HSL) - Glovo-Inspired Teal + Warm Yellow Palette */
  --primary-h: 169;
  --primary-s: 100%;
  --primary-l: 31%;
  --primary: hsl(var(--primary-h), var(--primary-s), var(--primary-l));   /* #00A082 signature teal */
  --primary-hover: hsl(var(--primary-h), var(--primary-s), 26%);
  --primary-active: hsl(var(--primary-h), var(--primary-s), 21%);
  --primary-light: hsl(var(--primary-h), var(--primary-s), 96%);
  --primary-subtle: hsla(var(--primary-h), var(--primary-s), 31%, 0.12);

  /* Text color to use on top of solid primary-colored surfaces */
  --on-primary: #ffffff;

  /* Signature warm yellow accent (hero / section backgrounds, gradient partner) */
  --accent-h: 40;
  --accent-s: 100%;
  --accent-l: 63%;
  --accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l));       /* #FFC244 signature yellow */
  --accent-hover: hsl(var(--accent-h), var(--accent-s), 56%);
  --accent-light: hsl(var(--accent-h), var(--accent-s), 95%);
  --accent-subtle: hsla(var(--accent-h), var(--accent-s), 63%, 0.16);

  --success-h: 142;
  --success-s: 71%;
  --success-l: 45%;
  --success: hsl(var(--success-h), var(--success-s), var(--success-l));
  --success-light: hsl(var(--success-h), var(--success-s), 95%);
  --success-subtle: hsla(var(--success-h), var(--success-s), 45%, 0.12);

  --warning-h: 38;
  --warning-s: 92%;
  --warning-l: 50%;
  --warning: hsl(var(--warning-h), var(--warning-s), var(--warning-l));
  --warning-light: hsl(var(--warning-h), var(--warning-s), 95%);
  --warning-subtle: hsla(var(--warning-h), var(--warning-s), 50%, 0.12);

  --danger-h: 350;
  --danger-s: 89%;
  --danger-l: 60%;
  --danger: hsl(var(--danger-h), var(--danger-s), var(--danger-l));
  --danger-light: hsl(var(--danger-h), var(--danger-s), 96%);
  --danger-subtle: hsla(var(--danger-h), var(--danger-s), 60%, 0.12);

  --info-h: 199;
  --info-s: 89%;
  --info-l: 48%;
  --info: hsl(var(--info-h), var(--info-s), var(--info-l));

  /* Light Theme Neutrals (warm gray) */
  --bg-page: hsl(40, 22%, 98%);
  --bg-surface: hsl(0, 0%, 100%);
  --bg-surface-raised: hsl(0, 0%, 100%);
  --bg-subtle: hsl(38, 18%, 95%);
  --bg-hover: hsl(38, 18%, 91%);
  --bg-overlay: rgba(29, 26, 22, 0.6);

  --text-main: hsl(30, 28%, 11%);
  --text-muted: hsl(30, 12%, 42%);
  --text-subtle: hsl(30, 10%, 60%);
  --text-inverse: hsl(0, 0%, 100%);

  --border-color: hsl(35, 16%, 88%);
  --border-focus: var(--primary);
  --border-subtle: hsl(35, 16%, 93%);

  /* Typography */
  --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', Consolas, monospace;

  --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 */

  --font-regular: 400;
  --font-medium: 500;
  --font-semibold: 600;
  --font-bold: 700;
  --font-extrabold: 800;

  /* Elevation / Shadows (soft, neutral — Flat Design 2.0 depth cues) */
  --shadow-xs: 0 1px 2px 0 rgba(20, 20, 25, 0.04);
  --shadow-sm: 0 2px 6px 0 rgba(20, 20, 25, 0.06), 0 1px 2px 0 rgba(20, 20, 25, 0.04);
  --shadow-md: 0 8px 20px -4px rgba(20, 20, 25, 0.08), 0 2px 6px -1px rgba(20, 20, 25, 0.05);
  --shadow-lg: 0 16px 32px -8px rgba(20, 20, 25, 0.10), 0 4px 12px -2px rgba(20, 20, 25, 0.05);
  --shadow-xl: 0 24px 48px -12px rgba(20, 20, 25, 0.16);
  --shadow-glow: 0 0 20px hsla(var(--primary-h), var(--primary-s), 31%, 0.28);

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

  /* Border Radius (Glovo-style high rounding: 16px-24px cards, pill controls) */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;

  /* Transitions */
  --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-normal: 250ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);

  /* Container Widths */
  --container-max: 1360px;
  --header-height: 72px;
  --demo-bar-height: 40px;
}

/* Dark Theme Overrides (deep charcoal, warm) */
[data-theme="dark"] {
  --bg-page: hsl(240, 4%, 8%);
  --bg-surface: hsl(240, 4%, 11%);
  --bg-surface-raised: hsl(240, 4%, 14%);
  --bg-subtle: hsl(240, 4%, 13%);
  --bg-hover: hsl(240, 4%, 17%);
  --bg-overlay: rgba(10, 10, 12, 0.8);

  --text-main: hsl(40, 25%, 97%);
  --text-muted: hsl(35, 12%, 72%);
  --text-subtle: hsl(35, 8%, 52%);
  --text-inverse: hsl(240, 4%, 11%);

  --border-color: hsl(240, 4%, 24%);
  --border-subtle: hsl(240, 4%, 18%);

  --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
  --shadow-sm: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
  --shadow-md: 0 6px 16px -2px rgba(0, 0, 0, 0.6);
  --shadow-lg: 0 12px 24px -4px rgba(0, 0, 0, 0.7);
  --shadow-xl: 0 24px 48px -12px rgba(0, 0, 0, 0.85);

  --primary-light: hsla(var(--primary-h), var(--primary-s), 50%, 0.16);
  --success-light: hsla(var(--success-h), var(--success-s), 45%, 0.15);
  --warning-light: hsla(var(--warning-h), var(--warning-s), 50%, 0.15);
  --danger-light: hsla(var(--danger-h), var(--danger-s), 60%, 0.15);
}

/* Base Reset & Globals */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: 1.5;
  color: var(--text-main);
  background-color: var(--bg-page);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background-color var(--transition-normal), color var(--transition-normal);
}

img, svg, video {
  display: block;
  max-width: 100%;
}

button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
}

a {
  color: var(--primary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--primary-hover);
}

ul, ol {
  list-style: none;
}

/* Accessibility Focus Ring */
:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: var(--bg-subtle);
}

::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--text-subtle);
}
