/* 
 * DOCUMENTATION JP — CSS RÉORGANISÉ
 * ----------------------------------------------------------
 * Fichier : assets/css/jp-page-blocs.css
 * Rôle : Blocs génériques de page.
 *
 * Lecture conseillée :
 * 1. fondations et structure du composant ;
 * 2. éléments internes et états ;
 * 3. adaptations responsive et compatibilité.
 *
 * IMPORTANT : l'ordre de cascade est volontairement préservé lorsqu'un déplacement
 * pourrait modifier le rendu. Les doublons retirés sont uniquement ceux dont une
 * déclaration strictement identique existe plus loin dans le même contexte CSS.
  */

/* * FICHIER CSS RÉORGANISÉ
 * Fichier : assets/css/jp-page-blocs.css
 * Rôle : Styles du composant ou du module indiqué par le nom du fichier.
 *
 * Organisation :
 * 1. Styles de base du module
 * 2. États et interactions
 * 3. Adaptations responsives, dans l’ordre du fichier d’origine
 *
 * Maintenance : l’ordre des règles est conservé afin de respecter la cascade CSS.
 * Les doublons strictement identiques dans un même bloc ont été supprimés. */

/* *
 * jp-page-blocs.css
 * Rôle : Blocs des pages de contenu.
 *
 * Organisation du fichier :
 * 1. Variables et fondations éventuelles
 * 2. Structure principale du composant
 * 3. États, variantes et interactions
 * 4. Adaptations responsives
 *
 * Les doublons strictement identiques ont été supprimés. Les surcharges
 * volontaires et les fallbacks compatibles ont été conservés pour ne pas
 * modifier le rendu ou le comportement existant. */

/* ==========================================================
   JP PAGE BLOCS — Blocs communs formations / contenus
   Une propriété CSS par ligne et sections commentées
   ========================================================== */

/* ==========================================================
   STRUCTURE COMMUNE DES SECTIONS
   ========================================================== */

.jp-section {
        padding: 70px 0;
}

/*  CIBLE — Composant : .jp-section > .jp-title, .jp-section .jp-title  */

.jp-section > .jp-title, .jp-section .jp-title {
        width: min(1200px, 92%);
        margin: 0 auto 34px;
}

/* ==========================================================
   ZONE DE TEXTE LIBRE
   ========================================================== */

.jp-texte-libre {
        padding: 70px 0;
}

/*  CIBLE — Composant : .jp-texte-libre-inner  */

.jp-texte-libre-inner {
        width: min(1200px, 92%);
        margin: 0 auto;
        display: flex;
        gap: 50px;
        align-items: center;
}

/*  CIBLE — Composant : .jp-texte-libre-image, .jp-texte-libre-content  */

.jp-texte-libre-image, .jp-texte-libre-content {
        flex: 1;
        min-width: 0;
}

/*  CIBLE — Composant : .jp-texte-libre-image img  */

.jp-texte-libre-image img {
        display: block;
        width: 100%;
        border-radius: 24px;
        object-fit: cover;
        box-shadow: 0 18px 45px rgba(16, 35, 63, 0.14);
}

/*  CIBLE — Composant : .jp-texte-libre-image_droite .jp-texte-libre-inner  */

.jp-texte-libre-image_droite .jp-texte-libre-inner {
        flex-direction: row-reverse;
}

/*  CIBLE — Composant : .jp-texte-libre-pleine_largeur .jp-texte-libre-inner  */

.jp-texte-libre-pleine_largeur .jp-texte-libre-inner {
        display: block;
        max-width: 980px;
}

/*  CIBLE — Composant : .jp-texte-libre h2  */

.jp-texte-libre h2 {
        margin: 0 0 18px;
        color: var(--jp-main);
        font-size: clamp(28px, 3vw, 44px);
        line-height: 1.1;
}

/*  CIBLE — Composant : .jp-texte-libre-texte  */

.jp-texte-libre-texte {
        font-size: 18px;
        line-height: 1.75;
        color: var(--jp-text);
}

/*  CIBLE — Composant : .jp-texte-libre-texte p:first-child  */

.jp-texte-libre-texte p:first-child {
        margin-top: 0;
}

