/* ═══════════════════════════════════════════════
   SERVICE CARD IMAGE SLIDER — Premium Animation
   ═══════════════════════════════════════════════ */

.service-img-slider {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* All slides stacked absolutely, invisible by default */
.service-img-slider .slide {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0;
  transition: opacity 1.0s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: opacity;
}

/* Outgoing slide fades out */
.service-img-slider .slide.leaving {
  opacity: 0;
  z-index: 1;
  transition: opacity 0.9s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Active slide fully visible */
.service-img-slider .slide.active {
  opacity: 1;
  z-index: 2;
}

/* Images fill their slide */
.service-img-slider .slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.0);
  transition: transform 8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
}

/* Ken Burns zoom on active */
.service-img-slider .slide.active img {
  transform: scale(1.07);
}

/* Hover: amplify zoom */
.service-card:hover .service-img-slider .slide.active img {
  transform: scale(1.10);
  transition: transform 4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Product images (contain mode) — disable Ken Burns zoom, keep still */
.service-img-slider .slide img[style*="object-fit:contain"] {
  transform: none !important;
  transition: opacity 0.5s ease !important;
}

/* Gradient overlay */
.service-img-slider .service-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    170deg,
    rgba(6, 18, 60, 0.0)  0%,
    rgba(6, 18, 60, 0.08) 50%,
    rgba(6, 18, 60, 0.42) 100%
  );
  pointer-events: none;
  z-index: 10;
}

/* Dot indicators */
.slider-dots {
  position: absolute;
  bottom: 11px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 7px;
  z-index: 20;
  pointer-events: all;
}

.slider-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.38);
  border: 1.5px solid rgba(255, 255, 255, 0.55);
  cursor: pointer;
  padding: 0;
  transition: background 0.4s ease, transform 0.4s ease, width 0.4s ease, border-radius 0.4s ease;
}

/* Active dot becomes a pill */
.slider-dot.active {
  background: #ffffff;
  border-color: #ffffff;
  width: 18px;
  border-radius: 3px;
}

/* Progress animation on active dot */
.slider-dot.active::after {
  content: '';
  display: block;
  height: 100%;
  width: 0%;
  background: rgba(255,255,255,0.45);
  border-radius: 3px;
  animation: dotProgress 4s linear forwards;
}

@keyframes dotProgress {
  from { width: 0%; }
  to   { width: 100%; }
}

/* Shimmer on slide entrance */
.service-img-slider .slide.active::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    transparent 30%,
    rgba(255,255,255,0.055) 50%,
    transparent 70%
  );
  z-index: 3;
  animation: shimmer 1.3s ease forwards;
  pointer-events: none;
}

@keyframes shimmer {
  from { opacity: 1; transform: translateX(-110%); }
  to   { opacity: 0; transform: translateX(110%); }
}
