/* =======================================================
   VIGOR ENGINE: MARQUEE CONTAINER STYLES (FINAL)
======================================================= */

.vigor-marquee-wrap {
    /* Variables driven by Elementor */
    --marquee-speed: 30s;
    --image-height: 250px;
    --image-gap: 20px;
    
    position: relative;
    overflow: hidden;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    
    /* FIX: Force container to strictly match image height (no gaps) */
    min-height: var(--image-height); 
   
}

.vigor-marquee-track {
    position: absolute;
    /* FIX: Lock directly to the top edge */
    top: 0;
    left: 0;
    height: 100%;
    display: flex;
    gap: var(--image-gap);
    /* Animation removed from track */
}

.vigor-marquee-block {
    display: flex;
    gap: var(--image-gap);
    min-width: max-content; 
    flex-shrink: 0;
    
    /* FIX: Inherit 100% height from track */
    height: 100%; 
    
    /* FIX: Animation applied directly to individual blocks */
    animation: vigor-marquee-slide var(--marquee-speed) linear infinite;
}

.vigor-marquee-block img {
    /* FIX: 100% height ensures flush top and bottom */
    height: 100%; 
    width: auto;
    object-fit: cover;
    max-width: none; 
    border-radius: 0; 
}

.vigor-marquee-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.vigor-marquee-content {
    position: relative;
    z-index: 3;
    width: 100%;
    text-align: center;
    padding: 40px;
}

.vigor-marquee-overlay-img {
    position: relative;
    z-index: 4;
}

/* FIX: Flawless loop math that translates exactly one block + one gap */
@keyframes vigor-marquee-slide {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(-100% - var(--image-gap))); }
}