/*
Theme Name: CIBC Theme
Description: Thème FSE personnalisé pour CIBC Nouvelle-Aquitaine
Version: 1.0
*/
 
/* Empêche la barre de défilement horizontale due au débordement du visuel
   hero (full-bleed via 100vw). « clip » ne casse pas les éléments sticky. */
html { overflow-x: clip; }

/* ─── Variables globales ───────────────────────────────────────── */
:root {
    --cibc-rouge: rgba(106, 26, 22, 1);
    --cibc-rouge-light: rgba(106, 26, 22, 0.15);
    --cibc-text: #333333;
    --cibc-font: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);

    /* Tailles de texte de contenu, réduites automatiquement en responsive (voir media query plus bas) */
    --text-18: 18px;
    --text-16: 16px;

    /* Padding horizontal des sections : 112px à partir de 1440px (visuel inchangé),
       puis réduction fluide sur les écrans plus petits. */
    --section-pad-x: clamp(24px, 7.8vw, 112px);

    /* Grain réutilisable : points sombres ÉPARS sur fond transparent
       (l'alpha porte le bruit → le fond reste sa vraie couleur, pas de voile gris) */
    --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='gamma' exponent='5' amplitude='1' offset='0'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Textes de contenu réduits en responsive : 18→16px et 16→14px */
@media (max-width: 768px) {
    :root {
        --text-18: 16px;
        --text-16: 14px;
    }
}

/* ─── Grain : superposé AUX COULEURS, mais SOUS le texte ──────────────
   Ajoute la classe-cible dans la liste pour texturer un nouvel élément.
   --grain-opacity règle l'intensité (0 = invisible). */
.section-cibc__card::after,
.effet-horizontal__redcard::after,
.panorama-temps__card::after,
.cities::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background-image: var(--grain);
    background-size: 140px 140px;          /* grain fin */
    opacity: var(--grain-opacity, 0.4);    /* valeur par défaut (cartes) */
    pointer-events: none;
    z-index: 1;
}
/* le contenu (texte, boutons…) repasse AU-DESSUS du grain */
.section-cibc__card > *,
.effet-horizontal__redcard > *,
.panorama-temps__card > *,
.cities__track {
    position: relative;
    z-index: 2;
}
/* Carte « Prenez le temps » : grain léger */
.panorama-temps__card {
    --grain-opacity: 0.18;
}
/* Parking : grain plus léger que les autres */
.effet-horizontal__redcard {
    --grain-opacity: 0.16;
}
/* Villes : grain un peu plus léger */
.cities {
    --grain-opacity: 0.25;
}

/* ─── Fond de page (dégradé blanc → rouge → blanc) ──────────────── */
/* Appliqué sur .wp-site-blocks (conteneur FSE = toute la hauteur de la page) */
.wp-site-blocks {
    /* Grain (calque du dessus) + dégradé Figma (calque du dessous), mélangés */
    background-image: var(--grain), var(--wp--preset--gradient--main-fade-page);
    background-repeat: repeat, no-repeat;
    background-size: 120px 120px, 100% 100%;
    background-blend-mode: soft-light, normal;   /* le grain se fond dans le dégradé */
}

