/* KYMO LMS — gabarits de l'espace connecté et briques publiques (palette STYLE.md).
   Tout le cosmétique passe par les variables --kymolms-* : surchargables via
   KYMO LMS → Apparence (espace connecté) ou les contrôles des widgets Elementor. */
:root{
	--kymolms-accent:#FF6A3D;
	--kymolms-encre:#1A2238;
	--kymolms-texte:#0F0F0F;
	--kymolms-attenue:#545454;
	--kymolms-fond-page:#F6F5F4;
	--kymolms-fond-carte:#fff;
	--kymolms-fond-note:#FFF8F3;
	--kymolms-fond-fait:#F4F7FF;
	--kymolms-bordure:#0F0F0F;
	--kymolms-bordure-epaisseur:1px;
	--kymolms-rayon:12px;
	--kymolms-carte-padding:20px 24px;
	--kymolms-rayon-bouton:14px;
	--kymolms-bouton-taille:15px;
	--kymolms-bouton-padding:13px 24px;
	--kymolms-ombre:4px 4px 0 rgba(15,15,15,.12);
	--kymolms-ombre-bouton:0 14px 22px -12px color-mix(in srgb,var(--kymolms-accent) 65%,transparent);
	--kymolms-police-titres:Rubik,Arial,sans-serif;
	--kymolms-police-corps:Poppins,Arial,sans-serif;
}
/* Pages autonomes du plugin (parcours, convention, évaluation) uniquement —
   ne jamais styler le body des pages du thème. */
