/* CSS Animations */

/* Fade Up */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Slide Left */
.slide-left {
  opacity: 0;
  transform: translateX(50px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.slide-left.visible {
  opacity: 1;
  transform: translateX(0);
}

/* Slide Right */
.slide-right {
  opacity: 0;
  transform: translateX(-50px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.slide-right.visible {
  opacity: 1;
  transform: translateX(0);
}

/* Zoom In */
.zoom-in {
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.zoom-in.visible {
  opacity: 1;
  transform: scale(1);
}

/* Staggered Animations */
.stagger-1 { transition-delay: 0.1s; }
.stagger-2 { transition-delay: 0.2s; }
.stagger-3 { transition-delay: 0.3s; }
.stagger-4 { transition-delay: 0.4s; }
.stagger-5 { transition-delay: 0.5s; }
.stagger-6 { transition-delay: 0.6s; }

/* Float Animations for blobs/elements */
@keyframes float {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(20px, -20px) scale(1.05); }
  100% { transform: translate(-20px, 20px) scale(0.95); }
}

@keyframes floatY {
  0% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
  100% { transform: translateY(0); }
}

@keyframes floatX {
  0% { transform: translateX(0); }
  50% { transform: translateX(15px); }
  100% { transform: translateX(0); }
}

/* Ripple effect on buttons */
.btn {
  position: relative;
  overflow: hidden;
}

.btn::after {
  content: "";
  background: rgba(255, 255, 255, 0.3);
  display: block;
  position: absolute;
  border-radius: 50%;
  padding-top: 240%;
  padding-left: 240%;
  margin-top: -120%;
  margin-left: -120%;
  opacity: 0;
  transition: all 0.8s;
}

.btn:active::after {
  padding-top: 0;
  padding-left: 0;
  margin-top: 0;
  margin-left: 0;
  opacity: 1;
  transition: 0s;
}

/* Pulse animation for call/emergency buttons */
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(242, 140, 40, 0.7); }
  70% { box-shadow: 0 0 0 15px rgba(242, 140, 40, 0); }
  100% { box-shadow: 0 0 0 0 rgba(242, 140, 40, 0); }
}

.btn-pulse {
  animation: pulse 2s infinite;
}

@keyframes pulsePrimary {
  0% { box-shadow: 0 0 0 0 rgba(11, 58, 130, 0.7); }
  70% { box-shadow: 0 0 0 15px rgba(11, 58, 130, 0); }
  100% { box-shadow: 0 0 0 0 rgba(11, 58, 130, 0); }
}

.btn-pulse-primary {
  animation: pulsePrimary 2s infinite;
}

/* Shimmer loading effect */
.shimmer {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
