  @import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&family=Prata&display=swap');

      
*{
     font-family: 'Bricolage Grotesque', sans-serif;
}
body{
    margin: 0;
    padding: 0;

}

        /* Preloader Styles */
        @keyframes fillLogo {
            0% {
                width: 0%;
            }

            100% {
                width: 100%;
            }
        }


         .no-scrollbar::-webkit-scrollbar { display: none; }
        .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
        .animate-fill {
            animation: fillLogo 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
        }

        .fade-out {
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.5s ease-out;
        }

        /* Hero Banner Custom Geometric Overlay (The step cut-out for the "Get Invited" box) */
        .hero-cutout {
            background-color: #ffffff;
            clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 78%, 62% 78%, 62% 0);
        }

        @media (min-width: 768px) {
            .hero-cutout {
                /* Precise desktop mask shape matching image_ce951d.png */
                clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 80%, 58% 80%, 58% 0);
            }
        }

        .hero-section {
            position: relative;
            height: 100vh;
            display: flex;
            align-items: center;
            overflow: hidden;
        }

        .hero-video {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: -2;
        }

        .hero-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            /* background: var(--gradient-primary); */
            background: linear-gradient(135deg,
                    rgba(0, 0, 0, 0.9) 0%,
                    rgba(95, 5, 5, 0.8) 35%,
                    rgba(124, 11, 11, 0.7) 70%,
                    rgba(82, 4, 17, 0.85) 100%);
            opacity: 0.7;
            z-index: -1;
        }

        .hero-content {
            color: white;
            text-align: center;
            max-width: 800px;
            margin: 0 auto;
            padding: 0 20px;
        }

        .hero-content h1 {
            font-size: 3.5rem;
            margin-bottom: 20px;
            text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
        }

        .hero-content p {
            font-size: 1.2rem;
            margin-bottom: 30px;
            line-height: 1.6;
        }

        .search-box {
            background: rgba(255, 255, 255, 0.9);
            border-radius: 10px;
            padding: 20px;
            box-shadow: 0 5px 25px rgba(0, 0, 0, 0.15);
            margin-top: 30px;
        }

        .search-box .form-control {
            border: none;
            border-bottom: 1px solid var(--light-blue);
            border-radius: 0;
            padding: 10px 0;
            background: transparent;
        }

        .search-box .form-control:focus {
            box-shadow: none;
            border-bottom: 1px solid var(--accent-blue);
        }

        /* Responsive Styles */
        @media (max-width: 992px) {
            .hero-content h1 {
                font-size: 2.8rem;
            }

            .topbar-contact,
            .topbar-social {
                text-align: center;
                margin-bottom: 5px;
            }
        }

        @media (max-width: 768px) {
            .hero-content h1 {
                font-size: 2.2rem;
            }

            .hero-content p {
                font-size: 1rem;
            }

            .navbar-brand {
                font-size: 12px;
            }
        }

        @media (max-width: 576px) {
            .hero-content h1 {
                font-size: 1.8rem;
            }
        }

        /* Ticker animation track style rules */
        @keyframes ticker {
            0% {
                transform: translate3d(0, 0, 0);
            }

            100% {
                transform: translate3d(-50%, 0, 0);
            }
        }

        .animate-ticker {
            display: inline-flex;
            white-space: nowrap;
            animation: ticker 30s linear infinite;
        }

        .animate-ticker:hover {
            animation-play-state: paused;
        }

        /* Custom slant shape matching the original brand angle logic */
        .brand-slant {
            clip-path: polygon(0 0, 100% 0, 88% 100%, 0% 100%);
        }

        @media (max-width: 1024px) {
            .brand-slant {
                clip-path: none;
            }
        }
   
        /* Premium custom font styling & hardware acceleration overrides */


        /* Custom grain overlay for that cinematic premium textured feel */
        .noise-overlay {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 80%;
            opacity: 0.04;
            pointer-events: none;
            z-index: 20;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3e%3cfilter id='noiseFilter'%3e%3cfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3e%3c/filter%3e%3crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3e%3c/svg%3e");
        }

        /* Slider bottom-to-top animation logic */
        .slide-track {
            opacity: 0;
            transform: translateY(40px) scale(0.98);
            pointer-events: none;
            transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 1s ease;
        }

        .slide-track.active {
            opacity: 1;
            transform: translateY(0) scale(1);
            pointer-events: auto;
        }

        @keyframes slideCycle {

            0%,
            33.33% {
                opacity: 1;
            }

            38.88%,
            94.44% {
                opacity: 0;
            }

            100% {
                opacity: 1;
            }
        }

        /* Hide scrollbar for Chrome, Safari and Opera */
        .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 */
        }
   
    @keyframes marquee {
        0% {
            transform: translateX(0);
        }

        100% {
            transform: translateX(calc(-50% - 12px));
        }
    }

    @keyframes marqueeRight {
        0% {
            transform: translateX(calc(-50% - 12px));
        }

        100% {
            transform: translateX(0);
        }
    }

    /* Custom styling additions to sync layout look and feel */
    /* .industries-section {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
} */

    .industries-section .qms-title span {
        color: #3182ce;
        /* Match your active accent blue color */
    }

    /* Fallback default icon sizes if Bootstrap icons are utilized */
    .industry-icon-box i {
        font-size: 2.25rem;
        transition: transform 0.3s ease;
    }

    .industry-card:hover .industry-icon-box i {
        transform: scale(1.12);
    }

    /* firm at glace  */
        
            @keyframes subtleFloat {

                0%,
                100% {
                    transform: translateY(0);
                }

                50% {
                    transform: translateY(-6px);
                }
            }

            .animate-infinite-float {
                animation: subtleFloat 4s ease-in-out infinite;
            }

            /* Pauses the floating motion instantly when hovered so it doesn't conflict with the card lift */
            .stat-card:hover .animate-infinite-float {
                animation-play-state: paused;
            }
      
             @keyframes ticker {
            0% { transform: translate3d(0, 0, 0); }
            100% { transform: translate3d(-50%, 0, 0); }
        }
        .animate-ticker {
            display: inline-flex;
            white-space: nowrap;
            animation: ticker 30s linear infinite;
        }
        .animate-ticker:hover { animation-play-state: paused; }
        .brand-slant { clip-path: polygon(0 0, 100% 0, 88% 100%, 0% 100%); }
        @media (max-width: 1024px) { .brand-slant { clip-path: none; } }
        .no-scrollbar::-webkit-scrollbar { display: none; }
        .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }