        :root {
            --color-black: #0A0A0A; --color-dark: #1A1A1A; --color-charcoal: #2D2D2D;
            --color-gray-700: #4A4A4A; --color-gray-500: #7A7A7A; --color-gray-400: #999999;
            --color-gray-300: #B8B8B8; --color-gray-200: #D4D4D4; --color-gray-100: #EBEBEB;
            --color-gray-50: #F5F5F5; --color-white: #FAFAFA; --color-pure-white: #FFFFFF;
            --color-accent: #C8A455; --color-accent-light: #D4B978; --color-accent-dark: #A8873E;
            --color-accent-muted: #C8A45512;
            --font-display: 'DM Serif Display', Georgia, serif;
            --font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
            --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
            --duration-fast: 200ms; --duration-base: 350ms; --duration-slow: 600ms;
        }
        *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
        html { font-size: 16px; scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
        body { font-family: var(--font-body); color: var(--color-dark); background: var(--color-pure-white); line-height: 1.6; overflow-x: hidden; }
        ::selection { background: var(--color-accent); color: var(--color-pure-white); }
        img { max-width: 100%; display: block; }
        a { text-decoration: none; color: inherit; }

        /* Grain overlay */
        body::after {
            content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            pointer-events: none; z-index: 9999; opacity: 0.022;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
        }

        /* Cursor glow */
        .cursor-glow {
            position: fixed; width: 320px; height: 320px; border-radius: 50%;
            background: radial-gradient(circle, rgba(200,164,85,0.06) 0%, transparent 70%);
            pointer-events: none; z-index: 1; transform: translate(-50%, -50%);
            transition: opacity 0.4s ease; opacity: 0;
        }
        .cursor-glow.active { opacity: 1; }

        .container { max-width: 1120px; margin: 0 auto; padding: 0 2rem; }
        .container-wide { max-width: 1280px; margin: 0 auto; padding: 0 2rem; }
        .container-narrow { max-width: 800px; margin: 0 auto; padding: 0 2rem; }

        /* NAV */
        .nav {
            position: fixed; top: 0; left: 0; right: 0; z-index: 100;
            background: rgba(255,255,255,0.92); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
            border-bottom: 1px solid transparent; transition: border-color var(--duration-base) var(--ease-out);
        }
        .nav.scrolled { border-bottom-color: var(--color-gray-100); }
        .nav-inner { max-width: 1120px; margin: 0 auto; padding: 1.25rem 2rem; display: flex; align-items: center; justify-content: space-between; }
        .nav-brand { font-family: var(--font-display); font-size: 1.25rem; color: var(--color-black); letter-spacing: -0.03em; display: flex; align-items: center; gap: 8px; }
        .nav-brand span { color: var(--color-accent); }
        .nav-links { display: flex; gap: 2.5rem; list-style: none; }
        .nav-links a { font-size: 0.8125rem; font-weight: 500; color: var(--color-gray-500); letter-spacing: 0.05em; text-transform: uppercase; transition: color var(--duration-fast) var(--ease-out); position: relative; }
        .nav-links a::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 1px; background: var(--color-accent); transition: width var(--duration-base) var(--ease-out); }
        .nav-links a:hover { color: var(--color-black); }
        .nav-links a:hover::after { width: 100%; }
        .nav-cta { font-size: 0.8125rem; font-weight: 500; color: var(--color-pure-white); background: var(--color-black); padding: 0.625rem 1.5rem; border-radius: 9999px; transition: all var(--duration-base) var(--ease-out); }
        .nav-cta:hover { background: var(--color-charcoal); transform: translateY(-1px); }
        .nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 0.5rem; }
        .nav-toggle span { display: block; width: 20px; height: 1.5px; background: var(--color-black); margin: 5px 0; transition: all var(--duration-fast) var(--ease-out); }

        /* HERO */
        .hero { padding: 10rem 0 6rem; position: relative; }
        .hero-content { max-width: 720px; }
        .hero-badge { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); background: var(--color-accent-muted); padding: 0.5rem 1rem; border-radius: 9999px; margin-bottom: 2rem; }
        .hero-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--color-accent); animation: pulse 2s ease-in-out infinite; }
        @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
        .hero h1 { font-family: var(--font-display); font-size: 3.75rem; line-height: 1.1; letter-spacing: -0.03em; color: var(--color-black); margin-bottom: 1.5rem; }
        .hero h1 em { font-style: italic; color: var(--color-accent); position: relative; display: inline-block; }
        .hero h1 em::after { content: ''; position: absolute; bottom: 2px; left: 0; width: 0; height: 2px; background: var(--color-accent); transition: width 0.8s var(--ease-out); }
        .hero h1 em.animate::after { width: 100%; }
        .hero-desc { font-size: 1.125rem; color: var(--color-gray-500); line-height: 1.7; max-width: 540px; margin-bottom: 2.5rem; }
        .hero-actions { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
        .btn-primary { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-body); font-size: 0.9375rem; font-weight: 500; color: var(--color-pure-white); background: var(--color-black); padding: 1rem 2rem; border-radius: 9999px; border: none; cursor: pointer; transition: all var(--duration-base) var(--ease-out); }
        .btn-primary:hover { background: var(--color-charcoal); transform: translateY(-2px); box-shadow: 0 8px 30px rgba(0,0,0,0.12); }
        .btn-secondary { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-body); font-size: 0.9375rem; font-weight: 500; color: var(--color-black); background: transparent; padding: 1rem 2rem; border-radius: 9999px; border: 1.5px solid var(--color-gray-200); cursor: pointer; transition: all var(--duration-base) var(--ease-out); }
        .btn-secondary:hover { border-color: var(--color-black); transform: translateY(-1px); }
        .btn-arrow { transition: transform var(--duration-fast) var(--ease-out); display: inline-block; }
        .btn-primary:hover .btn-arrow, .btn-secondary:hover .btn-arrow, .btn-accent:hover .btn-arrow { transform: translateX(4px); }
        .hero-proof { margin-top: 4rem; padding-top: 2.5rem; border-top: 1px solid var(--color-gray-100); display: flex; gap: 3rem; align-items: center; flex-wrap: wrap; }
        .proof-item { display: flex; flex-direction: column; }
        .proof-number { font-family: var(--font-display); font-size: 1.75rem; color: var(--color-black); line-height: 1; }
        .proof-label { font-size: 0.8125rem; color: var(--color-gray-400); margin-top: 0.25rem; }

        /* SECTIONS */
        .section { padding: 6rem 0; }
        .section-alt { background: var(--color-gray-50); }
        .section-dark { background: var(--color-black); color: var(--color-pure-white); }
        .section-label { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-accent); margin-bottom: 1rem; }
        .section-title { font-family: var(--font-display); font-size: 2.75rem; line-height: 1.15; letter-spacing: -0.03em; color: var(--color-black); margin-bottom: 1rem; }
        .section-dark .section-title { color: var(--color-pure-white); }
        .section-desc { font-size: 1.0625rem; color: var(--color-gray-500); line-height: 1.65; max-width: 560px; }
        .section-dark .section-desc { color: var(--color-gray-400); }
        .section-header { margin-bottom: 4rem; }

        /* Line accent */
        .line-reveal { width: 0; height: 1px; background: var(--color-accent); transition: width 1s var(--ease-out); margin: 3rem 0; }
        .line-reveal.visible { width: 80px; }

        /* SERVICES */
        .services-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
        .service-card { padding: 2.5rem; border-radius: 16px; border: 1px solid var(--color-gray-100); background: var(--color-pure-white); transition: all var(--duration-base) var(--ease-out); position: relative; overflow: hidden; }
        .service-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--color-accent), transparent); opacity: 0; transition: opacity var(--duration-base) var(--ease-out); }
        .service-card:hover::before { opacity: 1; }
        .service-card:hover { transform: translateY(-4px); box-shadow: 0 16px 50px rgba(0,0,0,0.06); border-color: transparent; }
        .service-card.featured { border-color: var(--color-accent); background: linear-gradient(135deg, var(--color-pure-white), #FFFDF8); }
        .service-card.featured::after { content: 'Expertise clé'; position: absolute; top: 1.25rem; right: 1.25rem; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-accent); background: var(--color-accent-muted); padding: 0.375rem 0.75rem; border-radius: 9999px; }
        .service-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 1.5rem; }
        .service-icon-qualiopi { background: #C8A45515; }
        .service-icon-infra { background: #4A90D915; }
        .service-icon-design { background: #0A0A0A0A; }
        .service-icon-auto { background: #F5A62315; }
        .service-title { font-family: var(--font-display); font-size: 1.375rem; color: var(--color-black); margin-bottom: 0.75rem; }
        .service-text { font-size: 0.9375rem; color: var(--color-gray-500); line-height: 1.65; margin-bottom: 1.5rem; }
        .service-list { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
        .service-list li { font-size: 0.8125rem; color: var(--color-gray-700); padding-left: 1.25rem; position: relative; }
        .service-list li::before { content: '→'; position: absolute; left: 0; color: var(--color-accent); font-size: 0.75rem; }

        /* PROJECTS — FULL WIDTH STACKED */
        .projects-stack { display: flex; flex-direction: column; gap: 4rem; }
        .project-card-wide { display: grid; grid-template-columns: 1.4fr 1fr; gap: 0; border-radius: 20px; overflow: hidden; border: 1px solid var(--color-gray-100); background: var(--color-pure-white); transition: all var(--duration-slow) var(--ease-out); min-height: 400px; }
        .project-card-wide:hover { transform: translateY(-4px); box-shadow: 0 24px 60px rgba(0,0,0,0.07); border-color: transparent; }
        .project-card-wide:nth-child(even) { direction: rtl; }
        .project-card-wide:nth-child(even) > * { direction: ltr; }
        .project-image-wide { position: relative; overflow: hidden; min-height: 400px; background: var(--color-gray-50); }
        .project-image-wide img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease-out); }
        .project-card-wide:hover .project-image-wide img { transform: scale(1.03); }
        .project-body-wide { padding: 3rem; display: flex; flex-direction: column; justify-content: center; }
        .project-tags { display: flex; gap: 0.5rem; margin-bottom: 1.25rem; flex-wrap: wrap; }
        .project-tag { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.25rem 0.625rem; border-radius: 9999px; }
        .tag-qualiopi { color: var(--color-accent); background: var(--color-accent-muted); }
        .tag-webflow { color: var(--color-gray-700); background: var(--color-gray-50); }
        .tag-design { color: #4A90D9; background: #4A90D910; }
        .tag-infra { color: #34A853; background: #34A85310; }
        .project-title-wide { font-family: var(--font-display); font-size: 2rem; color: var(--color-black); margin-bottom: 0.75rem; letter-spacing: -0.02em; }
        .project-desc-wide { font-size: 1rem; color: var(--color-gray-500); line-height: 1.7; margin-bottom: 1.5rem; }
        .project-link { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; font-weight: 500; color: var(--color-accent); transition: gap var(--duration-base) var(--ease-out); }
        .project-link:hover { gap: 0.75rem; }

        /* PROCESS */
        .process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
        .process-step { padding-top: 2rem; border-top: 2px solid var(--color-gray-100); transition: border-color var(--duration-base) var(--ease-out); }
        .process-step:hover { border-top-color: var(--color-accent); }
        .process-number { font-family: var(--font-display); font-size: 2rem; color: var(--color-gray-200); margin-bottom: 1rem; line-height: 1; transition: color var(--duration-base) var(--ease-out); }
        .process-step:hover .process-number { color: var(--color-accent); }
        .process-title { font-size: 1rem; font-weight: 600; color: var(--color-black); margin-bottom: 0.5rem; }
        .process-text { font-size: 0.875rem; color: var(--color-gray-500); line-height: 1.6; }

        /* ABOUT */
        .about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
        .about-image-container { position: relative; }
        .about-image-container::before { content: ''; position: absolute; top: -12px; left: -12px; width: 100px; height: 100px; border-top: 2px solid var(--color-accent); border-left: 2px solid var(--color-accent); border-radius: 4px 0 0 0; opacity: 0.3; z-index: 2; transition: all var(--duration-slow) var(--ease-out); }
        .about-image-container::after { content: ''; position: absolute; bottom: -12px; right: -12px; width: 100px; height: 100px; border-bottom: 2px solid var(--color-accent); border-right: 2px solid var(--color-accent); border-radius: 0 0 4px 0; opacity: 0.3; z-index: 2; transition: all var(--duration-slow) var(--ease-out); }
        .about-image-container:hover::before, .about-image-container:hover::after { opacity: 0.7; }
        .about-image { width: 100%; aspect-ratio: 4/5; border-radius: 16px; overflow: hidden; position: relative; }
        .about-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease-out); }
        .about-image:hover img { transform: scale(1.02); }
        .about-text h2 { font-family: var(--font-display); font-size: 2.25rem; line-height: 1.2; letter-spacing: -0.02em; color: var(--color-black); margin-bottom: 1.5rem; }
        .about-text p { font-size: 1rem; color: var(--color-gray-500); line-height: 1.7; margin-bottom: 1.25rem; }
        .about-text p strong { color: var(--color-dark); font-weight: 500; }
        .about-detail { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--color-gray-100); display: flex; gap: 3rem; }
        .about-detail-label { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); margin-bottom: 0.25rem; }
        .about-detail-value { font-size: 0.9375rem; color: var(--color-dark); }

        /* TESTIMONIAL */
        .testimonial-section { text-align: center; }
        .testimonial-mark { font-family: var(--font-display); font-size: 6rem; line-height: 1; color: var(--color-accent); opacity: 0.15; margin-bottom: -1.5rem; }
        .testimonial-quote { font-family: var(--font-display); font-size: 1.75rem; line-height: 1.45; color: var(--color-black); max-width: 700px; margin: 0 auto 2rem; font-style: italic; }
        .testimonial-author { font-size: 0.875rem; color: var(--color-gray-500); }
        .testimonial-author strong { color: var(--color-dark); font-weight: 500; }

        /* PARTNERS */
        .partner-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 3rem; align-items: start; }
        .partner-desc { font-size: 1.0625rem; color: var(--color-gray-500); line-height: 1.7; max-width: 560px; margin-bottom: 1rem; }
        .partner-points { margin-top: 2.5rem; display: flex; flex-direction: column; gap: 1.5rem; }
        .partner-point { display: flex; gap: 1rem; align-items: flex-start; }
        .partner-point-icon { width: 28px; height: 28px; border-radius: 50%; background: var(--color-accent-muted); color: var(--color-accent); display: flex; align-items: center; justify-content: center; font-size: 0.8125rem; font-weight: 700; flex-shrink: 0; margin-top: 2px; border: 1px solid #C8A45530; }
        .partner-point strong { display: block; font-size: 0.9375rem; font-weight: 600; color: var(--color-dark); margin-bottom: 0.25rem; }
        .partner-point span { font-size: 0.875rem; color: var(--color-gray-500); line-height: 1.55; }
        .partner-cta-card { position: sticky; top: 6rem; }
        .partner-cta-inner { background: var(--color-black); border-radius: 20px; padding: 2.5rem; color: var(--color-pure-white); }
        .partner-cta-inner h3 { font-family: var(--font-display); font-size: 1.75rem; color: var(--color-pure-white); margin-bottom: 1rem; }
        .partner-cta-inner > p { font-size: 0.9375rem; color: var(--color-gray-400); line-height: 1.6; margin-bottom: 2rem; }
        .partner-cta-details { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--color-charcoal); display: flex; flex-direction: column; gap: 1rem; }
        .partner-cta-detail { display: flex; justify-content: space-between; align-items: center; }
        .partner-cta-detail-label { font-size: 0.75rem; color: var(--color-gray-500); letter-spacing: 0.05em; text-transform: uppercase; font-weight: 500; }
        .partner-cta-detail-value { font-size: 0.875rem; color: var(--color-pure-white); font-weight: 500; }

        /* CTA */
        .cta-section { text-align: center; padding: 8rem 0; position: relative; overflow: hidden; }
        .cta-section::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 600px; height: 600px; border-radius: 50%; background: radial-gradient(circle, rgba(200,164,85,0.08) 0%, transparent 70%); pointer-events: none; }
        .cta-section .section-title { color: var(--color-pure-white); margin-bottom: 1rem; }
        .cta-desc { font-size: 1.0625rem; color: var(--color-gray-400); max-width: 480px; margin: 0 auto 2.5rem; line-height: 1.65; }
        .cta-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
        .btn-accent { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-body); font-size: 0.9375rem; font-weight: 500; color: var(--color-pure-white); background: var(--color-accent); padding: 1rem 2rem; border-radius: 9999px; border: none; cursor: pointer; transition: all var(--duration-base) var(--ease-out); }
        .btn-accent:hover { background: var(--color-accent-dark); transform: translateY(-2px); box-shadow: 0 8px 30px rgba(200,164,85,0.25); }
        .btn-dark-outline { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-body); font-size: 0.9375rem; font-weight: 500; color: var(--color-pure-white); background: transparent; padding: 1rem 2rem; border-radius: 9999px; border: 1.5px solid var(--color-charcoal); cursor: pointer; transition: all var(--duration-base) var(--ease-out); }
        .btn-dark-outline:hover { border-color: var(--color-gray-500); transform: translateY(-1px); }
        
        /* Contact Form */
        .contact-form { max-width: 640px; margin: 2.5rem auto 0; display: flex; flex-direction: column; gap: 1.25rem; }
        .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
        @media (max-width: 600px) { .form-row { grid-template-columns: 1fr; } }
        .form-group { display: flex; flex-direction: column; gap: 0.4rem; }
        .form-group label { font-size: 0.8rem; font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; opacity: 0.6; color: var(--color-pure-white); }
        .form-group input, .form-group textarea { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; padding: 0.75rem 1rem; color: var(--color-pure-white); font-family: var(--font-body); font-size: 0.95rem; transition: border-color var(--duration-base) var(--ease-out); resize: vertical; }
        .form-group input::placeholder, .form-group textarea::placeholder { color: var(--color-gray-500); }
        .form-group input, .form-group textarea { display: block; width: 100%; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; padding: 0.75rem 1rem; color: var(--color-pure-white); font-family: var(--font-body); font-size: 0.95rem; transition: border-color var(--duration-base) var(--ease-out); resize: vertical; box-sizing: border-box; }
        .form-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

        /* FOOTER */
        .footer { padding: 3rem 0; border-top: 1px solid var(--color-gray-100); }
        .footer-inner { display: flex; justify-content: space-between; align-items: center; }
        .footer-brand { font-family: var(--font-display); font-size: 1rem; color: var(--color-gray-400); display: flex; align-items: center; gap: 8px; }
        .footer-brand span { color: var(--color-accent); }
        .footer-links { display: flex; gap: 2rem; list-style: none; }
        .footer-links a { font-size: 0.8125rem; color: var(--color-gray-400); transition: color var(--duration-fast) var(--ease-out); }
        .footer-links a:hover { color: var(--color-black); }
        .footer-copy { font-size: 0.75rem; color: var(--color-gray-300); }

        /* ANIMATIONS */
        .reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out); }
        .reveal.visible { opacity: 1; transform: translateY(0); }
        .reveal-delay-1 { transition-delay: 100ms; }
        .reveal-delay-2 { transition-delay: 200ms; }
        .reveal-delay-3 { transition-delay: 300ms; }
        .parallax { will-change: transform; }

        /* RESPONSIVE */
        @media (max-width: 1024px) {
            .services-grid { grid-template-columns: repeat(2, 1fr); }
            .process-grid { grid-template-columns: repeat(2, 1fr); }
            .project-card-wide { grid-template-columns: 1fr; }
            .project-card-wide:nth-child(even) { direction: ltr; }
            .project-image-wide { min-height: 280px; }
        }
        @media (max-width: 768px) {
            .cursor-glow { display: none; }
            .nav-links, .nav-cta { display: none; }
            .nav-toggle { display: block; }
            .hero { padding: 8rem 0 4rem; }
            .hero h1 { font-size: 2.5rem; }
            .section { padding: 4rem 0; }
            .section-title { font-size: 2rem; }
            .services-grid { grid-template-columns: 1fr; }
            .process-grid { grid-template-columns: 1fr; }
            .about-grid { grid-template-columns: 1fr; gap: 2rem; }
            .about-image-container::before, .about-image-container::after { display: none; }
            .partner-grid { grid-template-columns: 1fr; }
            .partner-cta-card { position: static; }
            .hero-proof { gap: 2rem; }
            .footer-inner { flex-direction: column; gap: 1.5rem; text-align: center; }
            .testimonial-quote { font-size: 1.375rem; }
            .project-body-wide { padding: 2rem; }
            .about-detail { flex-direction: column; gap: 1.5rem; }
        }
