/* ═══════════════════════════════════════════════════════════
   FAIRSMILE — DESIGN TOKENS v3
   Bold, distinctive dental marketplace
   ═══════════════════════════════════════════════════════════ */

:root {
  /* ── PRIMARY — Rich Teal ── */
  --primary: #0D9488;
  --primary-hover: #0F766E;
  --primary-active: #115E59;
  --primary-light: #CCFBF1;
  --primary-subtle: #F0FDFA;
  --primary-rgb: 13, 148, 136;
  --primary-dark: #134E4A;

  /* ── ACCENT — Vibrant Blue ── */
  --accent: #3B82F6;
  --accent-hover: #2563EB;
  --accent-light: #DBEAFE;
  --accent-rgb: 59, 130, 246;

  /* ── HERO GRADIENT ── */
  --grad-start: #0F172A;
  --grad-mid: #1E293B;
  --grad-end: #0F172A;
  --grad-accent: #0D9488;

  /* ── SEMANTIC ── */
  --success: #16A34A;
  --success-bg: #F0FDF4;
  --success-text: #15803D;
  --warning: #F59E0B;
  --warning-bg: #FFFBEB;
  --warning-text: #B45309;
  --error: #DC2626;
  --error-bg: #FEF2F2;
  --error-text: #B91C1C;

  /* ── NEUTRALS ── */
  --white: #FFFFFF;
  --gray-25: #FCFCFD;
  --gray-50: #F8FAFC;
  --gray-100: #F1F5F9;
  --gray-150: #E2E8F0;
  --gray-200: #E2E8F0;
  --gray-300: #CBD5E1;
  --gray-400: #94A3B8;
  --gray-500: #64748B;
  --gray-600: #475569;
  --gray-700: #334155;
  --gray-800: #1E293B;
  --gray-900: #0F172A;
  --gray-950: #020617;

  /* ── TYPOGRAPHY ── */
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;

  --text-xs: 0.75rem;
  --text-sm: 0.8125rem;
  --text-base: 0.9375rem;
  --text-md: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 1.875rem;
  --text-4xl: 2.25rem;
  --text-5xl: 3rem;
  --text-6xl: 3.75rem;
  --text-hero: clamp(2.75rem, 7vw, 4.25rem);

  /* ── SPACING ── */
  --sp-1: 4px;   --sp-2: 8px;   --sp-3: 12px;  --sp-4: 16px;
  --sp-5: 20px;  --sp-6: 24px;  --sp-8: 32px;  --sp-10: 40px;
  --sp-12: 48px; --sp-16: 64px; --sp-20: 80px; --sp-24: 96px;

  /* ── BORDER RADIUS ── */
  --r-sm: 6px;    --r-md: 10px;   --r-lg: 14px;
  --r-xl: 18px;   --r-2xl: 24px;  --r-pill: 100px;  --r-full: 50%;

  /* ── SHADOWS ── */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 4px 8px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -2px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 12px 24px -4px rgba(0, 0, 0, 0.08), 0 4px 8px -4px rgba(0, 0, 0, 0.03);
  --shadow-xl: 0 20px 40px -8px rgba(0, 0, 0, 0.1), 0 8px 16px -6px rgba(0, 0, 0, 0.04);
  --shadow-2xl: 0 32px 64px -12px rgba(0, 0, 0, 0.14);
  --shadow-focus: 0 0 0 3px rgba(var(--primary-rgb), 0.2);
  --shadow-primary: 0 4px 14px rgba(var(--primary-rgb), 0.35);
  --shadow-card-hover: 0 8px 30px rgba(0, 0, 0, 0.08);

  /* ── TRANSITIONS ── */
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --t-fast: 150ms;
  --t-base: 200ms;
  --t-slow: 350ms;

  /* ── Z-INDEX ── */
  --z-dropdown: 50;
  --z-sticky: 100;
  --z-modal: 200;
  --z-toast: 300;

  /* ── LAYOUT ── */
  --container: 1120px;
  --container-sm: 720px;
  --container-xs: 480px;
  --nav-h: 72px;

  /* ═══ BACKWARD COMPAT ALIASES ═══ */
  --blue: var(--primary);
  --blue-hover: var(--primary-hover);
  --blue-active: var(--primary-active);
  --blue-light: var(--primary-light);
  --blue-subtle: var(--primary-subtle);
  --green: var(--success);
  --green-dark: var(--success-text);
  --green-light: var(--success-bg);
  --red: var(--error);
  --red-dark: var(--error-text);
  --red-light: var(--error-bg);
  --amber: var(--warning);
  --amber-dark: var(--warning-text);
  --amber-light: var(--warning-bg);

  --accent-primary: var(--primary);
  --accent-blue: var(--primary);
  --accent-blue-light: var(--primary-light);
  --accent-blue-hover: var(--primary-hover);
  --accent-blue-active: var(--primary-active);
  --accent-blue-rgb: var(--primary-rgb);
  --accent-green: var(--success);
  --accent-green-dark: var(--success-text);
  --accent-green-light: var(--success-bg);
  --surface-bg: var(--gray-50);
  --surface-card: var(--white);
  --surface-secondary: var(--gray-50);
  --surface-primary: var(--white);
  --surface-elevated: var(--white);
  --surface-glass-border: var(--gray-200);
  --surface-input: var(--gray-50);
  --surface-input-focus: var(--white);
  --surface-page: var(--white);
  --border-base: var(--gray-200);
  --border-muted: var(--gray-300);
  --border-light: var(--gray-150);
  --text-primary: var(--gray-900);
  --text-secondary: var(--gray-500);
  --text-tertiary: var(--gray-400);
  --status-error: var(--error);
  --status-success: var(--success);
  --size-hero: var(--text-hero);
  --size-title: var(--text-4xl);
  --size-heading: var(--text-2xl);
  --size-subhead: var(--text-xl);
  --size-body: var(--text-base);
  --size-body-sm: var(--text-sm);
  --size-caption: var(--text-xs);
  --size-label: var(--text-sm);
  --size-micro: var(--text-xs);
  --radius-xs: var(--r-sm); --radius-sm: var(--r-md); --radius-md: var(--r-lg);
  --radius-lg: var(--r-xl); --radius-xl: var(--r-2xl); --radius-full: var(--r-full);
  --radius-pill: var(--r-pill);
  --space-1: var(--sp-1); --space-2: var(--sp-2); --space-3: var(--sp-3);
  --space-4: var(--sp-4); --space-5: var(--sp-5); --space-6: var(--sp-6);
  --space-8: var(--sp-8); --space-10: var(--sp-10); --space-12: var(--sp-12);
  --space-16: var(--sp-16); --space-20: var(--sp-20); --space-24: var(--sp-24);
  --duration-fast: var(--t-fast); --duration-normal: var(--t-base); --duration-slow: var(--t-slow);
  --ease-spring: var(--ease); --ease-decel: var(--ease-out);
  --container-max: var(--container);
  --color-success: var(--success); --color-success-bg: var(--success-bg); --color-success-text: var(--success-text);
  --color-warning: var(--warning); --color-warning-bg: var(--warning-bg); --color-warning-text: var(--warning-text);
  --color-error: var(--error); --color-error-bg: var(--error-bg); --color-error-text: var(--error-text);
  --shadow-card: var(--shadow-sm);
}

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