:root {
        /* Primary Brand Colors */
        --primary-blue: #0695D6;
        --primary-cyan: #02B6BE;

        /* Dark Backgrounds */
        --navy: #0A1628;
        --navy2: #152238;
        --navy-accent: #1E3A5F;

        /* Light Backgrounds */
        --light-bg: #F8FEFF;
        --light-secondary: #FFFFFF;
        --light-accent: #E8F8FA;

        /* Legacy Support (mapped to new colors) */
        --teal: #0695D6;
        --teal2: #02B6BE;
        --gold: #f0b429;
        --white: #ffffff;
        --off: #F8FEFF;

        /* Text Colors */
        --text: #1A2332;
        --text-medium: #5A6C7D;
        --text-light: #8B9CAF;
        --text-white: #FFFFFF;

        /* Legacy Text (mapped) */
        --muted: #5A6C7D;

        /* Neutrals */
        --gray-100: #F5F7F9;
        --gray-200: #E1E8ED;
        --gray-300: #C5D0DB;
        --gray-400: #A0ADB8;
        --gray-500: #7B8A9A;
        --gray-600: #5A6C7D;

        /* Interactive States */
        --hover: #0880BE;
        --active: #0665A8;
        --focus: rgba(2, 182, 190, 0.4);

        /* Borders */
        --border: rgba(255, 255, 255, 0.08);
        --border-light: #E1E8ED;
        --border-dark: #1E3A5F;
    }

    /* ── Page Loader ──────────────────────────────────────── */
    html.loader-active,
    body.loader-active {
        overflow: hidden !important;
        height: 100% !important;
        width: 100% !important;
    }

    .page-loader {
        position: fixed;
        inset: 0;
        background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
        z-index: 99999;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: opacity 0.4s ease, visibility 0.4s ease;
        overflow: hidden;
    }

    .page-loader::before {
        content: '';
        position: absolute;
        inset: 0;
        background-image:
            linear-gradient(90deg, rgba(0, 180, 180, .02) 1px, transparent 1px),
            linear-gradient(0deg, rgba(0, 180, 180, .02) 1px, transparent 1px);
        background-size: 50px 50px;
        animation: grid-float 20s ease-in-out infinite;
        opacity: 0.5;
    }

    @keyframes grid-float {
        0%, 100% { opacity: 0.3; }
        50% { opacity: 0.6; }
    }

    .page-loader.loaded {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    /* Loader Animation Container */
    .loader-animation {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        animation: fade-in 0.4s ease-out;
    }

    @keyframes fade-in {
        from {
            opacity: 0;
            transform: scale(0.9);
        }
        to {
            opacity: 1;
            transform: scale(1);
        }
    }

    /* Logo */
    .loader-logo {
        position: relative;
        z-index: 2;
        animation: pulse-logo 2s ease-in-out infinite;
    }

    .loader-logo img {
        width: 80px;
        height: 80px;
        object-fit: contain;
        filter: drop-shadow(0 4px 12px rgba(0, 180, 180, 0.2));
    }

    @keyframes pulse-logo {
        0%, 100% {
            transform: scale(1);
        }
        50% {
            transform: scale(1.05);
        }
    }

    /* Spinning Ring */
    .loader-spinner-ring {
        position: absolute;
        width: 120px;
        height: 120px;
        border: 3px solid transparent;
        border-top-color: var(--primary-blue);
        border-right-color: var(--primary-blue);
        border-radius: 50%;
        animation: spin-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
        z-index: 1;
    }

    .loader-spinner-ring::before {
        content: '';
        position: absolute;
        inset: -3px;
        border: 3px solid transparent;
        border-bottom-color: rgba(0, 180, 180, 0.3);
        border-left-color: rgba(0, 180, 180, 0.3);
        border-radius: 50%;
        animation: spin-ring-reverse 1.5s cubic-bezier(0.5, 0, 0.5, 1) infinite;
    }

    @keyframes spin-ring {
        0% {
            transform: rotate(0deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }

    @keyframes spin-ring-reverse {
        0% {
            transform: rotate(0deg);
        }
        100% {
            transform: rotate(-360deg);
        }
    }

    /* Mobile optimization */
    @media (max-width: 768px) {
        .loader-logo img {
            width: 60px;
            height: 60px;
        }

        .loader-spinner-ring {
            width: 100px;
            height: 100px;
        }
    }

    * {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
    }

    html {
        scroll-behavior: auto;
        font-size: 18px;
    }

[dir="rtl"] ul {
    direction: rtl;
    text-align: right;
    padding-right: 1.25rem; /* أو حسب تصميمك */
    padding-left: 0;
    margin-right: 0;
}

[dir="rtl"] ul li {
    text-align: right;
    direction: rtl;
    margin-right: 1rem;
    margin-left: 0;
}

[dir="rtl"] ul li::marker {
    text-align: right;
}


    html,
    body {
        font-family: Calibri, sans-serif;
        color: var(--text);
        background: #fff;
        overflow-x: hidden;
        max-width: 100%;
    }

    h1,
    h2,
    h3,
    h4,
    h5 {
        font-family: Calibri, sans-serif;
    }

    .material-symbols-outlined {
        font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
    }

    .btn-teal {
        background: linear-gradient(135deg, var(--primary-blue) 0%, var(--primary-cyan) 100%);
        color: #fff;
        font-family: Calibri, sans-serif;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        border-radius: 15px;
        cursor: pointer;
        transition: opacity .25s, transform .2s;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        text-decoration: none;
        border: none;
        padding: 20px;
    }

    .btn-teal:hover {
        opacity: .88;
        transform: translateY(-2px);
    }

    .btn-outline {
        color: var(--primary-blue);
        font-family: Calibri, sans-serif;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        border-radius: 24px;
        cursor: pointer;
        transition: background .2s, color .2s;
        background: transparent;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        text-decoration: none;
    }

    .btn-outline:hover {
        background: var(--primary-blue);
        color: #fff;
    }

    @keyframes fadeUp {
        from {
            opacity: 0;
            transform: translateY(40px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    .reveal {
        opacity: 0;
        transform: translateY(40px);
        transition: opacity .7s ease, transform .7s ease;
    }

    .reveal.visible {
        opacity: 1;
        transform: translateY(0);
    }

    .sub-label {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: .72rem;
        font-weight: 700;
        letter-spacing: .2em;
        text-transform: uppercase;
        color: var(--primary-blue);
        margin-bottom: 12px;
    }

    .sub-label::before {
        content: '';
        width: 28px;
        height: 2px;
        background: var(--primary-blue);
    }

    /* ── HERO ─────────────────────────────────────────── */
    #hero {
        position: relative;
        height: 100vh;
        min-height: 840px;
        overflow: hidden;
        padding: 10px;
    }

    .slide {
        position: absolute;
        inset: 0;
        opacity: 0;
        transition: opacity 1.2s ease;
        z-index: 1;
    }

    .slide.active {
        opacity: 1;
        z-index: 2;
    }

    .slide img,
    .slide video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .slide-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgba(10, 22, 40, .82) 0%, rgba(10, 22, 40, .45) 60%, transparent 100%);
    }

    .hero-dot {
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: rgba(255, 255, 255, .35);
        cursor: pointer;
        transition: background .3s, width .3s;
        border: none;
    }

    .hero-dot.active {
        background: var(--primary-cyan);
        width: 28px;
        border-radius: 5px;
    }

    /* ── PROGRESS BAR ─────────────────────────────────── */
    #progress-bar {
        position: fixed;
        top: 70px;
        left: 0;
        height: 2px;
        background: linear-gradient(90deg, var(--primary-blue), var(--primary-cyan));
        width: 0;
        transition: width 5s linear, opacity 0.3s ease;
        z-index: 299;
    }

    #progress-bar.hidden {
        opacity: 0;
        pointer-events: none;
    }

    /* ── PARTICLES ────────────────────────────────────── */
    @keyframes float-p {
        0% {
            transform: translateY(0) rotate(0);
            opacity: .5;
        }

        100% {
            transform: translateY(-110vh) rotate(720deg);
            opacity: 0;
        }
    }

    .particle {
        position: absolute;
        border-radius: 50%;
        background: rgba(6, 149, 214, .12);
        animation: float-p linear infinite;
        pointer-events: none;
    }

    /* ── HERO ANIMATIONS ──────────────────────────────── */
    @keyframes heroIn {
        from {
            opacity: 0;
            transform: translateY(32px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    .hero-anim {
        opacity: 0;
    }

    .hero-anim:nth-child(1) {
        animation: heroIn .8s .3s ease forwards;
    }

    .hero-anim:nth-child(2) {
        animation: heroIn .8s .55s ease forwards;
    }

    .hero-anim:nth-child(3) {
        animation: heroIn .8s .8s ease forwards;
    }

    .hero-anim:nth-child(4) {
        animation: heroIn .8s 1s ease forwards;
    }

    .hl {
        color: var(--primary-blue);
    }

    /* ── TABS ─────────────────────────────────────────── */
    .tab-btn {
        padding: 14px 20px;
        font-size: .75rem;
        font-weight: 700;
        letter-spacing: .12em;
        text-transform: uppercase;
        border: none;
        background: transparent;
        cursor: pointer;
        color: rgb(0 174 174);
        border-bottom: 2px solid transparent;
        transition: color .2s, border-color .2s;
        display: flex;
        align-items: center;
        gap: 6px;
        white-space: nowrap;
        flex: 0 1 auto;
        font-family: Calibri, sans-serif;
    }

    .tab-btn.active {
        color: #363434;
        border-bottom-color: var(--primary-blue);
    }

    .tab-panel {
        display: none;
    }

    .tab-panel.active {
        display: block;
    }

    /* ── SERVICE CARDS ────────────────────────────────── */
    .serv-card {
        background: #fff;
        border: 1px solid #e8edf5;
        border-radius: 16px;
        padding: 28px 24px;
        transition: transform .35s, box-shadow .35s;
        cursor: pointer;
    }

    .serv-card:hover {
        transform: translateY(-8px);
        box-shadow: 0 20px 50px rgba(6, 149, 214, .12);
    }

    .serv-icon {
        width: 56px;
        height: 56px;
        border-radius: 14px;
        background: linear-gradient(135deg, var(--primary-blue), var(--primary-cyan));
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 16px;
        box-shadow: 0 8px 20px rgba(6, 149, 214, .3);
    }

    .step-card {
        position: relative;
        overflow: hidden;
        border-radius: 16px;
    }

    .step-card::before {
        content: attr(data-step);
        position: absolute;
        right: -10px;
        bottom: -20px;
        font-size: 9rem;
        font-weight: 900;
        font-family: 'Syne', sans-serif;
        color: rgba(6, 149, 214, .07);
        line-height: 1;
        pointer-events: none;
    }

    .stars {
        color: var(--gold);
        font-size: 1.1rem;
        letter-spacing: 2px;
    }

    .industry-tag {
        display: inline-block;
        padding: 6px 14px;
        border: 1px solid rgba(6, 149, 214, .3);
        border-radius: 50px;
        font-size: .72rem;
        font-weight: 600;
        color: var(--primary-blue);
        letter-spacing: .08em;
        text-transform: uppercase;
        margin: 4px;
        transition: background .2s, color .2s;
        cursor: default;
    }

    .industry-tag:hover {
        background: var(--primary-blue);
        color: #fff;
    }

    .loyalty-bg {
        background: linear-gradient(135deg, var(--navy) 0%, var(--navy-accent) 100%);
    }

    /* ── GLOBE ────────────────────────────────────────── */
    @keyframes spin-globe {
        from {
            transform: rotateY(0);
        }

        to {
            transform: rotateY(360deg);
        }
    }

    .globe-scene {
        perspective: 1000px;
        width: 320px;
        height: 320px;
        flex-shrink: 0;
    }

    .globe-ball {
        width: 100%;
        height: 100%;
        border-radius: 50%;
        background:
            radial-gradient(circle at 33% 33%, rgba(6, 149, 214, .35) 0%, transparent 55%),
            conic-gradient(from 0deg, var(--navy) 0%, #0665A8 25%, var(--primary-blue) 50%, var(--primary-cyan) 75%, var(--navy) 100%);
        box-shadow: inset -28px -28px 60px rgba(0, 0, 0, .55), inset 18px 18px 40px rgba(6, 149, 214, .25), 0 0 80px rgba(6, 149, 214, .15);
        animation: spin-globe 22s linear infinite;
        position: relative;
        overflow: hidden;
    }

    .globe-ball::before {
        content: '';
        position: absolute;
        inset: 0;
        border-radius: 50%;
        background:
            repeating-linear-gradient(0deg, transparent, transparent 26px, rgba(6, 149, 214, .1) 26px, rgba(6, 149, 214, .1) 27px),
            repeating-linear-gradient(90deg, transparent, transparent 26px, rgba(6, 149, 214, .1) 26px, rgba(6, 149, 214, .1) 27px);
    }

    .globe-ball::after {
        content: '';
        position: absolute;
        inset: 0;
        border-radius: 50%;
        background: radial-gradient(circle at 28% 28%, rgba(255, 255, 255, .12) 0%, transparent 50%);
    }

    .globe-ring {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) rotateX(72deg);
        border-radius: 50%;
        border: 1.5px solid rgba(6, 149, 214, .25);
    }

    @keyframes ping-dot {

        0%,
        100% {
            opacity: 1;
            transform: scale(1);
        }

        50% {
            opacity: .4;
            transform: scale(1.8);
        }
    }

    .gdot {
        position: absolute;
        border-radius: 50%;
        animation: ping-dot 2.2s ease-in-out infinite;
    }

    /* ── FORM ─────────────────────────────────────────── */
    .form-field {
        width: 100%;
        border-radius: 8px;
        padding: 14px 18px;
        font-size: .9rem;
        font-family: Calibri, sans-serif;
        transition: border-color .2s;
        outline: none;
        border: 1px solid rgba(60, 80, 76, .18);
        background: #fff;
        color: var(--text);
    }

    .form-field::placeholder {
        color: var(--primary-blue);
    }

    .form-field:focus {
        border-color: var(--primary-blue);
    }

    /* ── FLOATING CTA ─────────────────────────────────── */
    #float-cta {
        position: fixed;
        right: 24px;
        bottom: 24px;
        z-index: 150;
        background: linear-gradient(135deg, var(--primary-blue), var(--primary-cyan));
        color: #fff;
        font-family: Calibri, sans-serif;
        font-size: .65rem;
        font-weight: 700;
        letter-spacing: .1em;
        text-transform: uppercase;
        border-radius: 50px;
        padding: 14px 20px;
        display: none !important;
        align-items: center;
        gap: 8px;
        box-shadow: 0 8px 30px rgba(6, 149, 214, .4);
        cursor: pointer;
        transition: transform .3s, box-shadow .3s;
        text-decoration: none;
    }

    #float-cta:hover {
        transform: translateY(-4px);
        box-shadow: 0 16px 40px rgba(6, 149, 214, .5);
    }

/* ── WHATSAPP FLOAT ───────────────────────────────── */
#whatsapp-float {
    position: fixed !important;
    right: 24px !important;
    bottom: 25px !important;
    z-index: 140 !important;
    width: 58px !important;
    height: 58px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(120deg, var(--primary-blue) 0%, var(--primary-cyan) 100%) !important;
    border-radius: 16px !important;
    box-shadow: 0 2px 8px var(--primary-blue), 0 8px 24px var(--primary-blue) !important;
    transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    text-decoration: none !important;
    color: #fff !important;
    overflow: hidden !important;
    padding: 0 !important;
    justify-content: flex-start !important;
}

#whatsapp-float:hover,
#whatsapp-float.whatsapp-auto-expand {
    width: 200px !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 4px 12px rgba(37, 193, 211, 0.3), 0 12px 32px rgba(31, 141, 175, 0.25) !important;
    padding: 0 18px !important;
}