body.kymolms-page{font-family:var(--kymolms-police-corps);color:var(--kymolms-texte);line-height:1.6;margin:0;background:var(--kymolms-fond-page)}
.kymolms-cadre{max-width:860px;margin:24px auto;padding:0 16px 48px;font-family:var(--kymolms-police-corps);color:var(--kymolms-texte);line-height:1.6}
.kymolms-cadre h1{font-family:var(--kymolms-police-titres);color:var(--kymolms-encre)}
.kymolms-cadre h2{font-family:var(--kymolms-police-titres);font-size:20px;color:var(--kymolms-encre);margin:0 0 8px}
.kymolms-sous-titre{color:var(--kymolms-attenue);margin-top:-12px}
/* Bouton CTA (piste 1) : accent ou dégradé (Apparence) + texte encre (AA). */
.kymolms-bouton{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--kymolms-bouton-fond,var(--kymolms-accent));color:var(--kymolms-encre) !important;border:var(--kymolms-bouton-bordure,0);border-radius:var(--kymolms-rayon-bouton);padding:var(--kymolms-bouton-padding);min-height:48px;box-sizing:border-box;font-size:var(--kymolms-bouton-taille);font-weight:var(--kymolms-bouton-graisse,700);text-transform:var(--kymolms-bouton-transformation,none);letter-spacing:var(--kymolms-bouton-interlettrage,normal);font-family:var(--kymolms-police-corps);cursor:pointer;text-decoration:none;box-shadow:var(--kymolms-ombre-bouton);transition:transform .15s ease}
.kymolms-bouton:hover{transform:translateY(-1px)}
.kymolms-bouton:active{transform:scale(.97)}
.kymolms-bouton[disabled]{opacity:.5;cursor:wait;transform:none}
.kymolms-module,.kymolms-carte,.kymolms-verrou{background:var(--kymolms-fond-carte);border:var(--kymolms-bordure-epaisseur) solid var(--kymolms-bordure);border-radius:var(--kymolms-rayon);box-shadow:var(--kymolms-ombre);padding:var(--kymolms-carte-padding);margin:18px 0}
.kymolms-fait{color:#008a20;font-size:14px;font-family:var(--kymolms-police-corps)}
.kymolms-video{position:relative;padding-top:56.25%;margin:12px 0}
.kymolms-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:8px}
.kymolms-fichiers{list-style:none;padding:0}
.kymolms-fichiers a{color:var(--kymolms-encre)}
.kymolms-progression{background:var(--kymolms-fond-carte);border:1px solid var(--kymolms-bordure);border-radius:99px;height:14px;overflow:hidden}
.kymolms-progression-barre{background:var(--kymolms-accent);height:100%;transition:width .4s}
.kymolms-progression-texte{color:var(--kymolms-attenue);font-size:14px}
.kymolms-note{color:#996800;background:var(--kymolms-fond-note);border-radius:6px;padding:8px 12px}
.kymolms-onglets{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.kymolms-onglets a{padding:8px 18px;border:1px solid var(--kymolms-bordure);border-radius:99px;text-decoration:none;color:var(--kymolms-texte);background:var(--kymolms-fond-carte)}
.kymolms-onglets a.actif{background:var(--kymolms-encre);color:#fff;border-color:var(--kymolms-encre)}
/* Pastille (piste 1) : fond carte, bordure fine translucide, ombre douce. */
.kymolms-badge{display:inline-flex;align-items:center;gap:7px;border-radius:99px;padding:7px 14px;font-size:13px;font-weight:600;background:var(--kymolms-fond-carte);border:1.5px solid color-mix(in srgb,var(--kymolms-bordure) 12%,transparent);color:var(--kymolms-texte);box-shadow:0 8px 14px -10px color-mix(in srgb,var(--kymolms-encre) 30%,transparent)}
/* Badge aux couleurs du domaine : la teinte (--kymolms-domaine) et le texte
   contrasté (--kymolms-domaine-texte) sont posés par le renderer depuis le
   terme (Formations → Domaines) ; les contrôles Elementor priment (spécificité). */
.kymolms-badge--domaine-fond{background:var(--kymolms-domaine);border-color:color-mix(in srgb,var(--kymolms-domaine) 55%,transparent);color:var(--kymolms-domaine-texte)}
.kymolms-badge--domaine-teinte{background:color-mix(in srgb,var(--kymolms-domaine) 14%,var(--kymolms-fond-carte));border-color:color-mix(in srgb,var(--kymolms-domaine) 45%,transparent)}
.kymolms-badge--domaine-contour{border-color:var(--kymolms-domaine)}
.kymolms-badge--domaine-pastille::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--kymolms-domaine);flex:none}
.kymolms-champ{margin:10px 0}
.kymolms-champ label{display:block;font-weight:600;margin-bottom:4px}
.kymolms-champ input,.kymolms-champ select{width:100%;max-width:420px;padding:8px;border:1px solid var(--kymolms-attenue);border-radius:6px;font-family:inherit}
.kymolms-message{font-weight:600}
.kymolms-erreur{color:#b00020}
/* Masqué visuellement, lu par les lecteurs d'écran (légendes de fieldset…). */
.kymolms-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* min(280px,100%) : dans un conteneur plus étroit que 280px (mobile, colonnes
   Elementor imbriquées), la piste se réduit au lieu de faire déborder les cartes. */
.kymolms-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:20px;margin:20px 0}
/* Armure anti-débordement des grilles de cartes (mesuré 2026-08-12 : à 375 px
   avec 3 colonnes forcées, une carte de 87 px avait un contenu de 200 px et
   perçait la page de 90 px). En grid, un item vaut min-width:auto = sa taille
   min-content : sans min-width:0, le bouton (120 px incompressibles) et les
   mots longs élargissent la piste au lieu de se plier. Même recette qu'au
   passeport (0.80.1). */
.kymolms-grille>*{min-width:0}
.kymolms-grille img{max-width:100%}
.kymolms-carte-formation__titre{overflow-wrap:anywhere}
.kymolms-carte-formation .kymolms-bouton{max-width:100%;white-space:normal}
.kymolms-etoiles{position:relative;display:inline-block;line-height:1;letter-spacing:2px;color:#d8d8d8;vertical-align:middle;font-size:20px}
.kymolms-etoiles-plein{position:absolute;inset:0;overflow:hidden;white-space:nowrap;color:var(--kymolms-accent)}
/* Note compacte et section avis (éléments stylables individuellement). */
.kymolms-note-nb{color:var(--kymolms-attenue)}
.kymolms-avis-entete{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kymolms-avis-entete .kymolms-etoiles{font-size:26px}
.kymolms-avis-moyenne{font-size:22px}
.kymolms-avis-carte{margin:0}
.kymolms-avis-note{margin:0 0 6px}
.kymolms-avis-carte .kymolms-etoiles{font-size:16px}
.kymolms-avis-texte{margin:0}
.kymolms-avis-auteur{margin:8px 0 0;color:var(--kymolms-attenue)}
/* Bouton « Lire plus / Réduire » des avis (créé en JS — sans JS, tout est visible). */
.kymolms-avis-plus{margin:14px 0 0;text-align:center}
.kymolms-avis-plus__bouton{display:inline-flex;align-items:center;background:var(--kymolms-fond-carte);color:var(--kymolms-encre);border:1.5px solid color-mix(in srgb,var(--kymolms-bordure) 20%,transparent);border-radius:99px;padding:9px 20px;min-height:40px;font-family:var(--kymolms-police-corps);font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 8px 14px -10px color-mix(in srgb,var(--kymolms-encre) 30%,transparent);transition:border-color .15s}
.kymolms-avis-plus__bouton:hover{border-color:var(--kymolms-accent)}
/* Blocs d'inscription. */
.kymolms-sessions{display:flex;flex-direction:column;gap:18px;margin:16px 0}
.kymolms-session-bloc{background:var(--kymolms-fond-carte);border:var(--kymolms-bordure-epaisseur) solid var(--kymolms-bordure);border-radius:var(--kymolms-rayon);box-shadow:var(--kymolms-ombre);padding:16px 20px;max-width:520px}
.kymolms-session-recap{margin:0 0 10px;font-size:1.05em}
.kymolms-fieldset{border:0;padding:0;margin:0;min-width:0}
.kymolms-sessions-vide p{margin:0}
/* Bloc formateur(s) d'une formation. */
.kymolms-formateurs{display:flex;flex-direction:column;gap:18px;margin:16px 0}
.kymolms-formateur-carte{margin:0;display:flex;gap:18px;align-items:flex-start}
.kymolms-formateur-carte__photo{flex-shrink:0}
.kymolms-formateur-carte__photo img{width:110px;height:110px;object-fit:cover;object-position:top;border-radius:50%;display:block}
.kymolms-formateur-carte__nom{margin:0 0 6px;font-family:var(--kymolms-police-titres);font-size:19px;line-height:1.3}
.kymolms-formateur-carte__nom a{color:var(--kymolms-encre);text-decoration:none}
.kymolms-formateur-carte__nom a:hover{color:var(--kymolms-accent)}
.kymolms-formateur-carte__extrait{margin:0 0 8px}
.kymolms-formateur-carte__lien{margin:12px 0 0}
.kymolms-formateur-carte__lien a{color:var(--kymolms-accent);text-decoration:none;font-weight:600}
.kymolms-formateur-carte__specialite{margin:-2px 0 8px;color:var(--kymolms-accent);font-weight:600;font-size:14px}
.kymolms-formateur-carte__badges{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.kymolms-formateur-carte__badges .kymolms-badge{margin:0}
.kymolms-badge__icone{display:inline-flex;color:var(--kymolms-accent)}
.kymolms-badge__icone svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kymolms-formateur-carte__lien a.kymolms-badge{text-decoration:none;transition:border-color .15s}
.kymolms-formateur-carte__lien a.kymolms-badge:hover{border-color:var(--kymolms-accent)}
/* Habillage carte désactivé (widget Formateur) : seul le contenu reste. */
.kymolms-formateurs--nu{margin:0}
.kymolms-formateurs--nu .kymolms-formateur-carte{background:none;border:0;box-shadow:none;border-radius:0;padding:0;margin:0}
.kymolms-formateurs--nu .kymolms-formateur-carte__nom{margin:0}
@media (max-width:480px){.kymolms-formateur-carte{flex-direction:column}}
/* Fiche formateur — piste « dossier de crédibilité » : carte profil épinglée
   (photo ronde, nom, spécialité, réseaux, boutons, badges empilés),
   rangée de réseaux, bouton CV et publications numérotées. */
.kymolms-carte-profil{margin:0;padding:24px;text-align:center}
.kymolms-carte-profil__photo img{width:150px;height:150px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 14px}
.kymolms-carte-profil__nom{font-family:var(--kymolms-police-titres);font-size:26px;line-height:1.2;color:var(--kymolms-encre);margin:0 0 4px}
.kymolms-carte-profil__specialite{color:var(--kymolms-attenue);font-size:15px;margin:0 0 14px}
.kymolms-carte-profil .kymolms-reseaux{margin:0 0 16px}
.kymolms-carte-profil__cta-ligne{margin:0 0 8px}
.kymolms-carte-profil__cta{display:flex;justify-content:center;width:100%;box-sizing:border-box}
.kymolms-carte-profil .kymolms-cv{margin:0 0 8px}
.kymolms-carte-profil .kymolms-cv a{display:flex;justify-content:center;width:100%;box-sizing:border-box}
.kymolms-carte-profil__badges{display:flex;flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;text-align:left}
.kymolms-carte-profil__badges .kymolms-badge{margin:0}
.kymolms-reseaux{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.kymolms-reseaux li{margin:0}
.kymolms-reseaux__lien{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--kymolms-fond-carte);border:1.5px solid color-mix(in srgb,var(--kymolms-bordure) 12%,transparent);box-shadow:0 8px 14px -10px color-mix(in srgb,var(--kymolms-encre) 30%,transparent);transition:border-color .15s}
.kymolms-reseaux__lien svg{width:19px;height:19px;stroke:var(--kymolms-encre);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kymolms-reseaux__lien:hover,.kymolms-reseaux__lien:focus-visible{border-color:var(--kymolms-accent)}
.kymolms-reseaux__lien:hover svg,.kymolms-reseaux__lien:focus-visible svg{stroke:var(--kymolms-accent)}
.kymolms-cv a{text-decoration:none}
.kymolms-publications{margin:0;padding:var(--kymolms-carte-padding,24px 28px)}
.kymolms-publications--nu{background:none;border:0;box-shadow:none;border-radius:0;padding:0}
.kymolms-publications__titre{font-family:var(--kymolms-police-titres);font-size:22px;color:var(--kymolms-encre);margin:0 0 10px}
.kymolms-publications__liste{margin:0;padding:0;list-style:none}
.kymolms-publication{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid color-mix(in srgb,var(--kymolms-bordure) 15%,transparent)}
.kymolms-publication:last-child{border-bottom:0;padding-bottom:0}
.kymolms-publication__num{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;font-family:var(--kymolms-police-titres);font-weight:800;font-size:14px;color:var(--kymolms-accent);background:var(--kymolms-fond-note);border:1px solid color-mix(in srgb,var(--kymolms-bordure) 12%,transparent)}
.kymolms-publication__titre{font-weight:600;color:var(--kymolms-texte)}
a.kymolms-publication__titre:hover,a.kymolms-publication__titre:focus-visible{color:var(--kymolms-accent)}
.kymolms-publication__source{display:block;font-size:13px;color:var(--kymolms-attenue)}
/* Cartes de formation (grilles publiques) — éléments stylables individuellement. */
.kymolms-carte-formation{margin:0;display:flex;flex-direction:column}
.kymolms-carte-formation__image{display:block;margin:0 0 10px}
.kymolms-carte-formation__image img{width:100%;height:160px;object-fit:cover;border-radius:8px;display:block}
.kymolms-carte-formation__titre{margin:0 0 6px;font-family:var(--kymolms-police-titres);font-size:20px;line-height:1.3}
.kymolms-carte-formation__titre a{color:var(--kymolms-encre);text-decoration:none}
.kymolms-carte-formation__titre a:hover{color:var(--kymolms-accent)}
.kymolms-carte-formation__domaines{margin:0 0 8px;display:flex;flex-wrap:wrap;gap:6px}
/* Pied de carte aligné entre cartes d'une même rangée : le bloc sessions +
   bouton est poussé en bas, le titre absorbe les différences de longueur. */
.kymolms-carte-formation__sessions{margin:auto 0 0;padding-left:18px}
.kymolms-carte-formation__dates{display:block}
.kymolms-carte-formation__tarifs{display:block;font-weight:600}
.kymolms-carte-formation__vide{margin:auto 0 0}
.kymolms-carte-formation__pied{margin:12px 0 0}
/* Sessions masquées : c'est alors le bouton lui-même qui est poussé en bas. */
.kymolms-carte-formation__titre+.kymolms-carte-formation__pied,.kymolms-carte-formation__domaines+.kymolms-carte-formation__pied{margin-top:auto}
.kymolms-carte-formation .kymolms-bouton{align-self:flex-start}
.kymolms-carte-vide{margin:20px 0}
/* Info de session (widget/shortcode) : neutre, à styler dans Elementor. */
.kymolms-info-session{margin:0}
.kymolms-info-session__icone{display:inline-flex;vertical-align:-.125em;margin-right:8px;color:var(--kymolms-accent);font-size:1em;line-height:1}
.kymolms-info-session__icone svg{width:1em;height:1em;fill:currentColor}
/* Jauge de places restantes (widget/shortcode). */
.kymolms-jauge{display:flex;flex-direction:column;gap:8px;margin:0}
.kymolms-jauge__barre{background:var(--kymolms-fond-page);border:1px solid var(--kymolms-bordure);border-radius:99px;height:12px;overflow:hidden}
.kymolms-jauge__remplie{background:var(--kymolms-accent);height:100%;border-radius:99px}
.kymolms-jauge__texte{margin:0;font-size:14px;color:var(--kymolms-attenue)}
.kymolms-jauge__nb{color:var(--kymolms-accent)}
.kymolms-jauge--complet .kymolms-jauge__remplie{background:var(--kymolms-encre)}
/* Tableau des tarifs dégressifs (widget/shortcode). */
.kymolms-tarifs{margin:0}
.kymolms-tarifs__tableau{display:flex;flex-direction:column;border:var(--kymolms-bordure-epaisseur) solid var(--kymolms-bordure);border-radius:var(--kymolms-rayon);overflow:hidden;background:var(--kymolms-fond-carte)}
.kymolms-tarifs__ligne{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px}
.kymolms-tarifs__ligne+.kymolms-tarifs__ligne{border-top:1px dashed var(--kymolms-attenue)}
.kymolms-tarifs__ligne--avant{background:var(--kymolms-fond-note)}
.kymolms-tarifs__libelle{color:var(--kymolms-attenue)}
.kymolms-tarifs__montant{font-weight:700;color:var(--kymolms-encre);white-space:nowrap}
.kymolms-tarifs__ligne--avant .kymolms-tarifs__montant{color:var(--kymolms-accent)}
.kymolms-tarifs__badge{display:inline-block;background:var(--kymolms-accent);color:#fff;border-radius:99px;padding:1px 10px;font-size:12px;margin-left:6px}
.kymolms-tarifs__note{margin:8px 0 0;font-size:13px;color:var(--kymolms-attenue)}
/* Objectifs pédagogiques (widget/shortcode) — colonnes pilotées par le widget. */
.kymolms-objectifs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--kymolms-objectifs-colonnes,1),1fr);gap:10px}
.kymolms-objectifs__item{display:flex;gap:10px;align-items:flex-start;background:var(--kymolms-fond-carte);border:var(--kymolms-bordure-epaisseur) solid var(--kymolms-bordure);border-radius:var(--kymolms-rayon);box-shadow:var(--kymolms-ombre);padding:12px 16px;margin:0}
.kymolms-objectifs__coche{color:var(--kymolms-accent);font-weight:700}
@media (max-width:640px){.kymolms-objectifs{grid-template-columns:1fr}}
/* Programme par blocs (widget/shortcode) — colonnes pilotées par le widget. */
.kymolms-programme{display:grid;grid-template-columns:repeat(var(--kymolms-programme-colonnes,2),1fr);gap:18px;margin:0}
.kymolms-programme__bloc{background:var(--kymolms-fond-carte);border:var(--kymolms-bordure-epaisseur) solid var(--kymolms-bordure);border-radius:var(--kymolms-rayon);box-shadow:var(--kymolms-ombre);padding:var(--kymolms-carte-padding);margin:0}
.kymolms-programme__surtitre{margin:0 0 4px;color:var(--kymolms-accent);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.kymolms-programme__titre{margin:0 0 10px;font-family:var(--kymolms-police-titres);color:var(--kymolms-encre);font-size:19px}
.kymolms-programme__points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.kymolms-programme__points li{display:flex;gap:10px;align-items:flex-start;margin:0}
.kymolms-programme__coche{color:var(--kymolms-accent);font-weight:700}
.kymolms-programme__texte{margin:0 0 8px}
.kymolms-programme__texte:last-child{margin-bottom:0}
/* Disposition « ligne » (frise verticale à pastilles, piste 3). */
.kymolms-programme--ligne{grid-template-columns:1fr;position:relative;padding-left:36px;gap:26px}
.kymolms-programme--ligne::before{content:"";position:absolute;left:12px;top:8px;bottom:12px;width:3px;border-radius:3px;background:color-mix(in srgb,var(--kymolms-bordure) 15%,transparent)}
.kymolms-programme--ligne .kymolms-programme__bloc{background:none;border:0;box-shadow:none;border-radius:0;padding:0;position:relative}
/* Pastille centrée sur le rail par transformation : insensible au box-sizing
   du thème, à la taille de la pastille et au support (rail : left 12px + 3px
   de large → centre à 13,5px ; bloc décalé de 36px → -22,5px). */
.kymolms-programme--ligne .kymolms-programme__bloc::before{content:"";position:absolute;left:-22.5px;top:3px;width:15px;height:15px;box-sizing:border-box;transform:translateX(-50%);border-radius:50%;background:var(--kymolms-accent);border:3px solid var(--kymolms-fond-carte);box-shadow:0 4px 8px -3px color-mix(in srgb,var(--kymolms-encre) 40%,transparent)}
@media (max-width:640px){.kymolms-programme{grid-template-columns:1fr}}
/* Galerie de la formation (widget/shortcode). */
.kymolms-galerie{display:grid;gap:12px;margin:0}
.kymolms-galerie--grille{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}
.kymolms-galerie--mosaique{grid-template-columns:1.6fr 1fr;grid-auto-rows:var(--kymolms-galerie-hauteur,150px)}
.kymolms-galerie--mosaique .kymolms-galerie__item:first-child{grid-row:span 2}
.kymolms-galerie__item{position:relative;margin:0;border-radius:var(--kymolms-rayon);overflow:hidden}
.kymolms-galerie__item img{width:100%;height:100%;object-fit:cover;display:block}
.kymolms-galerie__lien{display:block;height:100%}
.kymolms-galerie--grille .kymolms-galerie__item img{aspect-ratio:4/3;height:auto}
.kymolms-galerie__legende{position:absolute;left:10px;bottom:10px;margin:0;background:rgba(26,34,56,.75);color:#fff;font-size:12.5px;border-radius:99px;padding:4px 12px}
/* Tuile vidéo (façade : poster + lecture, iframe injectée au clic). */
.kymolms-galerie__video{position:relative;background:var(--kymolms-encre)}
.kymolms-galerie__lecture{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;margin:0;cursor:pointer;background:var(--kymolms-encre);display:block}
.kymolms-galerie__lecture img{width:100%;height:100%;object-fit:cover;display:block;opacity:.85}
.kymolms-galerie__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:var(--kymolms-accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(15,15,15,.35);transition:transform .2s}
.kymolms-galerie__lecture:hover .kymolms-galerie__play,.kymolms-galerie__lecture:focus-visible .kymolms-galerie__play{transform:translate(-50%,-50%) scale(1.08)}
.kymolms-galerie__play svg{width:26px;height:26px;fill:currentColor;margin-left:3px}
.kymolms-galerie__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.kymolms-galerie--grille .kymolms-galerie__video{aspect-ratio:16/9}
/* Tuiles au format du média : en grille, chaque tuile suit l'orientation de
   sa photo (portrait normalisé 4:5) ; la façade vidéo suit le format déclaré,
   4:5 par défaut (--kymolms-galerie-ratio:9/16 posé par le renderer pour la
   déviation « reel ») et son poster s'affiche alors ENTIER sur le fond encre
   (une affiche carrée n'est pas tronquée par un cover vertical). */
.kymolms-galerie--grille .kymolms-galerie__item--portrait img{aspect-ratio:4/5}
.kymolms-galerie--grille .kymolms-galerie__item--carre img{aspect-ratio:1/1}
.kymolms-galerie--grille .kymolms-galerie__item--paysage img{aspect-ratio:16/9}
.kymolms-galerie--grille .kymolms-galerie__video.kymolms-galerie__video--portrait{aspect-ratio:var(--kymolms-galerie-ratio,4/5)}
.kymolms-galerie__video--portrait .kymolms-galerie__lecture img{object-fit:contain}
/* Mosaïque verticale (grande tuile 4:5 ou 9:16 : vidéo, ou 1re photo
   portrait) : la grande occupe la colonne gauche et donne la hauteur ; les
   vignettes, enveloppées dans une colonne flex, se la partagent (images en
   absolu : aucune hauteur propre, pas de calcul circulaire). */
.kymolms-galerie--mosaique.kymolms-galerie--verticale{grid-template-columns:minmax(0,55fr) minmax(0,45fr);grid-auto-rows:auto}
.kymolms-galerie--mosaique.kymolms-galerie--verticale>.kymolms-galerie__item:first-child{grid-row:auto;aspect-ratio:var(--kymolms-galerie-ratio,4/5)}
.kymolms-galerie__colonne{display:flex;flex-direction:column;gap:inherit;min-width:0;min-height:0}
.kymolms-galerie__colonne .kymolms-galerie__item{flex:1 1 0;min-height:0}
.kymolms-galerie__colonne .kymolms-galerie__item img{position:absolute;inset:0}
.kymolms-galerie--mosaique.kymolms-galerie--verticale.kymolms-galerie--seule{grid-template-columns:minmax(0,1fr)}
.kymolms-galerie--mosaique.kymolms-galerie--verticale.kymolms-galerie--seule>.kymolms-galerie__item:first-child{width:100%;max-width:min(420px,100%);margin-inline:auto}
@media (max-width:640px){.kymolms-galerie--mosaique{grid-template-columns:1fr;grid-auto-rows:auto}.kymolms-galerie--mosaique .kymolms-galerie__item:first-child{grid-row:auto}.kymolms-galerie--mosaique .kymolms-galerie__item img{aspect-ratio:16/10;height:auto}.kymolms-galerie--mosaique .kymolms-galerie__video{aspect-ratio:16/9}.kymolms-galerie--mosaique .kymolms-galerie__video img{aspect-ratio:auto;height:100%}
/* Verticale en mobile : grande verticale pleine largeur, vignettes en rangée dessous. */
.kymolms-galerie--mosaique.kymolms-galerie--verticale{grid-template-columns:1fr}
.kymolms-galerie--mosaique.kymolms-galerie--verticale>.kymolms-galerie__item:first-child{aspect-ratio:var(--kymolms-galerie-ratio,4/5)}
.kymolms-galerie--mosaique.kymolms-galerie--verticale>.kymolms-galerie__item:first-child img{aspect-ratio:auto;height:100%}
.kymolms-galerie__colonne{flex-direction:row}
.kymolms-galerie__colonne .kymolms-galerie__item{aspect-ratio:3/4;min-width:0}
.kymolms-galerie__colonne .kymolms-galerie__item img{aspect-ratio:auto;height:100%;position:absolute}}
/* Bouton du programme PDF (widget/shortcode). */
.kymolms-programme-pdf{margin:0}
.kymolms-programme-pdf a{text-decoration:none}
/* Tarifs à paliers « Deux temps » (2026-07-21) : carte 1 = maximum du jour +
   barre calendrier, carte 2 = remboursement selon le groupe, pied CF/étudiant. */
.kymolms-paliers__titre{font-family:var(--kymolms-police-titres);font-size:22px;color:var(--kymolms-encre);margin:0 0 4px}
.kymolms-paliers__intro{color:var(--kymolms-attenue);font-size:14.5px;max-width:70ch;margin:0 0 16px}
.kymolms-paliers__temps{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.kymolms-paliers__carte{margin:0;padding:var(--kymolms-carte-padding,20px 24px)}
.kymolms-paliers__sous-titre{display:flex;align-items:center;gap:8px;font-family:var(--kymolms-police-titres);font-size:16.5px;color:var(--kymolms-encre);margin:0 0 10px}
.kymolms-paliers__num{flex:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;font-family:var(--kymolms-police-titres);font-weight:800;font-size:15px;color:var(--kymolms-accent);background:var(--kymolms-fond-note);border:1px solid color-mix(in srgb,var(--kymolms-bordure) 12%,transparent)}
.kymolms-paliers__montant-jour{font-family:var(--kymolms-police-titres);font-weight:800;font-size:38px;line-height:1.1;color:var(--kymolms-accent);margin:0 0 6px;font-variant-numeric:tabular-nums}
.kymolms-paliers__max{font-family:var(--kymolms-police-corps);font-weight:400;font-size:15px;color:var(--kymolms-attenue)}
.kymolms-paliers__barre{margin-top:6px}
.kymolms-paliers__segments{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin:28px 0 6px}
.kymolms-paliers__segment{height:13px;border-radius:99px;background:color-mix(in srgb,var(--kymolms-encre) 11%,transparent);position:relative}
.kymolms-paliers__segment--passe{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--kymolms-encre) 16%,transparent) 0 6px,color-mix(in srgb,var(--kymolms-encre) 9%,transparent) 6px 12px)}
.kymolms-paliers__segment--actuel{background:var(--kymolms-bouton-fond,var(--kymolms-accent));box-shadow:var(--kymolms-ombre-bouton,none)}
.kymolms-paliers__curseur{position:absolute;top:-26px;left:var(--kymolms-curseur,50%);transform:translateX(-50%);font-family:var(--kymolms-police-titres);font-weight:800;font-size:11px;letter-spacing:.05em;text-transform:uppercase;background:var(--kymolms-encre);color:#fff;border-radius:8px;padding:4px 8px;white-space:nowrap}
.kymolms-paliers__curseur::after{content:"";position:absolute;left:50%;bottom:-5px;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--kymolms-encre);border-bottom:0}
.kymolms-paliers__legende{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;font-size:12.5px;color:var(--kymolms-attenue)}
.kymolms-paliers__legende b{display:block;color:var(--kymolms-encre);font-size:13.5px;font-variant-numeric:tabular-nums}
.kymolms-paliers__legende--active b{color:var(--kymolms-accent)}
.kymolms-paliers__groupes{margin:0;padding:0;list-style:none}
.kymolms-paliers__groupes li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 2px;border-bottom:1.5px dotted color-mix(in srgb,var(--kymolms-encre) 14%,transparent);font-size:14.5px;font-variant-numeric:tabular-nums}
.kymolms-paliers__groupes li:last-child{border-bottom:0}
.kymolms-paliers__groupe-libelle{flex:1}
.kymolms-paliers__groupe-delta{font-size:13px;color:var(--kymolms-attenue)}
.kymolms-paliers__groupe-delta--ok{color:#1F7A33;font-weight:600}
.kymolms-paliers__groupe-prix{font-family:var(--kymolms-police-titres);font-weight:800;font-size:18px}
.kymolms-paliers__note{font-size:13px;color:var(--kymolms-attenue);margin:10px 0 0}
.kymolms-paliers__pieds{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin-top:14px}
.kymolms-paliers__fin{margin:0;padding:15px 20px}
.kymolms-paliers__fin-titre{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--kymolms-attenue)}
/* Tableau chèques-formation (3 lignes, même forme que les remboursements) :
   subvention en VERT CLAIR par défaut — pensée pour les conteneurs navy
   (#1A2238) du propriétaire ; dans le pied BLANC du bloc complet, elle
   s'assombrit pour rester lisible. Réglable dans le widget. */
.kymolms-paliers__cf .kymolms-paliers__groupe-prix.kymolms-paliers__cf-subvention{color:#8FE3A5;white-space:nowrap}
.kymolms-paliers__fin .kymolms-paliers__cf .kymolms-paliers__groupe-prix.kymolms-paliers__cf-subvention{color:#1F7A33}
/* Lignes « libellé — prix » : pied du bloc complet ET fragments seuls
   (parties cf_total / cf_acompte / etudiant du widget). */
.kymolms-paliers__valeur{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;font-size:14.5px;font-variant-numeric:tabular-nums}
.kymolms-paliers__valeur-libelle{color:var(--kymolms-attenue)}
.kymolms-paliers__valeur-prix{font-weight:600;white-space:nowrap}
.kymolms-paliers__valeur-prix--fort{font-family:var(--kymolms-police-titres);font-weight:800;font-size:18px}
.kymolms-paliers__fin .kymolms-paliers__valeur:first-of-type{margin-top:6px}
.kymolms-paliers--fragment{margin:0}
.kymolms-paliers--fragment .kymolms-paliers__segments{margin-top:30px}
@media (max-width:760px){.kymolms-paliers__temps,.kymolms-paliers__pieds{grid-template-columns:1fr}}
/* Conteneurs conditionnels : classe à poser sur un conteneur Elementor pour
   le masquer SUR LE SITE quand la brique KYMO qu'il abrite n'a rien rendu
   (aucun avis, pas de programme…). Reste visible dans l'éditeur Elementor. */
body:not(.elementor-editor-active) .elementor-element.kymolms-si-avis:not(:has(.kymolms-avis)),
body:not(.elementor-editor-active) .elementor-element.kymolms-si-programme:not(:has(.kymolms-programme)),
body:not(.elementor-editor-active) .elementor-element.kymolms-si-objectifs:not(:has(.kymolms-objectifs)),
body:not(.elementor-editor-active) .elementor-element.kymolms-si-galerie:not(:has(.kymolms-galerie)),
body:not(.elementor-editor-active) .elementor-element.kymolms-si-formateur:not(:has(.kymolms-formateurs)),
body:not(.elementor-editor-active) .elementor-element.kymolms-si-jauge:not(:has(.kymolms-jauge)){display:none}
/* Fiche formateur : mêmes conteneurs conditionnels pour CV, réseaux et publications. */
body:not(.elementor-editor-active) .elementor-element.kymolms-si-cv:not(:has(.kymolms-cv)),
body:not(.elementor-editor-active) .elementor-element.kymolms-si-reseaux:not(:has(.kymolms-reseaux)),
body:not(.elementor-editor-active) .elementor-element.kymolms-si-publications:not(:has(.kymolms-publications)){display:none}
/* Tarifs à paliers : kymolms-si-paliers = conteneur masqué si la session n'a
   pas de paliers actifs ; kymolms-sinon-paliers = repli (tableau historique),
   masqué quand un frère PRÉCÉDENT si-paliers a rendu le bloc. */
body:not(.elementor-editor-active) .elementor-element.kymolms-si-paliers:not(:has(.kymolms-paliers)){display:none}
body:not(.elementor-editor-active) .elementor-element.kymolms-si-paliers:has(.kymolms-paliers)~.elementor-element.kymolms-sinon-paliers{display:none}
/* Grilles de formations : kymolms-si-formations = masqué si la grille n'a
   produit AUCUNE carte (état vide compris) ; kymolms-sinon-formations = repli,
   masqué quand un conteneur kymolms-si-formations FRÈRE précédent a des cartes.
   Les deux conteneurs doivent être frères (même parent). */
body:not(.elementor-editor-active) .elementor-element.kymolms-si-formations:not(:has(.kymolms-carte-formation)){display:none}
body:not(.elementor-editor-active) .elementor-element.kymolms-si-formations:has(.kymolms-carte-formation)~.elementor-element.kymolms-sinon-formations{display:none}
/* Carte « Prochaine session » ou section d'inscription : kymolms-si-session =
   masqué si aucune session rendue — la détection couvre les widgets Info de
   session (.kymolms-info-session — laisser les « texte si aucune info » VIDES)
   ET les blocs d'inscription (.kymolms-session-bloc, widgets Sessions &
   inscription / Inscription une session) ;
   kymolms-sinon-session = repli (message « en préparation » + M'avertir),
   masqué quand un frère précédent si-session a une session. */
body:not(.elementor-editor-active) .elementor-element.kymolms-si-session:not(:has(.kymolms-info-session, .kymolms-session-bloc)){display:none}
body:not(.elementor-editor-active) .elementor-element.kymolms-si-session:has(.kymolms-info-session, .kymolms-session-bloc)~.elementor-element.kymolms-sinon-session{display:none}
/* Barre d'annonce du header : prochaine session ouverte du site (renderer
   Front\AnnonceSession, widget « KYMO — Annonce (prochaine session) »).
   Les couleurs héritent du conteneur (barre navy) ; le lien et la pastille
   prennent l'accent — tout est surchargeable dans le widget. */
.kymolms-annonce{display:inline-flex;align-items:center;gap:14px;line-height:1.4}
.kymolms-annonce__point{width:8px;height:8px;border-radius:50%;background:var(--kymolms-accent,#FF6A3D);box-shadow:0 0 0 3px color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 30%,transparent);flex:none}
.kymolms-annonce__texte strong{font-weight:700}
.kymolms-annonce__sep{opacity:.6}
.kymolms-annonce__lien{font-weight:700;color:var(--kymolms-accent,#FF6A3D);text-decoration:none;white-space:nowrap}
.kymolms-annonce__lien:hover,.kymolms-annonce__lien:focus-visible{text-decoration:underline}
/* kymolms-si-annonce : à poser sur le conteneur Elementor de la barre —
   masqué sur le site quand il n'y a rien à annoncer (laisser le « texte si
   rien à annoncer » du widget VIDE pour que la barre disparaisse). */
body:not(.elementor-editor-active) .elementor-element.kymolms-si-annonce:not(:has(.kymolms-annonce)){display:none}
/* Badge « note Google » (barre d'annonce, footer, /lorganisme/) : étoiles
   Avis::etoiles() + texte à gabarit, cliquable vers la page d'avis Google. */
.kymolms-note-google{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
a.kymolms-note-google:hover .kymolms-note-google__texte,a.kymolms-note-google:focus-visible .kymolms-note-google__texte{text-decoration:underline}
.kymolms-note-google__note{font-weight:800}
.kymolms-note-google__etoile{color:var(--kymolms-accent,#FF6A3D);font-style:normal;line-height:1}
/* Compteur animé d'un chiffre de preuve (widget « KYMO : Chiffre animé »).
   Styles volontairement minimaux : typographies, couleurs et tailles se
   règlent dans l'onglet Style du widget. La règle des 10 px s'applique. */
.kymolms-chiffre-anime{display:flex;flex-direction:column;gap:10px}
.kymolms-chiffre-anime>*{margin:0}
.kymolms-chiffre-anime__valeur{display:flex;align-items:baseline;justify-content:inherit;gap:2px;font-size:2.6em;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}
.kymolms-chiffre-anime__prefixe,.kymolms-chiffre-anime__suffixe{font-size:.62em;font-weight:700}
.kymolms-chiffre-anime__libelle{font-size:.95rem;line-height:1.35}
/* Modes de paiement du bloc d'inscription (échelonné / payer plus tard). */
.kymolms-modes{margin:10px 0 4px;padding:10px 14px;background:var(--kymolms-fond-note,#F4F7FF);border-radius:8px}
.kymolms-modes__titre{margin:0 0 6px;font-weight:700}
.kymolms-mode{margin:4px 0}
.kymolms-modes__sous{margin:4px 0 8px 24px;padding:6px 0 2px 12px;border-left:2px solid var(--kymolms-bordure,rgba(15,15,15,.25))}
.kymolms-modes__sous .kymolms-mode{font-size:.95em}
/* Gras appuyé demandé sur les fragments clés (« 2 »/« 3 », « prélèvement
   automatique », « lien de paiement par e-mail », « Carte de crédit »,
   « Bancontact »). */
.kymolms-modes strong{font-weight:800}
.kymolms-modes__canal{margin:8px 0 2px;font-weight:600;font-size:.9em;color:var(--kymolms-attenue,#545454)}
/* Pré-requis obligatoire d'une session : encart du bloc d'inscription + pop-up
   de confirmation. Les classes __titre / __texte sont partagées entre les deux :
   les réglages du widget Elementor (section « Pré-requis obligatoire ») ciblent
   les mêmes sélecteurs et s'appliquent donc à l'encart ET au pop-up. */
.kymolms-prerequis{display:flex;flex-direction:column;gap:10px;margin:10px 0;padding:12px 14px;background:var(--kymolms-fond-note,#FFF8F3);border:1.5px solid color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 45%,transparent);border-radius:10px}
.kymolms-prerequis>*{margin:0}
.kymolms-prerequis__titre{font-weight:800;color:var(--kymolms-accent,#FF6A3D)}
.kymolms-prerequis__texte{color:var(--kymolms-texte,#2A2A2A)}
.kymolms-prerequis__liste{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}
.kymolms-prerequis__liste a{color:inherit;font-weight:600}
.kymolms-prerequis__formateur{color:var(--kymolms-attenue,#545454);font-weight:400}
.kymolms-prerequis__apercu{font-size:.85em;color:var(--kymolms-attenue,#545454)}
.kymolms-prerequis-dialog{max-width:480px;width:calc(100% - 40px);border:var(--kymolms-bordure-epaisseur,1.5px) solid var(--kymolms-bordure,rgba(15,15,15,.6));border-radius:var(--kymolms-rayon,18px);box-shadow:var(--kymolms-ombre,0 18px 40px rgba(15,15,15,.2));padding:20px;background:var(--kymolms-fond-carte,#fff);color:var(--kymolms-texte,#2A2A2A)}
.kymolms-prerequis-dialog::backdrop{background:rgba(26,34,56,.55)}
.kymolms-prerequis-dialog .kymolms-prerequis__titre{margin:0 0 10px}
.kymolms-prerequis-dialog .kymolms-prerequis__texte{margin:0 0 10px}
.kymolms-prerequis-dialog__question{margin:0 0 10px;font-weight:600}
.kymolms-prerequis__cases{display:flex;flex-direction:column;gap:10px;margin:0 0 12px}
.kymolms-prerequis__case{display:flex;align-items:flex-start;gap:10px}
.kymolms-prerequis__case input{margin-top:4px;flex:none}
/* Pop-up du passe multi-formations : une section par session concernée (le JS
   ne montre que les sessions cochées au moment de valider). */
.kymolms-prerequis-dialog__session{padding:0 0 12px;margin:0 0 12px;border-bottom:1px dashed color-mix(in srgb,var(--kymolms-bordure,rgba(15,15,15,.6)) 35%,transparent)}
.kymolms-prerequis-dialog__session:last-of-type{border-bottom:0;padding-bottom:0}
.kymolms-prerequis-dialog__formation{margin:0 0 10px;font-weight:700;color:var(--kymolms-encre,#1A2238)}
/* Boutons du pop-up : le CTA confirme, l'annulation reste BLANCHE (demande
   propriétaire 2026-08-12). Spécificité doublée + valeurs posées au repos ET
   au survol : le kit Elementor recolore tous les button (pièges 0.67.1/0.90.0). */
.kymolms-prerequis-dialog__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.kymolms-prerequis-dialog .kymolms-bouton{max-width:100%;white-space:normal}
.kymolms-prerequis-dialog button.kymolms-prerequis-dialog__confirmer[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.kymolms-prerequis-dialog button.kymolms-prerequis-dialog__annuler{background:#fff;color:var(--kymolms-encre,#1A2238);border:1.5px solid color-mix(in srgb,var(--kymolms-encre,#1A2238) 30%,transparent);border-radius:999px;min-height:44px;padding:8px 18px;font-family:var(--kymolms-police-corps,inherit);font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 8px 14px -10px color-mix(in srgb,var(--kymolms-encre,#1A2238) 30%,transparent);transition:transform .15s ease,border-color .15s ease}
.kymolms-prerequis-dialog button.kymolms-prerequis-dialog__annuler:hover,.kymolms-prerequis-dialog button.kymolms-prerequis-dialog__annuler:focus-visible{background:#fff;color:var(--kymolms-encre,#1A2238);border-color:var(--kymolms-encre,#1A2238);transform:translateY(-1px)}
/* Badge des cartes du passe : la session exige un pré-requis. */
.kymolms-passeport__prereq{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:2px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;color:var(--kymolms-accent,#FF6A3D);background:var(--kymolms-fond-note,#FFF8F3);border:1px solid color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 45%,transparent)}
/* Échéancier de l'espace élève. */
.kymolms-echeances{margin:8px 0;padding:10px 14px;background:var(--kymolms-fond-note,#F4F7FF);border-radius:8px}
.kymolms-echeances p{margin:0 0 6px}
.kymolms-echeances ul{margin:0;padding-left:18px}
.kymolms-echeances li{margin:4px 0}
.kymolms-echeances .kymolms-bouton{padding:4px 12px;font-size:13px;margin-left:6px}
.kymolms-payer-echeance--avance{background:var(--kymolms-encre,#1A2238)}
/* Alerte « M'avertir des prochaines dates » (widget/shortcode). */
.kymolms-alerte{margin:0}
.kymolms-alerte__ligne{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
.kymolms-alerte__ligne input[type=email]{flex:1 1 200px;min-width:0;padding:10px 14px;border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,#0F0F0F);border-radius:var(--kymolms-rayon-bouton,8px);font:inherit;background:var(--kymolms-fond-carte,#fff);color:var(--kymolms-texte,#0F0F0F)}
.kymolms-alerte__note{font-size:12.5px;color:var(--kymolms-attenue,#545454);margin:8px 0 0}
.kymolms-alerte .kymolms-message{margin:8px 0 0;font-weight:600}
.kymolms-alerte .kymolms-message:empty{display:none}
.kymolms-alerte__deja{margin:0}

/* ---- Newsletter (widget KYMO : Newsletter / [kymolms_newsletter]) ---- */
.kymolms-newsletter{margin:0}
.kymolms-newsletter__titre{font-weight:700;font-size:1.15em;color:var(--kymolms-titres,#1A2238);margin:0 0 10px}
.kymolms-newsletter__texte{margin:0 0 10px}
.kymolms-newsletter__ligne{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
.kymolms-newsletter__champ{flex:1 1 200px;min-width:0;padding:10px 14px;border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,#0F0F0F);border-radius:var(--kymolms-rayon-bouton,8px);font:inherit;background:var(--kymolms-fond-carte,#fff);color:var(--kymolms-texte,#0F0F0F)}
.kymolms-newsletter__prenom{flex:0 1 140px}
.kymolms-newsletter__note{font-size:12.5px;color:var(--kymolms-attenue,#545454);margin:8px 0 0}
.kymolms-newsletter .kymolms-message{margin:8px 0 0;font-weight:600}
.kymolms-newsletter .kymolms-message:empty{display:none}

/* ---- Réclamation (widget KYMO : Réclamation / [kymolms_reclamation]) ---- */
.kymolms-reclamation{margin:0}
.kymolms-reclamation__titre{font-weight:700;font-size:1.15em;color:var(--kymolms-titres,#1A2238);margin:0 0 10px}
.kymolms-reclamation__texte{margin:0 0 10px}
.kymolms-reclamation__form{display:flex;flex-direction:column;gap:10px}
.kymolms-reclamation__champ-bloc{display:flex;flex-direction:column;gap:10px;margin:0}
.kymolms-reclamation__champ-bloc label{font-weight:600;font-size:14.5px;color:var(--kymolms-titres,#1A2238)}
.kymolms-reclamation__champ-bloc input[type=text],.kymolms-reclamation__champ-bloc input[type=email],.kymolms-reclamation__champ-bloc select,.kymolms-reclamation__champ-bloc textarea{width:100%;max-width:100%;box-sizing:border-box;padding:10px 14px;border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,#0F0F0F);border-radius:var(--kymolms-rayon-bouton,8px);font:inherit;background:var(--kymolms-fond-carte,#fff);color:var(--kymolms-texte,#0F0F0F)}
.kymolms-reclamation__champ-bloc textarea{resize:vertical;min-height:120px}
.kymolms-reclamation__champ-bloc input[type=file]{font:inherit;font-size:14px}
.kymolms-reclamation__actions{margin:0}
.kymolms-reclamation__note{font-size:12.5px;color:var(--kymolms-attenue,#545454);margin:0}
.kymolms-reclamation .kymolms-message{margin:0;font-weight:600}
.kymolms-reclamation .kymolms-message:empty{display:none}
.kymolms-reclamation--envoyee .kymolms-message{padding:14px 18px;border-radius:14px;background:#DFF5EA;color:#1F7A50}

/* ---- Espace élève « Mon espace formation » (maquette validée 2026-07-15). ---- */
.kymolms-espace{--esp-navy:var(--kymolms-encre,#1A2238);--esp-attenue:var(--kymolms-attenue,#5B6274);--esp-bordure:var(--kymolms-bordure,rgba(26,34,56,.10));--esp-bleute:#F4F7FF;--esp-peche:#FFF8F3;--esp-vert:#1F7A50;--esp-vert-doux:#DFF5EA;--esp-rouge:#B3261E;--esp-rouge-doux:#FCEBEA;--esp-ombre:var(--kymolms-ombre,0 20px 32px -20px rgba(26,34,56,.28),0 6px 14px -8px rgba(26,34,56,.10))}
.kymolms-esp-ico{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-3px}
.kymolms-esp-entete{background:var(--esp-bleute);border:var(--kymolms-bordure-epaisseur,1.5px) solid var(--esp-bordure);border-radius:22px;padding:26px 26px 8px;margin:20px 0 24px}
.kymolms-esp-entete h1{font-family:var(--kymolms-police-titres,inherit);color:var(--esp-navy);font-size:clamp(24px,3.4vw,34px);margin:0}
.kymolms-esp-entete>p{color:var(--esp-attenue);margin:4px 0 0}
.kymolms-esp-onglets{display:flex;gap:10px;overflow-x:auto;padding:20px 0 18px;scrollbar-width:none}
.kymolms-esp-onglets::-webkit-scrollbar{display:none}
.kymolms-esp-onglet{display:inline-flex;align-items:center;gap:8px;background:var(--kymolms-fond-carte,#fff);border:1.5px solid rgba(26,34,56,.14);border-radius:999px;padding:10px 20px;font-weight:700;font-size:14px;color:var(--esp-navy);text-decoration:none;white-space:nowrap;flex:none}
.kymolms-esp-onglet .kymolms-esp-ico{width:17px;height:17px}
.kymolms-esp-onglet[aria-current="page"]{background:var(--kymolms-bouton-fond,linear-gradient(180deg,#FF845F,#F25222));border-color:transparent;color:var(--esp-navy);box-shadow:var(--kymolms-ombre-bouton,0 14px 22px -12px rgba(255,106,61,.65))}
.kymolms-esp-onglet[aria-current="page"] .kymolms-esp-ico{color:var(--esp-navy)}
/* Le kit Elementor souligne et recolore les liens : on reprend la main
   (spécificité doublée — même remède que la croix de Ma visibilité). */
.kymolms-espace .kymolms-esp-onglets .kymolms-esp-onglet,.kymolms-espace .kymolms-esp-onglets .kymolms-esp-onglet:hover,.kymolms-espace .kymolms-esp-onglets .kymolms-esp-onglet:focus,.kymolms-espace .kymolms-esp-onglets .kymolms-esp-onglet[aria-current="page"]{text-decoration:none;color:var(--esp-navy)}
.kymolms-espace a.kymolms-esp-ghost,.kymolms-espace a.kymolms-esp-ghost:hover,.kymolms-espace a.kymolms-esp-ghost:focus{text-decoration:none;color:var(--esp-navy)}
.kymolms-espace a.kymolms-bouton,.kymolms-espace a.kymolms-bouton:hover,.kymolms-espace a.kymolms-bouton:focus{text-decoration:none}
/* Le kit Elementor recolore aussi les boutons au survol (rose) : dans
   l'espace et la carte visibilité, le survol reste sobre — on se soulève,
   la bordure s'affirme, les couleurs ne changent pas. */
.kymolms-espace button.kymolms-badge:hover,.kymolms-visib button.kymolms-badge:hover{background:var(--kymolms-fond-carte,#fff);color:var(--kymolms-texte,#1A2238);border-color:rgba(26,34,56,.35);transform:translateY(-1px)}
.kymolms-espace button.kymolms-esp-ghost:hover,.kymolms-visib button.kymolms-esp-ghost:hover{background:var(--kymolms-fond-carte,#fff);color:var(--esp-navy,#1A2238)}
/* Zone d'actions des lignes de documents : simple crochet pour espace.js,
   sans l'habillage « note » (fond/marges) de la feuille générale. */
.kymolms-espace .kymolms-echeances{background:transparent;padding:0;margin:0;border-radius:0}
.kymolms-esp-titre{font-family:var(--kymolms-police-titres,inherit);color:var(--esp-navy);font-size:22px;margin:0 0 6px}
.kymolms-esp-sous{color:var(--esp-attenue);font-size:15px;margin:0 0 22px}
.kymolms-esp-puce{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;border-radius:999px;padding:6px 14px}
.kymolms-esp-puce .kymolms-esp-ico{width:14px;height:14px}
.kymolms-esp-puce--ok{color:var(--esp-vert);background:var(--esp-vert-doux)}
.kymolms-esp-puce--alerte{color:var(--esp-rouge);background:var(--esp-rouge-doux)}
.kymolms-esp-puce--neutre{color:var(--esp-navy);background:var(--esp-peche)}
.kymolms-esp-ghost{display:inline-flex;align-items:center;gap:9px;background:var(--kymolms-fond-carte,#fff);color:var(--esp-navy);font-weight:700;font-size:14px;padding:10px 18px;border-radius:13px;border:1.5px solid rgba(26,34,56,.18);cursor:pointer;text-decoration:none;box-shadow:0 6px 14px -8px rgba(26,34,56,.14);transition:transform .18s ease,border-color .18s ease}
.kymolms-esp-ghost:hover{transform:translateY(-2px);border-color:rgba(26,34,56,.35)}
.kymolms-esp-ghost .kymolms-esp-ico{width:16px;height:16px}
.kymolms-esp-note{display:flex;gap:14px;align-items:flex-start;background:var(--esp-bleute);border:1.5px solid var(--esp-bordure);border-radius:18px;padding:18px 22px;margin:0 0 20px;font-size:14.5px}
.kymolms-esp-note .kymolms-esp-ico{color:var(--kymolms-accent,#FF6A3D);margin-top:3px}
.kymolms-esp-note-bas{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--esp-attenue);margin-top:18px}
.kymolms-esp-note-bas .kymolms-esp-ico{width:16px;height:16px;margin-top:3px;color:var(--kymolms-accent,#FF6A3D)}
/* Cartes de formation à affiche. */
.kymolms-esp-formations{display:flex;flex-direction:column;gap:18px}
.kymolms-esp-cf{display:grid;grid-template-columns:190px 1fr;background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1.5px) solid var(--esp-bordure);border-radius:24px;box-shadow:var(--esp-ombre);overflow:hidden}
/* Affiche au format d'origine : carré plein cadre, calé en haut de la carte
   (demande propriétaire 2026-07-31 : plus d'étirement à la pleine hauteur). */
.kymolms-esp-cf-img{background:linear-gradient(140deg,#FF8B62,#F25222);background-size:cover;background-position:center;aspect-ratio:1/1;align-self:start;border-radius:0 0 18px 0}
.kymolms-esp-cf-titre{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.kymolms-esp-cf-badge{border-radius:999px;font-size:11.5px;font-weight:800;letter-spacing:.4px;padding:5px 13px;white-space:nowrap;flex:none;margin-top:2px}
/* Corps de carte en colonne à écart régulier : 10 px MINIMUM entre chaque
   ligne, quelle que soit la combinaison de contenus (règle propriétaire
   2026-07-31 — les marges des enfants directs sont neutralisées). */
.kymolms-esp-cf-corps{padding:22px 26px;display:flex;flex-direction:column;gap:10px}
.kymolms-esp-cf-corps>*{margin:0}
.kymolms-esp-cf-corps h2{font-family:var(--kymolms-police-titres,inherit);color:var(--esp-navy);font-size:18px;margin:0}
.kymolms-esp-cf-statut{color:var(--esp-attenue);font-size:14px}
.kymolms-esp-tarif{color:var(--esp-attenue)}
.kymolms-esp-cf-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.kymolms-esp-cf-expiration{color:var(--esp-attenue);font-size:12.5px}
/* Ligne d'état (puce de statut + tarif) : bloc propre, jamais étiré. */
.kymolms-esp-cf-etat{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* Boutons d'action HARMONISÉS dans toutes les cartes de l'espace : CTA et
   ghost à la MÊME géométrie que la puce de statut (13 px, pastille 999,
   hauteur 34 px) — le min-height:48px et l'ombre clay du CTA global sont
   neutralisés ici, sinon le bouton écrase la carte (retour propriétaire
   2026-07-31). */
/* Taille UNIQUE des boutons dans tout l'espace connecté (retour propriétaire
   2026-08-07) : CTA, ghost et pastilles alignés sur le format compact des
   cartes (13px / 34px / pilule). Seul le CTA plein écran de la connexion
   (.kymolms-cnx-cta) garde son gabarit de la maquette B. */
.kymolms-espace .kymolms-bouton:not(.kymolms-cnx-cta),.kymolms-visib .kymolms-bouton{font-size:13px;font-weight:700;padding:7px 15px;border-radius:999px;min-height:34px;box-sizing:border-box;margin:0;box-shadow:0 6px 14px -8px rgba(242,82,34,.45)}
.kymolms-espace .kymolms-esp-ghost{font-size:13px;padding:7px 15px;border-radius:999px;min-height:34px;box-sizing:border-box;margin:0}
.kymolms-espace .kymolms-bouton .kymolms-esp-ico,.kymolms-espace .kymolms-esp-ghost .kymolms-esp-ico{width:14px;height:14px}
.kymolms-espace button.kymolms-badge,.kymolms-visib button.kymolms-badge{min-height:34px;box-sizing:border-box}
/* Harmonie des boutons sur les pages autonomes du plugin (parcours, convention,
   évaluation, alertes) : MÊME échelle compacte que l'espace élève (13 px,
   pastille 34 px) pour tous les CTA et badges, lien ou button (le box-sizing
   unifie les deux, piège 0.78.2 : un <a> sans border-box additionne padding et
   min-height). Règle propriétaire 2026-08-14 : une seule taille de bouton. */
.kymolms-cadre .kymolms-bouton{font-size:13px;font-weight:700;padding:7px 15px;border-radius:999px;min-height:34px;box-shadow:0 6px 14px -8px rgba(242,82,34,.45);max-width:100%;white-space:normal}
.kymolms-cadre .kymolms-badge{min-height:34px;box-sizing:border-box;max-width:100%;white-space:normal}
@media (max-width:640px){.kymolms-esp-cf{grid-template-columns:1fr}.kymolms-esp-cf-img{border-radius:0 0 18px 18px}}
/* Synthèse de paiement + points d'échéancier (dans les groupes de documents). */
.kymolms-esp-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.kymolms-esp-points{display:inline-flex;gap:5px;margin-left:8px;vertical-align:1px}
.kymolms-esp-points i{width:9px;height:9px;border-radius:50%;background:var(--esp-vert);display:inline-block}
.kymolms-esp-points i.a_venir{background:rgba(26,34,56,.18)}
.kymolms-esp-points i.echec{background:var(--esp-rouge)}
/* Documents. */
.kymolms-esp-docs{background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1.5px) solid var(--esp-bordure);border-radius:22px;box-shadow:var(--esp-ombre);overflow:hidden;margin-bottom:18px}
.kymolms-esp-docs header{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:20px 26px 14px;border-bottom:1.5px solid var(--esp-bordure);background:var(--esp-bleute)}
.kymolms-esp-docs header h3{font-family:var(--kymolms-police-titres,inherit);color:var(--esp-navy);font-size:17px;margin:0}
.kymolms-esp-docs header small{color:var(--esp-attenue);font-size:13px}
.kymolms-esp-doc{display:flex;align-items:center;gap:15px;padding:16px 26px;border-top:1.5px solid var(--esp-bordure)}
.kymolms-esp-doc:first-of-type{border-top:0}
.kymolms-esp-doc-rond{width:42px;height:42px;border-radius:13px;background:var(--esp-bleute);color:var(--kymolms-accent,#FF6A3D);display:grid;place-items:center;flex:none;border:1.5px solid var(--esp-bordure)}
.kymolms-esp-doc-nom{flex:1;min-width:200px}
.kymolms-esp-doc-nom b{display:block;font-size:15px;color:var(--esp-navy)}
.kymolms-esp-doc-nom small{color:var(--esp-attenue);font-size:12.5px}
.kymolms-esp-doc{flex-wrap:wrap}
.kymolms-esp-doc-etat{flex:1.2;min-width:230px}
.kymolms-esp-doc-etat .kymolms-esp-puce{margin-bottom:5px}
.kymolms-esp-doc-etat small{display:block;color:var(--esp-attenue);font-size:13px;line-height:1.45}
.kymolms-esp-doc-agir{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-left:auto}
.kymolms-esp-doc-agir .kymolms-message{font-size:12.5px;color:var(--esp-attenue)}
.kymolms-esp-doc-agir .kymolms-message:empty{display:none}
@media (max-width:720px){.kymolms-esp-doc-etat{flex-basis:100%;margin-left:57px;min-width:0}.kymolms-esp-doc-agir{margin-left:57px}}
@media (max-width:640px){.kymolms-esp-doc .kymolms-esp-puce{margin-left:0}}
/* Profil. */
.kymolms-esp-profil{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
@media (max-width:860px){.kymolms-esp-profil{grid-template-columns:1fr}}
/* Colonnes empilées : l'écart entre cartes reste constant quelle que soit
   leur hauteur (retour propriétaire 2026-07-28). */
.kymolms-esp-profil-col{display:flex;flex-direction:column;gap:18px;min-width:0}
.kymolms-esp-profil .kymolms-carte h3,.kymolms-esp-aide .kymolms-carte h3,.kymolms-esp-avantages .kymolms-carte h3,.kymolms-esp-histo h3{font-family:var(--kymolms-police-titres,inherit);color:var(--esp-navy);font-size:17px;margin:0 0 14px}
.kymolms-esp-profil-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:20px 0}
.kymolms-esp-fact-case{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:600;color:var(--esp-navy);margin-bottom:14px;cursor:pointer;line-height:1.45}
.kymolms-esp-fact-case input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--kymolms-accent,#F25222)}

/* ---- Connexion intégrée : maquette B « Réassurance » (2026-07-28). ---- */
.kymolms-cnx-grille{display:grid;grid-template-columns:1.05fr 1fr;gap:26px;align-items:stretch;margin:20px 0 30px}
@media (max-width:880px){.kymolms-cnx-grille{grid-template-columns:1fr}}
.kymolms-cnx-ico{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-3px}
.kymolms-cnx-promesse{background:var(--esp-navy);border-radius:26px;padding:42px 40px;color:#fff;display:flex;flex-direction:column;box-shadow:var(--esp-ombre)}
.kymolms-cnx-eyebrow{font-family:var(--kymolms-police-titres,inherit);font-weight:800;font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--kymolms-accent,#FF6A3D)}
/* Spécificité doublée : le kit Elementor recolore les h2 en bleu nuit après
   notre feuille, ce qui rendait le titre invisible sur le panneau navy. */
.kymolms-cnx .kymolms-cnx-promesse h2{color:#fff;font-family:var(--kymolms-police-titres,inherit);font-size:clamp(24px,2.6vw,32px);margin:10px 0 22px}
/* Les trois points s'étirent entre le titre et les preuves : le panneau navy
   se répartit sur toute la hauteur de la carte de droite. */
.kymolms-cnx-points{display:flex;flex-direction:column;justify-content:space-evenly;flex:1 1 auto;gap:14px;min-height:0;padding:6px 0 14px}
.kymolms-cnx-point{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.kymolms-cnx-points .kymolms-cnx-point{margin-bottom:0}
.kymolms-cnx-rond{width:42px;height:42px;border-radius:13px;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.14);display:grid;place-items:center;flex:none;color:var(--kymolms-accent,#FF6A3D)}
.kymolms-cnx-point b{display:block;font-family:var(--kymolms-police-titres,inherit);color:#fff;font-size:15.5px}
.kymolms-cnx-point small{color:rgba(255,255,255,.72);font-size:13.5px;line-height:1.5}
.kymolms-cnx-preuves{margin-top:auto;padding-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.kymolms-cnx-preuve{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:#fff;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.14);border-radius:999px;padding:6px 14px}
.kymolms-cnx-preuve .kymolms-cnx-ico{width:14px;height:14px;color:var(--kymolms-accent,#FF6A3D)}
.kymolms-cnx-carte{background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1.5px) solid var(--esp-bordure);border-radius:26px;box-shadow:var(--esp-ombre);padding:34px 34px 28px}
.kymolms-cnx-carte h1{font-family:var(--kymolms-police-titres,inherit);color:var(--esp-navy);font-size:22px;margin:0 0 4px}
.kymolms-cnx-sous{color:var(--esp-attenue);font-size:14px;margin:0 0 20px}
/* Les champs remplissent la carte : le plafond max-width:420px de la règle
   de base laissait l'input plus court que son span pleine largeur, et l'œil
   (absolu sur le span) flottait HORS du champ. */
.kymolms-cnx .kymolms-champ input{min-height:48px;width:100%;max-width:none;box-sizing:border-box}
.kymolms-cnx-mdp{position:relative;display:block}
.kymolms-cnx-mdp input{padding-right:52px}
/* Œil du mot de passe : spécificité doublée + padding 0 (le kit Elementor
   style tous les `button` avec un padding à spécificité supérieure, qui
   décentrait l'icône) ; la barre n'apparaît que mot de passe VISIBLE. */
.kymolms-cnx .kymolms-cnx-voir{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;min-width:40px;min-height:40px;display:grid;place-items:center;padding:0;margin:0;line-height:0;background:none;border:0;box-shadow:none;cursor:pointer;color:var(--esp-attenue);border-radius:10px}
.kymolms-cnx .kymolms-cnx-voir:hover,.kymolms-cnx .kymolms-cnx-voir:focus{background:none;padding:0;color:var(--esp-navy)}
.kymolms-cnx .kymolms-cnx-voir .kymolms-cnx-ico{width:20px;height:20px;vertical-align:0}
.kymolms-cnx-voir .kymolms-cnx-voir-barre{display:none}
.kymolms-cnx-voir[aria-pressed="true"] .kymolms-cnx-voir-barre{display:block}
.kymolms-cnx-options{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:2px 0 18px}
.kymolms-cnx-case{display:flex;align-items:center;gap:9px;font-size:14px;cursor:pointer}
.kymolms-cnx-case input{width:17px;height:17px;accent-color:var(--kymolms-accent,#F25222);flex:none}
.kymolms-cnx-lien{font-weight:700;font-size:13.5px;color:var(--kymolms-accent,#F25222)}
.kymolms-cnx a.kymolms-cnx-lien,.kymolms-cnx a.kymolms-cnx-lien:hover,.kymolms-cnx a.kymolms-cnx-retour,.kymolms-cnx a.kymolms-cnx-retour:hover{text-decoration:none}
.kymolms-cnx-cta{width:100%;justify-content:center;min-height:48px}
.kymolms-cnx-note{font-size:13.5px;color:var(--esp-attenue);margin:16px 0 0;line-height:1.55}
.kymolms-cnx-retour{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:var(--esp-navy);margin-top:14px}
.kymolms-cnx-erreur{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--esp-rouge);background:var(--esp-rouge-doux);border-radius:12px;padding:11px 14px;margin:0 0 16px;line-height:1.5}
.kymolms-cnx-erreur .kymolms-cnx-ico{margin-top:2px}
.kymolms-cnx-confirmation{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;font-weight:700;color:var(--esp-vert);background:var(--esp-vert-doux);border-radius:12px;padding:11px 14px;margin:0 0 16px}
/* Mes avantages : programme KYMO Avantages + carte des praticiens. */
.kymolms-esp-puce--info{color:var(--esp-navy);background:var(--esp-bleute);border:1.5px solid var(--esp-bordure)}
.kymolms-esp-avoir{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1.5px) solid var(--esp-bordure);border-radius:22px;box-shadow:var(--esp-ombre);padding:22px 26px;margin:0 0 18px}
.kymolms-esp-avoir-montant{font-family:var(--kymolms-police-titres,inherit);font-weight:900;font-size:30px;color:var(--esp-vert);background:var(--esp-vert-doux);border-radius:18px;padding:14px 20px;flex:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.kymolms-esp-avoir-corps{flex:1;min-width:240px}
.kymolms-esp-avoir-corps b{font-family:var(--kymolms-police-titres,inherit);color:var(--esp-navy)}
.kymolms-esp-avoir-corps p{font-size:14px;color:var(--esp-attenue);margin:3px 0 0}
.kymolms-esp-avantages{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch;margin:0 0 18px}
@media (max-width:860px){.kymolms-esp-avantages{grid-template-columns:1fr}}
.kymolms-esp-av-titre{display:flex;align-items:center;gap:11px}
.kymolms-esp-av-rond{width:38px;height:38px;border-radius:12px;background:var(--esp-bleute);color:var(--kymolms-accent,#F25222);display:inline-grid;place-items:center;border:1.5px solid var(--esp-bordure);flex:none}
.kymolms-esp-av-rond .kymolms-esp-ico{width:18px;height:18px}
.kymolms-esp-avantages .kymolms-carte p{font-size:14.5px;color:var(--esp-attenue);margin:0 0 12px}
.kymolms-esp-avantages .kymolms-carte p:last-child{margin-bottom:0}
.kymolms-esp-avantages .kymolms-carte p b{color:var(--esp-navy)}
.kymolms-esp-av-note{font-size:12.5px !important;margin:10px 0 0 !important;line-height:1.55}
.kymolms-esp-barre{display:block;height:9px;border-radius:99px;background:rgba(26,34,56,.10);overflow:hidden;margin-top:10px}
.kymolms-esp-barre span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#FF845F,#F25222)}
.kymolms-esp-parrainage label{font-weight:700;color:var(--esp-navy)}
.kymolms-esp-parrainage-ligne{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:6px}
.kymolms-esp-parrainage input{flex:1;min-width:0;max-width:420px;padding:9px 12px;border:1.5px solid rgba(26,34,56,.18);border-radius:10px;font:inherit;font-size:13.5px}
.kymolms-esp-histo{margin-top:18px}
.kymolms-esp-histo-ligne{display:flex;align-items:baseline;gap:12px;padding:9px 0;border-top:1.5px solid var(--esp-bordure);font-size:14px}
.kymolms-esp-histo-ligne:first-of-type{border-top:0}
.kymolms-esp-histo-ligne small{color:var(--esp-attenue);flex:none;font-variant-numeric:tabular-nums}
.kymolms-esp-histo-ligne span{flex:1;min-width:0;color:var(--esp-attenue)}
.kymolms-esp-histo-ligne b{color:var(--esp-vert);font-variant-numeric:tabular-nums;white-space:nowrap}
.kymolms-esp-histo-ligne b.kymolms-esp-histo-attente{color:var(--esp-attenue)}
/* Aide. */
.kymolms-esp-aide{display:grid;grid-template-columns:1fr 1.4fr;gap:18px;align-items:start}
@media (max-width:860px){.kymolms-esp-aide{grid-template-columns:1fr}}
.kymolms-esp-contact{display:flex;gap:13px;align-items:center;padding:10px 0;font-size:15px}
.kymolms-esp-contact b{color:var(--esp-navy)}
.kymolms-esp-contact small{display:block;color:var(--esp-attenue);font-size:12.5px}

/* ---- Lecteur de parcours : rail accordéon 3 niveaux + élément courant. ---- */
.kymolms-cadre--parcours{max-width:1240px}
.kymolms-parcours-entete{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,#0F0F0F);border-radius:16px;box-shadow:var(--kymolms-ombre,none);padding:var(--kymolms-carte-padding,14px 18px);margin:0 0 16px}
.kymolms-parcours-entete h1{font-size:20px;margin:0}
.kymolms-parcours-retour{white-space:nowrap;text-decoration:none;font-weight:600}
.kymolms-parcours-entete-titre{flex:1;min-width:200px}
.kymolms-parcours-entete-titre .kymolms-sous-titre{margin:0;font-size:13px}
.kymolms-parcours-entete-progression{display:flex;align-items:center;gap:10px;min-width:220px}
.kymolms-parcours-entete-progression .kymolms-progression{flex:1;min-width:120px}
.kymolms-parcours-entete-progression span{font-size:13px;color:var(--kymolms-attenue,#545454);white-space:nowrap}
.kymolms-parcours-sessions{font-size:13.5px}
.kymolms-parcours-bravo{background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-accent,#FF6A3D);border-radius:14px;padding:12px 18px;margin:0 0 16px}
.kymolms-parcours-colonnes{display:flex;gap:22px;align-items:flex-start}
.kymolms-rail{flex:0 0 320px;position:sticky;top:16px;background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,#0F0F0F);border-radius:16px;box-shadow:var(--kymolms-ombre,none);padding:14px;max-height:calc(100vh - 32px);overflow-y:auto}
.kymolms-rail-niveau{list-style:none;margin:0;padding:0}
.kymolms-rail-niveau--2{margin-left:10px}
.kymolms-rail-niveau--3{margin-left:20px}
.kymolms-rail-chapitre{margin:0 0 4px}
.kymolms-rail-pli{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:0;cursor:pointer;font:inherit;font-weight:700;color:var(--kymolms-encre,#0F0F0F);padding:8px 10px;border-radius:10px}
.kymolms-rail-pli:hover{background:color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 8%,transparent)}
.kymolms-rail-chevron{margin-left:auto;transition:transform .2s}
.kymolms-rail-pli[aria-expanded="false"] .kymolms-rail-chevron{transform:rotate(-90deg)}
.kymolms-rail-num{color:var(--kymolms-attenue,#545454);font-weight:700}
.kymolms-rail-element{margin:0}
.kymolms-rail-lien{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;text-decoration:none;color:var(--kymolms-texte,#0F0F0F)}
a.kymolms-rail-lien:hover{background:color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 8%,transparent)}
.kymolms-rail-etat{width:18px;text-align:center;flex:0 0 18px}
.kymolms-rail-element--fait .kymolms-rail-etat{color:var(--kymolms-accent,#FF6A3D);font-weight:700}
.kymolms-rail-element--courant>.kymolms-rail-lien{background:color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 14%,transparent);font-weight:600}
.kymolms-rail-element--verrouille .kymolms-rail-lien{color:var(--kymolms-attenue,#545454);cursor:not-allowed}
@media (prefers-reduced-motion:no-preference){.kymolms-rail-element--celebration .kymolms-rail-etat{animation:kymolms-coche .45s ease}}
@keyframes kymolms-coche{0%{transform:scale(.4)}60%{transform:scale(1.4)}100%{transform:scale(1)}}
.kymolms-parcours-element{flex:1;min-width:0;background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,#0F0F0F);border-radius:16px;box-shadow:var(--kymolms-ombre,none);padding:var(--kymolms-carte-padding,20px 24px)}
.kymolms-parcours-infos{border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,#0F0F0F);border-radius:12px;padding:12px 16px;margin:0 0 12px;background:color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 5%,transparent)}
.kymolms-parcours-infos p{margin:4px 0}
.kymolms-parcours-jalon{font-size:16px}
.kymolms-parcours-jalon--ok{font-weight:600}
.kymolms-parcours-navigation{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;flex-wrap:wrap}
.kymolms-parcours-suivant--verrouille{opacity:.65}
.kymolms-rail-bascule{display:none;margin:0 0 12px}
@media (max-width:900px){
.kymolms-parcours-colonnes{flex-direction:column}
.kymolms-rail-bascule{display:inline-block}
.kymolms-rail{display:none;position:static;flex:1 1 auto;width:100%;max-height:none}
.kymolms-rail--ouvert{display:block}
.kymolms-parcours-element{width:100%}
}
@media print{.kymolms-bouton{display:none}}

/* ---- Cursus certifiant (KYMO Avantages pilier 4) ---- */
.kymolms-cursus{background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,#0F0F0F);border-radius:16px;box-shadow:var(--kymolms-ombre,none);padding:var(--kymolms-carte-padding,20px 24px)}
.kymolms-cursus__titre{margin:10px 0 6px}
.kymolms-cursus__pitch{color:var(--kymolms-attenue,#545454);margin:0 0 14px}
.kymolms-cursus__etapes{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:10px 18px}
.kymolms-cursus__etapes li{display:flex;align-items:center;gap:8px;margin:0}
.kymolms-cursus__pastille{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 14%,transparent);color:var(--kymolms-accent,#FF6A3D);font-weight:700;flex:0 0 28px}
.kymolms-cursus__pastille--fin{background:var(--kymolms-accent,#FF6A3D);color:#fff}
.kymolms-cursus__perso{font-weight:600;margin:8px 0 0}
.kymolms-cursus__perso--obtenu{color:var(--kymolms-accent,#FF6A3D)}

/* ---- Passeport multi-formations (KYMO Avantages pilier 3) ---- */
.kymolms-passeport{background:var(--kymolms-fond-carte,#fff);border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,#0F0F0F);border-radius:16px;box-shadow:var(--kymolms-ombre,none);padding:var(--kymolms-carte-padding,20px 24px)}
.kymolms-passeport__titre{margin:10px 0 10px}
.kymolms-passeport__pitch{color:var(--kymolms-attenue,#545454);margin:0 0 14px}
.kymolms-passeport__grille{display:grid;grid-template-columns:repeat(var(--kymolms-passeport-colonnes,2),minmax(0,1fr));gap:14px;margin:0 0 14px;min-width:0}
@media(max-width:767px){.kymolms-passeport__grille{grid-template-columns:repeat(var(--kymolms-passeport-colonnes,1),minmax(0,1fr))}}
.kymolms-passeport__carte{position:relative;display:flex;flex-direction:column;min-width:0;border:var(--kymolms-bordure-epaisseur,1px) solid color-mix(in srgb,var(--kymolms-bordure,#0F0F0F) 40%,transparent);border-radius:14px;overflow:hidden;cursor:pointer;background:var(--kymolms-fond-carte,#fff);transition:border-color .15s ease,box-shadow .15s ease}
.kymolms-passeport__carte:hover{border-color:var(--kymolms-accent,#FF6A3D)}
.kymolms-passeport__case{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.kymolms-passeport__carte:has(.kymolms-passeport__case:checked){border-color:var(--kymolms-accent,#FF6A3D);box-shadow:0 0 0 2px color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 45%,transparent);background:color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 5%,var(--kymolms-fond-carte,#fff))}
.kymolms-passeport__carte:has(.kymolms-passeport__case:focus-visible){outline:2px solid var(--kymolms-accent,#FF6A3D);outline-offset:2px}
.kymolms-passeport__coche{position:absolute;top:10px;right:10px;z-index:1;width:26px;height:26px;border-radius:999px;background:var(--kymolms-accent,#FF6A3D);color:#fff;display:none;align-items:center;justify-content:center;font-weight:800;font-size:14px}
.kymolms-passeport__carte:has(.kymolms-passeport__case:checked) .kymolms-passeport__coche{display:flex}
.kymolms-passeport__media{display:block;aspect-ratio:var(--kymolms-passeport-image,16/9);background:linear-gradient(135deg,#1A2238,#4A5578)}
.kymolms-passeport__media--vide{min-height:110px}
.kymolms-passeport__media img{width:100%;max-width:100%;height:100%;object-fit:cover;display:block}
.kymolms-passeport__corps{display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px}
.kymolms-passeport__corps>*{margin:0}
.kymolms-passeport__nom{line-height:1.35}
.kymolms-passeport__dates{color:var(--kymolms-attenue,#545454);font-size:.92em}
.kymolms-passeport__prix{font-weight:700}
.kymolms-passeport__prix s{color:var(--kymolms-attenue,#545454);margin-right:6px;font-weight:500}
.kymolms-passeport__eco{align-self:flex-start;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,#1F7A33 12%,transparent);color:#1F7A33;font-size:.85em;font-weight:700}
.kymolms-passeport__total{font-weight:700;margin:12px 0 4px}
.kymolms-passeport .kymolms-bouton{max-width:100%;white-space:normal}
.kymolms-passeport__vide{color:var(--kymolms-attenue,#545454)}


/* ==========================================================================
   Carte des praticiens - carte "Ma visibilite" (espace, onglet Mon profil)
   ========================================================================== */
.kymolms-visib h3{display:flex;align-items:center;gap:9px}
.kymolms-visib h3 svg{width:20px;height:20px;color:var(--kymolms-accent);flex:none}
.kymolms-visib h4{font-family:var(--kymolms-police-titres);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--kymolms-attenue);margin:20px 0 10px}
.kymolms-visib h4 span{font-weight:400;letter-spacing:0;text-transform:none}
.kymolms-visib-teaser{color:var(--kymolms-attenue);margin:8px 0 0}
.kymolms-visib-indispo{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;line-height:1.5;color:var(--esp-navy,#1A2238);background:var(--esp-bleute,#EEF2F8);border:1.5px solid var(--esp-bordure,#E3E8F0);border-radius:14px;padding:12px 16px;margin:12px 0 4px}
.kymolms-visib-consent{display:flex;gap:14px;align-items:flex-start;background:var(--kymolms-fond-page,#fff);border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure);border-radius:14px;padding:14px 16px;margin:14px 0 4px}
.kymolms-visib-texte{font-size:.95rem;line-height:1.5}
.kymolms-visib-texte small{display:block;color:var(--kymolms-attenue);font-size:.8rem;margin-top:7px}
.kymolms-visib-texte .kymolms-visib-alerte{color:#7A4E12}
.kymolms-visib-inter{position:relative;flex:none;margin-top:3px;cursor:pointer}
.kymolms-visib-inter input{position:absolute;opacity:0;width:0;height:0}
.kymolms-visib-rail{display:block;width:46px;height:26px;border-radius:999px;background:color-mix(in srgb,var(--kymolms-attenue) 30%,var(--kymolms-fond-carte));border:1px solid var(--kymolms-bordure);transition:background .18s;position:relative}
.kymolms-visib-rail::after{content:"";position:absolute;left:2px;top:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.3);transition:left .18s}
.kymolms-visib-inter input:checked+.kymolms-visib-rail{background:var(--kymolms-accent)}
.kymolms-visib-inter input:checked+.kymolms-visib-rail::after{left:23px}
.kymolms-visib-inter input:focus-visible+.kymolms-visib-rail{outline:3px solid color-mix(in srgb,var(--kymolms-accent) 40%,transparent)}
.kymolms-visib.est-off .kymolms-visib-zone,.kymolms-visib.est-off #kymolms-visib-replacer,.kymolms-visib.est-off #kymolms-visib-apercu{opacity:.4;pointer-events:none;user-select:none}
.kymolms-visib-radios{display:flex;gap:8px;flex-wrap:wrap}
.kymolms-visib-radios label{cursor:pointer}
.kymolms-visib-radios input{position:absolute;opacity:0}
.kymolms-visib-radios span{display:inline-block;font-size:.85rem;font-weight:600;color:var(--kymolms-encre);background:var(--kymolms-fond-page,#fff);border:1.5px solid var(--kymolms-bordure);border-radius:999px;padding:8px 15px}
.kymolms-visib-radios input:checked+span{background:color-mix(in srgb,var(--kymolms-accent) 14%,#fff);border-color:color-mix(in srgb,var(--kymolms-accent) 55%,#fff)}
.kymolms-visib-radios input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--kymolms-accent) 40%,transparent)}
.kymolms-visib-formations{list-style:none;margin:0;padding:0}
.kymolms-visib-formations li{border-bottom:1px dashed var(--kymolms-bordure)}
.kymolms-visib-formations li:last-child{border-bottom:none}
.kymolms-visib-formations label{display:flex;align-items:center;gap:10px;padding:9px 2px;cursor:pointer;font-size:.93rem}
.kymolms-visib-formations input{width:17px;height:17px;accent-color:var(--kymolms-accent);flex:none}
.kymolms-visib-point{width:8px;height:8px;border-radius:50%;background:var(--kymolms-domaine,var(--kymolms-attenue));flex:none}
.kymolms-visib-annee{margin-left:auto;font-size:.78rem;color:var(--kymolms-attenue);font-variant-numeric:tabular-nums}
.kymolms-visib-badges{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin-top:10px}
.kymolms-visib-etat{display:inline-block;font-size:.8rem;font-weight:700;border-radius:999px;padding:6px 13px}
.kymolms-visib-etat.est-ok{color:#1F5B33;background:#E4F2E4;border:1.5px solid #BCDDBE}
.kymolms-visib-etat.est-alerte{color:#7A4E12;background:#F9EDD8;border:1.5px solid #E8D2A8}
.kymolms-visib-mini{width:100%;aspect-ratio:4/3;min-height:280px;border-radius:14px;overflow:hidden;border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure);background:#F1ECE2}
.kymolms-visib-indic{font-size:.8rem;color:var(--kymolms-attenue);margin:8px 0 0}
.kymolms-visib-pin{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#FDFCFA;color:var(--kymolms-encre);font:800 12px var(--kymolms-police-titres);border:2px solid rgba(0,0,0,.15);box-shadow:0 8px 14px -7px rgba(0,0,0,.4);cursor:grab}
.kymolms-visib-pin:active{cursor:grabbing}
.kymolms-visib-pied{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px}
.kymolms-visib-pied small{flex-basis:100%;color:var(--kymolms-attenue)}
.kymolms-visib-modale{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:rgba(0,0,0,.45);padding:20px}
.kymolms-visib-modale[hidden]{display:none}
.kymolms-visib-modale-int{width:min(430px,100%);max-height:86vh;overflow:auto;background:var(--kymolms-fond-carte);border-radius:18px;box-shadow:0 40px 70px -30px rgba(0,0,0,.5);padding:24px 26px;position:relative}
.kymolms-visib .kymolms-visib-fermer{display:grid;place-items:center;padding:0;line-height:1;font-size:14px}
.kymolms-visib-fermer{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--kymolms-bordure);background:var(--kymolms-fond-page,#fff);cursor:pointer;font-weight:700;color:var(--kymolms-encre)}
.kymolms-visib-fiche-tete{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.kymolms-visib-avatar{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#FDFCFA;color:var(--kymolms-encre);font:800 16px var(--kymolms-police-titres);border:2px solid #fff;flex:none}
.kymolms-visib-chips{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.kymolms-visib-chip{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;color:var(--kymolms-encre);background:color-mix(in srgb,var(--kymolms-domaine,#888) 16%,#fff);border:1px solid color-mix(in srgb,var(--kymolms-domaine,#888) 38%,#fff);border-radius:999px;padding:4px 10px}
.kymolms-visib-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--kymolms-domaine,#888)}
.kymolms-visib-note{font-size:.76rem;color:var(--kymolms-attenue);margin:4px 0}
.kymolms-visib-fiche-liste{list-style:none;margin:8px 0;padding:0}
.kymolms-visib-fiche-liste li{display:flex;align-items:baseline;gap:8px;padding:5px 0;border-bottom:1px dashed var(--kymolms-bordure);font-size:.88rem}
.kymolms-visib-fiche-liste li:last-child{border-bottom:none}
.kymolms-visib-fiche-liste a{color:var(--kymolms-encre);text-decoration:none}
.kymolms-visib-fiche-liste a:hover{color:var(--kymolms-accent);text-decoration:underline}
.kymolms-visib-adresse,.kymolms-visib-contact{font-size:.88rem;margin:6px 0}
.kymolms-visib .maplibregl-ctrl-attrib{font-size:9px}
@media (prefers-reduced-motion:reduce){.kymolms-visib-rail,.kymolms-visib-rail::after{transition:none}}

/* ==========================================================================
   Carte des praticiens - brique publique (piste C v2)
   ========================================================================== */
.kymolms-cpr-scene{position:relative;height:var(--kymolms-cpr-hauteur,620px);max-height:84vh;border-radius:var(--kymolms-rayon,20px);overflow:hidden;border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure);box-shadow:var(--kymolms-ombre);isolation:isolate;background:#F1ECE2}
.kymolms-cpr-scene .kymolms-cpr-carte,.kymolms-cpr-scene .kymolms-cpr-carte.maplibregl-map{position:absolute;inset:0;height:100%;width:100%}
.kymolms-cpr-noscript{position:absolute;inset:auto 14px 14px;z-index:10;background:#fff;border-radius:12px;padding:10px 14px;font-size:.85rem}
.kymolms-cpr-capsule{position:absolute;top:14px;left:14px;right:70px;z-index:30;display:flex;gap:20px;row-gap:20px;align-items:center;flex-wrap:wrap;background:color-mix(in srgb,#FFFFFF 80%,transparent);backdrop-filter:blur(9px);border:1.5px solid var(--kymolms-bordure);border-radius:20px;box-shadow:var(--kymolms-ombre);padding:9px 11px}
.kymolms-cpr-rech{position:relative;flex:1 1 190px;max-width:250px}
.kymolms-cpr-rech svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;stroke:var(--kymolms-attenue);fill:none;stroke-width:2;pointer-events:none}
.kymolms-cpr-rech input,.kymolms-cpr-ville{font-family:var(--kymolms-police-corps);font-size:.85rem;color:var(--kymolms-encre);background:color-mix(in srgb,#FFFFFF 82%,transparent);border:1.5px solid var(--kymolms-bordure);border-radius:999px;padding:9px 13px;outline:none}
.kymolms-cpr-rech input{width:100%;padding-left:33px}
.kymolms-cpr-rech input:focus-visible,.kymolms-cpr-ville:focus-visible{border-color:var(--kymolms-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--kymolms-accent) 25%,transparent)}
.kymolms-cpr-rech-liste{position:absolute;top:calc(100% + 8px);left:0;min-width:250px;background:#fff;border:1.5px solid var(--kymolms-bordure);border-radius:14px;box-shadow:0 22px 34px -18px rgba(0,0,0,.35);padding:6px;z-index:60;max-height:240px;overflow:auto}
.kymolms-cpr-rech-liste[hidden]{display:none}
.kymolms-cpr-rech-liste button{display:block;width:100%;text-align:left;background:none;border:none;border-radius:9px;padding:8px 10px;cursor:pointer;font:600 .85rem var(--kymolms-police-corps);color:var(--kymolms-encre)}
.kymolms-cpr-rech-liste button small{font-weight:400;color:var(--kymolms-attenue)}
.kymolms-cpr-rech-liste button:hover,.kymolms-cpr-rech-liste button:focus-visible{background:transparent;color:var(--kymolms-accent);outline:none}
.kymolms-cpr-rech-liste .kymolms-cpr-attenue{display:block;padding:8px 10px;font-size:.8rem}
/* Panneaux ancres a la CAPSULE (porteur statique) : ils s ouvrent au bord gauche de la barre et ne debordent plus a droite de l ecran. */
.kymolms-cpr-panneau-porteur{position:static}
.kymolms-cpr-chip{font:700 .8rem var(--kymolms-police-corps);color:var(--kymolms-encre);background:color-mix(in srgb,#FFFFFF 86%,transparent);border:1.5px solid var(--kymolms-bordure);border-radius:999px;padding:9px 13px;cursor:pointer}
.kymolms-cpr-chip:focus-visible{outline:3px solid color-mix(in srgb,var(--kymolms-accent) 45%,transparent)}
.kymolms-cpr-panneau{position:absolute;top:calc(100% + 9px);left:0;width:230px;max-width:calc(100vw - 28px);background:#fff;border:1.5px solid var(--kymolms-bordure);border-radius:16px;box-shadow:0 30px 44px -20px rgba(0,0,0,.4);padding:15px 17px 11px;z-index:60}
.kymolms-cpr-panneau[hidden]{display:none}
.kymolms-cpr-panneau .kymolms-cpr-panneau-titre{font-family:var(--kymolms-police-titres);font-size:.85rem;color:var(--kymolms-encre);margin:0 0 8px;display:flex;align-items:center;gap:7px}
.kymolms-cpr-panneau label{display:flex;gap:8px;align-items:flex-start;font:400 .82rem/1.35 var(--kymolms-police-corps);color:var(--kymolms-encre);padding:4px 0;cursor:pointer}
.kymolms-cpr-panneau input{accent-color:var(--kymolms-accent);width:15px;height:15px;margin-top:1px;flex:none}
.kymolms-cpr-mega{width:max(400px,33vw);max-width:calc(100vw - 28px)}
.kymolms-cpr-mega-grille{columns:3;column-gap:16px}
.kymolms-cpr-mega-col{break-inside:avoid;margin:0 0 14px}
@media (max-width:760px){.kymolms-cpr-mega-grille{columns:1}}
.kymolms-cpr-mega-pied{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px dashed var(--kymolms-bordure);margin-top:11px;padding-top:8px}
.kymolms-cpr-mega-pied span{font-size:.74rem;color:var(--kymolms-attenue)}
.kymolms-cpr-point{width:8px;height:8px;border-radius:50%;background:var(--kymolms-domaine,var(--kymolms-attenue));flex:none;margin-top:4px}
.kymolms-cpr-panneau .kymolms-cpr-panneau-titre .kymolms-cpr-point{margin-top:0}
.kymolms-cpr-autour{display:flex;gap:7px;align-items:center}
.kymolms-cpr-ville{width:190px}
.kymolms-cpr-rayon{font:500 .8rem var(--kymolms-police-corps);color:var(--kymolms-encre);background:color-mix(in srgb,#FFFFFF 86%,transparent);border:1.5px solid var(--kymolms-bordure);border-radius:999px;padding:9px 11px;cursor:pointer}
.kymolms-cpr-inter{display:inline-flex;align-items:center;gap:8px;font:600 .8rem var(--kymolms-police-corps);color:var(--kymolms-encre);cursor:pointer;user-select:none}
.kymolms-cpr-inter input{position:absolute;opacity:0;width:0;height:0}
.kymolms-cpr-rail{width:38px;height:22px;border-radius:999px;background:#DDD8CE;border:1px solid var(--kymolms-bordure);position:relative;transition:background .18s;flex:none}
.kymolms-cpr-rail::after{content:"";position:absolute;left:2px;top:1.6px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.3);transition:left .18s}
.kymolms-cpr-inter input:checked+.kymolms-cpr-rail{background:var(--kymolms-accent)}
.kymolms-cpr-inter input:checked+.kymolms-cpr-rail::after{left:19px}
.kymolms-cpr-inter input:focus-visible+.kymolms-cpr-rail{outline:3px solid color-mix(in srgb,var(--kymolms-accent) 40%,transparent)}
.kymolms-cpr-raz{background:color-mix(in srgb,#FFFFFF 86%,transparent);border:1.5px solid var(--kymolms-bordure);border-radius:999px;font:400 .8rem var(--kymolms-police-corps);color:var(--kymolms-accent);cursor:pointer;text-decoration:none;padding:9px 13px}
.kymolms-cpr-raz:hover{border-color:color-mix(in srgb,var(--kymolms-accent) 55%,transparent)}
.kymolms-cpr-compte{position:absolute;left:14px;bottom:20px;z-index:25;font:700 .82rem var(--kymolms-police-corps);color:var(--kymolms-encre);background:color-mix(in srgb,#FFFFFF 85%,transparent);backdrop-filter:blur(6px);border:1.5px solid var(--kymolms-bordure);border-radius:999px;padding:8px 15px;box-shadow:var(--kymolms-ombre);font-variant-numeric:tabular-nums}
.kymolms-cpr-geoloc{position:absolute;right:12px;bottom:20px;z-index:25;width:46px;height:46px;border-radius:50%;border:none;background:var(--kymolms-bouton-fond,var(--kymolms-accent));box-shadow:var(--kymolms-ombre-bouton);cursor:pointer;display:grid;place-items:center;padding:0}
.kymolms-cpr-geoloc svg{width:20px;height:20px;stroke:var(--kymolms-encre);fill:none;stroke-width:2.2}
.kymolms-cpr-geoloc:focus-visible{outline:3px solid color-mix(in srgb,var(--kymolms-accent) 50%,transparent);outline-offset:2px}
.kymolms-cpr-pin{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#FFF7F5;color:var(--kymolms-encre);font:800 12px var(--kymolms-police-titres);letter-spacing:.02em;border:2px solid rgba(22,28,48,.16);box-shadow:0 10px 16px -8px rgba(22,28,48,.4);cursor:pointer;padding:0;transition:transform .15s ease}
.kymolms-cpr-pin:hover,.kymolms-cpr-pin:focus-visible{transform:scale(1.12);z-index:5;outline:none}
.kymolms-cpr-pin:focus-visible{outline:3px solid color-mix(in srgb,var(--kymolms-accent) 55%,transparent);outline-offset:2px}
.kymolms-cpr-amas{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--kymolms-encre);color:#fff;font:800 15px var(--kymolms-police-titres);border:none;box-shadow:0 0 0 5px color-mix(in srgb,var(--kymolms-encre) 18%,transparent),0 12px 18px -10px rgba(0,0,0,.5);cursor:pointer;padding:0;font-variant-numeric:tabular-nums}
.kymolms-cpr-popup-bulle .maplibregl-popup-content,.kymolms-cpr-popup-fiche .maplibregl-popup-content{border-radius:14px;border:1.5px solid var(--kymolms-bordure);box-shadow:0 18px 30px -16px rgba(22,28,48,.35);padding:13px 16px;font-family:var(--kymolms-police-corps)}
.kymolms-cpr-bulle b{font:800 .92rem var(--kymolms-police-titres);color:var(--kymolms-encre);display:block}
.kymolms-cpr-bulle small{display:block;color:var(--kymolms-attenue);font-size:.78rem;margin:1px 0 5px}
.kymolms-cpr-bulle-chips{display:flex;gap:4px;flex-wrap:wrap}
.kymolms-cpr-chip.kymolms-cpr-chip,.kymolms-cpr-bulle .kymolms-cpr-chip,.kymolms-cpr-fiche .kymolms-cpr-chip{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;font-weight:700;color:var(--kymolms-encre);background:color-mix(in srgb,var(--kymolms-domaine,#888) 16%,#fff);border:1px solid color-mix(in srgb,var(--kymolms-domaine,#888) 38%,#fff);border-radius:999px;padding:3px 9px;cursor:default}
.kymolms-cpr-bulle .kymolms-cpr-chip::before,.kymolms-cpr-fiche .kymolms-cpr-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--kymolms-domaine,#888)}
.kymolms-cpr-popup-fiche{z-index:40}
.kymolms-cpr-fiche{max-width:300px}
.kymolms-cpr-fiche-tete{display:flex;gap:11px;align-items:center}
.kymolms-cpr-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#FFF7F5;color:var(--kymolms-encre);font:800 14px var(--kymolms-police-titres);border:2px solid rgba(22,28,48,.14);flex:none}
.kymolms-cpr-fiche-tete strong{font:800 1rem var(--kymolms-police-titres);color:var(--kymolms-encre);display:block;line-height:1.2}
.kymolms-cpr-fiche-tete small{color:var(--kymolms-attenue);font-size:.78rem}
.kymolms-cpr-fiche-chips{display:flex;gap:4px;flex-wrap:wrap;margin:9px 0 2px}
.kymolms-cpr-attenue{color:var(--kymolms-attenue);font-size:.72rem;display:block;margin:4px 0}
.kymolms-cpr-fiche h5{font:800 .68rem var(--kymolms-police-titres);letter-spacing:.11em;text-transform:uppercase;color:var(--kymolms-attenue);margin:10px 0 5px}
.kymolms-cpr-fiche-liste{list-style:none;margin:0;padding:0;max-height:150px;overflow:auto}
.kymolms-cpr-fiche-liste li{display:flex;align-items:baseline;gap:7px;padding:4px 0;border-bottom:1px dashed var(--kymolms-bordure);font-size:.8rem}
.kymolms-cpr-fiche-liste li:last-child{border-bottom:none}
.kymolms-cpr-fiche-liste a{color:var(--kymolms-encre);text-decoration:none;font-weight:500}
.kymolms-cpr-fiche-liste a:hover{color:var(--kymolms-accent);text-decoration:underline}
.kymolms-cpr-annee{margin-left:auto;color:var(--kymolms-attenue);font-size:.72rem;font-variant-numeric:tabular-nums}
.kymolms-cpr-adresse{font-size:.8rem;margin:8px 0 6px}
.kymolms-cpr-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:8px 0 0}
.kymolms-cpr-bouton{display:inline-flex;align-items:center;gap:6px;font:700 .78rem var(--kymolms-police-corps);color:var(--kymolms-encre);background:var(--kymolms-fond-carte);border:1.5px solid var(--kymolms-bordure);border-radius:var(--kymolms-rayon-bouton,14px);padding:8px 13px;cursor:pointer;text-decoration:none}
.kymolms-cpr-bouton:hover{border-color:color-mix(in srgb,var(--kymolms-encre) 30%,transparent)}
.kymolms-cpr-cta{background:var(--kymolms-bouton-fond,var(--kymolms-accent));border:none;box-shadow:var(--kymolms-ombre-bouton)}
/* Titre de la page, rendu SOUS la carte (la scène et la liste sortent du même bloc). */
.kymolms-cpr-intro{max-width:900px;margin:34px auto 0;display:flex;flex-direction:column;gap:10px}
.kymolms-cpr-intro>*{margin:0}
.kymolms-cpr-intro__titre{font-family:var(--kymolms-police-titres);color:var(--kymolms-encre);font-size:clamp(1.5rem,1.1rem + 1.4vw,2.1rem);line-height:1.2}
.kymolms-cpr-intro__chapo{color:var(--kymolms-attenue);max-width:70ch}
.kymolms-cpr-intro+.kymolms-cpr-liste{margin-top:24px}
.kymolms-cpr-liste{max-width:900px;margin:34px auto 0}
.kymolms-cpr-liste h2{font-family:var(--kymolms-police-titres);color:var(--kymolms-encre)}
.kymolms-cpr-liste h3{font-family:var(--kymolms-police-titres);color:var(--kymolms-encre);font-size:1.02rem;margin:20px 0 6px}
.kymolms-cpr-liste ul{list-style:none;margin:0;padding:0}
.kymolms-cpr-liste li{padding:8px 0;border-bottom:1px dashed var(--kymolms-bordure);font-size:.92rem;line-height:1.5}
.kymolms-cpr-liste li span{color:var(--kymolms-attenue);font-size:.84rem}
.kymolms-cpr-liste a{color:var(--kymolms-encre)}
.kymolms-cpr-liste a:hover{color:var(--kymolms-accent)}
.kymolms-cpr-vide{color:var(--kymolms-attenue);text-align:center;padding:18px 0}
@media (max-width:760px){
.kymolms-cpr-scene{height:min(78vh,var(--kymolms-cpr-hauteur,620px))}
.kymolms-cpr-capsule{right:14px;border-radius:16px}
.kymolms-cpr-rech{flex-basis:100%;max-width:none}
.kymolms-cpr-ville{width:150px}
.kymolms-cpr-compte{bottom:20px}
.kymolms-cpr-geoloc{bottom:20px}
}
@media (prefers-reduced-motion:reduce){.kymolms-cpr-pin,.kymolms-cpr-rail,.kymolms-cpr-rail::after{transition:none}}
/* Pleine page (menu hamburger sur la page dediee) */
.kymolms-cpr-scene--pleine{height:100vh;max-height:none;border-radius:0;border:none;box-shadow:none}

/* Resultats des listes deroulantes de la brique carte : JAMAIS l apparence
   des boutons du kit (fond, relief) - au repos comme au survol (demande
   proprietaire 2026-07-28). Le kit gere le reste des survols du site. */
.kymolms-cpr .kymolms-cpr-rech-liste button{background:transparent !important;border:0 !important;box-shadow:none !important;text-transform:none !important;letter-spacing:normal !important;display:block;width:100%;text-align:left !important;padding:8px 10px !important;border-radius:9px;font:600 .85rem var(--kymolms-police-corps) !important;color:var(--kymolms-encre) !important;cursor:pointer;min-height:0 !important;line-height:1.4 !important}
.kymolms-cpr .kymolms-cpr-rech-liste button:hover,.kymolms-cpr .kymolms-cpr-rech-liste button:focus-visible{background:transparent !important;color:var(--kymolms-accent) !important;outline:none}
.kymolms-cpr .kymolms-cpr-rech-liste button small{color:var(--kymolms-attenue) !important;font-weight:400 !important}
.kymolms-cpr-probleme{position:absolute;left:14px;right:70px;bottom:78px;z-index:26;background:#FFFFFF;border:1.5px solid var(--kymolms-bordure);border-radius:12px;padding:9px 14px;font-size:.82rem;color:var(--kymolms-encre);margin:0}
/* Fiche : en-tete avec logo du site + croix de fermeture SANS fond (le kit
   colore les button ; la croix MapLibre reste discrete). */
.kymolms-cpr-fiche h5{display:flex;align-items:center;gap:6px}
.kymolms-cpr-fiche h5 img{height:16px;width:auto;display:block}
.kymolms-cpr-popup-fiche .maplibregl-popup-close-button{background:transparent !important;border:0 !important;box-shadow:none !important;color:var(--kymolms-attenue) !important;font-size:18px !important;line-height:1 !important;padding:4px 9px !important;min-height:0 !important;border-radius:8px}
.kymolms-cpr-popup-fiche .maplibregl-popup-close-button:hover{background:transparent !important;color:var(--kymolms-encre) !important}
/* Formations realisees ailleurs (editeur de Ma visibilite + fiches). */
.kymolms-visib-ext-ligne{display:flex;gap:7px;flex-wrap:wrap;align-items:center;padding:7px 0;border-bottom:1px dashed var(--kymolms-bordure)}
.kymolms-visib-ext-ligne input{flex:1 1 120px;font-family:var(--kymolms-police-corps);font-size:.86rem;color:var(--kymolms-encre);background:var(--kymolms-fond-page,#fff);border:1.5px solid var(--kymolms-bordure);border-radius:10px;padding:8px 10px;min-width:0}
.kymolms-visib-ext-ligne .kymolms-visib-ext-titre{flex:2 1 200px}
.kymolms-visib-ext-ligne .kymolms-visib-ext-annee{flex:0 1 76px}
.kymolms-visib-ext-ligne input:focus-visible{outline:none;border-color:var(--kymolms-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--kymolms-accent) 22%,transparent)}
.kymolms-visib-ext-retirer{flex:none;background:none;border:none;cursor:pointer;font-size:15px;opacity:.55;padding:4px}
.kymolms-visib-ext-retirer:hover,.kymolms-visib-ext-retirer:focus-visible{opacity:1}
.kymolms-visib-ext-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.kymolms-visib-fiche-titre{display:flex;align-items:center;gap:6px;font-family:var(--kymolms-police-titres);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--kymolms-attenue);margin:14px 0 5px}
.kymolms-visib-fiche-titre img{height:15px;width:auto;display:block}
.kymolms-cpr-ext{display:flex;flex-direction:column;gap:1px}
.kymolms-cpr-ext small{color:var(--kymolms-attenue);font-size:.72rem}
/* Retouches fiche 2026-07-28 : sous-titres, liste externe pointee, boutons. */
.kymolms-cpr-soustitre{display:block;color:var(--kymolms-attenue);font-size:.7rem;margin:-3px 0 5px}
.kymolms-cpr-ext-liste{list-style:none;margin:0;padding:0;max-height:150px;overflow:auto}
.kymolms-cpr-ext-liste li{font-size:.8rem;padding:3px 0;line-height:1.45}
.kymolms-cpr-ext-liste li::before{content:"\00B7\00A0";color:var(--kymolms-attenue)}
.kymolms-cpr-ext-liste li small{font-size:calc(1em - 2px);color:var(--kymolms-attenue)}
.kymolms-cpr-popup-fiche .kymolms-cpr-cta:hover,.kymolms-cpr-popup-fiche .kymolms-cpr-cta:focus{background:var(--kymolms-bouton-fond,var(--kymolms-accent)) !important;color:var(--kymolms-encre) !important}
/* Espace Ma visibilite : boutons de l editeur SANS animation, message a cote. */
.kymolms-visib-ext-actions .kymolms-badge,.kymolms-visib-ext-actions .kymolms-bouton{transition:none !important;transform:none !important;animation:none !important}
.kymolms-visib-ext-actions .kymolms-badge:hover,.kymolms-visib-ext-actions .kymolms-bouton:hover,.kymolms-visib-ext-actions .kymolms-badge:active,.kymolms-visib-ext-actions .kymolms-bouton:active{transform:none !important}
.kymolms-visib-ext-actions{align-items:center}
.kymolms-visib-ext-actions .kymolms-message{font-size:.85rem}
/* Titres homogenes de la carte Ma visibilite (le kit grossit les h4). */
.kymolms-carte.kymolms-visib h4{font-family:var(--kymolms-police-titres);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--kymolms-attenue);margin:20px 0 10px;line-height:1.4}
.kymolms-carte.kymolms-visib h4 span{font-size:.74rem;font-weight:400;letter-spacing:0;text-transform:none}
.kymolms-carte.kymolms-visib h3{font-size:1.06rem}
.kymolms-visib-soustitre{display:block;color:var(--kymolms-attenue);font-size:.72rem;margin:-2px 0 5px}
.kymolms-visib-ext-liste{list-style:none;margin:0;padding:0}
.kymolms-visib-ext-liste li{font-size:.86rem;padding:3px 0}
.kymolms-visib-ext-liste li::before{content:"\00B7\00A0";color:var(--kymolms-attenue)}
.kymolms-visib-ext-liste li small{font-size:calc(1em - 2px);color:var(--kymolms-attenue)}
/* Emplacement reserve pour le menu hamburger a gauche de la capsule :
   ecart menu-capsule = ecart capsule-bord droit (70 px desktop, 14 px mobile).
   Le bouton lui-meme se pose dans Elementor (specs : GUIDE-CARTE.md). */
.kymolms-cpr-scene--menu .kymolms-cpr-capsule{left:calc(14px + var(--kymolms-cpr-menu-taille,46px) + 70px)}
@media (max-width:760px){
.kymolms-cpr-scene--menu .kymolms-cpr-capsule{left:14px}
}
/* Panneau Domaines : large et en colonnes sur PC, pleine largeur ensuite.
   Tablette/mobile : tous les panneaux deviennent scrollables plutot que de
   sortir de la carte par le bas (demande 2026-07-28). */
@media (min-width:1025px){
.kymolms-cpr-panneau[data-nom="domaines"]{min-width:700px;column-count:3;column-gap:16px}
.kymolms-cpr-panneau[data-nom="domaines"] h4{column-span:all}
.kymolms-cpr-panneau[data-nom="domaines"] label{break-inside:avoid}
}
@media (max-width:1024px){
.kymolms-cpr-panneau[data-nom="domaines"]{width:100%}
.kymolms-cpr-panneau{max-height:min(60vh,480px);overflow-y:auto}
}
/* Compaction de la capsule par palier : 2 lignes de filtres maxi en tablette,
   4 en telephone (ecarts et pastilles reduits - demande 2026-07-28). */
@media (max-width:1024px){
.kymolms-cpr-capsule{gap:12px;row-gap:10px;padding:8px 10px}
.kymolms-cpr-chip{font-size:.76rem;padding:8px 11px}
.kymolms-cpr-rech{flex:1 1 200px;max-width:230px}
.kymolms-cpr-rech input,.kymolms-cpr-ville{font-size:.8rem;padding-top:8px;padding-bottom:8px}
.kymolms-cpr-ville{width:150px}
.kymolms-cpr-rayon{font-size:.76rem;padding:8px 10px}
.kymolms-cpr-inter{font-size:.76rem}
.kymolms-cpr-raz{font-size:.76rem;padding:8px 11px}
}
@media (max-width:760px){
.kymolms-cpr-capsule{gap:8px;row-gap:8px;padding:8px 9px}
.kymolms-cpr-rech{flex-basis:100%;max-width:none}
.kymolms-cpr-autour{flex:1 1 100%;display:flex;gap:8px}
.kymolms-cpr-ville{flex:1 1 auto;width:auto;min-width:0}
.kymolms-cpr-rayon{flex:0 0 auto}
.kymolms-cpr-chip{font-size:.72rem;padding:7px 9px}
.kymolms-cpr-inter{font-size:.72rem;gap:6px}
.kymolms-cpr-raz{font-size:.72rem;padding:7px 9px}
}
/* Mobile : le rayon disparait (25 km par defaut au choix d une commune) et le
   champ Autour de : prend le meme gabarit que la recherche praticien. */
@media (max-width:760px){
.kymolms-cpr-rayon{display:none}
.kymolms-cpr-autour{flex:1 1 100%;display:block}
.kymolms-cpr-ville{display:block;flex:1 1 100%;width:100%;max-width:none;font-size:.8rem;padding:9px 13px}
}
/* Les deux champs de recherche (praticien et adresse) strictement identiques
   sur tous les supports : apparence native neutralisee (iOS/Android stylent
   type=search et type=text differemment), meme pilule arrondie, memes hauteurs. */
.kymolms-cpr-rech input,.kymolms-cpr-ville{appearance:none;-webkit-appearance:none;border-radius:999px}
.kymolms-cpr-rech input::-webkit-search-decoration,.kymolms-cpr-rech input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
@media (max-width:760px){
.kymolms-cpr-ville{padding-top:8px;padding-bottom:8px}
}

/* ── Boutique : sélecteur de point relais bpost (formulaire d'achat) ── */
.kymolms-bpicker{display:flex;flex-direction:column;gap:10px;min-width:0}
.kymolms-bpicker-rech{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0}
.kymolms-bpicker-rech input[name=kymolms_relais_cp]{width:90px}
.kymolms-bpicker-note{margin:0;font-size:.9em;color:var(--kymolms-encre,#1A2238)}
.kymolms-bpicker-liste{display:grid;gap:10px;grid-template-columns:1fr;max-height:280px;overflow:auto;padding:2px;min-width:0}
.kymolms-bpicker-item{display:flex;gap:10px;align-items:flex-start;border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,rgba(15,15,15,.15));border-radius:12px;padding:10px 12px;cursor:pointer;background:var(--kymolms-fond-carte,#fff)}
.kymolms-bpicker-item input[type=radio]{margin-top:3px;flex:0 0 auto}
.kymolms-bpicker-item--choisi{border-color:var(--kymolms-accent,#FF6A3D);box-shadow:0 0 0 2px color-mix(in srgb,var(--kymolms-accent,#FF6A3D) 30%,transparent)}
/* Deux classes + dimensions : la feuille MapLibre charge APRÈS et pose
   .maplibregl-map{position:relative} à spécificité égale (piège 0.68.4). */
.kymolms-bpicker .kymolms-bpicker-carte,.kymolms-bpicker .kymolms-bpicker-carte.maplibregl-map{width:100%;aspect-ratio:4/3;min-height:260px;border-radius:14px;overflow:hidden;border:var(--kymolms-bordure-epaisseur,1px) solid var(--kymolms-bordure,rgba(15,15,15,.15));background:#F1ECE2}
.kymolms-bpicker-pin{width:26px;height:26px;border-radius:50%;background:#FFF7F5;border:2px solid var(--kymolms-accent,#FF6A3D);box-shadow:0 2px 6px rgba(15,15,15,.25);cursor:pointer}
.kymolms-bpicker-pin--choisi{background:var(--kymolms-accent,#FF6A3D)}