html,
body {
    overflow-x: clip;
}

.gsap-banner-title h1,
.gsap-banner-title { overflow: hidden; }

.gsap-banner-line {
    display: block;
    overflow: hidden; /* the actual mask */
}

@supports not (overflow: clip) {
    html,
    body {
        overflow-x: hidden;
    }
}

.gsap-image-reveal {
    overflow: hidden;
}

.gsap-image-reveal img {
    display: block;
    width: 100%;
}

.gsap-text-reveal {
    overflow: hidden;
}

.gsap-horizontal-scroll {
    overflow: hidden;
    width: 100%;
}

.gsap-horizontal-track {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
}

.gsap-horizontal-panel {
    flex: 0 0 100vw;
    max-width: 100vw;
}

/*
 * ============================================================
 * BANNER TITLE REVEAL
 * ============================================================
 */

.gsap-banner-title {
    overflow: hidden;
}


/*
 * Each visual line.
 */

.gsap-banner-line {
    display: block;
    overflow: hidden;
}


/*
 * Individual words.
 */

.gsap-banner-word {
    display: inline-block;
}


/*
 * Prevent the heading from creating unwanted
 * horizontal overflow.
 */

.gsap-banner-title .elementor-heading-title {
    overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
    .gsap-horizontal-scroll {
        overflow: visible;
    }

    .gsap-horizontal-track {
        display: block;
        width: 100%;
    }

    .gsap-horizontal-panel {
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 767px) {
    .gsap-horizontal-scroll {
        overflow: visible;
    }

    .gsap-horizontal-track {
        display: block;
        width: 100%;
    }

    .gsap-horizontal-panel {
        width: 100%;
        max-width: 100%;
    }
}