/* PC87 : CSS du site (dev 05/10, version Header & Footer Builder) + correctifs du 19/10.
   Servi en fichier par le thème enfant (mis en cache), et non plus collé dans le CSS additionnel. */
/* PC87 - CSS additionnel du thème Hello Elementor - design system A « Trait oblique »
   Version 2026-10-05 reassemblage - généré par site-build/assemble.sh à partir de css/*.css : ne pas retoucher à la main.
   Variante HFE (RETOUR ARRIÈRE seulement) : en-tête et pied de Header & Footer Builder, sans Elementor Pro.
   À coller dans Apparence > Personnaliser > CSS additionnel, EN REMPLACEMENT de tout le contenu.
   Le vérificateur du Customizer (CSSLint 1.0.4) signale de fausses erreurs sur les variables CSS,
   :is(), :where() et :has() : cocher « Mettre à jour malgré tout », puis Publier.
   Partiels : 00-tokens.css, 10-base.css, hfe/20-header-footer.css, 30-pages.css, 35-hello.css, hfe/40-accueil.css, 50-modules.css, 60-mentions-legales.css, 61-confidentialite.css, pages-v2/aider/page.css, pages-v2/devenir-benevole/page.css, pages-v2/donner/page.css, pages-v2/former/page.css, pages-v2/notre-association/page.css, pages-v2/secourir/page.css, pages-v2/secourir_demande-dps-haute-vienne/page.css. */
/* ==== 00-tokens.css ==== */
/* =====================================================================
   00 - JETONS du design system A « Trait oblique » (charte FNPC 2017 v2.2)
   Source unique : couleurs, polices, échelle, espacements, rayons, gabarit.
   Documentation : design/design-A.md. Préfixe --pc87-. Aucun sélecteur
   d'id Elementor. Les couleurs de texte sont données avec leur contraste
   mesuré (outils/contraste.py) : ne pas en inventer d'autres.
   ===================================================================== */
:root{
/* Couleurs de la charte */
--pc87-bleu:#004080;
--pc87-bleu-f:#002b5c;
--pc87-nuit:#001838;
--pc87-orange:#F08700;
--pc87-orange-survol:#ff9a1f;
--pc87-orange-f:#c26a00;
--pc87-violet:#AB0093;
/* Neutres */
--pc87-blanc:#fff;
--pc87-texte:#1f2937;
--pc87-doux:#5c6479;
--pc87-fond:#f5f7fb;
--pc87-teinte:#eef3fb;
--pc87-bord:#d4dbe6;
--pc87-bord-l:#e3e8f0;
--pc87-voile:rgba(0,24,56,.55);
/* États de formulaire (valeurs déjà employées par pc87-formations) */
--pc87-erreur:#c0392b;
--pc87-erreur-fond:#fdecec;
/* Rôles */
--pc87-focus:var(--pc87-orange-f);
--pc87-lien:var(--pc87-bleu);
--pc87-lien-survol:var(--pc87-bleu-f);
--pc87-souligne:var(--pc87-orange);
--pc87-champ-bord:var(--pc87-doux);
/* Polices (Poppins servie en local par pc87-polices : 400, 500, 600, 700 ; Arial = police système) */
--pc87-police-titre:Poppins,"Helvetica Neue",Arial,sans-serif;
--pc87-police-texte:Arial,"Helvetica Neue",Helvetica,sans-serif;
/* Échelle typographique (fluide entre 375 et 1280 px) */
--pc87-fs-h1:clamp(1.875rem,1.4rem + 2vw,2.75rem);
--pc87-fs-h1-photo:clamp(1.5rem,1.05rem + 2.2vw,2.75rem);
--pc87-fs-h2:clamp(1.45rem,1.1rem + 1.4vw,2.25rem);
--pc87-fs-h3:1.25rem;
--pc87-fs-h4:1.0625rem;
--pc87-fs-aplat:clamp(1.3rem,1rem + 1.3vw,2rem);
--pc87-fs-aplat-carte:1.0625rem;
--pc87-fs-chapo:1rem;
--pc87-fs-intro:1.0625rem;
--pc87-fs-corps:1rem;
--pc87-fs-action:.9375rem;
--pc87-fs-petit:.875rem;
--pc87-fs-etiquette:.8125rem;
--pc87-lh-corps:1.55;
--pc87-lh-titre:1.2;
--pc87-lh-aplat:1.58;
--pc87-ls-titre:-.01em;
/* Espacements (pas de 4 px) */
--pc87-e1:4px;
--pc87-e2:8px;
--pc87-e3:12px;
--pc87-e4:16px;
--pc87-e5:20px;
--pc87-e6:24px;
--pc87-e8:32px;
--pc87-e10:40px;
--pc87-e12:48px;
--pc87-e14:56px;
--pc87-section-y:clamp(40px,3vw + 28px,80px);
/* Gabarit : aligné sur le header (1320 px hors tout, gouttière 15 px, contenu 1290 px) */
--pc87-cadre:1320px;
--pc87-gouttiere:15px;
--pc87-contenu:1290px;
--pc87-lecture:64ch;
--pc87-grille-gap:20px;
/* Rayons */
--pc87-rayon:14px;
--pc87-rayon-m:10px;
--pc87-rayon-s:6px;
--pc87-pilule:999px;
/* Ombre : couches flottantes seulement (sous-menu, modale) */
--pc87-ombre-flottant:0 8px 30px rgba(0,64,128,.14);
/* Trait oblique (seul ornement) et liseré des photos */
--pc87-trait-angle:-20deg;
--pc87-trait-ep:2px;
--pc87-lisere:3px;
/* Cibles tactiles */
--pc87-cible:48px;
--pc87-cible-ligne:56px;
/* Mouvement */
--pc87-ease:cubic-bezier(.4,0,.2,1);
--pc87-duree:.2s;
/* Header : hauteur (recalée par le header HFE) et part collante (0 : header non collant) */
--pc87-hdr:72px;
--pc87-hdr-colle:0px
}
@media (min-width:1024px){:root{--pc87-hdr:149px;--pc87-fs-chapo:1.0625rem;--pc87-grille-gap:24px}}
/* ==== 10-base.css ==== */
/* =====================================================================
   10 - FONDATIONS : base globale sous Hello Elementor, gabarit des
   conteneurs Elementor, composants génériques pc87-.
   Portée : CSS additionnel du thème Hello, imprimé sur le site public et
   dans l'aperçu de l'éditeur (qui doit ressembler au site), jamais dans
   l'admin ni dans le panneau d'Elementor.
   Règles : aucun id Elementor (.elementor-element-xxxx) ; une propriété
   d'un composant est réglée ICI ou dans le JSON, jamais aux deux endroits
   (table des classes dans design/design-A.md) ; ne jamais compter sur
   l'ordre des feuilles pour surcharger l'en-tête ou le pied (CSS
   d'Elementor intégré au <head> : leurs règles passent APRÈS ce CSS) :
   viser la spécificité d'Elementor (0,3,0) (05/10/2026, étude Pro § 8.2). Un composant s'emploie de
   deux façons : classe posée sur un widget Elementor (Avancé > Classes CSS)
   ou classe posée directement sur l'élément HTML (widget HTML, extension).
    1. Base            6. Listes              11. Volets repliables
    2. Gabarit         7. Étiquettes données  12. Fil d'Ariane, tête de page
    3. Titres          8. Bandeau photo       13. Utilitaires
    4. Aplats          9. Cartes, grilles     14. Survol (souris)
    5. Boutons, liens 10. Encadré             15. Mouvement réduit
   ===================================================================== */

/* 1. Base : texte Arial, titres Poppins bleus, liens bleus, focus orange
   foncé, sélection orange. Remplace le rose #c36 et la police système de
   reset.css de Hello (même spécificité, placé après). */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--pc87-blanc);color:var(--pc87-texte);font:400 var(--pc87-fs-corps)/var(--pc87-lh-corps) var(--pc87-police-texte)}
h1,h2,h3,h4,h5,h6{color:var(--pc87-bleu);font-family:var(--pc87-police-titre);line-height:var(--pc87-lh-titre);letter-spacing:var(--pc87-ls-titre);text-transform:none;text-wrap:balance}
h1{font-size:var(--pc87-fs-h1);font-weight:700}
h2{font-size:var(--pc87-fs-h2);font-weight:700}
h3{font-size:var(--pc87-fs-h3);font-weight:600}
h4{font-size:var(--pc87-fs-h4);font-weight:600}
h5,h6{font-size:var(--pc87-fs-corps);font-weight:600}
a{color:var(--pc87-lien)}
a:hover,a:active{color:var(--pc87-lien-survol)}
::selection{background:var(--pc87-orange);color:var(--pc87-nuit)}
figcaption,.wp-caption-text,.widget-image-caption{color:var(--pc87-doux);font:400 var(--pc87-fs-petit)/1.5 var(--pc87-police-texte)}
:where([id]){scroll-margin-top:calc(var(--pc87-hdr-colle) + 12px)}
/* Liens dans le texte courant (Éditeur de texte, articles) : soulignés orange */
:is(.elementor-widget-text-editor,.page-content,.comment-content) a:not([class]){color:var(--pc87-lien);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:3px}
/* Focus visible : anneau orange foncé de 3 px (3,92:1 sur blanc). Spécificité basse (0,1,2) pour que
   les composants puissent l'adapter ; la 2e règle bat celle de Hello sur [tabindex] (0,3,0). */
body :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--pc87-focus);outline-offset:3px;box-shadow:none}
body [tabindex]:not([tabindex="-1"]):focus-visible{outline:3px solid var(--pc87-focus);outline-offset:3px;box-shadow:none}
body .screen-reader-text:focus{padding:12px 20px;border-radius:var(--pc87-pilule);background:var(--pc87-blanc);color:var(--pc87-bleu);font:600 var(--pc87-fs-action)/1.3 var(--pc87-police-titre);box-shadow:var(--pc87-ombre-flottant);outline:3px solid var(--pc87-focus);outline-offset:3px}
/* Correctif Hello : reset.css met white-space:nowrap sur tous les boutons (page /former/ à 757 px de
   large à 375) ; retour à la normale dans les zones de contenu. */
:where(.elementor,.site-main,.pc-cat) :is(button,[type=button],[type=submit],[type=reset]){white-space:normal}
/* Widgets Elementor : polices et couleurs de la charte même si les « couleurs et polices par défaut »
   d'Elementor sont restées actives ; un réglage du JSON (0,4,0) passe devant. */
.elementor-widget-heading .elementor-heading-title{color:var(--pc87-bleu);font-family:var(--pc87-police-titre);line-height:var(--pc87-lh-titre)}
.elementor-widget-text-editor{color:inherit;font-family:inherit}
.elementor-widget-text-editor>:first-child{margin-block-start:0}
.elementor-widget-text-editor>:last-child{margin-block-end:0}

/* 2. Gabarit : contenu de 1290 px aligné sur le header (1320 px hors tout, gouttière 15 px), quel que
   soit le réglage « Largeur du contenu » du kit (1140 par défaut). Conteneurs de 1er niveau d'une page :
   gouttière latérale par défaut ; conteneurs imbriqués : aucune marge intérieure par défaut (au lieu de
   10 px). Ce sont des valeurs PAR DÉFAUT : un réglage du JSON passe devant.
   Repère « main » (RGAA 9.2.1, revue a11y tour 2) : chaque page Elementor est enveloppée dans un conteneur
   « main » (classe pc87-main, ID content = cible du lien d'évitement) ; il est rendu en bloc, sans marge
   intérieure ni écart, comme l'enveloppe d'Elementor : ses enfants sont les anciens conteneurs de 1er niveau
   et reçoivent la gouttière (préfixe body : passe devant le --display:flex qu'Elementor écrit par élément). */
:root .e-con{--container-max-width:var(--pc87-contenu)}
[data-elementor-type="wp-page"]>.e-con{--container-default-padding-top:0px;--container-default-padding-right:var(--pc87-gouttiere);--container-default-padding-bottom:0px;--container-default-padding-left:var(--pc87-gouttiere)}
[data-elementor-type="wp-page"] .e-con .e-con{--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px}
body [data-elementor-type="wp-page"]>.e-con.pc87-main{--display:block;--container-default-padding-right:0px;--container-default-padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px}
[data-elementor-type="wp-page"]>.e-con.pc87-main>.e-con{--container-default-padding-top:0px;--container-default-padding-right:var(--pc87-gouttiere);--container-default-padding-bottom:0px;--container-default-padding-left:var(--pc87-gouttiere)}
.e-con.pc87-section{--padding-top:var(--pc87-section-y);--padding-bottom:var(--pc87-section-y)}
.e-con.pc87-section--doux{background-color:var(--pc87-fond)}
.pc87-lecture :is(p,ul,ol),:is(p,ul,ol).pc87-lecture{max-width:var(--pc87-lecture)}
/* Rangée d'actions (boutons, liens) : pleine largeur sous 600 px */
.e-con.pc87-actions{--flex-direction:row;--flex-wrap:wrap;--align-items:center;--justify-content:flex-start;--row-gap:10px;--column-gap:20px;--margin-top:var(--pc87-e6)}
.e-con.pc87-rangee{--flex-direction:row;--flex-wrap:wrap;--align-items:center;--justify-content:flex-start;--row-gap:6px;--column-gap:12px}
@media (max-width:599px){
.e-con.pc87-actions>.elementor-widget-button:not(.pc87-lien){flex:1 1 100%}
.e-con.pc87-actions>.elementor-widget-button:not(.pc87-lien) .elementor-button{width:100%}
}

/* 3. Titres : le trait oblique orange (2 px, -20°, sens de la charte p.12 et p.20) descend d'au-dessus
   du titre jusqu'à sa première ligne ; c'est le seul ornement du site. */
:is(.pc87-titre,.pc87-h1)>.elementor-heading-title,:is(.pc87-titre,.pc87-h1):not(.elementor-widget){position:relative;padding-left:.95em;color:var(--pc87-bleu);font-family:var(--pc87-police-titre);letter-spacing:var(--pc87-ls-titre);text-wrap:balance}
:is(.pc87-titre,.pc87-h1)>.elementor-heading-title::before,:is(.pc87-titre,.pc87-h1):not(.elementor-widget)::before{content:"";position:absolute;left:.5em;top:-.5em;width:var(--pc87-trait-ep);height:1.5em;background:var(--pc87-orange);transform:rotate(var(--pc87-trait-angle));transform-origin:50% 100%}
.pc87-titre>.elementor-heading-title,.pc87-titre:not(.elementor-widget){font-size:var(--pc87-fs-h2);font-weight:700;line-height:1.18}
.pc87-titre--m>.elementor-heading-title,.pc87-titre--m:not(.elementor-widget){font-size:var(--pc87-fs-h3);font-weight:600;line-height:1.3}
.pc87-titre--s>.elementor-heading-title,.pc87-titre--s:not(.elementor-widget){font-size:var(--pc87-fs-h4);font-weight:600;line-height:1.3}
.pc87-h1>.elementor-heading-title,.pc87-h1:not(.elementor-widget){font-size:var(--pc87-fs-h1);font-weight:700;line-height:1.2}
/* Chapô sous le H1 (bleu, charte p.20) et introduction de section (gris doux) */
.elementor-widget.pc87-chapo,p.pc87-chapo{color:var(--pc87-bleu);font-size:var(--pc87-fs-chapo);line-height:var(--pc87-lh-corps)}
.elementor-widget.pc87-intro,p.pc87-intro{color:var(--pc87-doux);font-size:var(--pc87-fs-intro);line-height:var(--pc87-lh-corps)}
:is(.pc87-chapo,.pc87-intro) :is(p,ul,ol),p:is(.pc87-chapo,.pc87-intro){max-width:var(--pc87-lecture)}
.pc87-intro strong{color:var(--pc87-texte)}

/* 4. Aplats « Croix-Rouge » : texte blanc gras sur aplat bleu qui épouse chaque ligne (jamais un bloc
   plein), étiquette orange à texte bleu nuit (6,88:1 ; blanc sur orange interdit, 2,57:1), accroche sur
   bleu foncé. Le conteneur est à font-size 0 : seule la ligne de texte compte. */