#whatsapp-float:active {
    transform: translateY(-1px) !important;
}

#whatsapp-float .whatsapp-icon {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    transition: transform 0.3s ease !important;
    position: relative !important;
    z-index: 2 !important;
    margin: 0 auto !important;
}

#whatsapp-float:hover .whatsapp-icon,
#whatsapp-float.whatsapp-auto-expand .whatsapp-icon {
    transform: scale(1.1) !important;
    margin: 0 10px 0 0 !important;
}

/* label text — hidden until expanded */
.whatsapp-label {
    white-space: nowrap !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    opacity: 0 !important;
    max-width: 0 !important;
    overflow: hidden !important;
    transition: opacity 0.25s ease 0.1s !important;
    position: relative !important;
    z-index: 2 !important;
}

#whatsapp-float:hover .whatsapp-label,
#whatsapp-float.whatsapp-auto-expand .whatsapp-label {
    opacity: 1 !important;
    max-width: 160px !important;
}

/* ripple rings */
.whatsapp-ripple {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 16px;
    background: linear-gradient(120deg, var(--primary-blue) 0%, var(--primary-cyan) 100%) !important;
    z-index: 1;
    pointer-events: none;
    animation: whatsapp-pulse 2.2s ease-out infinite;
}

.whatsapp-ripple-delay {
    animation-delay: 1.1s;
}

