.hero-title-line {
            transition: opacity 0.7s ease-out, transform 0.7s ease-out;
        }
        .hero-title-line.animated {
            opacity: 1;
            transform: translateY(0);
        }
        .hero-title-line.initial {
            opacity: 0;
            transform: translateY(2rem);
        }
        .hero-title-line.delay-200 {
            transition-delay: 0.2s;
        }
        .hero-highlight {
            display: inline-block;
            font-size: 0.92em;
            font-weight: 700;
            letter-spacing: 0.05em;
            color: #f97316;
            text-shadow: none;
        }
        .hero-blob {
            position: absolute;
            border-radius: 9999px;
            opacity: 0.48;
            filter: blur(8px);
            mix-blend-mode: screen;
            pointer-events: none;
            z-index: 15;
            animation: hero-blob-float 12s ease-in-out infinite;
        }
        .hero-blob-1 {
            width: 420px;
            height: 420px;
            top: -60px;
            left: 5%;
            background: radial-gradient(circle, rgba(249,115,22,0.8) 0%, rgba(249,115,22,0) 65%);
        }
        .hero-blob-2 {
            width: 360px;
            height: 360px;
            bottom: -40px;
            right: 10%;
            background: radial-gradient(circle, rgba(14,165,233,0.8) 0%, rgba(14,165,233,0) 70%);
            animation-delay: 3s;
        }
        @keyframes hero-blob-float {
            0%, 100% {
                transform: translateY(0) scale(1);
            }
            50% {
                transform: translateY(-25px) scale(1.05);
            }
        }
        @keyframes hero-gradient {
            0% {
                background-position: 0% 50%;
            }
            50% {
                background-position: 100% 50%;
            }
            100% {
                background-position: 0% 50%;
            }
        }
        /* Mobile menu transition */
        #mobile-menu {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        }
        #mobile-menu.open {
            max-height: 100vh; /* A large enough value */
        }
        /* Fix for hero animation on reload */
        body.is-loading #hero-content {
            opacity: 1 !important;
        }
        /* Leaflet popup customization */
        .leaflet-popup-content-wrapper {
            border-radius: 8px;
        }
        /* Smoothly fade hero backgrounds when rotating images */
        #hero-bg {
            transition: opacity 1s ease-in-out, transform 0.1s linear;
            will-change: opacity, transform;
        }
        .hero-industry-label {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            margin-top: 1.25rem;
            color: rgba(255,255,255,0.9);
            font-weight: 800;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            font-size: 1.15rem;
            text-shadow: none;
        }
        .hero-industry-label::before {
            content: none;
        }
        .hero-industry-label.animate {
            animation: hero-fade-slide 0.7s ease both;
        }
        .hero-text-strong {
            text-shadow: none;
        }
        .hero-text-soft {
            text-shadow: none;
        }
        @keyframes hero-fade-slide {
            0% { opacity: 0; transform: translateY(8px); }
            100% { opacity: 1; transform: translateY(0); }
        }
        .service-card {
            transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
            position: relative;
            overflow: hidden;
        }
        .service-card:hover {
            transform: translateY(-6px);
            box-shadow: 0 18px 35px rgba(15, 23, 42, 0.08);
            border-color: rgba(249, 115, 22, 0.35);
            background: linear-gradient(145deg, rgba(255, 247, 237, 0.9), #fff);
        }
        .service-card:hover .service-icon {
            transform: scale(1.06);
        }