.pc87-aplat,.pc87-etiquette,.pc87-accroche{position:relative;z-index:1;font-size:0;line-height:0;text-wrap:balance}
.pc87-aplat>.elementor-heading-title,.pc87-aplat:not(.elementor-widget)>span{display:inline;padding:.12em .45em;background:var(--pc87-bleu);color:var(--pc87-blanc);font:700 var(--pc87-aplat-taille,1.25rem)/var(--pc87-lh-aplat) var(--pc87-police-titre);letter-spacing:var(--pc87-ls-titre);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.pc87-aplat--h1{--pc87-aplat-taille:var(--pc87-fs-h1-photo)}
.pc87-aplat--h1>.elementor-heading-title,.pc87-aplat--h1:not(.elementor-widget)>span{line-height:1.5}
.pc87-etiquette{padding-block-end:6px}
.pc87-etiquette>.elementor-heading-title,.pc87-etiquette:not(.elementor-widget)>span{display:inline;padding:4px 10px;background:var(--pc87-orange);color:var(--pc87-nuit);font:600 var(--pc87-fs-etiquette)/1.95 var(--pc87-police-titre);letter-spacing:1px;text-transform:uppercase;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.pc87-etiquette--long>.elementor-heading-title,.pc87-etiquette--long:not(.elementor-widget)>span{letter-spacing:.2px;text-transform:none}
.pc87-accroche{padding-block-start:6px}
.pc87-accroche>.elementor-heading-title,.pc87-accroche:not(.elementor-widget)>span{display:inline;padding:.15em .5em;background:var(--pc87-bleu-f);color:var(--pc87-blanc);font:500 var(--pc87-accroche-taille,1rem)/1.75 var(--pc87-police-titre);letter-spacing:0;-webkit-box-decoration-break:clone;box-decoration-break:clone}
@media (min-width:768px){.pc87-accroche{--pc87-accroche-taille:1.125rem}}

/* 5. Boutons (Poppins 600, pilule, 48 px) : bleu = principal (défaut de tout widget Bouton), contour =
   secondaire, orange + texte nuit = action finale UNIQUE de l'écran. Liens-actions soulignés orange. */
:is(.elementor-widget-button .elementor-button,.pc87-btn:not(.elementor-widget)){display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--pc87-cible);padding:12px 22px;border:1.5px solid var(--pc87-bleu);border-radius:var(--pc87-pilule);background:var(--pc87-bleu);color:var(--pc87-blanc);fill:currentColor;font:600 var(--pc87-fs-action)/1.2 var(--pc87-police-titre);letter-spacing:.2px;text-align:center;text-decoration:none;white-space:normal;cursor:pointer;transition:background-color var(--pc87-duree) var(--pc87-ease),border-color var(--pc87-duree) var(--pc87-ease),color var(--pc87-duree) var(--pc87-ease)}
.elementor-widget-button .elementor-button-content-wrapper{align-items:center;gap:8px}
.elementor-widget-button .elementor-button-icon svg,.pc87-btn:not(.elementor-widget) svg{width:14px;height:14px;fill:currentColor}
:is(.pc87-btn--secondaire .elementor-button,.pc87-btn--secondaire:not(.elementor-widget)){background:var(--pc87-blanc);border-color:var(--pc87-bord);color:var(--pc87-bleu)}
:is(.pc87-btn--orange .elementor-button,.pc87-btn--orange:not(.elementor-widget)){background:var(--pc87-orange);border-color:var(--pc87-orange);color:var(--pc87-nuit)}
/* Lien-action : Titre avec lien, Éditeur de texte, widget Bouton (pour l'icône « nouvel onglet ») ou <a> */
.pc87-lien>.elementor-heading-title{color:var(--pc87-bleu);font:600 var(--pc87-fs-action)/1.3 var(--pc87-police-titre);letter-spacing:0}
:is(.pc87-lien.elementor-widget-heading a,.pc87-lien.elementor-widget-text-editor a,a.pc87-lien){display:inline-flex;align-items:center;gap:7px;min-height:var(--pc87-cible);color:var(--pc87-bleu);font:600 var(--pc87-fs-action)/1.3 var(--pc87-police-titre);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:5px}
.pc87-lien.elementor-widget-text-editor p{margin:0}
a.pc87-lien svg{width:13px;height:13px;fill:currentColor}
.pc87-lien.elementor-widget-button .elementor-button{min-height:var(--pc87-cible);padding:0;border:0;border-radius:0;background:none;color:var(--pc87-bleu);font:600 var(--pc87-fs-action)/1.3 var(--pc87-police-titre);letter-spacing:0;text-align:left}
.pc87-lien.elementor-widget-button .elementor-button-content-wrapper{gap:7px}
.pc87-lien.elementor-widget-button .elementor-button-text{text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:5px}
.pc87-lien.elementor-widget-button .elementor-button-icon svg{width:13px;height:13px}
/* Liste de liens en ligne (réseaux sociaux…) : widget Liste d'icônes, icônes masquées */
.pc87-liens .elementor-icon-list-items,ul.pc87-liens{display:flex;flex-wrap:wrap;gap:0 22px;margin:0;padding:0;list-style:none}
.pc87-liens.elementor-widget .elementor-icon-list-items .elementor-icon-list-item{margin:0}
.pc87-liens.elementor-widget .elementor-icon-list-items.elementor-inline-items{margin-inline:0}
.pc87-liens .elementor-icon-list-icon{display:none}
.pc87-liens.elementor-widget .elementor-icon-list-text{padding-inline-start:0}
.pc87-liens.elementor-widget a,ul.pc87-liens a{display:inline-flex;align-items:center;width:auto;min-height:var(--pc87-cible);color:var(--pc87-bleu);font:600 var(--pc87-fs-action)/1.3 var(--pc87-police-titre)}
.pc87-liens a .elementor-icon-list-text,ul.pc87-liens a{text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:5px}

/* 6. Listes à puces triangle (charte) : Liste d'icônes (icône masquée), listes de l'Éditeur de texte
   et des articles */
.pc87-puces .elementor-icon-list-items{display:grid;gap:8px}
.pc87-puces.elementor-widget .elementor-icon-list-item{display:block;position:relative;padding-left:24px}
.pc87-puces .elementor-icon-list-icon{display:none}
.pc87-puces.elementor-widget .elementor-icon-list-text{padding-inline-start:0}
:is(.elementor-widget-text-editor,.page-content) :is(ul:not([class]),ul.wp-block-list),ul.pc87-puces{margin:0 0 .9rem;padding:0;list-style:none}
:is(.elementor-widget-text-editor,.page-content) :is(ul:not([class]),ul.wp-block-list)>li,ul.pc87-puces>li{position:relative;padding-left:24px}
:is(.elementor-widget-text-editor,.page-content) :is(ul:not([class]),ul.wp-block-list)>li+li,ul.pc87-puces>li+li{margin-top:8px}
.pc87-puces .elementor-icon-list-item::before,:is(.elementor-widget-text-editor,.page-content) :is(ul:not([class]),ul.wp-block-list)>li::before,ul.pc87-puces>li::before{content:"";position:absolute;left:3px;top:.42em;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid var(--pc87-bleu)}
.pc87-puces strong{color:var(--pc87-bleu)}

/* 7. Étiquettes de données (Titre en <span> ou <span> HTML) : code de formation, pastille neutre,
   « Formation certifiante » (violet, rare), information secondaire */
:is(.pc87-code>.elementor-heading-title,.pc87-code:not(.elementor-widget)){display:inline-block;padding:2px 8px;border:1px dashed var(--pc87-orange);border-radius:var(--pc87-rayon-s);color:var(--pc87-bleu);font:700 var(--pc87-fs-etiquette)/1.5 var(--pc87-police-titre);letter-spacing:.5px}
:is(.pc87-pastille>.elementor-heading-title,.pc87-pastille:not(.elementor-widget)){display:inline-block;padding:2px 10px;border:1px solid var(--pc87-bord);border-radius:var(--pc87-pilule);background:var(--pc87-blanc);color:var(--pc87-texte);font:400 var(--pc87-fs-petit)/1.5 var(--pc87-police-texte);letter-spacing:0}
:is(.pc87-certif>.elementor-heading-title,.pc87-certif:not(.elementor-widget)){display:inline-block;padding:1px 9px;border:1px solid var(--pc87-violet);border-radius:var(--pc87-pilule);background:var(--pc87-blanc);color:var(--pc87-violet);font:600 var(--pc87-fs-etiquette)/1.5 var(--pc87-police-titre);letter-spacing:0}
:is(.pc87-info>.elementor-heading-title,.pc87-info:not(.elementor-widget)){color:var(--pc87-doux);font:400 var(--pc87-fs-petit)/1.5 var(--pc87-police-texte);letter-spacing:0}
/* Intégration 1 (WCAG 1.4.1) : lien d'une information secondaire (mention du formulaire Contact) souligné comme les
   autres liens de texte : ni Elementor (.elementor a) ni Hello (reset.css) ne le soulignaient, et sa couleur seule ne
   le distinguait du texte voisin qu'à 1,74:1. */
.pc87-info a,.wpcf7 .pc87-info a{color:var(--pc87-lien);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:3px}

/* 8. Bandeau photo (conteneur pleine largeur) : photo NETTE (widget Image, sans voile ni flou),
   étiquette et titre sur aplat posés en bas à gauche, liseré orange de 3 px ; bord à bord sous 600 px,
   arrondi ensuite. Fond de repli : aplat bleu uni. */
.e-con.pc87-bandeau{--pc87-aplat-taille:var(--pc87-fs-aplat);--flex-direction:column;--justify-content:flex-end;--align-items:flex-start;--row-gap:0px;--column-gap:0px;--padding-top:16px;--padding-right:var(--pc87-gouttiere);--padding-bottom:19px;--padding-left:var(--pc87-gouttiere);position:relative;width:calc(100% + 2 * var(--pc87-gouttiere));max-width:none;min-height:clamp(210px,56vw,300px);margin-inline:calc(var(--pc87-gouttiere) * -1);overflow:hidden;background-color:var(--pc87-bleu)}
.e-con:is(.pc87-bandeau,.pc87-carte-media)::after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:1;height:var(--pc87-lisere);background:var(--pc87-orange)}
.elementor-widget:is(.pc87-bandeau-img,.pc87-carte-img){position:absolute;inset:0;z-index:0;width:auto;max-width:none;margin:0}
.elementor-widget:is(.pc87-bandeau-img,.pc87-carte-img) a{display:block;height:100%}
.elementor-widget:is(.pc87-bandeau-img,.pc87-carte-img) img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--pc87-photo-pos,50% 50%);border-radius:0}
/* Sans photo (image absente) : l'aplat se confond avec le fond bleu, son retrait latéral est retiré */
.e-con:is(.pc87-bandeau,.pc87-carte-media):not(:has(>.pc87-bandeau-img,>.pc87-carte-img)) :is(.pc87-aplat>.elementor-heading-title,.pc87-aplat:not(.elementor-widget)>span){padding-inline:0}
@media (min-width:600px){.e-con.pc87-bandeau{--padding-top:20px;--padding-right:20px;--padding-bottom:23px;--padding-left:20px;width:100%;margin-inline:0;border-radius:var(--pc87-rayon)}}
/* Duo : bandeau photo + texte, empilés puis côte à côte dès 1024 px ; à cette largeur un bandeau ne
   s'emploie jamais seul en pleine largeur (pas de gros bandeau). --inverse : photo à droite. */
.e-con-full.pc87-duo,.e-con.pc87-duo>.e-con-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}
@media (min-width:1024px){
.e-con-full.pc87-duo,.e-con.pc87-duo>.e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:56px}
.pc87-duo .e-con.pc87-bandeau{--padding-top:28px;--padding-right:28px;--padding-bottom:31px;--padding-left:28px;min-height:440px}
.pc87-duo--inverse .e-con.pc87-bandeau{order:2}
}

/* 9. Cartes (bord fin, arrondi 14 px, pas d'ombre) et grilles 1 / 2 / 3 colonnes (600 et 1024 px,
   points que les réglages d'Elementor ne connaissent pas) */
.e-con.pc87-grille{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--pc87-grille-gap);align-items:stretch}
@media (min-width:600px){.e-con.pc87-grille:not(.pc87-grille--2){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:768px){.e-con.pc87-grille--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.e-con.pc87-grille:not(.pc87-grille--2){grid-template-columns:repeat(3,minmax(0,1fr))}}
.e-con.pc87-carte{--flex-direction:column;--flex-wrap:nowrap;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;overflow:hidden;border:1px solid var(--pc87-bord-l);border-radius:var(--pc87-rayon);background-color:var(--pc87-blanc);color:var(--pc87-texte);text-decoration:none;transition:border-color var(--pc87-duree) var(--pc87-ease)}
.e-con.pc87-carte-media{--pc87-aplat-taille:var(--pc87-fs-aplat-carte);--flex-direction:column;--justify-content:flex-end;--align-items:flex-start;--row-gap:0px;--column-gap:0px;--padding-top:12px;--padding-right:12px;--padding-bottom:15px;--padding-left:12px;position:relative;aspect-ratio:16/10;overflow:hidden;background-color:var(--pc87-bleu)}
.e-con.pc87-carte-corps{--flex-direction:column;--flex-wrap:nowrap;--align-items:stretch;--row-gap:10px;--column-gap:10px;--padding-top:14px;--padding-right:16px;--padding-bottom:12px;--padding-left:16px;flex:1 1 auto}
.e-con.pc87-carte-corps>.e-con.pc87-actions:last-child{--margin-top:auto;--justify-content:space-between}
@media (max-width:599px){
.pc87-carte-corps .e-con.pc87-actions>.elementor-widget-button:not(.pc87-lien){flex:0 1 auto}
.pc87-carte-corps .e-con.pc87-actions>.elementor-widget-button:not(.pc87-lien) .elementor-button{width:auto}
}

/* 10. Encadré : filet orange à gauche, fond clair (session, note, information pratique) */
.e-con.pc87-encadre{--row-gap:8px;--column-gap:8px;--padding-top:14px;--padding-right:16px;--padding-bottom:14px;--padding-left:16px;border-left:var(--pc87-trait-ep) solid var(--pc87-orange);border-radius:0 var(--pc87-rayon-m) var(--pc87-rayon-m) 0;background-color:var(--pc87-fond)}
.e-con.pc87-encadre--blanc{background-color:var(--pc87-blanc)}

/* 11. Volets repliables (widget Accordéon = nested-accordion, <details>) : lignes de 56 px séparées par
   un filet, chevron dessiné en CSS (les icônes +/- d'Elementor sont masquées), titres en h3. */
.pc87-volets.elementor-widget-n-accordion{--n-accordion-title-font-size:var(--pc87-fs-corps);--n-accordion-border-width:0px;--n-accordion-padding:8px 0;--n-accordion-title-normal-color:var(--pc87-bleu);--n-accordion-title-hover-color:var(--pc87-bleu-f);--n-accordion-title-active-color:var(--pc87-bleu);--n-accordion-icon-gap:0 10px;--n-accordion-title-justify-content:space-between;--n-accordion-item-title-space-between:0px;--n-accordion-item-title-distance-from-content:0px}
.pc87-volets .e-n-accordion-item{border-bottom:1px solid var(--pc87-bord-l)}
.pc87-volets .e-n-accordion-item:first-child{border-top:1px solid var(--pc87-bord-l)}
.pc87-volets .e-n-accordion-item-title{min-height:var(--pc87-cible-ligne)}
.pc87-volets .e-n-accordion-item-title-text{color:inherit;font-family:var(--pc87-police-titre);font-weight:600;line-height:1.35;letter-spacing:0}
.pc87-volets .e-n-accordion-item-title-icon{display:none}
.pc87-volets .e-n-accordion-item-title::after{content:"";flex:none;width:9px;height:9px;margin:0 6px 4px auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform var(--pc87-duree) var(--pc87-ease)}
.pc87-volets .e-n-accordion-item[open]>.e-n-accordion-item-title::after{margin-bottom:-4px;transform:rotate(225deg)}
.pc87-volets .e-n-accordion-item>.e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:18px;--padding-left:0px;--row-gap:10px;--column-gap:10px}
.pc87-volets--trait .e-n-accordion-item-title-text{position:relative;padding-left:.95em}
.pc87-volets--trait .e-n-accordion-item-title-text::before{content:"";position:absolute;left:.5em;top:-.5em;width:var(--pc87-trait-ep);height:1.5em;background:var(--pc87-orange);transform:rotate(var(--pc87-trait-angle));transform-origin:50% 100%}

/* 12. Fil d'Ariane (widget HFE « Breadcrumbs », séparateur texte « > ») et tête de page intérieure :
   fil d'Ariane, H1 unique à trait oblique, chapô bleu ; sans photo (maquette A). */
.pc87-ariane{color:var(--pc87-doux);font:400 var(--pc87-fs-petit)/1.4 var(--pc87-police-texte)}
.pc87-ariane .hfe-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center}
/* Sous 600 px : le dernier élément (page courante) passe à la ligne DANS son bloc, à côté du « > » : ni
   séparateur seul en bout de ligne, ni 48 px de plus avant le H1. */
@media (max-width:599px){.pc87-ariane .hfe-breadcrumbs{flex-wrap:nowrap}.pc87-ariane .hfe-breadcrumbs>li{flex:none}.pc87-ariane .hfe-breadcrumbs>li.hfe-breadcrumbs-last{flex:1 1 0;min-width:0}}
.pc87-ariane .hfe-breadcrumbs a,.pc87-ariane:not(.elementor-widget) a{display:inline-flex;align-items:center;min-width:var(--pc87-cible);min-height:var(--pc87-cible);color:var(--pc87-bleu)}
.pc87-ariane .hfe-breadcrumbs .hfe-breadcrumbs-text{display:inline}
.pc87-ariane .hfe-breadcrumbs a .hfe-breadcrumbs-text,.pc87-ariane:not(.elementor-widget) a{text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:4px}
.pc87-ariane .hfe-breadcrumbs .hfe-breadcrumbs-last .hfe-breadcrumbs-text,.pc87-ariane .hfe-breadcrumbs-separator{color:var(--pc87-doux)}
.e-con.pc87-page-tete{--padding-top:0px;--padding-bottom:24px;--row-gap:0px;--column-gap:0px}
.pc87-page-tete .pc87-h1{margin-block-start:6px}
.e-con.pc87-page-tete>.e-con-inner>.pc87-h1:first-child,.e-con.pc87-page-tete>.pc87-h1:first-child{margin-block-start:calc(var(--pc87-fs-h1) * .5 + 8px)}
.pc87-page-tete .pc87-chapo{margin-block-start:12px}
@media (min-width:1024px){.e-con.pc87-page-tete{--padding-top:4px;--padding-bottom:44px}}

/* 13. Utilitaires */
.pc87-sr.pc87-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.pc87-nw{white-space:nowrap}
.pc87-sur-fonce{--pc87-focus:var(--pc87-blanc)}
@media (max-width:599px){.pc87-masque-mobile.pc87-masque-mobile{display:none}}

/* 14. Survol : souris seulement (rien ne reste « collé » au toucher) */
@media (hover:hover){
:is(.elementor-widget-button .elementor-button,.pc87-btn:not(.elementor-widget)):hover{background:var(--pc87-bleu-f);border-color:var(--pc87-bleu-f);color:var(--pc87-blanc)}
:is(.pc87-btn--secondaire .elementor-button,.pc87-btn--secondaire:not(.elementor-widget)):hover{background:var(--pc87-teinte);border-color:var(--pc87-bleu);color:var(--pc87-bleu)}
:is(.pc87-btn--orange .elementor-button,.pc87-btn--orange:not(.elementor-widget)):hover{background:var(--pc87-orange-survol);border-color:var(--pc87-orange-survol);color:var(--pc87-nuit)}
.pc87-lien.elementor-widget-button .elementor-button:hover{background:none;color:var(--pc87-bleu-f)}
:is(.elementor-widget-text-editor,.page-content,.comment-content) a:not([class]):hover,:is(.pc87-lien.elementor-widget-heading a,.pc87-lien.elementor-widget-text-editor a,a.pc87-lien):hover,.pc87-lien.elementor-widget-button .elementor-button:hover .elementor-button-text,.pc87-liens a:hover .elementor-icon-list-text,ul.pc87-liens a:hover,.pc87-ariane .hfe-breadcrumbs a:hover .hfe-breadcrumbs-text,.pc87-ariane:not(.elementor-widget) a:hover{text-decoration-color:currentColor}
.e-con.pc87-carte:hover{border-color:var(--pc87-bleu)}
}

/* 15. Mouvement réduit : aucune transition ni animation (entrées Elementor comprises) */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}}
/* ==== hfe/20-header-footer.css ==== */
/* =====================================================================
   20 - HEADER et FOOTER (Elementor Header & Footer Builder), maquette A
   écrans E1 (header, menu mobile) et E3 (footer). Modèles : templates/
   header.json et footer.json (gen/header_footer.py). Jetons : 00-tokens.
   Ancrage : les widgets HFE (menu, recherche, logo, copyright) écrivent
   leurs réglages PAR DÉFAUT dans un <style> imprimé DANS le header, après
   ce CSS, à la spécificité 0,4,0 à 0,6,2 ; les règles qui les remplacent
   sont donc préfixées par les ID fixes d'HFE #masthead / #colophon (et
   .elementor-edit-area : même rendu dans l'éditeur). Le panneau « Style »
   de ces widgets est sans effet : tout l'aspect est ici. Aucun id
   Elementor. Header non collant (A). Point de bascule : 1024 / 1025 px,
   celui du menu HFE (réglage « tablette » d'Elementor).
    1. Header : cadre et rangs        6. Footer : cadre, tête, volets
    2. Logo                           7. Footer : contact, Qualiopi
    3. Recherche                      8. Crédits, liens légaux, haut de page
    4. Menu desktop (≥ 1025 px)       9. Lien d'évitement, fenêtre de don
    5. Menu mobile (≤ 1024 px)       10. Survol (souris)
   ===================================================================== */

/* 1. Header : bande blanche filetée (72 px au téléphone, 57 + 92 px dès 1025), contenu aligné sur
   la grille des pages (1290 px, gouttière 15 px). Conteneurs réglés par variables : un réglage du JSON
   passe devant. */
.e-con.pc87-hdr{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--row-gap:0px;--column-gap:0px;position:relative;z-index:20;border-bottom:1px solid var(--pc87-bord-l);background-color:var(--pc87-blanc);color:var(--pc87-texte);font:400 var(--pc87-fs-corps)/1.5 var(--pc87-police-texte)}
.pc87-hdr .e-con{--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px}
.e-con:is(.pc87-hdr-haut,.pc87-hdr-barre){--padding-top:0px;--padding-bottom:0px;--padding-left:var(--pc87-gouttiere);--padding-right:var(--pc87-gouttiere);--flex-direction:row;--flex-wrap:nowrap;--align-items:center;--justify-content:flex-start;--row-gap:0px;--column-gap:22px}
.e-con.pc87-hdr-haut{border-bottom:1px solid var(--pc87-bord-l)}
.e-con.pc87-hdr-haut>.e-con-inner{min-height:56px}
.pc87-hdr-haut>.e-con-inner>.pc87-hdr-reseaux{margin-inline-end:auto}
.pc87-hdr-haut .pc87-hdr-don .elementor-button{padding:10px 18px;font-size:var(--pc87-fs-petit)}
.pc87-hdr .elementor-widget{margin-block:0}
/* La barre, ses conteneurs et la recherche sont « static » : la barre de recherche ouverte se place par
   rapport au header entier (sur le site seulement : dans l'éditeur, les poignées des widgets en ont besoin). */
#masthead .pc87-hdr :is(.e-con,.e-con-inner,.elementor-widget){position:static}
@media (max-width:1024px){
.e-con.pc87-hdr-barre{--padding-right:7px;--flex-wrap:wrap;--column-gap:0px}
}
@media (min-width:1025px){
.e-con.pc87-hdr-barre{--column-gap:24px}
}

/* 2. Logo du site (widget HFE « Site Logo », logo défini dans Personnaliser > Identité du site) :
   44 px de haut au téléphone, 56 dès 1025 ; toute la hauteur de la barre est cliquable. */