@keyframes whatsapp-pulse {
    0% {
        transform: scale(1);
        opacity: 0.6;
    }
    100% {
        transform: scale(1.7);
        opacity: 0;
    }
}

#whatsapp-float:hover .whatsapp-ripple,
#whatsapp-float.whatsapp-auto-expand .whatsapp-ripple {
    animation-play-state: paused;
    opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
    .whatsapp-ripple {
        animation: none;
        display: none;
    }
}

    /* ── SCROLL TO TOP ────────────────────────────────── */
    .scroll-top-btn {
        position: fixed;
        left: 50%;
        transform: translateX(-50%) translateY(10px);
        bottom: 25px;
        width: 52px;
        height: 52px;
        border-radius: 50%;
        border: none;
        background: linear-gradient(120deg, var(--primary-blue) 0%, var(--primary-cyan) 100%) !important;
        color: #fff;
        font-size: 18px;
        cursor: pointer;
        opacity: 0;
        visibility: hidden;
        transition: 0.3s ease;
        z-index: 9999;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .scroll-top-btn.show {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .scroll-top-btn:hover {
        background: #333;
    }

    .counter {
        font-variant-numeric: tabular-nums;
    }

    /* ── PAGE HERO ────────────────────────────────────── */
    .page-hero {
        position: relative;
        height: 55vh;
        min-height: 420px;
        overflow: hidden;
        display: flex;
        align-items: flex-end;
    }

    .page-hero img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .page-hero-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(to bottom, rgba(45, 151, 156, 0.35) 0%, rgba(45, 151, 156, 0.25) 50%, rgba(45, 151, 156, 0.65) 100%);
    }

    .page-hero-content {
        position: relative;
        z-index: 2;
        padding: 60px 48px;
        max-width: 1400px;
        margin: 0 auto;
        width: 100%;
    }

    .breadcrumb {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: .72rem;
        font-weight: 700;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, .5);
        margin-bottom: 16px;
    }

    .breadcrumb a {
        color: rgba(255, 255, 255, .5);
        text-decoration: none;
        transition: color .2s;
    }

    .breadcrumb a:hover {
        color: var(--primary-blue);
    }

    .breadcrumb span {
        color: var(--primary-blue);
    }

    /* ── SERVICE NAV ──────────────────────────────────── */
    .service-nav {
        background: #fff;
        border: 1px solid #e8edf5;
        border-radius: 16px;
        overflow: hidden;
        position: sticky;
        top: 90px;
    }

    .service-nav-item {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 14px 20px;
        color: var(--muted);
        font-size: .8rem;
        font-weight: 600;
        letter-spacing: .06em;
        text-decoration: none;
        border-bottom: 1px solid #f0f3f7;
        transition: background .2s, color .2s;
    }

    .service-nav-item:last-child {
        border-bottom: none;
    }

    .service-nav-item:hover,
    .service-nav-item.active {
        background: linear-gradient(135deg, rgba(0, 180, 180, .08), rgba(0, 180, 180, .04));
        color: var(--primary-blue);
    }

    .service-nav-item.active {
        font-weight: 700;
        border-left: 3px solid var(--primary-blue);
    }

    .feature-item {
        display: flex;
        align-items: flex-start;
        gap: 14px;
        padding: 16px;
        border: 1px solid #e8edf5;
        border-radius: 12px;
        transition: border-color .2s;
    }

    .feature-item:hover {
        border-color: rgba(0, 180, 180, .3);
    }

    /* ── MARQUEE ──────────────────────────────────────── */
    .marquee-section {
        position: relative;
        padding: 120px 0;
        overflow: hidden;
        margin: -70px -48px;
    }

    .marquee-row {
        width: 100%;
        overflow: hidden;
    }

    .marquee-top {
        position: relative;
        z-index: 1;
        background: #12b8c4;
        padding: 26px 0;
    }

    .marquee-bottom {
        position: absolute;
        left: 0;
        top: 65%;
        width: 100%;
        z-index: 2;
        background: #000;
        padding: 26px 0;
        transform: rotate(-3deg) translateY(-25%);
        transform-origin: center;
    }

    .marquee-track {
        display: flex;
        width: max-content;
        animation: marquee-left linear infinite;
        will-change: transform;
    }

    .marquee-track.reverse {
        animation: marquee-right linear infinite;
    }

    .marquee-group {
        display: flex;
        align-items: center;
        flex-shrink: 0;
    }

    .marquee-text {
        white-space: nowrap;
        font-size: 40px;
        line-height: 1;
        font-weight: 500;
    }

    .marquee-text.light,
    .marquee-text.dark {
        color: #fff;
    }

    .marquee-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin: 0 34px;
        font-size: 48px;
        line-height: 1;
        color: #000;
        flex-shrink: 0;
    }

    .marquee-icon.teal {
        color: #00c4d6;
    }

    @keyframes marquee-left {
        from {
            transform: translateX(0);
        }

        to {
            transform: translateX(-50%);
        }
    }

    @keyframes marquee-right {
        from {
            transform: translateX(-50%);
        }

        to {
            transform: translateX(0);
        }
    }

    .marquee-l .track {
        animation: marquee-l linear infinite;
        display: flex;
        white-space: nowrap;
    }

    .marquee-r .track {
        animation: marquee-r linear infinite;
        display: flex;
        white-space: nowrap;
    }

    @keyframes marquee-l {
        from {
            transform: translateX(0);
        }

        to {
            transform: translateX(-50%);
        }
    }

    @keyframes marquee-r {
        from {
            transform: translateX(-50%);
        }

        to {
            transform: translateX(0);
        }
    }


    /* ════════════════════════════════════════════════════
       RESPONSIVE BREAKPOINTS
    ════════════════════════════════════════════════════ */

    /* Progress bar top offset */
    @media (max-width: 1023px) {
        #progress-bar {
            top: 65px;
        }
    }

    @media (max-width: 639px) {
        #progress-bar {
            top: 60px;
        }
    }

    @media (max-width: 479px) {
        #progress-bar {
            top: 56px;
        }
    }

    @media (max-width: 359px) {
        #progress-bar {
            top: 54px;
        }
    }

    /* Hero tabs */
    @media (max-width: 1023px) {
        .hero-desc {
            margin-bottom: 80px !important;
        }

        .hero-tabs-box {
            max-width: 100% !important;
            margin-top: -68px !important;
        }
    }

    /* ── 1399px ───────────────────────────────────────── */
    @media (min-width: 1921px) {
        section[style*="padding:100px"] {
            padding: 120px 80px !important;
        }
    }

    @media (max-width: 1399px) {
        section[style*="padding:100px"] {
            padding: 90px 48px !important;
        }

        .globe-scene {
            width: 280px !important;
            height: 280px !important;
        }
    }

    /* ── 1023px ───────────────────────────────────────── */
    @media (max-width: 1023px) {
        #hero {
            min-height: 55vh !important;
            min-height: 480px !important;
        }

        .globe-scene {
            width: 240px !important;
            height: 240px !important;
        }

        .globe-ring {
            width: 280px !important;
            height: 280px !important;
        }

        .breadcrumb section[style*="padding:100px"] {
            padding: 80px 32px !important;
        }

        section[style*="grid-template-columns:1fr 1fr"] {
            grid-template-columns: 1fr !important;
            gap: 48px !important;
        }

        .marquee-l .track,
        .marquee-r .track {
            font-size: .95rem !important;
        }

        footer>div:first-of-type>div {
            grid-template-columns: 1fr !important;
            gap: 40px !important;
            padding: 40px 32px !important;
        }

        section.loyalty-bg>div[style*="grid-template-columns:1fr 1fr"],
        section[style*="background:var(--navy)"]>div[style*="grid-template-columns:1fr 1fr"] {
            grid-template-columns: 1fr !important;
            gap: 48px !important;
        }

        section.loyalty-bg div[style*="display:grid;grid-template-columns:1fr 1fr;gap:20px"],
        section[style*="background:var(--navy)"] div[style*="display:grid;grid-template-columns:1fr 1fr;gap:14px"] {
            grid-template-columns: 1fr !important;
            gap: 16px !important;
        }

        section.loyalty-bg div[style*="grid-column:span 2"] {
            grid-column: 1 / -1 !important;
            width: 100% !important;
        }

        section[style*="display:grid"] [style*="grid-template-columns:repeat"] {
            grid-template-columns: repeat(2, 1fr) !important;
            gap: 18px !important;
        }

        section[style*="padding:100px 48px;background:#fff;max-width:1400px"]>div[style*="grid-template-columns:1fr 1fr"] {
            grid-template-columns: 1fr !important;
            gap: 48px !important;
        }

        section[style*="padding:100px 48px;background:#fff"]>div>div[style*="position:relative"] div[style*="min-height:380px"] {
            min-height: 300px !important;
        }

        section[style*="padding:100px 48px;background:#fff"] div[style*="position:absolute;top:-20px;right:-20px"] {
            position: static !important;
            margin-top: 20px !important;
        }
    }

    /* ── 767px ────────────────────────────────────────── */
    @media (max-width: 767px) {
        #hero {
            min-height: 50vh !important;
            min-height: 420px !important;
            padding-top: 80px !important;
        }

        #hero>div {
            padding: 0px 16px 3px !important;
        }

        .stats-right {
            display: inline-flex;
        }

        .hero-content {
            max-width: 100% !important;
        }

        .hero-desc {
            margin-bottom: 56px !important;
            font-size: .95rem !important;
            max-width: 100% !important;
        }

        .hero-tabs-box {
            max-width: 100% !important;
            margin-top: -44px !important;
        }

        section[style*="grid-template-columns:1fr 1fr"] {
            grid-template-columns: 1fr !important;
            gap: 36px !important;
        }

        .marquee-l .track,
        .marquee-r .track {
            font-size: .9rem !important;
        }

        .serv-card {
            padding: 20px !important;
        }

        .hero-anim {
            max-width: 100% !important;
        }

        .sub-label {
            font-size: .68rem !important;
        }

        .industry-tag {
            padding: 5px 12px !important;
            font-size: .68rem !important;
        }

        .btn-teal,
        .btn-outline {
            font-size: .70rem !important;
            padding: 11px 16px !important;
        }

        .form-field {
            padding: 12px 14px !important;
            font-size: .88rem !important;
            width: 100% !important;
        }

        section[style*="padding:100px"] {
            padding: 70px 20px !important;
        }

        /* WhatsApp — same size & position as scroll button */
        #whatsapp-float {
            width: 52px !important;
            height: 52px !important;
            right: 20px !important;
            bottom: 25px !important;
            border-radius: 14px !important;
        }

        #whatsapp-float .whatsapp-icon {
            width: 26px !important;
            height: 26px !important;
        }

        /* Scroll button — left side */
        .scroll-top-btn {
            left: 20px !important;
            bottom: 25px !important;
            transform: translateY(10px) !important;
        }

        .scroll-top-btn.show {
            transform: translateY(0) !important;
        }

        .tab-btn {
            padding: 12px 14px !important;
            font-size: .68rem !important;
            min-width: fit-content;
        }

        footer>div:first-of-type>div {
            grid-template-columns: 1fr !important;
            gap: 32px !important;
            padding: 32px 20px !important;
        }

        footer>div:first-of-type>div>div:nth-child(2) {
            grid-template-columns: 1fr !important;
        }

        footer>div:nth-of-type(2) {
            grid-template-columns: 1fr !important;
            gap: 32px !important;
            padding: 40px 20px !important;
        }

        footer>div:nth-of-type(2)>div {
            margin-bottom: 8px;
        }

        footer>div:last-of-type {
            flex-direction: column;
            gap: 16px;
        }

        footer>div:last-of-type a {
            text-align: center;
        }

        section.loyalty-bg {
            padding: 70px 20px !important;
        }

        section.loyalty-bg>div {
            grid-template-columns: 1fr !important;
            gap: 32px !important;
        }

        section.loyalty-bg>div>div:nth-child(2) {
            grid-template-columns: 1fr !important;
            gap: 14px !important;
        }

        section.loyalty-bg div[style*="font-size:2.8rem"] {
            font-size: 1.8rem !important;
        }

        section.loyalty-bg div[style*="padding:28px"] {
            padding: 20px !important;
        }

        section.loyalty-bg h2 {
            font-size: clamp(1.4rem, 5vw, 2.4rem) !important;
        }

        section[style*="background:var(--navy)"] {
            padding: 70px 20px !important;
        }

        section[style*="background:var(--navy)"]>div {
            gap: 32px !important;
        }

        section[style*="background:var(--navy)"]>div[style*="grid-template-columns:1fr 1fr"] {
            grid-template-columns: 1fr !important;
        }

        section[style*="background:var(--navy)"] div[style*="display:grid;grid-template-columns:1fr 1fr;gap:14px"] {
            grid-template-columns: 1fr !important;
            gap: 10px !important;
        }

        section[style*="background:var(--navy)"] div[style*="border-radius:20px"] {
            border-radius: 16px !important;
            padding: 24px !important;
        }

        section[style*="background:var(--navy)"] textarea.form-field {
            height: 100px !important;
            margin-bottom: 14px !important;
        }

        section[style*="background:var(--navy)"] div[style*="margin-top:24px;padding-top:20px"] {
            margin-top: 16px !important;
            padding-top: 16px !important;
        }

        section[style*="background:var(--navy)"] div[style*="display:flex;gap:12px"] {
            gap: 10px !important;
            flex-wrap: wrap !important;
        }

        section[style*="grid-template-columns:1fr 1fr"] .form-field {
            width: 100% !important;
        }

        #tab-contact>div:first-child {
            grid-template-columns: 1fr !important;
            gap: 10px !important;
        }

        section[style*="display:grid"] [style*="grid-template-columns:repeat"] {
            grid-template-columns: 1fr !important;
            gap: 16px !important;
        }

        section[style*="padding:100px 48px;background:#fff;max-width:1400px"]>div {
            grid-template-columns: 1fr !important;
            gap: 32px !important;
        }

        section[style*="padding:100px 48px;background:#fff"] div[style*="min-height:380px"] {
            min-height: 240px !important;
            padding: 24px !important;
        }

        section[style*="padding:100px 48px;background:#fff"] span[style*="font-size:10rem"] {
            font-size: 6rem !important;
        }

        section[style*="padding:100px 48px;background:#fff"] div[style*="font-size:4rem"] {
            font-size: 2.5rem !important;
        }

        section[style*="padding:100px 48px;background:#fff"] div[style*="display:grid;grid-template-columns:1fr 1fr;gap:16px"] {
            grid-template-columns: 1fr !important;
            gap: 12px !important;
        }
    }

    /* ── 639px ────────────────────────────────────────── */
    @media (max-width: 639px) {
        #hero {
            min-height: 48vh !important;
            min-height: 380px !important;
        }

        .globe-scene {
            width: 220px !important;
            height: 220px !important;
        }

        .globe-ring {
            width: 260px !important;
            height: 260px !important;
        }

        .hero-desc {
            margin-bottom: 44px !important;
            font-size: .9rem !important;
        }

        .hero-tabs-box {
            margin-top: -36px !important;
            border-radius: 12px !important;
        }

        .sub-label {
            font-size: .65rem !important;
        }

        .industry-tag {
            padding: 4px 10px !important;
            font-size: .65rem !important;
            margin: 3px !important;
            display: inline-flex;
            white-space: nowrap;
        }

        .btn-teal,
        .btn-outline {
            font-size: .68rem !important;
            padding: 10px 14px !important;
        }

        .form-field {
            padding: 11px 12px !important;
            font-size: .85rem !important;
        }

        #tab-track,
        #tab-quote,
        #tab-contact {
            padding: 16px !important;
        }

        #tab-track>div {
            display: flex !important;
            flex-direction: column !important;
            gap: 10px !important;
        }

        #tab-track .form-field {
            min-width: 0 !important;
            flex: 1 1 auto !important;
            width: 100% !important;
        }

        #tab-track .btn-teal {
            flex: 0 0 auto !important;
            width: 100% !important;
            margin-top: 4px !important;
        }

        #tab-quote>div {
            display: grid !important;
            grid-template-columns: 1fr !important;
            gap: 12px !important;
        }

        #tab-contact>div {
            display: flex !important;
            flex-direction: column !important;
            gap: 10px !important;
        }

        #tab-contact>div>div {
            width: 100% !important;
            display: flex !important;
            flex-direction: column !important;
            gap: 10px !important;
        }

        #tab-contact input,
        #tab-contact textarea {
            width: 100% !important;
            margin-bottom: 0 !important;
        }

        .tab-btn {
            padding: 10px 12px !important;
            font-size: .65rem !important;
            gap: 4px !important;
        }

        .tab-btn span.material-symbols-outlined {
            font-size: 14px !important;
        }

        #particles {
            display: none !important;
        }

        #float-cta {
            right: 14px !important;
            bottom: 16px !important;
            padding: 10px 14px !important;
            font-size: .63rem !important;
        }

        #hero>div {
            max-width: 100% !important;
            padding-left: 12px !important;
            padding-right: 12px !important;
        }

        .marquee-l .track,
        .marquee-r .track {
            font-size: .82rem !important;
        }

        .step-card::before {
            display: none !important;
        }

        section[style*="padding:100px"] {
            padding: 60px 16px !important;
        }

        /* WhatsApp consistent */
        #whatsapp-float {
            width: 52px !important;
            height: 52px !important;
            right: 20px !important;
            bottom: 25px !important;
            border-radius: 12px !important;
        }

        #whatsapp-float .whatsapp-icon {
            width: 26px !important;
            height: 26px !important;
        }

        footer>div:first-of-type>div {
            padding: 28px 16px !important;
        }

        footer>div:nth-of-type(2) {
            grid-template-columns: 1fr !important;
            padding: 32px 16px !important;
        }

        footer>div:nth-of-type(2)>div h4 {
            font-size: .68rem !important;
        }

        footer>div:nth-of-type(2)>div {
            text-align: center;
        }

        footer>div:nth-of-type(2)>div:nth-child(3),
        footer>div:nth-of-type(2)>div:nth-child(4) {
            display: grid;
            justify-items: center;
        }

        section.loyalty-bg>div>div:nth-child(2) {
            grid-template-columns: 1fr !important;
        }

        section.loyalty-bg div[style*="font-size:2.8rem"] {
            font-size: 1.6rem !important;
        }

        section[style*="background:var(--navy)"] {
            padding: 60px 16px !important;
        }

        section[style*="background:var(--navy)"] div[style*="border-radius:20px"] {
            padding: 18px !important;
        }

        section[style*="background:var(--navy)"] textarea.form-field {
            height: 80px !important;
        }

        section[style*="background:var(--navy)"] button.btn-teal {
            padding: 12px !important;
            font-size: .72rem !important;
        }

        section[style*="background:var(--navy)"] div[style*="display:flex;flex-direction:column;gap:16px"] {
            gap: 12px !important;
        }

        section[style*="background:var(--navy)"] div[style*="width:44px;height:44px"] {
            width: 40px !important;
            height: 40px !important;
        }

        section[style*="background:var(--navy)"] a span.material-symbols-outlined {
            font-size: 16px !important;
        }
    }

    /* ── 479px ────────────────────────────────────────── */
    @media (max-width: 479px) {
        #hero {
            min-height: 45vh !important;
            min-height: 360px !important;
            padding-top: 70px !important;
        }

        .globe-scene {
            width: 180px !important;
            height: 180px !important;
        }

        .globe-ring {
            width: 220px !important;
            height: 220px !important;
        }

        .globe-ring:nth-of-type(2) {
            width: 240px !important;
            height: 240px !important;
        }

        .hero-desc {
            margin-bottom: 34px !important;
            font-size: .85rem !important;
        }

        .hero-tabs-box {
            margin-top: 307px !important;
            border-radius: 10px !important;
        }

        .sub-label {
            font-size: .62rem !important;
            gap: 8px !important;
        }

        .sub-label::before {
            width: 20px !important;
        }

        .industry-tag {
            padding: 3px 8px !important;
            font-size: .60rem !important;
            margin: 2px !important;
        }

        .btn-teal,
        .btn-outline {
            font-size: .65rem !important;
            padding: 9px 12px !important;
            border-radius: 6px !important;
        }

        .form-field {
            padding: 10px 11px !important;
            font-size: .80rem !important;
        }

        .serv-card {
            padding: 16px !important;
        }

        .serv-icon {
            width: 48px !important;
            height: 48px !important;
            margin-bottom: 12px !important;
            font-size: 20px !important;
        }

        .serv-icon span.material-symbols-outlined {
            font-size: 22px !important;
        }

        h2 {
            font-size: clamp(1.4rem, 5vw, 2.4rem) !important;
        }

        h3 {
            font-size: clamp(0.9rem, 3vw, 1.1rem) !important;
        }

        .hero-anim {
            max-width: 100% !important;
        }

        .hero-anim:nth-child(1) {
            animation: heroIn .8s .2s ease forwards !important;
        }

        .hero-anim:nth-child(2) {
            animation: heroIn .8s .4s ease forwards !important;
        }

        .hero-anim:nth-child(3) {
            animation: heroIn .8s .6s ease forwards !important;
        }

        .hero-anim:nth-child(4) {
            animation: heroIn .8s .8s ease forwards !important;
        }

        .tab-btn {
            padding: 8px 10px !important;
            font-size: .60rem !important;
            gap: 3px !important;
        }

        .tab-btn span.material-symbols-outlined {
            font-size: 12px !important;
        }

        #tab-track,
        #tab-quote,
        #tab-contact {
            padding: 12px !important;
        }

        #tab-track>div,
        #tab-quote>div,
        #tab-contact>div {
            gap: 8px !important;
        }

        #particles {
            display: none !important;
        }

        #float-cta {
            right: 10px !important;
            bottom: 12px !important;
            padding: 8px 12px !important;
            font-size: .60rem !important;
            gap: 4px !important;
        }

        #float-cta span {
            font-size: .9rem !important;
        }

        .step-card::before {
            display: none !important;
        }

        section[style*="padding:100px"] {
            padding: 50px 14px !important;
        }

        .marquee-l .track,
        .marquee-r .track {
            font-size: .75rem !important;
        }

        /* WhatsApp consistent */
        #whatsapp-float {
            width: 60px !important;
            height: 60px !important;
            right: 20px !important;
            bottom: 25px !important;
            border-radius: 11px !important;
        }

        #whatsapp-float .whatsapp-icon {
            width: 26px !important;
            height: 26px !important;
        }
    }

    /* ── 359px ────────────────────────────────────────── */
    @media (max-width: 359px) {
        body {
            font-size: 14px;
            overflow-x: hidden;
        }

        #hero {
            min-height: 42vh !important;
            min-height: 320px !important;
            padding-top: 60px !important;
        }

        .globe-scene {
            width: 160px !important;
            height: 160px !important;
        }

        .globe-ring {
            width: 200px !important;
            height: 200px !important;
        }

        .sub-label {
            font-size: .58rem !important;
        }

        .tab-btn {
            padding: 7px 8px !important;
            font-size: .55rem !important;
        }

        .btn-teal,
        .btn-outline {
            font-size: .62rem !important;
            padding: 8px 10px !important;
        }

        section[style*="padding:100px"] {
            padding: 40px 12px !important;
        }

        #float-cta {
            right: 8px !important;
            bottom: 10px !important;
            padding: 6px 10px !important;
            font-size: .55rem !important;
        }

        /* WhatsApp consistent */
        #whatsapp-float {
            width: 52px !important;
            height: 52px !important;
            right: 20px !important;
            bottom: 25px !important;
            border-radius: 10px !important;
        }

        #whatsapp-float .whatsapp-icon {
            width: 26px !important;
            height: 26px !important;
        }
    }

    /* ── Standardized media wrapper classes (image size spec) ──
       Use on new image markup going forward; existing pages keep
       their own equivalent skeleton-img-wrapper/hero classes. */
    .media {
        position: relative;
        overflow: hidden;
        display: block;
        background: var(--off);
    }

    .media > img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display: block;
    }

    .media--hero { aspect-ratio: 16/9; }
    .media--card { aspect-ratio: 4/3; }
    .media--gallery { aspect-ratio: 1/1; }
    .media--person { aspect-ratio: 4/5; }

    @media (max-width: 767px) {
        .media--hero { aspect-ratio: 3/4; }
    }
