        * {
            font-family: 'Sora', sans-serif;
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            font-family: 'Poppins', sans-serif;
        }

        .primary-blue {
            color: #0B4799;
        }

        .accent-orange {
            color: #FE7303;
        }

        .gold-yellow {
            color: #FFB71B;
        }

        .bg-primary {
            background-color: #0B4799;
        }

        .bg-accent {
            background-color: #FE7303;
        }

        .bg-gold {
            background-color: #FFB71B;
        }

        .bg-light {
            background-color: #FEFEFE;
        }

        .text-light {
            color: #FEFEFE;
        }

        .text-dark-blue {
            color: #0B4799;
        }

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

        html,
        body {
            width: 100%;
            max-width: 100%;
            overflow-x: hidden;
        }

        /* Prevent large media from causing horizontal scroll */
        img,
        picture,
        video,
        svg {
            max-width: 100%;
            height: auto;
            display: block;
        }

        /* Make decorative blobs responsive so they don't overflow on small screens */
        .hero-blob {
            max-width: 45vw;
            max-height: 45vw;
            width: 400px;
            height: 400px;
            background-color: #FE7303;
            border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
            opacity: 0.15;
            filter: blur(40px);
            animation: floatBounce 6s ease-in-out infinite;
        }

        /* Animations */
        @keyframes slideUpIn {
            from {
                opacity: 0;
                transform: translateY(60px);
            }

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

        @keyframes slideInLeft {
            from {
                opacity: 0;
                transform: translateX(-60px);
            }

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

        @keyframes slideInRight {
            from {
                opacity: 0;
                transform: translateX(60px);
            }

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

        @keyframes scaleIn {
            from {
                opacity: 0;
                transform: scale(0.9);
            }

            to {
                opacity: 1;
                transform: scale(1);
            }
        }

        @keyframes floatBounce {

            0%,
            100% {
                transform: translateY(0px);
            }

            50% {
                transform: translateY(-15px);
            }
        }

        @keyframes countUp {
            from {
                opacity: 0;
            }

            to {
                opacity: 1;
            }
        }

        @keyframes shimmer {

            0%,
            100% {
                opacity: 0.5;
            }

            50% {
                opacity: 0.8;
            }
        }

        @keyframes pulse-ring {
            0% {
                box-shadow: 0 0 0 0 rgba(254, 115, 3, 0.7);
            }

            70% {
                box-shadow: 0 0 0 15px rgba(254, 115, 3, 0);
            }

            100% {
                box-shadow: 0 0 0 0 rgba(254, 115, 3, 0);
            }
        }

        @keyframes slide-scroll {
            0% {
                transform: translateX(0);
            }

            100% {
                transform: translateX(-100%);
            }
        }

        .animate-slide-up {
            animation: slideUpIn 0.8s ease-out;
        }

        .animate-slide-left {
            animation: slideInLeft 0.8s ease-out;
        }

        .animate-slide-right {
            animation: slideInRight 0.8s ease-out;
        }

        .animate-scale {
            animation: scaleIn 0.8s ease-out;
        }

        .animate-float {
            animation: floatBounce 3s ease-in-out infinite;
        }

        .animate-shimmer {
            animation: shimmer 2s ease-in-out infinite;
        }

        .animate-pulse-ring {
            animation: pulse-ring 2s infinite;
        }

        /* (duplicate .hero-blob removed) */

        .service-scroll-container {
            scroll-behavior: smooth;
            overflow-x: auto;
            overflow-y: hidden;
            scroll-snap-type: x mandatory;
        }

        .service-card {
            scroll-snap-align: start;
            scroll-snap-stop: always;
            flex: 0 0 100%;
        }

        .image-placeholder {
            background: linear-color-stop(#0B4799);
            opacity: 0.1;
            animation: shimmer 2s ease-in-out infinite;
        }

        .floating-icon {
            animation: floatBounce 4s ease-in-out infinite;
        }

        .button-ripple {
            position: relative;
            overflow: hidden;
        }

        .button-ripple::after {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            width: 0;
            height: 0;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.5);
            transform: translate(-50%, -50%);
            pointer-events: none;
        }

        .button-ripple:active::after {
            animation: ripple 0.6s ease-out;
        }

        @keyframes ripple {
            to {
                width: 300px;
                height: 300px;
                opacity: 0;
            }
        }

        .no-scrollbar::-webkit-scrollbar {
            display: none;
        }

        /* Hide scrollbar for IE, Edge and Firefox */
        .no-scrollbar {
            -ms-overflow-style: none;
            /* IE and Edge */
            scrollbar-width: none;
            /* Firefox */
        }