/*gestion espacement blocs*/
.wp-block-post-content > .wp-block-group,
.wp-block-post-content > .wp-block-group.alignwide,
.wp-block-post-content > .wp-block-group.alignfull,
.listing-wrapper > .wp-block-group,
.listing-wrapper > .wp-block-group.alignwide,
.listing-wrapper > .wp-block-group.alignfull,
.notfound-wrapper > .wp-block-group,
.notfound-wrapper > .wp-block-group.alignwide,
.notfound-wrapper > .wp-block-group.alignfull,
.wp-block-group.incitation-contact,
.wp-block-group.lame-profil-cdm,
.wp-block-group.lame-affineur-cdm,
.wp-block-group.lame-caracteristiques-cdm,
.wp-block-group.lame-produits-associes-cdm,
.wp-block-group.lame-haut-boutique-cdm,
.wp-block-group.lame-listing-produits-cdm,
.wp-block-group.lame-404-cdm,
.wp-block-group.lame-cta-fromages-cdm,
.wp-block-group.lame-seo-affineur-cdm {
    margin-block-start: var(--wp--preset--spacing--xxxl) !important;
    @media screen and (max-width: 600px) {
        margin-block-start: var(--wp--preset--spacing--xxl) !important;
    }
}

/* Stepper du tunnel de commande : rythme propre (plus resserré que les lames éditoriales) */
.wp-block-group.lame-stepper-commande-cdm {
    margin-block-start: var(--wp--preset--spacing--xl) !important;
    margin-block-end: var(--wp--preset--spacing--xl) !important;
    @media screen and (max-width: 600px) {
        margin-block-start: var(--wp--preset--spacing--l) !important;
        margin-block-end: var(--wp--preset--spacing--l) !important;
    }
}

/*formulaire de contact*/
.wp-block-post-content > .wp-block-group,
.wp-block-post-content > .wp-block-group.alignwide,
.wp-block-post-content > .wp-block-group.alignfull{
    &.is-style-group-formcontact-lse-novemdenary{
        margin-block-start: var(--wp--preset--spacing--xxl) !important;
    }
}


.listing-wrapper > .wp-block-group,
.listing-wrapper > .wp-block-group.alignwide,
.listing-wrapper > .wp-block-group.alignfull
.notfound-wrapper > .wp-block-group,
.notfound-wrapper > .wp-block-group.alignwide,
.notfound-wrapper > .wp-block-group.alignfull
{
    margin-block-start: var(--wp--preset--spacing--xxxl) !important;
    @media screen and (max-width: 600px) {
        margin-block-start: var(--wp--preset--spacing--xxxl) !important;
    }
}

/*premier bloc : haut de page*/
.wp-block-post-content > .wp-block-group:first-child,
.etudecas-wrapper > .wp-block-group:first-child,
.journal-wrapper > .wp-block-group:first-child,
.listing-wrapper > .wp-block-group:first-child,
.notfound-wrapper > .wp-block-group:first-child{
    margin-block-start: var(--wp--preset--spacing--xxxl) !important;
}

/*bloc deco bleu clair*/
.wp-block-post-content > .wp-block-group.is-style-quaternary {
    & + * {
        margin-block-start: 0 !important;
    }
}


.is-style-colorprimarycap + *, .entry-content > .is-style-quinary:first-child {
    margin-block-start: 0 !important;
}

/* Fil d'Ariane collé sous la bannière : pas de marge quand il suit directement
   une bannière (cover) dans le contenu d'un article ou d'une recette */
.wp-block-post-content > .wp-block-cover + .wp-block-group.lame-fil-ariane-cdm {
    margin-block-start: 0 !important;
}

/* Fil d'Ariane placé en TÊTE de contenu (pages éditoriales) : collé au header,
   comme sur les archives où la lame est enfant direct du <main>.
   La lame porte déjà `margin-block-start:0` (0,2,0) mais la règle « premier bloc :
   haut de page » ci-dessus est plus spécifique (0,3,0) et lui imposait un xxxl.
   On repasse devant avec (0,4,0), sans toucher au cas « fil d'Ariane au milieu
   du contenu », qui garde le rythme normal. */
.wp-block-post-content > .wp-block-group.lame-fil-ariane-cdm:first-child {
    margin-block-start: 0 !important;
}

/* Diapo d'accueil en tête de contenu : collé au header (pas de marge haute).
   Ciblé via la section .HeroSlider interne → uniquement la lame diapo, jamais
   un autre bloc pleine largeur placé en premier. */
.wp-block-post-content > .wp-block-group.alignfull:first-child:has(> .HeroSlider) {
    margin-block-start: 0 !important;
}

.wp-block-group {
    position: relative;

    /*page 404*/
    &.notfound-wrapper{
        .yoast-breadcrumbs{
            text-align: center;
        }
    }
}

/* ── Lame : haut de page boutique (titre + intro 2 colonnes) ─────────────── */
.wp-block-group.lame-haut-boutique-cdm {
    padding-block: 0;

    .wp-block-columns {
        column-gap: var(--wp--preset--spacing--xxl);
        row-gap: var(--wp--preset--spacing--l);
    }
}

/* ── Lame : Nos boutiques (en-tête + 2 cartes adresses) ──────────────────── */
.wp-block-group.lame-boutiques-cdm {
    padding-block: 0;

    /* En-tête de section */
    > .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--s);
    }

    > .wp-block-heading {
        margin: 0 0 var(--wp--preset--spacing--xl);
    }

    /* Grille des 2 cartes — hauteurs égales */
    .wp-block-columns {
        column-gap: var(--wp--preset--spacing--xl);
        row-gap: var(--wp--preset--spacing--xl);
        align-items: stretch;
    }

    /* Carte — flex colonne : remplit la hauteur de sa colonne (tuiles de hauteur similaire) */
    .lame-boutiques-cdm__card {
        display: flex;
        flex-direction: column;
        gap: 0;
        height: 100%;
        border: 1px solid var(--wp--custom--color--gris-bordure);
        background: var(--wp--preset--color--white);
        overflow: hidden;
    }

    .lame-boutiques-cdm__media {
        flex-shrink: 0;
        margin: 0;

        img {
            display: block;
            width: 100%;
        }
    }

    /* Corps : flex colonne pour pousser le bouton en bas de la tuile */
    .lame-boutiques-cdm__body {
        display: flex;
        flex: 1;
        flex-direction: column;
        margin-top: 0; /* image au ras du corps (pas de blockGap) */
        padding: var(--wp--preset--spacing--l);

        .is-style-paragraph-overline-cdm {
            margin-bottom: var(--wp--preset--spacing--xs);
        }

        > .wp-block-heading {
            margin: 0 0 var(--wp--preset--spacing--xs);
        }
    }

    .lame-boutiques-cdm__adresse {
        margin: 0 0 var(--wp--preset--spacing--m);
        font-family: var(--wp--preset--font-family--secondary);
        font-size: var(--wp--preset--font-size--s);
        font-weight: var(--wp--custom--font-weight--light);
        line-height: var(--wp--custom--line-height--regular);
        color: var(--wp--preset--color--quinary);
    }

    .is-style-paragraph-tel-cdm {
        margin-bottom: var(--wp--preset--spacing--m);
    }

    /* Le bloc horaires (acf/horaires-boutique-cdm) gère son propre style ;
       on réserve juste l'écart minimal avant le bouton. */
    .hbcdm {
        margin-bottom: var(--wp--preset--spacing--l);
    }

    /* Bouton itinéraire — collé en bas de la tuile : l'espace libre est absorbé
       ici, donc les boutons s'alignent quand les tuiles sont côte à côte. */
    .wp-block-buttons {
        margin-top: auto;
    }

    /* Entre 782 et 600 px : 2 tuiles côte à côte, espace réduit */
    @media (max-width: 781px) {
        .wp-block-columns {
            column-gap: var(--wp--preset--spacing--m);
        }

        .lame-boutiques-cdm__body {
            padding: var(--wp--preset--spacing--m);
        }
    }

    /* Sous 600 px : tuiles empilées (on force malgré is-not-stacked-on-mobile) */
    @media (max-width: 600px) {
        .wp-block-columns.is-not-stacked-on-mobile {
            flex-wrap: wrap !important;
        }

        .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column {
            flex-basis: 100% !important;
        }

        .lame-boutiques-cdm__body {
            padding: var(--wp--preset--spacing--xs);
        }
    }
}

/* ── Lame : Sur les marchés (bande sombre + grille 5 jours) ──────────────── */
.wp-block-group.lame-marches-cdm {
    --marche-border: color-mix(in srgb, var(--wp--preset--color--tertiary) 16%, transparent);
    padding-block: var(--wp--preset--spacing--xxxl);

    /* Mot accentué doré du H2 d'en-tête */
    h2 em {
        color: var(--wp--preset--color--secondary);
        font-style: italic;
    }

    /* En-tête (largeurs de colonnes gérées dans l'éditeur : 70 / 30) */
    > .wp-block-columns {
        margin-bottom: var(--wp--preset--spacing--xl);
    }

    /* Grille des jours — bordures fines (haut + gauche sur le conteneur) */
    .lame-marches-cdm__grid {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 0;
        border-top: 1px solid var(--marche-border);
        border-left: 1px solid var(--marche-border);
    }

    /* Cellule : "Jour" en haut, jour/lieu/ville poussés en bas */
    .lame-marches-cdm__cell {
        display: flex;
        flex-direction: column;
        min-height: 200px;
        padding: var(--wp--preset--spacing--l) var(--wp--preset--spacing--m);
        border-right: 1px solid var(--marche-border);
        border-bottom: 1px solid var(--marche-border);
    }

    .lame-marches-cdm__cell > .is-style-paragraph-overline-mono-cdm:first-child {
        margin: 0;
    }

    .lame-marches-cdm__cell > .wp-block-heading {
        margin: auto 0 var(--wp--preset--spacing--xs);
    }

    .lame-marches-cdm__lieu {
        margin: 0 0 var(--wp--preset--spacing--xxs);
        font-family: var(--wp--preset--font-family--secondary);
        font-size: var(--wp--preset--font-size--xs);
        line-height: var(--wp--custom--line-height--regular);
    }

    .lame-marches-cdm__cell > .is-style-paragraph-overline-mono-cdm:last-child {
        margin: 0;
    }

    /* ── Responsive ── */
    @media (max-width: 900px) {
        .lame-marches-cdm__grid {
            grid-template-columns: repeat(3, 1fr);
        }
    }

    @media (max-width: 781px) {
        padding-block: var(--wp--preset--spacing--xxl);
    }

    @media (max-width: 600px) {
        .lame-marches-cdm__grid {
            grid-template-columns: repeat(2, 1fr);
        }

        .lame-marches-cdm__cell {
            min-height: 0;
        }
    }

    @media (max-width: 400px) {
        .lame-marches-cdm__grid {
            grid-template-columns: 1fr;
        }
    }
}

