        /* --- VARIABLES & RESET --- */
        :root {
            --brand-orange: #00A8E8;
            --brand-blue: #00235A;
            --brand-dark: #001D4B;
            --light-gray: #F6F9FF;
            --text-color: #374151;
            --font-rubik: 'Rubik', sans-serif;
            --font-rajdhani: 'Rajdhani', sans-serif;
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        /* CORRECTION SCROLL HORIZONTAL : On applique overflow-x hidden sur html ET body */
        html, body {
            overflow-x: hidden;
            width: 100%;
            max-width: 100%;
            position: relative;
        }

        body {
            font-family: var(--font-rubik);
            color: var(--text-color);
            background-color: white;
            display: flex;
            flex-direction: column;
            min-height: 100vh;
        }

        h1, h2, h3, h4, h5, h6 {
            font-family: var(--font-rajdhani);
        }

        a {
            text-decoration: none;
            color: inherit;
        }

        ul {
            list-style: none;
        }

        /* --- UTILITIES --- */
        .container {
            width: 100%;
            padding-left: 1rem;
            padding-right: 1rem;
            margin-left: auto;
            margin-right: auto;
        }

        @media (min-width: 640px) { .container { max-width: 640px; } }
        @media (min-width: 768px) { .container { max-width: 768px; } }
        @media (min-width: 1024px) { .container { max-width: 1024px; } }
        @media (min-width: 1280px) { .container { max-width: 1280px; } }

        .hidden { display: none; }
        .block { display: block; }
        
        @media (min-width: 1024px) {
            .lg-block { display: block; }
            .lg-hidden { display: none; }
            .lg-flex { display: flex; }
        }

        /* --- TOP BAR --- */
        .top-bar {
            background-color: var(--brand-orange);
            color: white;
            padding-top: 0.75rem;
            padding-bottom: 0.75rem;
            display: none; /* Hidden on mobile */
        }

        @media (min-width: 1024px) {
            .top-bar { display: block; }
        }

        .top-bar-content {
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 0.875rem;
            font-weight: 500;
        }

        .contact-info {
            display: flex;
            gap: 1.5rem;
        }

        .contact-item {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .social-links {
            display: flex;
            gap: 1rem;
        }

        .social-links a:hover {
            color: var(--brand-blue);
            transition: color 0.3s;
        }

        /* --- NAVIGATION --- */
        .navbar {
            background-color: white;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
            position: sticky;
            top: 0;
            z-index: 50;
        }

        .nav-container {
            height: 5rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            position: relative;
        }

        @media (min-width: 768px) {
            .nav-container { height: 6rem; }
        }

        .logo {
            display: flex;
            align-items: center;
            z-index: 50;
        }
        
        .logo-img {
            height: 2.5rem;
            width: auto;
            object-fit: contain;
        }

        @media (min-width: 768px) { .logo-img { height: 3.5rem; } }


        .desktop-menu {
            display: none;
            gap: 2rem;
            font-family: var(--font-rubik);
            font-weight: 500;
            color: var(--brand-blue);
            text-transform: uppercase;
            font-size: 0.875rem;
            letter-spacing: 0.025em;
        }

        @media (min-width: 1024px) { .desktop-menu { display: flex; } }

        .desktop-menu a:hover {
            color: var(--brand-orange);
            transition: color 0.3s;
        }

        .mobile-menu-btn {
            background: none;
            border: none;
            color: var(--brand-blue);
            font-size: 1.5rem;
            z-index: 50;
            cursor: pointer;
            display: block;
        }

        @media (min-width: 1024px) { .mobile-menu-btn { display: none; } }

        .mobile-menu {
            position: fixed;
            inset: 0;
            background-color: white;
            z-index: 40;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 2rem;
            transition: transform 0.3s ease-in-out;
        }

        /* Utility for JS toggling */
        .translate-x-full {
            transform: translateX(100%);
        }

        .mobile-link {
            font-size: 1.5rem;
            font-weight: 700;
            color: var(--brand-blue);
        }

        .mobile-link:hover {
            color: var(--brand-orange);
        }

        /* --- HERO SECTION --- */
        .hero {
            /* Mise à jour de l'image de fond pour utiliser la nouvelle photo technique */
            background-image: linear-gradient(rgba(0, 35, 90, 0.85), rgba(0, 35, 90, 0.7)), url('../img/hero1.jpeg');
            background-size: cover;
            background-position: center;
            background-attachment: fixed;
            min-height: 500px;
            height: auto;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            color: white;
            position: relative;
            padding-top: 5rem;
            padding-bottom: 5rem;
            width: 100%; /* Ensure width constraint */
        }

        @media (min-width: 1024px) {
            .hero {
                height: 100vh;
                padding: 0;
            }
            /* Clip path */
            .hero.clip-slant {
                clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
            }
        }
        
        .hero-subtitle {
            display: block;
            color: var(--brand-orange);
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            margin-bottom: 0.5rem;
            font-size: 0.875rem;
        }

        @media (min-width: 768px) {
            .hero-subtitle { margin-bottom: 1rem; font-size: 1.125rem; }
        }

        .hero-title {
            font-size: 2.25rem;
            font-weight: 700;
            margin-bottom: 1rem;
            line-height: 1.2;
        }

        @media (min-width: 768px) { .hero-title { font-size: 3.75rem; margin-bottom: 1.5rem; } }
        @media (min-width: 1024px) { .hero-title { font-size: 4.5rem; } }

        .hero-highlight {
            color: transparent;
            background-clip: text;
            -webkit-background-clip: text;
            background-image: linear-gradient(to right, #22d3ee, #3b82f6);
        }

           .hero-highlight2 {
            color: transparent;
            background-clip: text;
            -webkit-background-clip: text;
            background-image: linear-gradient(to right, #e83e0f, #ae0000);
        }

        .hero-text {
            max-width: 42rem;
            margin: 0 auto 2rem auto;
            color: #e5e7eb;
            font-size: 1rem;
            padding: 0 1rem;
        }
        
        @media (min-width: 768px) {
            .hero-text { font-size: 1.125rem; margin-bottom: 2.5rem; }
        }

        .hero-buttons .btn {
        padding: 0.75rem 1.5rem;
        width: auto;
        white-space: nowrap;
        }


        @media (min-width: 768px) {
            .hero-buttons { flex-direction: row; }
        }

        .btn {
            padding: 0.75rem 2rem;
            border-radius: 0.25rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            transition: all 0.3s;
            display: inline-block;
            text-align: center;
        }

                .btn-primary2 {
        background-color: #ff7a00;
        color: #fff;
        border: none;
        }

        .btn-primary2:hover {
        background-color: #e96f00;
        }

        @media (min-width: 768px) { .btn { padding: 1rem 2rem; width: auto; } }

        .btn-primary {
            background-color: var(--brand-orange);
            color: white;
            width: 100%;
        }

        .btn-primary:hover {
            background-color: rgb(255, 0, 0); /* cyan-600 approx */
            transform: translateY(-0.25rem);
        }

        .btn-outline {
            background-color: transparent;
            border: 2px solid rgb(255, 0, 0);
            color: rgb(255, 0, 0);
            width: 100%;
        }

        .btn-outline:hover {
            background-color: #0891b2;
            border: 2px solid #0891b2;
            color: var(--brand-blue);
            transform: translateY(-0.25rem);
        }

        /* --- FEATURE CARDS --- */
        .features-section {
            position: relative;
            z-index: 20;
            margin-top: 0;
            margin-bottom: 2.5rem;
            padding: 0 1rem;
        }

        @media (min-width: 1024px) {
            .features-section { margin-top: -8rem; margin-bottom: 5rem; }
        }

        .features-grid {
            display: grid;
            grid-template-columns: 1fr;
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
            border-radius: 0.5rem;
            overflow: hidden;
        }

        @media (min-width: 768px) { .features-grid { grid-template-columns: repeat(3, 1fr); } }

        .feature-card {
            padding: 2rem;
            color: white;
        }

        @media (min-width: 768px) { .feature-card { padding: 2.5rem; } }

        .feature-card.orange { background-color: var(--brand-orange); }
        .feature-card.blue { background-color: var(--brand-blue); }
        
        .feature-icon-bg {
            font-size: 2.25rem;
            margin-bottom: 1rem;
            opacity: 0.3;
        }
        @media (min-width: 768px) { .feature-icon-bg { font-size: 3rem; } }

        .feature-title {
            font-size: 1.25rem;
            font-weight: 700;
            font-family: var(--font-rajdhani);
            margin-bottom: 1rem;
        }
        @media (min-width: 768px) { .feature-title { font-size: 1.5rem; } }

        .feature-text {
            font-size: 0.875rem;
            line-height: 1.625;
            opacity: 0.9;
        }
        @media (min-width: 768px) { .feature-text { font-size: 1rem; } }

        .feature-image-card {
            background-color: #1f2937;
            position: relative;
            min-height: 250px;
        }
        @media (min-width: 768px) { .feature-image-card { min-height: 300px; } }

        .feature-bg-img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            opacity: 0.6;
        }

        .feature-action {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .action-btn {
            width: 3.5rem;
            height: 3.5rem;
            border-radius: 50%;
            background-color: var(--brand-orange);
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.25rem;
            transition: 0.3s;
        }
        @media (min-width: 768px) { 
            .action-btn { width: 4rem; height: 4rem; font-size: 1.5rem; }
        }
        .action-btn:hover { background-color: white; color: var(--brand-orange); }

        /* --- ABOUT SECTION --- */
        .section-py { padding-top: 3rem; padding-bottom: 3rem; }
        @media (min-width: 768px) { .section-py { padding-top: 5rem; padding-bottom: 5rem; } }

        .about-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 2rem;
            align-items: center;
        }
        @media (min-width: 1024px) { 
            .about-grid { grid-template-columns: repeat(2, 1fr); gap: 3rem; }
        }

        .about-image-wrapper { position: relative; }
        .about-img { width: 100%; border-radius: 0.25rem; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); position: relative; z-index: 10; }
        
        .about-decoration {
            position: absolute;
            bottom: -1rem;
            right: -1rem;
            width: 50%;
            height: 50%;
            background-color: var(--brand-orange);
            border-radius: 0.25rem;
            z-index: 0;
            display: none;
        }
        @media (min-width: 768px) { .about-decoration { display: block; } }

        .section-subtitle {
            color: var(--brand-orange);
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            margin-bottom: 0.5rem;
            display: block;
            font-family: var(--font-rajdhani);
        }

        .section-title {
            font-size: 1.875rem;
            color: var(--brand-blue);
            font-weight: 700;
            margin-bottom: 1.5rem;
        }
        @media (min-width: 768px) { .section-title { font-size: 2.25rem; } }

        .section-desc {
            color: #4b5563;
            margin-bottom: 2rem;
            line-height: 1.625;
        }

        .about-features { display: flex; flex-direction: column; gap: 1.5rem; }
        
        .about-feature-item { display: flex; gap: 1rem; }
        
        .feature-icon {
            width: 3rem;
            height: 3rem;
            background-color: var(--light-gray);
            color: var(--brand-orange);
            border-radius: 0.25rem;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.25rem;
            flex-shrink: 0;
        }

        .feature-item-title {
            font-size: 1.125rem;
            font-weight: 700;
            color: var(--brand-blue);
            font-family: var(--font-rajdhani);
        }
        @media (min-width: 768px) { .feature-item-title { font-size: 1.25rem; } }

        .feature-item-text { font-size: 0.875rem; color: #6b7280; margin-top: 0.25rem; }

        /* --- SECTEURS D'INTERVENTION --- */
        .sectors-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1.5rem;
            margin-top: 2rem;
        }
        @media (min-width: 768px) { .sectors-grid { grid-template-columns: repeat(2, 1fr); } }
        @media (min-width: 1024px) { .sectors-grid { grid-template-columns: repeat(3, 1fr); } }

        .sector-card {
            background-color: white;
            border-radius: 0.5rem;
            overflow: hidden;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s;
            cursor: pointer;
        }

        .sector-card:hover {
            transform: translateY(-0.5rem);
        }

        .sector-img-wrapper {
            position: relative;
            height: 180px;
            overflow: hidden;
            /* DIAGONAL CUT EFFECT */
            clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%);
        }

        .sector-img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s;
        }
        
        .sector-card:hover .sector-img {
            transform: scale(1.1);
        }

        .sector-content {
            padding: 1rem 1.5rem 1.5rem;
            text-align: center;
        }

        .sector-title {
            color: var(--brand-blue);
            font-family: var(--font-rajdhani);
            font-size: 1.25rem;
            font-weight: 700;
        }

        /* --- SERVICES SECTION --- */
        .bg-light { background-color: var(--light-gray); }

        .text-center { text-align: center; }
        .mb-large { margin-bottom: 2.5rem; }
        @media (min-width: 768px) { .mb-large { margin-bottom: 4rem; } }

        .services-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1.5rem;
        }
        @media (min-width: 768px) { .services-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem; } }
        @media (min-width: 1024px) { .services-grid { grid-template-columns: repeat(3, 1fr); } }

        .service-card {
            background-color: white;
            padding: 1.5rem;
            border-radius: 0.5rem;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s, box-shadow 0.3s;
        }
        @media (min-width: 768px) { .service-card { padding: 2rem; } }

        .service-card:hover {
            transform: translateY(-0.5rem);
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
        }

        .service-icon-wrapper {
            width: 4rem;
            height: 4rem;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 1.5rem;
            font-size: 1.875rem;
        }

        .service-icon-default { background-color: rgba(0, 168, 232, 0.1); color: var(--brand-orange); }
        .service-icon-highlight { background-color: var(--brand-orange); color: white; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); }

        .service-title {
            font-size: 1.25rem;
            font-weight: 700;
            color: var(--brand-blue);
            margin-bottom: 1rem;
        }
        @media (min-width: 768px) { .service-title { font-size: 1.5rem; } }

        .service-border { border-bottom: 4px solid var(--brand-orange); }

        /* --- MAINTENANCE SECTION --- */
        .maintenance-box {
            background-color: var(--brand-blue);
            color: white;
            padding: 2rem;
            border-radius: 0.5rem;
            position: relative;
            overflow: hidden;
        }
        
        .maintenance-box-bg {
            position: absolute;
            top: 0;
            right: 0;
            opacity: 0.1;
            font-size: 10rem;
            transform: translate(20%, -20%);
        }

        .check-list {
            margin-top: 1.5rem;
        }
        
        .check-list li {
            margin-bottom: 1rem;
            display: flex;
            align-items: flex-start;
            gap: 0.75rem;
        }

        .check-list i {
            color: var(--brand-orange);
            margin-top: 0.25rem;
        }

        /* --- PARTNERS SLIDESHOW --- */
        .partners-section { padding-top: 3rem; padding-bottom: 3rem; overflow: hidden; background-color: white; }
        @media (min-width: 768px) { .partners-section { padding-top: 4rem; padding-bottom: 4rem; } }

        .scroll-container {
            width: 100%;
            overflow: hidden;
            position: relative;
        }

        .scroll-content {
            display: flex;
            gap: 2rem;
            align-items: center;
            white-space: nowrap;
            animation: scroll 25s linear infinite;
        }
        @media (min-width: 768px) { .scroll-content { gap: 3rem; } }

        @keyframes scroll {
            0% { transform: translateX(0); }
            100% { transform: translateX(-100%); }
        }

        .partner-logo {
            flex-shrink: 0;
            width: 10rem;
            height: 5rem;
            background-color: #f9fafb;
            border: 1px solid #f3f4f6;
            border-radius: 0.25rem;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: 0.3s;
        }
        @media (min-width: 768px) { .partner-logo { width: 12rem; height: 6rem; } }

        .partner-logo:hover { border-color: var(--brand-orange); transform: translateY(-0.25rem); }
        
        /* CLIENTS SECTION */
        .clients-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1rem;
            margin-top: 2rem;
        }
        @media (min-width: 768px) { .clients-grid { grid-template-columns: repeat(6, 1fr); } }
        
        .client-logo-item {
            aspect-ratio: 3/2;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 1px solid #e5e7eb;
            border-radius: 0.25rem;
            padding: 1rem;
            transition: 0.3s;
        }

                .client-logo-item2 {
            aspect-ratio: 3/2;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 1px solid #e5e7eb;
            border-radius: 0.25rem;
            padding: 1rem;
            transition: 0.3s;
        }
        .client-logo-item:hover { border-color: var(--brand-orange); }
        .client-logo-item img { max-width: 100%; max-height: 100%; filter: grayscale(100%); opacity: 0.7; }
        .client-logo-item:hover img { filter: grayscale(0); opacity: 1; }
        .client-logo-item2:hover { border-color: var(--brand-orange); }
        .client-logo-item2 img { max-width: 100%; max-height: 100%; filter: grayscale(0%); opacity: 0.7; }
        .client-logo-item2:hover img { filter: grayscale(0); opacity: 1; }
        /* --- PROJECTS SECTION --- */
        .projects-header {
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            align-items: flex-end;
            margin-bottom: 2rem;
        }
        @media (min-width: 768px) { .projects-header { flex-direction: row; margin-bottom: 3rem; } }

        .project-card {
            position: relative;
            overflow: hidden;
            border-radius: 0.5rem;
            height: 16rem;
            cursor: pointer; /* Indique que c'est cliquable */
        }
        @media (min-width: 768px) { .project-card { height: 20rem; } }

        .project-img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s;
        }

        .project-card:hover .project-img { transform: scale(1.1); }

        .project-overlay {
            position: absolute;
            inset: 0;
            background-color: rgba(0, 35, 90, 0.8);
            opacity: 0;
            transition: opacity 0.3s;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            color: white;
            padding: 1rem;
            text-align: center;
        }

        .project-card:hover .project-overlay { opacity: 1; }

        /* --- MOBILE INTERACTIVE HINTS --- */
        .tap-indicator {
            position: absolute;
            top: 1rem;
            right: 1rem;
            background: rgba(255, 255, 255, 0.2);
            backdrop-filter: blur(4px);
            border-radius: 50%;
            width: 2.5rem;
            height: 2.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            border: 1px solid rgba(255, 255, 255, 0.4);
            z-index: 20;
            display: none; /* Hidden on desktop */
            animation: pulse-ring 2s infinite;
        }

        @keyframes pulse-ring {
            0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7); }
            70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(255, 255, 255, 0); }
            100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
        }

        /* Mobile Adjustments for Projects */
        @media (max-width: 1024px) {
            .tap-indicator { display: flex; }
            
            /* Make overlay visible and style it as a bottom gradient on mobile */
            .project-overlay {
                opacity: 1;
                background: linear-gradient(to top, rgba(0, 35, 90, 0.95) 0%, rgba(0, 35, 90, 0.6) 40%, transparent 100%);
                justify-content: flex-end;
                padding-bottom: 1.5rem;
                align-items: center; 
            }
            .project-title { transform: translateY(0); margin-bottom: 0.25rem; }
            .project-category { 
                background-color: var(--brand-orange); 
                color: white; 
                padding: 0.25rem 0.75rem; 
                border-radius: 99px; 
                font-size: 0.75rem; 
                font-weight: 700;
                margin-top: 0.5rem;
                display: inline-block;
            }
        }


        .project-title {
            font-size: 1.25rem;
            font-weight: 700;
            font-family: var(--font-rajdhani);
            transform: translateY(1rem);
            transition: transform 0.3s;
        }
        @media (min-width: 768px) { .project-title { font-size: 1.5rem; } }

        .project-card:hover .project-title { transform: translateY(0); }

        .project-category { color: var(--brand-orange); }

        /* --- AVANT / APRÈS COMPARISON SLIDER --- */
        .compare-slider {
            position: relative;
            width: 100%;
            max-width: 900px;
            height: 300px;
            margin: 0 auto;
            overflow: hidden;
            border-radius: 0.5rem;
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
            touch-action: pan-y;
        }
        @media (min-width: 768px) { .compare-slider { height: 450px; } }

        .compare-img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            user-select: none;
            pointer-events: none;
        }

        .compare-img-clip {
            clip-path: inset(0 50% 0 0);
        }

        .compare-divider {
            position: absolute;
            top: 0;
            bottom: 0;
            left: 50%;
            width: 4px;
            margin-left: -2px;
            background-color: white;
            box-shadow: 0 0 6px rgba(0, 0, 0, 0.4);
            pointer-events: none;
        }

        .compare-handle {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 2.5rem;
            height: 2.5rem;
            background-color: white;
            color: var(--brand-blue);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1rem;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2);
        }

        .compare-label {
            position: absolute;
            top: 1rem;
            background-color: rgba(0, 35, 90, 0.75);
            color: white;
            padding: 0.25rem 0.75rem;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            pointer-events: none;
            z-index: 5;
        }

        .compare-label-before { left: 1rem; }
        .compare-label-after { right: 1rem; }

        .compare-range {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            margin: 0;
            opacity: 0;
            cursor: ew-resize;
            -webkit-appearance: none;
            appearance: none;
        }

        .compare-range::-webkit-slider-thumb {
            -webkit-appearance: none;
            width: 100%;
            height: 100%;
        }

        .compare-range::-moz-range-thumb {
            width: 2.5rem;
            height: 100%;
            border: none;
            background: transparent;
        }

        /* --- MODAL PROJECTS --- */
        .modal-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.8);
            z-index: 9999;
            display: none; /* Caché par défaut */
            justify-content: center;
            align-items: center;
            padding: 1rem;
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .modal-overlay.active {
            display: flex;
            opacity: 1;
        }

        .modal-content {
            background-color: white;
            width: 100%;
            max-width: 900px;
            border-radius: 0.5rem;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
            animation: modalSlideUp 0.3s ease-out;
            max-height: 90vh; /* Empêche de dépasser la hauteur de l'écran */
        }

        @media (min-width: 768px) {
            .modal-content {
                flex-direction: row;
                height: 500px;
            }
        }

        @keyframes modalSlideUp {
            from { transform: translateY(50px); opacity: 0; }
            to { transform: translateY(0); opacity: 1; }
        }

        .modal-image-col {
            width: 100%;
            height: 250px;
            background-color: #f3f4f6;
        }
        @media (min-width: 768px) {
            .modal-image-col {
                width: 50%;
                height: 100%;
            }
        }

        .modal-img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .modal-text-col {
            width: 100%;
            padding: 2rem;
            display: flex;
            flex-direction: column;
            justify-content: center;
            overflow-y: auto; /* Scroll si le texte est trop long */
            position: relative;
        }
        @media (min-width: 768px) {
            .modal-text-col {
                width: 50%;
            }
        }

        .close-modal {
            position: absolute;
            top: 1rem;
            right: 1.5rem;
            font-size: 1.5rem;
            color: #9ca3af;
            cursor: pointer;
            transition: color 0.2s;
            background: none;
            border: none;
        }

        .close-modal:hover {
            color: var(--brand-orange);
        }

        .modal-category {
            color: var(--brand-orange);
            text-transform: uppercase;
            font-weight: 700;
            letter-spacing: 0.05em;
            font-size: 0.875rem;
            margin-bottom: 0.5rem;
        }

        .modal-title {
            font-family: var(--font-rajdhani);
            font-size: 2rem;
            color: var(--brand-blue);
            margin-bottom: 1rem;
            line-height: 1.2;
        }

        .modal-description {
            color: #4b5563;
            line-height: 1.6;
            margin-bottom: 2rem;
        }

        .modal-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .modal-tag {
            background-color: var(--light-gray);
            color: var(--brand-blue);
            padding: 0.25rem 0.75rem;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 500;
        }

        /* --- FAQ SECTION --- */
        .accordion-item { border-bottom: 1px solid #e5e7eb; margin-bottom: 1rem; }
        
        .accordion-input { display: none; }
        
        .accordion-label {
            display: flex;
            justify-content: space-between;
            align-items: center;
            cursor: pointer;
            padding-top: 1rem;
            padding-bottom: 1rem;
            color: var(--brand-blue);
            font-weight: 700;
            font-size: 1rem;
        }
        @media (min-width: 768px) { .accordion-label { font-size: 1.125rem; } }

        .accordion-icon { transition: transform 0.3s; color: var(--brand-orange); }
        
        .accordion-content {
            transition: max-height 0.3s ease-out, padding 0.3s ease;
            max-height: 0;
            overflow: hidden;
            color: #4b5563;
            font-size: 0.875rem;
        }
        @media (min-width: 768px) { .accordion-content { font-size: 1rem; } }

        /* Logic for Accordion */
        .accordion-input:checked + .accordion-label + .accordion-content {
            max-height: 500px;
            padding-bottom: 1.25rem;
        }
        
        .accordion-input:checked + .accordion-label .accordion-icon {
            transform: rotate(180deg);
        }

        .faq-image-container {
            position: relative;
            height: 16rem;
        }
        @media (min-width: 768px) { .faq-image-container { height: 400px; } }

        .faq-img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 10%; border-radius: 0.25rem; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); }
        .faq-overlay { position: absolute; inset: 0; background-color: var(--brand-blue); opacity: 0.2; border-radius: 0.25rem; }
        
        .faq-badge {
            position: absolute;
            bottom: -1.5rem;
            left: -1.5rem;
            background-color: var(--brand-orange);
            color: white;
            padding: 1.5rem;
            border-radius: 0.25rem;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
            display: none;
        }
        @media (min-width: 768px) { .faq-badge { display: block; } }

        /* --- STATS SECTION --- */
        .stats-section {
            padding-top: 3rem;
            padding-bottom: 3rem;
            background-color: var(--brand-blue);
            color: white;
            position: relative;
            overflow: hidden;
        }
        @media (min-width: 768px) { .stats-section { padding-top: 5rem; padding-bottom: 5rem; } }

        .stats-bg {
            position: absolute;
            inset: 0;
            opacity: 0.2;
            background-image: url('https://www.transparenttextures.com/patterns/carbon-fibre.png');
        }

        .stats-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 2rem;
            text-align: center;
            position: relative;
            z-index: 10;
        }
        @media (min-width: 768px) { .stats-grid { grid-template-columns: repeat(4, 1fr); } }

        .stat-number {
            font-size: 2.25rem;
            font-weight: 700;
            font-family: var(--font-rajdhani);
            color: var(--brand-orange);
            margin-bottom: 0.5rem;
        }
        @media (min-width: 768px) { .stat-number { font-size: 3rem; } }

        .stat-label {
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            opacity: 0.8;
        }
        @media (min-width: 768px) { .stat-label { font-size: 0.875rem; } }

        /* --- CONTACT SECTION --- */
        .contact-card {
            background-color: white;
            padding: 1.5rem;
            border-radius: 0.5rem;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
        }
        @media (min-width: 768px) { .contact-card { padding: 2.5rem; } }

        .contact-details-list { display: flex; flex-direction: column; gap: 1.5rem; }
        .contact-detail-item { display: flex; align-items: flex-start; gap: 1rem; }
        
        .contact-icon-wrapper {
            width: 2.5rem;
            height: 2.5rem;
            background-color: rgba(0, 168, 232, 0.1);
            color: var(--brand-orange);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.125rem;
            flex-shrink: 0;
        }
        @media (min-width: 768px) { .contact-icon-wrapper { width: 3rem; height: 3rem; font-size: 1.25rem; } }

        .form-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1rem;
            margin-bottom: 1rem;
        }
        @media (min-width: 768px) { .form-grid { grid-template-columns: repeat(2, 1fr); } }

        .form-input, .form-textarea {
            width: 100%;
            padding: 0.75rem 1rem;
            background-color: #f9fafb;
            border: 1px solid #e5e7eb;
            border-radius: 0.25rem;
            transition: 0.3s;
            font-family: inherit;
        }

        .form-input:focus, .form-textarea:focus {
            outline: none;
            border-color: var(--brand-orange);
        }

        .form-btn {
            background-color: var(--brand-orange);
            color: white;
            font-weight: 700;
            padding: 0.75rem 2rem;
            border-radius: 0.25rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            width: 100%;
            border: none;
            cursor: pointer;
            transition: 0.3s;
        }
        .form-btn:hover { background-color: #0891b2; }

        /* --- TESTIMONIALS --- */
        .testimonial-card {
            background-color: var(--light-gray);
            padding: 1.5rem;
            border-radius: 0.25rem;
            box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
            align-items: center;
        }
        @media (min-width: 768px) { 
            .testimonial-card { padding: 2rem; flex-direction: row; align-items: flex-start; } 
        }

        .testimonial-img {
            width: 4rem;
            height: 4rem;
            border-radius: 50%;
            object-fit: cover;
            flex-shrink: 0;
            background-color: #d1d5db;
        }
        @media (min-width: 768px) { .testimonial-img { width: 5rem; height: 5rem; } }

        .testimonial-content { text-align: center; width: 100%; }
        @media (min-width: 768px) { .testimonial-content { text-align: left; } }

        /* --- BLOG --- */
        .blog-card {
            background-color: white;
            box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
            border-radius: 0.25rem;
            overflow: hidden;
            cursor: pointer; /* Indique que la carte est cliquable */
        }
        
        .blog-img-container { 
            height: 12rem; 
            overflow: hidden; 
            position: relative; /* Pour positionner l'icône interactive */
        }
        .blog-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
        .blog-card:hover .blog-img { transform: scale(1.05); }

        .blog-content { padding: 1.5rem; }
        .blog-meta { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: #9ca3af; margin-bottom: 0.75rem; }
        .blog-title { font-size: 1.125rem; font-weight: 700; color: var(--brand-blue); margin-bottom: 0.5rem; cursor: pointer; transition: 0.3s; }
        @media (min-width: 768px) { .blog-title { font-size: 1.25rem; } }
        .blog-title:hover { color: var(--brand-orange); }

        .read-more { font-size: 0.875rem; font-weight: 700; text-transform: uppercase; color: var(--brand-orange); letter-spacing: 0.05em; margin-top: 1rem; display: inline-block; }

        /* --- FOOTER --- */
        .footer {
            background-color: var(--brand-dark);
            color: white;
            padding-top: 4rem;
            padding-bottom: 2.5rem;
        }
        @media (min-width: 768px) { .footer { padding-top: 5rem; } }

        .footer-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 2rem;
            margin-bottom: 3rem;
        }
        @media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 3rem; } }
        @media (min-width: 1024px) { .footer-grid { grid-template-columns: repeat(4, 1fr); } }

        .footer-title {
            font-size: 1.25rem;
            font-weight: 700;
            font-family: var(--font-rajdhani);
            margin-bottom: 1.5rem;
            position: relative;
            display: inline-block;
        }
        
        .footer-title::after {
            content: '';
            position: absolute;
            bottom: -0.5rem;
            left: 0;
            width: 2.5rem;
            height: 0.25rem;
            background-color: var(--brand-orange);
        }

        .footer-text { color: #9ca3af; font-size: 0.875rem; line-height: 1.625; margin-bottom: 1.5rem; }
        
        .footer-links li, .footer-contact li { margin-bottom: 0.75rem; font-size: 0.875rem; color: #9ca3af; }
        .footer-links a:hover { color: var(--brand-orange); transition: color 0.3s; }

        .footer-contact li { display: flex; gap: 1rem; align-items: center; }

        .newsletter-form { display: flex; flex-direction: column; gap: 0.5rem; }
        @media (min-width: 640px) { .newsletter-form { flex-direction: row; gap: 0; } }

        .newsletter-input {
            width: 100%;
            padding: 0.75rem 1rem;
            background-color: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 0.25rem;
            color: white;
            font-size: 0.875rem;
        }
        @media (min-width: 640px) { .newsletter-input { border-radius: 0.25rem 0 0 0.25rem; } }
        
        .newsletter-btn {
            background-color: var(--brand-orange);
            color: white;
            padding: 0.75rem 1rem;
            border: none;
            border-radius: 0.25rem;
            cursor: pointer;
            width: 100%;
        }
        @media (min-width: 640px) { .newsletter-btn { width: auto; border-radius: 0 0.25rem 0.25rem 0; } }

        .footer-bottom {
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            padding-top: 2rem;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            align-items: center;
            font-size: 0.875rem;
            color: #6b7280;
            gap: 1rem;
            text-align: center;
        }
        @media (min-width: 768px) { .footer-bottom { flex-direction: row; text-align: left; gap: 0; } }

        .footer-bottom-links { display: flex; gap: 1.5rem; }
        .footer-bottom-links a:hover { color: white; }

        /* Original helpers */
        .clip-slant {
            /* Handled in media query block above */
        }
        
        .temp-cycle {
            animation: tempCycle 3s linear infinite;
        }

        @keyframes tempCycle {
            0%   { color: #3b82f6; transform: translateY(0); }
            50%  { color: #f97316; transform: translateY(-4px); }
            100% { color: #3b82f6; transform: translateY(0); }
        }

        .leaf-sway {
            animation: leafSway 3s ease-in-out infinite;
            transform-origin: bottom center;
        }

        @keyframes leafSway {
            0%   { transform: rotate(0deg); }
            25%  { transform: rotate(5deg); }
            50%  { transform: rotate(-5deg); }
            100% { transform: rotate(0deg); }
        }

        .tools-rotate {
            transition: transform 0.6s cubic-bezier(.4,0,.2,1);
        }

        .tools-rotate:hover {
            transform: rotate(90deg);
        }