.elementor-widget.pc87-hdr-logo{flex:0 0 auto;margin-inline-end:auto}
:is(#masthead,#colophon,.elementor-edit-area) :is(.pc87-hdr-logo,.pc87-pied-logo) .hfe-site-logo a{display:block;width:max-content}
:is(#masthead,#colophon,.elementor-edit-area) :is(.pc87-hdr-logo,.pc87-pied-logo) .hfe-site-logo-container{display:block;padding:0;line-height:0}
:is(#masthead,#colophon,.elementor-edit-area) :is(.pc87-hdr-logo,.pc87-pied-logo) img.hfe-site-logo-img{display:block;width:auto;max-width:none;height:44px;border:0;border-radius:0}
:is(#masthead,.elementor-edit-area) .pc87-hdr-logo .hfe-site-logo a{padding-block:14px}
:is(#colophon,.elementor-edit-area) .pc87-pied-logo .hfe-site-logo a{padding-block:4px}
@media (min-width:1025px){
:is(#masthead,#colophon,.elementor-edit-area) :is(.pc87-hdr-logo,.pc87-pied-logo) img.hfe-site-logo-img{height:56px}
:is(#masthead,.elementor-edit-area) .pc87-hdr-logo .hfe-site-logo a{padding-block:18px}
}

/* 3. Recherche (widget HFE « Search », disposition « Icône ») : loupe de 48 px ; le champ, invisible
   mais atteignable au clavier, devient une barre pleine largeur sous le header dès qu'il a le focus
   (clic sur la loupe ou tabulation), comme la barre de recherche de A. Entrée lance la recherche. */
.elementor-widget.pc87-hdr-recherche{flex:0 0 var(--pc87-cible);width:var(--pc87-cible)}
#masthead .pc87-hdr-recherche :is(.elementor-widget-container,.hfe-search-button-wrapper,.hfe-search-icon-toggle){position:static}
:is(#masthead,.elementor-edit-area) .pc87-hdr-recherche .hfe-search-icon-toggle{display:flex;align-items:center;justify-content:center;height:var(--pc87-cible);border-radius:var(--pc87-pilule);color:var(--pc87-bleu);line-height:1;cursor:pointer;transition:background-color var(--pc87-duree) var(--pc87-ease)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-recherche .hfe-search-icon-toggle i.fa-search{display:block;position:static;width:24px;height:24px;padding:0;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 21 21'/%3E%3C/svg%3E") center/24px 24px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 21 21'/%3E%3C/svg%3E") center/24px 24px no-repeat}
:is(#masthead,.elementor-edit-area) .pc87-hdr-recherche .hfe-search-icon-toggle i.fa-search::before{content:none}
:is(#masthead,.elementor-edit-area) .pc87-hdr-recherche .hfe-search-button-wrapper:focus-within .hfe-search-icon-toggle{background:var(--pc87-teinte)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-recherche .hfe-search-icon-toggle input.hfe-search-form__input{position:absolute;top:100%;right:0;left:0;z-index:30;width:auto;height:64px;margin:0;padding:0 max(var(--pc87-gouttiere),(100% - var(--pc87-contenu)) / 2) 0 calc(max(var(--pc87-gouttiere),(100% - var(--pc87-contenu)) / 2) + 7.5rem);border:0;border-bottom:1px solid var(--pc87-bord-l);border-radius:0;background:var(--pc87-blanc);color:var(--pc87-texte);font:400 var(--pc87-fs-corps)/1.3 var(--pc87-police-texte);cursor:text;box-shadow:var(--pc87-ombre-flottant);clip-path:inset(50%);transition:none}
:is(#masthead,.elementor-edit-area) .pc87-hdr-recherche .hfe-search-icon-toggle input.hfe-search-form__input:focus{clip-path:none;outline:3px solid var(--pc87-focus);outline-offset:-3px}
:is(#masthead,.elementor-edit-area) .pc87-hdr-recherche .hfe-search-button-wrapper:focus-within::before{content:"Rechercher :";display:flex;align-items:center;position:absolute;top:100%;left:max(var(--pc87-gouttiere),(100% - var(--pc87-contenu)) / 2);z-index:31;height:64px;color:var(--pc87-bleu);font:600 var(--pc87-fs-action)/1 var(--pc87-police-titre);pointer-events:none}

/* 4. Menu principal, desktop (≥ 1025 px) : widget HFE « Navigation Menu » (menu « Menu principal »),
   Poppins 600 16 px bleu, rubrique courante annoncée par le trait oblique, sous-menus en couche
   flottante (bord, rayon 10, seule ombre du site) ouverts au survol et au clavier. */
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu :is(a.hfe-menu-item,a.hfe-sub-menu-item){background:none;color:var(--pc87-bleu);font-family:var(--pc87-police-titre);letter-spacing:0;text-decoration:none;transition:color var(--pc87-duree) var(--pc87-ease)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu li.menu-item{border:0;background:none}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .sub-arrow{display:inline-flex;align-items:center;justify-content:center;flex:none;margin:0;padding:0;border:0;color:var(--pc87-bleu)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .sub-arrow i{display:block;width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/100% no-repeat;transition:transform var(--pc87-duree) var(--pc87-ease)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .sub-arrow i::before{content:none}
/* Focus visible sur le lien d'une rubrique à sous-menu : HFE met outline:0 sur
   .hfe-has-submenu-container a.hfe-menu-item:focus (0,3,1), plus fort que la règle de base. */
#masthead .pc87-hdr-menu .hfe-has-submenu-container a.hfe-menu-item:focus-visible,#masthead .pc87-hdr-menu .hfe-has-submenu-container[role=button]:focus-visible{outline:3px solid var(--pc87-focus);outline-offset:-3px}
@media (min-width:1025px){
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav.hfe-nav-menu__layout-horizontal>ul.hfe-nav-menu{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:2px}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu a.hfe-menu-item{display:flex;align-items:center;gap:6px;min-height:var(--pc87-cible);padding:0 12px;font-size:var(--pc87-fs-corps);font-weight:600;line-height:1.3;white-space:nowrap}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu>li:is(.current-menu-item,.current-menu-ancestor)>a.hfe-menu-item,:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu>li:is(.current-menu-item,.current-menu-ancestor)>.hfe-has-submenu-container>a.hfe-menu-item{position:relative;padding-left:calc(12px + .95em)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu>li:is(.current-menu-item,.current-menu-ancestor)>a.hfe-menu-item::before,:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu>li:is(.current-menu-item,.current-menu-ancestor)>.hfe-has-submenu-container>a.hfe-menu-item::before{content:"";position:absolute;left:calc(12px + .5em);top:calc(50% - 1em);width:var(--pc87-trait-ep);height:1.5em;background:var(--pc87-orange);transform:rotate(var(--pc87-trait-angle));transform-origin:50% 100%;opacity:1}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu ul.sub-menu{top:100%;left:0;width:auto;min-width:240px;margin:0;padding:8px 16px;border:1px solid var(--pc87-bord);border-radius:var(--pc87-rayon-m);background:var(--pc87-blanc);box-shadow:var(--pc87-ombre-flottant)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu ul.sub-menu li.menu-item{border:0;border-radius:0;overflow:visible}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu ul.sub-menu a.hfe-sub-menu-item{display:flex;align-items:center;min-height:var(--pc87-cible);padding:0;font-size:var(--pc87-fs-corps);font-weight:500;line-height:1.3;white-space:nowrap}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu ul.sub-menu li.current-menu-item>a.hfe-sub-menu-item{font-weight:700}
/* Sous-menu ouvert au survol et dès que le focus clavier entre dans la rubrique (y compris après une
   fermeture par Échap/Entrée d'HFE, qui écrit ses styles en ligne) */
#masthead .pc87-hdr-menu .hfe-nav-menu li.menu-item-has-children:is(:hover,:focus-within)>ul.sub-menu{visibility:visible!important;opacity:1!important;height:auto!important}
/* Intégration 1 (WCAG 1.4.13) : Échap referme le sous-menu ouvert au survol ou au focus (classe posée par le script du
   pied de page, retirée quand la souris ou le focus quitte la rubrique, ou par Entrée / Espace) */
#masthead .pc87-hdr-menu .hfe-nav-menu li.menu-item-has-children.pc87-sous-ferme>ul.sub-menu{visibility:hidden!important;opacity:0!important}
}

/* 5. Menu mobile (≤ 1024 px), écran E1 : burger 48 px ; ouvert, le menu s'étend sous la barre sur toute
   la largeur et au moins sur la hauteur de l'écran (dans le flux : rien ne passe dessous), lignes de
   56 px filetées, sous-menus dépliés par le chevron (48 px), puis « Aidez-nous », « Espace membres »
   et les réseaux. Le widget du menu et son enveloppe passent en display:contents pour que le burger et
   le panneau deviennent des éléments de la barre (sur le site seulement : l'éditeur garde les poignées). */
@media (max-width:1024px){
#masthead .pc87-hdr-menu,#masthead .pc87-hdr-menu>.elementor-widget-container,#masthead .pc87-hdr-menu div.hfe-nav-menu{display:contents}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu__toggle{display:flex;align-items:center;justify-content:center;flex:0 0 var(--pc87-cible);width:var(--pc87-cible);height:var(--pc87-cible);margin:0;padding:0;border:0;border-radius:var(--pc87-pilule);background:transparent;color:var(--pc87-bleu);cursor:pointer;transition:background-color var(--pc87-duree) var(--pc87-ease)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu__toggle.hfe-active-menu{background:var(--pc87-teinte)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu-icon{display:block;width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E") center/24px 24px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E") center/24px 24px no-repeat}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-active-menu .hfe-nav-menu-icon{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E")}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu-icon :is(svg,i){display:none}
#masthead .pc87-hdr-menu nav.hfe-nav-menu__layout-horizontal{position:static;flex:0 0 calc(100% + 22px);width:auto;max-width:none;margin:0 -7px 0 -15px;padding:0 15px;background:var(--pc87-blanc)}
#masthead .pc87-hdr-menu .hfe-active-menu+nav.hfe-nav-menu__layout-horizontal{padding-top:6px;border-top:1px solid var(--pc87-bord-l)}
#masthead .pc87-hdr-menu nav ul.hfe-nav-menu{position:static;width:100%;box-shadow:none}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.hfe-nav-menu>li.menu-item{border:0;border-bottom:1px solid var(--pc87-bord-l);border-radius:0;overflow:visible}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.hfe-nav-menu li.menu-item a.hfe-menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--pc87-cible-ligne);padding:0;font-size:1.0625rem;font-weight:600;line-height:1.3;text-align:left}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.hfe-nav-menu .hfe-has-submenu-container{position:relative}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.hfe-nav-menu .sub-arrow{width:var(--pc87-cible);height:var(--pc87-cible);margin:0 -12px 0 auto;padding:0;border:0}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.hfe-nav-menu .sub-arrow i{width:20px;height:20px}
/* Rubrique sans page (« Former », lien sans adresse) : toute la ligne déplie le sous-menu */
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.hfe-nav-menu a.hfe-menu-item:is(:not([href]),[href="#"]) .sub-arrow{position:absolute;inset:0;width:auto;height:auto;margin:0;justify-content:flex-end;cursor:pointer}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.hfe-nav-menu .hfe-has-submenu-container:has(+ul.sub-menu[style*="visibility: visible"]) .sub-arrow i{transform:rotate(180deg)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.sub-menu{margin:0;padding:0 0 0 16px;border:0;border-radius:0;background:none;box-shadow:none}
/* Sous-menu déplié : HFE l'ouvre par des styles en ligne (visibility: visible) */
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.sub-menu[style*="visibility: visible"]{padding-bottom:10px}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.sub-menu li.menu-item{border:0;border-radius:0;background:none}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.sub-menu a.hfe-sub-menu-item{display:flex;align-items:center;min-height:var(--pc87-cible);padding:0;font-size:var(--pc87-fs-corps);font-weight:500;line-height:1.3}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.sub-menu li.current-menu-item>a.hfe-sub-menu-item{position:relative;padding-left:.95em;font-weight:700}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.sub-menu li.current-menu-item>a.hfe-sub-menu-item::before{content:"";position:absolute;left:.5em;top:calc(50% - 1.12em);width:var(--pc87-trait-ep);height:1.5em;background:var(--pc87-orange);transform:rotate(var(--pc87-trait-angle));transform-origin:50% 100%;opacity:1}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.hfe-nav-menu>li:is(.current-menu-item)>a.hfe-menu-item{position:relative;padding-left:.95em;font-weight:700}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu nav ul.hfe-nav-menu>li:is(.current-menu-item)>a.hfe-menu-item::before{content:"";position:absolute;left:.5em;top:calc(50% - 1.12em);width:var(--pc87-trait-ep);height:1.5em;background:var(--pc87-orange);transform:rotate(var(--pc87-trait-angle));transform-origin:50% 100%;opacity:1}
/* Bas du panneau : actions et réseaux, visibles seulement menu ouvert */
#masthead .e-con.pc87-hdr-plus{display:none}
#masthead .pc87-hdr-barre:has(.hfe-nav-menu__toggle.hfe-active-menu) .e-con.pc87-hdr-plus{display:flex}
#masthead .pc87-hdr-barre:has(.hfe-nav-menu__toggle.hfe-active-menu)>.e-con-inner{min-height:calc(100vh - 1px);min-height:calc(100dvh - 1px);align-content:flex-start}
.e-con.pc87-hdr-plus{--flex-basis:calc(100% + 22px);--flex-grow:0;--flex-shrink:0;--margin-left:-15px;--margin-right:-7px;--padding-top:0px;--padding-right:15px;--padding-bottom:32px;--padding-left:15px;--flex-direction:column;--align-items:flex-start;--row-gap:14px;--column-gap:14px;max-width:none;background-color:var(--pc87-blanc)}
.e-con.pc87-hdr-plus-actions{--flex-direction:row;--flex-wrap:wrap;--align-items:center;--justify-content:flex-start;--row-gap:10px;--column-gap:24px;--margin-top:28px;--width:auto}
}

/* 6. Footer (E3) : fond clair #f5f7fb, logo en couleur et réseaux, puis trois volets repliables au
   téléphone (Présentation, Plan du site, Contact) qui deviennent, dès 1025 px, trois colonnes
   ouvertes + Qualiopi ; crédits et liens légaux sous un filet. */
.e-con.pc87-pied{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--row-gap:0px;--column-gap:0px;border-top:1px solid var(--pc87-bord-l);background-color:var(--pc87-fond);color:var(--pc87-texte);font:400 var(--pc87-fs-action)/var(--pc87-lh-corps) var(--pc87-police-texte)}
.pc87-pied .e-con{--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px}
.e-con:is(.pc87-pied-tete,.pc87-pied-grille,.pc87-credits){--padding-left:var(--pc87-gouttiere);--padding-right:var(--pc87-gouttiere);--row-gap:0px;--column-gap:24px}
.e-con.pc87-pied-tete{--padding-top:22px;--padding-bottom:10px;--flex-direction:row;--flex-wrap:wrap;--align-items:center;--justify-content:space-between}
.e-con.pc87-pied-grille{--padding-top:0px;--padding-bottom:0px}
.pc87-pied .elementor-widget{margin-block:0}
.elementor-widget.pc87-pied-logo{flex:0 0 auto}
/* Taille des titres (17 px, A) : le réglage « Balise HTML du titre » écrit --n-accordion-title-font-size (h2 :
   2rem ; h3 : « 1,75rem », valeur invalide) à 0,3,0 et 30-pages fixe les volets des pages à 16 px ; la taille
   est donc posée ici avec l'ancrage. Paragraphes du footer : ancrés aussi (30-pages espace ceux des volets). */
:is(#colophon,.elementor-edit-area) .pc87-pied-volets .e-n-accordion-item-title-text{font-size:var(--pc87-fs-h4)}
.pc87-pied-volets .e-n-accordion-item,.pc87-pied-volets .e-n-accordion-item:first-child{border-color:var(--pc87-bord)}
.pc87-pied-volets .e-n-accordion-item-title-text{margin:0}
:is(#colophon,.elementor-edit-area) .pc87-pied-texte p{margin:0}
:is(#colophon,.elementor-edit-area) .pc87-pied-texte p+p{margin-top:10px}
/* Plan du site : 2 colonnes de liens au téléphone, 1 dès 1025 ; chaque lien occupe toute sa cellule, sur
   toutes les pages (la feuille « Liste d'icônes » d'Elementor n'est pas chargée partout : sans elle, le lien
   se réduisait à son texte, « Aider » 40 × 48 px sur l'accueil). */
.pc87-pied-plan .elementor-icon-list-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
#colophon :is(.pc87-pied-plan,.pc87-pied-legal) .elementor-icon-list-item>a{display:flex;align-items:center;width:100%;min-width:var(--pc87-cible);min-height:var(--pc87-cible)}
@media (min-width:1025px){
.e-con.pc87-pied-tete{--padding-top:48px;--padding-bottom:28px}
.e-con.pc87-pied-grille>.e-con-inner{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.3fr) auto;align-items:start;gap:40px;padding-block:32px 40px;border-top:1px solid var(--pc87-bord)}
.pc87-pied-volets.elementor-widget,.pc87-pied-volets .e-n-accordion{display:contents}
.pc87-pied-volets .e-n-accordion-item,.pc87-pied-volets .e-n-accordion-item:first-child{border:0}
.pc87-pied-volets .e-n-accordion-item-title{min-height:var(--pc87-cible);margin-bottom:4px;padding:0;cursor:default}
.pc87-pied-volets .e-n-accordion-item-title::after{display:none}
#colophon .pc87-pied-volets .e-n-accordion-item>.e-con{display:flex}
.pc87-pied-plan .elementor-icon-list-items{grid-template-columns:minmax(0,1fr)}
}
/* Colonnes toujours ouvertes dès 1025 px : contenu des <details> fermés affiché (navigateurs qui
   connaissent ::details-content ; ailleurs, les volets restent simplement dépliables). */
@supports selector(::details-content){
@media (min-width:1025px){
.pc87-pied-volets details.e-n-accordion-item::details-content{content-visibility:visible;display:contents}
.pc87-pied-volets .e-n-accordion-item-title{pointer-events:none}
}
}

/* 7. Contact (Éditeur de texte, <address>) : téléphone et e-mail en liens-actions, 2 adresses côte à
   côte au téléphone ; Qualiopi : vignette cliquable vers le certificat (PDF). */
.pc87-pied-contact{font-style:normal}
:is(#colophon,.elementor-edit-area) .pc87-pied-contact .pc87-pied-tel{display:flex;flex-wrap:wrap;align-items:center;column-gap:6px;margin:0}
.pc87-pied-contact .pc87-pied-tel span{color:var(--pc87-doux)}
.elementor-widget-text-editor .pc87-pied-contact .pc87-pied-tel a{display:inline-flex;align-items:center;min-height:var(--pc87-cible);color:var(--pc87-bleu);font:600 var(--pc87-fs-corps)/1.3 var(--pc87-police-titre);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:5px;overflow-wrap:anywhere}
.pc87-pied-adresses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:8px}
:is(#colophon,.elementor-edit-area) .pc87-pied-contact .pc87-pied-adresses p{margin:0}
.elementor-widget.pc87-pied-qualiopi{padding:16px 0 14px;text-align:left}
.pc87-pied-qualiopi a{display:inline-block;overflow:hidden;border:1px solid var(--pc87-bord-l);border-radius:var(--pc87-rayon-s);background:var(--pc87-blanc);vertical-align:top}
.elementor .pc87-pied-qualiopi img{display:block;width:auto;height:64px;max-width:none}
@media (min-width:1025px){
.pc87-pied-adresses{grid-template-columns:minmax(0,1fr)}
.elementor-widget.pc87-pied-qualiopi{padding:0}
.elementor .pc87-pied-qualiopi img{height:96px}
}

/* 8. Crédits (texte en ligne, sans mention d'agence), 8 liens légaux (4 pages, 4 PDF, nouvel onglet)
   et « Haut de page » vers le header. Téléphone : empilés, liens sur 2 colonnes. 1025 px : texte et
   « Haut de page » sur une ligne, liens légaux en ligne dessous. */
.e-con.pc87-credits{--padding-top:10px;--padding-bottom:8px;--flex-direction:column;--align-items:stretch;border-top:1px solid var(--pc87-bord);color:var(--pc87-doux);font:400 var(--pc87-fs-petit)/var(--pc87-lh-corps) var(--pc87-police-texte)}
:is(#colophon,.elementor-edit-area) .pc87-credits-texte .hfe-copyright-wrapper{color:var(--pc87-doux);font:400 var(--pc87-fs-petit)/var(--pc87-lh-corps) var(--pc87-police-texte);text-align:left}
:is(#colophon,.elementor-edit-area) .pc87-credits-texte .hfe-copyright-wrapper a{display:inline;padding-block:16px;color:var(--pc87-bleu);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.pc87-pied-legal .elementor-icon-list-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin-top:6px}
.pc87-pied-legal.elementor-widget a{min-width:var(--pc87-cible);font-size:var(--pc87-fs-petit)}
.elementor-widget.pc87-haut-page{align-self:flex-start}
/* « Gérer mes cookies » (tour 5) : bouton de Complianz (.cmplz-manage-consent, rouvre son bandeau) ou, sans
   Complianz, lien vers la politique de cookies ; même aspect que les liens légaux, cible de 48 px, bleu sur le
   fond du footer (#004080 sur #f5f7fb : 9,57:1). Les styles de bouton de Hello (bordure, fond rose au survol
   et au focus) sont neutralisés ; le focus garde l'anneau du site (10-base). */
.elementor-widget.pc87-cookies-widget{margin-block:0}
:is(#colophon,.elementor-edit-area) .pc87-cookies{margin:0}
:is(#colophon,.elementor-edit-area) .pc87-cookies :is(button,a),:is(#colophon,.elementor-edit-area) .pc87-cookies button:is(:hover,:focus,:active){display:inline-flex;align-items:center;min-width:var(--pc87-cible);min-height:var(--pc87-cible);margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--pc87-bleu);font:600 var(--pc87-fs-petit)/1.3 var(--pc87-police-titre);letter-spacing:0;text-align:left;text-transform:none;white-space:normal;text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:5px;cursor:pointer;box-shadow:none}
:is(#colophon,.elementor-edit-area) .pc87-cookies [hidden]{display:none!important}
@media (min-width:1025px){
.e-con.pc87-credits>.e-con-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 24px}
.pc87-credits .pc87-pied-legal{grid-column:1/-1;grid-row:2}
.pc87-credits .pc87-cookies-widget{grid-column:1/-1;grid-row:3}
.pc87-credits .pc87-haut-page{grid-column:2;grid-row:1}
.pc87-pied-legal .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:0 20px;margin-top:0}
.pc87-pied-legal.elementor-widget a{justify-content:center}
}
/* 9. Lien d'évitement d'HFE (« Aller au contenu », vers #content) aux couleurs du site, et fenêtre de don
   (composant don-helloasso.html du footer) : trait de son titre dans le sens de la charte (-20°). */
body .hfe-skip-link:focus{top:8px;left:8px;padding:12px 20px;border-radius:var(--pc87-pilule);background:var(--pc87-blanc);color:var(--pc87-bleu);font:600 var(--pc87-fs-action)/1.3 var(--pc87-police-titre);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:4px;box-shadow:var(--pc87-ombre-flottant);outline:3px solid var(--pc87-focus);outline-offset:3px}
body #pc87-don .pc87-don__titre::before{transform:translateY(-50%) rotate(var(--pc87-trait-angle))}
/* Intégration 1 : le cadre HelloAsso de la fenêtre de don montre quand il a le focus clavier (aucun indicateur avant) */
body #pc87-don .pc87-don__cadre:focus{outline:3px solid var(--pc87-focus);outline-offset:-3px}
/* 9 b. Bandeau de Complianz 7.5.5 (intégration 1, mesures du banc « cookies ») : croix (elle vaut « Refuser ») et
   chevrons des catégories à 48 px, « Toujours activé » à 14 px (règles des 48 px et des 13 px). Le script du pied
   de page ajoute Espace sur la croix et Échap (= la croix). */
body .cmplz-cookiebanner .cmplz-close{display:inline-flex;align-items:center;justify-content:center;min-width:var(--pc87-cible);min-height:var(--pc87-cible)}
body .cmplz-cookiebanner .cmplz-category-toggle{min-width:var(--pc87-cible);min-height:var(--pc87-cible)}
body .cmplz-cookiebanner{--cmplz_category_header_active_font_size:var(--pc87-fs-petit)}
body .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active{font-size:var(--pc87-fs-petit)}
/* Scripts du menu et des volets au clavier (widget HTML du footer) : rien à afficher. */
.elementor-widget.pc87-menu-clavier{display:none}

/* 10. Survol : souris seulement */
@media (hover:hover){
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu :is(a.hfe-menu-item,a.hfe-sub-menu-item):hover{color:var(--pc87-bleu);text-decoration:underline;text-decoration-color:var(--pc87-orange);text-decoration-thickness:2px;text-underline-offset:6px}
:is(#masthead,.elementor-edit-area) .pc87-hdr-recherche .hfe-search-icon-toggle:hover{background:var(--pc87-teinte)}
:is(#masthead,.elementor-edit-area) .pc87-hdr-menu .hfe-nav-menu__toggle:hover{background:var(--pc87-teinte)}
.pc87-pied-contact .pc87-pied-tel a:hover{text-decoration-color:currentColor}
}
/* ==== 30-pages.css ==== */
/* =====================================================================
   30 - PAGES INTÉRIEURES (modèles templates/page-*.json, gen/pages.py)
   Complète la tête de page (pc87-page-tete, 10-base) et les composants
   partagés. Classes posées par le générateur : un réglage de style n'est
   jamais aussi dans le JSON.
    1. Tête de page : sigle     6. Tableaux             11. Adresses
    2. Photos, galeries         7. Étapes numérotées    12. Plan du site
    3. Logos d'organismes       8. Colonnes             13. Documents légaux
    4. Extensions (modules)     9. Coordonnées          14. Volets de texte
    5. Fin de page              10. Formulaire CF7
   ===================================================================== */

/* 1. Tête de page : sigle de l'association (Notre association) sous le chapô, puis à droite dès 1024 px */
.e-con.pc87-page-tete>.e-con-inner{position:relative}
.pc87-page-tete .elementor-widget.pc87-sigle{margin-block-start:16px;line-height:0}
.pc87-sigle img{display:block;width:88px;height:auto}
@media (min-width:1024px){
.pc87-page-tete .elementor-widget.pc87-sigle{position:absolute;right:0;bottom:44px;margin:0}
.pc87-sigle img{width:140px}
}
/* Section qui prolonge la tête de page (Notre association) : pas de grand blanc entre le chapô et le texte ;
   dès 1024 px, colonne de lecture à gauche et certificat Qualiopi dans la colonne de droite (encadré qui
   accompagne la lecture), sous le sigle de la tête de page. */
.e-con.pc87-page-tete+.e-con.pc87-section--suite{--padding-top:0px}
@media (min-width:1024px){
.e-con.pc87-asso-corps>.e-con-inner{display:grid;grid-template-columns:minmax(0,64ch) minmax(0,1fr);align-items:start;gap:var(--pc87-e4) var(--pc87-e12)}
.e-con.pc87-asso-corps>.e-con-inner>.elementor-widget:not(.pc87-qualiopi){grid-column:1}
.pc87-asso-corps .elementor-widget.pc87-qualiopi{grid-column:2;grid-row:1/span 2;justify-self:end;position:sticky;top:24px;padding:16px;border:1px solid var(--pc87-bord-l);border-radius:var(--pc87-rayon);background:var(--pc87-blanc)}
}
/* Fil d'Ariane HFE : l'icône d'accueil vide (aucune icône choisie) garde une marge de 10 px, retirée */
.pc87-ariane .hfe-breadcrumbs-home-icon:empty{display:none}
/* Dernier élément (page courante) sur une ligne de 48 px comme les liens : quand le fil passe à la ligne
   (titre long, ex. demande de DPS à 375 px), le trait du H1 ne touche plus son texte (intégration). */
.pc87-ariane .hfe-breadcrumbs .hfe-breadcrumbs-last{display:inline-flex;align-items:center;min-height:var(--pc87-cible)}

/* 2. Photos nettes : galerie (2 colonnes, 4 dès 1024 px) et photo seule ; recadrage 3:2, arrondi 10 px.
   Sans lien ni visionneuse, comme sur le site en ligne. */
.e-con.pc87-galerie{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (min-width:768px){.e-con.pc87-galerie{gap:12px}}
@media (min-width:1024px){.e-con.pc87-galerie{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}
:is(.pc87-galerie>.elementor-widget-image,.elementor-widget.pc87-photo){margin:0;line-height:0}
:is(.pc87-galerie>.elementor-widget-image,.elementor-widget.pc87-photo) a{display:block;border-radius:var(--pc87-rayon-m)}
:is(.pc87-galerie>.elementor-widget-image,.elementor-widget.pc87-photo) img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:var(--pc87-rayon-m)}
.elementor-widget.pc87-qualiopi{line-height:0;text-align:start}
.pc87-qualiopi a{display:inline-block}
.pc87-qualiopi img{display:block;width:180px;height:auto}

/* 3. Logos d'organismes (Infos financement) : taille contenue, jamais étirés */
.elementor-widget.pc87-logo{line-height:0}
.pc87-logo img{display:block;width:auto;max-width:min(100%,220px);max-height:88px;height:auto}
.pc87-organisme a{overflow-wrap:anywhere}
.pc87-organisme p>a:only-child{display:inline-flex;align-items:center;min-height:var(--pc87-cible)}

/* 4. Formulaires des extensions (DPS, bénévole : colonne de 880 px) : conteneur sans gouttière ; la colonne,
   le titre et le texte qui la précèdent sont alignés À GAUCHE sur la grille des pages (bord du contenu :
   gouttière de 15 px, puis cadre de 1320 px centré), comme le H1 et les autres sections (50-modules pour les
   formulaires eux-mêmes). Le catalogue (pc87-catalogue) garde au contraire la gouttière de la section. */
.e-con.pc87-module{--padding-left:0px;--padding-right:0px}
/* 04/10/2026, demande de Léo (« Votre demande n'est pas centré ») : la colonne de 880 px des formulaires est CENTRÉE
   (titre et formulaire), sur la page DPS comme sur Devenir bénévole ; avant : alignée à gauche (question M-a). */
.e-con.pc87-colonne-module{--padding-left:var(--pc87-gouttiere);--padding-right:var(--pc87-gouttiere);width:100%;max-width:880px;margin-inline:auto}

/* 5. Duo aligné en haut (Aider, Donner : colonne de texte + photo plus haute que le bandeau) : dès 1024 px le
   bandeau part du haut de la section et reste visible pendant la lecture de la colonne (position collante,
   le header n'est pas collant). Extension en tête de page : pas de marge haute en plus de la sienne. */
@media (min-width:1024px){
.e-con.pc87-duo--haut>.e-con-inner,.e-con-full.pc87-duo--haut{align-items:start}
.pc87-duo--haut .e-con.pc87-bandeau{position:sticky;top:24px}
}
.e-con.pc87-page-tete+.e-con:is(.pc87-module,.pc87-catalogue){--padding-top:0px}

/* 6. Tableaux (DPS, cookies) : lignes sur fond blanc ; sous 600 px chaque ligne devient une carte
   (libellés data-label) */
.pc87-tableau table,.pc87-legal table{width:100%;max-width:880px;margin:0 0 1rem;border-collapse:collapse;border:0;font-size:var(--pc87-fs-petit);line-height:1.5}
:is(.pc87-tableau,.pc87-legal) :is(th,td){padding:10px 12px;border:0;border-bottom:1px solid var(--pc87-bord-l);background:var(--pc87-blanc);text-align:left;vertical-align:top}
:is(.pc87-tableau,.pc87-legal) th{background:var(--pc87-bleu);color:var(--pc87-blanc);font:600 var(--pc87-fs-petit)/1.4 var(--pc87-police-titre)}
:is(.pc87-tableau,.pc87-legal) tbody>tr:nth-child(odd)>td{background:var(--pc87-blanc)}
:is(.pc87-tableau,.pc87-legal) td a{overflow-wrap:anywhere}
:is(.pc87-tableau,.pc87-legal) td>a:only-child{display:inline-flex;align-items:center;min-width:var(--pc87-cible);min-height:var(--pc87-cible);margin-block:-12px}
@media (max-width:599px){
:is(.pc87-tableau,.pc87-legal) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
:is(.pc87-tableau,.pc87-legal) :is(table,tbody,tr,td){display:block;width:100%}
:is(.pc87-tableau,.pc87-legal) tr{margin:0 0 10px;padding:6px 0;border:1px solid var(--pc87-bord-l);border-radius:var(--pc87-rayon-m);background:var(--pc87-blanc)}
:is(.pc87-tableau,.pc87-legal) td{display:grid;grid-template-columns:minmax(0,7.5rem) minmax(0,1fr);gap:10px;padding:6px 12px;border:0}
:is(.pc87-tableau,.pc87-legal) td::before{content:attr(data-label);color:var(--pc87-bleu);font:600 var(--pc87-fs-petit)/1.5 var(--pc87-police-titre)}
:is(.pc87-tableau,.pc87-legal) td:empty{display:none}
}

/* 7. Étapes numérotées (DPS, « Le déroulement ») */
ol.pc87-etapes{display:grid;gap:14px;margin:0;padding:0;list-style:none;counter-reset:pc87-etape}
ol.pc87-etapes>li{position:relative;min-height:34px;padding:5px 0 0 48px;counter-increment:pc87-etape}
ol.pc87-etapes>li::before{content:counter(pc87-etape);position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;background:var(--pc87-bleu);color:var(--pc87-blanc);font:700 var(--pc87-fs-action)/34px var(--pc87-police-titre);text-align:center}
ol.pc87-etapes strong{color:var(--pc87-bleu)}

/* 8. Colonnes : volets et textes à largeur de lecture ; Contact en 2 colonnes dès 1024 px */
.e-con.pc87-colonne{width:100%;max-width:820px}
.e-con.pc87-contact{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;align-items:start}
@media (min-width:1024px){.e-con.pc87-contact{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px}}

/* 9. Coordonnées (téléphone, e-mail) : cibles de 48 px */
.pc87-coordonnees p{margin:0}
.pc87-coordonnees a{display:inline-flex;align-items:center;min-height:var(--pc87-cible);overflow-wrap:anywhere}

/* 10. Formulaire de contact (Contact Form 7) : champs de 48 px, bord gris doux 5,91:1, libellés Poppins */
.pc87-formulaire .wpcf7-form>p{margin:0 0 18px}
.pc87-formulaire .wpcf7-form>p:first-of-type{color:var(--pc87-doux);font-size:var(--pc87-fs-petit)}
.pc87-formulaire label{display:block;color:var(--pc87-texte);font:600 var(--pc87-fs-action)/1.4 var(--pc87-police-titre)}
.pc87-formulaire label>br{display:none}
.pc87-formulaire .wpcf7-form-control-wrap{display:block;margin-top:6px}
.pc87-formulaire :is(input[type=text],input[type=email],input[type=tel],select,textarea){display:block;box-sizing:border-box;width:100%;min-height:var(--pc87-cible);margin:0;padding:10px 14px;border:1.5px solid var(--pc87-champ-bord);border-radius:var(--pc87-rayon-m);background:var(--pc87-blanc);color:var(--pc87-texte);font:400 var(--pc87-fs-corps)/1.4 var(--pc87-police-texte)}
.pc87-formulaire textarea{min-height:168px;resize:vertical}
.pc87-formulaire [aria-invalid=true]{border-color:var(--pc87-erreur)}
.pc87-formulaire .wpcf7-acceptance .wpcf7-list-item{display:block;margin:0}
.pc87-formulaire .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:12px;min-height:var(--pc87-cible);padding:12px 0;color:var(--pc87-texte);font:400 var(--pc87-fs-corps)/1.5 var(--pc87-police-texte);cursor:pointer}
.pc87-formulaire .wpcf7-acceptance input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--pc87-bleu)}
.pc87-formulaire .wpcf7-list-item-label a{color:var(--pc87-lien);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:3px}
.pc87-formulaire .wpcf7-form .wpcf7-submit{display:inline-flex;align-items:center;justify-content:center;min-height:var(--pc87-cible);padding:12px 28px;border:1.5px solid var(--pc87-bleu);border-radius:var(--pc87-pilule);background:var(--pc87-bleu);color:var(--pc87-blanc);font:600 var(--pc87-fs-action)/1.2 var(--pc87-police-titre);cursor:pointer;transition:background-color var(--pc87-duree) var(--pc87-ease),border-color var(--pc87-duree) var(--pc87-ease)}
.pc87-formulaire .wpcf7-form .wpcf7-submit:disabled{cursor:not-allowed;opacity:.6}
.pc87-formulaire .wpcf7-not-valid-tip{margin-top:6px;color:var(--pc87-erreur);font:400 var(--pc87-fs-petit)/1.4 var(--pc87-police-texte)}
.pc87-formulaire .wpcf7 form .wpcf7-response-output{margin:8px 0 0;padding:12px 16px;border:1.5px solid var(--pc87-bleu);border-radius:var(--pc87-rayon-m);color:var(--pc87-texte)}
.pc87-formulaire .wpcf7 form:is(.invalid,.unaccepted,.payment-required,.failed,.aborted,.spam) .wpcf7-response-output{border-color:var(--pc87-erreur);background:var(--pc87-erreur-fond)}
@media (max-width:599px){.pc87-formulaire .wpcf7-form .wpcf7-submit{width:100%}}

/* 11. Adresses (Contact) : encadrés, sans italique */
.pc87-adresse address{margin:0;font-style:normal}
.pc87-adresse address p{margin:0}

/* 12. Plan du site : liens de 48 px, sous-pages en retrait */
ul.pc87-plan,ul.pc87-plan ul{margin:0;padding:0;list-style:none}
ul.pc87-plan ul{padding-left:24px}
ul.pc87-plan a{display:inline-flex;align-items:center;min-width:var(--pc87-cible);min-height:var(--pc87-cible)}

/* 13. Documents légaux : intertitres plus petits que ceux des pages, liens et adresses longues coupés */
.pc87-legal{overflow-wrap:break-word}
.pc87-legal :is(h2,h3,h4){margin:0}
.pc87-legal h2{margin-block:32px 10px;font-size:var(--pc87-fs-h3)}
.pc87-legal h3{margin-block:24px 8px;font-size:var(--pc87-fs-h4)}
.pc87-legal h4{margin-block:16px 6px;color:var(--pc87-texte);font-size:var(--pc87-fs-corps)}
.pc87-legal p{margin:0 0 .9rem}
.pc87-legal a{overflow-wrap:anywhere}

/* 14. Volets : taille des titres FIXÉE ici quel que soit leur niveau. Elementor écrit pour la balise choisie
   --n-accordion-title-font-size (h4 : 1.5rem, h2 : 2rem…) dans le CSS de la page (0,3,0), qui passe devant la
   variable de pc87-volets ; seul h3 y échappe, par une coquille d'Elementor (« 1,75rem », valeur invalide).
   Paragraphes des réponses espacés comme dans l'Éditeur de texte. */
.pc87-volets .e-n-accordion-item-title-text{font-size:var(--pc87-fs-corps)}
.pc87-volets .elementor-widget-text-editor p{margin:0 0 .75rem}
.pc87-volets .elementor-widget-text-editor p:last-child{margin-bottom:0}
@media (hover:hover){
.pc87-formulaire .wpcf7-form .wpcf7-submit:not(:disabled):hover{background:var(--pc87-bleu-f);border-color:var(--pc87-bleu-f);color:var(--pc87-blanc)}
.pc87-formulaire .wpcf7-list-item-label a:hover{text-decoration-color:currentColor}
}
/* ==== 35-hello.css ==== */
/* =====================================================================
   35 - GABARITS DE HELLO (pages SANS Elementor) : Actualités (page des
   articles), article seul, archives (catégories), recherche, 404.
   Balisage de Hello Elementor 3.5.1 (template-parts/*.php) :
   main#content.site-main > .page-header > h1.entry-title ; .page-content
   > article.post > h2.entry-title > a + a > img.wp-post-image + p ;
   nav.pagination > .nav-previous / .nav-next. Portée : body sans classe
   elementor-page-* (une page Elementor n'a pas ce gabarit).
    1. Gabarit       4. Recherche          7. Commentaires
    2. Tête de page  5. Pagination
    3. Cartes        6. Article seul, 404
   ===================================================================== */

/* 1. Gabarit : même largeur et même gouttière que les pages Elementor et le header (1290 + 15 px), au lieu
   des paliers 500/600/800/1140 px de Hello (même spécificité 0,2,1, placé après). */
body:not([class*=elementor-page-]) .site-main{max-width:var(--pc87-cadre);margin-inline:auto;padding-inline:var(--pc87-gouttiere);padding-block-end:var(--pc87-section-y)}
body:not([class*=elementor-page-]) .site-main .page-header .entry-title{max-width:none;margin-inline:0;padding-inline-end:0}

/* 2. Tête de page : fil d'Ariane (pc87-gabarits 1.0.1, même balisage que le widget HFE des autres pages),
   puis H1 unique à trait oblique (comme pc87-h1), aux mêmes hauteurs que la tête des pages Elementor. */
body:not([class*=elementor-page-]) .site-main>.page-header{padding-block:calc(var(--pc87-fs-h1) * .5 + 8px) 24px}
body:not([class*=elementor-page-]) .site-main>.pc87-ariane--hello+.page-header{padding-block-start:6px}
@media (min-width:1024px){body:not([class*=elementor-page-]) .site-main>.pc87-ariane--hello{padding-block-start:4px}}
body:not([class*=elementor-page-]) .site-main>.page-header .entry-title{position:relative;margin:0;padding-inline-start:.95em;color:var(--pc87-bleu);font:700 var(--pc87-fs-h1)/1.2 var(--pc87-police-titre);letter-spacing:var(--pc87-ls-titre);text-wrap:balance;overflow-wrap:break-word}
body:not([class*=elementor-page-]) .site-main>.page-header .entry-title::before{content:"";position:absolute;left:.5em;top:-.5em;width:var(--pc87-trait-ep);height:1.5em;background:var(--pc87-orange);transform:rotate(var(--pc87-trait-angle));transform-origin:50% 100%}
body:not([class*=elementor-page-]) .site-main>.page-header .entry-title span{color:inherit}
@media (min-width:1024px){body:not([class*=elementor-page-]) .site-main>.page-header{padding-block-end:44px}}

/* 3. Cartes d'articles (Actualités, catégories) : grille 1 / 2 / 3 colonnes ; photo NETTE à la une en
   16:10 avec liseré orange, titre blanc sur aplat bleu qui épouse les lignes, posé en bas de la photo ;
   sans photo : carte texte seule (titre bleu), comme sur l'accueil, à toutes les largeurs. Date (ajoutée
   par pc87-gabarits 1.0.1) puis extrait dessous. */
:is(.blog,.archive) .site-main>.page-content{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--pc87-grille-gap);align-items:stretch}
@media (min-width:600px){:is(.blog,.archive) .site-main>.page-content{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){:is(.blog,.archive) .site-main>.page-content{grid-template-columns:repeat(3,minmax(0,1fr))}}
:is(.blog,.archive) .page-content>article.post{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr;margin:0;overflow:hidden;border:1px solid var(--pc87-bord-l);border-radius:var(--pc87-rayon);background:var(--pc87-blanc);transition:border-color var(--pc87-duree) var(--pc87-ease)}
:is(.blog,.archive) article.post>a:has(>img){grid-area:1/1;position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--pc87-bleu)}
:is(.blog,.archive) article.post>a:has(>img)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--pc87-lisere);background:var(--pc87-orange)}
:is(.blog,.archive) article.post .wp-post-image{display:block;width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0}
:is(.blog,.archive) article.post>.entry-title{grid-area:1/1;align-self:end;z-index:1;margin:0;padding:12px 12px 15px;font-size:0;line-height:0;pointer-events:none}
:is(.blog,.archive) article.post:not(:has(>a>img))>.entry-title{align-self:start;padding:14px 16px 0;font-size:var(--pc87-fs-h4);line-height:1.3}
:is(.blog,.archive) article.post>.entry-title a{display:inline;padding:.12em .45em;background:var(--pc87-bleu);color:var(--pc87-blanc);font:700 var(--pc87-fs-aplat-carte)/var(--pc87-lh-aplat) var(--pc87-police-titre);letter-spacing:var(--pc87-ls-titre);text-decoration:none;pointer-events:auto;-webkit-box-decoration-break:clone;box-decoration-break:clone}
:is(.blog,.archive) article.post:not(:has(>a>img))>.entry-title a{display:inline-flex;align-items:center;min-height:var(--pc87-cible);padding:0;background:none;color:var(--pc87-bleu);font:600 var(--pc87-fs-h4)/1.3 var(--pc87-police-titre)}
:is(.blog,.archive) article.post:not(:has(>a>img))>.entry-title a:focus-visible{outline-color:var(--pc87-focus);box-shadow:none}
/* Carte entière cliquable (lien du titre étendu à la carte) : cible bien plus grande que 48 px */
:is(.blog,.archive) article.post>.entry-title a::after{content:"";position:absolute;inset:0;z-index:2}
:is(.blog,.archive) article.post>.entry-title a:focus-visible{outline-color:var(--pc87-blanc);outline-offset:1px;box-shadow:0 0 0 5px var(--pc87-bleu-f)}
:is(.blog,.archive) article.post>p{grid-row:3;margin:0;padding:6px 16px 16px;color:var(--pc87-texte);font-size:var(--pc87-fs-corps);line-height:var(--pc87-lh-corps)}
:is(.blog,.archive) article.post>p.pc87-actu-date{grid-row:2;padding:12px 16px 0;color:var(--pc87-doux);font:400 var(--pc87-fs-petit)/1.4 var(--pc87-police-texte)}
:is(.blog,.archive) .page-content>p{grid-column:1/-1}

/* 4. Recherche : liste simple (les résultats sont surtout des pages, sans photo) : titre-lien, extrait, filet */
.search .site-main>.page-content{display:grid;gap:0;max-width:820px}
.search .page-content>article.post{margin:0;padding:18px 0;border-bottom:1px solid var(--pc87-bord-l)}
.search .page-content>article.post:first-child{border-top:1px solid var(--pc87-bord-l)}
.search article.post>.entry-title{margin:0 0 6px;font:600 var(--pc87-fs-h3)/1.3 var(--pc87-police-titre)}
.search article.post>.entry-title a{display:inline-flex;align-items:center;min-height:var(--pc87-cible);color:var(--pc87-bleu);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:5px}
.search article.post>a:has(>img){display:block;max-width:320px;margin:4px 0 10px}
.search article.post .wp-post-image{display:block;width:100%;height:auto;max-height:none;aspect-ratio:16/10;object-fit:cover;border-radius:var(--pc87-rayon-m)}
.search article.post>p{margin:0;color:var(--pc87-texte)}

/* 5. Pagination (Actualités, catégories, recherche) : boutons contour de 48 px */
body:not([class*=elementor-page-]) .site-main>.pagination{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:32px 0 0}
body:not([class*=elementor-page-]) .pagination a{display:inline-flex;align-items:center;gap:8px;min-height:var(--pc87-cible);padding:12px 22px;border:1.5px solid var(--pc87-bord);border-radius:var(--pc87-pilule);background:var(--pc87-blanc);color:var(--pc87-bleu);font:600 var(--pc87-fs-action)/1.2 var(--pc87-police-titre);text-decoration:none;transition:background-color var(--pc87-duree) var(--pc87-ease),border-color var(--pc87-duree) var(--pc87-ease)}
body:not([class*=elementor-page-]) .pagination .nav-previous:empty{display:none}
body:not([class*=elementor-page-]) .pagination .nav-next{margin-inline-start:auto}

/* 6. Article seul et 404 : colonne de lecture (720 px), intertitres, images arrondies, liens soulignés
   orange (base) ; listes à puces triangle (base) */
:is(.single,.error404,.search-no-results) .site-main>.page-content{max-width:720px}
.single .page-content>*{margin-block:0}
.single .page-content>*+*{margin-block-start:1rem}
.single .page-content>:is(h2,h3,h4){margin-block:2rem 0}
.single .page-content>:is(h2,h3,h4)+*{margin-block-start:.5rem}
.single .page-content h2{font-size:var(--pc87-fs-h3)}
.single .page-content h3{font-size:var(--pc87-fs-h4)}
.single .page-content :is(figure,.wp-block-image){margin-inline:0}
.single .page-content img{height:auto;border-radius:var(--pc87-rayon-m)}
.single .post-tags{margin-block-start:24px;color:var(--pc87-doux);font-size:var(--pc87-fs-petit)}

/* 7. Commentaires (si Léo les laisse ouverts ; conseil : Réglages > Discussion, les fermer) : champs de 48 px */
body:not([class*=elementor-page-]) .comments-area{max-width:720px;margin-block-start:40px;padding-block-start:24px;border-top:1px solid var(--pc87-bord-l)}
.comments-area .comment-reply-title{font-size:var(--pc87-fs-h3)}
/* Date et « Répondre » des commentaires : 11 px chez Hello (#comments, 1,1,0) ; 13 px au moins (tour 5), lien de 48 px */
#comments :is(.comment-metadata,.reply){font-size:var(--pc87-fs-etiquette);line-height:1.4}
#comments .reply a{display:inline-flex;align-items:center;min-height:var(--pc87-cible)}
.comment-form label{display:block;margin-bottom:6px;color:var(--pc87-texte);font:600 var(--pc87-fs-action)/1.4 var(--pc87-police-titre)}
.comment-form :is(input[type=text],input[type=email],input[type=url],textarea){display:block;box-sizing:border-box;width:100%;min-height:var(--pc87-cible);padding:10px 14px;border:1.5px solid var(--pc87-champ-bord);border-radius:var(--pc87-rayon-m);background:var(--pc87-blanc);color:var(--pc87-texte);font:400 var(--pc87-fs-corps)/1.4 var(--pc87-police-texte)}
.comment-form .comment-form-cookies-consent{display:flex;align-items:flex-start;gap:12px;min-height:var(--pc87-cible)}
.comment-form .comment-form-cookies-consent label{margin:0;font:400 var(--pc87-fs-corps)/1.5 var(--pc87-police-texte)}
.comment-form .comment-form-cookies-consent input{flex:none;width:22px;height:22px;margin-top:1px;accent-color:var(--pc87-bleu)}
.comment-form .form-submit [type=submit]{min-height:var(--pc87-cible);padding:12px 28px;border:1.5px solid var(--pc87-bleu);border-radius:var(--pc87-pilule);background:var(--pc87-bleu);color:var(--pc87-blanc);font:600 var(--pc87-fs-action)/1.2 var(--pc87-police-titre);cursor:pointer}
@media (hover:hover){
:is(.blog,.archive) .page-content>article.post:hover{border-color:var(--pc87-bleu)}
body:not([class*=elementor-page-]) .pagination a:hover{background:var(--pc87-teinte);border-color:var(--pc87-bleu);color:var(--pc87-bleu)}
.search article.post>.entry-title a:hover{text-decoration-color:currentColor}
.comment-form .form-submit [type=submit]:hover{background:var(--pc87-bleu-f);border-color:var(--pc87-bleu-f)}
}
/* ==== hfe/40-accueil.css ==== */
/* =====================================================================
   40 - ACCUEIL : page d'accueil (modèle templates/accueil.json). Généré
   avec le modèle par gen/accueil.py : ne pas retoucher à la main.
   Spécialise les composants des fondations (10-base) pour la composition
   validée de l'accueil (pc87-accueil/accueil.html) ; classes propres
   pc87-acc-, jetons var(--pc87-…) seulement, aucun id Elementor. Une
   propriété est réglée ici OU dans le JSON (marges entre widgets, grilles
   des portes et des chiffres, hauteurs des portes : dans le JSON).
    1. Haut de page : photo nette, H1 sur aplat, devise, portes d'entrée
    2. Formations : module pc87-formations, chiffres, Qualiopi
    3. Secourir, Aider (duos), S'engager (paire)
    4. Témoignages : avis Google recopiés
    5. Actualités : articles WordPress (section masquée sans article)
    6. Survol (souris), mouvement
   ===================================================================== */
/* 1. Haut de page. La photo est le fond du conteneur pc87-acc-hero-photo (réglée dans Elementor). Sous
   768 px le conteneur du texte s'efface (display:contents) : le H1 se pose sur la photo, la devise passe
   sous les portes ; dès 768 px le texte se pose en bas de la photo, la devise sur aplat bleu foncé. Hauteur
   de la photo dès 1024 px : la photo et les portes tiennent sous le header (--pc87-hdr, 149 px). */
.e-con.pc87-acc-hero-photo{position:relative;grid-area:1/1;height:clamp(250px,66.7vw,320px);overflow:hidden;background-image:url(/wp-content/uploads/2026/09/1R7A4479-768x512.jpg);background-position:60% 24%;background-repeat:no-repeat;background-size:cover}
@media (min-width:768px){.e-con.pc87-acc-hero-photo{background-image:url(/wp-content/uploads/2026/09/1R7A4479-1536x1024.jpg)}}
@media (min-width:1025px){.e-con.pc87-acc-hero-photo{background-image:url(/wp-content/uploads/2026/09/1R7A4479-2048x1365.jpg)}}
.e-con.pc87-acc-hero-photo::after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:1;height:var(--pc87-lisere);background:var(--pc87-orange)}
.e-con.pc87-acc-portes{grid-row:2}
.pc87-acc-devise>.elementor-heading-title{position:relative;padding-left:.95em;color:var(--pc87-bleu);font:600 var(--pc87-fs-h4)/1.4 var(--pc87-police-titre);letter-spacing:0;text-wrap:balance}
.pc87-acc-devise>.elementor-heading-title::before{content:"";position:absolute;left:.5em;top:-.5em;width:var(--pc87-trait-ep);height:1.5em;background:var(--pc87-orange);transform:rotate(var(--pc87-trait-angle));transform-origin:50% 100%}
:is(.pc87-acc-porte-t,.pc87-acc-porte-a,.pc87-acc-chiffre-v,.pc87-acc-chiffre-l)>span.elementor-heading-title{display:block}
.e-con.pc87-acc-porte{border:1.5px solid var(--pc87-bleu);border-radius:var(--pc87-rayon-m);background-color:var(--pc87-bleu);color:var(--pc87-blanc);text-decoration:none;transition:background-color var(--pc87-duree) var(--pc87-ease),border-color var(--pc87-duree) var(--pc87-ease)}
.e-con.pc87-acc-porte--clair{background-color:var(--pc87-blanc);color:var(--pc87-bleu)}
.pc87-acc-porte-t>.elementor-heading-title{color:inherit;font:600 var(--pc87-fs-action)/1.25 var(--pc87-police-titre);letter-spacing:0}
.pc87-acc-porte-a>.elementor-heading-title{color:inherit;font:600 var(--pc87-fs-petit)/1.3 var(--pc87-police-titre);letter-spacing:0;text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:4px}
@media (max-width:767px){
.e-con.pc87-acc-hero-txt,.e-con.pc87-acc-hero-txt>.e-con-inner{display:contents}
.pc87-acc-hero-txt .pc87-aplat--h1.elementor-widget{grid-area:1/1;align-self:end;justify-self:start}
.pc87-acc-devise.elementor-widget{grid-row:3;margin:20px var(--pc87-gouttiere) 0}
}
@media (min-width:768px){
.e-con.pc87-acc-hero-photo{height:clamp(340px,42vw,440px)}
.e-con.pc87-acc-hero-txt{grid-area:1/1;align-self:end;z-index:1}
.pc87-acc-devise{font-size:0;line-height:0}
.pc87-acc-devise>.elementor-heading-title{display:inline;padding:.15em .5em;background:var(--pc87-bleu-f);color:var(--pc87-blanc);font:500 1.125rem/1.75 var(--pc87-police-titre);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.pc87-acc-devise>.elementor-heading-title::before{display:none}
.pc87-acc-porte-t>.elementor-heading-title{font-size:var(--pc87-fs-corps)}
}
@media (min-width:1024px){
.e-con.pc87-acc-hero-photo{height:clamp(380px,34vw,540px);height:clamp(380px,min(34vw,calc(100svh - var(--pc87-hdr) - 140px)),540px)}
.pc87-acc-porte-t>.elementor-heading-title{font-size:var(--pc87-fs-h4)}
}
/* 2. Formations. Le module pc87-formations (vitrine, prochaines sessions) garde son propre dessin ; ici
   seulement sa place dans la section : ni largeur maximale ni marge latérale en plus de la gouttière ;
   sessions sur UNE colonne de 760 px au plus (sur 2 colonnes, un groupe déplié de 4 sessions laissait un
   trou de 390 px à côté d'un groupe de 1) ; le bouton « Toutes nos formations » du bloc des sessions est
   remplacé par celui de la rangée d'actions, placée sous la vitrine (il ne dépend plus d'un réglage). */
.pc87-acc-module .pc-cat{max-width:none;margin-inline:0;padding-inline:0}
.pc87-acc-sessions .pc-av .pc-av-footer{display:none}
@media (min-width:1024px){.pc87-acc-sessions .pc-av .pc-av-list{max-width:760px}}
.e-con.pc87-acc-chiffre{border-top:1px solid var(--pc87-bord)}
.pc87-acc-chiffre-v>.elementor-heading-title{color:var(--pc87-bleu);font:700 var(--pc87-fs-h1)/1.05 var(--pc87-police-titre);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.pc87-acc-chiffre-l>.elementor-heading-title{color:var(--pc87-doux);font:400 var(--pc87-fs-petit)/1.35 var(--pc87-police-texte);letter-spacing:0}
.elementor-widget.pc87-acc-qualite{color:var(--pc87-doux);font-size:var(--pc87-fs-action)}
.pc87-acc-qualite a{padding-block:15px}
.e-con.pc87-acc-preuves{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--pc87-e8)}
@media (min-width:1024px){.e-con.pc87-acc-preuves{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:var(--pc87-e12)}}
/* 3. Secourir, Aider : duos des fondations (bandeau + texte) ; S'engager : bénévolat et don côte à côte dès
   900 px (exception de l'accueil), boutons alignés en bas des deux blocs. Cadrage des photos. */
.pc87-acc-bandeau--dps{--pc87-photo-pos:50% 60%}
.pc87-acc-bandeau--don{--pc87-photo-pos:50% 70%}
.e-con.pc87-acc-texte>.e-con.pc87-actions{--margin-top:var(--pc87-e2)}
.e-con.pc87-acc-paire>.e-con-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--pc87-e10)}
.e-con.pc87-acc-bloc-corps>.e-con.pc87-actions{--margin-top:auto}
.pc87-acc-motifs .elementor-icon-list-items{column-gap:var(--pc87-e5)}
.elementor-widget.pc87-acc-fort{font-size:var(--pc87-fs-intro)}
.pc87-acc-fort p{max-width:46ch}
@media (max-width:599px){.pc87-acc-motifs .elementor-icon-list-item:nth-child(n+5){display:none}}
@media (min-width:600px) and (max-width:899px),(min-width:1024px){.pc87-acc-motifs .elementor-icon-list-items{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:900px){.e-con.pc87-acc-paire>.e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--pc87-e8)}}
/* 4. Témoignages : trois cartes d'avis (1 colonne, 3 dès 768 px) ; étoiles décoratives en bleu (la note est
   donnée en texte aux lecteurs d'écran), citation, prénom et initiale. Aucun script tiers. */
.e-con.pc87-acc-trio{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--pc87-grille-gap);align-items:stretch}
@media (min-width:768px){.e-con.pc87-acc-trio{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pc87-acc-avis-texte>p:first-child{margin:0 0 var(--pc87-e2);color:var(--pc87-bleu);font-size:1.125rem;line-height:1;letter-spacing:2px}
.pc87-acc-avis-texte blockquote{margin:0;padding:0;border:0;quotes:"«\00a0" "\00a0»"}
.pc87-acc-avis-texte blockquote p{margin:0;color:var(--pc87-texte);font:400 var(--pc87-fs-intro)/var(--pc87-lh-corps) var(--pc87-police-texte)}
.pc87-acc-avis-texte blockquote p::before{content:open-quote}
.pc87-acc-avis-texte blockquote p::after{content:close-quote}
.pc87-acc-avis-texte>p:last-child{margin:var(--pc87-e3) 0 0;color:var(--pc87-bleu);font:600 var(--pc87-fs-petit)/1.4 var(--pc87-police-titre)}
/* 5. Actualités : cartes du widget HFE « Basic Posts » dessinées comme les cartes A (bord fin, photo 16:10
   à liseré orange, titre, date, extrait, lien « Lire la suite ») ; 1 colonne, 3 dès 768 px (article sans
   image : carte texte seule, comme sur la page Actualités, à toutes les largeurs). Sans article
   publié, le widget n'affiche qu'une phrase : la section entière est masquée (sauf dans l'éditeur). */
body:not(.elementor-editor-active) .e-con.pc87-acc-actus:not(:has(.hfe-post-card)){display:none}
.elementor-widget.pc87-acc-posts .hfe-posts-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--pc87-grille-gap)}
@media (min-width:768px){.elementor-widget.pc87-acc-posts .hfe-posts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.elementor-widget.pc87-acc-posts .hfe-post-card{display:flex;flex-direction:column;overflow:hidden;margin:0;border:1px solid var(--pc87-bord-l);border-radius:var(--pc87-rayon);background:var(--pc87-blanc);transition:border-color var(--pc87-duree) var(--pc87-ease)}
.elementor-widget.pc87-acc-posts .hfe-post-image{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--pc87-bleu)}
.elementor-widget.pc87-acc-posts .hfe-post-image::after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--pc87-lisere);background:var(--pc87-orange)}
.elementor-widget.pc87-acc-posts .hfe-post-image a{display:block;height:100%}
.elementor-widget.pc87-acc-posts .hfe-post-image img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:0}
.elementor-widget.pc87-acc-posts .hfe-post-content{display:flex;flex:1 1 auto;flex-direction:column;align-items:flex-start;gap:var(--pc87-e2);padding:14px 16px 4px}
.elementor-widget.pc87-acc-posts .hfe-post-title{margin:0;color:var(--pc87-bleu);font:600 var(--pc87-fs-h4)/1.3 var(--pc87-police-titre);letter-spacing:0}
.elementor-widget.pc87-acc-posts .hfe-post-title a{display:inline-flex;align-items:center;min-height:var(--pc87-cible);color:var(--pc87-bleu);text-decoration:none}
.elementor-widget.pc87-acc-posts .hfe-post-meta{margin:0;color:var(--pc87-doux);font:400 var(--pc87-fs-petit)/1.4 var(--pc87-police-texte)}
.elementor-widget.pc87-acc-posts .hfe-post-excerpt{margin:0;color:var(--pc87-texte);font:400 var(--pc87-fs-corps)/var(--pc87-lh-corps) var(--pc87-police-texte)}
.elementor-widget.pc87-acc-posts .hfe-read-more{display:inline-flex;align-items:center;min-height:var(--pc87-cible);margin-top:auto;color:var(--pc87-bleu);font:600 var(--pc87-fs-action)/1.3 var(--pc87-police-titre);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:5px}
/* 6. Survol (souris seulement : couleur uniquement, rien ne bouge) ; zoom lent des photos de l'accueil,
   seulement si le visiteur n'a pas demandé moins d'animations. */
@media (hover:hover){
.e-con.pc87-acc-porte:hover{background-color:var(--pc87-bleu-f);border-color:var(--pc87-bleu-f);color:var(--pc87-blanc)}
.e-con.pc87-acc-porte--clair:hover{background-color:var(--pc87-teinte);border-color:var(--pc87-bleu);color:var(--pc87-bleu)}
.pc87-acc-porte:hover .pc87-acc-porte-a>.elementor-heading-title,.elementor-widget.pc87-acc-posts .hfe-read-more:hover{text-decoration-color:currentColor}
.elementor-widget.pc87-acc-posts .hfe-post-card:hover{border-color:var(--pc87-bleu)}
.elementor-widget.pc87-acc-posts .hfe-post-title a:hover{color:var(--pc87-bleu-f);text-decoration:underline;text-decoration-color:var(--pc87-souligne)}
}
@keyframes pc87-acc-zoom{from{transform:scale(1.06)}to{transform:none}}
@media (prefers-reduced-motion:no-preference){
.e-con.pc87-acc-hero-photo::before{content:"";position:absolute;inset:0;background:inherit;animation:pc87-acc-zoom 1.6s var(--pc87-ease) both}
@supports (animation-timeline:view()){.pc87-acc-bandeau .pc87-bandeau-img img{animation:pc87-acc-zoom linear both;animation-timeline:view();animation-range:entry 0% cover 50%}}
}
/* ==== 50-modules.css ==== */
/* =====================================================================
   50 - FORMULAIRES DES EXTENSIONS dans la direction A (sans toucher au
   code de pc87-benevoles ni à l'habillage d'origine de pc87-dps) :
   .pc-ben (pc87-benevoles 1.0.1, /devenir-benevole/) et .pc-form
   (pc87-dps 3.0.x, /secourir/demande-dps-haute-vienne/).
   Surfaces plates (ni dégradé, ni maillage, ni ombre portée, ni flou),
   trait oblique à l'angle du site, textes au contraste AA (>= 4,5:1,
   >= 13 px : --pc87-fs-etiquette, tour 5), étiquette « Étape N » et astérisques en bleu, texte bleu
   nuit sur orange, anneau de focus #c26a00 (3,92:1), formulaire aligné
   à gauche sur le H1 (même bord que la grille des pages : gouttière de
   15 px, cadre de 1320 px), barre d'étapes collante opaque qui ne recouvre plus
   le champ actif. Préfixe body : passe devant les feuilles des
   extensions quel que soit leur ordre de chargement.
    1. Bénévoles   2. DPS   3. Barre collante et champ actif
    4. Contour des champs, boutons au focus (revue a11y, tour 2)
   ===================================================================== */

/* 1. Bénévoles : gris d'origine #6b7a90 (4,36:1) et #98a3b3 (2,55:1) remplacés par le gris « doux » du site
   (#5c6479, 5,91:1 sur blanc, 5,3:1 sur #eef3fb) : aides, compteur, statut, libellés d'étapes, placeholders. */
body .pc-ben{--text-soft:var(--pc87-doux);--text-muted:var(--pc87-doux);margin-inline:auto;padding-inline:var(--pc87-gouttiere)}
body .pc-ben .pc-ben-intro{color:var(--pc87-texte)}
body .pc-ben .pc-ben-intro::before{transform:rotate(var(--pc87-trait-angle))}
body .pc-ben .pc-ben-hero{background:var(--pc87-bleu);background-image:none;box-shadow:none}
body .pc-ben .pc-ben-hero-eyebrow span{color:var(--pc87-nuit)}
body .pc-ben .pc-ben-eyebrow{color:var(--pc87-bleu);font-size:var(--pc87-fs-etiquette);letter-spacing:1px}
body .pc-ben :is(.pc-ben-section-title,.pc-ben-subtitle)::before{transform:translateY(-50%) rotate(var(--pc87-trait-angle))}
body .pc-ben .pc-ben-section-body{box-shadow:none}
body .pc-ben :is(.pc-ben-label,.pc-ben-choice-single .pc-ben-choice-text,.pc-ben-consent) abbr[title]{color:var(--pc87-bleu)}
body .pc-ben .pc-ben-progress-step{color:var(--pc87-doux)}
body .pc-ben .pc-ben-progress-step.is-active{color:var(--pc87-bleu)}
body .pc-ben .pc-ben-progress-label{font-size:var(--pc87-fs-etiquette)}
body .pc-ben .pc-ben-progress-step.is-active .pc-ben-progress-num{box-shadow:none}
body .pc-ben :is(.pc-ben-choice,input,select,textarea,.pc-ben-btn){box-shadow:none}
body .pc-ben *:focus-visible,body .pc-ben .pc-ben-choice:has(input:focus-visible),body .pc-ben .pc-ben-btn:focus-visible{outline:3px solid var(--pc87-focus);outline-offset:2px}
body .pc-ben :is(input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=time],input[type=search],select,textarea){border-color:var(--pc87-champ-bord)}
body .pc-ben :is(input,select,textarea):focus{border-color:var(--pc87-focus)}
body .pc-ben .pc-ben-has-error :is(input,select,textarea),body .pc-ben .pc-ben-has-error :is(input,select,textarea):focus{border-color:var(--pc87-erreur)}
body .pc-ben .pc-ben-success{box-shadow:none}
body .pc-ben .pc-ben-success::before{background:var(--pc87-orange)}
body .pc-ben .pc-ben-success-deco{display:none}
/* 2. DPS : mêmes gris, étiquettes et astérisques ; pastilles d'étape, bouton d'envoi, bouclier RGPD, compteur
   du curseur et écran de succès en aplats (le violet et les dégradés d'origine sortent de la direction A). */
body .pc-form{--text-soft:var(--pc87-doux);--text-muted:var(--pc87-doux);margin-inline:auto;padding-inline:var(--pc87-gouttiere)}
body .pc-form .pc-section-eyebrow{color:var(--pc87-bleu);font-size:var(--pc87-fs-etiquette);letter-spacing:1px}
body .pc-form :is(.pc-label,.pc-consent,.pc-intro) abbr[title]{color:var(--pc87-bleu)}
body .pc-form .pc-has-error .pc-label abbr{color:var(--pc87-erreur)}
body .pc-form .pc-progress-step{color:var(--pc87-doux)}
body .pc-form .pc-progress-step.is-active{color:var(--pc87-bleu)}
body .pc-form .pc-progress-label{font-size:var(--pc87-fs-etiquette)}
body .pc-form .pc-progress-step.is-active .pc-progress-num{box-shadow:none}
body .pc-form .pc-section-icon{background:var(--pc87-orange);box-shadow:none}
body .pc-form .pc-section-body{box-shadow:none}
body .pc-form :is(.pc-btn,.pc-btn:hover,.pc-btn:active,.pc-choice,input,select,textarea){box-shadow:none;transform:none}
body .pc-form .pc-submit-btn,body .pc-form .pc-submit-btn:hover{background:var(--pc87-bleu);box-shadow:none}
body .pc-form .pc-submit-btn:hover{background:var(--pc87-bleu-f)}
body .pc-form .pc-consent-shield{background:var(--pc87-bleu);box-shadow:0 0 0 4px var(--pc87-blanc)}
body .pc-form .pc-consent.pc-has-error .pc-consent-shield{background:var(--pc87-erreur);box-shadow:0 0 0 4px var(--pc87-blanc)}
body .pc-form .pc-slider-display{background:var(--pc87-bleu);box-shadow:none}
body .pc-form .pc-dps-type .pc-dps-type-thumb{box-shadow:none}
body .pc-form .pc-dps-type-desc{font-size:var(--pc87-fs-etiquette)}
body .pc-form .pc-success{box-shadow:none}
body .pc-form .pc-success::before{background:var(--pc87-orange)}
body .pc-form *:focus-visible,body .pc-form .pc-btn:focus-visible,body .pc-form .pc-submit-btn:focus-visible{outline:3px solid var(--pc87-focus);outline-offset:2px}
body .pc-form :is(input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=time],input[type=search],select,textarea){border-color:var(--pc87-champ-bord)}
body .pc-form :is(input,select,textarea):focus{border-color:var(--pc87-focus)}
body .pc-form .pc-has-error :is(input,select,textarea),body .pc-form .pc-has-error :is(input,select,textarea):focus{border-color:var(--pc87-erreur)}
/* 3. Barre d'étapes collante (sous 600 px) : fond blanc opaque, sans flou ni ombre ; le champ qui reçoit le
   focus s'arrête au-dessus d'elle (130 px : hauteur de la barre, 110 px, + marge). */
@media (max-width:600px){
body .pc-form .pc-nav,body .pc-ben .pc-ben-nav{margin-inline:calc(-1 * var(--pc87-gouttiere));padding-inline:var(--pc87-gouttiere);background:var(--pc87-blanc);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
html:has(.pc-form .pc-nav,.pc-ben .pc-ben-nav){scroll-padding-bottom:130px}
:is(.pc-form,.pc-ben) :is(input,select,textarea,button,summary,label,a){scroll-margin-bottom:130px}
}
/* 4. Contour des champs : #d4dbe6 des extensions (1,39:1 sur blanc) remplacé ci-dessus par le gris des champs
   du site (--pc87-champ-bord, #5c6479 : 5,91:1, comme le formulaire Contact), orange foncé au focus, rouge en
   erreur (WCAG 1.4.11). Boutons au focus : reset.css de Hello ([type=button]:focus, button:focus
   {background-color:#c36;color:#fff}, 0,2,0) est chargé APRÈS les feuilles des extensions et rendait les boutons
   roses au clavier ; chaque variante garde au focus son aspect normal, et au survol souris son aspect de survol.
   « Envoyer ma candidature » : texte bleu nuit sur orange (charte ; le blanc sur #F08700 ne fait que 2,2:1). */
body .pc-ben .pc-ben-btn:is(:focus,:focus-visible),body .pc-form .pc-btn:is(:focus,:focus-visible){background:var(--brand);color:var(--pc87-blanc)}
body .pc-ben .pc-ben-btn.pc-ben-btn-ghost:is(:focus,:focus-visible),body .pc-form .pc-btn.pc-btn-ghost:is(:focus,:focus-visible){background:transparent;color:var(--brand)}
body .pc-ben .pc-ben-btn.pc-ben-btn-cta,body .pc-ben .pc-ben-btn.pc-ben-btn-cta:is(:hover,:focus,:focus-visible){color:var(--pc87-nuit)}
body .pc-ben .pc-ben-btn.pc-ben-btn-cta:is(:focus,:focus-visible){background:var(--accent)}
body .pc-ben .pc-ben-btn.pc-ben-btn-cta .pc-ben-spin{border-color:rgba(0,24,56,.3);border-top-color:var(--pc87-nuit)}
body .pc-form .pc-btn.pc-submit-btn:is(:focus,:focus-visible){background:var(--pc87-bleu)}
@media (hover:hover){
body .pc-ben .pc-ben-btn:is(:focus,:focus-visible):hover,body .pc-form .pc-btn:is(:focus,:focus-visible):hover{background:var(--brand-dark)}
body .pc-ben .pc-ben-btn.pc-ben-btn-ghost:is(:focus,:focus-visible):hover,body .pc-form .pc-btn.pc-btn-ghost:is(:focus,:focus-visible):hover{background:var(--bg-tint)}
body .pc-ben .pc-ben-btn.pc-ben-btn-cta:is(:focus,:focus-visible):hover{background:var(--accent-dark)}
body .pc-form .pc-btn.pc-submit-btn:is(:focus,:focus-visible):hover{background:var(--pc87-bleu-f)}
}
/* 5. DPS, revue a11y du tour 3 (états atteints seulement après une action : session ajoutée, option cochée,
   étape 5).
   a) Horaires de l'événement : la ligne d'une session (champs date et heures de 176 px au moins, récapitulatif
      sans retour à la ligne) débordait de 104 px à 320-414 px et de 37 px à 768 px (défilement horizontal,
      WCAG 1.4.10). Colonnes en minmax(0,…), champs rétrécissables (3 colonnes jusqu'à 1024 px, 2 sous 720 px ;
      sous 480 px, numéro et bouton de suppression sur une ligne, champs pleine largeur dessous), récapitulatif sous les champs jusqu'à 1024 px et qui passe à la ligne ; bouton « Supprimer cette session » de 48 x 48 px (était 32 x 32).
   b) Contrastes du texte : libellé de l'option DPS choisie (#c46c00 : 3,43 à 3,82:1) -> #9a5200 (5,86:1 sur
      blanc, 5,26:1 sur #eef3fb) ; « h jour » (#f59e0b : 2,15:1) et « h nuit » (#6366f1 : 4,47:1) -> teintes des
      pastilles de totaux (#92400e : 7,09:1, #4338ca : 7,9:1) ; descriptions des choix de risque (#6b7a90 :
      4,09 à 4,36:1) -> gris doux du site (5,91:1).
   c) Choix de risque (étape 5) : rond non coché et contour de carte #d4dbe6 (1,39:1) -> #5c6479 (5,91:1) et
      #8a94a6 (3,06:1) ; état coché en bleu (rond, point et contour : 10,27:1), l'orange restant un accent
      (coche) ; la coche ne recouvre plus la fin de la description (marge droite de 36 px).
   d) Curseurs d'effectif : zone tactile de 48 px de haut (piste de 8 px centrée), pouce de 28 px à contour
      bleu (piste non remplie #8a94a6 : 3,06:1) ; la valeur se saisit aussi au clavier (champ numérique ajouté
      par pc87-dps 3.0.4, blanc, contour gris des champs) ; case « Protection des données » : libellé de 48 px
      de haut au moins. */
body .pc-form .pc-sched-session{grid-template-columns:32px minmax(0,1fr) auto auto}
body .pc-form .pc-sched-fields{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}
body .pc-form .pc-sched-fields label{min-width:0}
body .pc-form .pc-sched-fields input{box-sizing:border-box;min-width:0;width:100%;max-width:100%}
body .pc-form .pc-sched-recap{white-space:normal;flex-wrap:wrap;min-width:0}
body .pc-form .pc-sched-session button[data-pc-sched-rm]{width:48px;height:48px}
@media (max-width:1024px){
body .pc-form .pc-sched-session{grid-template-columns:32px minmax(0,1fr) auto}
body .pc-form .pc-sched-recap{grid-column:2/-1;grid-row:2}
body .pc-form .pc-sched-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:720px){
body .pc-form .pc-sched-session{grid-template-columns:24px minmax(0,1fr) auto}
body .pc-form .pc-sched-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:480px){
body .pc-form .pc-sched-session{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px}
body .pc-form .pc-sched-num{grid-column:1;grid-row:1}
body .pc-form .pc-sched-session button[data-pc-sched-rm]{grid-column:2;grid-row:1}
body .pc-form .pc-sched-fields{grid-column:1/-1;grid-row:2;grid-template-columns:minmax(0,1fr)}
body .pc-form .pc-sched-recap{grid-column:1/-1;grid-row:3}
}
body .pc-form{--accent-dark:#9a5200}
body .pc-form .pc-sched-day{color:#92400e}
body .pc-form .pc-sched-night{color:#4338ca}
body .pc-form .pc-ris-text small{color:var(--pc87-doux)}
body .pc-form .pc-ris-radio{border-color:var(--pc87-champ-bord)}
body .pc-form .pc-choice.pc-ris-choice{border-color:#8a94a6;padding-right:36px}
body .pc-form .pc-choice.pc-ris-choice:hover{border-color:var(--accent)}
body .pc-form .pc-choice.pc-ris-choice:has(input:checked){border-color:var(--pc87-bleu)}
body .pc-form .pc-ris-choice input:checked~.pc-ris-radio{border-color:var(--pc87-bleu)}
body .pc-form .pc-ris-choice input:checked~.pc-ris-radio::after{background:var(--pc87-bleu)}
body .pc-form input[type=range][data-pc-slider]{height:48px}
body .pc-form input[type=range][data-pc-slider]::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--pc-slider-fill,0%),#8a94a6 var(--pc-slider-fill,0%),#8a94a6 100%)}
body .pc-form input[type=range][data-pc-slider]::-moz-range-track{background:#8a94a6}
body .pc-form input[type=range][data-pc-slider]::-webkit-slider-thumb{width:28px;height:28px;margin-top:-10px;border-color:var(--pc87-bleu);box-shadow:none}
body .pc-form input[type=range][data-pc-slider]::-moz-range-thumb{width:28px;height:28px;box-sizing:border-box;border-color:var(--pc87-bleu);box-shadow:none}
body .pc-form input[type=range][data-pc-slider]:focus-visible{outline:3px solid var(--pc87-focus);outline-offset:2px}
body .pc-form .pc-slider-display:has(.pc-slider-saisie){background:none;color:var(--pc87-bleu);padding:0;box-shadow:none}
body .pc-form input.pc-slider-saisie{border:1px solid var(--pc87-champ-bord);background:var(--pc87-blanc);color:var(--pc87-texte)}
body .pc-form input.pc-slider-saisie:focus{border-color:var(--pc87-focus)}
body .pc-form .pc-consent label{min-height:48px;align-items:center}
/* e) Barre d'étapes sous 480 px : le libellé de l'étape en cours (80 px au plus) était centré sous une colonne de
   48 px ; à la dernière étape (« Envoi »), il dépassait de 3 px à droite à 320 px (défilement horizontal). Aux
   deux bouts, il s'aligne sur le bord de la barre (tour 5 : formulaire bénévole aussi, libellés passés à 13 px). */
@media (max-width:480px){
body .pc-form .pc-progress-step:last-child .pc-progress-label{align-self:flex-end;text-align:right}
body .pc-form .pc-progress-step:first-child .pc-progress-label{align-self:flex-start;text-align:left}
body .pc-ben .pc-ben-progress-step:last-child .pc-ben-progress-label{align-self:flex-end;text-align:right}
body .pc-ben .pc-ben-progress-step:first-child .pc-ben-progress-label{align-self:flex-start;text-align:left}
}
/* f) Texte de 13 px au moins (tour 5) : les feuilles des extensions descendent à 10-12,8 px (pastilles des étapes,
   aides, compteurs de caractères et de choix, bornes, totaux des sessions, choix de risques, mention RGPD,
   coordonnées de l'écran de succès). Plancher de 13 px (--pc87-fs-etiquette) ; au-dessus, la taille relative
   d'origine (13/16 de la taille du parent) est gardée ; ce qui est imbriqué dans ces mentions en hérite. */
body .pc-form :is(small,.pc-help,.pc-progress-num,.pc-char-counter,.pc-choice-counter,.pc-slider-bounds,.pc-sched-totals,.pc-sched-totals.is-empty,.pc-dps-evt-help),body .pc-ben :is(small,.pc-ben-help,.pc-ben-progress-num,.pc-ben-success-org){font-size:max(var(--pc87-fs-etiquette),.8125em)}
body .pc-form :is(small,.pc-help,.pc-char-counter,.pc-slider-bounds) :is(abbr,strong,a,span),body .pc-ben :is(small,.pc-ben-help,.pc-ben-success-org) :is(abbr,strong,a,span){font-size:inherit}
/* g) Intégration 1 (30/09/2026) : photos du catalogue des formations qui portent le filigrane « Adobe Stock » (images
   d'aperçu, licence inconnue : APP, AiPA, APH, IBD, PConDo, BPPRS, ComCon, DemEth, HVI, GCD, PVI, PVSS, PQVCT)
   masquées en attendant la réponse de Léo (integration/questions-restantes.md) : la carte s'affiche comme celle
   d'une formation sans photo (bandeau réduit au titre, comme pc-cat-banner-plain de pc87-formations 1.3.0). Copies
   locales nommées sha1(adresse du catalogue) : une nouvelle photo au catalogue n'est pas visée. Retirer ces règles
   quand les licences sont confirmées ou les photos remplacées au catalogue. */
body img:is([src*="/pc87-formations/ba75760a4f382b49"],[src*="/pc87-formations/384b610e12ebc9e7"],[src*="/pc87-formations/ed51431084f21a49"],[src*="/pc87-formations/fb5f2f5277bdd8b0"],[src*="/pc87-formations/ca06fc9314263ca0"],[src*="/pc87-formations/4ee1ab79a848873c"],[src*="/pc87-formations/b77432c0809b99df"],[src*="/pc87-formations/cf508e278151c212"],[src*="/pc87-formations/ef90ec138d890f42"],[src*="/pc87-formations/f64dbdcf7c5965b9"],[src*="/pc87-formations/6f090538e09f3eb8"],[src*="/pc87-formations/b483e647713fe9ad"],[src*="/pc87-formations/009217a39d9e3535"]){display:none!important}
body .pc-cat .pc-cat-card-banner:has(>img:is([src*="/pc87-formations/ba75760a4f382b49"],[src*="/pc87-formations/384b610e12ebc9e7"],[src*="/pc87-formations/ed51431084f21a49"],[src*="/pc87-formations/fb5f2f5277bdd8b0"],[src*="/pc87-formations/ca06fc9314263ca0"],[src*="/pc87-formations/4ee1ab79a848873c"],[src*="/pc87-formations/b77432c0809b99df"],[src*="/pc87-formations/cf508e278151c212"],[src*="/pc87-formations/ef90ec138d890f42"],[src*="/pc87-formations/f64dbdcf7c5965b9"],[src*="/pc87-formations/6f090538e09f3eb8"],[src*="/pc87-formations/b483e647713fe9ad"],[src*="/pc87-formations/009217a39d9e3535"])){aspect-ratio:auto;padding-top:16px}
body .pc-cat .pc-cat-card-banner:has(>img:is([src*="/pc87-formations/ba75760a4f382b49"],[src*="/pc87-formations/384b610e12ebc9e7"],[src*="/pc87-formations/ed51431084f21a49"],[src*="/pc87-formations/fb5f2f5277bdd8b0"],[src*="/pc87-formations/ca06fc9314263ca0"],[src*="/pc87-formations/4ee1ab79a848873c"],[src*="/pc87-formations/b77432c0809b99df"],[src*="/pc87-formations/cf508e278151c212"],[src*="/pc87-formations/ef90ec138d890f42"],[src*="/pc87-formations/f64dbdcf7c5965b9"],[src*="/pc87-formations/6f090538e09f3eb8"],[src*="/pc87-formations/b483e647713fe9ad"],[src*="/pc87-formations/009217a39d9e3535"])) .pc-cat-card-title>span{padding-left:0;padding-right:0}
/* ==== 60-mentions-legales.css ==== */
/* =====================================================================
   PAGE « MENTIONS LÉGALES » (mentions-legales/gen_mentions.py) : se
   colle À LA SUITE de dist/css-additionnel.css (ou devient un partiel
   css/60-mentions-legales.css). Classes posées par le générateur :
   pc87-ml (section), pc87-ml-sommaire (encadré « Sur cette page »),
   pc87-ml-toc (liste d'ancres), pc87-ml-corps, pc87-ml-bloc (rubrique),
   pc87-ml-fiche (liste libellé / valeur), pc87-ml-maj (date),
   pc87-a-completer (champ à remplir par Léo, visible exprès).
   Aucun réglage de style dans le JSON (design/design-A.md, règle 9).
    1. Mise en page    2. Sommaire    3. Rubriques    4. Champs à compléter
   ===================================================================== */

/* 1. Mise en page : sommaire puis rubriques sous 1024 px, le sommaire limité à la mesure de lecture (bords
   droits alignés sur le texte) ; dès 1024 px, rubriques (64 ch) à gauche et sommaire collant aligné sur le
   bord droit du gabarit, comme le bouton « Aidez-nous » du header (le header n'est pas collant : top 24 px
   suffit). La tête de page garde sa marge basse : pas de marge haute de section en plus. */
.e-con.pc87-page-tete+.e-con.pc87-ml{--padding-top:0px}
.e-con.pc87-ml>.e-con-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:start}
@media (max-width:1023px){.e-con.pc87-ml-sommaire{max-width:var(--pc87-lecture)}}
@media (min-width:1024px){
.e-con.pc87-ml>.e-con-inner{grid-template-columns:minmax(0,var(--pc87-lecture)) minmax(0,18.75rem);justify-content:space-between;column-gap:64px}
.pc87-ml>.e-con-inner>.e-con.pc87-ml-corps{grid-column:1;grid-row:1}
.pc87-ml>.e-con-inner>.e-con.pc87-ml-sommaire{position:sticky;top:24px;grid-column:2;grid-row:1}
}
.e-con.pc87-ml-corps{--row-gap:36px;--column-gap:0px}
@media (min-width:1024px){.e-con.pc87-ml-corps{--row-gap:44px}}

/* 2. Sommaire (encadré) : liens d'ancre de 48 px en 2 colonnes à 375 px, 3 de 600 à 1023 px, 1 dans la colonne
   collante ; numérotation dans le texte des liens (liste sans puces). */
.e-con.pc87-ml-sommaire{--row-gap:4px}
.pc87-ml-sommaire .pc87-ml-toc{margin:0;padding:0;list-style:none;columns:2;column-gap:16px}
@media (min-width:600px) and (max-width:1023px){.pc87-ml-sommaire .pc87-ml-toc{columns:3}}
@media (min-width:1024px){.pc87-ml-sommaire .pc87-ml-toc{columns:1}}
.pc87-ml-sommaire .pc87-ml-toc li{margin:0;padding:0;break-inside:avoid}
.pc87-ml-sommaire .pc87-ml-toc a{display:flex;align-items:center;min-height:var(--pc87-cible);padding-block:4px;color:var(--pc87-bleu);font:600 var(--pc87-fs-petit)/1.3 var(--pc87-police-titre);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:4px}
.pc87-ml-sommaire nav{margin:0}

/* 3. Rubriques : titre à trait (pc87-titre--m) puis texte ; fiches « libellé / valeur » en lignes filetées,
   libellé au-dessus sous 600 px, en colonne de 11 rem ensuite. */
.e-con.pc87-ml-bloc{--row-gap:10px;--column-gap:0px}
.pc87-legal ul.pc87-ml-fiche{max-width:var(--pc87-lecture);margin:0 0 .9rem;padding:0;list-style:none}
.pc87-legal ul.pc87-ml-fiche:last-child{margin-bottom:0}
.pc87-ml-fiche>li{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;margin:0;padding:9px 0;border-top:1px solid var(--pc87-bord-l)}
.pc87-ml-fiche>li:last-child{border-bottom:1px solid var(--pc87-bord-l)}
.pc87-ml-fiche>li>strong{color:var(--pc87-doux);font:600 var(--pc87-fs-petit)/1.4 var(--pc87-police-titre)}
/* Dès 600 px (libellé en colonne), 12 px de marge haute et basse : la cible de 48 px d'un lien (ligne de
   24,8 px + 2 × 12 px de débord) reste dans sa ligne, deux lignes voisines à lien ne se chevauchent pas. */
@media (min-width:600px){.pc87-ml-fiche>li{grid-template-columns:11rem minmax(0,1fr);gap:16px;padding-block:12px}}
/* Valeur faite d'un seul lien (téléphone, courriel, site) : cible de 48 px sans agrandir la ligne */
.pc87-ml-fiche .pc87-ml-lien>a{display:inline-flex;align-items:center;min-height:var(--pc87-cible);margin-block:-12px}
.elementor-widget.pc87-ml-maj{margin-block-start:-8px}

/* 4. Champ à compléter par Léo : impossible à manquer (rouge d'erreur sur fond rose, 4,76:1, tirets) ;
   disparaît quand la valeur est fournie dans gen_mentions.py (A_COMPLETER). */
mark.pc87-a-completer{padding:.1em .35em;border:1.5px dashed var(--pc87-erreur);border-radius:var(--pc87-rayon-s);background:var(--pc87-erreur-fond);color:var(--pc87-erreur);font-weight:700;-webkit-box-decoration-break:clone;box-decoration-break:clone}
@media (hover:hover){.pc87-ml-sommaire .pc87-ml-toc a:hover{color:var(--pc87-bleu-f);text-decoration-color:currentColor}}
/* ==== 61-confidentialite.css ==== */
/* =====================================================================
   PAGES « POLITIQUE DE CONFIDENTIALITÉ » ET « POLITIQUE DE COOKIES »
   (confidentialite/gen_pages.py) + BANDEAU COMPLIANZ : se colle À LA
   SUITE de dist/css-additionnel.css ET de mentions-legales.css (même
   mise en page : pc87-ml, pc87-ml-sommaire, pc87-ml-toc, pc87-ml-bloc,
   pc87-ml-fiche, pc87-ml-maj, pc87-a-completer), ou devient un partiel
   css/61-confidentialite.css. Classes posées par le générateur :
   pc87-cf-page (section), pc87-cf-services (liste des services),
   pc87-cf-service (un service), table.pc87-cf-fiche (fiche du service),
   pc87-a-valider (proposition à valider par Léo, visible exprès),
   pc87-cf-gestion ([cmplz-manage-consent]), pc87-cf-bouton / pc87-cf-
   rouvrir (bouton qui rouvre le bandeau), pc87-cf-liste ([cmplz-cookies]).
   Aucun réglage de style dans le JSON (design/design-A.md, règle 9).
    1. Liste des services   2. Fiches des services   3. Marqueur de
    proposition   4. Blocs Complianz dans la page   5. Bandeau Complianz
   ===================================================================== */

/* 1. Liste des services (rubrique 3) : liens d'ancre de 48 px, 1 colonne puis 2 dès 600 px */
ul.pc87-cf-services{margin:0;padding:0;list-style:none;columns:1;column-gap:24px}
@media (min-width:600px){ul.pc87-cf-services{columns:2}}
ul.pc87-cf-services li{margin:0;padding:0;break-inside:avoid}
ul.pc87-cf-services li::before{content:none}
ul.pc87-cf-services a{display:flex;align-items:center;min-height:var(--pc87-cible);padding-block:4px;color:var(--pc87-bleu);font:600 var(--pc87-fs-petit)/1.3 var(--pc87-police-titre);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:4px}
.e-con.pc87-cf-service{--row-gap:10px;--column-gap:0px;margin-block-start:14px}

/* 2. Fiche d'un service : tableau « libellé / contenu » (th scope=row) dans une carte à filets. Dès 600 px,
   libellé dans une colonne de 10,5 rem ; sous 600 px, CARTES EMPILÉES : libellé au-dessus du texte. Neutralise
   le tableau « lignes → cartes à data-label » de 30-pages.css (§ 6), fait pour des tableaux à plusieurs colonnes. */
.pc87-legal table.pc87-cf-fiche{width:100%;max-width:var(--pc87-lecture);margin:0;border:1px solid var(--pc87-bord-l);border-radius:var(--pc87-rayon-m);border-collapse:separate;border-spacing:0;overflow:hidden;background:var(--pc87-blanc);font-size:var(--pc87-fs-corps);line-height:var(--pc87-lh-corps)}
.pc87-legal table.pc87-cf-fiche :is(th,td){padding:12px 14px;border:0;border-bottom:1px solid var(--pc87-bord-l);background:var(--pc87-blanc);color:var(--pc87-texte);text-align:left;vertical-align:top}
.pc87-legal table.pc87-cf-fiche tr:last-child>:is(th,td){border-bottom:0}
.pc87-legal table.pc87-cf-fiche th{width:10.5rem;background:var(--pc87-fond);color:var(--pc87-bleu);font:600 var(--pc87-fs-petit)/1.4 var(--pc87-police-titre)}
.pc87-legal table.pc87-cf-fiche td::before{content:none}
.pc87-legal table.pc87-cf-fiche td a{overflow-wrap:anywhere}
@media (max-width:599px){
.pc87-legal table.pc87-cf-fiche,.pc87-legal table.pc87-cf-fiche :is(tbody,tr,th,td){display:block;width:100%}
.pc87-legal table.pc87-cf-fiche tr{margin:0;padding:0;border:0;border-radius:0;background:none}
.pc87-legal table.pc87-cf-fiche th{padding:10px 14px 2px;border-bottom:0}
.pc87-legal table.pc87-cf-fiche td{display:block;padding:0 14px 12px}
.pc87-legal table.pc87-cf-fiche tr:not(:last-child)>td{border-bottom:1px solid var(--pc87-bord-l)}
}

/* 3. Proposition à valider par Léo : visible exprès (bleu foncé sur bleu très clair 13,4:1, tirets bleus),
   distincte du « À COMPLÉTER » rouge ; disparaît quand la proposition est validée dans gen_pages.py (VALIDE). */
mark.pc87-a-valider{padding:.1em .35em;border:1.5px dashed var(--pc87-bleu);border-radius:var(--pc87-rayon-s);background:var(--pc87-teinte);color:var(--pc87-bleu-f);font-weight:700;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* 4. Blocs Complianz dans la page de cookies. Complianz (assets/css/document.min.css) vise ses blocs par id
   (#cmplz-manage-consent-container, #cmplz-cookies-overview) : on préfixe par la classe du widget pour passer
   devant (1,x,x). Ce ne sont pas des id Elementor (design-A.md, règle 9).
   4a. Cases par catégorie ([cmplz-manage-consent], widget pc87-cf-gestion) : lignes de 56 px à filets, case de
   24 px dont l'étiquette couvre une cible de 48 px, bouton de dépliage de 48 px. L'étiquette ne coche la case de
   la PAGE que grâce au script du widget pc87-cf-bouton (gen_pages.py, SCRIPT_GESTION), qui renomme les id du bloc :
   sinon son for="cmplz-statistics-optin" désigne la case cachée du bandeau (même id). Sans JavaScript, le texte
   de repli de Complianz est limité à la mesure de lecture. */
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-categories{margin:0}
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-categories .cmplz-category{margin:0 0 8px;border:1px solid var(--pc87-bord-l);border-radius:var(--pc87-rayon-m);overflow:hidden;background:var(--pc87-blanc)}
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header{grid-template-columns:minmax(0,1fr) auto var(--pc87-cible);gap:8px;min-height:var(--pc87-cible-ligne);padding:4px 4px 4px 14px;background:var(--pc87-fond)}
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-category-title{color:var(--pc87-bleu);font:600 var(--pc87-fs-corps)/1.3 var(--pc87-police-titre)}
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active{color:var(--pc87-doux);font-size:var(--pc87-fs-petit)}
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header>.cmplz-banner-checkbox{position:relative;justify-content:center;min-width:var(--pc87-cible);min-height:var(--pc87-cible)}
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox{width:24px;height:24px;margin:0;accent-color:var(--pc87-bleu);cursor:pointer}
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-banner-checkbox .cmplz-label{position:absolute;inset:0;margin:0;cursor:pointer}
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-toggle{width:var(--pc87-cible);height:var(--pc87-cible);border-radius:var(--pc87-rayon-s);color:var(--pc87-bleu)}
.pc87-cf-gestion #cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-description{padding:12px 14px;color:var(--pc87-texte);font-size:var(--pc87-fs-petit);line-height:1.5}
.pc87-cf-gestion #cmplz-manage-consent-container-nojavascript{max-width:var(--pc87-lecture)}
/* 4b. Liste des cookies déclarés ([cmplz-cookies], widget pc87-cf-liste) : un service = une carte repliable ;
   dépliée, tableau Nom / Expiration / Fonction de Complianz (3 colonnes dès 600 px, 2 en dessous). Les titres
   h4 / h5 de Complianz (« Utilisation », « Nom », « Expiration »…) deviennent des libellés p.pc87-cmplz-sous /
   p.pc87-cmplz-col (pc87-consentement-duree.php, filtre do_shortcode_tag) : les règles visent les deux formes. */
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown{margin:0 0 8px;border:1px solid var(--pc87-bord-l);border-radius:var(--pc87-rayon-m);overflow:hidden;background:var(--pc87-blanc)}
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown summary{margin:0;padding:4px 14px;background:var(--pc87-fond)}
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown summary div{min-height:var(--pc87-cible)}
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown summary h3{padding:0;color:var(--pc87-bleu);font:600 var(--pc87-fs-corps)/1.3 var(--pc87-police-titre)}
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown summary p{color:var(--pc87-doux)}
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown :is(h4,p.pc87-cmplz-sous){margin:5px 0;color:var(--pc87-texte);font:600 var(--pc87-fs-action)/1.4 var(--pc87-police-titre)}
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown :is(h5,p.pc87-cmplz-col){margin:0;padding:0;color:var(--pc87-bleu);font:600 var(--pc87-fs-petit)/1.4 var(--pc87-police-titre)}
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown p,.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown a{font-size:var(--pc87-fs-petit);line-height:1.5}
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown .cookies-per-purpose{margin:0 14px 14px;border-color:var(--pc87-bord-l);background-color:var(--pc87-bord-l)}
.pc87-cf-liste #cmplz-cookies-overview .cmplz-dropdown .cookies-per-purpose div{padding:10px 12px;overflow-wrap:anywhere;font-size:var(--pc87-fs-petit);line-height:1.5}
/* 4c. Bouton qui rouvre le bandeau (widget HTML pc87-cf-bouton : <button class="cmplz-manage-consent pc87-btn
   pc87-btn--secondaire">) ; un lien <a> ne marche pas (complianz.js:2095 n'écoute que button.cmplz-manage-consent). */
.pc87-cf-rouvrir{margin:0}
.pc87-cf-bouton button.pc87-btn{min-width:var(--pc87-cible)}
/* 4d. Bouton « Gérer mes cookies » du pied de page (widget HTML du footer HFE, guide-complianz.md § 9) : dessiné
   comme les liens légaux du pied de page (Poppins 600 14 px, bleu, souligné orange, cible de 48 px). Neutralise
   les boutons roses de Hello (reset.css, 0,2,0 au survol et au focus) par 0,2,1 dans tous les états. */
button.pc87-lien-cookies,button.pc87-lien-cookies:is(:hover,:focus){display:inline-flex;align-items:center;min-height:var(--pc87-cible);margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--pc87-bleu);font:600 var(--pc87-fs-petit)/1.3 var(--pc87-police-titre);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-decoration-thickness:2px;text-underline-offset:4px;cursor:pointer}
@media (hover:hover){button.pc87-lien-cookies:hover{color:var(--pc87-bleu-f);text-decoration-color:currentColor}}

/* 5. Bandeau Complianz (toutes les pages) : couleurs réglées DANS Complianz (guide-complianz.md, étape 5 : Accepter
   et Refuser identiques, bleu #004080, texte blanc 10,27:1) ; ici seulement la typographie de la charte, des
   boutons de 48 px et l'onglet « Gérer le consentement ». Le CSS additionnel est imprimé après la feuille
   banner-1-optin.css de Complianz : à spécificité égale, ces règles passent devant. */
:root{--cmplz_category_header_always_active_color:var(--pc87-doux)}
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn{min-height:var(--pc87-cible);font-family:var(--pc87-police-titre);font-weight:600}
.cmplz-cookiebanner .cmplz-title{color:var(--pc87-bleu);font-family:var(--pc87-police-titre);font-weight:600}
.cmplz-cookiebanner .cmplz-links .cmplz-link{display:inline-flex;align-items:center;min-height:var(--pc87-cible);text-decoration:underline;text-decoration-color:var(--pc87-souligne);text-underline-offset:3px}
#cmplz-manage-consent .cmplz-manage-consent{color:var(--pc87-bleu);font-family:var(--pc87-police-titre);font-weight:600}
/* 5b. Focus jamais caché par l'onglet « Gérer le consentement » (WCAG 2.2, 2.4.11). Jusqu'à 768 px, Complianz
   l'affiche en permanence, fixé en bas à droite (216 x 50 px, banner-1-optin.css, @media (max-width: 768px)) ; un
   lien qui prend le focus au clavier juste au-dessus du bord bas restait dessous, Chrome ne faisant pas défiler un
   élément déjà « visible ». La marge de défilement du bas (64 px = onglet + 14 px) fait remonter ces liens.
   Mesuré (verif/rendu-t2/essai-scroll-padding.json, puis au clavier sur le banc au tour 2) : 0 focus caché. Les
   pages des formulaires gardent leur propre marge de 130 px (50-modules.css, sélecteur plus spécifique). */
@media (max-width:768px){html{scroll-padding-bottom:64px}}
/* ==== pages-v2/aider/page.css ==== */
/* pages-v2/aider/page.css — page « Aider » (/aider/), version 2 corrigée.
   Aucune règle propre à la page depuis le 30/09/2026 : la seule règle (le marqueur provisoire sous le paragraphe
   sur l'aide et l'écoute psychologique) est retirée avec le marqueur (L41 a = Oui, b = Oui).
   Le lien « Nous contacter » (pc87-lien) et le masquage des photos au téléphone (pc87-masque-mobile) viennent
   du CSS du site. Rien à coller dans le CSS additionnel pour cette page. */
/* ==== pages-v2/devenir-benevole/page.css ==== */
/* =====================================================================
   Devenir bénévole (pages-v2/devenir-benevole, gen.py) : ajouts propres à la page.
   Portée : sections .pc87-benevolat (toutes les sections de la page, formulaire compris). À coller APRÈS
   dist/css-additionnel.css (règles conformes à assemble.sh).
    (30/09/2026 : règles des marqueurs retirées avec les marqueurs, réponses de Léo appliquées.)
    2. Écarts : volets empilés (un widget par volet), listes des volets
    3. Habillage PROVISOIRE du formulaire [pc87_benevoles] (pc87-benevoles 1.0.1), en complément de
       css/50-modules.css
   Alignement du formulaire et de son titre (colonne de 880 px à gauche, sur la grille des pages, comme la page
   « Demande de DPS ») : règle commune du site (30-pages § 4, 50-modules), rien ici.
   ===================================================================== */

/* 2. Volets : un widget Accordéon par volet (Tab atteint chaque titre), empilés sans écart ; un seul filet
   entre deux volets. Puces des volets un peu plus serrées que dans le texte courant. */
.pc87-benevolat .pc87-volets+.pc87-volets .e-n-accordion-item:first-child{border-top:0}
.pc87-benevolat .pc87-volets .elementor-widget-text-editor ul>li+li{margin-top:6px}

/* 3. Habillage PROVISOIRE du formulaire [pc87_benevoles]. Tant que l'extension n'intègre pas le design A,
   ces règles, limitées à cette page : couleurs du site (variables de l'extension branchées sur les jetons,
   comme pc87-formations, design A § 7), textes lisibles (4,5:1 au moins, 13 px au moins), aucun texte orange
   sur fond clair, traits obliques dans le sens des titres, boutons plats, aucune animation, ni ombre, ni
   dégradé, ni icône. Aucun texte n'est modifié. Complète css/50-modules.css (qui passe les textes à 12 px) :
   ici 13 px au moins (design A), comme demandé par la revue de la page. À RETIRER quand l'extension reprend
   ces règles. */
.pc87-benevolat .pc-ben{--brand:var(--pc87-bleu);--brand-dark:var(--pc87-bleu-f);--brand-darker:var(--pc87-nuit);--accent:var(--pc87-orange);--accent-dark:var(--pc87-orange-f);--text:var(--pc87-texte);--text-soft:var(--pc87-doux);--text-muted:var(--pc87-doux);--bg-soft:var(--pc87-fond);--bg-tint:var(--pc87-teinte);--border:var(--pc87-champ-bord);--border-soft:var(--pc87-bord-l);--error:var(--pc87-erreur);--error-bg:var(--pc87-erreur-fond);--shadow-sm:none;--shadow:none;--shadow-lg:none;--font-title:var(--pc87-police-titre);--font-text:var(--pc87-police-texte)}
.pc87-benevolat .pc-ben *,.pc87-benevolat .pc-ben *::before,.pc87-benevolat .pc-ben *::after{animation:none !important}
@media (prefers-reduced-motion:no-preference){.pc87-benevolat .pc-ben .pc-ben-spin{animation:pcbSpin .8s linear infinite !important}}
/* Introduction : texte courant, sans trait (le trait est réservé aux titres) */
.pc87-benevolat .pc-ben .pc-ben-intro{padding-left:0}
.pc87-benevolat .pc-ben .pc-ben-intro::before{content:none}
/* Barre d'étapes : libellés et numéros à 13 px au moins, en gris lisible ; étape en cours en bleu sans halo ;
   étapes franchies : numéro bleu sur fond clair (la coche orange était une icône) */
.pc87-benevolat .pc-ben .pc-ben-progress-step{color:var(--pc87-doux);font-size:var(--pc87-fs-etiquette)}
.pc87-benevolat .pc-ben :is(.pc-ben-progress-label,.pc-ben-progress-num){font-size:var(--pc87-fs-etiquette)}
.pc87-benevolat .pc-ben .pc-ben-progress-num{box-shadow:none;transition:none}
.pc87-benevolat .pc-ben .pc-ben-progress-step.is-active{color:var(--pc87-bleu)}
.pc87-benevolat .pc-ben .pc-ben-progress-step.is-active .pc-ben-progress-num{transform:none;box-shadow:none}
.pc87-benevolat .pc-ben .pc-ben-progress-step.is-done .pc-ben-progress-num{background:var(--pc87-teinte);border-color:var(--pc87-bleu);color:var(--pc87-bleu)}
.pc87-benevolat .pc-ben .pc-ben-progress-step.is-done .pc-ben-progress-num-text{display:inline}
.pc87-benevolat .pc-ben .pc-ben-progress-step.is-done .pc-ben-progress-num::after{content:none}
/* Sous 480 px, seul le libellé de l'étape en cours s'affiche : sous la 1re et la dernière pastille, il part du
   bord de la barre au lieu de déborder vers le bord de l'écran */
@media (max-width:480px){
.pc87-benevolat .pc-ben .pc-ben-progress-label{max-width:96px}
.pc87-benevolat .pc-ben .pc-ben-progress-step:first-child .pc-ben-progress-label{align-self:flex-start;text-align:left}
.pc87-benevolat .pc-ben .pc-ben-progress-step:last-child .pc-ben-progress-label{align-self:flex-end;text-align:right}
}
/* Surtitre « Étape n » en bleu ; titres d'étape et sous-titres : trait oblique du design A (même sens, même
   dessin que les titres de la page ; il monte d'une demi-ligne : écart agrandi sous le surtitre) */
.pc87-benevolat .pc-ben .pc-ben-eyebrow{color:var(--pc87-bleu);font-size:var(--pc87-fs-etiquette)}
.pc87-benevolat .pc-ben .pc-ben-section-header{gap:12px}
.pc87-benevolat .pc-ben :is(.pc-ben-section-title,.pc-ben-subtitle,.pc-ben-recap-head h4){padding-left:.95em}
.pc87-benevolat .pc-ben :is(.pc-ben-section-title,.pc-ben-subtitle,.pc-ben-recap-head h4)::before{left:.5em;top:-.5em;width:var(--pc87-trait-ep);height:1.5em;background:var(--pc87-orange);transform:rotate(var(--pc87-trait-angle));transform-origin:50% 100%}
/* Astérisques des champs obligatoires en bleu (rouge sur un champ en erreur) */
.pc87-benevolat .pc-ben :is(.pc-ben-label,.pc-ben-choice-text,.pc-ben-consent-label) abbr[title]{color:var(--pc87-bleu)}
.pc87-benevolat .pc-ben .pc-ben-has-error :is(.pc-ben-label,.pc-ben-choice-text,.pc-ben-consent-label) abbr[title]{color:var(--pc87-erreur)}
/* Petits textes à 13 px au moins ; compteur de caractères sans vert ni orange (illisibles sur blanc) */
.pc87-benevolat .pc-ben :is(.pc-ben-help,.pc-ben-error-msg,.pc-ben-char-counter,.pc-ben-recap-note,.pc-ben-recap-noscript,.pc-ben-success-org,.pc-ben-recap-edit){font-size:var(--pc87-fs-etiquette)}
.pc87-benevolat .pc-ben :is(.pc-ben-recap-group dt,.pc-ben-address-item small){font-size:var(--pc87-fs-etiquette)}
.pc87-benevolat .pc-ben .pc-ben-char-counter:is(.is-ok,.is-warn){color:var(--pc87-texte)}
.pc87-benevolat .pc-ben .pc-ben-nav-status{color:var(--pc87-doux);font-size:var(--pc87-fs-petit)}
/* Champs : bord bleu au survol et au focus, anneau de focus du site (pas de halo orange) */
.pc87-benevolat .pc-ben :is(input:not([type=radio]):not([type=checkbox]),textarea,select):hover{border-color:var(--pc87-bleu)}
.pc87-benevolat .pc-ben :is(input:not([type=radio]):not([type=checkbox]),textarea,select):focus{border-color:var(--pc87-bleu);box-shadow:none}
.pc87-benevolat .pc-ben :is(input:not([type=radio]):not([type=checkbox]),textarea,select):focus-visible{outline:3px solid var(--pc87-focus);outline-offset:2px}
.pc87-benevolat .pc-ben .pc-ben-has-error :is(input,textarea,select):is(:hover,:focus){border-color:var(--pc87-erreur)}
/* Choix : sélection en bleu sur fond clair (la coche orange était une icône), sans ombre ni déplacement */
.pc87-benevolat .pc-ben .pc-ben-choice:hover{border-color:var(--pc87-bleu);background:var(--pc87-blanc);transform:none;box-shadow:none}
.pc87-benevolat .pc-ben .pc-ben-choice:has(input:checked){border-color:var(--pc87-bleu);background:var(--pc87-teinte);color:var(--pc87-bleu);box-shadow:none}
.pc87-benevolat .pc-ben .pc-ben-choice:has(input:checked)::after{content:none}
.pc87-benevolat .pc-ben .pc-ben-choice:has(input:focus-visible){outline:3px solid var(--pc87-focus);outline-offset:2px}
.pc87-benevolat .pc-ben :is(.pc-ben-choice,.pc-ben-consent-label) input{accent-color:var(--pc87-bleu)}
.pc87-benevolat .pc-ben .pc-ben-has-error .pc-ben-choice input{background:none;box-shadow:none}
.pc87-benevolat .pc-ben .pc-ben-address-item:is(:hover,.is-active){background:var(--pc87-teinte)}
.pc87-benevolat .pc-ben .pc-ben-address-results{box-shadow:var(--pc87-ombre-flottant)}
/* Boutons plats : Précédent en contour, Suivant bleu, Envoyer orange (texte bleu nuit, le seul orange de
   l'écran) ; anneau de focus du site */
.pc87-benevolat .pc-ben .pc-ben-btn,.pc87-benevolat .pc-ben .pc-ben-btn:is(:hover,:active){box-shadow:none;transform:none}
.pc87-benevolat .pc-ben .pc-ben-btn:focus-visible{outline:3px solid var(--pc87-focus);outline-offset:3px}
.pc87-benevolat .pc-ben .pc-ben-btn-cta{background:var(--pc87-orange);color:var(--pc87-nuit)}
.pc87-benevolat .pc-ben .pc-ben-btn-cta:hover{background:var(--pc87-orange-survol);color:var(--pc87-nuit)}
/* Écran de confirmation : sans bandeau décoratif dégradé, sans liseré dégradé ni pastille à coche */
.pc87-benevolat .pc-ben .pc-ben-success{padding-top:28px}
.pc87-benevolat .pc-ben .pc-ben-success::before{content:none}
.pc87-benevolat .pc-ben :is(.pc-ben-success-deco,.pc-ben-success-mark){display:none}
/* Toute la page centrée, comme la page DPS (04/10/2026) : sections et tête de page sur une colonne de 880 px centrée. */
.e-con.pc87-benevolat,.e-con.pc87-page-tete:has(+.e-con.pc87-benevolat){--content-width:880px}
/* ==== pages-v2/donner/page.css ==== */
/* =====================================================================
   PAGE « DONNER » v2 (pages-v2/donner/gen.py) : se colle À LA SUITE de
   dist/css-additionnel.css (ou devient un partiel css/6x-donner.css).
   Classes posées par le générateur :
   pc87-donner-texte-bas (duo dont la colonne, texte seul, est plus courte
   que le bandeau), pc87-donner-soutiens (grille des encadrés « Le
   mécénat » et « Devenir membre sympathisant »), pc87-donner-soutien (un
   encadré), pc87-donner-antenne (encadré « Donner à une antenne locale »,
   juste avant le dernier bouton de don).
   30/09/2026 (réponses de Léo) : seul l'encadré « Le mécénat » est publié
   (dans une colonne) ; les règles des encadrés « sympathisant » et
   « antenne » restent pour le cas où CHOIX changerait ; la règle des
   marqueurs est retirée avec eux.
   Aucun réglage de style dans le JSON (design/design-A.md, règle 9).
   ===================================================================== */
/* Duo côte à côte (dès 1024 px) : quand la colonne ne porte qu'un texte court, elle est calée EN BAS, à la hauteur
   du titre posé au bas du bandeau (sinon le texte se lit avant son titre et laisse un grand vide dessous). Le duo
   dont la colonne est plus haute que le bandeau (texte + photo) garde pc87-duo--haut (30-pages.css, § 5). */
@media (min-width:1024px){
.e-con.pc87-donner-texte-bas>.e-con-inner,.e-con-full.pc87-donner-texte-bas{align-items:end}
}
/* Grille des encadrés : textes de longueurs inégales. Une seule colonne jusqu'à 1023 px (limitée à 40 rem : à
   768 px, deux encadrés côte à côte laissaient un encadré presque vide étiré à côté d'un encadré long) ; 2 colonnes
   dès 1024 px, chaque encadré à sa hauteur naturelle (pas d'étirement). */
.e-con.pc87-grille.pc87-donner-soutiens{align-items:start}
@media (max-width:1023px){.e-con.pc87-grille.pc87-donner-soutiens:is(.pc87-grille--2,:not(.pc87-grille--2)){grid-template-columns:minmax(0,1fr);max-width:40rem}}
/* Encadré « antenne » : même largeur que les encadrés de la grille (une colonne de 40 rem jusqu'à 1023 px, puis la
   largeur d'une des 2 colonnes), collé au bouton de don qui suit. */
.e-con.pc87-donner-antenne{width:100%;max-width:40rem}
@media (min-width:1024px){.e-con.pc87-donner-antenne{max-width:calc((100% - var(--pc87-grille-gap)) / 2)}}
/* Encadrés : le texte suit la mesure de lecture ; pas de marge sous le dernier paragraphe. */
.e-con.pc87-donner-soutien .elementor-widget-text-editor p:last-child{margin-bottom:0}
.e-con.pc87-donner-soutien .elementor-widget-text-editor p{max-width:var(--pc87-lecture)}
/* ==== pages-v2/former/page.css ==== */
/* ==== Page Former (pages-v2/former/page.css) : à coller À LA FIN du CSS additionnel ====
   Encadré court « Entreprises et collectivités » (pc87-encadre pc87-former-pro), placé dans la tête de page
   sous l'introduction : la tête n'a pas d'écart entre ses éléments, d'où la marge haute. Largeur de lecture
   au-delà du téléphone : 64 caractères de texte comme .pc87-lecture, plus 34 px (filet et marges internes).
   Variante F4 = b (pc87-former-pro-lien) : une seule ligne-lien sous l'introduction, même marge haute réduite.
   (30/09/2026 : règle du marqueur retirée avec le marqueur, L45a = Oui.) */
.pc87-page-tete .e-con.pc87-former-pro{margin-block-start:20px;max-width:calc(var(--pc87-lecture) + 34px)}
.pc87-page-tete .pc87-former-pro-lien{margin-block-start:12px}
.pc87-former-pro .elementor-widget-text-editor p{margin:0}
.pc87-former-pro .elementor-widget-text-editor p+p{margin-top:8px}
/* ==== pages-v2/notre-association/page.css ==== */
/* pages-v2/notre-association/page.css — page « Notre association » (/notre-association/), version 3.
   (30/09/2026 : règle des marqueurs retirée avec les marqueurs ; règle de la grille « gouvernance » retirée avec
   le volet, L32 = Non.)
   1. Encadré « siège / antenne » : à la largeur de lecture (64 ch), pas sur 1290 px.
   2. « Qui sommes-nous » puis « Nos missions de sécurité civile » (deux titres de section) empilés dans la même
      section blanche : séparés par l'écart d'une section.
   3. Intertitres h3 de « Notre offre de formation » (lignes du texte repris) : un peu d'air au-dessus, pour
      qu'ils ouvrent le paragraphe qui suit au lieu de clore le précédent.
   4. « Notre offre de formation » garde la mise en page commune (30-pages.css, pc87-asso-corps : dès 1024 px,
      lecture à gauche, certificat Qualiopi à droite) ; cette version y ajoute des intertitres, l'explication
      des sigles et une rangée de lien : écart vertical de la section (20 px) entre ces éléments, qui sinon se
      touchent (écart de ligne 0), et rangée de lien dans la colonne de lecture. */
.e-con.pc87-encadre.pc87-asso-lieux{max-width:var(--pc87-lecture)}
.pc87-asso-lieux .elementor-widget-text-editor p{margin:0 0 .35rem}
.pc87-asso-lieux .elementor-widget-text-editor p:last-child{margin-bottom:0}
.e-con.pc87-asso-pile{--row-gap:var(--pc87-section-y);row-gap:var(--pc87-section-y)}
.elementor-widget.pc87-asso-inter{margin-block-start:var(--pc87-e3)}
@media (min-width:1024px){
.e-con.pc87-asso-corps>.e-con-inner{row-gap:var(--pc87-e5)}
.e-con.pc87-asso-corps>.e-con-inner>.e-con{grid-column:1}
}
/* ==== pages-v2/secourir/page.css ==== */
/* =====================================================================
   Page SECOURIR (pages-v2/secourir, gen.py) : une classe propre à la page.
   (La règle des marqueurs « à confirmer » est retirée le 30/09/2026 : réponses de Léo appliquées, plus aucun marqueur.)
   Galerie (pc87-secourir-galerie, 7 photos sans lien) : 4 colonnes dès 768 px au lieu de 1024 (entre 768 et
   1023 px, 2 colonnes faisaient environ 1 000 px de photos). Nombre impair : la dernière photo prend toute la
   rangée en 2 colonnes ; en 4 colonnes, elle prend 2 cases et sa hauteur suit celle de ses voisines.
   ===================================================================== */
.e-con.pc87-secourir-galerie>.elementor-widget-image:last-child:nth-child(odd){grid-column:1/-1}
@media (min-width:768px){
.e-con.pc87-secourir-galerie{grid-template-columns:repeat(4,minmax(0,1fr))}
.e-con.pc87-secourir-galerie>.elementor-widget-image:last-child:nth-child(odd){grid-column:auto}
.e-con.pc87-secourir-galerie>.elementor-widget-image:last-child:nth-child(4n+3){grid-column:span 2;position:relative}
.e-con.pc87-secourir-galerie>.elementor-widget-image:last-child:nth-child(4n+3) img{position:absolute;inset:0;height:100%;aspect-ratio:auto}
}
/* ==== pages-v2/secourir_demande-dps-haute-vienne/page.css ==== */
/* ==== Page « Demander un poste de secours en Haute-Vienne » (pages-v2/secourir_demande-dps-haute-vienne/page.css)
   À coller À LA FIN du CSS additionnel. Portée : conteneurs de la page, classe pc87-p-dps (posée par gen.py).
   Mise en page de la page seulement. L'ancien « habillage provisoire » du formulaire (partie 2, pour pc87-dps 3.0.1)
   est RETIRÉ le 30/09/2026 : pc87-dps 3.1.0 porte elle-même les bons textes et la charte (aucune icône, un seul
   indicateur d'étape, « Envoyer ma demande » orange, correctifs à 375 px, textes à 13 px) ; ses règles de masquage
   cacheraient maintenant les bons textes (repas, effectif, acteurs, délai). */

/* Encadrés à largeur de lecture (le fond ne s'étire pas sur 1290 px) */
.pc87-p-dps .e-con.pc87-encadre{max-width:820px}
.pc87-p-dps .pc87-encadre .elementor-widget-text-editor ul{margin-block:10px 12px}
/* Étapes : paragraphes qui suivent la liste espacés */
.pc87-p-dps ol.pc87-etapes{margin-bottom:24px}
/* Rôles (Qui fait quoi) : une colonne jusqu'à 1023 px (pas de 3e rôle seul sur sa ligne), trois ensuite ;
   sous-titres rapprochés de leur texte */
@media (max-width:1023px){.pc87-p-dps .e-con.pc87-grille{grid-template-columns:minmax(0,1fr)}}
.pc87-p-dps .pc87-dps-role .elementor-widget-heading h3{margin:0}
/* Formulaire : colonne de 880 px CENTRÉE (demande de Léo du 04/10/2026, règle commune dans css/30-pages.css et
   css/50-modules.css) ; l'ancien alignement à gauche (question M-a) est retiré. */
/* Téléphone : le dernier élément du fil d'Ariane répète le H1 mot pour mot sur sa propre ligne ; masqué à
   l'écran sous 600 px (il reste lu par les lecteurs d'écran), avec son séparateur, pour que le bouton
   « Faire ma demande » apparaisse sans défiler sur les petits écrans (360 × 560). */
@media (max-width:600px){
.pc87-p-dps .pc87-ariane .hfe-breadcrumbs .hfe-breadcrumbs-last{position:absolute;width:1px;height:1px;min-height:0;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.pc87-p-dps .pc87-ariane .hfe-breadcrumbs .hfe-breadcrumbs-separator:has(+ .hfe-breadcrumbs-last){display:none}
}
/* Coordonnées sous les questions fréquentes */
.pc87-p-dps .pc87-coordonnees p+p{margin-top:2px}
/* Toute la page centrée (demande de Léo du 04/10/2026) : chaque section, tête de page comprise, sur une colonne
   de 880 px centrée, la même que le formulaire ; les textes gardent leur largeur de lecture dans la colonne. */
.e-con.pc87-p-dps{--content-width:880px}


/* --- Correctifs communs du 19/10 --- */
/* ==== PC87 - Correctifs de l'audit du 19/10/2026, lot « css-commun » ====
   À coller À LA FIN de Apparence > Personnaliser > CSS additionnel, sous le socle déjà en place (ne rien
   retirer au-dessus). Chaque règle cite son constat (audit du 19/10). Classes pc87-* et variables --pc87-*
   seulement, aucun sélecteur .elementor-element-<id>. */

/* C22 : entre 1025 et ~1350 px, tout le contenu collait à 15 px du bord de la fenêtre. Dès 1025 px (seuil de
   l'en-tête de bureau ; le menu mobile, jusqu'à 1024 px, garde ses 15 px), la gouttière passe à 32 px.
   Le cadre est calculé (contenu + 2 gouttières) : recherche, 404, archives, formulaires DPS et bénévole et
   modules restent alignés sur les pages Elementor. Largeur du contenu inchangée (1290 px). */
:root{--pc87-cadre:calc(var(--pc87-contenu) + 2 * var(--pc87-gouttiere))}
@media (min-width:1025px){:root{--pc87-gouttiere:var(--pc87-e8)}}
/* C22, accueil : le texte du haut de page et les 4 portes ont 15 px de marge réglés dans Elementor ; ils
   suivent la gouttière (body + .e-con.e-con passe devant le réglage de l'élément). */
@media (min-width:1025px){body .e-con.e-con:is(.pc87-acc-hero-txt,.pc87-acc-portes){--padding-left:var(--pc87-gouttiere);--padding-right:var(--pc87-gouttiere)}}

/* C61 : Actualités (et archives), carte sans extrait : la date touchait presque le bas de la carte (6 px).
   Le dernier paragraphe de la carte (date ou extrait) garde 16 px en dessous. */
:is(.blog,.archive) article.post>p:last-child{padding-bottom:16px}

/* C76 : au téléphone, un titre sur aplat de 3 ou 4 lignes cachait presque toute la photo du bandeau (Aider,
   Donner). Sous 600 px : aplat un peu plus petit (18 px) et bandeau un peu plus haut. */
@media (max-width:599px){.e-con.pc87-bandeau{--pc87-aplat-taille:1.125rem;min-height:clamp(240px,68vw,320px)}}

/* C80, 1 : dès 600 px, le trait incliné du H1 touchait le soulignement du fil d'Ariane (écart mesuré : 3 px à
   600 px, 0 à 1024 px, -1 px à 1280 px). Au-dessus du H1, la moitié de sa taille : le trait monte de .5em. */
@media (min-width:600px){
.pc87-page-tete .pc87-ariane+.pc87-h1{margin-block-start:calc(var(--pc87-fs-h1) * .5)}
body:not([class*=elementor-page-]) .site-main>.pc87-ariane--hello+.page-header{padding-block-start:calc(var(--pc87-fs-h1) * .5)}
}
/* C80, 2 : Politique de confidentialité, fiches des services : un lien pris dans une phrase (« (3.10) ») recevait
   la cible de 48 px prévue pour un lien seul en cellule et laissait un blanc après lui. Lien en ligne. */
.pc87-legal table.pc87-cf-fiche td>a:only-child{display:inline;min-width:0;min-height:0;margin-block:0}
/* C80, 3 : « Envoyer ma demande » (DPS) : le socle lui donne un fond bleu sans couleur de texte. pc87-dps passe
   devant aujourd'hui (orange, texte bleu nuit) : rien ne change à l'écran ; si l'extension change, le texte
   sera blanc sur bleu (10,3:1) au lieu de bleu nuit sur bleu (1,3:1). */
body .pc-form .pc-submit-btn,body .pc-form .pc-submit-btn:hover{color:var(--pc87-blanc)}

/* C55 : accueil, vitrine des formations en rail au téléphone : l'anneau de focus (3 px, décalé de 3 px) était
   coupé en haut et sur les côtés. Le rail prend 8 px de marge intérieure, compensés par une marge négative
   dans la gouttière ; l'aimantation garde 8 px au bord. Surcharge de pc87-formations 1.5.0, à reporter dans
   catalogue.css à la prochaine version de l'extension. */
@media (max-width:599px){body .pc-vit.pc-vit--rail .pc-vit-liste{padding:8px 8px 10px;margin:0 -8px;scroll-padding-inline:8px}}

/* C69 (seule la partie sans choix de style) : un titre placé dans un encadré à filet orange portait aussi le
   trait incliné, deux ornements orange côte à côte. Dans un encadré, le titre perd le trait (et le retrait qui
   lui faisait place) ; le trait reste sur les titres de section. */
.e-con.pc87-encadre :is(.pc87-titre>.elementor-heading-title,.pc87-titre:not(.elementor-widget)){padding-left:0}
.e-con.pc87-encadre :is(.pc87-titre>.elementor-heading-title,.pc87-titre:not(.elementor-widget))::before{content:none}


/* --- 04/11 : ligne Qualiopi du pied, phrase handicap de Former --- */
.pc87-qualiopi-ligne p { margin: 0 0 .5rem; font-size: .875rem; }
.pc87-handicap { margin-bottom: 1rem; }
