:root {
            --sage-green: #9fb0a2; /* Le vert signature de ton site */
            --soft-white: #ffffff;
            --light-grey: #f9f9f9;
            --text-dark: #4a4a4a;
            --font-serif: 'Cormorant Garamond', serif;
            --font-sans: 'Montserrat', sans-serif;
        }

        body {
            margin: 0;
            padding: 0;
            font-family: var(--font-sans);
            color: var(--text-dark);
            background-color: var(--soft-white);
            -webkit-font-smoothing: antialiased;
        }

        /* --- Navigation --- */
        nav {
            padding: 40px 20px;
            text-align: center;
            background: white;
        }

        .logo {
            font-family: var(--font-serif);
            font-size: 2.2rem;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: var(--sage-green);
            margin-bottom: 20px;
            display: block;
            text-decoration: none;
        }

        .nav-links a {
            text-decoration: none;
            color: var(--text-dark);
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 2px;
            margin: 0 15px;
            font-weight: 300;
            transition: color 0.3s;
        }

        .nav-links a:hover {
            color: var(--sage-green);
        }

        /* --- Hero Section --- */
        .hero {
            position: relative;
            height: 80vh;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .hero-img {
            position: absolute;
            width: 100%;
            height: 100%;
            object-fit: cover;
            /* Image d'ambiance lumineuse */
          
            z-index: -1;
        }

        .hero-text {
            text-align: center;
            color: white;
            background: rgba(5, 5, 5, 0.4); /* Augmentation de l'opacité pour rendre le cadre plus foncé */
            backdrop-filter: blur(0px);
            padding: 40px 60px;
            border: 1px solid rgba(255, 255, 255, 0.3);
        }

        .hero-text h1 {
            font-family: Title;
            font-size: 450%;
            font-weight: 300;
            margin: 0;
        }

        .hero-text p {
            font-family: Timeless;
            font-size: 200%;
        }

        /* --- Intro "L'Approche" --- */
        .intro {
            max-width: 700px;
            margin: 100px auto;
            text-align: center;
            padding: 0 20px;
        }

        .intro-title h2 {
            font-family: var(--font-serif);
            font-size: 2.5rem;
            font-weight: 300;
            color: var(--sage-green);
            font-style: italic;
        }

        .intro p {
            font-weight: 300;
            line-height: 1.8;
            font-size: 1.1rem;
        }

        /* --- Galerie Storytelling --- */
        .gallery-container {
            padding: 0 40px 100px 40px;
        }

        .story-row {
            display: flex;
            margin-bottom: 100px;
            align-items: center;
            gap: 50px;
        }

        .story-row:nth-child(even) {
            flex-direction: row-reverse;
        }

        .story-image-main {
            flex: 2;
            height: 600px;
            background-size: cover;
            background-position: center;
        }

        .story-details {
            flex: 1;
            padding: 20px;
        }

        .story-details h3 {
            font-family: var(--font-serif);
            font-size: 2rem;
            margin-bottom: 10px;
        }

        .story-details .location {
            color: var(--sage-green);
            text-transform: uppercase;
            font-size: 0.8rem;
            letter-spacing: 2px;
            margin-bottom: 20px;
            display: block;
        }

        .btn-view {
            display: inline-block;
            margin-top: 20px;
            padding: 12px 30px;
            border: 1px solid var(--sage-green);
            color: var(--sage-green);
            text-decoration: none;
            font-size: 0.8rem;
            letter-spacing: 1px;
            transition: all 0.3s;
        }

        .btn-view:hover {
            background: var(--sage-green);
            color: white;
        }

        /* --- Footer --- */
        footer {
            background: var(--light-grey);
            padding: 80px 20px;
            text-align: center;
            border-top: 1px solid #eee;
        }

        .footer-cta h2 {
            font-family: var(--font-serif);
            font-size: 2.2rem;
            margin-bottom: 30px;
        }

        /* Responsive */
        @media (max-width: 900px) {
            .story-row, .story-row:nth-child(even) {
                flex-direction: column;
            }
            .story-image-main { width: 100%; height: 400px; }
            .hero-text h1 { font-size: 2rem; }
        }

          /* --- Section Portfolio Dynamique --- */
        .section-padding { padding: 100px 10%; }
        
        .grid-portfolio {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            grid-template-rows: repeat(2, 300px);
            gap: 15px;
            margin-top: 50px;
        }
        .grid-item { background-size: cover; background-position: center; border-radius: 2px; transition: 0.4s; position: relative; overflow: hidden;}
        .grid-item:hover { transform: scale(0.98); }
        .grid-item span { position: absolute; bottom: 15px; left: 15px; color: white; font-size: 0.7rem; letter-spacing: 2px; text-transform: uppercase; background: rgba(0,0,0,0.3); padding: 5px 10px; opacity: 0; transition: 0.3s;}
        .grid-item:hover span { opacity: 1; }

        /* Layout spécifique pour le style "Pinterest" */
        .item-1 { grid-column: span 2; grid-row: span 2; }
        .item-2 { grid-column: span 1; }
        .item-3 { grid-column: span 1; }
        .item-4 { grid-column: span 2; }

        /* --- Expertise / Moments Clés --- */
        .expertise { background-color: #efeaeb; text-align: center; }
        .expertise-grid {
            display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 60px;
        }
        .exp-card img { width: 100%; height: 250px; object-fit: cover; margin-bottom: 20px; }
        .exp-card h3 { color: var(--sage); font-size: 1.8rem; margin-bottom: 10px; }

        /* --- Ma Méthode (Step by Step) --- */
        .steps { background: var(--sage); color: white; }
        .steps h2 { color: white; text-align: center; margin-bottom: 50px; }
        .steps-container { display: flex; justify-content: space-between; gap: 30px; }
        .step {
            flex: 1;
            text-align: center;
            border: 2px solid var(--sage-green); /* Bordure plus visible et couleur signature */
            box-shadow: 0 4px 16px rgba(159, 176, 162, 0.10); /* Légère ombre pour le relief */
            padding: 30px;
            border-radius: 12px; /* Coins arrondis pour un effet moderne */
            background: rgba(255,255,255,0.85); /* Légère couleur de fond pour contraste */
            transition: box-shadow 0.3s, border-color 0.3s;
        }
        .step:hover {
            border-color: #7d8e80;
            box-shadow: 0 8px 24px rgba(159, 176, 162, 0.18);
        }
        .step-num { font-family: var(--font-serif); font-size: 3rem; display: block; margin-bottom: 10px; opacity: 0.5; }

        /* --- CTA Final --- */
        .cta-final { text-align: center; padding: 100px 20px; }
        

        @media (max-width: 768px) {
            .grid-portfolio { grid-template-columns: 1fr; grid-template-rows: auto; }
            .item-1, .item-4 { grid-column: span 1; height: 300px; }
            .expertise-grid, .steps-container { grid-template-columns: 1fr; flex-direction: column; }
        }

        .steps { background: var(--sage); color: white; }
        .steps h2 { color: white; text-align: center; margin-bottom: 50px; }
        .steps-container { display: flex; justify-content: space-between; gap: 30px; }
        .step { flex: 1; text-align: center; border: 2px solid var(--sage-green); box-shadow: 0 4px 16px rgba(159, 176, 162, 0.10); padding: 30px; border-radius: 12px; background: rgba(255,255,255,0.85); transition: box-shadow 0.3s, border-color 0.3s; }
        .step:hover { border-color: #7d8e80; box-shadow: 0 8px 24px rgba(159, 176, 162, 0.18); }
        .step-num { font-family: var(--font-serif); font-size: 3rem; display: block; margin-bottom: 10px; opacity: 0.5; }