:root {
  /*
   * Frakthubben Experience Alpha
   * Fas 2: design tokens
   *
   * Dessa variabler styr hela det visuella systemet. Ändra här först när
   * färg, typografi, avstånd eller komponentkänsla ska justeras globalt.
   */

  /* Brand colors */
  --color-ink-950: #07111f;
  --color-ink-900: #0b1626;
  --color-ink-800: #17263a;
  --color-ink-700: #2b3b50;
  --color-ink-600: #45566c;
  --color-ink-500: #64748b;
  --color-ink-400: #94a3b8;
  --color-ink-300: #cbd5e1;
  --color-ink-200: #e2e8f0;
  --color-ink-100: #f1f5f9;
  --color-ink-50: #f8fafc;

  --color-orange-700: #c7470a;
  --color-orange-600: #e45712;
  --color-orange-500: #f36a1d;
  --color-orange-400: #ff873f;
  --color-orange-300: #ffad73;
  --color-orange-200: #ffd0af;
  --color-orange-100: #ffeadc;
  --color-orange-50: #fff6f0;

  --color-blue-700: #1558a6;
  --color-blue-600: #1d6bc1;
  --color-blue-500: #2f80d7;
  --color-blue-100: #e8f3ff;

  --color-green-700: #16734b;
  --color-green-600: #1d8b5c;
  --color-green-500: #2aa66f;
  --color-green-100: #e7f8ef;

  --color-amber-600: #b86a08;
  --color-amber-100: #fff3d6;
  --color-red-600: #c63b3b;
  --color-red-100: #feecec;

  /* Semantic colors */
  --color-background: #ffffff;
  --color-background-soft: var(--color-ink-50);
  --color-background-strong: var(--color-ink-950);
  --color-surface: #ffffff;
  --color-surface-elevated: rgba(255, 255, 255, 0.92);
  --color-surface-dark: var(--color-ink-900);
  --color-text: var(--color-ink-900);
  --color-text-muted: var(--color-ink-600);
  --color-text-subtle: var(--color-ink-500);
  --color-text-on-dark: #ffffff;
  --color-border: var(--color-ink-200);
  --color-border-strong: var(--color-ink-300);
  --color-focus: var(--color-blue-500);

  --color-primary: var(--color-orange-600);
  --color-primary-hover: var(--color-orange-700);
  --color-primary-soft: var(--color-orange-50);
  --color-secondary: var(--color-blue-600);
  --color-secondary-hover: var(--color-blue-700);
  --color-success: var(--color-green-600);
  --color-success-soft: var(--color-green-100);

  /* Optional CTA route colors */
  --color-route-price: var(--color-orange-600);
  --color-route-offer: var(--color-blue-600);
  --color-route-shipment: var(--color-green-600);

  /* Typography */
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: Manrope, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;

  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-md: 1.125rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: 1.5rem;
  --font-size-2xl: clamp(1.75rem, 2vw, 2.25rem);
  --font-size-3xl: clamp(2.1rem, 3vw, 3.25rem);
  --font-size-4xl: clamp(2.75rem, 5vw, 5.25rem);

  --line-height-tight: 1.05;
  --line-height-heading: 1.15;
  --line-height-body: 1.65;
  --letter-spacing-tight: -0.035em;
  --letter-spacing-heading: -0.02em;
  --letter-spacing-wide: 0.08em;

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

  /* Spacing scale */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-14: 3.5rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-28: 7rem;
  --space-32: 8rem;

  /* Layout */
  --container-xs: 42rem;
  --container-sm: 56rem;
  --container-md: 72rem;
  --container-lg: 80rem;
  --container-padding: clamp(1rem, 3vw, 2rem);
  --section-space: clamp(4.5rem, 9vw, 8.5rem);
  --header-height: 4.75rem;

  /* Radius */
  --radius-xs: 0.5rem;
  --radius-sm: 0.75rem;
  --radius-md: 1rem;
  --radius-lg: 1.5rem;
  --radius-xl: 2rem;
  --radius-pill: 999px;

  /* Shadows */
  --shadow-xs: 0 1px 2px rgba(7, 17, 31, 0.05);
  --shadow-sm: 0 8px 24px rgba(7, 17, 31, 0.08);
  --shadow-md: 0 18px 50px rgba(7, 17, 31, 0.11);
  --shadow-lg: 0 28px 80px rgba(7, 17, 31, 0.15);
  --shadow-focus: 0 0 0 4px rgba(47, 128, 215, 0.24);
  --shadow-primary: 0 16px 36px rgba(228, 87, 18, 0.25);

  /* Borders */
  --border-width: 1px;
  --border: var(--border-width) solid var(--color-border);
  --border-strong: var(--border-width) solid var(--color-border-strong);

  /* Motion */
  --duration-fast: 140ms;
  --duration-base: 240ms;
  --duration-slow: 480ms;
  --duration-reveal: 700ms;
  --ease-standard: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);

  /* Layering */
  --z-base: 0;
  --z-raised: 10;
  --z-sticky: 100;
  --z-overlay: 500;
  --z-modal: 1000;

  /* Gradients */
  --gradient-hero:
    radial-gradient(circle at 15% 20%, rgba(243, 106, 29, 0.16), transparent 36%),
    radial-gradient(circle at 85% 22%, rgba(47, 128, 215, 0.14), transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  --gradient-dark:
    radial-gradient(circle at 16% 22%, rgba(243, 106, 29, 0.18), transparent 38%),
    radial-gradient(circle at 86% 10%, rgba(47, 128, 215, 0.16), transparent 34%),
    linear-gradient(145deg, #07111f 0%, #0b1626 58%, #13243a 100%);
  --gradient-primary: linear-gradient(135deg, var(--color-orange-500), var(--color-orange-700));

  /* Component sizing */
  --button-height: 3.25rem;
  --button-height-small: 2.75rem;
  --card-padding: clamp(1.25rem, 2.5vw, 2rem);
  --card-gap: clamp(1rem, 2vw, 1.5rem);
}

@media (max-width: 48rem) {
  :root {
    --header-height: 4.25rem;
    --section-space: 4.5rem;
    --container-padding: 1rem;
    --card-padding: 1.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms;
    --duration-base: 0ms;
    --duration-slow: 0ms;
    --duration-reveal: 0ms;
  }
}
