
        :root { 
            --primary-red: #E30613; 
            --red-light: rgba(227, 6, 19, 0.1);
            --dark-bg: #0f1115; 
            --card-radius: 1rem; /* 16px */
            --nav-bg: rgba(15, 17, 21, 0.95); 
            --nav-bg-dark: rgba(15, 17, 21, 0.995); 
        }
        
        /* Basis für sauberes REM-Scaling und Mobile Overflow Fix */
        html { 
            font-size: 1rem; 
            overflow-x: hidden; 
            width: 100%; 
            padding: 0; 
            margin: 0; 
        }

        body { 
            font-family: 'Inter', sans-serif; 
            color: #2c3e50; 
            overflow-x: hidden; 
            width: 100%;
            background-color: #fff; 
            position: relative; 
            -webkit-font-smoothing: antialiased;
            padding: 0; 
            margin: 0;
        }

        /* FHLENDE CSS KLASSE HINZUGEFÜGT */
        .bg-red { background-color: var(--primary-red) !important; }

        /* Hardware Accelerated 3D Wireframe Background */
        .mesh-bg {
            position: fixed; top: 25vh; left: 0; width: 100%; height: 120vh;
            background-image: url('/img/leica_rtc_360_1000-1000x.png');
            background-size: cover; background-position: center bottom; background-repeat: no-repeat;
            z-index: -1; pointer-events: none; 
            transform: translateZ(0); 
            will-change: transform;
        }
        
        /* Layout & Typography */
        section { padding: 7.5rem 0; position: relative; }
        .bg-light-soft { background-color: rgba(244, 246, 249, 0.96); backdrop-filter: blur(5px); }
        .bg-dark-custom { background-color: var(--dark-bg); color: white; }
        .bg-footer { background: var(--nav-bg-dark) !important; border-top: 1px solid rgba(227, 6, 21, 0.3) !important; backdrop-filter: blur(10px); min-height: 15vh;}
        h1, h2, h3, h4 { font-weight: 800; color: #111; letter-spacing: -0.03rem; }
        .text-red { color: var(--primary-red) !important; }
        .text-wh { color: var(--white) !important; }
        footer a { font-weight: 600 !important; opacity: 0.8; transition: 0.3s; color: rgb(255, 255, 255) !important; font-size: 0.875rem; text-decoration: none; }
        footer a:hover { opacity: 1; text-decoration: none; color: var(--primary-red) !important;}
        .fs1rem { font-size: 1rem; letter-spacing: 0.02rem; }
        .fs2rem { font-size: 2rem; letter-spacing: 0.05rem; }
        .fscenter { text-align: center; align-items: center; justify-content: center; }
        /* Navigation */
        .navbar { background: var(--nav-bg); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(227, 6, 19, 0.5); padding: 1rem 0; letter-spacing: 0.03rem;}
        .nav-link { font-weight: 600; opacity: 0.8; transition: 0.3s; color: white !important; font-size: 0.875rem; }
        .nav-link:hover, .nav-link.active { opacity: 1; color: var(--primary-red) !important; }

        /* Hero Section */
        .hero { min-height: 100vh; display: flex; align-items: center; color: white; padding-top: 6.25rem; width: 100%; position: relative; }
        .hero-bg-1 { background: linear-gradient(135deg, rgba(15,17,21,0.92) 0%, rgba(15,17,21,0.7) 100%), url('/img/cgnscan_hd_castle_1600x612.webp') center/cover; }
        .hero-bg-2 { background: linear-gradient(135deg, rgba(15,17,21,0.92) 0%, rgba(15,17,21,0.7) 100%), url('/img/cgnscan_hr_h612_leica_rtc360.jpg.webp') center/cover; }
        .hero-img-container { position: relative; border-radius: var(--card-radius); overflow: hidden; box-shadow: 0 1.875rem 3.75rem rgba(0,0,0,0.5); transform: perspective(1000px) rotateY(-5deg); transition: 0.5s; }
        .hero-img-container:hover { transform: perspective(1000px) rotateY(0deg) translateY(-0.625rem); }
        .swiper-pagination-bullet { background: #fff; opacity: 0.5; }
        .swiper-pagination-bullet-active { background: var(--primary-red); opacity: 1; }

        /* Buttons & UI Cards */
        .btn-red { background: linear-gradient(135deg, var(--primary-red) 0%, #c20410 100%); color: white; border: none; padding: 1rem 2.25rem; font-weight: 600; border-radius: 3.125rem; text-transform: uppercase; box-shadow: 0 0.625rem 1.25rem rgba(227, 6, 19, 0.2); transition: all 0.3s; font-size: 1rem;}
        .btn-red:hover { transform: translateY(-0.1875rem); box-shadow: 0 0.9375rem 1.5625rem rgba(227, 6, 19, 0.3); color: white; }
        .btn-white { background: #ffffff; color: #c20410; border: none; padding: 1rem 2.25rem; font-weight: 600; border-radius: 3.125rem; text-transform: uppercase; box-shadow: 0 0.625rem 1.25rem rgba(227, 6, 19, 0.2); transition: all 0.3s; font-size: 1rem;}
        .btn-white:hover { transform: translateY(-0.1875rem); box-shadow: 0 0.9375rem 1.5625rem rgba(227, 6, 19, 0.3); background: linear-gradient(135deg, var(--primary-red) 0%,#c20410 100%); color: white; }

        .feature-card { background: white; padding: 2.5rem; border-radius: var(--card-radius); border: 1px solid rgba(0,0,0,0.05); box-shadow: 0 0.625rem 1.875rem rgba(0,0,0,0.03); transition: 0.4s; height: 100%; }
        .feature-card:hover { transform: translateY(-0.625rem); box-shadow: 0 1.25rem 2.5rem rgba(0,0,0,0.08); border-color: var(--red-light); }
        .icon-wrapper { width: 4.375rem; height: 4.375rem; border-radius: 1.25rem; background-color: var(--red-light); color: var(--primary-red); display: flex; align-items: center; justify-content: center; font-size: 2rem; margin-bottom: 1.5rem; transition: 0.3s; }
        .contact-icon {  margin-bottom: 0;  }
        
        .feature-card:hover .icon-wrapper { background-color: var(--primary-red); color: white; transform: scale(1.1) rotate(5deg); }

        /* Image Gallery Horizontal */
        .scrolling-gallery { display: flex; overflow-x: auto; gap: 1.25rem; padding: 0.625rem 0 1.875rem 0; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--primary-red) transparent; }
        .scrolling-gallery::-webkit-scrollbar { height: 0.375rem; }
        .scrolling-gallery::-webkit-scrollbar-thumb { background: var(--primary-red); border-radius: 0.625rem; }
        .gallery-item { flex: 0 0 85%; max-width: 21.875rem; height: 15.625rem; border-radius: var(--card-radius); background-size: cover; background-position: center; scroll-snap-align: center; position: relative; overflow: hidden; box-shadow: 0 0.625rem 1.25rem rgba(0,0,0,0.1); }
        .gallery-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); display: flex; align-items: flex-end; padding: 1.25rem; color: white; font-weight: bold; font-size: 1.1rem; }
        @media (min-width: 768px) { .gallery-item { flex: 0 0 45%; } }
        @media (min-width: 992px) { .gallery-item { flex: 0 0 25%; } }

        /* Reference Slider */
        .reference-swiper { 
            border-radius: var(--card-radius); 
            box-shadow: 0 0.625rem 1.875rem rgba(0,0,0,0.08); 
            border: 1px solid rgba(0,0,0,0.05); 
            background: #fff; 
            overflow: hidden;
            position: relative;
        }
        .reference-pagination { bottom: 1rem !important; }
        .reference-swiper .swiper-pagination-bullet { background: #111; opacity: 0.2; }
        .reference-swiper .swiper-pagination-bullet-active { background: var(--primary-red); opacity: 1; }

        /* Detail Boxes & Workflows */
        .service-img { height: 15rem; background-size: cover; background-position: center; border-bottom: 0.25rem solid var(--primary-red); }
        .workflow-step { padding: 1.875rem; background: rgba(255,255,255,0.03); border-radius: var(--card-radius); border: 1px solid rgba(255,255,255,0.05); transition: 0.3s; text-align: center; }
        .workflow-step:hover { background: rgba(255,255,255,0.08); transform: translateY(-0.3125rem); border-color: var(--primary-red); }
        .workflow-icon { font-size: 2.5rem; color: var(--primary-red); margin-bottom: 0.9375rem; display: block; }

        /* Forms */
        .form-range::-webkit-slider-thumb { background: var(--primary-red); width: 1.5625rem; height: 1.5625rem; margin-top: -0.625rem; box-shadow: 0 0 0.625rem rgba(227,6,19,0.5); }
        .form-control { border-radius: 0.75rem; padding: 1rem; border: 1px solid #ddd; background: #f8f9fa; font-size: 1rem; }
        .form-control:focus { border-color: var(--primary-red); box-shadow: 0 0 0 0.25rem var(--red-light); background: #fff; }

        /* Sticky CTA */
        .sticky-cta { position: fixed; right: 1.875rem; bottom: 1.875rem; z-index: 2000; opacity: 0; pointer-events: none; transform: translateY(1.25rem); transition: opacity 0.4s ease, transform 0.4s ease; }
        .sticky-cta.visible { opacity: 1; pointer-events: auto; transform: translateY(0); }

        /* Cookie Banner */
        .cookie-banner { position: fixed; bottom: -150%; left: 0; width: 100%; background-color: rgba(15, 17, 21, 0.98); backdrop-filter: blur(10px); border-top: 1px solid rgba(227, 6, 19, 0.5); z-index: 3000; padding: 1rem 0; transition: bottom 0.6s cubic-bezier(0.25, 0.8, 0.25, 1); box-shadow: 0 -0.625rem 1.875rem rgba(0,0,0,0.5); }
        .cookie-banner.show { bottom: 0; }
        .btn-outline-light-cookie { border: 1px solid rgba(255,255,255,0.3); color: white; transition: 0.3s; background: transparent;}
        .btn-outline-light-cookie:hover { background: rgba(255,255,255,0.1); border-color: white; color: white;}

        /* Newsletter Input Form Adjustments */
        .nl-input-group { box-shadow: 0 0.625rem 1.875rem rgba(0,0,0,0.2); border-radius: 3.125rem; }
        .nl-input { border-radius: 3.125rem 0 0 3.125rem !important; border: none; padding-left: 1.5rem; }
        .nl-btn { border-radius: 0 3.125rem 3.125rem 0 !important; background-color: #111; color: #fff; border: none; transition: 0.3s; }
        .nl-btn:hover { background-color: #333; color: #fff;}

        .rounded-pill { max-width: 300px; min-width: 75px; width: 300px;}
        .badge { max-width: 300px; min-width: 300px; width: fit-content; }
        .img2icon {}
        
        /* Mobile Specific Fixes & Scrollbar Hiding */
        @media (max-width: 991px) { 
            .hero { padding-top: 6.25rem; padding-bottom: 3.75rem; min-height: auto; text-align: center; }
            .hero .d-flex { justify-content: center; }
            .hero-img-container { margin: 3rem auto 0; transform: perspective(1000px) rotateY(0deg); }
        }

        @media (max-width: 768px) { 
            html, body, .scrolling-gallery { -ms-overflow-style: none; scrollbar-width: none; }
            html::-webkit-scrollbar, body::-webkit-scrollbar, .scrolling-gallery::-webkit-scrollbar { display: none; }
            
            /* Zentrierter Mobile CTA Button - Verhindert horizontale Scrollbalken */
            .sticky-cta { 
                width: calc(100% - 2.5rem); max-width: 25rem; 
                left: 50%; right: auto; bottom: 1.25rem; 
                transform: translateX(-50%) translateY(1.25rem); 
                text-align: center; 
            } 
            .sticky-cta.visible { transform: translateX(-50%) translateY(0); }
            .sticky-cta .btn { 
                width: 100%; border-radius: 3.125rem; padding: 1rem; 
                box-shadow: 0 0.625rem 1.875rem rgba(0,0,0,0.5); font-size: 0.95rem; 
            } 
            
            .hero-img-container img { height: 15.625rem; object-fit: cover; }
            .mesh-bg { transform: none !important; position: absolute; }
            .cookie-banner { padding: 1.25rem 0; }
            
            /* Newsletter Fix Mobile */
            .nl-input-group { flex-direction: column; border-radius: 1rem; background: transparent; box-shadow: none; gap: 0.5rem;}
            .nl-input { border-radius: 3.125rem !important; text-align: center; padding: 1rem;}
            .nl-btn { border-radius: 3.125rem !important; padding: 1rem; width: 100%;}
        }
  