/* Wrapper ensuring flex layout and hiding overflow */
.ent-ticker-wrapper {
    display: flex;
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
    align-items: center;
}

/* 
 * The movement container holds two identical tracks. 
 * Gap is handled dynamically via Elementor Custom Properties (--ent-spacing).
 */
.ent-ticker-movement {
    display: flex;
    align-items: center;
    gap: var(--ent-spacing, 40px);
    animation: ent-scroll-anim var(--ent-speed, 20s) linear infinite;
    will-change: transform;
}

/* Reverse Animation Direction */
.ent-ticker-movement.ent-dir-reverse {
    animation-direction: reverse;
}

/* Pause on Hover Logic */
.ent-ticker-wrapper.ent-pause-yes:hover .ent-ticker-movement {
    animation-play-state: paused;
}

/* Individual track container */
.ent-ticker-track {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: var(--ent-spacing, 40px);
    white-space: nowrap;
}

/* Item alignments */
.ent-ticker-item {
    display: flex;
    align-items: center;
}

.ent-item-inner {
    display: flex;
    align-items: center;
}

.ent-ticker-item a {
    text-decoration: none;
    transition: color 0.3s ease;
    display: flex;
    align-items: center;
}

/* Badge styling */
.ent-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    /* Controlled by Elementor slider selector (--ent-badge-spacing) */
    margin-right: var(--ent-badge-spacing, 8px); 
}

/* Custom Text Badge Box Styling */
.ent-badge-text-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 3px 8px;
    border-radius: 4px;
    font-family: sans-serif;
    font-weight: bold;
    font-size: 12px;
    line-height: 1;
}

.ent-badge img,
.ent-badge svg {
    display: block;
    height: auto;
    width: 100%;
    object-fit: contain;
}

.ent-text {
    display: inline-block;
    transition: inherit;
}

/* 
 * Seamless Loop Animation Keyframes 
 * Moves exactly 50% minus half the gap to align the duplicated track perfectly.
 */
@keyframes ent-scroll-anim {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(calc(-50% - (var(--ent-spacing, 40px) / 2)), 0, 0);
    }
}