/*  CIBLE — Composant : .jp-texte-libre-texte p:last-child  */

.jp-texte-libre-texte p:last-child {
        margin-bottom: 0;
}

/* ==========================================================
   ALERTE
   ========================================================== */

.jp-alerte {
        padding: 26px 0;
        background: transparent;
}

/*  CIBLE — Composant : .jp-alerte-inner  */

.jp-alerte-inner {
        width: min(1200px, 92%);
        margin: 0 auto;
        display: flex;
        gap: 18px;
        align-items: flex-start;
        border-left: 7px solid var(--jp-main);
        background: var(--jp-sec2);
        border-radius: 18px;
        padding: 22px 26px;
        box-shadow: 0 14px 36px rgba(16, 35, 63, 0.12);
}

/*  CIBLE — Composant : .jp-alerte-symbol  */

.jp-alerte-symbol {
        width: 34px;
        height: 34px;
        border-radius: 999px;
        background: var(--jp-main);
        color: #fff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-weight: 900;
        flex: 0 0 34px;
}

/*  CIBLE — Composant : .jp-alerte h2  */

.jp-alerte h2 {
        margin: 0 0 8px;
        color: var(--jp-dark);
        font-size: 24px;
}

/*  CIBLE — Composant : .jp-alerte-texte  */

.jp-alerte-texte {
        color: var(--jp-text);
        line-height: 1.65;
}

/*  CIBLE — Composant : .jp-alerte-texte p:first-child  */

.jp-alerte-texte p:first-child {
        margin-top: 0;
}

/*  CIBLE — Composant : .jp-alerte-texte p:last-child  */

.jp-alerte-texte p:last-child {
        margin-bottom: 0;
}

/* ==========================================================
   CARTES INFORMATIONS
   Jusqu’à 6 cartes sur une seule ligne sur grand écran
   ========================================================== */

/* Conteneur de la grille */

/* ==========================================================================
   Cartes et contenus structurés
   ========================================================================== */

.jp-cartes-info {
        width: min(1600px, 96%);
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(var(--jp-card-count, 3), minmax(0, 1fr));
        gap: 18px;
        align-items: stretch;
}

/* Une seule carte : largeur limitée et centrée */

.jp-cartes-info[style*="--jp-card-count:1"] {
        grid-template-columns: minmax(0, 620px);
        justify-content: center;
}

/* Deux cartes : largeur limitée */

.jp-cartes-info[style*="--jp-card-count:2"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 920px;
}

/* Trois cartes : largeur limitée */

.jp-cartes-info[style*="--jp-card-count:3"] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        max-width: 1200px;
}

/* Quatre cartes */

.jp-cartes-info[style*="--jp-card-count:4"] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        max-width: 1400px;
}

/* Cinq cartes */

.jp-cartes-info[style*="--jp-card-count:5"] {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        max-width: 1500px;
}

/* Six cartes */

.jp-cartes-info[style*="--jp-card-count:6"] {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        max-width: 1600px;
}

/* Carte individuelle */

