/* Marquee Image — UI Kit for Elementor */

/*
 * Base marquee engine (container / track / animation).
 * Bundled here so Marquee Image works standalone: these rules previously lived
 * ONLY in marquee/text/style.css, so on the front-end the Image marquee broke
 * (items stacked vertically) whenever no Text marquee was on the page, because
 * Elementor only loads the CSS of widgets actually present. Shared base to be
 * extracted into a common marquee stylesheet later (also affects card/post/video).
 */
.uikfe-marquee-container {
   --uikfe-item-gap: 40px;
   --uikfe-container-padding: 1rem;
   --uikfe-edge-color: var(--uikfe-color-edge-shadow, #ffffff);
   --uikfe-edge-spread: 50px;
   --uikfe-edge-blur: 30px;
}

.uikfe-marquee-container {
   position: relative;
   overflow: clip;
   display: flex;
   align-items: center;
   user-select: none;
   width: 100%;
   padding-block: var(--uikfe-container-padding);
}

.uikfe-marquee-track-wrapper {
   display: flex;
   align-items: center;
   gap: var(--uikfe-item-gap);
   max-height: 100%;
}

.uikfe-marquee-track {
   display: flex;
   gap: var(--uikfe-item-gap);
   will-change: transform;
   animation-name: uikfe-marquee-horizontal;
   animation-duration: 0s;
   animation-timing-function: linear;
   animation-iteration-count: infinite;
   animation-play-state: running;
}

/* Vertical (height handled by the widget control) */
.uikfe-marquee-container.uikfe-marquee-vertical {
   padding-inline: var(--uikfe-container-padding);
   padding-block: 0;
}

.uikfe-marquee-container.uikfe-marquee-vertical .uikfe-marquee-track-wrapper,
.uikfe-marquee-container.uikfe-marquee-vertical .uikfe-marquee-track {
   flex-direction: column;
   width: 100%;
}

.uikfe-marquee-container.uikfe-marquee-vertical .uikfe-marquee-track {
   animation-name: uikfe-marquee-vertical;
}

/* Reverse */
.uikfe-marquee-container.uikfe-marquee-reverse .uikfe-marquee-track {
   animation-direction: reverse;
}

/* Pause on hover */
.uikfe-marquee-container.uikfe-marquee-pause-on-hover:hover .uikfe-marquee-track {
   animation-play-state: paused;
}

/* Edge shadow */
.uikfe-marquee-container.uikfe-marquee-edge-shadow::before,
.uikfe-marquee-container.uikfe-marquee-edge-shadow::after {
   content: "";
   width: 0;
   height: 100%;
   position: absolute;
   top: 0;
   z-index: 1;
   pointer-events: none;
   box-shadow: 0 0 var(--uikfe-edge-blur) var(--uikfe-edge-spread) var(--uikfe-edge-color);
}

.uikfe-marquee-container.uikfe-marquee-edge-shadow::before { left: 0; }
.uikfe-marquee-container.uikfe-marquee-edge-shadow::after { right: 0; }

.uikfe-marquee-container.uikfe-marquee-vertical.uikfe-marquee-edge-shadow::before,
.uikfe-marquee-container.uikfe-marquee-vertical.uikfe-marquee-edge-shadow::after {
   width: 100%;
   height: 0;
   left: 0;
}

.uikfe-marquee-container.uikfe-marquee-vertical.uikfe-marquee-edge-shadow::before { top: 0; }
.uikfe-marquee-container.uikfe-marquee-vertical.uikfe-marquee-edge-shadow::after { top: auto; bottom: 0; }

[dir="rtl"] .uikfe-marquee-container,
[dir="rtl"] .uikfe-marquee-track-wrapper,
[dir="rtl"] .uikfe-marquee-track {
   flex-direction: row-reverse;
}

[dir="rtl"] .uikfe-marquee-container.uikfe-marquee-vertical .uikfe-marquee-track-wrapper,
[dir="rtl"] .uikfe-marquee-container.uikfe-marquee-vertical .uikfe-marquee-track {
   flex-direction: column;
}

@keyframes uikfe-marquee-horizontal {
   to { transform: translateX(calc(-100% - var(--uikfe-item-gap))); }
}

@keyframes uikfe-marquee-vertical {
   to { transform: translateY(calc(-100% - var(--uikfe-item-gap))); }
}

/* Image-specific */
.uikfe-marquee-img-wrapper {
   display: flex;
   flex-direction: column;
   flex-shrink: 0;
   max-width: 100%;
}

.uikfe-marquee-img {
   max-width: 100%;
   width: 250px;
   min-width: 50px;
   overflow: hidden;
}

.uikfe-marquee-img img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: filter 0.3s ease;
}

.uikfe-marquee-caption {
   line-height: 1.2;
   margin: 0;
   white-space: nowrap;
   font-style: normal;
}

.uikfe-marquee-img-wrapper a {
   display: contents;
   text-decoration: none;
   color: inherit;
}