/* ── Lame : Notre offre (colonne sticky + liste numérotée) ───────────────── */
.wp-block-group.lame-offre-cdm {
    padding-block: 0;

    /* Grille : en-tête (un peu plus large) + liste (un peu plus étroite) */
    .lame-offre-cdm__layout {
        display: grid;
        grid-template-columns: 1fr 1.6fr;
        gap: var(--wp--preset--spacing--xxl);
        align-items: start;
    }

    /* Colonne gauche sticky — s'arrête en bas de la grille (= dernier trait à droite) */
    .lame-offre-cdm__aside {
        position: sticky;
        top: var(--wp--preset--spacing--xl);
    }

    /* H2 de la colonne gauche — réduit */
    .lame-offre-cdm__aside .wp-block-heading {
        font-size: var(--wp--preset--font-size--xxxl) !important;
    }

    /* Liste */
    .lame-offre-cdm__list {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    /* Item : numéro (48px) + contenu */
    .lame-offre-cdm__item {
        display: grid;
        grid-template-columns: 48px 1fr;
        gap: var(--wp--preset--spacing--m);
        align-items: baseline;
        padding-block: var(--wp--preset--spacing--l);
        border-top: 1px solid var(--wp--custom--color--gris-bordure);
    }

    .lame-offre-cdm__item:last-child {
        border-bottom: 1px solid var(--wp--custom--color--gris-bordure);
    }

    /* Numéro doré, calé en haut */
    .lame-offre-cdm__item > .is-style-paragraph-overline-mono-cdm {
        margin: 0;
    }

    /* Contenu : titre + description */
    .lame-offre-cdm__content > .wp-block-heading {
        margin: 0 0 var(--wp--preset--spacing--xs);
    }

    .lame-offre-cdm__desc {
        margin: 0;
        font-family: var(--wp--preset--font-family--secondary);
        font-size: var(--wp--preset--font-size--s);
        font-weight: var(--wp--custom--font-weight--light);
        line-height: var(--wp--custom--line-height--large);
        color: var(--wp--preset--color--primary);
    }

    /* ── Responsive : une seule colonne, plus de sticky ── */
    @media (max-width: 781px) {
        .lame-offre-cdm__layout {
            grid-template-columns: 1fr;
            gap: var(--wp--preset--spacing--xl);
        }

        .lame-offre-cdm__aside {
            position: static;
            top: auto;
        }
    }

    @media (max-width: 400px) {
        .lame-offre-cdm__item {
            grid-template-columns: 32px 1fr;
            gap: var(--wp--preset--spacing--s);
        }
    }
}

/* ── Lame : image + texte + métriques (ordre inversable) ─────────────────── */
.wp-block-group.lame-imgtxt-cdm {
    padding-block: 0;

    /* Mise en page en colonnes flex (robuste à l'inversion) */
    > .wp-block-columns {
        column-gap: var(--wp--preset--spacing--xxxl);
        row-gap: var(--wp--preset--spacing--xl);
    }

    /* Image */
    .lame-imgtxt-cdm__media {
        margin: 0;

        img {
            display: block;
            width: 100%;
        }
    }

    /* Colonne texte */
    .lame-imgtxt-cdm__content {
        display: flex;
        flex-direction: column;
        gap: var(--wp--preset--spacing--m);
    }

    .lame-imgtxt-cdm__content > * {
        margin-block: 0;
    }

    .lame-imgtxt-cdm__body {
        font-family: var(--wp--preset--font-family--secondary);
        font-size: var(--wp--preset--font-size--m);
        font-weight: var(--wp--custom--font-weight--light);
        line-height: var(--wp--custom--line-height--large);
        color: var(--wp--preset--color--primary);
    }

    /* Les métriques utilisent la variation réutilisable is-style-group-metrics-cdm
       (définie plus bas) — rien de spécifique à la lame ici. */

    /* ── Ordre inversé (bureau) : image à droite, largeurs conservées ──
       row-reverse garde chaque colonne à sa largeur (pas de piste à déplacer) */
    &.is-style-group-imgtxt-reverse-cdm > .wp-block-columns {
        flex-direction: row-reverse;
    }

    /* ── Mobile : une seule colonne, TOUJOURS texte puis image ── */
    @media (max-width: 781px) {
        > .wp-block-columns,
        &.is-style-group-imgtxt-reverse-cdm > .wp-block-columns {
            flex-direction: column;
            align-items: stretch;
        }

        > .wp-block-columns > .wp-block-column {
            flex-basis: auto !important;
        }

        /* ordre forcé par le CONTENU (robuste au déplacement des colonnes
           dans l'éditeur) : texte d'abord, image ensuite */
        > .wp-block-columns > .wp-block-column:has(.lame-imgtxt-cdm__content) {
            order: 1;
        }

        > .wp-block-columns > .wp-block-column:has(.lame-imgtxt-cdm__media) {
            order: 2;
        }
    }
}

/* ── Variation réutilisable : grille de métriques (n cellules) ────────────
   Sur un groupe → classe is-style-group-metrics-cdm. Chaque enfant direct
   devient une cellule et s'adapte automatiquement (séparateurs + alignement),
   quel que soit le nombre de cellules. (alias legacy : lame-imgtxt-cdm__metrics) */
.wp-block-group:is(.is-style-group-metrics-cdm, .lame-imgtxt-cdm__metrics) {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;

    /* Cellules = enfants directs */
    > * {
        padding: var(--wp--preset--spacing--m);
        text-align: left;
        border-top: 1px solid var(--wp--custom--color--gris-bordure);
    }

    /* marges internes neutralisées */
    > * > * {
        margin-block: 0;
    }

    /* Chiffre = 1er élément de chaque cellule (Fraunces) */
    > * > :first-child {
        font-family: var(--wp--preset--font-family--primary);
        font-size: var(--wp--preset--font-size--xxl);
        font-weight: var(--wp--custom--font-weight--regular);
        line-height: 1.1;
        color: var(--wp--preset--color--primary);
    }

    /* Libellé(s) = élément(s) suivant(s) (JetBrains mono, gris, capitales) */
    > * > :first-child ~ * {
        margin-top: var(--wp--preset--spacing--xxs);
        font-family: var(--wp--preset--font-family--tertiary);
        font-size: var(--wp--preset--font-size--xxs);
        font-weight: var(--wp--custom--font-weight--regular);
        line-height: 1.4;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: var(--wp--preset--color--quinary);
    }

    /* séparateur vertical entre colonnes (sauf 1re colonne) */
    > :not(:nth-child(3n + 1)) {
        border-left: 1px solid var(--wp--custom--color--gris-bordure);
    }

    /* 1re colonne : alignée au bord gauche */
    > :nth-child(3n + 1) {
        padding-inline-start: 0;
    }

    /* ── 2 colonnes sous 600px ── */
    @media (max-width: 600px) {
        grid-template-columns: repeat(2, 1fr);

        > :nth-child(2n + 1) {
            border-left: none;
            padding-inline-start: 0;
        }

        > :nth-child(2n) {
            border-left: 1px solid var(--wp--custom--color--gris-bordure);
            padding-inline-start: var(--wp--preset--spacing--m);
        }
    }

    /* ── 1 colonne sous 300px (empilé, sans trait vertical) ── */
    @media (max-width: 300px) {
        grid-template-columns: 1fr;

        > :nth-child(n) {
            border-left: none;
            padding-inline-start: 0;
        }
    }
}

/* ── Lame : intro édito (H1 + texte 2 colonnes) ─────────────────────────── */
.wp-block-group.lame-intro-edito-cdm {
    padding-block: 0;

    .wp-block-columns {
        column-gap: var(--wp--preset--spacing--xxl);
        row-gap: var(--wp--preset--spacing--l);
    }

    /* décalage optique : aligne le haut du paragraphe avec la capline du H1 */
    .wp-block-column:last-child {
        padding-top: 0.5rem;
    }

    @media (max-width: 781px) {
        .wp-block-column:last-child {
            padding-top: 0;
        }
    }
}

/* ── Lame : 2 pushs promo (image + texte + bouton) ───────────────────────── */
.wp-block-group.lame-promo-covers-cdm {
    padding-block: 0;

    .wp-block-cover {
        overflow: hidden;

        .wp-block-cover__image-background {
            transition: transform .6s cubic-bezier(.19, 1, .22, 1);
        }

        &:hover .wp-block-cover__image-background {
            transform: scale(1.04);
        }

        @media (max-width: 781px) {
            padding: var(--wp--preset--spacing--l) !important;
        }
    }

    /* Zone de clic étendue à toute la carte */
    .wp-block-button__link {
        position: relative;
        z-index: 2;

        &::after {
            content: '';
            position: absolute;
            top: -9999px;
            right: -9999px;
            bottom: -9999px;
            left: -9999px;
        }
    }
}

/* Éditeur uniquement — la zone de clic étendue ci-dessus recouvre toute la carte :
   dans le canvas, le moindre clic sur le titre ou le texte sélectionnait le bouton
   et son champ de lien. On neutralise l'overlay pour que chaque bloc redevienne
   éditable là où il est ; le lien reste modifiable en cliquant le bouton lui-même.
   L'attribut `data-type` est posé par le block editor (useBlockProps) et n'existe
   PAS sur le front → la carte reste entièrement cliquable côté visiteur. */
.wp-block-group.lame-promo-covers-cdm [data-type="core/button"] .wp-block-button__link::after {
    content: none;
}

/* ── Lame : storytelling Marc (dark band) ──────────────────────────────────── */
.wp-block-group.lame-story-marc-cdm {
    padding-block: var(--wp--preset--spacing--xxxl);

    /* Layout colonnes */
    .wp-block-columns {
        align-items: center;
    }

    /* ── Composition photos (colonne gauche) ── */
    .wp-block-column:first-child > .wp-block-group {
        position: relative;
        height: 540px;

        .wp-block-image {
            position: absolute;
            margin: 0;

            img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                display: block;
            }

            /* Grande photo — haut gauche */
            &:first-child {
                left: 0;
                top: 0;
                width: 70%;
                height: 400px;
                z-index: 1;
            }

            /* Petite photo — bas droite, en surimpression */
            &:nth-child(2) {
                right: 0;
                bottom: 0;
                width: 60%;
                height: 300px;
                z-index: 2;
                box-shadow: 0 16px 48px rgba(0, 0, 0, .5);
            }
        }

        /* Légende (is-style-paragraph-caption-cdm) positionnée bas gauche */
        .wp-block-paragraph {
            position: absolute;
            left: 1rem;
            bottom: 0.25rem;
            z-index: 3;
            margin: 0;
        }
    }

    /* ── Responsive — images empilées verticalement ── */
    @media (max-width: 781px) {
        padding-block: var(--wp--preset--spacing--xxl);

        .wp-block-column:first-child > .wp-block-group {
            height: auto;

            .wp-block-image {
                position: static;
                width: 100% !important;
                height: 260px;
                overflow: hidden;
                box-shadow: none !important;
                display: block;

                img {
                    height: 100%;
                    width: 100%;
                }
            }

            .wp-block-paragraph {
                position: static;
                left: auto;
                bottom: auto;
            }
        }
    }
}

