/* ========================================
   OVERFLOW PREVENTION
   ======================================== */
/* Prevent horizontal scroll caused by moving images */
body {
    overflow-x: hidden;
}

html {
    overflow-x: hidden;
}

/* Ensure any container with moving images clips overflow */
img.img-move-loop {
    max-width: 100%;
}

/* Make sure parent containers prevent overflow */
.elementor-widget-image:has(img.img-move-loop),
.img-move-loop,
*:has(> img.img-move-loop) {
    overflow: hidden;
}

/* ========================================
   BASE ANIMATIONS - REDUCED MOVEMENT
   ======================================== */
/* Base animation for loop movement */
/* Start from LEFT, move to RIGHT, back to LEFT */
@keyframes moveLoopFullFromLeft {
    0% {
        transform: translateX(-30%);
    }
    50% {
        transform: translateX(30%);
    }
    100% {
        transform: translateX(-30%);
    }
}

/* Start from RIGHT, move to LEFT, back to RIGHT */
@keyframes moveLoopFullFromRight {
    0% {
        transform: translateX(30%);
    }
    50% {
        transform: translateX(-30%);
    }
    100% {
        transform: translateX(30%);
    }
}

/* Start from CENTER, move to RIGHT, to LEFT, back to CENTER */
@keyframes moveLoopFullFromCenter {
    0% {
        transform: translateX(0);
    }
    33% {
        transform: translateX(30%);
    }
    66% {
        transform: translateX(-30%);
    }
    100% {
        transform: translateX(0);
    }
}

/* Half distance variants */
@keyframes moveLoopHalfFromLeft {
    0% {
        transform: translateX(-15%);
    }
    50% {
        transform: translateX(15%);
    }
    100% {
        transform: translateX(-15%);
    }
}

@keyframes moveLoopHalfFromRight {
    0% {
        transform: translateX(15%);
    }
    50% {
        transform: translateX(-15%);
    }
    100% {
        transform: translateX(15%);
    }
}

@keyframes moveLoopHalfFromCenter {
    0% {
        transform: translateX(0);
    }
    33% {
        transform: translateX(15%);
    }
    66% {
        transform: translateX(-15%);
    }
    100% {
        transform: translateX(0);
    }
}

/* Base class for moving images - targets both img tags and parent wrappers */
img.img-move-loop,
.img-move-loop img,
.img-move-loop {
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    will-change: transform;
    position: relative;
}

/* Full distance + Start from LEFT (default) */
img.img-move-loop.img-move-distance-full.img-move-start-left,
img.img-move-loop.img-move-distance-full:not([class*="img-move-start-"]),
img.img-move-loop:not([class*="img-move-distance-"]):not([class*="img-move-start-"]),
img.img-move-loop:not([class*="img-move-distance-"]).img-move-start-left,
.img-move-loop.img-move-distance-full.img-move-start-left img,
.img-move-loop.img-move-distance-full:not([class*="img-move-start-"]) img,
.img-move-loop:not([class*="img-move-distance-"]):not([class*="img-move-start-"]) img,
.img-move-loop:not([class*="img-move-distance-"]).img-move-start-left img {
    animation-name: moveLoopFullFromLeft;
}

/* Full distance + Start from RIGHT */
img.img-move-loop.img-move-distance-full.img-move-start-right,
img.img-move-loop:not([class*="img-move-distance-"]).img-move-start-right,
.img-move-loop.img-move-distance-full.img-move-start-right img,
.img-move-loop:not([class*="img-move-distance-"]).img-move-start-right img {
    animation-name: moveLoopFullFromRight;
}

/* Full distance + Start from CENTER */
img.img-move-loop.img-move-distance-full.img-move-start-center,
img.img-move-loop:not([class*="img-move-distance-"]).img-move-start-center,
.img-move-loop.img-move-distance-full.img-move-start-center img,
.img-move-loop:not([class*="img-move-distance-"]).img-move-start-center img {
    animation-name: moveLoopFullFromCenter;
}

/* Half distance + Start from LEFT */
img.img-move-loop.img-move-distance-half.img-move-start-left,
img.img-move-loop.img-move-distance-half:not([class*="img-move-start-"]),
.img-move-loop.img-move-distance-half.img-move-start-left img,
.img-move-loop.img-move-distance-half:not([class*="img-move-start-"]) img {
    animation-name: moveLoopHalfFromLeft;
}

/* Half distance + Start from RIGHT */
img.img-move-loop.img-move-distance-half.img-move-start-right,
.img-move-loop.img-move-distance-half.img-move-start-right img {
    animation-name: moveLoopHalfFromRight;
}

/* Half distance + Start from CENTER */
img.img-move-loop.img-move-distance-half.img-move-start-center,
.img-move-loop.img-move-distance-half.img-move-start-center img {
    animation-name: moveLoopHalfFromCenter;
}

/* Speed variants */
/* Fast (default) - 8 seconds */
img.img-move-loop.img-move-speed-fast,
img.img-move-loop:not([class*="img-move-speed-"]),
.img-move-loop.img-move-speed-fast img,
.img-move-loop:not([class*="img-move-speed-"]) img {
    animation-duration: 8s;
}

/* Medium - 15 seconds */
img.img-move-loop.img-move-speed-medium,
.img-move-loop.img-move-speed-medium img {
    animation-duration: 15s;
}

/* Slow - 25 seconds */
img.img-move-loop.img-move-speed-slow,
.img-move-loop.img-move-speed-slow img {
    animation-duration: 25s;
}

/* Optional: Add this class to parent container for better control */
.img-move-container {
    overflow: hidden;
    position: relative;
}