:root {
  --background: 220 20% 97%;
  --foreground: 215 40% 13%;

  --card: 0 0% 100%;
  --card-foreground: 215 40% 13%;

  --popover: 0 0% 100%;
  --popover-foreground: 215 40% 13%;

  /* Logo Blue #2c4b75 */
  --primary: 215, 45%, 32%;
  --primary-foreground: 0, 0%, 100%;

  --secondary: 215, 60%, 15%;
  --secondary-foreground: 0, 0%, 100%;

  --muted: 215, 20%, 92%;
  --muted-foreground: 215, 15%, 45%;

  --accent: 215, 70%, 50%;
  --accent-foreground: 0, 0%, 100%;

  --destructive: 0, 84%, 60%;
  --destructive-foreground: 0, 0%, 100%;

  --border: 215, 15%, 88%;
  --input: 215, 15%, 88%;
  --ring: 215, 45%, 32%;

  --radius: 0.75rem;

  /* Custom colors - purely blue/navy based on logo */
  --road-dark: 215, 60%, 8%;
  --road-line: 215, 45%, 32%;
  --speed-orange: 215, 70%, 50%;
  --taxi-yellow: 215, 45%, 32%;
  --trust-navy: 215, 45%, 32%;

  /* Gradients */
  --gradient-hero: linear-gradient(135deg, #2c4b75 0%, #3e68a3 100%);
  --gradient-dark: linear-gradient(180deg, #0d1724 0%, #1a2e48 100%);
  --gradient-card: linear-gradient(145deg, #ffffff 0%, #f1f4f8 100%);

  /* Shadows */
  --shadow-soft: 0 4px 20px -4px rgba(44, 75, 117, 0.1);
  --shadow-glow: 0 8px 40px -8px rgba(44, 75, 117, 0.3);
  --shadow-card: 0 10px 40px -10px rgba(44, 75, 117, 0.15);
}

body {
  font-family: 'Poppins', sans-serif;
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  margin: 0;
  overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Space Grotesk', sans-serif;
}

.text-gradient {
  background: var(--gradient-hero);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.shadow-card {
  box-shadow: var(--shadow-card);
}

.shadow-glow {
  box-shadow: var(--shadow-glow);
}

.bg-road-dark {
  background-color: #0d1724;
}

.bg-primary {
  background-color: #2c4b75;
}

.text-primary {
  color: #2c4b75;
}

.bg-accent {
  background-color: #3e68a3;
}

.text-accent {
  color: #3e68a3;
}

.bg-secondary {
  background-color: #1a2e48;
}

.text-secondary {
  color: #1a2e48;
}

/* Animations */
@keyframes speed-lines {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  100% {
    transform: translateX(200%);
    opacity: 0;
  }
}

.speed-line {
  position: absolute;
  height: 2px;
  background: linear-gradient(90deg, transparent, #2c4b75, transparent);
  width: 30%;
  animation: speed-lines 2s ease-in-out infinite;
  opacity: 0;
}

/* Mobile Menu Transition */
#mobile-menu {
  transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
}

#mobile-menu.active {
  max-height: 1000px;
  opacity: 1;
}