.jp-info-card {
        min-width: 0;
        min-height: 100%;
        display: flex;
        flex-direction: column;
        padding: 22px 18px;
        background: #fff;
        border: 1px solid rgba(16, 35, 63, 0.08);
        border-radius: 22px;
        box-shadow: 0 15px 38px rgba(16, 35, 63, 0.11);
        transition: transform 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

/* Effet au survol */

.jp-info-card:hover {
        transform: translateY(-4px);
        border-color: color-mix(in srgb, var(--jp-main) 30%, transparent);
        box-shadow: 0 20px 46px rgba(16, 35, 63, 0.15);
}

/* Icônes communes */

.jp-info-card-icon, .jp-document-icon, .jp-chiffre-icon, .jp-faq-page-icon {
        display: block;
        width: 44px;
        height: 44px;
        margin-bottom: 16px;
        background: var(--jp-main);
        mask: var(--icon) center / contain no-repeat;
        -webkit-mask: var(--icon) center / contain no-repeat;
}

/* Titre de la carte */

.jp-info-card h3 {
        margin: 0 0 10px;
        color: var(--jp-dark);
        font-size: clamp(16px, 1.25vw, 21px);
        line-height: 1.2;
}

/* Texte de la carte */

.jp-info-card-text {
        color: var(--jp-text);
        font-size: 14px;
        line-height: 1.55;
}

/*  CIBLE — Cartes : .jp-info-card-text p:first-child  */

.jp-info-card-text p:first-child {
        margin-top: 0;
}

/*  CIBLE — Cartes : .jp-info-card-text p:last-child  */

.jp-info-card-text p:last-child {
        margin-bottom: 0;
}

/* Réduction légère lorsque 5 ou 6 cartes sont affichées */

.jp-cartes-info[style*="--jp-card-count:5"] .jp-info-card, .jp-cartes-info[style*="--jp-card-count:6"] .jp-info-card {
        padding: 19px 15px;
}

/*  CIBLE — Cartes : .jp-cartes-info[style*="--jp-card-count:5"] .jp-info-card h3, .jp-cartes-info[style*="--jp-card-count:…  */

.jp-cartes-info[style*="--jp-card-count:5"] .jp-info-card h3, .jp-cartes-info[style*="--jp-card-count:6"] .jp-info-card h3 {
        font-size: 17px;
}

/*  CIBLE — Cartes : .jp-cartes-info[style*="--jp-card-count:5"] .jp-info-card-text, .jp-cartes-info[style*="--jp-card-coun…  */

.jp-cartes-info[style*="--jp-card-count:5"] .jp-info-card-text, .jp-cartes-info[style*="--jp-card-count:6"] .jp-info-card-text {
        font-size: 13px;
        line-height: 1.48;
}

/* ==========================================================
   GALERIE
   ========================================================== */

.jp-galerie-grid {
        width: min(1200px, 92%);
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 22px;
}

/*  CIBLE — Composant : .jp-galerie-item  */

.jp-galerie-item {
        overflow: hidden;
        background: #fff;
        border-radius: 24px;
        box-shadow: 0 15px 40px rgba(16, 35, 63, 0.12);
}

/*  CIBLE — Composant : .jp-galerie-item img  */

.jp-galerie-item img {
        display: block;
        aspect-ratio: 4/3;
}

/*  CIBLE — Composant : .jp-galerie-caption  */

.jp-galerie-caption {
        padding: 16px 18px 18px;
}

/*  CIBLE — Composant : .jp-galerie-caption h3  */

.jp-galerie-caption h3 {
        margin: 0 0 8px;
        color: var(--jp-dark);
        font-size: 16px;
        line-height: 1.3;
        font-weight: 800;
        text-align: center;
}

/*  CIBLE — Composant : .jp-galerie-caption p  */

.jp-galerie-caption p {
        margin: 0;
        color: var(--jp-text);
        font-size: 13px;
        line-height: 1.55;
        text-align: center;
}

/* ==========================================================
   DOCUMENTS
   ========================================================== */

.jp-documents-list {
        width: min(1000px, 92%);
        margin: 0 auto;
        display: grid;
        gap: 14px;
}

/*  CIBLE — Cartes : .jp-document-card  */

.jp-document-card {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 18px 22px;
        background: #fff;
        border-radius: 18px;
        text-decoration: none;
        box-shadow: 0 12px 32px rgba(16, 35, 63, 0.1);
        color: var(--jp-dark);
        border: 1px solid rgba(16, 35, 63, 0.08);
        transition: transform 0.2s ease,
    box-shadow 0.2s ease;
}

/*  CIBLE — Cartes : .jp-document-card:hover  */

.jp-document-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 18px 42px rgba(16, 35, 63, 0.15);
}

/*  CIBLE — Icônes : .jp-document-icon  */

.jp-document-icon {
        width: 32px;
        height: 32px;
        margin: 0;
        flex: 0 0 32px;
}

/*  CIBLE — Icônes : .jp-document-icon-default  */

.jp-document-icon-default {
        mask: none;
        -webkit-mask: none;
        background: var(--jp-main);
        color: #fff;
        border-radius: 999px;
        font-weight: 900;
}

/*  CIBLE — Composant : .jp-document-title  */

.jp-document-title {
        font-weight: 750;
}

/* ==========================================================
   ÉQUIPE ET PARTENAIRES
   ========================================================== */

