        .rt-large-text {
            display: flex;
            align-items: end;
        }

        /* ── CTA Banner - Scroll-Reveal Animation (borrowed from Blog.css) ── */
        .rt-cta-reveal {
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 0.6s ease, transform 0.6s ease;
        }

            .rt-cta-reveal.rt-cta-visible {
                opacity: 1;
                transform: translateY(0);
            }

        /* ── Service V7 - Image appearance reveal animation ── */
        .rt-service-v7 .rt-imagr-appearance-wrapper .rt-imagr-appearance-layer-one,
        .rt-service-v7 .rt-imagr-appearance-wrapper .rt-imagr-appearance-layer-two {
            transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1);
        }

        .rt-service-v7 .rt-imagr-appearance-wrapper.is-revealed .rt-imagr-appearance-layer-one {
            transform: translate3d(0, -101%, 0) scale3d(1, 1, 1) !important;
        }

        .rt-service-v7 .rt-imagr-appearance-wrapper.is-revealed .rt-imagr-appearance-layer-two {
            transition-delay: 0.15s;
            transform: translate3d(0, -101%, 0) scale3d(1, 1, 1) !important;
        }

        .rt-faq-dropdown-list {
            transition: height 0.35s ease;
        }

        .rt-faq-bar-rotate {
            transition: transform 0.35s ease;
        }

        /* ── Video V3: Scroll-scrub scale animation ── */
        .rt-video-v3 {
            /* Extra height creates scroll distance for the scrub effect */
            height: 200vh;
            position: relative;
        }

            .rt-video-v3 .rt-video-main {
                position: sticky;
                top: 0;
                height: 100vh;
                display: flex;
                align-items: center;
                justify-content: center;
            }

            .rt-video-v3 .rt-video-wrap {
                transform: scale(0.65);
                border-radius: 20px;
                overflow: hidden;
                will-change: transform, border-radius;
                transition: none; /* scrubbed by JS, no CSS transition */
            }

        /* ── HomeTwo exterior panels: hover accordion ── */
        .rt-exterior-text-item {
            transition: flex 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .rt-exterior-overlay-wrapper {
            pointer-events: none;
        }

        .rt-exterior-text-item.is-active .rt-exterior-overlay-wrapper,
        .rt-exterior-text-item.is-active .rt-exterior-overlay-wrapper.rt-one {
            pointer-events: auto;
        }

        .rt-exterior-image-overlay {
            transition: opacity 0.4s ease;
        }

        .rt-exterior-text-item.is-active .rt-exterior-image-overlay {
            opacity: 0.7 !important;
        }

        .rt-top-big-text {
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 0.4s ease 0.1s, transform 0.4s ease 0.1s;
        }

        .rt-exterior-text-item.is-active .rt-top-big-text,
        .rt-exterior-text-item.is-active .rt-top-big-text.two,
        .rt-exterior-text-item.is-active .rt-top-big-text.three,
        .rt-exterior-text-item.is-active .rt-top-big-text.four {
            opacity: 1;
            transform: translateY(0);
        }

        .rt-exterior-text-bottom {
            transition: opacity 0.3s ease;
        }

        .rt-exterior-text-item.is-active .rt-exterior-text-bottom {
            opacity: 0;
        }

        /* ── Background images: layered and crossfade ── */
        .rt-exterior-image-main {
            position: relative;
        }

            .rt-exterior-image-main .rt-image-full-width {
                transition: opacity 0.6s ease;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                object-fit: cover;
            }
                /* First image sets the container height */
                .rt-exterior-image-main .rt-image-full-width:first-child {
                    position: relative;
                }

        /* ── Guidi V2: hover transitions for borrowed section ── */
        .rt-guidi-v2-icon-inner {
            transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .rt-guidi-v2-icon-main {
            transition: filter 0.3s ease;
        }

        .rt-guidi-v2-image-1,
        .rt-guidi-v2-image-2,
        .rt-guidi-v2-image-3,
        .rt-guidi-v2-image-4,
        .rt-guidi-v2-image-5 {
            transition: opacity 0.5s ease;
        }

        .rt-text-style-h6.rt-guidi-v2-1,
        .rt-text-style-h6.rt-guidi-v2-2,
        .rt-text-style-h6.rt-guidi-v2-3,
        .rt-text-style-h6.rt-guidi-v2-4,
        .rt-text-style-h6.rt-guidi-v2-5,
        .rt-guidi-v2-item .rt-text-style-h6.rt-small-heading-gap {
            transition: color 0.3s ease;
        }

        .rt-guidi-v2-inner-left {
            max-width: unset;
        }

        /* Remove curve and fix image stretching */
        .rt-guidi-v2-right {
            border-radius: 0 !important;
        }

        .rt-guidi-v2-image-1,
        .rt-guidi-v2-image-2,
        .rt-guidi-v2-image-3,
        .rt-guidi-v2-image-4,
        .rt-guidi-v2-image-5 {
            object-fit: contain !important;
        }

        /* 5th image - same positioning as images 2/3/4 */
        .rt-guidi-v2-image-5 {
            opacity: 0;
            width: 100%;
            height: 100%;
            position: absolute;
            inset: 0%;
        }

        .rt-guidi-v2-icon-inner.rt-5 {
            perspective-origin: 50%;
            transform-origin: 50%;
            transform: scale(0);
        }
        .rt-work-together{
            padding: 7.5rem  0px;
        }

        /* ── Fix 0: Match banner height to Moxa52 product pages ── */
        /* .rt-inner-hero {
            padding-bottom: 17rem;
        } */

        /* ── Fix 1: Banner description padding on smaller screens ── */
        @media screen and (max-width: 767px) {
            .rt-p-tag-color-white {
                width: 90%;
                padding-left: 1rem;
                padding-right: 1rem;
            }

            .rt-inner-hero-content.rt-text-center-desktop {
                padding-left: 1rem;
                padding-right: 1rem;
            }
        }

        @media screen and (max-width: 479px) {
            .rt-p-tag-color-white {
                width: 100%;
                padding-left: 0.75rem;
                padding-right: 0.75rem;
            }

            .rt-inner-hero-content.rt-text-center-desktop {
                padding-left: 0.5rem;
                padding-right: 0.5rem;
            }
        }

        /* ── Fix 2: Usecase feature columns side-by-side on medium & small ── */
        @media screen and (max-width: 991px) {
            .kit-usecase-layout {
                grid-template-columns: 1fr 1fr !important;
                gap: 20px 30px;
            }

            .kit-center-image {
                grid-column: 1 / -1;
            }

            .kit-feature-col.kit-left,
            .kit-feature-col.kit-right {
                padding: 0 10px;
            }
        }

        @media screen and (max-width: 575px) {
            .kit-usecase-layout {
                gap: 16px 16px;
            }
        }

        @media screen and (max-width: 479px) {
            .kit-usecase-layout {
                gap: 14px 10px;
            }

            .kit-feature-text strong {
                font-size: 0.78rem;
            }
        }

        /* ── Fix 3: Normalize spec card images + fix card text spacing on small screens ── */
        @media screen and (max-width: 767px) {
            .about-one-service-card .rt-width-height-full-mobile-l {
                width: auto;
                height: auto;
                max-width: 40%;
                flex-shrink: 0;
            }

            .rt-service-v4-card-image,
            .rt-service-v4-card-image.rt-active.rt-auto-fit {
                width: 100%;
                max-width: 10rem;
                height: auto;
            }

            .about-one-service-card .rt-service-v4-card-text {
                flex: 1;
                min-width: 0;
                padding-left: 0;
            }

            .rt-service-v4-card-text ul {
                padding-left: 18px;
            }
        }

        @media screen and (max-width: 479px) {
            .about-one-service-card .rt-width-height-full-mobile-l {
                max-width: 100%;
                max-height: 200px;
                overflow: hidden;
            }

            .rt-service-v4-card-image,
            .rt-service-v4-card-image.rt-active.rt-auto-fit {
                max-width: 100%;
            }

            .about-one-service-card .rt-service-v4-card-text {
                padding-left: 0;
            }
        }
        /* ══════════════════════════════════════════════════════════════
           Kits video-v4 — play/pause pond ripple (borrowed from Kiosks)
           Ripples live INSIDE the button so they're centered on the
           actual button (not the flex wrapper), and pulse continuously
           regardless of play/pause state.
           ══════════════════════════════════════════════════════════════ */
        .kbv-play-wrap {
            pointer-events: auto;
        }

        .kbv-play-btn {
            position: relative;
            overflow: visible;
            cursor: pointer;
        }

        .kbv-play-btn .rt-video-v4-icon-wrapper {
            position: relative;
            z-index: 2;
        }

        .kbv-ripple {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 70px;
            height: 70px;
            border-radius: 50%;
            background: radial-gradient(circle,
                rgba(255, 255, 255, 0)      28%,
                rgba(255, 255, 255, 0.10)   42%,
                rgba(255, 255, 255, 0.28)   56%,
                rgba(255, 255, 255, 0.42)   68%,
                rgba(255, 255, 255, 0.28)   80%,
                rgba(255, 255, 255, 0.10)   92%,
                rgba(255, 255, 255, 0)     100%);
            box-shadow: 0 0 34px rgba(255, 255, 255, 0.22);
            filter: blur(1.2px);
            opacity: 0;
            pointer-events: none;
            transform: translate(-50%, -50%) scale(0.5);
            animation: kbvPondRipple 5.4s cubic-bezier(0.15, 0.55, 0.35, 1) infinite;
            z-index: 1;
        }

        .kbv-ripple-1 { animation-delay: 0s; }
        .kbv-ripple-2 { animation-delay: 1.8s; }
        .kbv-ripple-3 { animation-delay: 3.6s; }

        @keyframes kbvPondRipple {
            0%   { transform: translate(-50%, -50%) scale(0.5);  opacity: 0; }
            10%  { opacity: 0.95; }
            35%  { opacity: 0.75; }
            75%  { opacity: 0.35; }
            100% { transform: translate(-50%, -50%) scale(2.9);  opacity: 0; }
        }

        /* ── Section rhythm: give the video-v4 block breathing room
             so it doesn't butt up against the sections above/below. ── */
        .rt-video-v4 {
            padding-top: var(--_padding---section-gap-image, 7.5rem);
            margin-top: 3.75rem;
            margin-bottom: 3.75rem;
        }

        @media (max-width: 991px) {
            .rt-video-v4 {
                padding-top: 5rem;
                margin-top: 2.5rem;
                margin-bottom: 2.5rem;
            }
        }

        @media (max-width: 767px) {
            .rt-video-v4 {
                padding-top: 3.5rem;
                margin-top: 1.5rem;
                margin-bottom: 1.5rem;
            }
        }
