/* Smooth Animations & Micro-interactions */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-on-scroll { opacity: 0; visibility: hidden; }
.animate-fade-in-up { opacity: 0; visibility: visible; animation: fadeInUp 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; }

.stagger-1 { animation-delay: 0.1s; }
.stagger-2 { animation-delay: 0.2s; }
.stagger-3 { animation-delay: 0.3s; }
.stagger-4 { animation-delay: 0.4s; }

/* Interactive Hover Utilities */
.hover-float { transition: transform 0.4s ease, box-shadow 0.4s ease; }
.hover-float:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(47, 93, 154, 0.15); /* primary blue shadow */
}

/* Card lift + blue glow specifically requested */
.service-card-hover { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.service-card-hover:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(47, 93, 154, 0.2);
}

.service-card-hover:hover .card-icon {
  color: var(--primary-red);
}

/* Image Reveal Animation */
.image-reveal {
  position: relative;
  overflow: hidden;
}

.image-reveal::after {
  content: '';
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  background: var(--bg-light);
  transform-origin: left;
  transition: transform 1s cubic-bezier(0.7, 0, 0.3, 1);
}

.image-reveal.revealed::after {
  transform: scaleX(0);
}

[dir="rtl"] .image-reveal::after {
  transform-origin: right;
}
