/* Formations de la salle de Villers-le-Bouillet ([M] 26/10/2026, contrat MP-Gestion-Node 44). Page formations.html et panneau
   « Mes formations » de compte.html. Vert MP-Sanit en principal ([M] 20/10/2026) : #15A078 en grand, #0F7A5B sous le texte blanc
   (contraste 5,3), orange #F08A24 seulement pour « Plus que N places », avec du texte encre. Aucune animation ([M] 22/10/2026).
   v1.2 (26/10/2026) : logo de la marque en onglet de coin, date sur le vert vivant, rendez-vous sur le vert foncé, jauge des places. */
.fo-page{--fo-vert:#15A078;--fo-vert-fonce:#0F7A5B;--fo-vert-clair:#EEF5F1;--fo-orange:#F08A24;--fo-encre:#1F2A32;--fo-gris:#5b6b76;--fo-ligne:#c9d2d8;--fo-rouge:#b3261e;color:var(--fo-encre)}
.fo-body{margin:0;background:#fff}
.fo-skip{position:absolute;left:-9999px}.fo-skip:focus{left:8px;top:8px;z-index:100;background:#fff;padding:10px}
main.fo-page{max-width:1100px;margin:0 auto;padding:24px 24px 48px;box-sizing:border-box}
.fo-page *{box-sizing:border-box}
.fo-tete{border-left:6px solid var(--fo-vert);padding:4px 0 4px 16px;margin-bottom:20px}
.fo-tete h1{font-family:Montserrat,Poppins,sans-serif;font-weight:800;font-size:30px;line-height:1.25;margin:0 0 8px}
.fo-tete p{max-width:760px;color:var(--fo-gris);margin:0}
.fo-etat{margin:8px 0;min-height:1.5em}.fo-etat:empty{min-height:0;margin:0}
.fo-erreur{color:var(--fo-rouge)}
.fo-vide{padding:16px;border:1px dashed var(--fo-ligne);border-radius:10px;color:var(--fo-gris)}
.fo-liste{display:flex;flex-direction:column;gap:14px}
.fo-carte{display:grid;grid-template-columns:230px minmax(0,1fr) 300px;grid-template-rows:auto 1fr;grid-template-areas:'quand corps action' 'rdv corps action';border:1px solid var(--fo-ligne);border-radius:12px;overflow:hidden;background:#fff}
.fo-carte-annulee{opacity:.85}
/* Date en grand sur le vert vivant (texte blanc de 19 px gras au moins : grand texte) ; logo officiel en onglet blanc collé au coin. */
.fo-quand{grid-area:quand;background:var(--fo-vert);color:#fff;padding:0 18px 18px;display:flex;flex-direction:column}
.fo-onglet{align-self:flex-start;margin:0 0 0 -18px;background:#fff;border-bottom-right-radius:14px;padding:10px 16px;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.fo-onglet img{display:block;max-width:150px;height:auto}
.fo-date{margin:18px 0 0;display:flex;flex-direction:column;gap:4px}
.fo-jour{font-family:Montserrat,Poppins,sans-serif;font-weight:800;font-size:25px;line-height:1.15}
.fo-annee{font-size:19px;font-weight:700}
.fo-heures{font-size:20px;font-weight:700;margin-top:6px}
.fo-corps{grid-area:corps;padding:18px 20px;min-width:0}
.fo-corps h2{font-family:Montserrat,Poppins,sans-serif;font-weight:800;font-size:22px;line-height:1.3;margin:0 0 6px;overflow-wrap:anywhere}
.fo-fournisseur{margin:0 0 10px}
.fo-pastilles{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.fo-pastilles li{background:var(--fo-vert-clair);color:var(--fo-vert-fonce);border:1px solid #b9dccb;border-radius:999px;padding:3px 12px;font-size:14px;font-weight:700}
.fo-programme{overflow-wrap:anywhere}
.fo-programme p{margin:0 0 8px}
.fo-programme ul{margin:0 0 8px;padding-left:20px}
.fo-programme li{margin:4px 0}.fo-programme li::marker{color:var(--fo-vert)}
.fo-plus summary{cursor:pointer;color:var(--fo-vert-fonce);font-weight:700;text-decoration:underline;margin:2px 0 8px}
.fo-plus[open] summary{margin-bottom:4px}
.fo-rdv{grid-area:rdv;background:var(--fo-vert-fonce);color:#fff;padding:16px 18px;font-size:15px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.fo-rdv p{margin:0}
.fo-rdv-titre{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.fo-precision{white-space:pre-line;overflow-wrap:anywhere}
.fo-itineraire{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;margin-top:4px;border-radius:8px;background:#fff;color:var(--fo-vert-fonce);font-weight:700;text-decoration:none}
.fo-itineraire:hover{background:var(--fo-vert-clair)}
.fo-rdv :is(a):focus-visible{outline:3px solid #fff;outline-offset:2px}
.fo-action{grid-area:action;padding:18px;background:var(--fo-vert-clair);display:flex;flex-direction:column;gap:10px;min-width:0}
.fo-places{margin:0;font-weight:700;font-size:16px}
.fo-places small{font-weight:400;color:var(--fo-gris)}
.fo-places.peu{align-self:flex-start;background:var(--fo-orange);color:var(--fo-encre);border-radius:6px;padding:2px 10px}
.fo-places.complet{color:var(--fo-gris)}
/* Jauge des places restantes (valeurs du Node) : vert, orange à 5 places ou moins, gris si complet. */
.fo-jauge{display:block;width:100%;height:10px;margin:-4px 0 2px}
.fo-jauge::-webkit-meter-bar{background:#fff;border:1px solid #b4c9bf;border-radius:5px;height:10px}
.fo-jauge::-webkit-meter-optimum-value{background:var(--fo-vert);border-radius:5px}
.fo-jauge.peu::-webkit-meter-optimum-value{background:var(--fo-orange)}
.fo-jauge::-moz-meter-bar{background:var(--fo-vert)}.fo-jauge.peu::-moz-meter-bar{background:var(--fo-orange)}
.fo-places.inconnu{color:var(--fo-gris);font-weight:600}
.fo-formulaire{display:flex;flex-direction:column;gap:8px;margin:0}
.fo-formulaire label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600}
.fo-formulaire select,.fo-formulaire textarea{font:inherit;font-size:16px;width:100%;padding:8px 10px;border:1px solid #b4c9bf;border-radius:6px;background:#fff}
.fo-formulaire textarea{resize:vertical;min-height:3.2em}
.fo-bouton{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--fo-vert-fonce);border-radius:8px;background:var(--fo-vert-fonce);color:#fff;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;text-align:center}
.fo-formulaire .fo-bouton,.fo-bouton.fo-grand{min-height:52px;font-size:18px;width:100%}
.fo-bouton:hover{background:var(--fo-vert);border-color:var(--fo-vert);color:#fff}
.fo-bouton:disabled{background:#9aa7af;border-color:#9aa7af;color:#fff;cursor:not-allowed}
.fo-bouton.fo-secondaire{background:#fff;color:var(--fo-vert-fonce)}
.fo-bouton.fo-secondaire:hover{background:var(--fo-vert-clair);color:var(--fo-vert-fonce)}
.fo-bouton.fo-secondaire:disabled{background:#eef1f3;color:#6b7780;border-color:#9aa7af}
.fo-page :is(a,button,select,textarea):focus-visible{outline:3px solid var(--fo-vert-fonce);outline-offset:2px}
.fo-lien{background:none;border:0;padding:0;color:var(--fo-vert-fonce);text-decoration:underline;font:inherit;cursor:pointer}
.fo-inscrit{margin:0;font-weight:700;color:var(--fo-vert-fonce)}
.fo-participants,.fo-note,.fo-annulee{margin:0;font-size:14px}
.fo-annulee{color:var(--fo-rouge);font-weight:600}
.fo-message{margin:0;font-size:14px;font-weight:600;color:var(--fo-vert-fonce)}.fo-message.fo-erreur{color:var(--fo-rouge)}
.fo-statut{display:inline-block;vertical-align:middle;font-family:Poppins,sans-serif;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:6px;padding:2px 8px;border:1px solid}
.fo-statut-inscrit{background:var(--fo-vert-fonce);border-color:var(--fo-vert-fonce);color:#fff}
.fo-statut-desinscrit{background:#fff;border-color:var(--fo-gris);color:var(--fo-gris)}
.fo-statut-annulee{background:#fbe9e8;border-color:var(--fo-rouge);color:var(--fo-rouge)}
.fo-agenda{margin:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.fo-agenda span{font-size:14px;color:var(--fo-gris)}
.fo-salle{margin-top:32px;display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}
.fo-salle h2{font-family:Montserrat,Poppins,sans-serif;font-weight:800;font-size:22px;margin:0 0 8px}
.fo-salle-texte{border-left:6px solid var(--fo-vert);padding-left:14px}
.fo-salle-texte p{margin:0 0 8px}
.fo-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fo-photos img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:10px;background:var(--fo-vert-clair)}
.fo-integre .fo-carte{grid-template-columns:200px minmax(0,1fr) 270px}
@media (max-width:900px){
 .fo-carte,.fo-integre .fo-carte{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:'quand' 'corps' 'action' 'rdv'}
 .fo-quand{padding:0 16px 14px}.fo-onglet{margin-left:-16px}
 .fo-date{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin-top:12px}.fo-heures{margin-top:0}
 .fo-salle{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
 main.fo-page{padding:16px 16px 32px}
 .fo-tete h1{font-size:24px}
 .fo-photos{grid-template-columns:minmax(0,1fr)}
 .fo-jour{font-size:22px}
 .fo-bouton{width:100%}
}

/* v1.4 (26/10/2026) : calendrier du mois, bandeau des mois, filtres par marque, lignes compactes, fiche détaillée.
   Pastille du jour #15A078 avec chiffre blanc de 19 px gras (grand texte, 3,32) ; petits textes blancs sur #0F7A5B (5,31). */
.fo-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.fo-filtres ul,.fo-bandeau ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.fo-filtres,.fo-bandeau{margin:0}
.fo-puce{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--fo-vert-fonce);border-radius:999px;background:#fff;color:var(--fo-vert-fonce);font:inherit;font-size:15px;font-weight:700;text-decoration:none;cursor:pointer}
.fo-puce:hover{background:var(--fo-vert-clair)}
.fo-puce[aria-pressed="true"],.fo-puce[aria-current="true"]{background:var(--fo-vert-fonce);color:#fff}
.fo-puce-n{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--fo-vert-clair);color:var(--fo-vert-fonce);font-size:13px}
.fo-puce[aria-current="true"] .fo-puce-n{background:#fff}
.fo-agenda-vue{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;align-items:start}
.fo-cal-tete{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}
.fo-cal-titre{font-family:Montserrat,Poppins,sans-serif;font-weight:800;font-size:22px;margin:0;text-align:center}
.fo-cal-titre:focus{outline:none}.fo-cal-titre:focus-visible{outline:3px solid var(--fo-vert-fonce);outline-offset:2px}
.fo-cal-nav{width:44px;height:44px;border:1px solid var(--fo-vert-fonce);border-radius:8px;background:#fff;color:var(--fo-vert-fonce);font-size:26px;font-weight:700;line-height:1;cursor:pointer}
.fo-cal-nav:hover{background:var(--fo-vert-clair)}
.fo-cal-nav:disabled{border-color:#c9d2d8;color:#9aa7af;background:#f4f6f7;cursor:not-allowed}
.fo-cal-table{width:100%;border-collapse:collapse;table-layout:fixed}
.fo-cal-table th{padding:6px 0;font-size:13px;font-weight:700;color:var(--fo-gris);text-align:center;text-transform:capitalize}
.fo-cal-table td{height:86px;padding:4px;border:1px solid var(--fo-ligne);vertical-align:top;background:#fff}
.fo-cal-table td.fo-cal-hors{background:#f6f8f9}
.fo-cal-table td.fo-cal-passe .fo-cal-num{color:#8a979f}
.fo-cal-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;font-size:15px;font-weight:600;color:var(--fo-encre)}
.fo-cal-table td.fo-cal-a{background:var(--fo-vert-clair)}
.fo-cal-a .fo-cal-num{width:34px;height:34px;background:var(--fo-vert);color:#fff;font-size:19px;font-weight:800}
.fo-cal-auj .fo-cal-num{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--fo-encre)}
.fo-cal-lien{display:block;margin:0 -2px 2px;padding:2px;border-radius:6px;color:var(--fo-encre);text-decoration:none}
.fo-cal-lien:hover{background:#d7ece2}
.fo-cal-f{display:flex;flex-direction:column;gap:1px;margin-top:2px;min-width:0}
.fo-cal-logo img{display:block;max-width:100%;width:auto;height:auto;max-height:22px}
.fo-cal-nom{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fo-cal-h{font-size:13px;font-weight:700;color:var(--fo-vert-fonce)}
.fo-cal-complet{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--fo-gris)}
.fo-prochaines h2{font-family:Montserrat,Poppins,sans-serif;font-weight:800;font-size:22px;margin:0 0 4px}
.fo-mois-titre{font-family:Montserrat,Poppins,sans-serif;font-weight:800;font-size:17px;margin:14px 0 8px;scroll-margin-top:12px}
.fo-cl-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fo-cl{display:grid;grid-template-columns:56px minmax(0,1fr) 16px;gap:12px;align-items:center;padding:8px 10px 8px 8px;border:1px solid var(--fo-ligne);border-radius:10px;background:#fff;color:var(--fo-encre);text-decoration:none}
.fo-cl:hover{border-color:var(--fo-vert);background:var(--fo-vert-clair)}
.fo-cl-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:62px;padding:4px 0;border-radius:8px;background:var(--fo-vert-fonce);color:#fff;line-height:1.1}
.fo-cl-js,.fo-cl-m{font-size:12px;font-weight:700;text-transform:uppercase}
.fo-cl-j{font-family:Montserrat,Poppins,sans-serif;font-size:22px;font-weight:800}
.fo-cl-corps{display:flex;flex-direction:column;gap:2px;min-width:0}
.fo-cl-titre{font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.fo-cl-info{font-size:14px;color:var(--fo-gris);overflow-wrap:anywhere}
.fo-cl-bas{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.fo-cl-places{font-size:14px;font-weight:700;color:var(--fo-vert-fonce)}
.fo-cl-places.peu{background:var(--fo-orange);color:var(--fo-encre);border-radius:6px;padding:0 8px}
.fo-cl-places.complet,.fo-cl-places.inconnu{color:var(--fo-gris)}
.fo-cl-badge{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:6px;padding:1px 8px;background:var(--fo-vert-fonce);color:#fff}
.fo-cl-badge.fo-cl-annulee{background:#fbe9e8;color:var(--fo-rouge)}
.fo-cl-fleche{font-size:24px;font-weight:700;color:var(--fo-vert-fonce)}
.fo-retour{margin:0 0 14px}
.fo-fiche:focus{outline:none}
@media (max-width:1000px){.fo-agenda-vue{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){
 .fo-agenda-cal{display:none}
 .fo-cl{grid-template-columns:52px minmax(0,1fr) 12px;gap:10px}
 /* Puces des marques et des mois sur une ligne qui défile d'elle-même (la page ne défile jamais de côté). */
 .fo-filtres ul,.fo-bandeau ul{flex-wrap:nowrap;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
 .fo-puce{flex:0 0 auto;white-space:nowrap}
 .fo-prochaines h2{font-size:20px}
}

/* v1.4 § 3 bis (26/10/2026) : formations réservées aux pros (encart, sans formation ni date) ; formulaire des participants
   (entreprise de la session, personnes de l'entreprise à cocher, autres noms, nombre affiché). Aucune animation. */
.fo-reserve{border:1px solid #b9dccb;border-left:6px solid var(--fo-vert);border-radius:12px;background:var(--fo-vert-clair);padding:20px 22px;max-width:760px}
.fo-reserve h2{font-family:Montserrat,Poppins,sans-serif;font-weight:800;font-size:22px;line-height:1.3;margin:0 0 8px;color:var(--fo-vert-fonce)}
.fo-reserve p{margin:0 0 12px;font-size:17px}
.fo-reserve a[href^="tel:"]{color:var(--fo-vert-fonce);font-weight:700;white-space:nowrap}
.fo-reserve-actions{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 0}
.fo-reserve-actions .fo-bouton.fo-grand{width:auto;min-width:220px}
.fo-entreprise{margin:0;font-size:15px;overflow-wrap:anywhere}
.fo-choix{margin:0;padding:0;border:0;min-width:0}
.fo-choix legend{padding:0;margin:0 0 4px;font-size:14px;font-weight:700}
.fo-cases{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.fo-formulaire label.fo-case{flex-direction:row;align-items:center;gap:10px;min-height:40px;padding:4px 8px;border-radius:6px;background:#fff;border:1px solid #d6e3dc;font-weight:500;font-size:15px;cursor:pointer;overflow-wrap:anywhere}
.fo-case input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--fo-vert-fonce)}
.fo-case:has(input:checked){border-color:var(--fo-vert-fonce);background:#fff}
.fo-compte{margin:0;display:flex;flex-direction:column;gap:2px;font-size:15px}
.fo-compte-n{font-weight:700;color:var(--fo-vert-fonce)}
.fo-alerte{color:var(--fo-rouge);font-weight:600;font-size:14px}
.fo-annuler{align-self:center;min-height:36px}
@media (max-width:560px){.fo-reserve{padding:16px}.fo-reserve-actions .fo-bouton.fo-grand{width:100%}}

/* v1.7 (26/10/2026) : matinées comptoir (passage libre au magasin de Villers-le-Bouillet ou de Grâce-Hollogne). Étiquette en
   blanc sur #0F7A5B (5,31), photo réelle du magasin dans « Le rendez-vous », aucune place ni jauge. */
.fo-pastilles li.fo-genre{background:var(--fo-vert-fonce);border-color:var(--fo-vert-fonce);color:#fff}
.fo-passage{margin:0;font-size:17px;font-weight:700;color:var(--fo-vert-fonce);line-height:1.4}
.fo-rdv-photo{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin-top:6px;background:var(--fo-vert-clair)}
.fo-cal-mc{align-self:flex-start;font-size:11px;font-weight:700;line-height:1.3;border-radius:4px;padding:0 5px;background:var(--fo-vert-fonce);color:#fff}
.fo-cal-mag{font-size:11px;font-weight:600;color:var(--fo-gris);overflow-wrap:anywhere}
.fo-salle[hidden]{display:none}
