.im-wrapper-a3c38689 {
	display: flex;
	overflow: hidden;
	width: 100%;
	position: relative;
	/* Optional: add mask for faded edges if desired */
	/* -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent); */
	/* mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent); */
}

.im-track-a3c38689 {
	display: flex;
	flex-shrink: 0;
	min-width: 100%;
	/* Gap is controlled via Elementor */
}

/* Animations */
@keyframes marqueeLeft_a3c38689 {
	from { transform: translateX(0); }
	to { transform: translateX(calc(-100% - var(--gap, 0px))); }
}

@keyframes marqueeRight_a3c38689 {
	from { transform: translateX(calc(-100% - var(--gap, 0px))); }
	to { transform: translateX(0); }
}

/* Base animation setup - duration is set via Elementor inline styles */
.im-track-a3c38689 {
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

/* Directions */
.im-dir-left {
	animation-name: marqueeLeft_a3c38689;
}

.im-dir-right {
	animation-name: marqueeRight_a3c38689;
}

/* Pause on hover */
.im-wrapper-a3c38689:hover .im-pause-hover {
	animation-play-state: paused;
}

/* Items */
.im-item-a3c38689 {
	flex: 0 0 auto;
}

.im-item-link-a3c38689 {
	display: block;
	height: 100%;
}

.im-item-img-a3c38689 {
	display: block;
	/* Width, height, object-fit, and border-radius are controlled via Elementor */
}

/* Fix gap calculation for animation */
.elementor-widget-image_marquee_a3c38689 {
	/* We need to pass the gap value to CSS variables so the transform can calculate exactly 100% + gap */
}