/* ── Block style : ligne produit (is-style-group-row-cdm) ────────────────── */
.wp-block-group.is-style-group-row-cdm {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--wp--preset--spacing--m);
    padding: 0.875rem 1.125rem;
    border: 1px solid var(--wp--custom--color--gris-bordure);
    background: var(--wp--custom--color--creme-principal);
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;

    &:hover {
        border-color: var(--wp--preset--color--secondary);
        background: var(--wp--custom--color--or-light);
        transform: translateX(2px);
    }

    /* Très petit espacement entre lignes adjacentes */
    & + .wp-block-group.is-style-group-row-cdm {
        margin-top: var(--wp--preset--spacing--xs)!important;
    }
}

/* ── Lame : box fromage — module clé ─────────────────────────────────────── */
.wp-block-group.lame-box-accueil-cdm {
    padding-block: 0;

    .wp-block-columns {
        align-items: center;
    }

    /* Grille photos droite */
    .lame-box-accueil-cdm__galerie {
        display: grid;
        grid-template-columns: 1.4fr 1fr;
        grid-template-rows: 1fr 1fr;
        gap: var(--wp--preset--spacing--s);
        aspect-ratio: 4 / 3;

        .wp-block-image {
            margin: 0;
            overflow: hidden;

            img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                display: block;
            }

            /* Grande image — occupe les 2 rangées */
            &:first-child {
                grid-row: 1 / 3;
            }
        }
    }

    @media (max-width: 781px) {
        .lame-box-accueil-cdm__galerie {
            grid-template-columns: 1fr;
            grid-template-rows: auto;
            aspect-ratio: auto;
            gap: var(--wp--preset--spacing--xs);
            margin-top: var(--wp--preset--spacing--l);

            .wp-block-image {
                height: 240px;

                &:first-child {
                    grid-row: auto;
                }
            }
        }
    }
}

/* ── Lame : barre de réassurance ─────────────────────────────────────────── */
/* Réassurance en dernière lame (avant le footer) : on retire la marge basse
   du <main> pour resserrer l'espace avec le footer. Ne s'applique que si la
   réassurance est le dernier enfant du contenu. */
main:has(.lame-reassurance-cdm:last-child) {
    margin-block-end: 0;
}

.wp-block-group.lame-reassurance-cdm {
    padding-block: 0;
    border-top: 1px solid var(--wp--custom--color--gris-bordure);

    .wp-block-columns {
        padding-block: var(--wp--preset--spacing--xl);
    }

    /* Colonnes : séparateur vertical + padding horizontal */
    .wp-block-column {
        padding-inline: var(--wp--preset--spacing--l);
        border-right: 1px solid var(--wp--custom--color--gris-bordure);

        &:first-child {
            padding-left: 0;
        }

        &:last-child {
            padding-right: 0;
            border-right: none;
        }
    }

    /* Item : icône + texte en ligne */
    .wp-block-column > .wp-block-group {
        display: flex;
        align-items: center;
        gap: var(--wp--preset--spacing--m);
    }

    /* Icône image (wp:image) */
    .lame-reassurance-cdm__icon {
        flex-shrink: 0;
        margin: 0;
        line-height: 0;

        img {
            display: block;
            width: 28px;
            height: 28px;
        }
    }

    /* Pile texte : titre + sous-titre */
    .wp-block-column > .wp-block-group > .wp-block-group {
        display: flex;
        flex-direction: column;
        gap: var(--wp--preset--spacing--xxxs);
    }

    .lame-reassurance-cdm__title {
        font-family: var(--wp--preset--font-family--secondary);
        font-size: var(--wp--preset--font-size--s);
        font-weight: var(--wp--custom--font-weight--semibold);
        line-height: 1.3;
        color: var(--wp--preset--color--primary);
        margin: 0;
    }

    .lame-reassurance-cdm__subtitle {
        font-family: var(--wp--preset--font-family--secondary);
        font-size: var(--wp--preset--font-size--xs);
        font-weight: var(--wp--custom--font-weight--regular);
        line-height: 1.4;
        color: var(--wp--preset--color--quinary);
        margin: 0;
    }

    /* 993–1200 px : réduction du padding pour rester sur une ligne */
    @media (min-width: 993px) and (max-width: 1200px) {
        .wp-block-column {
            padding-inline: var(--wp--preset--spacing--xs);
        }
    }

    /* 782–992 px : 3 items par ligne */
    @media (min-width: 782px) and (max-width: 992px) {
        .wp-block-columns.is-not-stacked-on-mobile {
            flex-wrap: wrap !important;
        }

        .wp-block-columns > .wp-block-column {
            flex-basis: 30% !important;
            flex-grow: 1 !important;
            padding: var(--wp--preset--spacing--m) !important;
            border-right: none !important;
            border-bottom: 1px solid var(--wp--custom--color--gris-bordure);

            &:nth-last-child(-n+2) {
                border-bottom: none;
            }
        }
    }

    /* < 782 px : items centrés, sans séparateur vertical */
    @media (max-width: 781px) {
        .wp-block-columns.is-not-stacked-on-mobile {
            flex-wrap: wrap !important;
        }

        .wp-block-columns > .wp-block-column {
            flex-basis: 45% !important;
            flex-grow: 1 !important;
            padding: var(--wp--preset--spacing--m) !important;
            border-right: none !important;
            border-bottom: 1px solid var(--wp--custom--color--gris-bordure);

            &:last-child {
                border-bottom: none;
            }
        }

        .wp-block-column > .wp-block-group {
            flex-direction: column;
            align-items: center;
            text-align: center;
        }
    }

    @media (max-width: 480px) {
        .wp-block-columns > .wp-block-column {
            flex-basis: 100% !important;
            flex-grow: 0 !important;
        }
    }
}

/* ── Lame : bloc SEO affineur ─────────────────────────────────────────────── */
.wp-block-group.lame-seo-affineur-cdm {
    background: var(--wp--custom--color--creme-principal);
    padding-block: var(--wp--preset--spacing--xxl);

    /* Identité : portrait + nom en ligne */
    .lame-seo-affineur-cdm__identity {
        display: flex;
        align-items: center;
        gap: var(--wp--preset--spacing--m);
        padding-bottom: var(--wp--preset--spacing--l);
        margin-bottom: var(--wp--preset--spacing--l);
        border-bottom: 1px solid var(--wp--custom--color--gris-bordure);
    }

    /* Portrait circulaire */
    .lame-seo-affineur-cdm__portrait {
        flex-shrink: 0;
        margin: 0;

        img {
            width: 64px;
            height: 64px;
            border-radius: 9999px;
            object-fit: cover;
            display: block;
        }
    }

    /* Nom — Fraunces italic */
    .lame-seo-affineur-cdm__name {
        margin: 0;
        line-height: 1.2;
    }

    /* Surtitre */
    .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    /* Corps de texte — poids léger, interligne aéré */
    .wp-block-paragraph:not(.is-style-paragraph-overline-cdm):not(.is-style-paragraph-caption-cdm):not(.lame-seo-affineur-cdm__name) {
        font-weight: var(--wp--custom--font-weight--light);
        line-height: 1.7;
    }

    /* H3 — taille réduite par rapport au style global (xxxl → xl) */
    h3.wp-block-heading {
        font-size: var(--wp--preset--font-size--xl) !important;
        font-weight: var(--wp--custom--font-weight--regular) !important;
    }

    @media (max-width: 781px) {
        padding-block: var(--wp--preset--spacing--xl);
    }
}

/* ── Lame : Qui sommes-nous — éditorial 2 colonnes ──────────────────────── */
.wp-block-group.lame-qui-cdm {
    padding-block: 0;

    @media (max-width: 781px) {
        .wp-block-columns {
            gap: 0 !important;
        }

        .wp-block-columns .wp-block-column:first-child > :last-child {
            margin-block-end: revert-layer;
        }
    }
}

/* ── Lame : historique / frise chronologique (bande sombre) ──────────────── */
.wp-block-group.lame-historique-cdm {
    padding-block: var(--wp--preset--spacing--xxxl);

    /* Mot accentué du H2 d'en-tête */
    h2 em {
        color: var(--wp--preset--color--secondary);
        font-style: italic;
    }

    /* Chapô d'en-tête (colonne droite) — largeur limitée */
    > .wp-block-columns > .wp-block-column:last-child {
        max-width: 360px;
    }

    /* ── Frise ───────────────────────────────────────────────── */
    > .wp-block-group {
        position: relative;
        margin-block-start: var(--wp--preset--spacing--xxl) !important;

        /* Ligne verticale dorée */
        &::before {
            content: "";
            position: absolute;
            left: 79px;
            top: 0.55rem;
            bottom: 0.55rem;
            width: 1px;
            background: rgba(195, 140, 10, 0.3);
        }

        /* Chaque entrée */
        > .wp-block-columns {
            position: relative;

            /* Puce sur la ligne (rendue via la 1re colonne, positionnée
               sur le conteneur .wp-block-columns qui porte position:relative) */
            > .wp-block-column:first-child::before {
                content: "";
                position: absolute;
                left: 72px;
                top: 0.35rem;
                width: 11px;
                height: 11px;
                border-radius: var(--wp--custom--radius--full);
                background: var(--wp--preset--color--secondary);
                border: 2px solid var(--wp--preset--color--primary);
            }
        }
    }

    /* ── Responsive : empilement, date au-dessus du texte ────── */
    @media (max-width: 781px) {
        padding-block: var(--wp--preset--spacing--xxl);

        > .wp-block-columns > .wp-block-column:last-child {
            max-width: none;
        }

        > .wp-block-group {
            &::before {
                display: none;
            }

            > .wp-block-columns {
                gap: var(--wp--preset--spacing--xs) !important;

                > .wp-block-column:first-child::before {
                    display: none;
                }
            }
        }
    }
}

/* ── Lame : tuiles moments (5 cartes par occasion) ───────────────────────── */

/* Spécificité (0,4,0) nécessaire pour battre
   .wp-block-columns.is-not-stacked-on-mobile { flex-wrap: nowrap !important }
   généré par WP (0,2,0). */
