    /* --- 1. Conteneur global et configuration de la grille (4 colonnes) --- */

    .H2D-container {
        max-width: 1200px;
        margin: 40px auto;
        padding: 0 20px;
    }

    .p2 {
        display: grid;
        /* Définition de 4 colonnes de largeur égale */
        grid-template-columns: repeat(4, 1fr);
        gap: 30px;
        padding: 20px 0;
        align-items: stretch;
        /* Les éléments s'étirent sur toute la hauteur de la ligne */
    }

    /* --- 2. Styles des Blocs de Contenu (Générique) --- */

    .p2>div:not(#bouton) {
        padding: 20px;
        border-radius: 8px;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
        line-height: 1.6;
        font-size: 1.05em;
        color: #333;
        text-align: justify;
        background-color: #ffffff;
    }

    /* Styles des conteneurs d'images */
    .p2gauche,
    .p2int,
    .rotary,
    .convoyer {
        padding: 0;
        background-color: transparent;
        box-shadow: none;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .p2 img {
        display: block;
        width: 100%;
        height: auto;
        border-radius: 6px;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
    }

    /* Styles spécifiques pour les blocs de texte */
    .p2texte {
        background-color: #f0f7ff;
        border-left: 5px solid #007bff;
    }

    /* Bleu clair */
    .p2inttexte {
        background-color: #fff0f7;
        border-left: 5px solid #ff0077;
    }

    /* Rose clair */
    .rotarytexte {
        background-color: #f0fff0;
        border-left: 5px solid #00aa00;
    }

    /* Vert clair */
    .convoyertexte {
        background-color: #fffff0;
        border-left: 5px solid #ffcc00;
    }

    /* Jaune clair */

    /* --- 3. Positionnement explicite des Blocs sur la grille 4 colonnes --- */

    /* LIGNE 1 & 2 : Image Principale (Grande) à Gauche, Texte + Bouton à Droite */
    .p2gauche {
        /* Colonnes 1 et 2 */
        grid-column: 1 / span 2;
        /* Lignes 1 et 2 (s'étend sur la hauteur du texte et du bouton) */
        grid-row: 1 / span 2;
    }

    .p2texte {
        /* Colonnes 3 et 4 */
        grid-column: 3 / span 2;
        /* Ligne 1 */
        grid-row: 1 / span 1;
    }

    #bouton {
        /* Colonnes 3 et 4 */
        grid-column: 3 / span 2;
        /* Ligne 2 */
        grid-row: 2 / span 1;
        text-align: center;
        padding: 15px;
        background-color: #e6f0ff;
        border-radius: 8px;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    }

    #bouton a button {
        background-color: #007bff;
        color: white;
        border: none;
        padding: 10px 20px;
        border-radius: 5px;
        cursor: pointer;
        font-size: 1em;
        transition: background-color 0.3s;
    }

    #bouton a button:hover {
        background-color: #0056b3;
    }


    /* LIGNE 3 : Volume et Double Extrusion (Texte Gauche, Image Droite) */
    .p2inttexte {
        /* Colonnes 1 et 2 */
        grid-column: 1 / span 2;
        grid-row: 3;
    }

    .p2int {
        /* Colonnes 3 et 4 */
        grid-column: 3 / span 2;
        grid-row: 3;
    }

    /* LIGNE 4 : Rotary AMS (Image Gauche, Texte Droite) */
    .rotary {
        /* Colonnes 1 et 2 */
        grid-column: 1 / span 2;
        grid-row: 4;
    }

    .rotarytexte {
        /* Colonnes 3 et 4 */
        grid-column: 3 / span 2;
        grid-row: 4;
    }

    /* LIGNE 5 : Dryers / Convoyer (Texte Gauche, Image Droite) */
    .convoyertexte {
        /* Colonnes 1 et 2 */
        grid-column: 1 / span 2;
        grid-row: 5;
    }

    .convoyer {
        /* Colonnes 3 et 4 */
        grid-column: 3 / span 2;
        grid-row: 5;
    }

    /* --- 4. Media Query (Adaptation pour mobile : 1 colonne) --- */

    @media (max-width: 800px) {
        .p2 {
            /* Passage à une seule colonne sur les petits écrans */
            grid-template-columns: 1fr;
            gap: 20px;
        }

        /* Tous les éléments doivent s'étendre sur la colonne unique et ignorer les lignes/colonnes explicites */
        .p2>div {
            grid-column: 1 / span 1 !important;
            grid-row: auto !important;
            padding: 15px;
        }

        /* Rétablit le padding des images sur mobile */
        .p2gauche,
        .p2int,
        .rotary,
        .convoyer {
            padding: 0;
            box-shadow: none;
        }

        /* Les blocs de texte qui avaient une barre latérale passent à une barre supérieure */
        .p2texte,
        .p2inttexte,
        .rotarytexte,
        .convoyertexte {
            border-left: none;
            border-top: 5px solid;
        }

        .p2texte {
            border-top-color: #007bff;
        }

        .p2inttexte {
            border-top-color: #ff0077;
        }

        .rotarytexte {
            border-top-color: #00aa00;
        }

        .convoyertexte {
            border-top-color: #ffcc00;
        }

        /* Le bouton reprend un padding normal */
        #bouton {
            padding: 15px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
        }

        /* Pour assurer un flux Img -> Txt sur mobile pour toutes les sections */
        /* Le HTML est : Img (p2gauche), Txt (p2texte), Btn (bouton), Img (p2int), Txt (p2inttexte)... */

        /* Il faut inverser les paires où le texte précède l'image pour que l'image soit vue en premier.
       Sections à inverser : p2int/p2inttexte, convoyertexte/convoyer (texte avant image) */

        /* p2inttexte (Txt) vient avant p2int (Img) dans le HTML. Inversion pour mobile: Img puis Txt */
        .p2int {
            order: 4;
        }

        .p2inttexte {
            order: 5;
        }

        /* rotary (Img) vient avant rotarytexte (Txt). Ordre naturel: Img puis Txt */

        /* convoyertexte (Txt) vient avant convoyer (Img). Inversion pour mobile: Img puis Txt */
        .convoyer {
            order: 8;
        }

        .convoyertexte {
            order: 9;
        }

        /* Ordre complet (non modifié) :
    .p2gauche (1)
    .p2texte (2)
    #bouton (3)
    .rotary (6)
    .rotarytexte (7)
    */

        .p2gauche {
            order: 1;
        }

        .p2texte {
            order: 2;
        }

        #bouton {
            order: 3;
        }

        .rotary {
            order: 6;
        }

        .rotarytexte {
            order: 7;
        }
    }