.jp-equipe-grid {
        width: min(1200px, 92%);
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: 24px;
}

/*  CIBLE — Composant : .jp-partenaires-grid  */

.jp-partenaires-grid {
        width: min(1200px, 92%);
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(8, minmax(0, 1fr));
        gap: 12px;
}

/*  CIBLE — Cartes : .jp-equipe-card  */

.jp-equipe-card {
        background: #fff;
        border-radius: 24px;
        overflow: hidden;
        box-shadow: 0 15px 40px rgba(16, 35, 63, 0.11);
}

/*  CIBLE — Cartes : .jp-equipe-card img  */

.jp-equipe-card img {
        display: block;
        aspect-ratio: 4/3;
}

/* ==========================================================================
   Fondations et règles globales
   ========================================================================== */

.jp-equipe-body {
        padding: 20px;
}

/*  CIBLE — Composant : .jp-equipe-body h3  */

.jp-equipe-body h3 {
        margin: 0 0 6px;
        color: var(--jp-dark);
        font-size: 21px;
}

/*  CIBLE — Composant : .jp-equipe-role  */

.jp-equipe-role {
        margin: 0 0 12px;
        color: var(--jp-main);
        font-weight: 700;
}

/*  CIBLE — Composant : .jp-equipe-mail  */

.jp-equipe-mail {
        color: var(--jp-text);
        text-decoration: none;
        font-size: 14px;
}

/*  CIBLE — État interactif : .jp-equipe-mail:hover  */

.jp-equipe-mail:hover {
        text-decoration: underline;
}

/* ==========================================================================
   Cartes et contenus structurés
   ========================================================================== */

.jp-partenaire-card {
        display: flex;
        min-height: 105px;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 7px;
        padding: 10px 8px;
        background: #fff;
        border-radius: 16px;
        box-shadow: 0 10px 24px rgba(16, 35, 63, 0.1);
        text-decoration: none;
        color: var(--jp-dark);
        text-align: center;
        font-weight: 700;
}

/*  CIBLE — Cartes : .jp-partenaire-card img  */

.jp-partenaire-card img {
        display: block;
        max-width: 90%;
        max-height: 46px;
        width: auto;
        height: auto;
        object-fit: contain;
}

/*  CIBLE — Cartes : .jp-partenaire-card span  */

.jp-partenaire-card span {
        font-size: 10px;
        line-height: 1.15;
}

/*  CIBLE — Cartes : a.jp-partenaire-card:hover  */

a.jp-partenaire-card:hover {
        transform: translateY(-2px);
}

/* ==========================================================
   LOCALISATION
   ========================================================== */

.jp-localisation-inner {
        width: min(1200px, 92%);
        margin: 0 auto;
        display: grid;
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
        gap: 36px;
        align-items: center;
}

/*  CIBLE — Composant : .jp-localisation-content .jp-title  */

.jp-localisation-content .jp-title {
        width: auto;
        margin: 0 0 20px;
}

/*  CIBLE — Composant : .jp-localisation-adresse  */

.jp-localisation-adresse {
        font-size: 18px;
        line-height: 1.7;
        color: var(--jp-text);
        margin-bottom: 22px;
}

/*  CIBLE — Composant : .jp-localisation-map iframe  */

.jp-localisation-map iframe {
        width: 100%;
        min-height: 430px;
        border: 0;
        border-radius: 24px;
        box-shadow: 0 16px 42px rgba(16, 35, 63, 0.12);
}

/* ==========================================================
   CHIFFRES CLÉS
   ========================================================== */

.jp-chiffres-page {
        width: min(1100px, 92%);
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: 22px;
}

/*  CIBLE — Cartes : .jp-chiffre-card  */

.jp-chiffre-card {
        background: #fff;
        border-radius: 22px;
        padding: 26px;
        text-align: center;
        box-shadow: 0 15px 38px rgba(16, 35, 63, 0.11);
}

/*  CIBLE — Cartes : .jp-chiffre-card .jp-chiffre-icon  */

.jp-chiffre-card .jp-chiffre-icon {
        margin: 0 auto 14px;
        width: 42px;
        height: 42px;
}