.wp-block-group.lame-moments-cdm {
    @media (min-width: 782px) and (max-width: 993px) {
        .wp-block-columns.is-not-stacked-on-mobile {
            flex-wrap: wrap !important;
        }
        .wp-block-columns > .wp-block-column {
            flex-basis: 30% !important;
            flex-grow: 1 !important;
        }
    }

    @media (min-width: 480px) and (max-width: 781px) {
        .wp-block-columns.is-not-stacked-on-mobile {
            flex-wrap: wrap !important;
        }
        .wp-block-columns > .wp-block-column {
            flex-basis: 45% !important;
            flex-grow: 1 !important;
        }
    }

    @media (max-width: 479px) {
        .wp-block-columns.is-not-stacked-on-mobile {
            flex-wrap: wrap !important;
        }
        .wp-block-columns > .wp-block-column {
            flex-basis: 100% !important;
            flex-grow: 0 !important;
        }
    }

    .wp-block-cover {
        transition: transform .25s ease;
        cursor: pointer;

        .wp-block-cover__background {
            background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.75) 100%) !important;
            opacity: 1 !important;
        }

        .wp-block-cover__image-background {
            transition: transform .55s cubic-bezier(.19, 1, .22, 1) !important;
        }

        &:hover {
            transform: translateY(-3px);
        }

        &:hover .wp-block-cover__image-background {
            transform: scale(1.06) !important;
        }
    }

    /* Lien étendu à toute la carte via le titre h3 */
    h3 a {
        text-decoration: none;
        color: inherit;
        position: relative;
        z-index: 2;

        &::after {
            content: '';
            position: absolute;
            top: -9999px;
            right: -9999px;
            bottom: -9999px;
            left: -9999px;
        }
    }
}

/* Éditeur uniquement — même cas que .lame-promo-covers-cdm : le lien du h3 étend
   sa zone de clic à toute la tuile, ce qui rendait le paragraphe inéditable dans
   le canvas. Ici le lien est posé sur un core/heading (lien de texte enrichi),
   d'où le ciblage sur [data-type="core/heading"] et non sur le bouton.
   `data-type` n'existe pas sur le front → tuile toujours cliquable en entier. */
.wp-block-group.lame-moments-cdm [data-type="core/heading"] a::after,
.wp-block-group.lame-moments-cdm h3[data-type="core/heading"] a::after {
    content: none;
}

/* ── Lame : Équipe — portraits père & fils (2 colonnes) ──────────────────── */
.wp-block-group.lame-equipe-dubouloz-cdm {
    padding-block: 0;

    /* En-tête de section */
    > .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    /* Écart en-tête → portraits */
    > .wp-block-columns {
        margin-block-start: var(--wp--preset--spacing--xxl) !important;
    }

    /* Image carrée (portraits) */
    .wp-block-column > figure.wp-block-image {
        margin: 0 0 var(--wp--preset--spacing--m);

        img {
            display: block;
            width: 100%;
            aspect-ratio: 1 / 1;
            object-fit: cover;
            object-position: center top;
        }
    }

    /* Surtitre de colonne (rôle · récompense) */
    .wp-block-column .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--xxs);
    }

    /* Nom (h3) collé à son sous-titre */
    .wp-block-column h3.wp-block-heading {
        margin-bottom: 0;
    }

    /* Sous-titre (rôle / génération) */
    .is-style-paragraph-subtitle-cdm {
        margin-top: var(--wp--preset--spacing--xxxs);
    }

    /* Premier paragraphe de biographie — détaché du sous-titre */
    .is-style-paragraph-subtitle-cdm + p {
        margin-top: var(--wp--preset--spacing--m);
    }

    /* Responsive : colonnes empilées, respiration entre les deux portraits */
    @media (max-width: 781px) {
        > .wp-block-columns {
            margin-block-start: var(--wp--preset--spacing--xl) !important;
        }

        .wp-block-column + .wp-block-column {
            margin-top: var(--wp--preset--spacing--xl);
        }
    }
}

/* ── Déclinaison group : fond sombre (réutilisable) ──────────────────────── */
.wp-block-group.is-style-group-dark-cdm {
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--tertiary);

    /* Titres clairs sur fond sombre */
    .wp-block-heading {
        color: var(--wp--preset--color--tertiary);
    }

    /* Corps de texte atténué — hors styles déjà colorés (surtitre/légende/année dorés, sous-titre gris) */
    .wp-block-paragraph:not(.is-style-paragraph-overline-cdm):not(.is-style-paragraph-overline-mono-cdm):not(.is-style-paragraph-caption-cdm):not(.is-style-paragraph-year-cdm):not(.is-style-paragraph-subtitle-cdm) {
        color: rgba(248, 247, 243, 0.78);
    }

    /* Citation éditoriale — légèrement plus lumineuse que le corps */
    .wp-block-quote.is-style-quote-editorial-cdm p {
        color: rgba(248, 247, 243, 0.92);
    }
}

/* ── Déclinaison group : fond crème (réutilisable) ───────────────────────── */
.wp-block-group.is-style-group-creme-cdm {
    background-color: var(--wp--custom--color--creme-principal);
}

/* ── Lame : page 404 (titre + texte + 2 actions, centrés) ────────────────── */
.wp-block-group.lame-404-cdm {
    padding-block: 0;
    text-align: center;

    /* Colonne de lecture resserrée au centre de la largeur wide */
    > * {
        max-width: 720px;
        margin-inline: auto;
    }

    > .wp-block-heading {
        margin-block: 0 var(--wp--preset--spacing--m);
    }

    > p {
        margin-block: 0 var(--wp--preset--spacing--xl);
    }

    /* Boutons : même générosité que le CTA sombre */
    .lame-404-cdm__actions .wp-block-button__link {
        padding: 1rem 1.75rem;
    }

    @media (max-width: 600px) {
        .lame-404-cdm__actions {
            flex-direction: column;
            align-items: stretch;
        }
    }
}

/* ── Lame : CTA fromages (bande sombre, boîte contenue) ──────────────────── */
.wp-block-group.lame-cta-fromages-cdm {
    padding-block: 0;

    /* Boîte interne : texte à gauche, actions à droite, alignés verticalement */
    .lame-cta-fromages-cdm__inner {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
        gap: var(--wp--preset--spacing--xl);
        padding: var(--wp--preset--spacing--xxl);
    }

    /* Mot accentué doré et italique */
    h2 em {
        color: var(--wp--preset--color--secondary);
        font-style: italic;
    }

    /* Actions : boutons généreux (taille L), non comprimés */
    .lame-cta-fromages-cdm__actions {
        flex-shrink: 0;

        .wp-block-button__link {
            padding: 1rem 1.75rem;
        }
    }

    /* ── Responsive : sous 1200px, les actions passent sous le texte ──── */
    @media (max-width: 1200px) {
        .lame-cta-fromages-cdm__inner {
            grid-template-columns: 1fr;
            gap: var(--wp--preset--spacing--l);
        }

        .lame-cta-fromages-cdm__actions {
            flex-wrap: wrap;
        }
    }

    /* ── Mobile : boîte resserrée ──────────────────────────────────────── */
    @media (max-width: 781px) {
        .lame-cta-fromages-cdm__inner {
            padding: var(--wp--preset--spacing--m);
        }
    }
}

/* ── Lame : Newsletter « Le carnet de la cave » (bande crème) ─────────────── */
.wp-block-group.lame-newsletter-cdm {
    margin-block-start: var(--wp--preset--spacing--xxl) !important;
    padding-block: 0;

    /* Boîte interne : texte à gauche, formulaire à droite, alignés au centre */
    .lame-newsletter-cdm__inner {
        display: grid;
        grid-template-columns: 1.1fr 1fr;
        align-items: center;
        gap: var(--wp--preset--spacing--xxl);
        padding: var(--wp--preset--spacing--xxl);
    }

    /* Mot accentué doré et italique (cohérent avec les autres titres display) */
    h2 em {
        color: var(--wp--preset--color--secondary);
        font-style: italic;
    }

    /* Texte d'accroche : corps léger, largeur de lecture limitée */
    .lame-newsletter-cdm__lead {
        max-width: 30rem;
        font-weight: var(--wp--custom--font-weight--light);
        line-height: var(--wp--custom--line-height--regular);
        color: var(--wp--preset--color--primary);
    }

    /* Mention sous le formulaire : mono, majuscules, gris discret */
    .lame-newsletter-cdm__meta {
        text-transform: uppercase;
        color: var(--wp--custom--color--gris-disabled);
        margin-top: var(--wp--preset--spacing--xxs);
        margin-bottom: 0;
    }

    /* ── Formulaire (Gravity Forms 1) : champ + bouton accolés, façon maquette.
       Surcharge scopée à cette lame uniquement — le footer garde son style. ── */
    .gform_wrapper form {
        display: flex;
        align-items: stretch;
        gap: 0;
    }

    .gform_wrapper .gform_body {
        flex: 1 1 auto;
        margin: 0;
    }

    .gform_wrapper .gform_fields {
        display: block;
        grid-template-columns: none;
        gap: 0;
    }

    .gform_wrapper .gfield,
    .gform_wrapper .ginput_container {
        margin: 0;
    }

    .gform_wrapper .gform_footer {
        flex: 0 0 auto;
        margin: 0;
        padding: 0;
    }

    /* Champ e-mail : rectangulaire, bordure sombre fine, accolé au bouton */
    .gform_wrapper input[type="email"] {
        height: 3.5rem;
        border: 1px solid var(--wp--preset--color--primary);
        border-right: none;
        border-radius: 0;
        background: transparent;
        color: var(--wp--preset--color--primary);
    }

    /* Bouton : sombre, rectangulaire, accolé. Le style global (gravityform_sur.css)
       force fond doré + radius arrondi en !important sur `form :is(input, button).gform_button.button` :
       on monte la spécificité + !important pour le battre.
       ⚠️ GF 3.x rend le submit en <button>, plus en <input type="submit"> : le :is(input, button)
       couvre les deux balises à spécificité identique (0,2,1). */
    .gform_wrapper :is(input, button).gform_button.button {
        height: 3.5rem;
        border: 1px solid var(--wp--preset--color--primary) !important;
        border-radius: 0 !important;
        background: var(--wp--preset--color--primary) !important;
        color: var(--wp--preset--color--tertiary) !important;
        padding-inline: var(--wp--preset--spacing--l);
        text-transform: uppercase;
        letter-spacing: 0.1em;
        white-space: nowrap;
        transition: background-color 0.15s ease, color 0.15s ease;
        font-size:var(--wp--preset--font-size--s);
        font-weight:var(--wp--custom--font-weight--semibold);
        cursor: pointer;
    }

    .gform_wrapper :is(input, button).gform_button.button:hover,
    .gform_wrapper :is(input, button).gform_button.button:focus {
        background: var(--wp--preset--color--secondary) !important;
        border-color: var(--wp--preset--color--secondary) !important;
        color: var(--wp--preset--color--primary) !important;
    }

    /* ── Responsive : sous 1024px, le formulaire passe sous le texte ──── */
    @media (max-width: 1024px) {
        .lame-newsletter-cdm__inner {
            grid-template-columns: 1fr;
            gap: var(--wp--preset--spacing--l);
        }
    }

    /* ── Mobile : boîte resserrée + formulaire empilé (champ puis bouton) ── */
    @media (max-width: 781px) {
        .lame-newsletter-cdm__inner {
            padding: var(--wp--preset--spacing--m);
        }

        .gform_wrapper form {
            flex-direction: column;
            gap: var(--wp--preset--spacing--xs);
        }

        .gform_wrapper input[type="email"] {
            border-right: 1px solid var(--wp--preset--color--primary);
        }

        .gform_wrapper .gform_footer .gform_button {
            width: 100%;
        }
    }
}

