.scroll-reveal {
  opacity: 0;
  transition: opacity 0.7s ease-out, transform 0.7s ease-out;
  will-change: opacity, transform;
}
.scroll-reveal--up { transform: translateY(40px); }
.scroll-reveal--down { transform: translateY(-40px); }
.scroll-reveal--left { transform: translateX(-50px); }
.scroll-reveal--right { transform: translateX(50px); }

.scroll-reveal.is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

@media (prefers-reduced-motion: reduce) {
  .scroll-reveal {
    transition: none;
    opacity: 1;
    transform: none;
  }
}

.service-card {
  cursor: pointer;
}
.service-card:hover {
  transform: translateY(-10px);
  box-shadow: rgba(100, 100, 111, 0.35) 0px 20px 40px 0px;
}
.service-card img {
  transition: transform 0.4s;
}
.service-card:hover img {
  transform: scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
  .service-card,
  .service-card img {
    transition: none;
  }
  .service-card:hover {
    transform: none;
  }
  .service-card:hover img {
    transform: none;
  }
}

.e-con.e-child.shadow:not(.service-card):not(:has(form)),
.elementor-widget-icon-box.shadow,
.elementor-widget-image-box.shadow,
.elementor-widget-icon-list.shadow {
  transition: transform 0.35s ease-out, box-shadow 0.35s ease-out;
  cursor: pointer;
}
.e-con.e-child.shadow:not(.service-card):not(:has(form)):hover,
.elementor-widget-icon-box.shadow:hover,
.elementor-widget-image-box.shadow:hover,
.elementor-widget-icon-list.shadow:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

@media (prefers-reduced-motion: reduce) {
  .e-con.e-child.shadow:not(.service-card):not(:has(form)),
  .elementor-widget-icon-box.shadow,
  .elementor-widget-image-box.shadow,
  .elementor-widget-icon-list.shadow {
    transition: none;
  }
  .e-con.e-child.shadow:not(.service-card):not(:has(form)):hover,
  .elementor-widget-icon-box.shadow:hover,
  .elementor-widget-image-box.shadow:hover,
  .elementor-widget-icon-list.shadow:hover {
    transform: none;
  }
}