/*  CIBLE — Composant : .jp-chiffre-value  */

.jp-chiffre-value {
        font-size: clamp(34px, 4vw, 56px);
        font-weight: 900;
        color: var(--jp-main);
        line-height: 1;
}

/*  CIBLE — Cartes : .jp-chiffre-card h3  */

.jp-chiffre-card h3 {
        margin: 12px 0 8px;
        color: var(--jp-dark);
        font-size: 20px;
}

/*  CIBLE — Composant : .jp-chiffre-text  */

.jp-chiffre-text {
        font-size: 15px;
        color: var(--jp-text);
        line-height: 1.55;
}

/*  CIBLE — Composant : .jp-chiffre-text p  */

.jp-chiffre-text p {
        margin: 0;
}

/* ==========================================================
   FAQ
   ========================================================== */

.jp-faq-page-list {
        width: min(950px, 92%);
        margin: 0 auto;
        display: grid;
        gap: 14px;
}

/*  CIBLE — FAQ : .jp-faq-page-item  */

.jp-faq-page-item {
        background: #fff;
        border-radius: 18px;
        box-shadow: 0 12px 32px rgba(16, 35, 63, 0.1);
        overflow: hidden;
}

/*  CIBLE — FAQ : .jp-faq-page-item summary  */

.jp-faq-page-item summary {
        cursor: pointer;
        list-style: none;
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 18px 22px;
        font-weight: 800;
        color: var(--jp-dark);
}

/*  CIBLE — FAQ : .jp-faq-page-item summary::-webkit-details-marker  */

.jp-faq-page-item summary::-webkit-details-marker {
        display: none;
}

/*  CIBLE — FAQ : .jp-faq-page-item summary::after  */

.jp-faq-page-item summary::after {
        content: "⌄";
        color: var(--jp-main);
        font-size: 22px;
        font-weight: 900;
        margin-left: auto;
        transition: transform 0.25s ease;
}

/*  CIBLE — FAQ : .jp-faq-page-item[open] summary::after  */

.jp-faq-page-item[open] summary::after {
        transform: rotate(180deg);
}

/*  CIBLE — FAQ : .jp-faq-page-icon  */

.jp-faq-page-icon {
        width: 30px;
        height: 30px;
        margin: 0;
        flex: 0 0 30px;
}

/*  CIBLE — FAQ : .jp-faq-page-answer  */

.jp-faq-page-answer {
        padding: 0 22px 20px 66px;
        color: var(--jp-text);
        line-height: 1.65;
}

/*  CIBLE — FAQ : .jp-faq-page-answer p:first-child  */

.jp-faq-page-answer p:first-child {
        margin-top: 0;
}

/*  CIBLE — FAQ : .jp-faq-page-answer p:last-child  */

.jp-faq-page-answer p:last-child {
        margin-bottom: 0;
}

/* ==========================================================
   TÉMOIGNAGES
   ========================================================== */

.jp-temoignages-page-list {
        width: min(1000px, 92%);
        margin: 0 auto;
        display: grid;
        gap: 22px;
}

/*  CIBLE — Cartes : .jp-temoignage-page-card  */

.jp-temoignage-page-card {
        display: grid;
        grid-template-columns: 220px 1fr;
        gap: 26px;
        align-items: center;
        background: #fff;
        border-radius: 24px;
        padding: 24px;
        box-shadow: 0 15px 40px rgba(16, 35, 63, 0.12);
}

/*  CIBLE — Cartes : .jp-temoignage-page-card img  */

.jp-temoignage-page-card img {
        width: 220px;
        aspect-ratio: 4/3;
        object-fit: cover;
        border-radius: 18px;
}

/*  CIBLE — Témoignages : .jp-temoignage-page-quote  */

.jp-temoignage-page-quote {
        font-size: 18px;
        line-height: 1.75;
        color: var(--jp-text);
        position: relative;
}

/*  CIBLE — Témoignages : .jp-temoignage-page-quote:before  */

.jp-temoignage-page-quote:before {
        content: "“";
        font-size: 58px;
        line-height: 0;
        color: var(--jp-main);
        font-weight: 900;
        margin-right: 6px;
        vertical-align: -0.25em;
}