/* Page Notre association : bande corail en haut (hero + intro), blanc ensuite */
body.page-association .wp-site-blocks {
    background-image: var(--grain), linear-gradient(to bottom,
        #FFFFFF 0%,
        #FFFFFF 6%,
        rgba(242, 180, 174, 0.35) 11%,
        rgba(232, 118, 108, 0.65) 18%,
        rgba(232, 118, 108, 0.65) 23%,
        rgba(242, 180, 174, 0.30) 29%,
        #FFFFFF 35%,
        #FFFFFF 100%);
    background-color: #FFFFFF;
    background-repeat: repeat, no-repeat;
    background-position: 0 0, 0 0;
    background-size: 120px 120px, 100% 100%;
    background-blend-mode: soft-light, normal;
}

/* Page Inscription : fond uni blanc (ni dégradé ni grain) */
body.page-inscription .wp-site-blocks {
    background: #FFFFFF;
}

/* Page article (single) : fond uni blanc (ni dégradé ni grain) */
body.single .wp-site-blocks {
    background: #FFFFFF;
}

/* Page Appui RH : fond uni blanc (ni dégradé ni grain) */
body.page-appui-rh .wp-site-blocks {
    background: #FFFFFF;
}

/* Page Formation Tuteur : même fond que CEP/Conseil VAE, en bleu #345E9D (85%) */
body.page-tuteur .wp-site-blocks {
    background-image: var(--grain), linear-gradient(to bottom,
        #FFFFFF 0%,
        #FFFFFF 55%,
        rgba(52, 94, 157, 0.20) 64%,
        rgba(52, 94, 157, 0.55) 70%,
        rgba(52, 94, 157, 0.85) 78%,
        rgba(52, 94, 157, 0.25) 82%,
        #FFFFFF 84%,
        #FFFFFF 100%);
    background-color: #FFFFFF;
    background-repeat: repeat, no-repeat;
    background-position: 0 0, 0 0;
    background-size: 120px 120px, 100% 100%;
    background-blend-mode: soft-light, normal;
}

/* Page Conseil en évolution pro : même fond que Conseil VAE, en violet */
body.page-cep .wp-site-blocks {
    background-image: var(--grain), linear-gradient(to bottom,
        #FFFFFF 0%,
        #FFFFFF 60%,
        rgba(207, 179, 213, 0.20) 68%,
        rgba(207, 179, 213, 0.55) 75%,
        rgba(207, 179, 213, 0.85) 80%,
        rgba(207, 179, 213, 0.25) 88%,
        #FFFFFF 89%,
        #FFFFFF 100%);
    background-color: #FFFFFF;
    background-repeat: repeat, no-repeat;
    background-position: 0 0, 0 0;
    background-size: 120px 120px, 100% 100%;
    background-blend-mode: soft-light, normal;
}

/* Page blog (page des articles) : fond uni blanc.
   ⚠️ NE PAS cibler `body.home` : c'est la page d'ACCUEIL (front-page), qui doit
   garder le dégradé global. La page des articles porte la classe `blog`. */
body.blog .wp-site-blocks {
    background: #FFFFFF;
}

/* Page Amorce de parcours : bleu formation en dégradé sur toute la page + grain */
body.page-amorce .wp-site-blocks {
    background-image: var(--grain), linear-gradient(to bottom,
        #FFFFFF 0%,
        #FFFFFF 60%,
        rgba(98, 140, 203, 0.15) 68%,
        rgba(98, 140, 203, 0.45) 75%,
        rgba(52, 94, 157, 0.65) 80%,
        rgba(52, 94, 157, 0.20) 83%,
        #FFFFFF 86%,
        #FFFFFF 100%);
    background-color: #FFFFFF;
    background-repeat: repeat, no-repeat;
    background-position: 0 0, 0 0;
    background-size: 120px 120px, 100% 100%;
    background-blend-mode: soft-light, normal;
}

/* Page Conseil VAE : même fond dégradé que Amorce (couleurs à adapter en VAE) */
body.page-conseil-vae .wp-site-blocks {
    background-image: var(--grain), linear-gradient(to bottom,
        #FFFFFF 0%,
        #FFFFFF 60%,
        rgb(148, 184, 117, 0.15) 68%,
        rgb(148, 184, 117, 0.45) 75%,
        rgb(148, 184, 117, 0.65) 80%,
        rgb(148, 184, 117, 0.20) 92%,
        #FFFFFF 95%,
        #FFFFFF 100%);
    background-color: #FFFFFF;
    background-repeat: repeat, no-repeat;
    background-position: 0 0, 0 0;
    background-size: 120px 120px, 100% 100%;
    background-blend-mode: soft-light, normal;
}

/* Page Rejoindre notre équipe : blanc en haut (hero + avantages), bande rouge/corail
   autour des offres, fondu rose clair vers le bas (processus + avis), blanc en bas. */
body.page-rejoindre .wp-site-blocks {
    background-image: var(--grain), linear-gradient(to bottom,
        #FFFFFF 0%,
        #FFFFFF 28%,
        rgba(246, 195, 192, 0.12) 48%,
        rgba(246, 195, 192, 0.45) 56%,
        rgba(246, 195, 192, 0.45) 58%,
        rgba(246, 195, 192, 0.25) 60%,
        rgba(246, 195, 192, 0.35) 75%,
        rgba(246, 195, 192, 0.40) 78%,
        #FFFFFF 84%,
        #FFFFFF 100%);
    background-color: #FFFFFF;
    background-repeat: repeat, no-repeat;
    background-position: 0 0, 0 0;
    background-size: 120px 120px, 100% 100%;
    background-blend-mode: soft-light, normal;
}

/* Page Panorama : blanc en haut (hero → consultantes), puis dégradé corail
   vers le bas (avis → FAQ → footer), + grain. Calé sur la maquette. */
body.page-panorama .wp-site-blocks {
    background-image: var(--grain), linear-gradient(to bottom,
        #FFFFFF 0%,
        #FFFFFF 55%,                       /* blanc */
        rgba(224, 40, 31, 0.28) 63%,       /* certifications : le rouge commence (plus haut) */
        rgba(224, 40, 31, 0.92) 74%,       /* avis Google : pic rouge pétant */
        rgba(224, 40, 31, 0.5) 79%,        /* le rouge tient juste sur le titre FAQ */
        #FFFFFF 83%,                       /* blanc avant les questions à dérouler */
        #FFFFFF 100%);
    background-color: #FFFFFF;
    background-repeat: repeat, no-repeat;
    background-position: 0 0, 0 134px;       /* dégradé décalé de 50px vers le bas */
    background-size: 120px 120px, 100% 100%;
    background-blend-mode: soft-light, normal;
}
 
/* ─── Header principal ─────────────────────────────────────────── */
nav.site-header,
nav.wp-block-group {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    background: linear-gradient(#FFFFFF 85%, var(--cibc-rouge-light));
    max-width: 1200px;
    width: 100%;
    height: 72px;
    margin: 40px auto 0;   /* 40px d'espace au-dessus du header */
    padding: 0 32px;
    border-radius: 60px;
    font-family: var(--cibc-font);
    box-sizing: border-box;
}

/* Navigation centrée absolument dans le header */
nav.site-header .wp-block-navigation,
nav.wp-block-group .wp-block-navigation {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 200;
}

/* Empêche le wrapping des items de nav */
nav.site-header .wp-block-navigation-item__content,
nav.wp-block-group .wp-block-navigation-item__content {
    white-space: nowrap;
}

@media (max-width: 1024px) {
    nav.site-header,
    nav.wp-block-group {
        padding: 0 24px;
        border-radius: 40px;
        justify-content: space-between;   /* logo à gauche, burger à droite */
    }
}
 
/* ─── Logo ─────────────────────────────────────────────────────── */
.wp-block-site-logo img,
.logo-img {
    height: 48px;
    width: auto;
    display: block;
    margin-bottom: 12px;
}
 
/* ─── Structure du menu ────────────────────────────────────────── */
.menu-horizontal .wp-block-navigation__container {
    display: flex;
    align-items: center;
    gap: 40px;
    list-style-type: none;
    padding: 0;
    margin: 0;
}
 
/* ─── Liens de navigation ──────────────────────────────────────── */
.wp-block-navigation a,
.wp-block-navigation-item__content {
    text-decoration: none;
    color: var(--cibc-text);
    font-size: 16px;
    font-family: var(--cibc-font);
    display: inline-flex;
    align-items: start;
    gap: 0;
}
 
/* ─── Chevrons — bouton injecté par megamenu.js ── */

/* Cache le bouton natif WordPress */
.wp-block-navigation-item__submenu-icon {
    display: none !important;
}

/* Chevron injecté dans le lien par megamenu.js */
.megamenu__chevron {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid var(--cibc-text);
    border-bottom: 1.5px solid var(--cibc-text);
    transform: rotate(45deg);
    margin-left: 7px;
    margin-bottom: 3px;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

/* Chevron vers le haut quand le panel est ouvert */
.wp-block-navigation-item.megamenu--open .megamenu__chevron {
    transform: rotate(225deg);
    margin-bottom: -1px;
}
 
/* Ancre pour les panels megamenu */
.wp-block-navigation__container {
    position: relative;
}

/* ─── Sous-menus ───────────────────────────────────────────────── */
.wp-block-navigation__submenu-container {
    font-family: var(--wp--preset--font-family--cabin);
    font-size: 14px;
}
/* ─── Footer ───────────────────────────────────────────────────── */
footer.site-footer {
    width: 100%;
    margin: 0 auto;
    font-size: 14px;
    padding: 64px 24px 48px;
    font-family: var(--wp--preset--font-family--cabin);
    background: var(--wp--preset--gradient--main-fade-footer);
}

/* Colonnes du footer */
footer.site-footer .wp-block-columns {
    gap: 40px;
    max-width: 1216px;
    margin: 0 auto;
}

/* Texte du footer */
footer.site-footer p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--cibc-text);
}

/* Espacement entre les paragraphes */
footer.site-footer .wp-block-column p {
    margin: 0 0 8px 0;
}

/* Liens du footer */
footer.site-footer a {
    color: var(--cibc-text);
    text-decoration: none;
}

footer.site-footer a:hover {
    text-decoration: underline;
}

/* Images arrondies (logo CPF) */
footer.site-footer .is-style-default {
    border-radius: 20px;
    overflow: hidden;
}

footer.site-footer .is-style-default img {
    border-radius: 20px;
}

/* Icônes réseaux sociaux */
footer.site-footer .wp-block-column img[alt*="inkedin"],
footer.site-footer .wp-block-column img[alt*="acebook"] {
    width: 24px !important;
    height: 24px !important;
}

/* Logo CIBC dans le footer */
footer.site-footer .wp-block-column:first-child .wp-block-image:first-child img {
    width: 80px;
    height: auto;
}

/* Séparateur */
footer.site-footer .wp-block-separator {
    border-top: 1px solid var(--cibc-rouge-light);
    max-width: 1216px;
    margin: 32px auto 16px;
}

/* Zone légale en bas */
.footer-legal {
    text-align: center;
    font-size: 12px;
    color: #888888;
    max-width: 1216px;
    margin: 0 auto;
}

.footer-legal a {
    color: #888888;
}

.footer-legal p {
    display: inline;
    margin: 0 12px;
}

/* ─── Tablette (moins de 1024px) ───────────────────────────────── */
@media (max-width: 1024px) {
    footer.site-footer {
        padding: 48px 24px 32px;
    }

    footer.site-footer .wp-block-columns {
        gap: 24px;
        flex-wrap: wrap;
    }

    footer.site-footer .wp-block-column {
        flex-basis: 45% !important;
    }
}

/* ─── Mobile (moins de 768px) ──────────────────────────────────── */
@media (max-width: 768px) {
    footer.site-footer {
        padding: 32px 16px 24px;
    }

    footer.site-footer .wp-block-columns {
        flex-wrap: wrap;
        gap: 24px;
    }

    /* Colonne 1 (logos) : pleine largeur */
    footer.site-footer .wp-block-columns > .wp-block-column:nth-child(1) {
        flex-basis: 100% !important;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 16px;
    }

    /* Logo CIBC plus petit sur mobile */
    footer.site-footer .wp-block-column:first-child .wp-block-image:first-child img {
        width: 56px;
    }

    /* Colonne 2 (infos) : pleine largeur */
    footer.site-footer .wp-block-columns > .wp-block-column:nth-child(2) {
        flex-basis: 100% !important;
    }

    /* Colonnes 3 et 4 (navigation) : côte à côte */
    footer.site-footer .wp-block-columns > .wp-block-column:nth-child(3),
    footer.site-footer .wp-block-columns > .wp-block-column:nth-child(4) {
        flex-basis: 45% !important;
    }

    /* Liens légaux */
    .footer-legal {
        font-size: 11px;
    }

    .footer-legal p {
        margin: 0 6px;
    }
}

/* ─── Boutons ──────────────────────────────────────────────────── */

/* Bouton 1 : 16/16 bold */
.btn-primary {
    font-size: 16px;
    line-height: 16px;
    font-weight: 700;
}

/* Bouton 2 : 16/16 medium */
.btn-secondary {
    font-size: 16px;
    line-height: 16px;
    font-weight: 500;
}

/* Bouton 3 : 12/16 regular */
.btn-small {
    font-size: 12px;
    line-height: 16px;
    font-weight: 400;
}

/* Bouton 4 : 24/24 bold */
.btn-large {
    font-size: 24px;
    line-height: 24px;
    font-weight: 700;
}

/* Bouton 5 : 24/16 bold */
.btn-display {
    font-size: 24px;
    line-height: 16px;
    font-weight: 700;
}

/* Style commun à tous les boutons */
.btn-primary,
.btn-secondary,
.btn-small,
.btn-large,
.btn-display {
    font-family: var(--wp--preset--font-family--cabin);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    text-decoration: none;
}
/* ─── Typographie ──────────────────────────────────────────────── */

/* Display : 88/104 */
.typo-display {
    font-size: 88px;
    line-height: 104px;
    font-weight: 700;
}

/* Description sous display : 32/40 */
.typo-desc-display {
    font-size: 32px;
    line-height: 40px;
    font-weight: 400;
}

/* Titre H3 corps de page : 48/48 */
.typo-h3-page {
    font-size: 48px;
    line-height: 48px;
    font-weight: 700;
}

/* Texte courant : 24/40 */
.typo-body {
    font-size: 24px;
    line-height: 40px;
    font-weight: 400;
}

/* Articles : 24/48 */
.typo-article {
    font-size: 24px;
    line-height: 48px;
    font-weight: 400;
}

/* Textes dans les cases : 32/48 */
.typo-case {
    font-size: 32px;
    line-height: 48px;
    font-weight: 400;
}

/* Cases à cocher : 16/20 */
.typo-checkbox {
    font-size: 16px;
    line-height: 20px;
    font-weight: 400;
}

/* Police commune */
.typo-display,
.typo-desc-display,
.typo-h3-page,
.typo-body,
.typo-article,
.typo-case,
.typo-checkbox {
    font-family: var(--wp--preset--font-family--cabin);
}
/* Footer : texte courant 14px medium */
.typo-footer {
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
}

/* Footer : texte courant 14px bold */
.typo-footer-bold {
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
}

/* Titres du footer à mettre en majuscules (à ajouter en classe sur NAVIGATION, CIBC NNA…) */
.footer-titre {
    text-transform: uppercase;
}

/* Footer : liens légaux 12px regular */
.typo-footer-legal {
    font-size: 12px;
    line-height: 16px;
    font-weight: 400;
}
.footer-legal p {
    display: inline;
    margin: 0 12px;
}

/* Icônes réseaux sociaux : rapprochées sur desktop */
footer.site-footer .social-icons-row {
    gap: 4px !important;
}

footer.site-footer .social-icons-row > .wp-block-column {
    margin: 0 !important;
    padding: 0 !important;
}

@media (max-width: 768px) {

    /* Uniquement les colonnes principales du footer (pas les imbriquées) */
    footer.site-footer > .wp-block-columns:not(.is-not-stacked-on-mobile) {
        flex-wrap: wrap !important;
        flex-direction: row !important;
    }

    footer.site-footer > .wp-block-columns > .wp-block-column {
        flex-basis: 100% !important;
        flex-grow: 0 !important;
    }

    /* Colonnes 3 et 4 : côte à côte */
    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(3),
    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(4) {
        flex-basis: 45% !important;
    }

    footer.site-footer {
        padding: 40px 24px 32px;
    }

    footer.site-footer > .wp-block-columns {
        flex-wrap: wrap;
        gap: 20px;
    }

    /* Colonne 1 : CIBC NNA ligne 1, CPF+certif côte à côte ligne 2 */
    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(1) {
        flex-basis: 100% !important;
        display: flex !important;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px 16px;
    }

    /* Logo CIBC NNA : seul sur sa ligne, aligné à gauche */
    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(1) .wp-block-site-logo {
        flex: 0 0 100%;
    }

    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(1) .wp-block-site-logo a {
        display: inline-block;
    }

    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(1) .wp-block-site-logo img {
        object-fit: contain;
        height: 56px !important;
        width: 56px !important;
    }

    /* CPF + Certif : côte à côte, alignés à gauche */
    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(1) .wp-block-image {
        flex: 0 0 auto;
        margin: 0 !important;
        
    }

    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(1) .wp-block-image img {
        width: auto !important;
    }



    /* Colonnes 3 et 4 : côte à côte */
    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(3),
    footer.site-footer > .wp-block-columns > .wp-block-column:nth-child(4) {
        flex-basis: 45% !important;
        flex-grow: 0 !important;
    }

    /* Icônes réseaux sociaux empilées verticalement, très serrées */
    footer.site-footer .social-icons-row {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start;
        gap: 0 !important;
    }

    footer.site-footer img.custom-logo {
    margin-bottom: 16px !important;
}

    .social-icons-row > .wp-block-column {
        flex-basis: auto !important;
        flex-grow: 0 !important;
        flex-shrink: 0 !important;
        width: auto !important;
    }

    /* Liens légaux */
    .footer-legal {
        font-size: 11px;
    }

    .footer-legal p {
        margin: 0 6px;
    }
}

/* Style alternatif pour l'arobase */
.alt-arobase {
    font-family: var(--wp--preset--font-family--instrument-sans);
}

/* ─── Bandeau de villes (défilement auto) ──────────────────────────── */
.cities {
    --cities-speed: 30s;   /* vitesse du défilement (↑ = plus lent) */
    position: relative;    /* repère pour le grain (::after) */
    display: flex;         /* aperçu en ligne aussi dans l'éditeur (sans JS) */
    align-items: center;
    overflow: hidden;
    width: 100%;
    padding: 24px 0;
    background: var(--wp--preset--color--cibc-rouge-secondary, rgba(255, 0, 0, 0.15));
}
body.page-amorce .cities {
    background: rgba(176, 137, 231, 0.25) !important;
}
body.page-conseil-vae .cities {
    background: #FCE8EA !important;
}

/* La piste : contient tous les blocs + leur copie, et défile */
.cities__track {
    display: flex;
    align-items: center;
    width: max-content;
    flex-shrink: 0;          /* ne pas compresser la piste dans le conteneur flex */
    animation: cities-scroll var(--cities-speed) linear infinite;
}


/* Chaque ville (peu importe le bloc utilisé) reste sur une ligne */
/* .cities > * = aperçu éditeur (sans JS) | .cities__track > * = front (avec JS) */
.cities > *,
.cities__track > * {
    margin: 0;
    padding: 0 32px;
    white-space: nowrap;
    flex-shrink: 0;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: 32px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--wp--preset--color--texte-principal, #333333);
}

/* La copie défile jusqu'à -50 % → boucle parfaite */
@keyframes cities-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* Accessibilité : pas d'animation si l'utilisateur la refuse */
@media (prefers-reduced-motion: reduce) {
    .cities__track { animation: none; }
}

/* Mobile : taille de police des villes réduite (uniquement en responsive) */
@media (max-width: 768px) {
    .cities > *,
    .cities__track > * {
        font-size: 24px;
    }
}

/* ─── Section CIBC (motif réutilisable) ────────────────────────────── */
.section-cibc {
    max-width: 1440px;
    margin: 0 auto;
    padding: 120px 112px;       /* ~112px de marge gauche/droite */
    font-family: var(--wp--preset--font-family--cabin);
    box-sizing: border-box;
}

.section-cibc__title {
    font-size: 48px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333333);
    margin: 0 0 24px;          /* identique à Entreprises */
}

.section-cibc__desc {
    font-size: var(--wp--preset--font-size--body);
    line-height: 1.6;
    color: var(--wp--preset--color--texte-principal, #333333);
    max-width: 1216px;
    margin: 0 0 112px;         /* identique à Entreprises (texte → cartes) */
}

/* Mosaïque en grille : 3 colonnes, 2 rangées
   rouge + verte = sur toute la hauteur | bleue = haut droite | violette = bas droite
   (.section-cibc préfixe = priorité sur les classes layout de WordPress) */
.section-cibc .section-cibc__cards {
    display: grid !important;
    grid-template-columns: 398px 348px 412px;  /* largeurs exactes des colonnes */
    grid-template-rows: 152px 152px;           /* bleue & violette = 152px chacune */
    column-gap: 0;                 /* l'espace restant devient le gap (space-between) */
    row-gap: 16px;                 /* espace vertical entre bleue et violette */
    justify-content: space-between;
    align-items: stretch;
    font-family: var(--wp--preset--font-family--cabin);
    box-sizing: border-box;
    margin: 88px 0;
}

.section-cibc .card--rouge          { grid-column: 1; grid-row: 1 / span 2; }
.section-cibc .card--vae            { grid-column: 2; grid-row: 1 / span 2; }
.section-cibc .card--formation      { grid-column: 3; grid-row: 1; }
.section-cibc .card--accompagnement { grid-column: 3; grid-row: 2; }

/* Carte */
.section-cibc__card {
    position: relative;          /* repère pour le bouton en absolu */
    padding: 40px 32px 40px 32px;
    border-radius: 20px;
    overflow: hidden;
}

.section-cibc__card-title {
    font-size: var(--wp--preset--font-size--text-case);
    font-weight: 500;
    line-height: 48px;
    text-transform: uppercase;
    margin: 0;
    color: #ffffff;
}

/* Padding spécifique aux cartes bleue (formation) et violette (accompagnement) */
.card--formation,
.card--accompagnement {
    padding: 20px 32px 20px 32px;
}

/* Couleurs des cartes (dégradés theme.json → variable --gradient--, pas --color--) */
.card--rouge          { background: var(--wp--preset--gradient--particulier-rouge-bilan-fade); }
.card--vae            { background: var(--wp--preset--gradient--particulier-vert-vae-fade); }
.card--formation      { background: var(--wp--preset--gradient--particulier-bleu-formation-fade); }
.card--accompagnement { background: var(--wp--preset--gradient--particulier-violet-accompagnement-fade); }

/* Carte accompagnement (fond clair) → texte foncé */
.card--accompagnement .section-cibc__card-title {
    color: var(--wp--preset--color--texte-principal, #333333);
}

/* Boutons épinglés en bas à droite de chaque carte (en absolu = ne sort jamais) */
.section-cibc__card .wp-block-buttons {
    position: absolute;
    bottom: 24px;
    right: 24px;
    margin: 0;
}

/* Bouton dans une carte */
.section-cibc__card-btn .wp-block-button__link {
    background: #ffffff;
    color: var(--wp--preset--color--texte-principal, #333333);
    text-decoration: none;
}

/* ── Tablette (≤1200px) : la mosaïque passe en 2 colonnes fluides ── */
@media (max-width: 1200px) {
    .section-cibc {
        padding: 80px 48px;
    }
    .section-cibc__title { font-size: 40px; margin-bottom: 40px; }

    /* Mosaïque alternée (cf. wireframe) : 3 colonnes pour les ratios 2/3 – 1/3.
       Les cases LARGES = celles aux titres les plus longs (Rouge & Vert).
       Ligne 1 : Rouge large (2 col) + Bleu étroite (1 col)
       Ligne 2 : Violet étroite (1 col) + Vert large (2 col) */
    .section-cibc .section-cibc__cards {
        /* 3 colonnes : les 2 latérales gagnent 15px, celle du milieu perd 30px
           → chaque grande case (2 col) perd 15px au profit de la petite (1 col) */
        grid-template-columns:
            calc((100% - 32px) / 3 + 15px)
            calc((100% - 32px) / 3 - 30px)
            calc((100% - 32px) / 3 + 15px);
        grid-template-rows: auto auto;
        column-gap: 16px;
        row-gap: 16px;
        margin: 48px 0;
    }
    .section-cibc .card--rouge          { grid-column: 1 / 3; grid-row: 1; min-height: 200px; }  /* large */
    .section-cibc .card--formation      { grid-column: 3;     grid-row: 1; min-height: 200px; }  /* étroite */
    .section-cibc .card--accompagnement { grid-column: 1;     grid-row: 2; min-height: 200px; }  /* étroite */
    .section-cibc .card--vae            { grid-column: 2 / 4; grid-row: 2; min-height: 200px; }  /* large */
    .card--formation,
    .card--accompagnement { margin: 0; }

    /* carte en colonne flex : le bouton va en bas à droite SANS rogner le texte */
    .section-cibc__card {
        display: flex;
        flex-direction: column;
        overflow: visible;
    }
    .section-cibc__card-title { line-height: 1.3; }
    .section-cibc__card .wp-block-buttons {
        position: static;
        margin-top: auto;
        align-self: flex-end;
        padding-top: 16px;
    }
}

/* ── Mobile (≤768px) : 2 colonnes compactes (textes + espacements réduits) ── */
@media (max-width: 768px) {
    .section-cibc {
        padding: 48px 20px;
    }
    .section-cibc__title { font-size: 26px; margin-bottom: 24px; }
    .section-cibc__desc  { font-size: 16px; margin:0 0 32px 0; }

    .section-cibc .section-cibc__cards {
        column-gap: 12px;
        row-gap: 12px;
        margin: 28px 0;
    }
    .section-cibc__card { padding: 20px 18px; }
    .section-cibc__card-title { font-size: 18px; }
    .section-cibc__card-btn .wp-block-button__link {
        padding: 11px 16px;
        font-size: 13px;
    }
}

/* ─── Section Entreprises/Collectivités (3 cartes claires) ─────────── */
.section-entreprises {
    max-width: 1440px;
    margin: 0 auto;
    padding: 112px;            /* 1440 − 224 = 1216 de contenu */
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

.section-entreprises__title {
    font-size: 48px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333333);
    margin: 0 0 24px;
}

.section-entreprises__desc {
    font-size: var(--wp--preset--font-size--body);
    line-height: 1.6;
    color: var(--wp--preset--color--texte-principal, #333333);
    max-width: 1100px;
    margin: 0 0 112px;         /* espace texte → cases = 112px */
}

/* Rangée de 3 cartes (390px chacune, gap = espace restant) */
.section-entreprises .section-entreprises__cards {
    display: grid !important;
    grid-template-columns: 390px 390px 390px;
    justify-content: space-between;
    align-items: stretch;

}

/* Carte blanche */
.card-ent {
    position: relative;
    width: 390px;
    height: 400px;
    box-sizing: border-box;
    background: #ffffff;
    border: 2px solid var(--cibc-rouge-light, rgba(106,26,22,0.15));
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    padding: 60px 32px 60px 32px;
}

.card-ent__title {
    font-size: var(--wp--preset--font-size--text-case);
    font-weight: 700;
    line-height: 48px;
    text-transform: uppercase;
    color: var(--wp--preset--color--texte-principal, #333333);
    margin: 0;
}

/* Bouton en bas à droite de la carte */
.card-ent .wp-block-buttons {
    margin: auto 0 0;          /* pousse le bouton tout en bas */
    display: flex;
    justify-content: flex-end;
    padding: 0;                /* pas d'espace sous le bouton → collé au padding de la carte */
}

.card-ent__btn .wp-block-button__link {
    color: #ffffff;
    text-decoration: none;
}

/* Couleurs par carte : bordure (teinte claire) + bouton (teinte pleine) */
.card-ent--inclusion { border-color: var(--wp--preset--color--inclusion-primary, #345E9D); }
.card-ent--inclusion .card-ent__btn .wp-block-button__link { background: var(--wp--preset--color--inclusion-primary, #345E9D); }

.card-ent--rh { border-color: var(--wp--preset--color--appuirh-primary, #975BA4); }
.card-ent--rh .card-ent__btn .wp-block-button__link { background: var(--wp--preset--color--appuirh-primary, #975BA4); }

.card-ent--bilan { border-color: var(--wp--preset--color--cibc-rouge-secondary, #F6C3C0); }
.card-ent--bilan .card-ent__btn .wp-block-button__link { background: var(--wp--preset--color--cibc-rouge-accent, #A21C16); }

/* Responsive : cartes empilées sur tablette/mobile */
@media (max-width: 1024px) {
    .section-entreprises {
        padding: 64px 24px;
    }
    .section-entreprises .section-entreprises__cards {
        grid-template-columns: 1fr;
        justify-content: stretch;
        gap: 24px;
    }
    .section-entreprises__desc {
        margin-bottom: 48px;
    }
    .card-ent {
        width: 100%;
        height: auto;
        min-height: 320px;
    }
}

/* Mobile (≤768px) : typographie et espacements réduits */
@media (max-width: 768px) {
    .section-entreprises {
        padding: 48px 20px;
    }
    .section-entreprises__title {
        font-size: 26px;
        margin-bottom: 16px;
    }
    .section-entreprises__desc {
        font-size: 16px;
        margin-bottom: 32px;
    }
    .card-ent {
        min-height: 0;
        padding: 36px 24px;
        gap: 16px;
    }
    .card-ent__title {
        font-size: 18px;
        line-height: 1.3;
    }
    .card-ent__btn .wp-block-button__link {
        padding: 11px 16px;
        font-size: 13px;
    }
}

/* ─── FAQ (accordéon) ──────────────────────────────────────────────── */
.faq {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px 112px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

.faq__title {
    font-size: clamp(26px, 4vw, 48px);   /* fluide : 26px mobile → 48px desktop */
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 32px;
}

/* Un item = un bloc Détails */
.faq__item {
    border-bottom: 1px solid var(--cibc-rouge-light, rgba(106,26,22,0.15));
    padding: 0;
}

/* La question (summary) */
.faq__item > summary {
    list-style: none;            /* enlève la flèche native */
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 4px;
    font-size: var(--text-18);
    color: var(--wp--preset--color--texte-principal, #323232);
}

.faq__item > summary::-webkit-details-marker {
    display: none;               /* enlève la flèche native (Safari/Chrome) */
}

/* Chevron Lucide (chevron-down) en #323232, intégré en SVG */
.faq__item > summary::after {
    content: "";
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23353535' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.25s ease;
}

/* Chevron retourné vers le haut quand l'item est ouvert */
.faq__item[open] > summary::after {
    transform: rotate(180deg);
}

/* La réponse */
.faq__answer {
    margin: 0;
    padding: 0 4px 20px;
    font-size: var(--text-16);
    line-height: 1.6;
    color: #333333;
}

@media (max-width: 768px) {
    .faq {
        padding: 48px 24px;
    }
}

/* ─── Section Certifications & financements ────────────────────────── */
.certifs {
    background: linear-gradient(180deg, #EEF3FB 0%, #D8E5F5 100%);
    padding: 80px 112px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

.certifs__title {
    font-size: clamp(26px, 4vw, 56px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 40px;
}

/* Grille 2 cartes côte à côte */
.certifs .certifs__grid,
.certifs .certifs__grid > .block-editor-block-list__layout {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: stretch;
}

/* Carte blanche commune */
.certifs__card {
    background: #FFFFFF;
    border-radius: 20px;
    padding: 40px 32px;
    box-sizing: border-box;
}

/* ── Carte gauche : 3 colonnes de logos en ligne ── */
.certifs__card--logos,
.certifs__card--logos > .block-editor-block-list__layout {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 32px !important;
}

.certifs__logo-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    text-align: center;
}

.certifs__logo-col > .block-editor-block-list__layout {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.certifs__logo-img {
    margin: 0 !important;
}

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

.certifs__logo-text {
    font-size: 11px;
    line-height: 1.4;
    color: #555555;
    margin: 0 !important;
}

/* ── Carte droite : financement ── */
.certifs__card--financement {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.certifs__fin-title {
    font-size: clamp(16px, 1.6vw, 20px);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 !important;
    line-height: 1.3;
}

.certifs__fin-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 !important;
    flex: 1;
}

/* Rangée de logos financement */
.certifs__fin-logos,
.certifs__fin-logos > .block-editor-block-list__layout {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 32px !important;
    flex-wrap: wrap;
}

.certifs__fin-logo {
    margin: 0 !important;
}

.certifs__fin-logo img {
    height: 60px;
    width: auto;
    object-fit: contain;
}

/* Responsive */
@media (max-width: 1024px) {
    .certifs { padding: 48px 24px; }
    .certifs .certifs__grid {
        grid-template-columns: 1fr;
    }
    .certifs__card--logos,
    .certifs__card--logos > .block-editor-block-list__layout {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
}

@media (max-width: 768px) {
    .certifs__title { font-size: 22px; }
    .certifs__card { padding: 28px 20px; }
    .certifs__logo-col { flex-direction: row; align-items: flex-start; text-align: left; }
}

/* ─── Certifications & financements – Page Amorce de parcours ──────── */
.certifs-amorce {
    padding: 80px 112px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    max-width: 1440px;
    margin: 0 auto;
}

.certifs-amorce__title {
    font-size: clamp(26px, 4vw, 56px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 40px;
}

.certifs-amorce .certifs-amorce__grid,
.certifs-amorce .certifs-amorce__grid > .block-editor-block-list__layout {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: stretch;
}

.certifs-amorce__card {
    background: #FFFFFF;
    border-radius: 20px;
    padding: 40px 32px;
    box-sizing: border-box;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
}

/* Carte gauche : photo */
.certifs-amorce__card--photo {
    padding: 0 !important;
    overflow: hidden;
}

.certifs-amorce__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 20px;
    position: relative;
    background: #FFFFFF;
    border-radius: 16px;
    padding: 40px 32px;
    box-sizing: border-box;
}

.certifs-amorce__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 20px;
}

/* Carte droite : financement */
.certifs-amorce__card--financement {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 40px 32px;
}

.certifs-amorce__fin-title {
    font-size: clamp(16px, 1.6vw, 20px);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 !important;
    line-height: 1.3;
}

.certifs-amorce__fin-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 !important;
    flex: 1;
}

.certifs-amorce__fin-logos,
.certifs-amorce__fin-logos > .block-editor-block-list__layout {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 32px !important;
    flex-wrap: wrap;
}

.certifs-amorce__fin-logo { margin: 0 !important; }

.certifs-amorce__fin-logo img {
    height: 64px;
    width: auto;
    object-fit: contain;
}

@media (max-width: 1024px) {
    .certifs-amorce { padding: 48px 24px; }
    .certifs-amorce .certifs-amorce__grid { grid-template-columns: 1fr; }
    .certifs-amorce__card--logos,
    .certifs-amorce__card--logos > .block-editor-block-list__layout {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
}

@media (max-width: 768px) {
    .certifs-amorce__title { font-size: 22px; }
    .certifs-amorce__card { padding: 28px 20px; }
}

/* ─── Ancien composant certifications (compatibilité contenu existant en BDD) ── */
.certif {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px 112px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}
.certif__title {
    font-size: clamp(26px, 4vw, 48px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 32px;
}
.certif .certif__grid,
.certif .certif__grid > .block-editor-block-list__layout {
    display: grid !important;
    grid-template-columns: 560px 1fr;
    gap: 32px;
    align-items: stretch;
}
.certif-card--eligibilite { grid-column: 1; grid-row: 1; }
.certif-card--logos       { grid-column: 1; grid-row: 2; }
.certif-card--financement { grid-column: 2; grid-row: 1 / span 2; }
.certif-elig__inner { display: flex; align-items: flex-start; gap: 24px; }
.certif-elig__inner > .block-editor-block-list__layout { display: flex; align-items: flex-start; gap: 24px; }
.certif-elig__logo { flex: 0 0 120px; margin: 0; }
.certif-elig__logo .wp-block-image,
.certif-elig__logo figure { width: 120px; margin: 0; }
.certif-elig__logo img,
.page-cep .certif-card--eligibilite img { width: 120px !important; height: 106px !important; object-fit: contain; }
/* Page CEP : la figure du logo est un enfant flex sans .certif-elig__logo → on la fige à 90px */
.page-cep .certif-card--eligibilite .certif-elig__inner,
.page-cep .certif-card--eligibilite .certif-elig__inner > .block-editor-block-list__layout { gap: 16px !important; }
.page-cep .certif-card--eligibilite figure.wp-block-image {
    flex: 0 0 90px !important;
    width: 90px !important;
    max-width: 90px !important;
    margin: 0 !important;
}
.page-cep .certif-card--eligibilite figure.wp-block-image img {
    width: 90px !important;
    height: 82px !important;
    max-width: 90px !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
}
.certif-elig__logo:empty { min-height: 90px; border: 2px dashed #ccc; border-radius: 8px; }
.certif-elig__content p { font-size: var(--text-16); line-height: 1.5; margin: 0 0 10px; color: var(--wp--preset--color--texte-principal, #333); }
.certif-elig__alert { color: var(--wp--preset--color--cibc-rouge-accent, #A21C16) !important; font-weight: 600; }
.certif-logos__row { display: flex; align-items: center; justify-content: center; gap: 32px; height: 100%; flex-wrap: wrap; }
.certif-logos__row > .block-editor-block-list__layout { display: flex; align-items: center; justify-content: center; gap: 32px; height: 100%; flex-wrap: wrap; }
.certif-logos__row .wp-block-image { margin: 0; display: flex; align-items: center; justify-content: center; }
.certif-logos__row .wp-block-image img { height: auto; width: auto; object-fit: contain; }
.certif-card { position: relative; background: #FFFFFF; border-radius: 16px; padding: 40px 32px; box-sizing: border-box; }
/* ombre conservée uniquement sur la page Appui RH */
.page-appui-rh .certif-card { box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25); }
/* Page CEP : ombre douce pour détacher les cartes (pas de fond de section) */
.page-cep .certif-card { box-shadow: 0 8px 24px rgba(124, 74, 135, 0.12); }
/* Page CEP : dimensions des blocs (550 gauche / 634 droite ; hauteurs maquette) */
.page-cep .certif .certif__grid,
.page-cep .certif .certif__grid > .block-editor-block-list__layout {
    grid-template-columns: 550px 634px;
    grid-template-rows: 200px 290px; /* 200 + 32 (gap) + 290 = 522px : hauteur totale du bento */
}
.page-cep .certif-card--eligibilite { min-height: 200px; }
.page-cep .certif-card--financement { min-height: 522px; }
.certif-card__title { font-size: var(--text-18); font-weight: 700; text-transform: uppercase; color: var(--wp--preset--color--texte-principal, #333); margin: 0 0 12px; line-height: 1.3; }
.certif-card--financement { display: flex; flex-direction: column; }
.certif-card--financement .certif-card__buttons { margin-top: auto; margin-bottom: 24px; }
.certif-card--financement .certif-card__title { margin-bottom: 32px; }
.certif-card--financement p { font-size: var(--text-16); line-height: 1.6; color: var(--wp--preset--color--texte-principal, #333); margin: 0 0 24px; }
.certif-fin__list { margin: 0 0 24px; padding-left: 20px; display: flex; flex-direction: column; gap: 20px; }
.certif-fin__list li { font-size: var(--text-16); line-height: 1.5; color: var(--wp--preset--color--texte-principal, #333); }
.certif-card__buttons { display: flex; justify-content: flex-end; margin-top: 16px; }
.certif__btn .wp-block-button__link { color: #ffffff; text-decoration: none; }
.certif__btn--blue .wp-block-button__link  { background: var(--wp--preset--color--inclusion-primary, #345E9D); }
.certif__btn--green .wp-block-button__link { background: var(--wp--preset--color--vae-primary, #94B875); }
@media (max-width: 1024px) {
    .certif { padding: 48px 24px; }
    .certif .certif__grid { grid-template-columns: 1fr; }
    .certif-card--eligibilite, .certif-card--logos, .certif-card--financement { grid-column: 1; grid-row: auto; }
    /* Page CEP : neutraliser colonnes/lignes/hauteurs fixes (plus spécifiques) */
    .page-cep .certif .certif__grid,
    .page-cep .certif .certif__grid > .block-editor-block-list__layout {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    .page-cep .certif-card--eligibilite,
    .page-cep .certif-card--logos,
    .page-cep .certif-card--financement { grid-column: 1; grid-row: auto; min-height: 0; }
}

/* ─── Effet horizontal (section figée + défilement horizontal au scroll) ── */
/* Hauteur = nombre de panneaux × 100vh (ici 3) → donne la "course" de scroll */
.effet-horizontal {
    position: relative;
    height: 300vh;
}

/* La fenêtre qui se fige pendant le scroll */
.effet-horizontal__sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

/* La piste = rangée horizontale, translatée en X par main.js */
.effet-horizontal__track {
    display: flex;
    height: 100vh;
    width: max-content;
    will-change: transform;
}

/* Chaque panneau occupe tout l'écran (pleine largeur) */
.effet-horizontal__panel {
    width: 100vw;
    height: 100vh;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 64px;
    padding: 0 112px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* Focus clavier d'un panneau : contour à l'intérieur (panneau = 100vw) */
.effet-horizontal__panel:focus {
    outline: none;
}
.effet-horizontal__panel:focus-visible {
    outline: 2px solid var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    outline-offset: -16px;
}

.effet-horizontal__title {
    font-size: 40px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 20px;
}

.effet-horizontal__content {
    flex: 1;
}

.effet-horizontal__content p {
    font-size: var(--text-18);
    line-height: 1.6;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 28px;
    max-width: 440px;
}

/* Panneau "Faisons équipe" : carte bordée (image gauche + texte droite) */
.effet-horizontal__card {
    display: flex;
    align-items: center;          /* contenu centré dans la hauteur */
    gap: 48px;
    width: 100%;
    max-width: 1216px;
    height: 488px;                /* hauteur fixe → alignée avec le Parking, même sans image */
    margin: 0 auto;
    padding: 40px 32px;           /* padding demandé */
    box-sizing: border-box;
    background: #ffffff;          /* fond blanc */
    border: 3px solid #D76C6E;  /* contour rouge */
    border-radius: 28px;
}

.effet-horizontal__card .effet-horizontal__content {
    padding-right: 32px;
}

/* Image dans la carte */
.effet-horizontal__media {
    flex: 0 0 648px;     /* largeur de l'image */
    height: 408px;       /* hauteur de l'image */
    border-radius: 20px;
    overflow: hidden;
}

/* La figure (wrapper de l'image) doit aussi faire toute la hauteur */
.effet-horizontal__media .wp-block-image,
.effet-horizontal__media figure {
    height: 100%;
    margin: 0;
}

.effet-horizontal__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;   /* la photo remplit tout le cadre, recadrée si besoin */
}

/* Emplacement image vide */
.effet-horizontal__media:empty {
    border: 2px dashed #ccc;
}

/* Bouton */
.effet-horizontal__btn .wp-block-button__link {
    background: #A71D17;          /* couleur du bouton */
    color: #ffffff;
    text-decoration: none;
}

/* Gap de 40px entre le texte et le bouton */
.effet-horizontal__content .wp-block-buttons {
    margin-top: 40px;
}

/* ── Panneau Parking : grande carte rouge pleine (titre + paragraphe + liste) ── */
.effet-horizontal__redcard {
    position: relative;             /* repère pour le grain (::after) */
    width: 100%;
    max-width: 1216px;
    height: 488px;                  /* même hauteur que les cartes équipe / Saintes */
    margin: 0 auto;
    padding: 48px 56px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;        /* contenu centré verticalement comme les autres cartes */
    background: #ffffff;            /* fond blanc (le grain ::after passe par-dessus) */
    border: 3px solid var(--wp--preset--color--cibc-rouge-primary);   /* contour 3px secondaire */
    border-radius: 28px;
    color: var(--wp--preset--color--texte-principal, #323232);
}
.effet-horizontal__redcard .effet-horizontal__title {
    margin: 0 0 24px;
}
.effet-horizontal__redcard p {
    font-size: var(--text-18);
    line-height: 1.6;
    margin: 0 0 16px;
    max-width: none;
}
.effet-horizontal__list {
    margin: 0;
    padding-left: 22px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.effet-horizontal__list li {
    font-size: var(--text-18);
    line-height: 1.5;
    color: var(--wp--preset--color--texte-principal, #333);
}

/* ── Panneau Saintes : même carte que "équipe", bordure plus claire, sans bouton ── */
.effet-horizontal__panel--saintes .effet-horizontal__card {
    border-width: 3px;
    border-color: var(--wp--preset--color--cibc-rouge-secondary, #F6C3C0);
}

/* Tablette + mobile (≤1024px) : l'effet horizontal devient un CARROUSEL SWIPE natif.
   Défilement tactile horizontal + scroll-snap + aperçu du panneau suivant. */
@media (max-width: 1024px) {
    .effet-horizontal {
        height: auto;
    }
    .effet-horizontal__sticky {
        position: static;
        height: auto;
        overflow: visible;
    }
    /* la piste = bande scrollable horizontalement au doigt (plus de JS/translateX) */
    .effet-horizontal__track {
        display: flex;
        align-items: stretch;            /* tous les panneaux à la hauteur du plus grand */
        width: auto;
        height: auto;
        transform: none !important;
        overflow-x: auto;
        scroll-snap-type: x mandatory;   /* accroche chaque panneau */
        scroll-padding-left: 20px;
        gap: 16px;
        padding: 8px 20px 24px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;           /* Firefox : barre cachée */
    }
    .effet-horizontal__track::-webkit-scrollbar {
        display: none;                   /* Chrome/Safari : barre cachée */
    }
    /* chaque panneau = 88% → le suivant "dépasse" : on voit qu'il y en a d'autres */
    .effet-horizontal__panel {
        flex: 0 0 88%;
        width: 88%;
        height: auto;
        scroll-snap-align: start;
        flex-direction: column;
        justify-content: flex-start;
        padding: 0;
        gap: 0;
    }
    .effet-horizontal__title {
        font-size: 18px;
    }
    .effet-horizontal__content p,
    .effet-horizontal__redcard p,
    .effet-horizontal__list li {
        font-size: 14px;
    }
    .effet-horizontal__btn .wp-block-button__link {
        font-size: 13px;
        padding: 11px 16px;
    }
    /* gap texte → bouton réduit en responsive */
    .effet-horizontal__content .wp-block-buttons {
        margin-top: 20px;
    }

    /* Carte "Faisons équipe" : image AU-DESSUS, texte EN DESSOUS, tient dans le panneau */
    .effet-horizontal__card {
        flex-direction: column;
        align-items: stretch;
        flex: 1 1 auto;          /* remplit la hauteur du panneau → toutes les cartes égales */
        max-height: none;
        gap: 20px;
        padding: 20px;
        margin: 0;
        border-width: 2px;       /* bordure plus fine en responsive */
    }
    /* Saintes a une règle desktop plus spécifique → on la surcharge ici aussi */
    .effet-horizontal__panel--saintes .effet-horizontal__card {
        border-width: 2px;
    }
    .effet-horizontal__card .effet-horizontal__content {
        padding-right: 0;
    }
    .effet-horizontal__content {
        flex: none;
    }
    .effet-horizontal__media {
        flex: none;
        width: 100%;
        height: auto;
        aspect-ratio: 648 / 408;   /* garde le ratio de l'image */
    }
    .effet-horizontal__content p {
        max-width: 100%;
    }
    /* Parking : remplit aussi la hauteur du panneau → même taille que les autres */
    .effet-horizontal__redcard {
        flex: 1 1 auto;
        height: auto;
        padding: 32px 24px;
        justify-content: flex-start;   /* texte aligné en HAUT (pas centré) */
        border-width: 2px;             /* bordure plus fine en responsive */
    }
}

/* Points indicateurs du carrousel — créés par main.js, visibles seulement ≤1024px */
.effet-horizontal__dots {
    display: none;
}

@media (max-width: 1024px) {
    .effet-horizontal__dots {
        display: flex;
        justify-content: center;
        gap: 8px;
        margin-top: 4px;
        padding-bottom: 8px;
    }
    .effet-horizontal__dot {
        width: 8px;
        height: 8px;
        padding: 0;
        border: none;
        border-radius: 50%;
        background: #D9B8B6;          /* point inactif (rosé clair) */
        cursor: pointer;
        transition: width 0.25s ease, background 0.25s ease;
    }
    .effet-horizontal__dot.is-active {
        width: 22px;                  /* pilule allongée pour l'actif */
        border-radius: 5px;
        background: #A71D17;          /* rouge marque */
    }
}

/* ── ÉDITEUR uniquement : on déplie l'effet horizontal pour accéder à TOUS les
   panneaux (sinon seuls le 1er est visible). Le front-end n'est pas affecté. ── */
.editor-styles-wrapper .effet-horizontal {
    height: auto;
}
.editor-styles-wrapper .effet-horizontal__sticky {
    position: static;
    height: auto;
    overflow: visible;
}
.editor-styles-wrapper .effet-horizontal__track {
    display: block;
    width: auto;
    height: auto;
    transform: none !important;
}
.editor-styles-wrapper .effet-horizontal__panel {
    width: auto;
    height: auto;
    flex-direction: column;
    padding: 40px 24px;
    gap: 32px;
}

/* Bouton « Demander un devis » (shortcode [cibc_devis]) */
.cibc-btn-devis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 32px;
    font-size: var(--wp--preset--font-size--button, 16px);
    font-weight: 600;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    text-decoration: none;
}

/* ════════════════════════════════════════════════════════════════════
   PAGE PANORAMA
   ════════════════════════════════════════════════════════════════════ */

/* ─── Section 1 : Hero ─────────────────────────────────────────────── */
.panorama-hero {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px 112px 80px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* Fil d'Ariane : « Particuliers › Bilan de compétences › Panorama » */
.panorama-breadcrumb {
    font-size: var(--text-16);
    line-height: 1.4;
    color: #777777;
    margin: 0 0 72px;
}

/* Deux colonnes : image à gauche, contenu à droite */
.panorama-hero__grid {
    display: flex;
    align-items: center;
    gap: 96px;
}

/* Visuel carré (placeholder en croix tant qu'aucune image n'est ajoutée) */
.panorama-hero__media {
    flex: 0 0 500px;
    height: 500px;
    border-radius: 24px;
    overflow: hidden;
    background: #F4F4F6;
}

.panorama-hero__media:empty {
    background-color: #F4F4F6;
    background-image:
        linear-gradient(to top right, transparent calc(50% - 1px), #c9c9cf calc(50% - 1px), #c9c9cf calc(50% + 1px), transparent calc(50% + 1px)),
        linear-gradient(to bottom right, transparent calc(50% - 1px), #c9c9cf calc(50% - 1px), #c9c9cf calc(50% + 1px), transparent calc(50% + 1px));
}

.panorama-hero__media .wp-block-image,
.panorama-hero__media figure {
    height: 100%;
    margin: 0;
}

.panorama-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Colonne de droite */
.panorama-hero__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.panorama-hero__title {
    font-size: clamp(48px, 5.5vw, 80px);
    line-height: 1.05;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--wp--preset--color--texte-principal, #333333);
    margin: 0 0 40px;
}

.panorama-hero__subtitle {
    font-size: 24px;
    line-height: 1.5;
    color: var(--wp--preset--color--texte-principal, #333333);
    margin: 0;
    max-width: 600px;
}

/* Bouton « Débuter mon bilan » centré */
.panorama-hero__buttons {
    align-self: center;
    margin-top: 48px;
}

.panorama-hero__btn .wp-block-button__link {
    background: var(--wp--preset--color--cibc-rouge-primary, #E64F47);
    color: #ffffff;
    text-decoration: none;
}

.page-amorce .panorama-hero__btn .wp-block-button__link {
    background: rgba(183, 90, 222, 0.6) !important;
    color: #323232;
    text-decoration: none;
}

.page-conseil-vae .panorama-hero__btn .wp-block-button__link {
    background: #D51A21 !important;
    color: #ffffff;
    text-decoration: none;
}

.page-appui-rh .panorama-hero__btn .wp-block-button__link {
    background: rgba(235, 118, 111, 1) !important;
    color: #323232;
    text-decoration: none;
}

.page-cep .panorama-hero__btn .wp-block-button__link {
    background: #A71D17 !important;
    color: #ffffff;
    text-decoration: none;
}

/* ── Tablette (≤1024px) : image au-dessus, contenu en dessous ── */
@media (max-width: 1024px) {
    .panorama-hero {
        padding: 32px 24px 64px;
    }
    .panorama-breadcrumb {
        margin-bottom: 40px;
    }
    .panorama-hero__grid {
        flex-direction: column;
        align-items: stretch;
        gap: 40px;
    }
    .panorama-hero__media {
        flex: none;
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        max-width: 420px;
    }
}

/* ── Mobile (≤768px) ── */
@media (max-width: 768px) {
    .panorama-hero__subtitle {
        font-size: 18px;
    }
    .panorama-hero__buttons {
        align-self: stretch;
        margin-top: 32px;
        display: flex;
        justify-content: center;   /* bouton centré (pilule, pas pleine largeur) */
    }
    .panorama-hero__btn .wp-block-button__link {
        text-align: center;
    }
}

/* ─── Section 3 : « Prenez le temps de réussir votre évolution » ────── */
.panorama-temps {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px 112px 120px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* Wrapper qui sert de repère aux onglets décoratifs */
.panorama-temps__cardwrap {
    position: relative;
    max-width: 1216px;
    margin: 0 auto;
    padding-top: 34px;          /* place pour les onglets qui dépassent en haut */
}

/* Onglets type « dossier » qui dépassent derrière la carte */
.panorama-temps__tabs {
    position: absolute;
    top: 0;
    display: flex;
    gap: 4px;
    z-index: 1;                  /* derrière la carte (z-index 2) */
}

.panorama-temps__tab {
    width: 92px;
    height: 68px;
    padding: 0;
    border: none;
    border-radius: 14px 14px 0 0;
    cursor: pointer;
    transform: translateY(8px);              /* onglet inactif : un peu rentré */
    transition: transform 0.18s ease, filter 0.18s ease;
    -webkit-appearance: none;
    appearance: none;
}

.panorama-temps__tab:hover {
    filter: brightness(1.08);
}

/* Focus clavier visible (accessibilité) */
.panorama-temps__tab:focus-visible {
    outline: 2px dashed #ffffff;
    outline-offset: -6px;
    filter: brightness(1.08);
}

.panorama-temps__tab.is-active {
    transform: translateY(0);                /* onglet actif : ressort vers le haut */
}

.panorama-temps__tab--1 { background: #E8847E; }
.panorama-temps__tab--2 { background: #A21C16; }
.panorama-temps__tab--3 { background: #5E1611; }
.panorama-temps__tab--4 { background: #9A1B15; }

/* Variante page Amorce de Parcours */
.page-amorce .panorama-temps__tab--1 { background: #628CCB; }
.page-amorce .panorama-temps__tab--2 { background: #FFFFFF; box-shadow: inset 0 0 0 2px #628CCB; }
.page-amorce .panorama-temps__tab--3 { background: #345E9D; }
.page-amorce .panorama-temps__tab--4 { background: #1F385E; }

/* Variante page Conseil VAE */
.page-conseil-vae .panorama-temps__tab--1 { background: #ACC893; }
.page-conseil-vae .panorama-temps__tab--2 { background: #506C37; }
.page-conseil-vae .panorama-temps__tab--3 { background: #94B875; }
.page-conseil-vae .panorama-temps__tab--4 { display: none; }

/* Page Conseil en évolution pro : 3 onglets seulement (pas de contenu pour le 4ᵉ) */
.page-cep .panorama-temps__tab--1 { background: #C4A2CC; }
.page-cep .panorama-temps__tab--2 { background: #AA78B5; }
.page-cep .panorama-temps__tab--3 { background: linear-gradient(180deg, #F5EFF6 0%, #CFB3D5 100%); }
.page-cep .panorama-temps__tab--4 { display: none; }

/* Bordure de la carte de contenu = couleur de l'onglet actif */
.page-cep .panorama-temps:has(.panorama-temps__tab--1.is-active) .panorama-temps__card {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #C4A2CC 0%, #C4A2CC 100%) border-box;
}
.page-cep .panorama-temps:has(.panorama-temps__tab--2.is-active) .panorama-temps__card {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #AA78B5 0%, #AA78B5 100%) border-box;
}
.page-cep .panorama-temps:has(.panorama-temps__tab--3.is-active) .panorama-temps__card {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(180deg, #F5EFF6 0%, #CFB3D5 100%) border-box;
}

/* Page FORMATION TUTEUR : 3 onglets (bleus Inclusion), 4e masqué */
.page-tuteur .panorama-temps__tab--1 { background: #345E9D; }
.page-tuteur .panorama-temps__tab--2 { background: #122036; }
.page-tuteur .panorama-temps__tab--3 { background: #628CCB; }
.page-tuteur .panorama-temps__tab--4 { display: none; }
.page-tuteur .panorama-temps:has(.panorama-temps__tab--1.is-active) .panorama-temps__card {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #628CCB 100%, #345E9D 0%) border-box;
}
.page-tuteur .panorama-temps:has(.panorama-temps__tab--2.is-active) .panorama-temps__card {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #122036 0%, #122036 100%) border-box;
}
.page-tuteur .panorama-temps:has(.panorama-temps__tab--3.is-active) .panorama-temps__card {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #628CCB 0%, #345E9D 100%) border-box;
}

/* Page MANAGEMENT OPÉRATIONNEL : 3 onglets (palette Appui RH), 4e masqué */
.page-management .panorama-temps__tab--1 { background: #975BA4; }
.page-management .panorama-temps__tab--2 { background: #E2D1E6; }
.page-management .panorama-temps__tab--3 { background: #7C4A87; }
.page-management .panorama-temps__tab--4 { display: none; }
.page-management .panorama-temps:has(.panorama-temps__tab--1.is-active) .panorama-temps__card {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #975BA4 0%, #975BA4 100%) border-box;
}
.page-management .panorama-temps:has(.panorama-temps__tab--2.is-active) .panorama-temps__card {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #E2D1E6 0%, #E2D1E6 100%) border-box;
}
.page-management .panorama-temps:has(.panorama-temps__tab--3.is-active) .panorama-temps__card {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #7C4A87 0%, #7C4A87 100%) border-box;
}

/* ─── Section Point VAE ─────────────────────────────────────────────── */
.point-vae {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px 112px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

.point-vae__title {
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 700;
    color: #323232;
    margin: 0 0 24px;
}

.point-vae__desc {
    font-size: 16px;
    color: #323232;
    max-width: 860px;
    margin: 0 0 48px;
    line-height: 1.6;
}

.point-vae__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.point-vae__card {
    display: flex;
    align-items: center;
    gap: 40px;
    border-radius: 14px;
    padding: 40px 32px;
}

.point-vae__card--green {
    background: linear-gradient(to right, #94B875 0%, rgba(148, 184, 117, 0.2) 100%);
}

.point-vae__card--red {
    background: linear-gradient(to right, #D51A21 0%, rgba(213, 26, 33, 0.2) 100%);
}

.point-vae__date {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 80px;
    flex-shrink: 0;
}

.point-vae__day {
    font-size: 40px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
}

.point-vae__month {
    font-size: 40px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
}

.point-vae__event {
    flex: 1;
    font-size: 32px;
    font-weight: 700;
    color: #ffffff;
    text-transform: uppercase;
    text-align: center;
    margin: 0;
}

.point-vae__btn {
    flex-shrink: 0;
    align-self: flex-end;
    background: #ffffff;
    color: var(--wp--preset--color--button-text-primary, #323232);
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: var(--wp--preset--font-size--button, 16px);
    font-weight: 600;
    padding: 16px 20px;
    border-radius: 32px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s ease;
}

.point-vae__btn:hover {
    background: #f0f0f0;
}

.point-vae__soon {
    background: linear-gradient(135deg, #94B875 0%, #506C37 100%);
    color: #ffffff;
    font-size: clamp(16px, 2vw, 20px);
    font-weight: 600;
    text-align: center;
    padding: 32px 40px;
    border-radius: 14px;
}

@media (max-width: 768px) {
    .point-vae {
        padding: 48px 24px;
    }
    .point-vae__card {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        padding: 24px;
    }
    .point-vae__event {
        text-align: left;
    }
    .point-vae__btn {
        align-self: flex-end;
        padding: 11px 16px;
        font-size: 13px;
    }
}

/* Section formateurs — page Amorce de Parcours */
.page-amorce .consultantes__dept,
.page-amorce .consultantes__acc-header { background: #345E9D !important; }
.page-amorce .consultantes__nav { background: #1F385E !important; }
.page-amorce .consultantes__card { border-color: #628CCB !important; }

/* Page CEP : composant « Personnel / Consultantes » — une couleur par département */
.page-cep .consultantes__dept[data-dept="17"],
.page-cep .consultantes__acc-item[data-dept="17"],
.page-cep .consultantes__card.is-dept-17 { --dept-color: #CFB3D5 !important; }

.page-cep .consultantes__dept[data-dept="16"],
.page-cep .consultantes__acc-item[data-dept="16"],
.page-cep .consultantes__card.is-dept-16 { --dept-color: #E2D1E6 !important; }

.page-cep .consultantes__dept[data-dept="79"],
.page-cep .consultantes__acc-item[data-dept="79"],
.page-cep .consultantes__card.is-dept-79 { --dept-color: #AA78B5 !important; }

.page-cep .consultantes__dept[data-dept="86"],
.page-cep .consultantes__acc-item[data-dept="86"],
.page-cep .consultantes__card.is-dept-86 { --dept-color: #7C4A87 !important; }

/* flèches du carrousel en violet foncé */
.page-cep .consultantes__nav { background: #7C4A87 !important; }

/* La carte (passe au-dessus des onglets et masque leur moitié basse).
   Bordure en dégradé coral → rouge foncé : 2 fonds (blanc en padding-box,
   dégradé en border-box) → la bordure transparente laisse voir le dégradé. */
.panorama-temps__card {
    position: relative;
    z-index: 2;
    border: 2.5px solid transparent;
    border-radius: 28px;
    border-top-left-radius: 0;
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #EB766F 0%, #901A14 100%) border-box;
    padding: 48px 56px;
    box-sizing: border-box;
}

/* Dégradé de bordure — page Amorce de Parcours */
.page-amorce .panorama-temps__card.is-tab-1 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #628CCB 0%, #345E9D 100%) border-box;
}
.page-amorce .panorama-temps__card.is-tab-2 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #345E9D 0%, #628CCB 100%) border-box;
}
.page-amorce .panorama-temps__card.is-tab-3 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #628CCB 0%, #1F385E 100%) border-box;
}
.page-amorce .panorama-temps__card.is-tab-4 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #1F385E 0%, #628CCB 100%) border-box;
}

/* Dégradé de bordure — page Conseil VAE */
.page-conseil-vae .panorama-temps__card.is-tab-1 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #ACC893 0%, #70984E 100%) border-box;
}
.page-conseil-vae .panorama-temps__card.is-tab-2 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #506C37 0%, #506C37 100%) border-box;
}
.page-conseil-vae .panorama-temps__card.is-tab-3 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #FFFFFF 0%, #ACC893 100%) border-box;
}

/* Dégradé de bordure piloté par l'onglet actif (classe posée par main.js) */
.panorama-temps__card.is-tab-1 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #EB766F 0%, #901A14 100%) border-box;
}
.panorama-temps__card.is-tab-2 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #A71D17 0%, #F6C3C0 100%) border-box;
}
.panorama-temps__card.is-tab-3 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #67130E 0%, #EB766F 100%) border-box;
}
.panorama-temps__card.is-tab-4 {
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #EB766F 0%, #67130E 100%) border-box;
}

/* Panneaux : un seul visible à la fois en front (piloté par les onglets) */
.panorama-temps__panel {
    display: none;
}
.panorama-temps__panel.is-active {
    display: block;
}

/* Éditeur : on affiche TOUS les panneaux pour pouvoir les remplir,
   séparés par un trait, sinon seul l'actif serait accessible */
.editor-styles-wrapper .panorama-temps__panel {
    display: block;
}
.editor-styles-wrapper .panorama-temps__panel + .panorama-temps__panel {
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px dashed var(--cibc-rouge-light, rgba(106, 26, 22, 0.15));
}

/* ════════════════════════════════════════════════════════════════════
   FORMULAIRES CONTACT FORM 7
   ════════════════════════════════════════════════════════════════════ */
.wpcf7 {
    max-width: 640px;
    margin: 0 auto;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    color: var(--cibc-text, #333333);
    padding: 40px 32px;
    border-radius: 30px;}

/* Police du thème (Cabin) forcée sur TOUS les éléments du formulaire
   (les champs et boutons n'héritent pas de la police par défaut) */
.wpcf7,
.wpcf7 input,
.wpcf7 textarea,
.wpcf7 select,
.wpcf7 button,
.wpcf7 label {
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

.wpcf7-form p {
    margin: 0 0 22px;
}

/* Libellés (le champ est à l'intérieur du <label>) */
.wpcf7-form label {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: var(--cibc-text, #333333);
}

/* Champs de saisie */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="date"],
.wpcf7-form select,
.wpcf7-form textarea {
    display: block;
    width: 100%;
    margin-top: 8px;
    padding: 12px 16px;
    font-size: 16px;
    font-family: inherit;
    color: var(--cibc-text, #333333);
    background: #ffffff;
    border: 1.5px solid var(--cibc-rouge-light, rgba(106, 26, 22, 0.2));
    border-radius: 12px;
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Select « Prestation concernée » : hauteur fixe 39px */
.wpcf7-form select {
    height: 39px;
    padding-top: 0;
    padding-bottom: 0;
    line-height: normal;
}

/* ── Dropdown custom (remplace le select natif, style = tri du blog) ── */
/* Select natif masqué mais conservé pour l'envoi CF7 */
.wpcf7-form select.cibc-select-native {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
.wpcf7-form .cibc-select {
    position: relative;
    margin-top: 8px;
}
.wpcf7-form .cibc-select__btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    height: 39px;
    padding: 0 18px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: 15px;
    font-weight: 600;
    color: #323232;
    background: #ffffff;
    border: none;
    border-radius: 999px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
    cursor: pointer;
    text-align: left;
}
.wpcf7-form .cibc-select__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.wpcf7-form .cibc-select__chevron {
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.wpcf7-form .cibc-select.is-open .cibc-select__chevron {
    transform: rotate(180deg);
}
.wpcf7-form .cibc-select__menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 20;
    width: 100%;
    max-height: 280px;
    overflow-y: auto;
    box-sizing: border-box;
    margin: 0;
    padding: 8px;
    list-style: none;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.14);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}
.wpcf7-form .cibc-select.is-open .cibc-select__menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.wpcf7-form .cibc-select__option {
    padding: 10px 16px;
    border-radius: 10px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: #323232;
    transition: background 0.15s ease;
}
.wpcf7-form .cibc-select__option:hover {
    background: var(--wp--preset--color--cibc-rouge-tertiary, #FCE8EA);
}
.wpcf7-form .cibc-select__option.is-selected {
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    color: #ffffff;
}

.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
    outline: none;
    border-color: var(--wp--preset--color--cibc-rouge-primary, #E64F47);
    box-shadow: 0 0 0 3px rgba(230, 79, 71, 0.15);
}

.wpcf7-form textarea {
    min-height: 140px;
    resize: vertical;
}

/* Boutons radio (Particulier / Entreprise) */
.wpcf7-radio {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 8px;
}
.wpcf7-radio .wpcf7-list-item {
    margin: 0;
    display: inline-flex;
    align-items: center;
}
.wpcf7-radio .wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-weight: 400;
    cursor: pointer;
}
/* Espace bouton radio ↔ texte (robuste quelle que soit la structure CF7) */
.wpcf7-form .wpcf7-radio .wpcf7-list-item-label {
    margin-left: 12px;
    font-size: 14px;
}
/* Boutons radio : style custom (anneau + point) = même look que les cases,
   et parfaitement centrés verticalement avec leur texte (label en flex) */
.wpcf7-form input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    width: 18px;
    height: 18px;
    margin: 0;
    flex-shrink: 0;
    border: 2px solid #D98C85;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
}
.wpcf7-form input[type="radio"]:checked {
    border-color: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
}
.wpcf7-form input[type="radio"]:checked::after {
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
}

/* Case RGPD */
.wpcf7-acceptance label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    cursor: pointer;
}

/* Bouton « Envoyer » */
.wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 8px;
    padding: 14px 32px;
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    color: #ffffff;
    border: none;
    border-radius: 32px;
    font-size: 16px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: filter 0.2s ease;
}
.wpcf7-submit:hover {
    filter: brightness(1.08);
}

/* Messages de validation */
.wpcf7-not-valid-tip {
    color: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    font-size: 13px;
    font-weight: 500;
    margin-top: 6px;
}
.wpcf7-form .wpcf7-not-valid {
    border-color: var(--wp--preset--color--cibc-rouge-accent, #A21C16) !important;
}
.wpcf7-response-output {
    margin: 16px 0 0 !important;
    padding: 12px 16px !important;
    border-width: 1.5px !important;
    border-radius: 10px;
    font-size: 14px;
}

/* Spinner d'envoi aligné */
.wpcf7-spinner {
    margin: 0 0 0 12px;
}

/* ─── Formulaire « carte » (contact) : .wpcf7-form ────────────────
   Carte dégradée corail + champs blancs en pilule + 2 colonnes. */
.wpcf7-form {
    background: linear-gradient(135deg, rgba(224, 40, 31, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
    border-radius: 32px;
    padding: 40px 36px;
    box-sizing: border-box;
}

/* Espacements verticaux */
.wpcf7-form p {
    margin: 0 0 18px;
}
.wpcf7-form .cibc-form-row,
.wpcf7-form .contact-form__row {
    margin-bottom: 18px;
}

/* Rangée 2 colonnes (Nom/Prénom, Ville/Code postal…) */
.wpcf7-form .cibc-form-row,
.wpcf7-form .contact-form__row {
    display: flex;
    gap: 18px;
    align-items: flex-start;
}
.wpcf7-form .cibc-form-row > *,
.wpcf7-form .contact-form__row > * {
    flex: 1;
    min-width: 0;
    margin: 0;
}

/* Les champs occupent toute la largeur de leur conteneur */
.wpcf7-form .wpcf7-form-control-wrap {
    display: block;
}

/* Champs blancs en pilule */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    width: 100%;
    margin: 8px 0 0;
    padding: 12px 24px;
    font-size: 12px;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    color: var(--cibc-text, #333333);
    background: #ffffff;
    border: none;
    border-radius: 999px;
    box-shadow: 0 2px 8px rgba(106, 26, 22, 0.06);
    box-sizing: border-box;
}

.wpcf7-form textarea {
    border-radius: 24px;
    height: 15px;
    resize: vertical;
}

.wpcf7-form ::placeholder {
    color: #9a9a9a;
    opacity: 1;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
    outline: none;
    box-shadow: 0 0 0 2px var(--wp--preset--color--cibc-rouge-primary, #E64F47);
}

/* Cases à cocher rondes */
.wpcf7-form .wpcf7-acceptance {
    display: block;
    margin-bottom: 14px;
}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
    margin: 0;
}
.wpcf7-form .wpcf7-acceptance label {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--cibc-text, #333333);
    cursor: pointer;
}
.wpcf7-form input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    margin: 1px 0 0;
    border: 2px solid #D98C85;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
}
/* Coché : anneau rouge + point au centre (même look que les boutons radio) */
.wpcf7-form input[type="checkbox"]:checked {
    border-color: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
}
.wpcf7-form input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
}

/* Bouton « Envoyer » en bas à droite */
.wpcf7-form .cibc-form-submit {
    text-align: right;
    margin: 8px 0 0;
}
.wpcf7-form .wpcf7-submit {
    margin: 0;
    padding: 12px 20px;
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    color: #ffffff;
    border: none;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 600;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    cursor: pointer;
    transition: filter 0.2s ease;
}
.wpcf7-form .wpcf7-submit:hover {
    filter: brightness(1.08);
}

/* Responsive : colonnes empilées sur mobile */
@media (max-width: 600px) {
    .wpcf7-form {
        padding: 28px 22px;
    }
    .wpcf7-form .cibc-form-row {
        flex-direction: column;
        gap: 18px;
    }
}

.panorama-temps__title {
    font-size: 32px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333333);
    margin: 0 0 40px;
}

.panorama-temps__intro {
    font-size: var(--text-18);
    line-height: 1.6;
    color: var(--wp--preset--color--texte-principal, #333333);
    margin: 0 0 28px;
}

.panorama-temps__list {
    margin: 0;
    padding-left: 22px;
}

.panorama-temps__list li {
    font-size: var(--text-18);
    line-height: 1.5;
    color: var(--wp--preset--color--texte-principal, #333333);
    margin-bottom: 16px;
}

.panorama-temps__list li:last-child {
    margin-bottom: 0;
}

/* Bouton « Télécharger la plaquette » centré sous la carte */
.panorama-temps__buttons {
    display: flex;
    justify-content: center;
    margin-top: 56px;
}

.panorama-temps__btn .wp-block-button__link {
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    color: #FFFFFF;
    text-decoration: none;
}
.page-amorce .panorama-temps__btn .wp-block-button__link {
    background: rgba(183, 90, 222,0.6);
    color: #323232;
    text-decoration: none;
}
.page-tuteur .panorama-temps__btn .wp-block-button__link {
    background: rgba(190, 77, 250, 0.85);
    color: #323232;
    text-decoration: none;
}
.page-management .panorama-temps__btn .wp-block-button__link {
    background: var(--wp--preset--color--appuirh-accent, #EB766F);
    color: #323232;
    text-decoration: none;
}
/* ── Tablette (≤1024px) ── */
@media (max-width: 1024px) {
    .panorama-temps {
        padding: 64px 24px 80px;
    }
    .panorama-temps__card {
        padding: 40px 32px;
    }
    .panorama-temps__title {
        font-size: 26px;
        margin-bottom: 28px;
    }
}

/* ── Mobile (≤768px) ── */
@media (max-width: 768px) {
    /* onglets « dossier » centrés au-dessus de la carte */
    .panorama-temps__tab {
        width: 72px;
        height: 38px;
    }
    .panorama-temps__title {
        font-size: 22px;
    }
    .panorama-temps__intro,
    .panorama-temps__list li {
        font-size: 16px;
    }
    .panorama-temps__btn .wp-block-button__link {
        display: block;
        text-align: center;
    }
}

/* ─── Cohérence des boutons en responsive ─────────────────────────────
   Tous les boutons du site reprennent les dimensions du bouton de référence
   « Un métier, mon parcours » (.hero__btn) : padding 11px 16px / 13px. */
@media (max-width: 768px) {
    .wp-block-button__link {
        padding: 11px 16px;
        font-size: 13px;
    }
}

/* ─── Section « Nos consultantes » (bande sombre + carrousel de cartes) ─── */
.consultantes {
    /* Maquette : 1080px de haut → 978px (cartes -102px). Padding fluide :
       ~209px haut/bas en grand écran, qui se réduit en douceur (pas de saut).
       --inner-pad : padding latéral partagé (inner + flèches), fluide aussi. */
    --inner-pad: clamp(24px, 7.8vw, 112px);
    padding: clamp(72px, 14.5vw, 209px) 0;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

.consultantes__inner {
    position: relative;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--inner-pad);
    box-sizing: border-box;
}

/* ── Accordéon par département (MOBILE uniquement — caché en desktop) ── */
.consultantes__accordion {
    display: none;
    flex-direction: column;
    gap: 16px;
}
.consultantes__acc-item {
    border-radius: 30px;
    overflow: hidden;            /* arrondi net sur l'en-tête coloré */
}

/* En-tête coloré cliquable (l'ancienne carte département, en barre pleine largeur) */
.consultantes__acc-header {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 22px 28px;
    border: none;
    border-radius: 30px;          /* barre = rectangle arrondi complet (même ouverte) */
    cursor: pointer;
    color: #ffffff;
    text-align: left;
    font-family: inherit;
    background: var(--dept-color, #A21C16);
    transition: filter 0.2s ease;
}
.consultantes__acc-header:hover { filter: brightness(1.08); }
.consultantes__acc-name {
    font-size: 22px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.1;
}
.consultantes__acc-num {
    font-size: 22px;
    font-weight: 700;
    opacity: 0.85;
}
.consultantes__acc-chevron {
    margin-left: auto;
    display: inline-flex;
    transition: transform 0.3s ease;
}
.consultantes__acc-chevron svg { width: 26px; height: 26px; }
.consultantes__acc-item.is-open .consultantes__acc-chevron { transform: rotate(180deg); }

/* Panneau qui se déplie (animation de hauteur via grid 0fr → 1fr) */
.consultantes__acc-panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s ease;
}
.consultantes__acc-item.is-open .consultantes__acc-panel { grid-template-rows: 1fr; }
.consultantes__acc-panel-inner {
    min-height: 0;
    overflow: hidden;
    padding-top: 28px;           /* air entre l'en-tête et les cartes */
}

.consultantes__title {
    font-size: clamp(26px, 4vw, 48px);   /* fluide : 26px mobile → 48px desktop */
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #323232;
    margin: 0 0 56px;
}

/* Rangée de cartes : défilement horizontal (scrollbar masquée + accroche) */
.consultantes__row {
    display: flex;
    gap: 28px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 8px;
    scrollbar-width: none;
}
.consultantes__row::-webkit-scrollbar { display: none; }

/* Carte « département » colorée (DESKTOP : filtre cliquable dans le carrousel) */
.consultantes__dept {
    flex: 0 0 190px;
    scroll-snap-align: start;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 4px;
    padding: 26px 22px;
    border: none;
    border-radius: 24px;
    cursor: pointer;
    color: #ffffff;
    text-align: left;
    font-family: inherit;
    background: var(--dept-color, #A21C16);
    transition: filter 0.2s ease;
}
.consultantes__dept:hover { filter: brightness(1.08); }
.consultantes__dept.is-active { outline: 3px solid #ffffff; outline-offset: -6px; }
.consultantes__dept-name { font-size: 22px; font-weight: 700; text-transform: uppercase; line-height: 1.1; }
.consultantes__dept-num { font-size: 46px; font-weight: 700; line-height: 1; }

/* Animation d'apparition des consultantes au reveal (desktop) */
@keyframes consultantes-in {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}
.consultantes__card.is-revealing { animation: consultantes-in 0.45s ease both; }

/* Flèches de navigation du carrousel desktop (créées par main.js) */
.consultantes__nav-wrap {
    position: absolute;
    top: 4px;
    right: var(--inner-pad);
    display: flex;
    gap: 12px;
    z-index: 3;
}
.consultantes__nav {
    width: 44px; height: 44px; flex-shrink: 0;
    border: none; border-radius: 50%;
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    color: #ffffff;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer; transition: filter 0.2s ease;
}
.consultantes__nav:hover { filter: brightness(1.1); }
.consultantes__nav svg { width: 22px; height: 22px; }

/* Carte consultante */
.consultantes__card {
    flex: 0 0 352px;
    height: 466px;
    scroll-snap-align: start;
    box-sizing: border-box;
    padding: 40px 32px;
    background: #FFFFFF;
    /* contour à la couleur du département (fallback rouge CIBC) */
    border: 3px solid var(--dept-color, var(--wp--preset--color--cibc-rouge-primary, #E64F47));
    border-radius: 60px;
}

/* Photo (carrée, recadrée) */
.consultantes__photo {
    margin: 0 0 22px;
    height: 240px;
    border-radius: 28px;
    overflow: hidden;
}
/* Pointillé seulement dans l'éditeur (repère pour ajouter une photo) */
.editor-styles-wrapper .consultantes__photo:empty {
    border: 2px dashed #444444;
}
/* Sur le site : emplacement sombre neutre si pas encore de photo */
.consultantes__photo:empty {
    background: #1a1a1a;
}
.consultantes__photo .wp-block-image,
.consultantes__photo figure {
    height: 100%;
    margin: 0;
}
.consultantes__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 28%;   /* recadrage : favorise les visages (un peu en haut) */
    display: block;
}

.consultantes__name {
    font-size: 20px;
    font-weight: 700;
    color: #323232;
    margin: 0 0 12px;
}

.consultantes__desc {
    font-size: 14px;
    line-height: 1.6;
    color: #323232;
    margin: 0;
}

/* Responsive : on bascule du carrousel desktop vers l'accordéon en mobile */
@media (max-width: 768px) {
    .consultantes__title { font-size: 26px; margin-bottom: 24px; }
    .consultantes__card { flex-basis: 78%; }

    /* Mobile : on cache le carrousel + flèches, on affiche l'accordéon */
    .consultantes__row--desktop { display: none; }
    .consultantes__nav-wrap { display: none; }
    .consultantes__accordion { display: flex; }

    .consultantes__acc-header { padding: 18px 20px; }
    .consultantes__acc-name,
    .consultantes__acc-num { font-size: 18px; }
    .consultantes__acc-panel-inner { padding-top: 20px; }
}

/* ─── Section « Stats » (4 cartes chiffrées — page Amorce de parcours) ──
   Couleurs des cartes réglables ici (palette violette de la maquette). */
.stats {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px var(--section-pad-x);
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* Grille 24 colonnes : les cartes définissent elles-mêmes leur largeur via span.
   Ligne 1 → 12+12 (≈50/50), ligne 2 → 15+9 (≈63/37) */
.stats .stats__grid {
    display: grid !important;
    grid-template-columns: repeat(24, 1fr);
    gap: 24px;
}

.stats__card--1 { grid-column: span 12; }
.stats__card--2 { grid-column: span 12; }
.stats__card--3 { grid-column: span 15; }
.stats__card--4 { grid-column: span 9; }

.stats__card {
    border-radius: 20px;
    padding: 40px 32px;
    min-height: 140px;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start;
    gap: 20px;
    color: #333333;
}

.stats__num {
    font-size: clamp(56px, 7vw, 128px);
    font-weight: 700;
    line-height: 1;
    margin: 0;
    flex-shrink: 0;
}

.stats__label {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
    flex: 1;
}

.stats__card--1 { background: rgba(98, 140, 203, 0.35); }
.stats__card--2 { background: linear-gradient(180deg, #B089E7 61%, #FFFFFF 140%) }
.stats__card--3 { background: linear-gradient(180deg, #B089E7 61%, #FFFFFF 140%) }
.stats__card--4 {
    background: rgba(98, 140, 203, 0.35);
    flex-direction: column !important;
    align-items: flex-start !important;
}

@media (max-width: 768px) {
    .stats { padding: 48px var(--section-pad-x); }
    .stats .stats__grid { grid-template-columns: 1fr 1fr; gap: 16px; }
    .stats__card--1,
    .stats__card--2,
    .stats__card--3,
    .stats__card--4 { grid-column: span 1; }
    .stats__card { min-height: 0; padding: 20px; flex-direction: column !important; align-items: flex-start; }
    .stats__num { font-size: clamp(32px, 9vw, 48px); margin: 0 0 8px; }
    .stats__label { font-size: 14px; }
}

/* ─── Section « Orientation » (2 cartes dégradées) ───────────────────── */
.orientation {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px var(--section-pad-x);   /* padding latéral fluide (112px → 24px) */
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

.orientation .orientation__cards {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

.orientation__card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 320px;
    padding: 48px;
    border-radius: 24px;
    box-sizing: border-box;
}

/* Couleur de la carte (la seule chose qui change selon l'usage) */
.orientation__card--clair { background: linear-gradient(135deg, #F3C2BC 0%, #E47C73 100%) !important; }
.orientation__card--fonce { background: linear-gradient(135deg, #E8766C 0%, #D23A30 100%) !important; }

.orientation__title {
    font-size: clamp(20px, 2.4vw, 28px);   /* fluide : se réduit sur petit écran */
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.25;
    color: #323232;
    margin: 0;
}

/* Bouton blanc en bas à droite */
.orientation__card .wp-block-buttons {
    margin-top: auto;
    display: flex;
    justify-content: flex-end;
}
.orientation__btn .wp-block-button__link {
    background: #ffffff;
    color: var(--wp--preset--color--texte-principal, #333333);
    text-decoration: none;
}

@media (max-width: 768px) {
    .orientation { padding: 48px 20px; }
    .orientation .orientation__cards {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .orientation__card { min-height: 240px; padding: 32px; }
    .orientation__title { font-size: 22px; }
}

/* ── Page Amorce : couleurs personnalisées des cartes orientation ── */
body.page-amorce .orientation__card--clair {
    background: linear-gradient(170deg, #628CCB 0%, #ffffff 150%)!important;
}
body.page-amorce .orientation__card--fonce {
    background: linear-gradient(170deg, #B089E7 0%, #ffffff 150%)!important;
}

/* ── Page Conseil VAE : couleurs personnalisées des cartes orientation ── */
body.page-conseil-vae .orientation__card--clair {
    background: linear-gradient(170deg, #70984E 2%, #ACC893 100%)!important;
}
body.page-conseil-vae .orientation__card--fonce {
    background: linear-gradient(170deg, #EB766F 0%, #FFFFFF 100%)!important;
}

/* ── Page Conseil en évolution pro (CEP) : couleurs des cartes orientation ── */
body.page-cep .orientation__card--clair {
    background: linear-gradient(314deg, #F5EFF6 -67%, #7C4A87 100%) !important;
}
body.page-cep .orientation__card--fonce {
    background: linear-gradient(135deg, rgba(167, 29, 23, 0.75) 18%, #FFFFFF 224%) !important;
}
/* couleurs de texte des cartes orientation (CEP) */
body.page-cep .orientation__card--clair .orientation__title { color: #FFFFFF; }
body.page-cep .orientation__card--fonce .orientation__title { color: #2B0A0A; }

/* Orientation — Formation Tuteur (Inclusion) */
body.page-tuteur .orientation__card--clair {
    background: linear-gradient(135deg, #628CCB 0%, #345E9D 100%) !important;
}
body.page-tuteur .orientation__card--fonce {
    background: linear-gradient(135deg, #A270FB 46%, #FFFFFF 142%) !important;
}
body.page-tuteur .orientation__card--clair .orientation__title { color: #FFFFFF; }
body.page-tuteur .orientation__card--fonce .orientation__title { color: #323232; }

/* Orientation — Management opérationnel (Appui RH) */
body.page-management .orientation__card--clair {
    background: linear-gradient(135deg, #975BA4 0%, #CFB3D5 100%) !important;
}
body.page-management .orientation__card--fonce {
    background: linear-gradient(135deg, #E99995 0%, #FFFFFF 128%) !important;
}
body.page-management .orientation__card--clair .orientation__title { color: #FFFFFF; }
body.page-management .orientation__card--fonce .orientation__title { color: #323232; }

/* ════════════════════════════════════════════════════════════════════
   PAGE REJOINDRE NOTRE ÉQUIPE
   ════════════════════════════════════════════════════════════════════ */

.page-rejoindre {
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* ─── Hero bannière « FAISONS ÉQUIPE ! » (image gauche + texte droite) ─── */
.equipe-hero {
    display: flex;
    align-items: center;
    gap: 48px;
    max-width: 1216px;
    margin: 40px auto 0;
    padding: 40px;
    box-sizing: border-box;
    background: linear-gradient(164deg, #F6C3C0 0%, #A71D17 96%);
    border-radius: 28px;
}

.equipe-hero__media {
    flex: 0 0 48%;
    align-self: stretch;
    min-height: 360px;
    border-radius: 20px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.15);
}

.equipe-hero__media .wp-block-image,
.equipe-hero__media figure {
    height: 100%;
    margin: 0;
}

.equipe-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.equipe-hero__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.equipe-hero__title {
    font-size: clamp(32px, 4vw, 56px);
    line-height: 1.05;
    font-weight: 700;
    text-transform: uppercase;
    color: #ffffff;
    margin: 0 0 20px;
}

.equipe-hero__subtitle {
    font-size: clamp(16px, 1.6vw, 20px);
    line-height: 1.5;
    color: #ffffff;
    margin: 0 0 32px;
    max-width: 440px;
}

.equipe-hero__btn .wp-block-button__link {
    background: #ffffff;
    color: var(--wp--preset--color--button-text-primary, #323232);
}

/* ─── Pourquoi nous rejoindre : grille d'avantages ─── */
.avantages {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px var(--section-pad-x, 112px);
    box-sizing: border-box;
}

.avantages__title {
    font-size: clamp(26px, 3vw, 48px);
    font-weight: 700;
    color: #323232;
    margin: 0 0 16px;
}

.avantages__desc {
    font-size: clamp(16px, 3vw, 24px);
    color: #323232;
    margin: 0 0 48px;
}

.avantages__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-areas:
        "transport mutuelle prime"
        "transport teletravail teletravail";
    align-items: stretch;
    gap: 24px;
}

/* Placement explicite des cartes dans les zones nommées (par position →
   robuste même si les classes --tall/--wide manquent dans la version enregistrée) */
.avantages__grid > .avantages__card:nth-child(1) { grid-area: transport; justify-content: center; }
.avantages__grid > .avantages__card:nth-child(2) { grid-area: mutuelle; }
.avantages__grid > .avantages__card:nth-child(3) { grid-area: prime; }
.avantages__grid > .avantages__card:nth-child(4) { grid-area: teletravail; }

.avantages__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 40px;
    background: #ffffff;
    border: 2px solid #D51A21;
    border-radius: 20px;
    padding: 40px 32px;
    box-sizing: border-box;
}

/* Carte « transport » : haute, occupe la colonne de gauche sur 2 rangées */
.avantages__card--tall {
    grid-area: transport;
    justify-content: center;
}

/* Carte « télétravail » : large, occupe les 2 colonnes de droite en bas */
.avantages__card--wide {
    grid-area: teletravail;
    flex-direction: row;
    align-items: center;
    gap: 98px;
    padding: 40px 32px;
}

.avantages__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.avantages__icon img {
    width: auto;
    max-width: 100px;
    max-height: 90px;
    height: auto;
}

/* Icônes Lucide (SVG injecté) */
.avantages__icon svg {
    width: 168px;
    height: 168px;
    stroke: #323232;
    stroke-width: 0.5;
}

.avantages__text {
    font-size: clamp(18px, 3vw, 32px);
    line-height: 1.5;
    color: #323232;
    margin: 0;
}

/* Défilement fluide vers les ancres (ex. bouton hero → #nos-offres) */
html {
    scroll-behavior: smooth;
}

/* ─── Nos offres d'emploi : liste de cartes ─── */
.offres {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px var(--section-pad-x, 112px) 80px;
    box-sizing: border-box;
    scroll-margin-top: 100px;
}

.offres__title {
    font-size: clamp(26px, 3vw, 48px);
    font-weight: 700;
    color: #323232;
    margin: 0 0 16px;
}

.offres__desc {
    font-size: clamp(16px, 3vw, 24px);
    color: #323232;
    margin: 0 0 40px;
    line-height: 1.6;
}

.offres__list {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.offres__card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-radius: 20px;
    padding: 24px 32px;
}

/* Couleur fixe par position de l'offre */
.offres__list > .offres__card:nth-child(1) { background: #A71D17; }
.offres__list > .offres__card:nth-child(2) { background: #EB766F; }
.offres__list > .offres__card:nth-child(3) { background: #F6C3C0; }
.offres__list > .offres__card:nth-child(4) { background: #E64F47; }

/* Offres 2 et 3 : fonds clairs → texte foncé */
.offres__list > .offres__card:nth-child(2) .offres__job,
.offres__list > .offres__card:nth-child(3) .offres__job { color: #323232; }



.offres__job {
    flex: 1;
    font-size: 32px;
    font-weight: 700;
    color: #ffffff;
    text-transform: uppercase;
    margin: 0;
    max-height:226px;
    padding : 40px 32px;
}

/* Bouton aligné en bas de la carte */
.offres__buttons {
    align-self: flex-end;
}

.offres__btn .wp-block-button__link {
    background: #ffffff;
    color: var(--wp--preset--color--button-text-primary, #323232);
    white-space: nowrap;
}

/* ─── Notre processus de recrutement : étapes numérotées ─── */
.processus {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px var(--section-pad-x, 112px) 80px;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    gap: 48px;
    align-items: flex-start;
    justify-content: space-between;
}

.processus__title {
    flex: 0 0 448px;
    font-size: 48px;
    font-weight: 700;
    color: #323232;
    margin: 0;
}

.processus__steps {
    flex: 1;
    max-width: 576px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.processus__step {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 40px;
    height: 320px;
    background: #ffffff;
    border: 1px solid #F6C3C0;
    border-radius: 16px;
    padding: 40px 64px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.processus__num {
    font-size: 64px;
    font-weight: 700;
    color: #323232;
    margin: 0;
    line-height: 1;
}

.processus__step-text {
    font-size: 32px;
    font-weight: 600;
    color: #323232;
    text-transform: uppercase;
    line-height: 1.5;
    margin: 0;
}

/* ─── Responsive ─── */
@media (max-width: 900px) {
    .equipe-hero {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
    .equipe-hero__content { align-items: center; }
    .equipe-hero__subtitle { max-width: none; }
    /* L'image reprend sa hauteur naturelle (plus de vide rose en dessous) */
    .equipe-hero__media {
        flex: none;
        min-height: 0;
    }
    .equipe-hero__media img {
        height: auto;
    }
    .processus { flex-direction: column; gap: 24px; }
    /* En colonne, le flex-basis du titre devient une hauteur → on l'annule */
    .processus__title { flex: none; }
    .processus__steps { max-width: none; }
}

@media (max-width: 768px) {
    .avantages,
    .offres,
    .processus {
        padding-left: 24px;
        padding-right: 24px;
    }
    .offres__card {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        padding: 20px 16px;
    }
    .offres__job {
        font-size: 18px;
        padding: 0;
        max-height: none;
        overflow-wrap: anywhere;
    }
    .offres__buttons {
        align-self: flex-end;
    }
    /* Tablette/mobile : disposition desktop adaptée en 2 colonnes
       (transport haute à gauche, mutuelle + prime à droite, télétravail large dessous) */
    .avantages__grid {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "transport mutuelle"
            "transport prime"
            "teletravail teletravail";
        gap: 16px;
    }
    .avantages__card {
        padding: 24px 20px;
        gap: 20px;
    }
    .avantages__card--wide {
        gap: 24px;
    }
    .avantages__icon svg {
        width: 40px;
        height: 40px;
    }

    /* Étapes du processus : version compacte sur mobile */
    .processus__title {
        font-size: 26px;
    }
    .processus__step {
        height: auto;
        padding: 24px 24px 28px;
        gap: 16px;
    }
    .processus__num {
        font-size: 28px;
    }
    .processus__step-text {
        font-size: 16px;
    }
}

/* Très petits téléphones : avantages en une seule colonne (2 cols trop étroit) */
@media (max-width: 480px) {
    .avantages__grid {
        grid-template-columns: 1fr;
        grid-template-areas:
            "transport"
            "mutuelle"
            "prime"
            "teletravail";
    }
    .avantages__card--wide {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* =========================================================================
   PAGE ARTICLE (single)
   ========================================================================= */
.single-article {
    max-width: 1216px;
    margin: 0 auto;
    padding: 48px 24px 96px;
    box-sizing: border-box;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}
/* Bandeau image à la une */
.single-article__banner { margin: 0 0 40px; }
.single-article__banner img {
    width: 100%;
    aspect-ratio: 16 / 7;
    object-fit: cover;
    border-radius: 28px;
    display: block;
}
.single-article__title {
    font-size: clamp(30px, 5vw, 52px);
    font-weight: 700;
    line-height: 1.1;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 24px;
}
/* Pilules catégories (toutes les catégories de l'article) */
.single-article__cats {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 48px;
    font-size: 0;
}
.single-article__cats a {
    display: inline-block;
    padding: 8px 18px;
    border-radius: 999px;
    background: #E6D6F2;
    color: #323232;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    line-height: 1.2;
}
.single-article__cats a:hover { opacity: .85; }
/* Corps de l'article */
.single-article__content {
    font-size: 17px;
    line-height: 1.7;
    color: var(--wp--preset--color--texte-principal, #333);
}
.single-article__content > * { margin-top: 28px; }
.single-article__content > *:first-child { margin-top: 0; }
.single-article__content h2 { font-size: 28px; font-weight: 700; margin-top: 48px; }
.single-article__content h3 { font-size: 22px; font-weight: 700; margin-top: 36px; }
.single-article__content img { border-radius: 20px; }

/* Tableau dans le corps d'article */
.single-article__content .wp-block-table {
    border-radius: 12px;
    overflow: hidden;
}
.single-article__content .wp-block-table table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid rgba(0, 0, 0, 0.12);
}
.single-article__content .wp-block-table table thead,
.single-article__content .wp-block-table table tbody,
.single-article__content .wp-block-table table tr {
    border: none;
}
.single-article__content .wp-block-table thead tr {
    background-color: rgba(151, 91, 164, 0.55);
}
.single-article__content .wp-block-table thead th {
    padding: 14px 20px;
    font-weight: 600;
    border: 1px solid rgba(0, 0, 0, 0.12);
    color: #fff;
}
.single-article__content .wp-block-table tbody td {
    padding: 12px 20px;
    border: 1px solid rgba(0, 0, 0, 0.12);
}
.single-article__content .wp-block-table figcaption {
    margin-top: 8px;
    font-size: 13px;
    color: #888;
    font-style: italic;
}

/* Patterns de corps d'article */
.article-intro__img { display: none; }
.article-intro.wp-block-columns { display: block; }
.article-video__embed { margin: 0; }
.article-video__embed .wp-block-embed__wrapper {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 20px;
    overflow: hidden;
    background: linear-gradient(160deg, #EFE3F5, #F6D7D3);
}
.article-video__embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.article-temoignage {
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 28px 32px;
    background: #FCEDED;
    border-radius: 24px;
}
.article-temoignage__portrait { margin: 0; flex: 0 0 auto; }
.article-temoignage__portrait img {
    width: 160px;
    height: 160px;
    object-fit: cover;
    border-radius: 50%;
}
.article-temoignage__quote {
    margin: 0;
    border: 0;
    font-size: 20px;
    font-style: italic;
    line-height: 1.5;
}
.article-temoignage__quote cite {
    display: block;
    margin-top: 12px;
    font-style: normal;
    font-weight: 700;
    font-size: 16px;
}

@media (max-width: 768px) {
    .single-article { padding: 32px 20px 64px; }
    .single-article__banner { margin-bottom: 28px; }
    .single-article__banner img { aspect-ratio: 4 / 3; }
    .article-temoignage { flex-direction: column; text-align: center; }
}


/* --- Article : LES PRESTATIONS (bento 3 cartes) --- */
/* Espacement entre les sections du bas de l'article (prioritaire sur le block-gap WP) */
.single-article .presta,
.single-article .articles-similaires,
.single-article .etiquettes,
.single-article .newsletter {
    margin-top: 200px !important;
}

/* la section déborde la colonne de texte de l'article, plafonnée à 1216px */
.presta {
    width: min(1216px, calc(100vw - 48px));
    margin: 100px 0 0;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}
.presta__title {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 8px;
}
.presta__desc {
    font-size: 16px;
    color: #555;
    margin: 0 0 32px;
}
.presta .presta__grid,
.presta .presta__grid > .block-editor-block-list__layout {
    display: grid !important;
    grid-template-columns: 484fr 715fr;   /* ratio 484:715, s'adapte à la largeur */
    grid-template-rows: 152px 152px;       /* cartes droites = 152px ; verte = 320px (2 lignes + gap) */
    gap: 16px 24px;
}
.presta__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 36px 36px;
    border-radius: 20px;
    min-height: 0;
    color: #fff;
}
/* Carte verte (grande, à gauche) : 484×320, contenu centré, bouton à droite */
.presta__card--diplome {
    grid-column: 1;
    grid-row: 1 / span 2;
    min-height: 320px;
    justify-content: center;
    gap: 36px;
    background: linear-gradient(0deg, #ACC893 0%, #70984E 100%);
    padding: 40px 32px;
}
.presta__card--diplome .presta__buttons { align-self: flex-end; }
/* Cartes bleue & rose (larges, à droite) : 715×152, padding 20/32, titre centré, bouton en bas à droite */
.presta__card--formation,
.presta__card--projet {
    justify-content: center;
    padding: 20px 32px;
}
.presta__card--formation { grid-column: 2; grid-row: 1; background: linear-gradient(160deg, #628CCB 0%, #345E9D 100%); }
.presta__card--projet    { grid-column: 2; grid-row: 2; background: linear-gradient(336deg, #F5EFF6 0%, #CFB3D5 100%); }
.presta__card--formation .presta__buttons,
.presta__card--projet .presta__buttons {
    position: absolute;
    right: 28px;
    bottom: 24px;
    margin: 0;
}
.presta__card-title {
    font-size: 32px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.2;
    margin: 0;
}
.presta__card--diplome .presta__card-title { font-size: 32px; }
.presta__btn .wp-block-button__link {
    background: #fff;
    color: var(--wp--preset--color--button-text-primary, #323232);
    padding: 16px 20px;
    border-radius: 32px;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: var(--wp--preset--font-size--button, 16px);
    font-weight: 600;
}

/* --- Article : NEWSLETTER (visuel ; branchement Brevo à venir) --- */
.newsletter {
    width: min(833px, calc(100vw - 48px));
    margin: 100px 0 0;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}
.newsletter__card {
    background: linear-gradient(180deg, #F5EFF6 0%, #CFB3D5 100%);
    border-radius: 40px;
    padding: 56px 88px;   /* vertical réduit → la hauteur épouse le contenu */
    text-align: left;
}
.newsletter__title {
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 32px;
}
.newsletter__form {
    display: flex;
    flex-direction: column;
    align-items: flex-end;   /* consentement + bouton alignés à droite */
    gap: 24px;
    max-width: none;
    margin: 0;
}
.newsletter__input {
    width: 100%;
    align-self: stretch;     /* champ pleine largeur */
    padding: 16px 24px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    /* 'cibc-arobase' ne couvre QUE le caractère @ (cf. @font-face ci-dessous) :
       le @ prend une fonte système propre, tout le reste reste en Cabin */
    font-family: 'cibc-arobase', var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: 16px;
    color: var(--cibc-text, #323232);   /* même couleur que le footer → @ foncé, pas bleu */
    box-sizing: border-box;
}
/* Police de repli appliquée UNIQUEMENT au caractère @ (U+0040) */
@font-face {
    font-family: 'cibc-arobase';
    src: local('Arial'), local('Helvetica Neue'), local('Segoe UI'), local('sans-serif');
    unicode-range: U+0040;
}
.newsletter__input::placeholder { color: #9a9a9a; }
.newsletter__consent {
    align-self: flex-start;   /* aligné à gauche, sous le champ */
    display: flex;
    align-items: flex-start;
    gap: 12px;
    max-width: 100%;
    font-size: 14px;
    line-height: 1.4;
    color: #4a4a4a;
}
/* case à cocher ronde (cf. maquette) */
.newsletter__consent input {
    appearance: none;
    -webkit-appearance: none;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin: 0;
    border-radius: 50%;
    background: #fff;
    border: 1px solid #d6c3df;
    cursor: pointer;
}
.newsletter__consent input:checked {
    background: var(--wp--preset--color--cibc-rouge-accent, #A71D17);
    border-color: var(--wp--preset--color--cibc-rouge-accent, #A71D17);
}
.newsletter__btn {
    align-self: flex-end;   /* bord droit aligné sous le champ */
    border: 0;
    cursor: pointer;
    padding: 16px 20px;
    border-radius: 32px;
    background: var(--wp--preset--color--cibc-rouge-accent, #A71D17);
    color: #fff;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: var(--wp--preset--font-size--button, 16px);
    font-weight: 600;
    transition: opacity .2s ease;
}
.newsletter__btn:hover { opacity: .9; }
/* message d'inscription (succès / erreur) */
.newsletter__msg {
    width: 100%;
    margin: 4px 0 0;
    font-size: 14px;
    font-weight: 600;
}
.newsletter__msg.is-ok { color: #2E7D32; }
.newsletter__msg.is-error { color: var(--wp--preset--color--cibc-rouge-accent, #A71D17); }
/* vide : pas affiché → pas de gap superflu en bas du formulaire */
.newsletter__msg:empty { display: none; }

@media (max-width: 768px) {
    .presta .presta__grid { grid-template-columns: 1fr; grid-template-rows: none; }
    .presta__card--diplome,
    .presta__card--formation,
    .presta__card--projet { grid-column: 1; grid-row: auto; }
    .newsletter__card { padding: 40px 24px; }
}

/* =========================================================================
   PAGE « BLOG »
   ========================================================================= */
.page-blog {
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}
.page-blog__title {
    max-width: 1440px;
    margin: 0 auto;
    padding: 72px 112px 0;
    box-sizing: border-box;
    font-size: clamp(30px, 5vw, 56px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
}
@media (max-width: 1024px) {
    .page-blog__title { padding: 56px 48px 0; }
}
@media (max-width: 768px) {
    .page-blog__title { padding: 40px 24px 0; font-size: 30px; }
}

/* =========================================================================
   PAGE « NOTRE ASSOCIATION » (Nous connaître)
   ========================================================================= */
.page-association {
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* Hero sans visuel : texte + boutons en pleine largeur (la hauteur n'est plus
   portée par l'anneau, on remet donc un padding vertical et à droite) */
.page-association .hero {
    padding: 72px 112px;
}
.page-association .hero__content {
    flex: 1 1 auto;
}
.page-association .hero__subtitle {
    max-width: 620px;
}
@media (max-width: 768px) {
    .page-association .hero {
        padding: 48px 24px;
    }
}

/* --- Section intro : deux cartes blanches qui s'empilent au scroll (sticky) --- */
.assoc-intro {
    padding: 96px 24px;
}
/* Deux cartes superposées au même endroit ; au scroll, celle de derrière
   passe devant (classe .is-swapped pilotée par main.js). La hauteur du stack
   est fixée par JS = hauteur de la plus grande carte + le décalage. */
.assoc-intro__stack {
    position: relative;
    max-width: 1216px;
    margin: 0 auto;
}
.assoc-intro__card {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 56px 64px;
    background: #FFFFFF;
    border-radius: 28px;
    box-shadow: 0 24px 60px rgba(167, 29, 23, 0.14);
    box-sizing: border-box;
    transition: transform .55s cubic-bezier(.4, 0, .2, 1), opacity .55s ease;
    will-change: transform;
}
/* état initial : carte 1 devant, carte 2 derrière (décalée + réduite) */
.assoc-intro__card:nth-child(1) { z-index: 2; transform: none; opacity: 1; }
.assoc-intro__card:nth-child(2) { z-index: 1; transform: translateY(48px) scale(0.94); opacity: .9; }
/* après scroll : la carte de derrière passe devant */
.assoc-intro__stack.is-swapped .assoc-intro__card:nth-child(1) { z-index: 1; transform: translateY(48px) scale(0.94); opacity: .9; }
.assoc-intro__stack.is-swapped .assoc-intro__card:nth-child(2) { z-index: 2; transform: none; opacity: 1; }
.assoc-intro__title {
    font-size: clamp(20px, 2.4vw, 28px);
    font-weight: 700;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 20px;
}
.assoc-intro__text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0;
}

/* --- Notre organigramme : titre + liens à gauche, photo à droite --- */
.assoc-organi {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px 112px;
    box-sizing: border-box;
}
.assoc-organi .assoc-organi__grid,
.assoc-organi .assoc-organi__grid > .block-editor-block-list__layout {
    display: grid !important;
    grid-template-columns: 1fr 560px;
    gap: 56px;
    align-items: center;
}
.assoc-organi__title {
    font-size: clamp(26px, 4vw, 48px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 32px;
}
.assoc-organi__links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.assoc-organi__links li {
    margin: 0;
}
.assoc-organi__links a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    font-weight: 600;
    color: var(--wp--preset--color--cibc-rouge-primary, #D51A21);
    text-decoration: none;
    transition: color .2s ease;
}
.assoc-organi__links a::before {
    content: "→";
    font-weight: 700;
}
.assoc-organi__links a:hover {
    color: #A71D17;
    text-decoration: underline;
}
/* l'image est dans un <figure> (bloc Image WordPress) : on neutralise ses
   marges. PAS d'overflow:hidden ici (sinon il rogne la bordure de l'image). */
.assoc-organi__media figure,
.assoc-organi__media .wp-block-image {
    width: 100%;
    margin: 0;
    line-height: 0;
}
/* Bordure + arrondi directement sur l'image : même élément → bordure et coins
   arrondis coïncident parfaitement, aucun écart au coin. */
.assoc-organi__media img {
    width: 100%;
    height: 100%; /* Force à prendre toute la hauteur */
    object-fit: cover; /* Force l'image à remplir l'espace sans se déformer */
    display: block;
    border: 2px solid #A71D17;
    border-radius: 20px;
}

/* --- Blog / Nos actualités : 3 cartes --- */
.assoc-blog {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px 112px 96px;
    box-sizing: border-box;
}
.assoc-blog__title {
    font-size: clamp(26px, 4vw, 48px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 40px;
}
.assoc-blog .assoc-blog__grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}
.assoc-blog__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}
/* vignette carrée arrondie (cf. maquette) */
.assoc-blog__thumb {
    width: 100%;
    margin: 0;
}
.assoc-blog__thumb img,
.assoc-blog__thumb a {
    display: block;
    width: 100%;
}
.assoc-blog__thumb img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 28px;
}
/* badge catégorie en pilule */
.assoc-blog__cat {
    margin: 0;
    font-size: 0;            /* neutralise l'espace entre liens multiples */
}
.assoc-blog__cat a {
    display: inline-block;
    padding: 8px 18px;
    border-radius: 999px;
    background: #E6D6F2;     /* lilas doux par défaut */
    color: #323232;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    line-height: 1.2;
}
.assoc-blog__cat a:hover {
    background: #D9C2EE;
}
.assoc-blog__card-title {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
}
.assoc-blog__card-title a {
    color: var(--wp--preset--color--texte-principal, #333);
    text-decoration: none;
}
.assoc-blog__card-title a:hover {
    text-decoration: underline;
}

/* --- Responsive « Notre association » --- */
@media (max-width: 1024px) {
    .assoc-organi,
    .assoc-blog {
        padding-left: 48px;
        padding-right: 48px;
    }
    .assoc-organi .assoc-organi__grid {
        grid-template-columns: 1fr 320px;
        gap: 40px;
    }
}
@media (max-width: 768px) {
    .assoc-intro {
        padding: 56px 16px;
    }
    /* mobile : carrousel à swipe horizontal (scroll-snap natif, gauche/droite) */
    .assoc-intro__stack {
        display: flex;
        flex-direction: row;
        gap: 16px;
        height: auto !important;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scroll-padding: 0 16px;
        /* on masque la barre de défilement (le swipe suffit) */
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .assoc-intro__stack::-webkit-scrollbar {
        display: none;
    }
    .assoc-intro__card {
        position: static;
        flex: 0 0 86%;            /* < 100% → la carte suivante dépasse = indice « swipe » */
        scroll-snap-align: center;
        transform: none !important;
        opacity: 1 !important;
        padding: 32px 24px;
        gap: 16px;
    }
    .assoc-organi,
    .assoc-blog {
        padding: 56px 24px;
    }
    .assoc-organi .assoc-organi__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .assoc-organi__media {
        max-width: 360px;
    }
    .assoc-blog .assoc-blog__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

/* =========================================================================
   PAGE « APPUI RH » (Entreprises / Collectivités)
   ========================================================================= */
.page-appui-rh {
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* ── Bandeau défilant standard (cities) teinté violet ── */
body.page-appui-rh .cities {
    background: rgba(106, 26, 22, 0.22) !important;
}

/* ── Carte « Nos offres Appui RH » (recrutement) ── */
.rh-emploi {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.rh-emploi__card {
    display: flex;
    align-items: stretch;       /* la photo s'étire à la hauteur de la carte */
    gap: 40px;
    min-height: 650px;          /* hauteur mini ; grandit si le contenu est plus long */
    padding: 64px;
    box-sizing: border-box;
    border: 3px solid transparent;
    border-radius: 40px;
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(180deg, #CFB3D5 0%, #975BA4 100%) border-box;
}
.rh-emploi__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 20px;
    min-width: 0;
}
/* on neutralise les marges par défaut des blocs ajoutés dans l'éditeur :
   l'écart entre paragraphes/liste/signature est alors piloté par le gap ci-dessus */
.rh-emploi__content > * {
    margin-top: 0;
    margin-bottom: 0;
}
/* lisibilité : interligne aéré sur le texte et la liste */
.rh-emploi__content p,
.rh-emploi__content li {
    line-height: 1.65;
}
.rh-emploi__content ul {
    margin: 0;
    padding-left: 1.25em;
}
.rh-emploi__content li + li {
    margin-top: 8px;
}
/* un peu d'air avant la signature (dernier paragraphe en italique) */
.rh-emploi__content > p:last-child {
    margin-top: 8px;
}
.rh-emploi__title {
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0;
}
.rh-emploi__text {
    font-size: 18px;
    line-height: 1.5;
    color: #555;
    margin: 0;
    max-width: 420px;
}
.rh-emploi__btn .wp-block-button__link {
    background: var(--wp--preset--color--cibc-rouge-accent, #A71D17);
    color: #fff;
    padding: 16px 20px;
    border-radius: 32px;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: var(--wp--preset--font-size--button, 16px);
    font-weight: 600;
    text-decoration: none;
}
.rh-emploi__media {
    flex: 0 0 498px;
    width: 498px;
    align-self: stretch;        /* épouse la hauteur de la carte (plus de carré figé) */
    border-radius: 28px;
    overflow: hidden;
    background: #F4F4F6;
}
.rh-emploi__media:empty {
    background-color: #F4F4F6;
    background-image:
        linear-gradient(to top right, transparent calc(50% - 1px), #c9c9cf calc(50% - 1px), #c9c9cf calc(50% + 1px), transparent calc(50% + 1px)),
        linear-gradient(to bottom right, transparent calc(50% - 1px), #c9c9cf calc(50% - 1px), #c9c9cf calc(50% + 1px), transparent calc(50% + 1px));
}
.rh-emploi__media .wp-block-image,
.rh-emploi__media figure { height: 100%; margin: 0; }
.rh-emploi__media img { width: 100%; height: 100%; object-fit: cover; }

/* ── Section « Nos offres Appui RH » (bento de prestations RH) ── */
.rh-offres {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.rh-offres__title {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 24px;
}
.rh-offres__desc {
    font-size: 18px;
    line-height: 1.6;
    color: #555;
    margin: 0 0 16px;
    max-width: 860px;
}
.rh-offres__desc:last-of-type { margin-bottom: 40px; }
/* Grille à 3 colonnes : les lignes tombent sur 678 (rangée haut) ET 596 (rangée bas)
   → haut = 678/509, bas = 596/596, le tout dans 1216px. */
.rh-offres__grid {
    display: grid;
    grid-template-columns: 596fr 58fr 514fr;
    gap: 24px;
}
.rh-offres__card {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 40px 64px;
    border-radius: 24px;
    box-sizing: border-box;
    min-width: 0;
    min-height: 200px;
    color: #fff;
}
.rh-offres__card--a { grid-area: 1 / 1 / 2 / 3; }   /* haut gauche  = 678 */
.rh-offres__card--b { grid-area: 1 / 3 / 2 / 4; }   /* haut droite  = 509 */
.rh-offres__card--c { grid-area: 2 / 1 / 3 / -1; min-height: 160px; }  /* pleine largeur */
.rh-offres__card--d { grid-area: 3 / 1 / 4 / 2; }   /* bas gauche   = 596 */
.rh-offres__card--e { grid-area: 3 / 2 / 4 / 4; }   /* bas droite   = 596 */
/* dégradés violets (foncés = texte blanc / clairs = texte sombre) */
.rh-offres__card--a { background: linear-gradient(346deg, #F5EFF6 -58%, #975BA4 54%); }
.rh-offres__card--e { background: linear-gradient(306deg, #F5EFF6 -57%, #AA78B5 100%); }
.rh-offres__card--c { background: linear-gradient(354deg, #F5EFF6 -62%, #7C4A87 72%); }
.rh-offres__card--b {
    background: linear-gradient(160deg, #F5EFF6 100%, #FFFFFF 0%);
    color: var(--wp--preset--color--texte-principal, #333);
}
.rh-offres__card--d {
    background: linear-gradient(300deg, #F5EFF6 -24%, #CFB3D5 100%);
    color: var(--wp--preset--color--texte-principal, #333);
}
.rh-offres__tag {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.85;
    margin: 0;
}
.rh-offres__card-title {
    font-size: 32px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.2;
    margin: auto 0 0;   /* centré verticalement entre l'étiquette et le bouton */
}
.rh-offres__buttons {
    margin-top: auto;
    align-self: flex-end;   /* bouton en bas à droite */
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.rh-offres__btn .wp-block-button__link {
    background: #fff;
    color: var(--wp--preset--color--button-text-primary, #323232);
    padding: 16px 20px;
    border-radius: 32px;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: var(--wp--preset--font-size--button, 16px);
    font-weight: 600;
    text-decoration: none;
}

/* ── Composant « Nos consultantes » dédié à la page Appui RH ──
   Section autonome (3 cartes statiques), indépendante du composant partagé
   `consultantes` : ni carrousel, ni flèches, ni segmentation par département. */
.rh-consultantes {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.rh-consultantes__title {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 40px;
}
.rh-consultantes__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}
.rh-consultantes__card {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 24px;
    border: 1px solid var(--wp--preset--color--cibc-rouge-secondary, #F6C3C0);
    border-radius: 24px;
    background: #fff;
}
.rh-consultantes__photo {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 16px;
    overflow: hidden;
    background: #F4F4F6;
}
.rh-consultantes__photo:empty {
    background-color: #F4F4F6;
    background-image:
        linear-gradient(to top right, transparent calc(50% - 1px), #c9c9cf calc(50% - 1px), #c9c9cf calc(50% + 1px), transparent calc(50% + 1px)),
        linear-gradient(to bottom right, transparent calc(50% - 1px), #c9c9cf calc(50% - 1px), #c9c9cf calc(50% + 1px), transparent calc(50% + 1px));
}
.rh-consultantes__photo .wp-block-image,
.rh-consultantes__photo figure { height: 100%; margin: 0; }
.rh-consultantes__photo img { width: 100%; height: 100%; object-fit: cover; }
.rh-consultantes__name {
    font-size: 20px;
    font-weight: 700;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0;
}
.rh-consultantes__desc {
    font-size: 15px;
    line-height: 1.5;
    color: #555;
    margin: 0;
}

/* ── Section « Nos articles sur le sujet » ── */
.rh-articles {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.rh-articles__title {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 40px;
}

@media (max-width: 768px) {
    .rh-emploi__card { flex-direction: column; gap: 32px; height: auto; padding: 32px 24px; }
    .rh-emploi__media { flex: none; width: 100%; height: auto; aspect-ratio: 1 / 1; }
    .rh-offres__grid { grid-template-columns: 1fr; }
    .rh-offres__card--a,
    .rh-offres__card--b,
    .rh-offres__card--c,
    .rh-offres__card--d,
    .rh-offres__card--e { grid-area: auto; }
    .rh-offres__card { padding: 32px 28px; }
    .rh-consultantes__grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   PAGE « CONSEIL EN ÉVOLUTION PRO » (CEP)
   ========================================================================= */
.page-cep {
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

.page-cep .cities {
    background: var(--wp--preset--color--accompagnement-secondary) !important;
}
/* ── Carte « Un appui pour tous vos projets » (modèle à onglets « dossier ») ── */
.cep-appui {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
    position: relative;
    padding-top: 34px;           /* place pour les onglets qui dépassent */
}
/* onglets décoratifs (non cliquables) en haut à gauche */
.cep-appui__tabs {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    gap: 4px;
    z-index: 1;
}
.cep-appui__tab {
    width: 92px;
    height: 68px;
    border-radius: 14px 14px 0 0;
    flex: 0 0 auto;
}
.cep-appui__tab--1 { background: #C9A9DE; }
.cep-appui__tab--2 { background: #A678C2; }
.cep-appui__tab--3 { background: #E0CCEF; }
.cep-appui__card {
    position: relative;
    z-index: 2;
    border: 2.5px solid transparent;
    border-radius: 28px;
    border-top-left-radius: 0;
    background:
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(135deg, #CFB3D5 0%, #8552A8 100%) border-box;
    padding: 48px 56px;
}
.cep-appui__title {
    font-size: 32px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 28px;
}
.cep-appui__intro {
    font-size: var(--text-18, 18px);
    line-height: 1.6;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 20px;
}
.cep-appui__list {
    margin: 0 0 28px;
    padding-left: 22px;
}
.cep-appui__list li {
    font-size: var(--text-18, 18px);
    line-height: 1.5;
    color: var(--wp--preset--color--texte-principal, #333);
    margin-bottom: 12px;
}
.cep-appui__list li:last-child { margin-bottom: 0; }
.cep-appui__note {
    font-size: 16px;
    line-height: 1.6;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0;
}
/* bouton « Télécharger la plaquette » centré sous la carte */
.cep-appui__buttons {
    display: flex;
    justify-content: center;
    margin-top: 48px;
}
.cep-appui__btn .wp-block-button__link {
    background: var(--wp--preset--color--cibc-rouge-accent, #A71D17);
    color: #fff;
    padding: 16px 20px;
    border-radius: 32px;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: var(--wp--preset--font-size--button, 16px);
    font-weight: 600;
    text-decoration: none;
}

/* ── « Prendre rendez-vous » : 3 étapes numérotées ── */
.cep-rdv {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
   
}
.cep-rdv__title {
    font-size: clamp(24px, 4vw, 48px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 16px;
}
/* sous-titre (paragraphe d'intro) : même style que les descriptions de section */
.cep-rdv > p {
    font-size: 18px;
    line-height: 1.6;
    color: #555;
    margin: 0 0 48px;
    max-width: 860px;
}
/* bento : étape 1 en pleine largeur, étapes 2 & 3 côte à côte en dessous */
.cep-rdv__steps {
    display: grid;
    grid-template-columns: 635fr 540fr;   /* rangée du bas : 635 / 540 */
    gap: 24px;
}
.cep-rdv__step {
    display: flex;
    flex-direction: column;
    gap: 20px;
    border-radius: 20px;
    color: #323232;
    padding : 40px 64px;
}
/* Étape 1 : pleine largeur (1216×226), n° à gauche + texte centré */
.cep-rdv__step--1 {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    gap:160px;
    min-height: 226px;
    background: linear-gradient(-11deg, #F5EFF6 -34%, #CFB3D5 100%);
}
.cep-rdv__step--1 .cep-rdv__text { flex: 1; text-align: left; }
/* Étapes 2 & 3 : 635/540 × 368, n° en haut à gauche, texte centré */
.cep-rdv__step--2,
.cep-rdv__step--3 { min-height: 368px; }
.cep-rdv__step--2 .cep-rdv__num,
.cep-rdv__step--3 .cep-rdv__num { align-self: flex-start; }
.cep-rdv__step--2 .cep-rdv__text,
.cep-rdv__step--3 .cep-rdv__text { margin: auto 0; }
.cep-rdv__step--2 { background: linear-gradient(135deg, #A71D17 -23%, #FFFFFF 130%); }
.cep-rdv__step--3 { background: linear-gradient(301deg, #F5EFF6 -38%, #7C4A87 136%); }
.cep-rdv__num { font-size: 64px; font-weight: 700; line-height: 1; margin: 0; }
.cep-rdv__text { font-size: 26px; line-height: 1.5; margin: 0; text-transform: uppercase; font-weight: 600; }
/* liens dans les étapes : même couleur que le texte (blanc), juste soulignés */
.cep-rdv__text a { color: inherit; text-decoration: underline; }
.cep-rdv__buttons { display: flex; justify-content: center; margin-top: 40px; }
.cep-rdv__btn .wp-block-button__link {
    background: var(--wp--preset--color--cibc-rouge-accent, #A71D17);
    color: #fff;
    padding: 16px 20px;
    border-radius: 32px;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-size: var(--wp--preset--font-size--button, 16px);
    font-weight: 600;
    text-decoration: none;
}

/* ── « Nos consultantes » CEP : 4 cartes ── */
.cep-consultantes {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.cep-consultantes__title {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 40px;
}
.cep-consultantes__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.cep-consultantes__card {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px;
    border: 1px solid #CFB3D5;
    border-radius: 24px;
    background: #fff;
}
.cep-consultantes__photo {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 16px;
    overflow: hidden;
    background: #E2D1E6;
}
.cep-consultantes__photo:empty {
    background-color: #E2D1E6;
    background-image:
        linear-gradient(to top right, transparent calc(50% - 1px), #c9c9cf calc(50% - 1px), #c9c9cf calc(50% + 1px), transparent calc(50% + 1px)),
        linear-gradient(to bottom right, transparent calc(50% - 1px), #c9c9cf calc(50% - 1px), #c9c9cf calc(50% + 1px), transparent calc(50% + 1px));
}
.cep-consultantes__photo .wp-block-image,
.cep-consultantes__photo figure { height: 100%; margin: 0; }
.cep-consultantes__photo img { width: 100%; height: 100%; object-fit: cover; }
.cep-consultantes__name { font-size: 18px; font-weight: 700; color: #7C4A87; margin: 0; }
.cep-consultantes__desc { font-size: 14px; line-height: 1.5; color: #555; margin: 0; }

@media (max-width: 1024px) {
    .cep-consultantes__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .cep-appui { padding-top: 28px; }
    .cep-appui__card { padding: 32px 24px; }
    .cep-rdv__steps { grid-template-columns: 1fr; }
    .cep-rdv__step { padding: 32px 28px; gap: 16px; }
    .cep-rdv__step--1 { flex-direction: column; align-items: flex-start; gap: 16px; min-height: 0; }
    .cep-rdv__step--1 .cep-rdv__text { text-align: left; }
    .cep-rdv__step--2,
    .cep-rdv__step--3 { min-height: 0; }
    .cep-rdv__step--2 .cep-rdv__text,
    .cep-rdv__step--3 .cep-rdv__text { margin: 0; }
    .cep-rdv__num { font-size: 48px; }
    .cep-rdv__text { font-size: 20px; }
    .cep-consultantes__grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   PAGE « FORMATION TUTEUR / MAÎTRE D'APPRENTISSAGE » (famille Inclusion)
   ========================================================================= */
.page-tuteur {
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* Hero : bouton « Je me lance » — inclusion-accent #BE4DFA à 85% + texte foncé (cf. maquette) */
.page-tuteur .panorama-hero__btn .wp-block-button__link {
    background: rgba(190, 77, 250, 0.85) !important;
    color: #323232;
    text-decoration: none;
}

/* Bande de villes : inclusion-secondary #A270FB à 25% */
.page-tuteur .cities {
    background: rgba(162, 112, 251, 0.25) !important;
}

/* Carte à onglets « Valorisez votre rôle de tuteur » (réutilise cep-appui) :
   onglets décoratifs aux couleurs Inclusion + bordure bleue fixe */
.page-tuteur .cep-appui__tab--1 { background: var(--wp--preset--color--inclusion-primary, #345E9D); }
.page-tuteur .cep-appui__tab--2 { background: var(--wp--preset--color--inclusion-secondary, #A270FB); }
.page-tuteur .cep-appui__tab--3 { background: var(--wp--preset--color--inclusion-accent, #BE4DFA); }
.page-tuteur .cep-appui__card { border-color: var(--wp--preset--color--inclusion-primary, #345E9D); }
.page-tuteur .cep-appui__btn .wp-block-button__link { background: var(--wp--preset--color--inclusion-accent, #BE4DFA); }

/* ── Section « Votre intervenante » : carte profil + 3 stats 100 % ── */
.tuteur-interv {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.tuteur-interv__title {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 16px;
}
.tuteur-interv__intro { font-size: 18px; line-height: 1.6; color: #555; margin: 0 0 40px; }
.tuteur-interv__grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 24px;
}
.tuteur-interv__grid > .block-editor-block-list__layout {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 24px;
}
.tuteur-interv__profile {
    grid-column: 1;
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 24px;
    border-radius: 24px;
    background: #fff;
    border: 2px solid var(--wp--preset--color--inclusion-primary, #345E9D);
}
.tuteur-interv__photo {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 16px;
    overflow: hidden;
    background: var(--wp--preset--color--inclusion-secondary, #A270FB);
}
.tuteur-interv__photo .wp-block-image,
.tuteur-interv__photo figure { height: 100%; margin: 0; }
.tuteur-interv__photo img { width: 100%; height: 100%; object-fit: cover; }
.tuteur-interv__name { font-size: 18px; font-weight: 700; color: var(--wp--preset--color--texte-principal, #333); margin: 0; }
.tuteur-interv__role { font-size: 14px; line-height: 1.5; color: #555; margin: 0; }
.tuteur-interv__stat {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 40px 48px;
    border-radius: 24px;
    background: #fff;
    border: 2px solid var(--wp--preset--color--inclusion-primary, #345E9D);
}
.tuteur-interv__stat--1 { grid-column: 2; grid-row: 1; }
.tuteur-interv__stat--2 { grid-column: 3; grid-row: 1; }
/* carte large : chiffre à gauche + label à droite (cf. maquette) */
.tuteur-interv__stat--3 {
    grid-column: 2 / 4;
    grid-row: 2;
    flex-direction: row;
    align-items: center;
    gap: 32px;
}
.tuteur-interv__num { font-size: 80px; font-weight: 700; line-height: 1; color: #1A1A1A; margin: 0; }
.tuteur-interv__label { font-size: 20px; font-weight: 600; color: var(--wp--preset--color--texte-principal, #333); margin: 0; }
.tuteur-interv__buttons { display: flex; justify-content: center; margin-top: 40px; }
.tuteur-interv__btn .wp-block-button__link {
    background: var(--wp--preset--color--inclusion-accent, #BE4DFA);
    color: #000000;
    padding: 16px 24px;
    border-radius: 32px;
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
    font-weight: 600;
    text-decoration: none;
}

@media (max-width: 1024px) {
    .tuteur-interv__grid,
    .tuteur-interv__grid > .block-editor-block-list__layout { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
    .tuteur-interv__profile,
    .tuteur-interv__stat--1,
    .tuteur-interv__stat--2,
    .tuteur-interv__stat--3 { grid-column: auto; grid-row: auto; }
    .tuteur-interv__stat--3 { flex-direction: column; align-items: flex-start; gap: 8px; }
    .tuteur-interv__num { font-size: 64px; }
    .tuteur-interv__stat { padding: 32px; }
}
@media (max-width: 768px) {
    .tuteur-interv__grid,
    .tuteur-interv__grid > .block-editor-block-list__layout { grid-template-columns: 1fr; }
    .tuteur-interv__num { font-size: 56px; }
}

/* =========================================================================
   PAGE « MANAGEMENT OPÉRATIONNEL » (enfant d'Appui RH — famille Appui RH)
   ========================================================================= */
.page-management {
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* Fond de page : même dégradé que CEP/Conseil VAE, en violet #975BA4 (85%) */
body.page-management .wp-site-blocks {
    background-image: var(--grain), linear-gradient(to bottom,
        #FFFFFF 0%,
        #FFFFFF 48%,
        rgba(151, 91, 164, 0.20) 52%,
        rgba(151, 91, 164, 0.55) 66%,
        rgba(151, 91, 164, 0.85) 72%,
        rgba(151, 91, 164, 0.25) 84%,
        #FFFFFF 88%,
        #FFFFFF 100%);
    background-color: #FFFFFF;
    background-repeat: repeat, no-repeat;
    background-position: 0 0, 0 0;
    background-size: 120px 120px, 100% 100%;
    background-blend-mode: soft-light, normal;
}

/* Hero : bouton « Je me lance » — corail Appui RH + texte foncé */
.page-management .panorama-hero__btn .wp-block-button__link {
    background: var(--wp--preset--color--appuirh-accent, #EB766F) !important;
    color: #323232;
    text-decoration: none;
}

/* Bande de villes : appuirh-secondary #6A1A16 à 50% */
.page-management .cities {
    background: rgba(106, 26, 22, 0.5) !important;
}

/* ── Section « Notre boîte à outils managériale » : bento 4 cartes ── */
.mgmt-outils {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.mgmt-outils__title {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 16px;
}
.mgmt-outils__intro { font-size: 18px; line-height: 1.6; color: #555; margin: 0 0 40px; max-width: 760px; }
.mgmt-outils__grid,
.mgmt-outils__grid > .block-editor-block-list__layout {
    display: grid;
    grid-template-columns: 455px 232px 455px; /* lignes à 455 et 721 ; col milieu = 721-455-34 */
    grid-template-rows: 224px 224px;
    gap: 34px;
}
.mgmt-outils__card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 40px 32px;
    border-radius: 24px;
    background: var(--wp--preset--color--accompagnement-secondary, #E2D1E6);
}
/* bento : haut = 455/721, bas = 721/455 (inversé) */
.mgmt-outils__card--1 { grid-column: 1;     grid-row: 1; } /* Tests 455 */
.mgmt-outils__card--2 { grid-column: 2 / 4; grid-row: 1; } /* Analyse 721 */
.mgmt-outils__card--3 { grid-column: 1 / 3; grid-row: 2; } /* Pédagogie 721 */
.mgmt-outils__card--4 { grid-column: 3;     grid-row: 2; } /* Livrables 455 */
/* dégradés par carte */
.mgmt-outils__card--1 { background: linear-gradient(304deg, #F5EFF6 -55%, #975BA4 72%); }
.mgmt-outils__card--2 { background: linear-gradient(315deg, #F5EFF6 -2%, #CFB3D5 100%); }
.mgmt-outils__card--3 { background: linear-gradient(135deg, #F5EFF6 100%, #FFFFFF 0%); }
.mgmt-outils__card--4 { background: linear-gradient(302deg, #F5EFF6 -88%, #AA78B5 100%); }
/* texte blanc sur les cartes foncées */
.mgmt-outils__card--1 .mgmt-outils__card-title,
.mgmt-outils__card--1 .mgmt-outils__card-desc,
.mgmt-outils__card--4 .mgmt-outils__card-title,
.mgmt-outils__card--4 .mgmt-outils__card-desc { color: #FFFFFF; }
.mgmt-outils__card-title { font-size: 26px; font-weight: 700; text-transform: uppercase; color: var(--wp--preset--color--texte-principal, #333); margin: 0; }
.mgmt-outils__card-desc { font-size: 18px; line-height: 1.6; color: #555; margin: 0; }

@media (max-width: 1024px) {
    .mgmt-outils__grid,
    .mgmt-outils__grid > .block-editor-block-list__layout { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
    .mgmt-outils__card--1,
    .mgmt-outils__card--2,
    .mgmt-outils__card--3,
    .mgmt-outils__card--4 { grid-column: auto; grid-row: auto; }
    .mgmt-outils__card { min-height: 260px; }
}
@media (max-width: 768px) {
    .mgmt-outils__grid,
    .mgmt-outils__grid > .block-editor-block-list__layout { grid-template-columns: 1fr; }
}

/* =========================================================================
   PAGE « NOUS CONTACTER » (/contact/)
   ========================================================================= */
.page-contact {
    font-family: var(--wp--preset--font-family--cabin, 'Cabin', sans-serif);
}

/* ── En-tête : coordonnées à gauche + formulaire à droite ── */
.contact-hero {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.contact-hero__grid,
.contact-hero__grid > .block-editor-block-list__layout {
    display: grid;
    grid-template-columns: 1fr 556px;
    gap: 64px;
    align-items: center;
}
.contact-hero__title {
    font-size: clamp(40px, 6vw, 88px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.05;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 32px;
}
.contact-hero__mail,
.contact-hero__tel {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 24px;
    line-height: 1.5;
    margin: 0 0 16px;
    color: var(--wp--preset--color--texte-principal, #333);
}
/* Mail cliquable partout ; téléphone cliquable seulement en responsive */
.contact-hero__mail { cursor: pointer; }
@media (max-width: 768px) {
    .contact-hero__tel { cursor: pointer; }
}
/* Pastille ronde rouge + icône devant mail / téléphone */
.contact-hero__mail::before,
.contact-hero__tel::before {
    content: "";
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background-color: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
}
/* Icône Lucide « mail » */
.contact-hero__mail::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
}
/* Icône Lucide « phone » */
.contact-hero__tel::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}
/* Réseaux sociaux : liens texte transformés en icônes */
.contact-hero__social { display: flex; justify-content: flex-end; gap: 16px; margin-top: 56px; }
.contact-hero__social p { margin: 0; }
.contact-hero__social a {
    display: inline-block;
    width: 40px;
    height: 40px;
    font-size: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.contact-hero__social p:nth-child(1) a {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23323232'%3E%3Cpath d='M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14zM8.34 18.34V9.66H5.66v8.68h2.68zM7 8.5a1.55 1.55 0 1 0 0-3.1 1.55 1.55 0 0 0 0 3.1zm11.34 9.84v-4.76c0-2.55-1.36-3.74-3.18-3.74-1.47 0-2.12.81-2.49 1.38v-1.18H9.99c.04.76 0 8.68 0 8.68h2.68v-4.85c0-.24.02-.48.09-.65.19-.48.63-.98 1.37-.98.97 0 1.36.74 1.36 1.82v4.66h2.85z'/%3E%3C/svg%3E");
}
.contact-hero__social p:nth-child(2) a {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23323232'%3E%3Cpath d='M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.5 1.49-3.89 3.78-3.89 1.09 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.78l-.44 2.89h-2.34v6.99A10 10 0 0 0 22 12z'/%3E%3C/svg%3E");
}
.contact-hero__form {
    background: var(--wp--preset--color--cibc-rouge-secondary, #F6C3C0);
    border-radius: 24px;
    padding: 40px;
    min-height: 360px;
}
/* Remonte la colonne de droite (formulaire) plus haut que le titre */
.contact-hero__grid > .contact-hero__form,
.contact-hero__grid > .wpcf7 {
    align-self: start;
    margin-top: -56px;
}
/* Champs Contact Form 7 dans la zone corail */
.contact-hero__form .wpcf7-form p { margin: 0 0 16px; }
.contact-hero__form .contact-form__row { display: flex; gap: 16px; }
.contact-hero__form .contact-form__row .contact-form__field { flex: 1; margin: 0 0 16px; }
.contact-hero__form input[type="text"],
.contact-hero__form input[type="email"],
.contact-hero__form input[type="tel"],
.contact-hero__form select,
.contact-hero__form textarea {
    width: 100%;
    box-sizing: border-box;
    border: none;
    border-radius: 30px;
    padding: 16px 22px;
    font-family: inherit;
    font-size: 15px;
    background: #fff;
    color: #333;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}
.contact-hero__form input::placeholder,
.contact-hero__form textarea::placeholder { color: #9a9a9a; }
.contact-hero__form select { appearance: auto; cursor: pointer; }
.contact-hero__form textarea { min-height: 150px; border-radius: 22px; resize: vertical; }
.contact-hero__form .contact-form__consent { font-size: 13px; line-height: 1.4; color: #5A1A16; }
.contact-hero__form .contact-form__consent .wpcf7-list-item { margin: 0; display: flex; gap: 8px; align-items: flex-start; }
.contact-hero__form .contact-form__rdv { margin: 0 0 16px; }
.contact-hero__form .contact-form__rdv-label { display: block; font-size: 14px; font-weight: 600; color: #5A1A16; margin-bottom: 8px; }
.contact-hero__form .wpcf7-radio { display: flex; gap: 24px; flex-wrap: wrap; }
.contact-hero__form .wpcf7-radio .wpcf7-list-item { margin: 0; display: flex; gap: 8px; align-items: center; }
.contact-hero__form .wpcf7-radio .wpcf7-list-item-label { font-size: 15px; color: #333; }
.contact-hero__form input[type="radio"],
.contact-hero__form input[type="checkbox"] { accent-color: var(--wp--preset--color--cibc-rouge-accent, #A21C16); width: 18px; height: 18px; flex: 0 0 auto; }
.contact-hero__form .contact-form__submit { text-align: right; margin-bottom: 0; }
.contact-hero__form .wpcf7-submit {
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    color: #fff;
    border: none;
    padding: 12px 28px;
    border-radius: 24px;
    font-family: inherit;
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
}
.contact-hero__form .wpcf7-submit:hover { filter: brightness(1.08); }

/* ── « Nos contacts importants » : 3 cartes bordées ── */
.contact-team {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.contact-team__title {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 40px;
}
.contact-team__grid,
.contact-team__grid > .block-editor-block-list__layout {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.contact-team__card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 32px;
    border: 2px solid #DDD;
    border-radius: 24px;
    background: #fff;
}
.contact-team__card--1 { border-color: var(--wp--preset--color--appuirh-primary, #975BA4); }
.contact-team__card--2 { border-color: var(--wp--preset--color--vae-primary, #94B875); }
.contact-team__card--3 { border-color: var(--wp--preset--color--inclusion-primary, #345E9D); }
.contact-team__role { font-size: 18px; font-weight: 700; color: var(--wp--preset--color--texte-principal, #333); margin: 0; }
.contact-team__name { font-size: 16px; line-height: 1.5; color: #555; margin: 0; }
.contact-team__buttons { margin-top: auto; display: flex; justify-content: flex-end; }
.contact-team__btn .wp-block-button__link {
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    color: #fff;
    padding: 10px 16px;
    border-radius: 24px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
/* Bouton de chaque carte = couleur de sa bordure */
.contact-team__card--1 .contact-team__btn .wp-block-button__link {
    background: var(--wp--preset--color--appuirh-primary, #975BA4);
}
.contact-team__card--2 .contact-team__btn .wp-block-button__link {
    background: var(--wp--preset--color--vae-primary, #94B875);
}
.contact-team__card--3 .contact-team__btn .wp-block-button__link {
    background: var(--wp--preset--color--inclusion-primary, #345E9D);
}

/* ── « Traitement de données » ── */
.contact-rgpd {
    width: min(1216px, calc(100% - 96px));
    margin: 96px auto;
}
.contact-rgpd__title {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--wp--preset--color--texte-principal, #333);
    margin: 0 0 24px;
}
.contact-rgpd__intro { font-size: 18px; line-height: 1.6; color: #555; margin: 0 0 16px; max-width: 860px; }
.contact-rgpd__list { margin: 0 0 32px; padding-left: 1.25em; display: flex; flex-direction: column; gap: 12px; max-width: 860px; }
.contact-rgpd__list li { font-size: 16px; line-height: 1.6; color: #555; }
.contact-rgpd__buttons { display: flex; justify-content: flex-end; }
.contact-rgpd__btn .wp-block-button__link {
    background: var(--wp--preset--color--cibc-rouge-accent, #A21C16);
    color: #fff;
    padding: 14px 20px;
    border-radius: 28px;
    font-weight: 600;
    text-decoration: none;
}

@media (max-width: 1024px) {
    .contact-team__grid,
    .contact-team__grid > .block-editor-block-list__layout { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .contact-hero__grid,
    .contact-hero__grid > .block-editor-block-list__layout { grid-template-columns: 1fr; gap: 40px; }
}
