/* ============================================
   Design System Tokens — Ustalo
   ============================================ */

:root {
  /* ---- Primary Colors ---- */
  --color-primary: #0AB58F;
  --color-primary-hover: #089E7C;
  --color-primary-light: #E6F9F4;
  --color-primary-dark: #067A61;
  --color-primary-50: #F0FDF9;
  --color-primary-100: #CCFBEC;
  --color-primary-200: #99F6DA;
  --color-primary-500: #0AB58F;
  --color-primary-600: #089E7C;
  --color-primary-700: #067A61;
  --color-primary-900: #034D3D;

  /* ---- Accent Colors ---- */
  --color-accent: #F5A623;
  --color-accent-light: #FFF8ED;

  /* ---- Neutral Colors ---- */
  --color-neutral-900: #1A1A2E;
  --color-neutral-800: #2D2D3F;
  --color-neutral-700: #4A4A5A;
  --color-neutral-600: #636373;
  --color-neutral-500: #7A7A8A;
  --color-neutral-400: #9E9EAD;
  --color-neutral-300: #C4C4CC;
  --color-neutral-200: #E2E2E8;
  --color-neutral-100: #F5F5F7;
  --color-neutral-50: #FAFAFA;
  --color-white: #FFFFFF;

  /* ---- Semantic Colors ---- */
  --color-success: #0AB58F;
  --color-warning: #F5A623;
  --color-error: #E74C3C;
  --color-info: #3498DB;

  /* ---- Gradients ---- */
  --gradient-primary: linear-gradient(135deg, #0AB58F 0%, #067A61 100%);
  --gradient-primary-soft: linear-gradient(135deg, #E6F9F4 0%, #F0FDF9 100%);
  --gradient-hero-overlay: linear-gradient(
    to top,
    rgba(26, 26, 46, 0.85) 0%,
    rgba(26, 26, 46, 0.45) 40%,
    rgba(26, 26, 46, 0.15) 70%,
    rgba(26, 26, 46, 0.05) 100%
  );
  --gradient-dark: linear-gradient(180deg, #1A1A2E 0%, #16213E 100%);
  --gradient-section: linear-gradient(180deg, var(--color-neutral-50) 0%, var(--color-white) 100%);

  /* ---- Glass Effect ---- */
  --glass-bg: rgba(255, 255, 255, 0.72);
  --glass-border: rgba(255, 255, 255, 0.25);
  --glass-blur: blur(16px);

  /* ---- Typography ---- */
  --font-primary: 'Poppins', sans-serif;
  --font-secondary: 'Montserrat', sans-serif;

  --text-hero-title: clamp(2.25rem, 4vw, 3.5rem);
  --text-hero-subtitle: 1.125rem;
  --text-h2: clamp(1.5rem, 2.5vw, 2rem);
  --text-h3: 1.375rem;
  --text-body: 1rem;
  --text-body-sm: 0.875rem;
  --text-caption: 0.75rem;
  --text-button: 1rem;
  --text-button-sm: 0.875rem;
  --text-nav: 0.9375rem;

  /* ---- Spacing ---- */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;
  --space-3xl: 64px;
  --space-4xl: 80px;
  --space-5xl: 120px;

  /* ---- Border & Radius ---- */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-2xl: 32px;
  --radius-full: 50px;
  --border-default: 1px solid var(--color-neutral-200);
  --border-focus: 2px solid var(--color-primary);

  /* ---- Shadows ---- */
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 4px 14px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 10px 35px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 50px rgba(0, 0, 0, 0.12);
  --shadow-hover: 0 8px 25px rgba(10, 181, 143, 0.18);
  --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.06), 0 0 1px rgba(0, 0, 0, 0.08);
  --shadow-card-hover: 0 12px 30px rgba(0, 0, 0, 0.12);
  --shadow-primary-glow: 0 8px 30px rgba(10, 181, 143, 0.35);

  /* ---- Transitions ---- */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 400ms ease;
  --transition-spring: 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
  --transition-smooth: 500ms cubic-bezier(0.4, 0, 0.2, 1);

  /* ---- Z-Index ---- */
  --z-base: 1;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;

  /* ---- Layout ---- */
  --navbar-height: 72px;
  --navbar-height-mobile: 64px;
  --container-max: 1320px;
  --container-padding: 48px;
  --container-padding-mobile: 20px;
}

/* ---- Mobile Token Overrides ---- */
@media (max-width: 768px) {
  :root {
    --text-hero-subtitle: 0.9375rem;
    --text-h3: 1.25rem;
    --text-body: 0.9375rem;
    --container-padding: 20px;
  }
}