/*  CIBLE — Témoignages : .jp-temoignage-page-author  */

.jp-temoignage-page-author {
        margin: 16px 0 0;
        color: var(--jp-dark);
        font-weight: 800;
}

/* ==========================================================
   INTRODUCTION
   ========================================================== */

.jp-introduction-inner {
        width: min(980px, 92%);
        margin: 0 auto;
}

/*  CIBLE — Composant : .jp-introduction-inner .jp-title  */

.jp-introduction-inner .jp-title {
        width: auto;
        margin: 0 0 18px;
}

/*  CIBLE — Composant : .jp-introduction-texte  */

.jp-introduction-texte {
        font-size: 19px;
        line-height: 1.8;
        color: var(--jp-text);
}

/* ==========================================================
   RESPONSIVE — CARTES INFORMATIONS
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (max-width: 1350px)
   ========================================================================== */

@media (max-width: 1350px) {
        /*  CIBLE — Cartes : .jp-cartes-info, .jp-cartes-info[style*="--jp-card-count:5"], .jp-cartes-info[style*="--jp-card-count:6"]  */
        .jp-cartes-info, .jp-cartes-info[style*="--jp-card-count:5"], .jp-cartes-info[style*="--jp-card-count:6"] {
            grid-template-columns: repeat(3, minmax(0, 1fr));
            max-width: 1100px;
    }
}

/* ==========================================================================
   Adaptation responsive : (max-width: 900px)
   ========================================================================== */

@media (max-width: 900px) {
        /*  CIBLE — Cartes : .jp-cartes-info, .jp-cartes-info[style*="--jp-card-count:3"], .jp-cartes-info[style*="--jp-card-count:…  */
        .jp-cartes-info, .jp-cartes-info[style*="--jp-card-count:3"], .jp-cartes-info[style*="--jp-card-count:4"], .jp-cartes-info[style*="--jp-card-count:5"], .jp-cartes-info[style*="--jp-card-count:6"] {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            max-width: 760px;
    }
}

/* ==========================================================================
   Adaptation responsive : (max-width: 600px)
   ========================================================================== */

@media (max-width: 600px) {
        /*  CIBLE — Cartes : .jp-cartes-info, .jp-cartes-info[style*="--jp-card-count:2"], .jp-cartes-info[style*="--jp-card-count:…  */
        .jp-cartes-info, .jp-cartes-info[style*="--jp-card-count:2"], .jp-cartes-info[style*="--jp-card-count:3"], .jp-cartes-info[style*="--jp-card-count:4"], .jp-cartes-info[style*="--jp-card-count:5"], .jp-cartes-info[style*="--jp-card-count:6"] {
            width: min(100% - 30px, 520px);
            grid-template-columns: 1fr;
    }
        /*  CIBLE — Cartes : .jp-info-card  */
        .jp-info-card {
            padding: 20px;
    }
        /*  CIBLE — Cartes : .jp-info-card h3  */
        .jp-info-card h3 {
            font-size: 19px;
    }
        /*  CIBLE — Cartes : .jp-info-card-text  */
        .jp-info-card-text {
            font-size: 14px;
    }
}

/* ==========================================================================
   Adaptation responsive : (max-width: 800px)
   ========================================================================== */

@media (max-width: 800px) {
        /*  CIBLE — Composant : .jp-section, .jp-texte-libre  */
        .jp-section, .jp-texte-libre {
            padding: 48px 0;
    }
        /*  CIBLE — Cartes : .jp-texte-libre-inner, .jp-localisation-inner, .jp-temoignage-page-card  */
        .jp-texte-libre-inner, .jp-localisation-inner, .jp-temoignage-page-card {
            display: block;
    }
        /*  CIBLE — Composant : .jp-texte-libre-image  */
        .jp-texte-libre-image {
            margin-bottom: 24px;
    }
        /*  CIBLE — Composant : .jp-localisation-content  */
        .jp-localisation-content {
            margin-bottom: 24px;
    }
        /*  CIBLE — Cartes : .jp-temoignage-page-card img  */
        .jp-temoignage-page-card img {
            width: 100%;
            margin-bottom: 18px;
    }
        /*  CIBLE — FAQ : .jp-faq-page-answer  */
        .jp-faq-page-answer {
            padding-left: 22px;
    }
}