/* ── Lame : engagements / valeurs (4 cartes à trait haut, fond crème) ─────── */
.wp-block-group.lame-engagement-cdm {
    padding-block: var(--wp--preset--spacing--xxxl);

    /* En-tête */
    > .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    > .wp-block-heading {
        margin-bottom: var(--wp--preset--spacing--xxl);
    }

    /* Grille des cartes — 4 colonnes, cartes étirées à hauteur égale par rangée */
    .wp-block-columns {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: var(--wp--preset--spacing--l);
    }

    /* Espacement interne des cartes */
    .is-style-paragraph-initiale-cdm {
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    h3.wp-block-heading {
        font-size: var(--wp--preset--font-size--xl);
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    /* Corps de texte des cartes — plus petit et aéré */
    .wp-block-column .wp-block-paragraph:not(.is-style-paragraph-initiale-cdm) {
        font-size: var(--wp--preset--font-size--s);
        line-height: 1.6;
    }

    /* ── Responsive : 4 → 2 colonnes ── */
    @media (max-width: 993px) {
        .wp-block-columns {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    /* ── Très petite résolution : 1 colonne ── */
    @media (max-width: 600px) {
        padding-block: var(--wp--preset--spacing--xxl);

        .wp-block-columns {
            grid-template-columns: 1fr;
        }
    }
}

/* ── Lame : clients / chefs (grille de tuiles cliquables) ─────────────────── */
.wp-block-group.lame-clients-cdm {
    padding-block: 0;

    /* Grille façon tableau — filets sur le conteneur + chaque tuile */
    .lame-clients-cdm__grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        border-top: 1px solid var(--wp--custom--color--gris-bordure);
        border-left: 1px solid var(--wp--custom--color--gris-bordure);
        margin-block-start: var(--wp--preset--spacing--xxl) !important;
    }

    /* Tuile */
    .lame-clients-cdm__tile {
        position: relative;
        display: flex;
        flex-direction: column;
        min-width: 0;
        min-height: 200px;
        padding: var(--wp--preset--spacing--l) var(--wp--preset--spacing--m);
        border-right: 1px solid var(--wp--custom--color--gris-bordure);
        border-bottom: 1px solid var(--wp--custom--color--gris-bordure);
        transition: background 0.2s ease;
    }

    .lame-clients-cdm__tile:hover {
        background: var(--wp--custom--color--creme-clair);
    }

    /* Logo — zone de hauteur fixe, image contenue (non déformée) → noms alignés */
    .lame-clients-cdm__logo {
        height: 100px;
        margin: 0 0 var(--wp--preset--spacing--m);
        display: flex;
        align-items: center;

        img {
            max-height: 100px;
            max-width: 100%;
            width: auto;
            height: auto;
            object-fit: contain;
        }
    }

    /* Nom du client */
    .lame-clients-cdm__tile h4.wp-block-heading {
        font-size: var(--wp--preset--font-size--xl);
        margin: 0 0 var(--wp--preset--spacing--xxs);
    }

    .lame-clients-cdm__tile .is-style-paragraph-caption-cdm {
        margin: 0;
    }

    /* Lien collé en bas + zone de clic étendue à toute la tuile */
    .lame-clients-cdm__tile .is-style-paragraph-lienfleche-cdm {
        margin-top: auto;
        padding-top: var(--wp--preset--spacing--m);
        max-width: 100%;
    }

    /* URL tronquée si trop longue (évite l'ascenseur horizontal) */
    .lame-clients-cdm__tile .is-style-paragraph-lienfleche-cdm a {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .lame-clients-cdm__tile .is-style-paragraph-lienfleche-cdm a::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
    }

    /* ── Responsive : 4 → 2 colonnes ── */
    @media (max-width: 993px) {
        .lame-clients-cdm__grid {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    /* ── Très petite résolution : 1 colonne ── */
    @media (max-width: 600px) {
        .lame-clients-cdm__grid {
            grid-template-columns: 1fr;
        }
    }
}

/* ── Lame : partenaires (grille de tuiles, logo au-dessus, nom cliquable) ─── */
.wp-block-group.lame-partenaires-cdm {
    padding-block: 0;

    /* Grille façon tableau — filets sur le conteneur + chaque tuile */
    .lame-partenaires-cdm__grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        border-top: 1px solid var(--wp--custom--color--gris-bordure);
        border-left: 1px solid var(--wp--custom--color--gris-bordure);
        margin-block-start: var(--wp--preset--spacing--xxl) !important;
    }

    /* Tuile */
    .lame-partenaires-cdm__tile {
        position: relative;
        display: flex;
        flex-direction: column;
        gap: var(--wp--preset--spacing--s);
        min-width: 0;
        min-height: 150px;
        padding: var(--wp--preset--spacing--l) var(--wp--preset--spacing--m);
        border-right: 1px solid var(--wp--custom--color--gris-bordure);
        border-bottom: 1px solid var(--wp--custom--color--gris-bordure);
        transition: background 0.2s ease;
    }

    /* Hover seulement sur les tuiles cliquables */
    .lame-partenaires-cdm__tile:has(a:hover) {
        background: var(--wp--custom--color--creme-clair);
    }

    /* Logo au-dessus — zone de hauteur fixe, image contenue (non déformée) */
    .lame-partenaires-cdm__logo {
        height: 56px;
        margin: 0;
        display: flex;
        align-items: center;

        img {
            max-height: 56px;
            max-width: 100%;
            width: auto;
            height: auto;
            object-fit: contain;
        }
    }

    /* Nom du partenaire (porte le lien) — flèche collée à la fin du texte */
    .lame-partenaires-cdm__tile h4.wp-block-heading {
        font-size: var(--wp--preset--font-size--l);
        margin: 0;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: var(--wp--preset--spacing--xxs);
    }

    .lame-partenaires-cdm__tile h4 a {
        color: inherit;
        text-decoration: none;
        min-width: 0;
    }

    /* Flèche à droite du nom — seulement sur les tuiles cliquables */
    .lame-partenaires-cdm__tile:has(a) h4.wp-block-heading::after {
        content: "";
        flex-shrink: 0;
        width: 0.75rem;
        height: 0.75rem;
        background: url("../../img/arrow-up-right.svg") no-repeat center / contain;
    }

    /* Zone de clic étendue à toute la tuile */
    .lame-partenaires-cdm__tile a::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
    }

    /* ...mais PAS dans l'éditeur : ce calque recouvre le titre et empêche de
       poser le curseur à l'endroit cliqué (donc d'ouvrir la popover de lien
       pour modifier / retirer l'URL). `data-type` est posé par le block editor
       dans le canvas et n'existe pas sur le front → la tuile reste
       intégralement cliquable pour le visiteur. Même feinte que la lame
       « 2 pushs ». */
    .lame-partenaires-cdm__tile [data-type="core/heading"] a::after,
    .lame-partenaires-cdm__tile h4[data-type="core/heading"] a::after {
        content: none;
    }

    /* ── Responsive : 4 → 2 colonnes ── */
    @media (max-width: 993px) {
        .lame-partenaires-cdm__grid {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    /* ── Très petite résolution : 1 colonne ── */
    @media (max-width: 600px) {
        .lame-partenaires-cdm__grid {
            grid-template-columns: 1fr;
        }
    }
}

/* ── Lame : 4 raisons (grille 2×2, cartes blanches, fond crème) ──────────── */
.wp-block-group.lame-raisons-cdm {
    padding-block: var(--wp--preset--spacing--xxxl);

    /* En-tête de section (aligné à gauche) */
    > .wp-block-group {
        margin-bottom: var(--wp--preset--spacing--xxl);
    }


    > .wp-block-group .wp-block-heading em {
        font-style: italic;
    }

    /* Grille 2×2 — cartes étirées à hauteur égale par rangée */
    .wp-block-columns {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--wp--preset--spacing--l);
    }

    /* Carte blanche */
    .wp-block-column {
        background-color: var(--wp--preset--color--white);
        padding: var(--wp--preset--spacing--xl);
        display: flex;
        flex-direction: column;
        gap: var(--wp--preset--spacing--xs);
    }

    /* Espacement interne piloté uniquement par le gap flex : on neutralise
       les marges natives des enfants (resserre le numéro mono et le titre) */
    .wp-block-column > * {
        margin-top: 0;
        margin-bottom: 0;
    }

    h3.wp-block-heading {
        font-size: var(--wp--preset--font-size--xxl);
    }

    /* Corps de texte des cartes — plus petit et aéré */
    .wp-block-column .wp-block-paragraph:not(.is-style-paragraph-overline-mono-cdm) {
        font-size: var(--wp--preset--font-size--s);
        line-height: 1.6;
    }

    /* ── Mobile : les cartes passent les unes sous les autres ── */
    @media (max-width: 781px) {
        padding-block: var(--wp--preset--spacing--xxl);

        .wp-block-columns {
            grid-template-columns: 1fr;
        }
    }

    /* ── Très petits écrans : cartes resserrées ── */
    @media (max-width: 480px) {
        .wp-block-column {
            padding: var(--wp--preset--spacing--m);
        }
    }
}

/* ── Lame : Avis clients (bande beige, contenu wide) ─────────────────────── */
.wp-block-group.lame-avis-section-cdm {
    padding-block: var(--wp--preset--spacing--xxl);
    padding-inline: var(--wp--preset--spacing--l);

    /* En-tête de section (aligné à gauche) */
    > .wp-block-group {
        margin-bottom: var(--wp--preset--spacing--xl);
    }

    > .wp-block-group .wp-block-heading em {
        font-style: italic;
    }

    /* ── Mobile : padding latéral et vertical resserrés ── */
    @media (max-width: 781px) {
        padding-block: var(--wp--preset--spacing--xl);
        padding-inline: var(--wp--preset--spacing--m);
    }
}

/* ── Lame : Citation de l'affineur (portrait carré + grande citation) ────── */
.wp-block-group.lame-citation-affineur-cdm {
    padding-block: 0;

    /* Portrait — remplit la colonne, rendu carré via aspect-ratio du bloc */
    .lame-citation-affineur-cdm__media {
        margin: 0;

        img {
            display: block;
            width: 100%;
        }
    }

    /* Rythme vertical de la citation */
    .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--m);
    }

    .is-style-paragraph-citation-gros-cdm {
        margin-bottom: var(--wp--preset--spacing--l);
    }

    .is-style-paragraph-caption-cdm {
        margin-bottom: 0;
    }

    /* ── Mobile : colonnes empilées (défaut), espace réduit avant le texte ── */
    @media (max-width: 781px) {
        .wp-block-columns {
            gap: var(--wp--preset--spacing--l);
        }
    }
}

/* ── Lame : Livraison (sommaire sticky à gauche + sections à droite) ─────── */
.wp-block-group.lame-livraison-cdm {
    padding-block: 0;

    /* La colonne gauche s'étire (align-items: stretch par défaut) → le bloc
       sticky peut voyager sur toute la hauteur du contenu de droite. */
    > .wp-block-columns {
        align-items: stretch;
    }

    /* ── Colonne sommaire (gauche) ── */
    .lame-livraison-cdm__toc {
        position: sticky;
        top: var(--wp--preset--spacing--l);
    }

    /* Menu généré par le JS */
    .lame-livraison-cdm__nav {
        display: flex;
        flex-direction: column;
        margin-top: var(--wp--preset--spacing--m);
    }

    .lame-livraison-cdm__nav-link {
        display: flex;
        gap: var(--wp--preset--spacing--xs);
        align-items: baseline;
        padding: var(--wp--preset--spacing--xs) 0 var(--wp--preset--spacing--xs) var(--wp--preset--spacing--s);
        border-left: 2px solid var(--wp--custom--color--gris-bordure);
        font-family: var(--wp--preset--font-family--secondary);
        font-size: var(--wp--preset--font-size--s);
        font-weight: var(--wp--custom--font-weight--regular);
        line-height: 1.3;
        color: var(--wp--preset--color--primary);
        text-decoration: none;
        transition: color 0.18s ease, border-color 0.18s ease;
    }

    .lame-livraison-cdm__nav-num {
        flex-shrink: 0;
        font-family: var(--wp--preset--font-family--tertiary);
        font-size: var(--wp--preset--font-size--xxs);
        letter-spacing: 0.06em;
        color: var(--wp--preset--color--secondary);
    }

    .lame-livraison-cdm__nav-link:hover,
    .lame-livraison-cdm__nav-link:focus-visible {
        color: var(--wp--preset--color--secondary);
    }

    .lame-livraison-cdm__nav-link.is-active {
        border-left-color: var(--wp--preset--color--secondary);
        color: var(--wp--preset--color--secondary);
        font-weight: var(--wp--custom--font-weight--semibold);
    }

    /* ── Colonne contenu (droite) ── */
    .lame-livraison-cdm__content {
        display: flex;
        flex-direction: column;
        gap: var(--wp--preset--spacing--xxxl);
        min-width: 0; /* autorise les enfants larges (tableau) à déborder en interne */
    }

    /* Décalage d'ancre pour ne pas masquer le titre sous le haut de page */
    .livraison-section {
        scroll-margin-top: var(--wp--preset--spacing--xxl);
    }

    .livraison-section h2 em {
        font-style: italic;
    }

    /* ── Mobile : le sommaire disparaît, le contenu prend toute la largeur ── */
    @media (max-width: 781px) {
        > .wp-block-columns {
            display: block;
        }

        > .wp-block-columns > .wp-block-column:first-child {
            display: none;
        }

        .lame-livraison-cdm__content {
            gap: var(--wp--preset--spacing--xxl);
        }
    }
}

/* ── Composition : 3 push avec picto (tuiles crème) ─────────────────────── */
.wp-block-group.lame-push-pictos-cdm {
    padding-block: 0;

    .wp-block-columns {
        gap: var(--wp--preset--spacing--m);
    }

    /* Tuile crème (variation is-style-group-creme-cdm) — hauteurs égales */
    .wp-block-column > .wp-block-group {
        height: 100%;
        padding: var(--wp--preset--spacing--l) var(--wp--preset--spacing--m);
    }

    /* Picto noir */
    .lame-push-pictos-cdm__icon {
        margin-bottom: var(--wp--preset--spacing--xs);

        img {
            width: 28px;
            height: 28px;
        }
    }

    /* Titre — Fraunces, taille réduite (≈ 18px) */
    .wp-block-heading {
        font-size: var(--wp--preset--font-size--l);
        margin-bottom: var(--wp--preset--spacing--xxs);
    }
}

/* ── Composition : Boutiques — infos (2 cartes bordées) ─────────────────── */
.wp-block-group.lame-boutiques-infos-cdm {
    padding-block: 0;

    .wp-block-columns {
        gap: var(--wp--preset--spacing--m);
    }

    /* Carte bordée — hauteurs égales */
    .wp-block-column > .wp-block-group {
        height: 100%;
        padding: var(--wp--preset--spacing--l);
        border: 1px solid var(--wp--custom--color--gris-bordure);
    }

    /* En-tête de carte */
    .is-style-paragraph-overline-mono-cdm {
        margin-bottom: var(--wp--preset--spacing--xxs);
    }

    .wp-block-heading {
        font-size: var(--wp--preset--font-size--xxl);
        margin-bottom: var(--wp--preset--spacing--xs);
        margin-top: var(--wp--preset--spacing--xxs);
    }

    /* Adresse */
    .lame-boutiques-infos-cdm__adresse {
        margin: 0 0 var(--wp--preset--spacing--xs);
        font-size: var(--wp--preset--font-size--s);
    }

    /* Horaires (variation meta) */
    .is-style-paragraph-meta-cdm {
        margin-bottom: 0;
    }
}

/* ── Composition : Jours de marché (grille claire à filets) ─────────────── */
.wp-block-group.lame-marche-jours-cdm {
    padding-block: 0;

    /* Grille — filets fins (haut + gauche sur le conteneur) */
    .lame-marche-jours-cdm__grid {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 0;
        border-top: 1px solid var(--wp--custom--color--gris-bordure);
        border-left: 1px solid var(--wp--custom--color--gris-bordure);
    }

    /* Cellule — filets droite + bas (effet tableau sans filets doubles) */
    .lame-marche-jours-cdm__cell {
        padding: var(--wp--preset--spacing--m) var(--wp--preset--spacing--s);
        text-align: center;
        border-right: 1px solid var(--wp--custom--color--gris-bordure);
        border-bottom: 1px solid var(--wp--custom--color--gris-bordure);
    }

    /* Jour (mono doré) */
    .lame-marche-jours-cdm__cell > .is-style-paragraph-overline-mono-cdm {
        margin-bottom: var(--wp--preset--spacing--xxs);
    }

    /* Lieu (Fraunces) */
    .lame-marche-jours-cdm__cell > .wp-block-heading {
        margin: 0;
        font-size: var(--wp--preset--font-size--l);
    }

    /* Légende horaires — sur base de la variation meta, en gris clair + capitales */
    .lame-marche-jours-cdm__legende {
        margin-top: var(--wp--preset--spacing--s);
        text-transform: uppercase;
        color: var(--wp--custom--color--gris-disabled);
    }

    /* ── Responsive : réflo comme la lame marchés (5 → 3 → 2 → 1) ── */
    @media (max-width: 900px) {
        .lame-marche-jours-cdm__grid {
            grid-template-columns: repeat(3, 1fr);
        }
    }

    @media (max-width: 600px) {
        .lame-marche-jours-cdm__grid {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    @media (max-width: 400px) {
        .lame-marche-jours-cdm__grid {
            grid-template-columns: 1fr;
        }
    }
}

/* ── Composition : 3 cartes crème (titre + texte) ───────────────────────── */
.wp-block-group.lame-pushs-cartes-cdm {
    padding-block: 0;

    /* Grille 2 colonnes (la 3e carte passe en 2e rangée) */
    .lame-pushs-cartes-cdm__grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--wp--preset--spacing--m);
    }

    /* Carte crème */
    .lame-pushs-cartes-cdm__grid > .wp-block-group {
        padding: var(--wp--preset--spacing--l);
    }

    .lame-pushs-cartes-cdm__grid .wp-block-heading {
        font-size: var(--wp--preset--font-size--l);
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    .lame-pushs-cartes-cdm__grid .wp-block-paragraph {
        font-size: var(--wp--preset--font-size--s);
        line-height: 1.6;
        margin-bottom: 0;
    }

    /* Ligne de signalement — gris (variation subtitle), contacts en gras foncé */
    .lame-pushs-cartes-cdm__signal {
        margin-top: var(--wp--preset--spacing--m);

        strong {
            color: var(--wp--preset--color--primary);
            font-weight: var(--wp--custom--font-weight--semibold);
        }
    }

    /* ── Mobile : 1 colonne ── */
    @media (max-width: 600px) {
        .lame-pushs-cartes-cdm__grid {
            grid-template-columns: 1fr;
        }
    }
}

/* ── Composition : FAQ (en-tête + accordéon) ────────────────────────────── */
.wp-block-group.lame-faq-cdm {
    padding-block: 0;

    > .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    > .wp-block-heading {
        margin-bottom: var(--wp--preset--spacing--xl);
    }

    > .wp-block-heading em {
        font-style: italic;
    }
}

/* ── Recette : héro (image + titre en bas) ──────────────────────────────── */
.wp-block-cover.lame-recette-hero-cdm {
    .wp-block-post-title {
        max-width: 920px;
        margin: 0;
        font-size: var(--wp--preset--font-size--xxxxxl);
    }

    .wp-block-post-title em {
        font-style: italic;
    }
}

/* ── Recette : corps (rythme vertical des sections) ─────────────────────── */
.wp-block-group.lame-recette-corps-cdm {
    > .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    > .is-style-heading-display-cdm {
        margin-bottom: var(--wp--preset--spacing--l);
    }
}

/* ── Recette : recettes liées (en-tête + grille Query) ──────────────────── */
.wp-block-group.lame-recettes-liees-cdm,
.wp-block-group.lame-articles-lies-cdm,
.wp-block-group.lame-listing-actualites-cdm,
.wp-block-group.lame-blog-recettes-cdm {
    padding-block: 0;

    > .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    > .wp-block-heading {
        margin-bottom: var(--wp--preset--spacing--xl);
    }

    > .wp-block-heading em {
        font-style: italic;
    }

    .wp-block-post-template {
        gap: var(--wp--preset--spacing--xl);
    }

    /* ── 600–782 px : grille en 2 colonnes ── */
    @media (min-width: 600px) and (max-width: 781px) {
        .wp-block-post-template.is-layout-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    /* Tuile : pile verticale, position relative pour le lien étendu */
    .wp-block-post {
        position: relative;
        display: flex;
        flex-direction: column;
        gap: var(--wp--preset--spacing--xxs);
    }

    /* Image — jamais d'arrondi (zoom au survol conservé via le clip global) */
    .wp-block-post-featured-image {
        margin: 0;
        border-radius: 0;

        img {
            border-radius: 0;
        }
    }

    /* Neutralise l'arrondi ajouté au survol par core-post-template.css */
    .wp-block-post:has(a:hover) .wp-block-post-featured-image,
    .wp-block-post:has(a:focus-visible) .wp-block-post-featured-image {
        border-radius: 0;

        img {
            border-radius: 0;
        }
    }

    /* Ligne meta : date + catégorie, sur une seule ligne avant le titre */
    .lame-recettes-liees-cdm__meta,
    .lame-articles-lies-cdm__meta,
    .lame-listing-actualites-cdm__meta,
    .lame-blog-recettes-cdm__meta {
        align-items: center;
        gap: var(--wp--preset--spacing--xs);
    }

    /* Date — mono doré, format « 28 sept. » (on retire le tiret global) */
    .wp-block-post-date {
        font-family: var(--wp--preset--font-family--tertiary);
        font-size: var(--wp--preset--font-size--xxs);
        font-weight: var(--wp--custom--font-weight--regular);
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--wp--preset--color--secondary);

        time::before {
            content: none;
        }
    }

    /* Catégorie — mono gris, puce ronde en séparateur (réutilise overline-mono) */
    .lame-recettes-liees-cdm__cat,
    .lame-articles-lies-cdm__cat,
    .lame-listing-actualites-cdm__cat,
    .lame-blog-recettes-cdm__cat {
        display: flex;
        align-items: center;
        gap: var(--wp--preset--spacing--xs);
        margin: 0;
        color: var(--wp--custom--color--gris-disabled);

        &::before {
            content: "";
            width: 4px;
            height: 4px;
            border-radius: var(--wp--custom--radius--full);
            background: var(--wp--custom--color--gris-disabled);
        }

        /* Catégorie dynamique (post-terms) : libellé seul, pas de lien cliquable */
        a {
            color: inherit;
            text-decoration: none;
            pointer-events: none;
        }
    }

    /* Titre — porte le lien étendu à toute la tuile */
    .wp-block-post-title {
        margin: 0;

        a {
            color: inherit;
            text-decoration: none;

            &::after {
                content: "";
                position: absolute;
                inset: 0;
                z-index: 1;
            }
        }
    }

    /* Extrait — corps léger */
    .wp-block-post-excerpt {
        margin: 0;
        font-size: var(--wp--preset--font-size--s);
        line-height: 1.6;
    }
}


/* ── Blog & recettes : en-tête (overline + titre à gauche, lien à droite) ──── */
.wp-block-group.lame-blog-recettes-cdm {

    /* En-tête : intro à gauche, lien « Tout le blog » à droite, aligné en bas */
    .lame-blog-recettes-cdm__head {
        margin-bottom: var(--wp--preset--spacing--xl);
        gap: var(--wp--preset--spacing--m);
    }

    /* Colonne intro : overline collé au titre */
    .lame-blog-recettes-cdm__intro {
        > .is-style-paragraph-overline-cdm {
            margin-bottom: var(--wp--preset--spacing--xs);
        }
    }

    .lame-blog-recettes-cdm__title {
        margin: 0;

        em {
            font-style: italic;
        }
    }

    /* Lien « Tout le blog » : pas de retour à la ligne, jamais étiré */
    .lame-blog-recettes-cdm__action {
        flex: 0 0 auto;
    }
}

/* ── Listing actualités : spécifique (en-tête, filtres, pagination) ───────── */
.wp-block-group.lame-listing-actualites-cdm {

    /* En-tête : titre à gauche, liens filtres à droite, trait en bas */
    .lame-listing-actualites-cdm__head {
        margin-bottom: var(--wp--preset--spacing--xl);
        padding-bottom: var(--wp--preset--spacing--m);
        border-bottom: 1px solid var(--wp--custom--color--gris-bordure);
        gap: var(--wp--preset--spacing--m);
        margin-block-start: var(--wp--preset--spacing--xxl) !important;
    }

    .lame-listing-actualites-cdm__title {
        margin: 0;

        em {
            font-style: italic;
        }
    }

    /* Liens filtres : pastilles compactes (réutilise les variations bouton) */
    .lame-listing-actualites-cdm__filters {
        gap: var(--wp--preset--spacing--xxs);

        .wp-block-button__link {
            padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--s);
            font-family: var(--wp--preset--font-family--secondary);
            font-size: var(--wp--preset--font-size--xxs);
            font-weight: var(--wp--custom--font-weight--medium);
            letter-spacing: 0.05em;
            text-transform: uppercase;
        }
    }

    /* Espace vertical un peu plus aéré entre les rangées de tuiles */
    .wp-block-post-template.is-layout-grid {
        row-gap: var(--wp--preset--spacing--xxl);
    }

    /* Pagination : centrée, trait au-dessus, pastilles carrées */
    .lame-listing-actualites-cdm__pagination {
        margin-top: var(--wp--preset--spacing--xxl);
        padding-top: var(--wp--preset--spacing--xl);
        border-top: 1px solid var(--wp--custom--color--gris-bordure);
        gap: var(--wp--preset--spacing--xxs);
        align-items: center;

        .wp-block-query-pagination-numbers {
            display: flex;
            gap: var(--wp--preset--spacing--xxs);
        }

        a,
        .page-numbers {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 50px;
            height: 50px;
            padding: 0 var(--wp--preset--spacing--xxs);
            font-family: var(--wp--preset--font-family--secondary);
            font-size: var(--wp--preset--font-size--xs);
            font-weight: var(--wp--custom--font-weight--medium);
            color: var(--wp--preset--color--primary);
            text-decoration: none;
            transition: color 0.15s ease, border-color 0.15s ease;
        }

        a:hover {
            color: var(--wp--preset--color--secondary);
        }

        /* Page courante : pastille pleine sombre */
        .page-numbers.current {
            color: var(--wp--preset--color--tertiary);
            background: var(--wp--preset--color--primary);
            border-color: var(--wp--preset--color--primary);
        }

        .page-numbers.dots {
            border-color: transparent;
        }
    }

    /* Responsive : en-tête empilé sous 600 px */
    @media (max-width: 599px) {
        .lame-listing-actualites-cdm__head {
            flex-direction: column;
            align-items: flex-start;
        }
    }
}


/* ─── Lame « Mot de l'affineur » (portrait + citation) ─── */
.wp-block-group.lame-mot-affineur-cdm {

    /* Liens du corps : toujours soulignés */
    a {
        text-decoration: underline;
        text-underline-offset: 0.18em;
        color: var(--wp--preset--color--primary);
        text-decoration-color: var(--wp--preset--color--secondary);
        &:hover, &:focus{
            color: var(--wp--preset--color--secondary);
        }
    }

    /* Colonne gauche (identité) : rythme vertical xxs, sans marge haute */
    .wp-block-column:first-child > * {
        margin-top: 0;
        &.is-style-paragraph-overline-cdm{
            margin-bottom: 0;
        }
        &.wp-block-image{
            margin-bottom: var(--wp--preset--spacing--xxs);
        }
    }

    /* Nom de l'affineur — graisse normale */
    .lame-mot-affineur-cdm__name {
        font-weight: var(--wp--custom--font-weight--regular);
        margin:0;
    }

    /* Colonne droite : items de liste en graisse light */
    .wp-block-column:last-child li {
        font-weight: var(--wp--custom--font-weight--light);
    }
}


/* ─── Zones éditables Actualités (contenu admin avant / après le listing) ──────
   Côté intérieur (vers le groupe une+listing) : 0, car ce groupe porte déjà son
   propre rythme xxl. Avant : haut à 0 → la bannière reste collée au header.
   Après : bas à xxl → on garde de l'air entre la newsletter et le footer. */
.wp-block-group.lame-zone-actualites-cdm--avant {
    padding-block: 0;
}
.wp-block-group.lame-zone-actualites-cdm--apres {
    padding-block: 0 var(--wp--preset--spacing--xxl);
}


/* ─── Lame « Fil d'Ariane » (Yoast) : trait pleine largeur, texte aligné wide ───
   Indépendant du parent : s'applique aussi bien dans .wp-block-post-content (pages,
   recettes) que directement dans <main> (modèle blog/home). */
.wp-block-group.lame-fil-ariane-cdm {
    padding-block: 0;
    border-bottom: 1px solid var(--wp--custom--color--gris-bordure);
    margin-block-start: 0 !important;
    nav{
        line-height: 1.8em;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   FOOTER — fond sombre, marque + menu, bloc SEO, barre méta
   ═══════════════════════════════════════════════════════════════════════════ */
.wp-block-group.footer-cdm {
    padding-block: var(--wp--preset--spacing--xxl) var(--wp--preset--spacing--xl);
    margin-block-start: 0 !important;

    /* Rangée haute : marque (gauche) + menu colonnes (droite) */
    .FooterTop {
        align-items: flex-start;
        gap: var(--wp--preset--spacing--xxl);
        margin-bottom: var(--wp--preset--spacing--xxl);
    }

    /* Colonne marque */
    .FooterBrand-logo {
        margin: 0 0 var(--wp--preset--spacing--l);
    }

    .FooterBrand-desc {
        max-width: 340px;
        font-size: var(--wp--preset--font-size--s);
        line-height: var(--wp--custom--line-height--regular);
        color: rgba(248, 247, 243, 0.75);
        margin-bottom: var(--wp--preset--spacing--m);
    }

    /* Bloc newsletter : trait de séparation + surtitre */
    .FooterNewsletter {
        margin-top: var(--wp--preset--spacing--l);
        padding-top: var(--wp--preset--spacing--m);
        border-top: 1px solid rgba(248, 247, 243, 0.15);
    }

    .FooterNewsletter-label {
        margin-bottom: var(--wp--preset--spacing--s);
    }

    /* Bloc SEO : trait haut, titre réduit, texte atténué */
    .FooterSeo {
        margin-top: var(--wp--preset--spacing--xl);
        padding-top: var(--wp--preset--spacing--xl);
        border-top: 1px solid rgba(248, 247, 243, 0.15);
    }

    .FooterSeo-title {
        max-width: 880px;
        font-size: var(--wp--preset--font-size--xxl);
        margin-bottom: var(--wp--preset--spacing--m);
    }

    .FooterSeo-text {
        max-width: 1100px;
        font-size: var(--wp--preset--font-size--xs);
        line-height: var(--wp--custom--line-height--large);
        color: rgba(248, 247, 243, 0.6);
        margin-bottom: var(--wp--preset--spacing--xl);
    }

    /* Barre méta : copyright + menu légal */
    .FooterMeta {
        margin-top: var(--wp--preset--spacing--xl);
        padding-top: var(--wp--preset--spacing--m);
        border-top: 1px solid rgba(248, 247, 243, 0.15);
        gap: var(--wp--preset--spacing--s);
    }

    .FooterMeta-copy {
        margin-bottom: 0;
        font-family: var(--wp--preset--font-family--tertiary);
        font-size: var(--wp--preset--font-size--xxs);
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: rgba(248, 247, 243, 0.5);
    }

    /* ── Newsletter Gravity Forms : champ + bouton sur une ligne ──
       Surcharge du thème GF « orbital/foundation » + gravityform_sur.css. */
    .FooterNewsletter .gform_wrapper {
        margin: 0 !important;
    }

    .FooterNewsletter .gform_wrapper form {
        display: flex !important;
        gap: var(--wp--preset--spacing--xs);
        align-items: stretch;
    }

    .FooterNewsletter .gform_body,
    .FooterNewsletter .gform-body {
        flex: 1;
        margin: 0;
        padding: 0;
    }

    .FooterNewsletter .gform_fields {
        display: block !important;
        grid-template-columns: none !important;
        row-gap: 0 !important;
    }

    .FooterNewsletter .gfield {
        margin: 0 !important;
        padding: 0;
    }

    .FooterNewsletter .gfield_label {
        display: none !important;
    }

    .FooterNewsletter .gform-theme--foundation.gform-theme--framework form .ginput_container input[type="email"],
    .FooterNewsletter .gform-theme--foundation.gform-theme--framework form .ginput_container input[type="text"],
    .FooterNewsletter .ginput_container input {
        width: 100%;
        max-width: none;
        height: 44px;
        padding: 0 var(--wp--preset--spacing--s) !important;
        background: transparent !important;
        border: 1px solid rgba(248, 247, 243, 0.3) !important;
        border-radius: 0 !important;
        color: var(--wp--preset--color--tertiary) !important;
        font-family: var(--wp--preset--font-family--secondary) !important;
        font-size: var(--wp--preset--font-size--s) !important;
    }

    .FooterNewsletter .ginput_container input::placeholder {
        color: rgba(248, 247, 243, 0.45);
    }

    .FooterNewsletter .ginput_container input:focus {
        outline: none;
        border-color: var(--wp--preset--color--secondary) !important;
    }

    .FooterNewsletter .gform_footer,
    .FooterNewsletter .gform-footer {
        margin: 0 !important;
        padding: 0 !important;
        display: flex;
        align-items: stretch;
        width: auto;
    }

    .FooterNewsletter .gform-footer :is(input, button)[type="submit"].gform_button.button,
    .FooterNewsletter .gform_button {
        width: auto;
        height: 44px;
        margin: 0;
        padding: 0 var(--wp--preset--spacing--s) !important;
        background: var(--wp--preset--color--secondary) !important;
        color: var(--wp--preset--color--primary) !important;
        border: none !important;
        border-radius: 0 !important;
        cursor: pointer;
        font-family: var(--wp--preset--font-family--secondary) !important;
        font-weight: var(--wp--custom--font-weight--semibold) !important;
        font-size: var(--wp--preset--font-size--s) !important;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        transition: background 0.18s ease;
    }

    .FooterNewsletter .gform_button:hover,
    .FooterNewsletter .gform_button:focus {
        background: var(--wp--custom--color--or-hover) !important;
    }
}

/* Pile mobile : marque puis menu sur toute la largeur */
@media (max-width: 781px) {
    .wp-block-group.footer-cdm .FooterTop {
        gap: var(--wp--preset--spacing--xl);
    }
    .wp-block-group.footer-cdm .FooterMeta {
        justify-content: flex-start;
    }
}

/* ── Lame galerie — Boutiques & marchés ── */
.wp-block-group.lame-galerie-cdm {
    padding-block: 0;

    /* Espace entre l'en-tête et le groupe contenant la galerie
       (!important pour surcharger le margin-top:0 !important global des groupes) */
    .lame-galerie-cdm__gallery {
        margin-block-start: var(--wp--preset--spacing--xxl) !important;
    }
}

/* ── Lame article blog — corps + sidebar sticky ──────────────────────────── */
.wp-block-group.lame-article-blog-cdm {
    padding-block: 0;

    /* Grille : corps à gauche (largeur de lecture), sidebar collée à droite */
    .lame-article-blog-cdm__grid {
        gap: var(--wp--preset--spacing--xxl);
        align-items: flex-start;
        justify-content: space-between;
    }

    /* Corps : largeur de lecture confortable, indépendante de la colonne */
    .lame-article-blog-cdm__body {
        max-width: 720px;

        /* Respiration au-dessus des h2 (surcharge le blockGap global, qui
           est posé par la règle :where() du layout flow → spécificité 0) */
        h2 {
            margin-block-start: var(--wp--preset--spacing--xl);
        }
    }

    /* Catégories (core/post-terms) — filet haut, mono uppercase,
       préfixe + séparateurs gris, termes dorés */
    .lame-article-blog-cdm__categories {
        margin-top: var(--wp--preset--spacing--l);
        padding-top: var(--wp--preset--spacing--m);
        border-top: 1px solid var(--wp--custom--color--gris-bordure);
        font-family: var(--wp--preset--font-family--tertiary);
        font-size: var(--wp--preset--font-size--xxs);
        font-weight: var(--wp--custom--font-weight--regular);
        line-height: 1.6;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--wp--preset--color--quinary);

        a {
            color: var(--wp--preset--color--secondary);
            text-decoration: none;
        }

        a:hover,
        a:focus {
            color: var(--wp--custom--color--or-hover);
            text-decoration: underline;
        }
    }

    /* Sidebar : collée sous le header en desktop (header.js alimente --cdm-header-h) */
    .lame-article-blog-cdm__aside {
        position: sticky;
        top: calc(var(--cdm-header-h, 90px) + var(--wp--preset--spacing--m));
        align-self: flex-start;
    }

    /* Carte auteur */
    .lame-article-blog-cdm__author {
        padding: var(--wp--preset--spacing--l);

        .wp-block-heading {
            margin-bottom: 0;
        }
    }

    .lame-article-blog-cdm__authorHead {
        gap: var(--wp--preset--spacing--xs);
        margin-bottom: var(--wp--preset--spacing--xs);
    }

    .lame-article-blog-cdm__avatar {
        flex: none;
        margin: 0;

        img {
            border-radius: var(--wp--custom--radius--full);
        }
    }

    .lame-article-blog-cdm__authorName {
        font-size: var(--wp--preset--font-size--l);
    }

    /* Espace nom ↔ rôle (groupe flex vertical) */
    .lame-article-blog-cdm__authorIdentity {
        gap: var(--wp--preset--spacing--xxxs);
    }

    /* Bio de l'auteur : un cran plus lisible */
    .lame-article-blog-cdm__authorBio {
        font-size: var(--wp--preset--font-size--s);
    }

    /* ── Responsive : sous 993px, la sidebar passe sous le corps ───────────
       WordPress force flex-wrap:nowrap au-dessus de 782px → on bascule en
       flex-direction:column pour empiler de façon fiable dès 992px. ──────── */
    @media (max-width: 992px) {
        .lame-article-blog-cdm__grid {
            flex-direction: column;
            align-items: stretch;
        }

        .lame-article-blog-cdm__body,
        .lame-article-blog-cdm__aside {
            flex-basis: auto !important;
            width: 100%;
            max-width: 100%;
        }

        .lame-article-blog-cdm__aside {
            position: static;
            top: auto;
        }
    }
}



/* ── Lame : en-tête page Contact (surtitre + titre display + chapô) ───────── */
.wp-block-group.lame-contact-header-cdm {
    padding-block: var(--wp--preset--spacing--xxxl) 0;

    /* En tête de contenu de page : on colle au header, pas d'espace en haut */
    .entry-content > &:first-child {
        padding-top: 0;
    }

    /* Chapô : échelle « intro » (taille l) et respiration sous le titre */
    .is-style-paragraph-chapo-cdm {
        font-size: var(--wp--preset--font-size--l);
        margin-top: var(--wp--preset--spacing--l);
    }

    /* Responsive : padding resserré. La taille du titre (xxxxxl) est déjà fluide
       côté theme.json (clamp ~80px desktop → ~40px mobile), inutile de la surcharger. */
    @media (max-width: 781px) {
        padding-block: var(--wp--preset--spacing--xxl) 0;
    }
}

/* ── Lame : Contact — formulaire (carte) + coordonnées ───────────────────── */
.wp-block-group.lame-contact-formulaire-cdm {
    padding-block: 0;

    /* Carte du formulaire : bordure + padding généreux */
    .lame-contact-formulaire-cdm__card {
        border: 1px solid var(--wp--custom--color--gris-bordure);
        padding: var(--wp--preset--spacing--xl);

        h2 {
            margin-bottom: var(--wp--preset--spacing--l);
        }
    }

    /* Colonne coordonnées : titre puis blocs séparés par un filet haut */
    .lame-contact-formulaire-cdm__coord {
        display: flex;
        flex-direction: column;
        gap: var(--wp--preset--spacing--l);
        margin-top: var(--wp--preset--spacing--l);
    }

    .lame-contact-formulaire-cdm__item {
        display: flex;
        flex-direction: column;
        gap: var(--wp--preset--spacing--xxs);
        border-top: 1px solid var(--wp--custom--color--gris-bordure);
        padding-top: var(--wp--preset--spacing--m);
    }

    /* Email : un cran plus petit que les numéros */
    .lame-contact-formulaire-cdm__item--email .is-style-paragraph-display-cdm {
        font-size: var(--wp--preset--font-size--xl);
    }

    /* Adresse et réseaux : corps léger */
    .lame-contact-formulaire-cdm__adresse,
    .lame-contact-formulaire-cdm__social {
        margin-block: 0;
        font-size: var(--wp--preset--font-size--s);
        font-weight: var(--wp--custom--font-weight--light);
        line-height: var(--wp--custom--line-height--regular);
        color: var(--wp--preset--color--quinary);
    }

    .lame-contact-formulaire-cdm__social {
        line-height: 2;

        a {
            color: var(--wp--preset--color--primary);
            text-decoration: none;
            transition: color 0.18s ease;
        }

        a:hover,
        a:focus {
            color: var(--wp--preset--color--secondary);
        }
    }

    /* Responsive : colonnes empilées (gérées par le bloc Colonnes < 782px),
       carte resserrée */
    @media (max-width: 781px) {
        .lame-contact-formulaire-cdm__card {
            padding: var(--wp--preset--spacing--l);
        }
    }
}

/* ── Lame : Note de l'affineur + vidéo (fiche produit) ────────────────────── */
.wp-block-group.lame-affineur-cdm {
    background: var(--wp--custom--color--creme-principal);
    padding-block: var(--wp--preset--spacing--xxl);

    @media (max-width: 781px) {
        padding-block: var(--wp--preset--spacing--xl);
    }

    /* Corps = description longue native (post-content), poids léger et aéré */
    .wp-block-post-content {
        margin-top: var(--wp--preset--spacing--l);
    }
    .pdp-affineur-note__body p {
        font-weight: var(--wp--custom--font-weight--light);
        line-height: 1.7;
    }
    .pdp-affineur-note__body p + p {
        margin-top: var(--wp--preset--spacing--s);
    }
}

/* ── Lame : Caractéristiques (carte d'identité + accord) ──────────────────── */
.wp-block-group.lame-caracteristiques-cdm {
    /* Surtitre natif suivi du bloc custom (titre) : espacement géré ici car
       la règle .is-style-paragraph-overline-cdm + .wp-block-heading ne
       s'applique pas (le heading est à l'intérieur du bloc custom). */

    >.wp-block-columns{
        @media (max-width: 992px) {
            gap: var(--wp--preset--spacing--xxxl);
        }
    }
    .is-style-paragraph-overline-cdm {
        margin-bottom: var(--wp--preset--spacing--xxxs);
    }
}
