/* =====================================================
  EverClean Solutions Animations
===================================================== */

/* Fade Up */
.fade-up {
  opacity: 0;
  transform: translateY(50px);
  transition: all 0.8s ease;
}
.fade-up.show {
  opacity: 1;
  transform: translateY(0);
}

/* Fade Left */
.fade-left {
  opacity: 0;
  transform: translateX(-50px);
  transition: 0.8s ease;
}
.fade-left.show {
  opacity: 1;
  transform: translateX(0);
}

/* Fade Right */
.fade-right {
  opacity: 0;
  transform: translateX(50px);
  transition: 0.8s ease;
}
.fade-right.show {
  opacity: 1;
  transform: translateX(0);
}

/* Floating */
.float {
  animation: floating 4s ease-in-out infinite;
}
@keyframes floating {
  0% { transform: translateY(0); }
  50% { transform: translateY(-18px); }
  100% { transform: translateY(0); }
}

/* Pulse Button */
.pulse {
  animation: pulseEffect 2s infinite;
}
@keyframes pulseEffect {
  0% { box-shadow: 0 0 0 0 rgba(0, 119, 182, 0.5); }
  70% { box-shadow: 0 0 0 20px rgba(0, 119, 182, 0); }
  100% { box-shadow: 0 0 0 0 rgba(0, 119, 182, 0); }
}

/* Page Transition */
.page-transition {
  animation: pageFade 0.8s ease;
}
@keyframes pageFade {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Shine Effect */
.shine {
  position: relative;
  overflow: hidden;
}
.shine::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.5), transparent);
  transition: 0.8s;
}
.shine:hover::before {
  left: 130%;
}

/* Scale Hover */
.scale-hover {
  transition: 0.4s;
}
.scale-hover:hover {
  transform: scale(1.05);
}