/*  CIBLE — Icônes : .jp-document-icon-default  */

.jp-document-icon-default {
        min-width: 42px;
        height: 42px;
        border-radius: 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        font-weight: 800;
        letter-spacing: 0.02em;
        background: var(--jp-sec1, #eef4ff);
        color: var(--jp-main, #f28c28);
}

/* ==========================================================================
   Adaptation responsive : (max-width: 900px)
   ========================================================================== */

@media (max-width: 900px) {
        /*  CIBLE — Composant : .jp-partenaires-grid  */
        .jp-partenaires-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 14px;
    }
        /*  CIBLE — Cartes : .jp-partenaire-card  */
        .jp-partenaire-card {
            min-height: 105px;
    }
}

/* ==========================================================================
   Adaptation responsive : (max-width: 520px)
   ========================================================================== */

@media (max-width: 520px) {
        /*  CIBLE — Composant : .jp-partenaires-grid  */
        .jp-partenaires-grid {
            grid-template-columns: 1fr;
    }
}

/* =========================================================
   Correctifs : galeries et équipe à hauteur fixe
   ========================================================= */

.jp-galerie-grid {
        grid-template-columns: repeat(auto-fit, minmax(220px, 280px));
        justify-content: center;
        align-items: start;
}

/*  CIBLE — Composant : .jp-galerie-item  */

.jp-galerie-item {
        height: auto;
}

/*  CIBLE — Composant : .jp-galerie-item img  */

.jp-galerie-item img {
        width: 100%;
        height: 190px;
        aspect-ratio: auto;
        object-fit: cover;
}

/*  CIBLE — Composant : .jp-equipe-grid  */

.jp-equipe-grid {
        grid-template-columns: repeat(auto-fit, minmax(210px, 260px));
        justify-content: center;
        align-items: start;
}

/*  CIBLE — Cartes : .jp-equipe-card  */

.jp-equipe-card {
        height: auto;
}

/*  CIBLE — Cartes : .jp-equipe-card img  */

.jp-equipe-card img {
        width: 100%;
        height: 180px;
        aspect-ratio: auto;
        object-fit: cover;
}

/* ==========================================================================
   Adaptation responsive : (max-width: 768px)
   ========================================================================== */

@media (max-width: 768px) {
        /*  CIBLE — Composant : .jp-galerie-grid, .jp-equipe-grid  */
        .jp-galerie-grid, .jp-equipe-grid {
            grid-template-columns: 1fr;
            width: min(520px, 92%);
    }
        /*  CIBLE — Cartes : .jp-galerie-item img, .jp-equipe-card img  */
        .jp-galerie-item img, .jp-equipe-card img {
            height: 220px;
    }
}

/* ==========================================================
   TÉMOIGNAGES DES PAGES DE CONTENU — DEUX COLONNES
   ========================================================== */

.jp-temoignages-page-section .jp-temoignages-page-list {
        width: min(calc(100% - 120px), 1500px);
        max-width: 1500px;
        margin-left: auto;
        margin-right: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        gap: 24px;
}

/*  CIBLE — Cartes : .jp-temoignages-page-section .jp-temoignage-page-card  */

.jp-temoignages-page-section .jp-temoignage-page-card {
        grid-template-columns: 150px minmax(0, 1fr);
        gap: 20px;
        align-items: center;
        height: 100%;
        min-width: 0;
        padding: 20px;
        box-sizing: border-box;
}

/*  CIBLE — Cartes : .jp-temoignages-page-section .jp-temoignage-page-card img  */

.jp-temoignages-page-section .jp-temoignage-page-card img {
        width: 150px;
        height: 150px;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        border-radius: 18px;
}

/*  CIBLE — Témoignages : .jp-temoignages-page-section .jp-temoignage-page-body  */

.jp-temoignages-page-section .jp-temoignage-page-body {
        min-width: 0;
}

/*  CIBLE — Témoignages : .jp-temoignages-page-section .jp-temoignage-page-quote  */

.jp-temoignages-page-section .jp-temoignage-page-quote {
        font-size: 16px;
        line-height: 1.6;
}

/*  CIBLE — Témoignages : .jp-temoignages-page-section .jp-temoignage-page-author  */

.jp-temoignages-page-section .jp-temoignage-page-author {
        margin-top: 12px;
}

/* Une carte sans photo utilise toute sa largeur. */

.jp-temoignages-page-section .jp-temoignage-page-card:not(:has(img)) {
        grid-template-columns: 1fr;
}

/* Tablette : une seule colonne pour préserver la lisibilité. */

@media (max-width: 1050px) {
        /*  CIBLE — Témoignages : .jp-temoignages-page-section .jp-temoignages-page-list  */
        .jp-temoignages-page-section .jp-temoignages-page-list {
            width: calc(100% - 64px);
            grid-template-columns: 1fr;
    }
        /*  CIBLE — Cartes : .jp-temoignages-page-section .jp-temoignage-page-card  */
        .jp-temoignages-page-section .jp-temoignage-page-card {
            grid-template-columns: 180px minmax(0, 1fr);
    }
        /*  CIBLE — Cartes : .jp-temoignages-page-section .jp-temoignage-page-card img  */
        .jp-temoignages-page-section .jp-temoignage-page-card img {
            width: 180px;
            height: 150px;
            aspect-ratio: auto;
    }
}

/* Mobile : photo au-dessus du témoignage. */

@media (max-width: 620px) {
        /*  CIBLE — Témoignages : .jp-temoignages-page-section .jp-temoignages-page-list  */
        .jp-temoignages-page-section .jp-temoignages-page-list {
            width: calc(100% - 32px);
            gap: 18px;
    }
        /*  CIBLE — Cartes : .jp-temoignages-page-section .jp-temoignage-page-card  */
        .jp-temoignages-page-section .jp-temoignage-page-card {
            grid-template-columns: 1fr;
            gap: 16px;
            padding: 16px;
    }
        /*  CIBLE — Cartes : .jp-temoignages-page-section .jp-temoignage-page-card img  */
        .jp-temoignages-page-section .jp-temoignage-page-card img {
            width: 100%;
            height: auto;
            aspect-ratio: 16 / 9;
    }
}

/* ==========================================================
   PAGES DE CONTENU — ICÔNES ET TITRES CENTRÉS DANS LES CARTES
   ========================================================== */

/* Cartes Infos */

.jp-info-card {
        align-items: stretch;
}

/*  CIBLE — Cartes : .jp-info-card .jp-info-card-icon  */

.jp-info-card .jp-info-card-icon {
        margin-left: auto;
        margin-right: auto;
}

/*  CIBLE — Cartes : .jp-info-card h3  */

.jp-info-card h3 {
        width: 100%;
        text-align: center;
}

/* Cartes Chiffres */

.jp-chiffre-card .jp-chiffre-icon {
        margin-left: auto !important;
        margin-right: auto !important;
}

/*  CIBLE — Cartes : .jp-chiffre-card h3, .jp-chiffre-card .jp-chiffre-value  */

.jp-chiffre-card h3,
.jp-chiffre-card .jp-chiffre-value {
        width: 100%;
        text-align: center !important;
}

/* Cartes Documents */

.jp-document-card {
        flex-direction: column;
        justify-content: center;
        text-align: center;
}

/*  CIBLE — Cartes : .jp-document-card .jp-document-icon  */

.jp-document-card .jp-document-icon {
        margin-left: auto;
        margin-right: auto;
}

/*  CIBLE — Cartes : .jp-document-card .jp-document-title  */

.jp-document-card .jp-document-title {
        width: 100%;
        text-align: center;
}

/* Cartes FAQ avec icône */

.jp-faq-page-question {
        text-align: center;
}

/*  CIBLE — FAQ : .jp-faq-page-question .jp-faq-page-icon  */

.jp-faq-page-question .jp-faq-page-icon {
        margin-left: auto;
        margin-right: auto;
}

/*  CIBLE — FAQ : .jp-faq-page-question strong, .jp-faq-page-question span:not(.jp-faq-page-icon)  */

.jp-faq-page-question strong,
.jp-faq-page-question span:not(.jp-faq-page-icon) {
        text-align: center;
}
