/* Continuous Text & Image Marquee for Elementor - v1.0.5 */

.elementor-widget-continuous-text-image-marquee,
.elementor-widget-continuous-text-image-marquee > .elementor-widget-container {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-root {
    --ctim-duration: 26s;
    --ctim-effective-duration: 26s;
    --ctim-speed: 55;
    --ctim-height: 100px;
    --ctim-distance: 700px;
    --ctim-gap: 14px;
    --ctim-item-gap: 8px;
    --ctim-bg: #2d1e10;
    --ctim-text-color: #f7f1e8;
    --ctim-dot-color: #e0ae3e;
    --ctim-dot-size: 7px;
    --ctim-image-width: 20px;
    --ctim-image-height: 20px;

    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: var(--ctim-height) !important;
    min-height: var(--ctim-height) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    background: var(--ctim-bg) !important;
    color: var(--ctim-text-color) !important;
    border: 1px solid #fff5df;
    isolation: isolate;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.25;
}

.elementor-widget-continuous-text-image-marquee .ctim-root *,
.elementor-widget-continuous-text-image-marquee .ctim-root *::before,
.elementor-widget-continuous-text-image-marquee .ctim-root *::after {
    box-sizing: border-box !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-viewport {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 100% !important;
    overflow: hidden !important;
    padding: 0;
}

.elementor-widget-continuous-text-image-marquee .ctim-track {
    position: relative !important;
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    width: max-content !important;
    max-width: none !important;
    min-width: max-content !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: var(--ctim-gap) !important;
    transform: translate3d(0, 0, 0);
    will-change: transform;
    backface-visibility: hidden;
}

.elementor-widget-continuous-text-image-marquee .ctim-group {
    position: relative !important;
    display: flex !important;
    flex: 0 0 auto !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    width: max-content !important;
    max-width: none !important;
    min-width: max-content !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: var(--ctim-gap) !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-item {
    position: relative !important;
    display: inline-flex !important;
    flex: 0 0 auto !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: var(--ctim-item-gap) !important;
    width: auto !important;
    min-width: max-content !important;
    max-width: none !important;
    height: auto !important;
    min-height: 1em !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    white-space: nowrap !important;
    line-height: inherit !important;
    opacity: 1 !important;
    visibility: visible !important;
    clip: auto !important;
    clip-path: none !important;
    color: var(--ctim-text-color) !important;
    -webkit-text-fill-color: var(--ctim-text-color) !important;
}

/*
 * v1.0.4 deliberately uses a new, highly specific label class. This avoids
 * collisions with theme/plugin rules that target generic text/span classes in
 * Elementor's editor and were causing the "only dot is visible" symptom.
 */
.elementor-widget-continuous-text-image-marquee .ctim-root .ctim-label {
    position: static !important;
    display: inline-block !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content !important;
    max-width: none !important;
    height: auto !important;
    min-height: 1em !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    white-space: nowrap !important;
    text-indent: 0 !important;
    transform: none !important;
    translate: none !important;
    scale: none !important;
    rotate: none !important;
    clip: auto !important;
    clip-path: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    color: var(--ctim-text-color) !important;
    -webkit-text-fill-color: var(--ctim-text-color) !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-style: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
    text-transform: inherit !important;
    text-decoration: none !important;
    text-align: center !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-item-image,
.elementor-widget-continuous-text-image-marquee .ctim-separator-image {
    position: static !important;
    display: block !important;
    flex: 0 0 auto !important;
    object-fit: contain !important;
    object-position: center !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    clip: auto !important;
    clip-path: none !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-item-image {
    width: var(--ctim-image-width) !important;
    height: var(--ctim-image-height) !important;
    min-width: 1px !important;
    max-width: none !important;
    max-height: none !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-separator {
    position: relative !important;
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: max-content !important;
    max-width: none !important;
    height: auto !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-separator-dot {
    display: block !important;
    flex: 0 0 auto !important;
    width: var(--ctim-dot-size) !important;
    height: var(--ctim-dot-size) !important;
    min-width: 2px !important;
    min-height: 2px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--ctim-dot-color) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-separator-image {
    width: 10px;
    height: auto !important;
    max-height: 60px !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-root.ctim-separator-none .ctim-separator {
    display: none !important;
}

.elementor-widget-continuous-text-image-marquee .ctim-root.ctim-ready .ctim-track {
    animation-duration: var(--ctim-effective-duration, var(--ctim-duration));
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-delay: 0s;
    animation-fill-mode: none;
}

.elementor-widget-continuous-text-image-marquee .ctim-root.ctim-direction-left.ctim-ready .ctim-track {
    animation-name: ctim-scroll-left;
}

.elementor-widget-continuous-text-image-marquee .ctim-root.ctim-direction-right.ctim-ready .ctim-track {
    animation-name: ctim-scroll-right;
}

.elementor-widget-continuous-text-image-marquee .ctim-root.ctim-pause-hover:hover .ctim-track {
    animation-play-state: paused;
}

@keyframes ctim-scroll-left {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(calc(-1 * var(--ctim-distance)), 0, 0); }
}

@keyframes ctim-scroll-right {
    from { transform: translate3d(calc(-1 * var(--ctim-distance)), 0, 0); }
    to   { transform: translate3d(0, 0, 0); }
}

/*
 * Editing must never hide the content while Elementor rebuilds the widget.
 * We intentionally stop movement in the editor. The live page still scrolls.
 */
body.elementor-editor-active .elementor-widget-continuous-text-image-marquee .ctim-track,
.elementor-edit-area .elementor-widget-continuous-text-image-marquee .ctim-track,
.elementor-editor-preview .elementor-widget-continuous-text-image-marquee .ctim-track {
    animation: none !important;
    transform: translate3d(0, 0, 0) !important;
}

@media (max-width: 767px) {
    .elementor-widget-continuous-text-image-marquee .ctim-root,
    .elementor-widget-continuous-text-image-marquee .ctim-viewport {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .elementor-widget-continuous-text-image-marquee .ctim-track,
    .elementor-widget-continuous-text-image-marquee .ctim-group {
        flex-wrap: nowrap !important;
    }

    .elementor-widget-continuous-text-image-marquee .ctim-item,
    .elementor-widget-continuous-text-image-marquee .ctim-label {
        white-space: nowrap !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .elementor-widget-continuous-text-image-marquee .ctim-root.ctim-ready .ctim-track {
        animation-duration: max(var(--ctim-duration), 45s);
    }
}
