/* Homepage Custom Styles & Animations - PAVANCAB */

body {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif !important;
  color: #0f172a;
  background-color: #fafafa;
}

h1,
h2,
h3,
h4,
.nav-logo {
  font-family: 'Outfit', 'Plus Jakarta Sans', sans-serif !important;
}

.futuristic-text,
.navlinks {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
}

/* Keyframe Animations */
@keyframes shimmerSweep {
  0% {
    transform: translateX(-150%) skewX(-25deg);
  }

  50%,
  100% {
    transform: translateX(150%) skewX(-25deg);
  }
}

@keyframes bluePulseHalo {

  0%,
  100% {
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.45), 0 0 0 0 rgba(37, 99, 235, 0.4);
  }

  50% {
    box-shadow: 0 8px 25px rgba(37, 99, 235, 0.75), 0 0 0 8px rgba(37, 99, 235, 0);
  }
}

@keyframes greenPulseHalo {

  0%,
  100% {
    box-shadow: 0 4px 14px rgba(16, 185, 129, 0.45), 0 0 0 0 rgba(16, 185, 129, 0.4);
  }

  50% {
    box-shadow: 0 8px 25px rgba(16, 185, 129, 0.75), 0 0 0 8px rgba(16, 185, 129, 0);
  }
}

@keyframes iconBounce {

  0%,
  100% {
    transform: scale(1) rotate(0deg);
  }

  50% {
    transform: scale(1.25) rotate(-10deg);
  }
}

@keyframes blink {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0;
  }
}

.blinking-text {
  animation: blink 3s infinite;
}

/* Universal Luxury Animated Button Base */
.btn-blue-gradient,
.btn-green-gradient,
.floating-whatsapp-btn,
.floating-call-btn,
button[type="submit"] {
  position: relative !important;
  overflow: hidden !important;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  opacity: 1 !important;
}

/* Shimmer Light Sweep Effect */
.btn-blue-gradient::after,
.btn-green-gradient::after,
.floating-whatsapp-btn::after,
.floating-call-btn::after {
  content: '' !important;
  position: absolute !important;
  top: -50% !important;
  left: -50% !important;
  width: 200% !important;
  height: 200% !important;
  background: linear-gradient(90deg,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.35) 50%,
      rgba(255, 255, 255, 0) 100%) !important;
  animation: shimmerSweep 3.5s infinite ease-in-out !important;
  pointer-events: none !important;
}

/* Vibrant Blue Gradient Button with Pulse Halo */
.btn-blue-gradient {
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 50%, #1e40af 100%) !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  border: 1px solid rgba(255, 255, 255, 0.4) !important;
  animation: bluePulseHalo 3s infinite ease-in-out !important;
}

.btn-blue-gradient:hover {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 50%, #1d4ed8 100%) !important;
  transform: translateY(-4px) scale(1.04) !important;
  box-shadow: 0 12px 30px rgba(37, 99, 235, 0.8) !important;
}

.btn-blue-gradient:hover i {
  animation: iconBounce 0.5s ease-in-out infinite alternate !important;
}

.btn-blue-gradient:active {
  transform: translateY(0) scale(0.97) !important;
}

/* Vibrant Green Gradient Button with Pulse Halo */
.btn-green-gradient {
  background: linear-gradient(135deg, #10b981 0%, #059669 50%, #047857 100%) !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  border: 1px solid rgba(255, 255, 255, 0.4) !important;
  animation: greenPulseHalo 3s infinite ease-in-out !important;
}

.btn-green-gradient:hover {
  background: linear-gradient(135deg, #34d399 0%, #10b981 50%, #059669 100%) !important;
  transform: translateY(-4px) scale(1.04) !important;
  box-shadow: 0 12px 30px rgba(16, 185, 129, 0.8) !important;
}

.btn-green-gradient:hover i {
  animation: iconBounce 0.5s ease-in-out infinite alternate !important;
}

.btn-green-gradient:active {
  transform: translateY(0) scale(0.97) !important;
}

/* Floating Bar Buttons */
.floating-whatsapp-btn {
  background: linear-gradient(135deg, #25d366 0%, #128c7e 100%) !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  border: 1.5px solid rgba(255, 255, 255, 0.6) !important;
  animation: greenPulseHalo 2.5s infinite ease-in-out !important;
}

.floating-whatsapp-btn:hover {
  transform: scale(1.09) translateY(-2px) !important;
  box-shadow: 0 14px 35px rgba(37, 211, 102, 0.85) !important;
}

.floating-call-btn {
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%) !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  border: 1.5px solid rgba(255, 255, 255, 0.6) !important;
  animation: bluePulseHalo 2.5s infinite ease-in-out !important;
}

.floating-call-btn:hover {
  transform: scale(1.09) translateY(-2px) !important;
  box-shadow: 0 14px 35px rgba(124, 58, 237, 0.85) !important;
}

/* Cab Selection & Route Filters */
.cab-image {
  filter: grayscale(100%);
  background-color: transparent;
  width: 100px;
  height: 80px;
  object-fit: contain;
}

#top-routes-from label.selected {
  border-bottom: 2px solid #3b82f6;
  background-color: #eff6ff;
}

#top-routes-to label.selected {
  border-bottom: 2px solid #22c55e;
  background-color: #ecfdf5;
}

label.selected .cab-image {
  filter: none;
}
