/* ==========================================================================
   Thème EH — feuille unique sur tokens (design system C, socle figé 19/07/2026)
   Polices locales : Barlow Condensed (display) + Inter (corps).
   ========================================================================== */

/* ---------- Polices locales (latin, SIL OFL) ---------- */

@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-condensed-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/barlow-condensed-700.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/barlow-condensed-800.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:900;font-display:swap;src:url('../fonts/barlow-condensed-900.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/inter-variable.woff2') format('woff2')}

/* ---------- Tokens ---------- */

:root{
  --vert:#59CEA8; --vert-h:#4ab896; --vert-pale:#eaf8f2;
  --navy:#282459; --navy2:#332e6e; --encre:#1d1a40;
  --titre:#282459; --texte:#555; --texte2:#3a3f4b;
  --bande:#f6f7fb; --note:#888; --ligne:#e8ecf2;
  --rouge-err:#b3324c; --rouge-err-fond:#fdeef0; --rouge-err-filet:#f3c2cc;
  /* Familles d'exercices — palette réelle des cartes print EH */
  --attaque:#EF6A89; --defense:#F7B229; --gardien:#8D90BD;
  --echauf:#0FCEA5; --fonda:#1AADE1; --prepa:#F26422;
  --theme:var(--navy);
  --font-display:'Barlow Condensed',Arial,sans-serif;
  --font-corps:'Inter',Arial,sans-serif;
}

.theme-attaque{--theme:var(--attaque)}
.theme-defense{--theme:var(--defense)}
.theme-gardien{--theme:var(--gardien)}
.theme-echauffement{--theme:var(--echauf)}
.theme-fondamentaux{--theme:var(--fonda)}
.theme-prepa{--theme:var(--prepa)}

/* ---------- Base ---------- */

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:var(--font-corps);color:var(--texte);font-size:17px;line-height:1.75;background:#fff;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--titre);text-transform:uppercase;letter-spacing:.015em;line-height:1.1}
a{text-decoration:none;color:inherit}
/* Les contrôles de formulaire n'héritent RIEN de la police du document : sans
   cette ligne, un bouton ou un champ sans règle propre rend en Arial 13,33 px
   au milieu d'un texte en Inter 17 px. Mesuré le 17/08 sur quinze surfaces :
   282 contrôles sur 487 étaient dans ce cas. Posée une seule fois, ici, plutôt
   que redéclarée composant par composant. */
button,input,select,textarea{font:inherit}
img{max-width:100%;height:auto}
.container{max-width:1160px;margin:0 auto;padding:0 24px}

/* Révélation au scroll */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.rv.on{opacity:1;transform:none}
.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}.rv.d3{transition-delay:.36s}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .dessin{animation:none !important;stroke-dashoffset:0 !important}
  .trace-seq{opacity:1 !important;animation:none !important}
}

/* Lien trajectoire : soulignement pointillé qui se dessine */
.traj{position:relative;font:700 15px var(--font-display);color:var(--vert-h);display:inline-block;padding-bottom:5px}
.traj::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;
  background-image:linear-gradient(90deg,var(--vert-h) 55%,transparent 0);background-size:9px 2px;background-repeat:repeat-x;
  transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.traj:hover::after{transform:scaleX(1)}
.traj .fl{display:inline-block;transition:transform .35s ease}
.traj:hover .fl{transform:translateX(5px)}

/* Boutons */
.btn{display:inline-block;background:var(--vert);color:var(--navy);border:0;border-radius:8px;padding:15px 32px;font:800 20px var(--font-display);text-transform:uppercase;letter-spacing:.04em;text-align:center;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s,color .25s;box-shadow:0 6px 18px rgba(89,206,168,.3)}
.btn:hover{background:var(--vert-h);color:#fff;transform:translateY(-2px);box-shadow:0 10px 24px rgba(89,206,168,.4)}
.btn-ghost{display:inline-block;color:#fff;border:2px solid rgba(255,255,255,.45);border-radius:8px;padding:13px 30px;font:800 20px var(--font-display);text-transform:uppercase;letter-spacing:.04em;text-align:center;margin-left:12px;transition:all .25s}
.btn-ghost:hover{border-color:var(--vert);color:var(--vert)}

/* Sur-titre et étiquette de section */
.sur-titre{display:inline-flex;align-items:center;gap:10px;font:700 13px var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--vert-h);margin-bottom:20px}
.sur-titre::before{content:"";width:34px;height:2px;background-image:linear-gradient(90deg,var(--vert-h) 55%,transparent 0);background-size:9px 2px}
.num-sec{font:700 12px var(--font-display);letter-spacing:.14em;background:var(--navy);color:#fff;text-transform:uppercase;display:inline-block;padding:4px 10px;margin-bottom:12px}

/* ---------- Header ---------- */

.site-header{border-bottom:1px solid rgba(255,255,255,.12);background:rgba(40,36,89,.96);backdrop-filter:blur(8px);position:sticky;top:0;z-index:50}
.nav{display:flex;align-items:center;gap:28px;height:68px}
.logo{font:800 24px var(--font-display);color:#fff;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.logo span{color:var(--vert)}

.menu{display:flex;gap:26px;font:500 15px var(--font-corps);color:#cfd4ea;flex:1;justify-content:center;list-style:none;align-items:center}
#menu-principal{flex:1}
#menu-principal .menu{width:100%}
.menu a{position:relative;padding-bottom:4px;display:inline-block}
.menu > li > a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;
  background-image:linear-gradient(90deg,var(--vert-h) 55%,transparent 0);background-size:9px 2px;background-repeat:repeat-x;
  transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.menu a:hover{color:var(--vert)}
/* L'entrée handXPrience ressort en vert des libellés blancs (Philippe 31/08).
   Ciblée par son adresse, jamais par son libellé. */
.menu > li > a[href*="/handxprience"]{color:var(--vert);font-weight:700}
.menu > li > a:hover::after{transform:scaleX(1)}
.menu li{position:relative}

/* Sous-menus (dropdown au survol / focus) */
.menu .sub-menu{list-style:none;position:absolute;top:100%;left:-16px;min-width:220px;background:#fff;border:1px solid var(--ligne);border-radius:14px;box-shadow:0 18px 40px -18px rgba(40,36,89,.35);padding:10px 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s,visibility .25s;z-index:60}
.menu li:hover > .sub-menu,.menu li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:none}
.menu .sub-menu a{display:block;padding:7px 18px;color:var(--texte2);font-weight:500}
.menu .sub-menu a:hover{color:var(--vert-h);background:var(--bande)}
.menu .sub-menu .sub-menu{top:0;left:100%}

.nav-actions{display:flex;gap:14px;align-items:center;font:500 14px var(--font-corps);color:#cfd4ea;margin-left:auto}
.nav-actions a:hover{color:var(--vert)}
.btn-connexion{background:var(--vert);border:2px solid var(--vert);color:var(--navy) !important;padding:8px 18px;border-radius:8px;font-weight:700;transition:all .25s;white-space:nowrap}
.btn-connexion:hover{background:#fff;border-color:#fff;color:var(--navy) !important}
.btn-connexion .esp-court{display:none}
@media(max-width:1200px){.btn-connexion .esp-long{display:none}.btn-connexion .esp-court{display:inline}}

/* Ouvre-sous-menu (chevron, actif en mobile seulement) */
.sm-toggle{display:none;background:none;border:0;cursor:pointer;width:38px;height:38px;position:relative}
.sm-toggle::before{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;border-right:2px solid #cfd4ea;border-bottom:2px solid #cfd4ea;transform:translate(-50%,-70%) rotate(45deg);transition:transform .25s}
.sm-toggle[aria-expanded="true"]::before{transform:translate(-50%,-30%) rotate(225deg)}

/* Burger (mobile) */
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;flex-shrink:0;background:none;border:0;cursor:pointer;padding:8px} /* flex-shrink:0 : mesuré compressé à 19,5 px à 390 quand le bouton voisin s'élargit (finitions D, 23/08) */
.burger span{display:block;height:2px;width:100%;background:#fff;border-radius:2px;transition:transform .3s,opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- Footer ---------- */

.site-footer{background:var(--encre);color:#a9afd6;padding:52px 0 32px;font-size:14px}
.site-footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;margin-bottom:32px}
.site-footer h3{color:#fff;font-size:15px;margin-bottom:12px}
.site-footer a{display:block;padding:3px 0;color:#c9cdd4}
.site-footer a:hover{color:var(--vert)}
.baseline{border-top:1px solid #3a3663;padding-top:20px;text-align:center;color:#8f96c8}

/* ---------- Gabarits génériques ---------- */

.page-contenu,.page-liste{padding:64px 0 78px}
.contenu-tete{margin-bottom:32px}
.contenu-tete h1{font-size:clamp(32px,4vw,48px);font-weight:800}
.contenu-tete .sur-titre{margin-bottom:12px}
.contenu-media{margin-bottom:32px}
.contenu-media img{border-radius:14px}
.page-contenu article{max-width:760px;margin:0 auto}

.entry-content > *{margin-bottom:1.2em}
.entry-content h2{font-size:clamp(24px,2.6vw,32px);font-weight:800;margin-top:1.6em}
.entry-content h3{font-size:20px;font-weight:700;margin-top:1.3em}
.entry-content a:not(.btn){color:var(--vert-h);font-weight:600;border-bottom:2px dotted var(--vert-h)}
.entry-content ul,.entry-content ol{padding-left:1.4em}
.entry-content li{margin-bottom:.4em}
.entry-content blockquote{border-left:4px solid var(--vert);background:var(--bande);padding:18px 24px;border-radius:0 10px 10px 0;font-style:italic}
.entry-content img{border-radius:14px}
.entry-content figure figcaption{font-size:13px;color:var(--note);text-align:center;margin-top:6px}
.entry-content table{border-collapse:collapse;width:100%}
.entry-content th,.entry-content td{border:1px solid var(--ligne);padding:8px 12px;text-align:left}
.entry-content th{background:var(--bande);font-family:var(--font-display);text-transform:uppercase;font-size:14px;letter-spacing:.04em;color:var(--navy)}

/* Listes en cartes */
.liste-tete{margin-bottom:40px}
.liste-tete h1{font-size:clamp(32px,4vw,48px);font-weight:800}
.liste-intro{max-width:640px;margin-top:10px}
.grille-cartes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.carte-liste{background:#fff;border:1px solid var(--ligne);border-radius:14px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.carte-liste:hover{transform:translateY(-6px);box-shadow:0 18px 40px -18px rgba(40,36,89,.25)}
.carte-liste-media img{width:100%;height:180px;object-fit:cover;display:block}
.carte-liste-corps{padding:20px 22px 22px}
.carte-liste-corps h3{font-size:19px;margin-bottom:8px}
.carte-liste-corps p{font-size:15px;margin-bottom:12px}

/* Pagination */
.pagination{margin-top:44px}
.pagination .nav-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.pagination .page-numbers{font:700 16px var(--font-display);color:var(--navy);border:1px solid var(--ligne);border-radius:8px;padding:8px 14px;transition:all .25s}
.pagination .page-numbers.current,.pagination .page-numbers:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* Formulaire de recherche */
.search-form{display:flex;gap:10px;margin-top:18px;max-width:480px}
.search-form input[type="search"]{flex:1;border:1px solid var(--ligne);border-radius:8px;padding:11px 16px;font:400 16px var(--font-corps);color:var(--texte2)}
.search-form input[type="search"]:focus{outline:2px solid var(--vert);border-color:var(--vert)}
.search-form [type="submit"]{background:var(--vert);color:var(--navy);border:0;border-radius:8px;padding:0 22px;font:800 16px var(--font-display);text-transform:uppercase;cursor:pointer}

/* ---------- Accueil (maquette C) ---------- */

.hero{padding:78px 0 0;position:relative;background:var(--navy)}
.hero h1{color:#fff;font-size:clamp(40px,4.3vw,58px);font-weight:800;line-height:1;letter-spacing:.005em;margin-bottom:22px}
/* Emphase du héros : coup de pinceau en image de fond, répété par fragment de
   ligne (box-decoration-break) — la baseline du 19/08 se replie, un SVG absolu
   ne soulignait que la dernière ligne. Tracé animé par la largeur de fond. */
.hero h1 em{font-style:normal;color:var(--vert);padding-bottom:8px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 14' preserveAspectRatio='none'%3E%3Cpath d='M2 10 C 60 2, 240 2, 298 8' fill='none' stroke='%2359CEA8' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:0 100%;background-size:0% 12px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:souligner 1s .5s ease forwards}
@keyframes souligner{to{background-size:100% 12px}}
.hero .sur-titre{color:var(--vert)}
.hero .subtitle{color:#cfd4ea;font-size:18px;max-width:540px;margin-bottom:34px}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:center}

/* Carte exercice du hero (chrome des cartes print) */
.plateau{position:relative;background:var(--attaque);border-radius:12px;padding:8px;box-shadow:0 30px 70px -28px rgba(0,0,0,.55);transform:rotate(1.1deg)}
.carte-band{color:#fff;padding:8px 8px 12px}
.cb-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.cb-tag{background:var(--navy);color:#fff;font:700 11px var(--font-display);letter-spacing:.14em;text-transform:uppercase;padding:4px 9px}
.cb-num{font:800 19px var(--font-display);letter-spacing:.02em}
.cb-titre{font:700 27px var(--font-display);text-transform:uppercase;line-height:1}
.carte-corps{background:#fff;border-radius:6px 6px 0 0;padding:14px 14px 8px}
.carte-schema{position:relative}
.tuile .soon{display:inline-block;margin-top:10px;background:var(--vert-pale);color:var(--vert-h);font:700 11px var(--font-corps);padding:2px 10px;border-radius:10px;letter-spacing:.04em}
.carte-schema img{display:block;width:100%;height:auto}
.carte-schema svg{position:absolute;inset:0;width:100%;height:100%}
.trace-seq{opacity:0}
.auto .trace-seq,.on .trace-seq{animation:apparaitre .5s ease forwards}
.auto .s2,.on .s2{animation-delay:.5s}
.auto .s3,.on .s3{animation-delay:1s}
.auto .s4,.on .s4{animation-delay:1.5s}
.auto .s5,.on .s5{animation-delay:2s}
.auto .s6,.on .s6{animation-delay:2.5s}
@keyframes apparaitre{to{opacity:1}}
.meta-strip{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid var(--ligne);border-radius:0 0 6px 6px}
.meta-cell{padding:10px 6px 11px;text-align:center;border-right:1px solid var(--ligne)}
.meta-cell:last-child{border-right:none}
.meta-label{display:block;font:600 9px var(--font-corps);letter-spacing:.1em;text-transform:uppercase;color:rgba(40,36,89,.5)}
.meta-value{display:block;font:600 16px var(--font-display);color:var(--navy);margin-top:2px}

/* Bande de preuve */
.preuve{margin-top:64px;border-top:1px solid rgba(255,255,255,.12);background:var(--encre)}
.preuve .ligne{display:flex;justify-content:space-between;gap:24px;padding:26px 0;flex-wrap:wrap}
.preuve .item{display:flex;align-items:baseline;gap:10px}
.preuve b{font:800 34px var(--font-display);color:#fff}
.preuve span{font-size:14px;color:#a9afd6;max-width:170px;line-height:1.4}

/* Sections d'accueil */
.home section{padding:78px 0}
.home .hero{padding-bottom:0}
.sec-tete{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:44px}
.sec-tete h2{font-size:clamp(32px,3.6vw,44px);font-weight:800;line-height:1.05;max-width:620px}
.sec-tete .intro{max-width:400px;font-size:16px;padding-bottom:6px}

/* Cartes besoins */
.besoins{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
.card{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:28px;transition:transform .3s,box-shadow .3s;position:relative}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px -18px rgba(40,36,89,.25)}
.card:nth-child(2){margin-top:34px}
.card:nth-child(3){margin-top:68px}
.card .picto{width:52px;height:52px;border-radius:8px;background:var(--vert-pale);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.card .picto svg{width:30px;height:30px}
.card h3{font-size:19px;margin-bottom:8px}
.card p{font-size:15px;margin-bottom:14px}

/* Section handXPrience de la home (ex-« La Tablette », refonte du 31/08 :
   classes renommées home-hxp-*, rangée des cinq tuiles de la page portée
   ici — .hxp-outil-tuile réutilisée, jamais refabriquée). */
.home-hxp{background:var(--navy);color:#fff;position:relative;overflow:hidden}
/* Les ronds décoratifs de cette section sont retirés le 31/08 (règle
   Philippe du 30/08 : le terrain EH est le seul filigrane admis). */
.home-hxp h2,.home-hxp h3{color:#fff}
.home-hxp-flex{display:grid;grid-template-columns:5fr 6fr;gap:56px;align-items:center;position:relative;z-index:1}
.home-hxp-txt .num-sec{background:var(--vert);color:var(--navy)}
.home-hxp-txt h2{font-size:clamp(26px,3vw,34px);font-weight:800;margin-bottom:6px}
.home-hxp-txt p{color:#cfd4ea;margin-bottom:16px}
.home-hxp-sous{font:600 18px var(--font-display);color:#fff}
.home-hxp .btn{margin-top:10px;box-shadow:0 6px 18px rgba(89,206,168,.25)}
.home-hxp-rangee{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:48px;position:relative;z-index:1}
/* Plus spécifique que .hxp-outils-note (déclarée plus bas), sinon le gris
   sombre de la page gagne et la note disparaît sur le fond navy. */
.home-hxp .hxp-outils-note{color:#cfd4ea}
.fenetre{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);transform:rotate(1.2deg)}
.fenetre .barre{display:flex;align-items:center;gap:8px;background:#f1f3f7;padding:10px 14px;border-bottom:1px solid var(--ligne)}
.fenetre .fenetre-capture{display:block;width:100%;height:auto}
.fenetre .rond{width:11px;height:11px;border-radius:50%;background:#dde1e8}
.fenetre .rond:first-child{background:var(--vert)}
.fenetre .barre span{margin-left:8px;font:700 12px var(--font-display);color:var(--navy);letter-spacing:.06em}

/* Espace entraîneur */
.profil-grid{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:center}
.radar-carte{background:var(--bande);border:1px solid var(--ligne);border-radius:14px;padding:30px;text-align:center}
.radar-carte svg{width:100%;max-width:360px;height:auto}
.radar-carte .qui{font:700 14px var(--font-display);color:var(--navy);margin-top:8px}
.radar-carte .quoi{font-size:13px;color:var(--note)}
.tuiles{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tuile{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:22px;transition:transform .3s,box-shadow .3s}
.tuile:hover{transform:translateY(-4px);box-shadow:0 14px 30px -16px rgba(40,36,89,.22)}
.tuile h3{font-size:16px;margin-bottom:6px}
.tuile p{font-size:14px}
/* Tuile a venir (home, « Mon projet d'équipe ») : fond pastel vert, badge plus visible (Philippe 25/08) */
.tuile-soon{background:var(--vert-pale)}
.tuile-soon .soon{background:#fff;font-size:13px;padding:3px 12px;border-radius:11px}

/* Prépa : parcours en plots */
.bande-sec{background:var(--bande)}

/* Boutique */
.home-btq{margin-top:6px}
.home-btq-item{display:flex;flex-direction:column;gap:9px}
.home-btq-item .pdt-carte{flex:1}
.home-btq-rayon{font:700 12px var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--vert-h)}
.home-btq-tout{margin-top:22px;text-align:right}

/* Animations de tracé SVG */
.dessin{stroke-dasharray:600;stroke-dashoffset:600}
.on .dessin,.auto .dessin{animation:tracer 1.6s ease forwards}
.on .dessin.t2,.auto .dessin.t2{animation-delay:.7s}
.on .dessin.t3,.auto .dessin.t3{animation-delay:1.4s}
@keyframes tracer{to{stroke-dashoffset:0}}

/* Filet pour les modales Bootstrap 3 injectées par les mu-plugins (tunnel DOI…) :
   leur display:none venait du CSS BS3 de l'ancien thème. Masquées tant que la
   surface n'est pas portée au thème neuf. */
.modal{display:none}

/* ---------- Compte utilisateur (Lot 5 — v1 surface repensée) ---------- */

.cpt{background:var(--bande);padding-bottom:72px;min-height:70vh}
.cpt-reprendre{background:var(--navy);border-radius:14px;padding:30px 34px;display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;box-shadow:0 18px 40px -22px rgba(40,36,89,.45)}
.cpt-rep-k{font:700 13px var(--font-display);text-transform:uppercase;letter-spacing:.1em;color:var(--vert)}
.cpt-reprendre h3{color:#fff;font-size:26px;margin-top:4px}
.cpt-meta{color:var(--note);font-size:12.5px}
.cpt-liens a{color:var(--vert-h);font-weight:600}
.cpt-liens a:hover{text-decoration:underline}
.cpt-actif{display:inline-block;background:var(--vert-pale);color:var(--vert-h);font:700 12px var(--font-corps);padding:2px 10px;border-radius:14px}
.soon-t{border-top-color:var(--vert)}
.cpt-fav-carte{flex:0 0 190px;background:var(--bande);border:1px solid var(--ligne);border-top:4px solid var(--theme);border-radius:14px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.cpt-fav-carte:hover{transform:translateY(-4px);box-shadow:0 14px 30px -16px rgba(40,36,89,.25)}
.cpt-fav-carte img{width:100%;height:104px;object-fit:cover;display:block}
.cpt-fav-vide{display:block;width:100%;height:104px;background:var(--ligne)}
.cpt-fav-fam{display:block;font:700 11px var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--theme);padding:8px 12px 0}
.cpt-fav-carte b{display:block;font:600 13.5px var(--font-corps);color:var(--texte2);padding:2px 12px 12px;line-height:1.35}
.cpt-radar svg{width:100%;max-width:220px;height:auto;display:block;margin:0 auto 10px}

/* ---------- Compte v2 : espace entraîneur en mode application ---------- */

/* Le fond de l'espace reste UNI : arbitrage de Philippe du 16/08 sur rendu réel,
   « le schéma n'apporte rien en arrière-plan ». Les trois positions et les trois
   pâleurs qui lui ont été servies sont retirées, paramètre compris. */
.app{background:var(--bande);min-height:72vh;padding:36px 0 84px}
.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;align-items:start}
.app-nav{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:18px 0;position:sticky;top:88px}
.app-qui{display:flex;align-items:center;gap:12px;padding:6px 18px 16px;border-bottom:1px solid var(--ligne);margin-bottom:10px}
.app-qui b{display:block;font:700 16px var(--font-display);text-transform:uppercase;color:var(--navy);line-height:1.2}
.app-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none}
.app-avatar-txt{display:flex;align-items:center;justify-content:center;background:var(--navy);color:var(--vert);font:800 17px var(--font-display)}
.app-statut{font:700 10.5px var(--font-display);text-transform:uppercase;letter-spacing:.08em;border-radius:9px;padding:2px 9px}
.app-statut.st-abonne{background:var(--vert);color:var(--navy)}
.app-statut.st-client{background:var(--prepa);color:#fff}
.app-statut.st-membre{background:var(--bande);color:var(--texte2)}
/* Latérale groupée (31/08) : intitulé « handXPrience » au-dessus des trois
   outils, filet avant le reste — casse de la marque préservée, aucun
   text-transform ici (charte EH, h minuscule X et P majuscules). */
.app-nav-groupe{display:block;padding:12px 18px 4px;font:700 13px var(--font-display);color:var(--vert-h);letter-spacing:.03em}
.app-nav-sep{display:block;border-top:1px solid var(--ligne);margin:10px 0 6px}
.app-lien{display:flex;align-items:center;gap:11px;padding:10px 18px;font:600 14.5px var(--font-corps);color:var(--texte2);border-left:3px solid transparent;transition:background .2s,color .2s}
.app-lien svg{width:19px;height:19px;flex:none}
.app-lien:hover{background:var(--bande);color:var(--navy)}
.app-lien.actif{border-left-color:var(--vert);background:var(--vert-pale);color:var(--navy);font-weight:700}
.app-lien .soon{margin-left:auto}
.app-nav .soon,.app-titre .soon,.app-plus .soon,.app-carte-visu .soon{display:inline-block;background:var(--vert-pale);color:var(--vert-h);font:700 10px var(--font-corps);font-style:normal;padding:2px 8px;border-radius:9px;letter-spacing:.04em;vertical-align:middle}
.app-corps{min-width:0}
/* Compte boutique dans la coquille (03/09) : woocommerce-layout.css pose
   float:right + width:68 % sur le contenu de « Mon compte » pour laisser
   place à SA navigation ; la latérale de l'espace la remplace (surcharge
   myaccount/navigation.php vide), le contenu prend toute la colonne.
   Mesuré avant : tableau à 590 px pour une colonne qui commence à 368. */
.app .app-corps .woocommerce-MyAccount-content{float:none;width:100%}
/* Composer une séance : écran plein, sans barre latérale ni plafond de
   conteneur (décision du 16/08). Modificateur de la coquille, jamais une
   seconde coquille. Mesuré sur le composeur chargé : la zone de travail passe
   de 840 px à 1 232 / 1 392 / 1 632 px selon la fenêtre. */
.app-plein .container{max-width:none}
.app-plein .app-shell{grid-template-columns:minmax(0,1fr);gap:0}
.app-corps>p{margin-bottom:12px}
.app-titre{font-size:34px;margin-bottom:2px}
.app-sous{color:var(--note);font-size:14.5px;margin-bottom:22px}
.app-h2{font-size:19px;margin:30px 0 12px}
/* Rangée d'action de la section (31/08, session navigations) : le bouton vert
   à GAUCHE, AU-DESSUS du titre « Créés avec La Tablette » (retour Philippe).
   Respirations alignées sur la page : 26px au-dessus du bouton, le titre
   garde sa marge haute de 30px en dessous. */
.app-actions-tete{margin:26px 0 0}
.app-fil{display:flex;flex-direction:column;gap:12px}
.app-action{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:16px 20px;display:flex;flex-direction:column;gap:4px;transition:transform .25s,box-shadow .25s}
.app-action:hover{transform:translateY(-3px);box-shadow:0 14px 30px -16px rgba(40,36,89,.22)}
.app-action b{font:700 16px var(--font-display);text-transform:uppercase;color:var(--navy)}
.app-action span{font-size:13.5px}
.app-action .traj{font-size:14px}
.app-bloc{background:#fff;border:1px solid var(--ligne);border-top:3px solid var(--theme);border-radius:14px;padding:20px 22px;margin-bottom:14px}
.app-bloc .app-h2{margin-top:0}
.app-grille-exos{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.app-grille-exos .cpt-fav-carte{flex:none}
/* Vue image d'un exercice créé avec La Tablette (section Mes exercices, 25/08) */
.tabex-fiche{margin:14px 0 18px}
.tabex-fiche img{display:block;width:100%;max-width:920px;border:1px solid var(--ligne);border-radius:8px;background:#fff}
.app-liste{list-style:none;display:flex;flex-direction:column;gap:8px;margin:8px 0}
.app-liste a{color:var(--vert-h);font-weight:600}
.app-liste a:hover{text-decoration:underline}
/* Articles enregistrés en lignes-tuiles (retour Philippe 31/08) : la grammaire
   des boutons bordés de l'espace, titre navy, bord vert au survol. */
.app-liste-articles li a{display:block;border:1px solid var(--ligne);background:#fff;border-radius:8px;padding:10px 14px;color:var(--navy);font-weight:600}
.app-liste-articles li a:hover,.app-liste-articles li a:focus-visible{border-color:var(--vert);color:var(--vert-h);text-decoration:none}
/* Déconnexion — sidebar du compte (desktop) + section Réglages */
.app-nav .app-lien-deco{margin-top:6px;padding-top:16px;border-top:1px solid rgba(40,36,89,.1)}
.app-nav .app-lien-deco:hover{background:transparent;color:#e0475b}
.app-deco{display:inline-block;margin-top:2px;color:var(--texte2);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.app-deco:hover{color:#e0475b}
.app-radar svg{max-width:300px}
.cpt-reprendre{position:relative;overflow:hidden}
.cpt-reprendre > *{position:relative;z-index:1}
.rep-terrain{position:absolute;z-index:0;right:-30px;top:50%;transform:translateY(-50%) rotate(-6deg);width:340px;height:auto;opacity:.75}
.rep-terrain rect,.rep-terrain line,.rep-terrain path{fill:none;stroke:rgba(255,255,255,.13);stroke-width:2}
.rep-terrain .tirets{stroke-dasharray:7 6;stroke:rgba(89,206,168,.35)}
.rep-terrain .plein{fill:rgba(89,206,168,.5);stroke:none}
.app-apercu{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.app-carte-visu{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:20px 22px;display:flex;flex-direction:column;gap:8px;transition:transform .25s,box-shadow .25s;min-width:0}
.app-carte-visu:hover{transform:translateY(-4px);box-shadow:0 14px 30px -16px rgba(40,36,89,.22)}
.app-carte-visu b{font:700 16px var(--font-display);text-transform:uppercase;color:var(--navy);line-height:1.25}
.app-carte-visu .traj{font-size:14px;margin-top:auto}
.visu-radar{margin:2px auto}
.visu-radar svg{width:150px;height:auto;display:block}
.visu-chiffre{font:800 44px/1 var(--font-display);color:var(--navy)}
.visu-note{font-size:13px;color:var(--note)}
.visu-barre{display:flex;height:6px;background:var(--ligne);border-radius:3px;overflow:hidden}
.visu-barre i{background:var(--vert);border-radius:3px}
.visu-obj{display:flex;flex-direction:column;gap:4px}
.visu-obj .lib{font-size:13px;color:var(--note);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tuile-btn{display:inline-block;align-self:flex-start;border:1px solid var(--ligne);background:#fff;border-radius:8px;padding:8px 14px;font:600 13.5px var(--font-corps);color:var(--navy)}
.tuile-btn:hover{border-color:var(--navy)}
.visu-familles{display:flex;gap:3px;height:8px;border-radius:4px;overflow:hidden}
.visu-familles i{border-radius:2px;background:var(--navy2)}
.visu-familles i.theme-attaque{background:var(--attaque)}
.visu-familles i.theme-defense{background:var(--defense)}
.visu-familles i.theme-gardien{background:var(--gardien)}
.visu-familles i.theme-echauffement{background:var(--echauf)}
.visu-familles i.theme-fondamentaux{background:var(--fonda)}
.visu-familles i.theme-prepa{background:var(--prepa)}
.visu-vignettes{display:flex;gap:8px}
.visu-vignettes img{width:64px;height:46px;object-fit:cover;border-radius:6px;border:1px solid var(--ligne)}
.app-tabs{display:none}
.app-plus{display:none}
@media(max-width:960px){
  .app{padding:20px 0 92px}
  .app-shell{grid-template-columns:1fr;gap:0}
  .app-nav{display:none}
  .app-titre{font-size:27px}
  .app-apercu{grid-template-columns:1fr}
  .rep-terrain{right:-70px;opacity:.5}
  .app-tabs{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--navy);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .app-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:0;color:#a9afd6;font:600 10.5px var(--font-corps);padding:6px 2px;cursor:pointer}
  .app-tab svg{width:21px;height:21px}
  .app-tab.actif{color:var(--vert)}
  .app-plus{position:fixed;left:12px;right:12px;bottom:calc(64px + env(safe-area-inset-bottom));z-index:59;background:#fff;border:1px solid var(--ligne);border-radius:14px;box-shadow:0 18px 40px -12px rgba(40,36,89,.35);padding:8px}
  .app-plus[hidden]{display:none}
  .app-plus:not([hidden]){display:flex;flex-direction:column}
  .app-plus a{padding:12px 16px;font:600 15px var(--font-corps);color:var(--texte2);border-radius:8px}
  .app-plus a:hover{background:var(--bande)}
  /* Clone uniquement : la bannière de staging (guard) passe au-dessus des onglets */
  #eh-staging-banner{bottom:calc(64px + env(safe-area-inset-bottom)) !important}
}

/* ---------- Connexion (Lot 5 — porte minimale) ---------- */

.cnx{background:var(--bande);padding:72px 0 96px;min-height:60vh}
.cnx-in{display:flex;justify-content:center}
.cnx-carte{background:#fff;border:1px solid var(--ligne);border-top:4px solid var(--vert);border-radius:14px;padding:40px 44px;max-width:460px;width:100%;box-shadow:0 18px 40px -22px rgba(40,36,89,.25)}
.cnx-carte h1{font-size:34px;margin-bottom:6px}
.cnx-sous{font-size:15px;margin-bottom:22px}
.cnx-err{background:var(--rouge-err-fond);color:var(--rouge-err);border:1px solid var(--rouge-err-filet);border-radius:8px;padding:10px 14px;font-size:14px;margin-bottom:16px}
.cnx-carte form p{margin-bottom:16px}
.cnx-carte label{display:block;font:700 13px var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin-bottom:6px}
.cnx-carte input[type=text],.cnx-carte input[type=password]{width:100%;border:1px solid var(--ligne);border-radius:8px;padding:12px 14px;font:400 15px var(--font-corps);color:var(--texte2);background:var(--bande)}
.cnx-carte input[type=text]:focus,.cnx-carte input[type=password]:focus{outline:2px solid var(--vert);background:#fff}
.cnx-carte .login-remember label{display:flex;align-items:center;gap:8px;text-transform:none;font:400 14px var(--font-corps);color:var(--texte)}
.cnx-carte input[type=submit]{width:100%;background:var(--vert);color:var(--navy);border:0;border-radius:8px;padding:14px;font:800 18px var(--font-display);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:background .25s,color .25s}
.cnx-carte input[type=submit]:hover{background:var(--vert-h);color:#fff}
.cnx-liens{display:flex;flex-direction:column;gap:6px;margin-top:20px;font-size:14px}
.cnx-liens a{color:var(--vert-h);font-weight:600}
.cnx-liens a:hover{text-decoration:underline}
@media(max-width:560px){.cnx-carte{padding:28px 22px}}

/* ---------- Sélecteur d'exercices (Lot 5 — S1-S7 arbitrées 20/07) ---------- */

.selecteur{background:var(--bande);padding-bottom:84px}
.sel-tete{background:var(--navy);color:#fff;padding:52px 0 44px}
.sel-tete .sur-titre{color:var(--vert)}
.sel-tete h1{color:#fff;font-size:clamp(34px,4vw,50px);font-weight:800}
.sel-accroche{color:#cfd4ea;font-size:18px;max-width:640px;margin-top:12px}
.sel-cta-visiteur{margin-top:14px;font-size:15px;color:#a9afd6}
.sel-cta-visiteur a{color:var(--vert);font-weight:700;border-bottom:2px dotted var(--vert)}

.sel-familles{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}
.sel-famille{font:700 15px var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:#fff;background:var(--theme);border:2px solid var(--theme);border-radius:14px;padding:9px 16px;transition:transform .2s,box-shadow .2s,opacity .2s}
.sel-famille:hover{transform:translateY(-2px);box-shadow:0 8px 18px -8px var(--theme)}
.sel-familles:has(.active) .sel-famille:not(.active){opacity:.38}
.sel-famille.active{box-shadow:0 0 0 3px rgba(255,255,255,.55);opacity:1}

.sel-corps{display:grid;grid-template-columns:264px minmax(0,1fr);gap:28px;align-items:start;padding-top:34px}
.sel-filtres-btn{display:none}

/* 01/09 : la carte affiche tout, sans plafond ni défilement interne, et défile
   avec la page (décision Philippe — une carte collante sans plafond aurait son
   bas inaccessible dès qu'elle dépasse l'écran). Le tiroir mobile garde les siens. */
.sel-filtres{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:20px 20px 22px}
.sel-filtres-tete{display:none}
.sel-filtres fieldset{border:0;margin-bottom:18px}
.sel-filtres legend{font:700 14px var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--navy);margin-bottom:9px}
.sel-chips{display:flex;flex-wrap:wrap;gap:7px}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;font:500 13.5px var(--font-corps);color:var(--texte2);background:var(--bande);border:1px solid var(--ligne);border-radius:16px;padding:5px 12px;cursor:pointer;transition:all .2s}
.chip:hover span{border-color:var(--vert)}
.chip input:checked + span{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}
.chip input:focus-visible + span{outline:2px solid var(--vert);outline-offset:1px}
.sel-filtres details summary{font:600 13px var(--font-corps);color:var(--vert-h);cursor:pointer;margin:8px 0}
.sel-filtres details .sel-chips{margin-top:4px}
/* Groupes repliés du sélecteur (31/08, session navigations) : niveau, catégorie
   d'âge et poste derrière leur titre — le summary reprend la forme des legend,
   chevron tourné à l'ouverture. Posé APRÈS la règle des details internes
   (« Voir toutes les catégories »), qu'il ne doit pas toucher : enfant direct. */
.sel-groupe{margin-bottom:18px}
.sel-filtres .sel-groupe > summary{display:flex;align-items:center;justify-content:space-between;gap:8px;font:700 14px var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--navy);margin:0 0 9px;cursor:pointer;list-style:none}
.sel-filtres .sel-groupe > summary::-webkit-details-marker{display:none}
.sel-filtres .sel-groupe > summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(45deg);transition:transform .2s;flex:none;margin-right:2px}
.sel-filtres .sel-groupe[open] > summary::after{transform:rotate(225deg)}
.sel-filtres-appliquer{width:100%;padding:13px;font-size:17px}

.sel-barre{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.sel-recherche{display:flex;gap:8px;flex:1;min-width:230px;max-width:430px}
.sel-recherche input[type=search]{flex:1;border:1px solid var(--ligne);border-radius:8px;padding:10px 14px;font:400 15px var(--font-corps);color:var(--texte2);background:#fff}
.sel-recherche input[type=search]:focus{outline:2px solid var(--vert);border-color:var(--vert)}
.sel-recherche button{background:var(--vert);color:var(--navy);border:0;border-radius:8px;padding:0 16px;font:800 14px var(--font-display);text-transform:uppercase;cursor:pointer}
.sel-tri{display:flex;align-items:center;gap:8px;font:700 13px var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--navy)}
.sel-tri select{border:1px solid var(--ligne);border-radius:8px;padding:9px 10px;font:500 14px var(--font-corps);color:var(--texte2);background:#fff;max-width:230px}

.sel-etat{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.sel-compte{font-size:15px}
.sel-compte b{font:800 18px var(--font-display);color:var(--navy)}
.sel-compte-abo{color:inherit;text-decoration:none}
.sel-compte-abo:hover,.sel-compte-abo:focus{text-decoration:underline}
.sel-pastilles{display:flex;gap:8px;flex-wrap:wrap;list-style:none}
.sel-pastilles a{display:inline-block;font:600 13px var(--font-corps);color:var(--navy);background:var(--vert-pale);border:1px solid var(--vert);border-radius:15px;padding:4px 12px;transition:all .2s}
.sel-pastilles a:hover{background:var(--vert);color:#fff}
.sel-pastilles .tout-effacer a{background:transparent;border-color:var(--ligne);color:var(--note)}
.sel-pastilles .tout-effacer a:hover{border-color:var(--navy);color:var(--navy);background:transparent}
.lecteur{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.sel-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}

/* Carte exercice — grammaire des cartes print */
.exo-carte{position:relative;background:var(--theme);border-radius:12px;padding:7px;transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}
.exo-carte:hover{transform:translateY(-5px);box-shadow:0 20px 44px -20px var(--theme)}
.exo-cadre{display:flex;flex-direction:column;flex:1}
.exo-tete{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 8px;color:#fff}
.exo-fam{background:var(--navy);font:700 10.5px var(--font-display);letter-spacing:.13em;text-transform:uppercase;padding:3px 8px}
.exo-num{font:800 15px var(--font-display);letter-spacing:.02em}
.exo-corps{background:#fff;border-radius:7px 7px 0 0;padding:13px 14px 0;flex:1;display:flex;flex-direction:column}
.exo-corps h3{font-size:18.5px;line-height:1.12;margin-bottom:10px;min-height:41px}
.exo-corps h3.long{font-size:15.5px}
.exo-lock{font-size:13px;margin-right:2px}
.exo-visuel{margin-top:auto}
.exo-visuel img{width:100%;height:118px;object-fit:contain;display:block}
.exo-visuel-vide{height:118px;display:flex;align-items:center;justify-content:center;color:var(--theme)}
.exo-visuel-vide svg{width:74%;height:auto}
.exo-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ligne);margin:12px -14px 0}
.exo-cell{padding:7px 4px 8px;text-align:center;border-right:1px solid var(--ligne)}
.exo-cell:last-child{border-right:none}
.exo-label{display:block;font:600 8.5px var(--font-corps);letter-spacing:.09em;text-transform:uppercase;color:rgba(40,36,89,.5)}
.exo-val{display:block;font:600 14px var(--font-display);color:var(--navy);margin-top:1px}
.exo-pied{display:flex;align-items:center;gap:8px;background:#fff;border-top:1px solid var(--ligne);border-radius:0 0 7px 7px;padding:7px 12px;min-height:38px}
.exo-social{font-size:12px;color:var(--note)}
.exo-social b{font:700 13px var(--font-display);color:var(--navy)}
.exo-premium{margin-left:auto;font:700 10px var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--navy);background:var(--bande);border:1px solid var(--ligne);border-radius:10px;padding:2px 8px}
.exo-connexion{font:600 12.5px var(--font-corps);color:var(--vert-h);border-bottom:1px dotted var(--vert-h)}
.exo-connexion:hover{color:var(--navy);border-color:var(--navy)}
.eh-fav{margin-left:auto;background:none;border:0;cursor:pointer;padding:4px;line-height:0;color:#c6cbd6;transition:color .2s,transform .2s}
.exo-premium + .eh-fav{margin-left:0}
.eh-fav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.eh-fav:hover{color:var(--attaque);transform:scale(1.12)}
.eh-fav.est-favori{color:var(--attaque)}
.eh-fav.est-favori svg{fill:currentColor}

.sel-vide{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:40px;text-align:center}
.sel-vide p{margin-bottom:8px}
.sel-vide a{color:var(--vert-h);font-weight:700;border-bottom:2px dotted var(--vert-h)}

/* ---------- Responsive ---------- */

@media(max-width:960px){
  /* Sélecteur : tiroir de filtres mobile */
  .sel-corps{grid-template-columns:1fr;padding-top:20px}
  .sel-filtres-btn{display:block;width:100%;background:var(--navy);color:#fff;border:0;border-radius:8px;padding:13px;font:800 16px var(--font-display);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;margin-bottom:16px}
  .sel-filtres{display:none;position:fixed;inset:0;z-index:80;border-radius:0;overflow-y:auto;padding:18px 20px 90px}
  .sel-filtres.ouvert{display:block}
  .sel-filtres-tete{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
  .sel-filtres-tete p{font:800 20px var(--font-display);text-transform:uppercase;color:var(--navy)}
  .sel-filtres-fermer{background:none;border:0;font-size:34px;line-height:1;color:var(--navy);cursor:pointer;padding:0 6px}
  .sel-filtres.ouvert .sel-filtres-appliquer{position:fixed;left:16px;right:16px;bottom:16px;width:auto;box-shadow:0 10px 30px rgba(40,36,89,.35)}
  .sel-grille{grid-template-columns:1fr 1fr}
  .sel-barre{flex-direction:column;align-items:stretch}
  .sel-recherche{max-width:none}
  .burger{display:flex}
  #menu-principal{display:none;position:absolute;top:68px;left:0;right:0;background:var(--navy);border-top:1px solid rgba(255,255,255,.12);padding:12px 24px 20px;max-height:calc(100vh - 68px);overflow-y:auto}
  #menu-principal.ouvert{display:block}
  #menu-principal .menu{flex-direction:column;align-items:flex-start;gap:2px}
  #menu-principal .menu > li{width:100%;display:flex;flex-wrap:wrap;align-items:center}
  #menu-principal .menu > li > a{display:block;padding:10px 0;font-size:17px;flex:1}
  .sm-toggle{display:block}
  .menu .sub-menu{display:none;position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;box-shadow:none;padding:0 0 6px 16px;min-width:0;width:100%}
  .menu li.sm-ouvert > .sub-menu{display:block}
  .menu .sub-menu a{color:#a9afd6;padding:6px 0}
  .menu .sub-menu a:hover{background:transparent}
  .nav{gap:14px}
  .hero-grid,.home-hxp-flex,.profil-grid{grid-template-columns:1fr;gap:40px}
  .home-hxp-rangee{grid-template-columns:1fr;gap:12px;margin-top:36px}
  .card:nth-child(2),.card:nth-child(3){margin-top:0}
  .sec-tete{flex-direction:column;align-items:flex-start}
  .besoins,.grille-cartes{grid-template-columns:1fr}
  .tuiles{grid-template-columns:1fr 1fr}
  .btn-ghost{margin-left:0;margin-top:12px}
  .site-footer .cols{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .sel-grille{grid-template-columns:1fr}
  .sel-familles{gap:7px}
  .sel-famille{font-size:13px;padding:7px 11px}
  .tuiles{grid-template-columns:1fr}
  .cpt-reprendre{padding:24px 22px}
  .cpt-reprendre h3{font-size:21px}
  .cpt-reprendre .btn{width:100%}
  .home section{padding:52px 0}
  .preuve .ligne{gap:16px}
  .preuve b{font-size:26px}
  .nav-actions > a:not(.btn-connexion){display:none}
  .nav{gap:10px}
  .logo{font-size:19px}
  .btn-connexion{padding:7px 12px;font-size:13px}
}

/* ---------- Fiche exercice (Lot 5, F1-F7) ---------- */

.fiche{background:var(--bande);padding-bottom:84px}
.fiche-tete{background:var(--navy);color:#fff;padding:40px 0 34px;border-bottom:6px solid var(--theme)}
.fiche-fil{margin-bottom:18px}
.fiche-fil a{font:600 14px var(--font-corps);color:#a9afd6}
.fiche-fil a:hover{color:var(--vert)}
.fiche-titre{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}
.fiche-fam{background:var(--theme);color:#fff;font:700 12px var(--font-display);letter-spacing:.13em;text-transform:uppercase;padding:4px 10px}
.fiche-num{font:800 15px var(--font-display);letter-spacing:.04em;color:#cfd4ea;text-transform:uppercase}
.fiche-titre h1{width:100%;color:#fff;font-size:clamp(30px,3.6vw,46px);font-weight:800;margin-top:2px}
.fiche-strip{display:inline-flex;background:#fff;border-radius:8px;margin-top:18px;overflow:hidden}
.fiche-strip .exo-cell{padding:9px 18px 10px;border-right:1px solid var(--ligne)}
.fiche-strip .exo-val{font-size:17px}
.fiche-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:18px}
.fiche-actions .exo-social{color:#cfd4ea;font-size:13.5px}
.fiche-actions .exo-social b{color:#fff}
.fiche-actions .eh-fav{margin-left:0;color:#8b90bb}
.fiche-actions .eh-fav svg{width:24px;height:24px}
.fiche-pdf{padding:11px 22px;font-size:16px}
.fiche-salle{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid rgba(255,255,255,.45);border-radius:8px;color:#cfd4ea;font:600 13px var(--font-corps);padding:9px 14px;transition:all .2s}
.fiche-salle:hover{border-color:var(--vert);color:var(--vert)}
.fiche-salle-abo{background:#fff;color:var(--navy);border-radius:99px;font:700 11px var(--font-corps);padding:2px 8px}

.fiche-corps{max-width:880px;padding-top:30px}
.fiche-visuel{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:14px;margin-bottom:26px;text-align:center}
.fiche-visuel img{max-width:100%;height:auto}

.fiche-preparer,.fiche-faire{margin-bottom:8px}
.fiche-preparer h2,.fiche-faire h2,.fiche-poursuite h2{font-size:24px;margin:26px 0 14px}
.fiche-prep-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fiche-prep-bloc{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:16px 18px}
.fiche-prep-bloc h3{font-size:14px;letter-spacing:.08em;color:var(--note);margin-bottom:6px}
.fiche-prep-texte{font-size:15px;line-height:1.6}
.fiche-prep-texte b{font:800 19px var(--font-display);color:var(--navy)}
.fiche-badges-lignes{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.fiche-badges{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.fiche-badges-label{font:700 12px var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--navy);margin-right:3px}
.fiche-badges a{font:500 13.5px var(--font-corps);color:var(--texte2);background:#fff;border:1px solid var(--ligne);border-radius:16px;padding:4px 12px;transition:all .2s}
.fiche-badges a:hover{border-color:var(--vert);color:var(--vert-h)}

.fiche-intro{background:#fff;border-left:5px solid var(--theme);border-radius:0 12px 12px 0;padding:18px 22px;margin:22px 0;font-size:16.5px}
.fiche-videos-grille{display:grid;grid-template-columns:1fr;gap:16px;max-width:640px;margin:0 auto}
.fiche-videos-grille.deux{grid-template-columns:1fr 1fr;max-width:none}
.fiche-video{position:relative;padding-top:56.25%;background:#000;border-radius:14px;overflow:hidden}
.fiche-video iframe{position:absolute;inset:0;width:100%;height:100%}
.fiche-bloc{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:20px 22px;margin-bottom:16px}
.fiche-bloc h2{margin:0 0 12px;display:flex;align-items:center;gap:10px}
.fiche-etape{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--theme);color:#fff;font:800 16px var(--font-display);flex:none}
.fiche-bloc-corps.avec-schema{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}
.fiche-schema img{width:100%;height:auto;border:1px solid var(--ligne);border-radius:6px}
.fiche-bloc-texte{font-size:16px}
.fiche-bloc-texte p{margin-bottom:10px}
.fiche-conseils{background:var(--vert-pale);border:1px solid var(--vert);border-radius:14px;padding:20px 22px;margin:22px 0}
.fiche-conseils h2{margin:0 0 10px;color:var(--vert-h)}

.fiche-abo{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:36px;max-width:620px;margin:10px auto 26px;text-align:center;box-shadow:0 18px 44px -26px rgba(40,36,89,.4)}
.fiche-abo h2{font-size:26px;margin-bottom:12px}
.fiche-abo p{margin-bottom:14px}
.fiche-abo-cta{margin-top:20px}
.fiche-abo-connexion{font-size:14.5px;color:var(--note)}
.fiche-abo-connexion a{color:var(--vert-h);font-weight:700;border-bottom:2px dotted var(--vert-h)}

.fiche-poursuite{margin-top:26px}
.fiche-poursuite-note{color:var(--note);font-size:14.5px;margin:-6px 0 14px}
.fiche-poursuite .sel-grille{grid-template-columns:repeat(3,minmax(0,1fr))}
.fiche-poursuite-plus{margin-top:14px}
.fiche-poursuite-plus a{font:700 15px var(--font-display);text-transform:uppercase;letter-spacing:.04em;color:var(--vert-h)}

/* Modale DOI — le markup Bootstrap 3 est injecté par le mu-plugin
   eh-acquisition ; le thème neuf n'a pas Bootstrap, on la pilote nous-mêmes. */
.modal{display:none;position:fixed;inset:0;z-index:120;overflow-y:auto;background:rgba(29,26,64,.55);padding:30px 16px}
.modal.eh-ouverte{display:block}
.modal-dialog{max-width:480px;margin:6vh auto 40px}
.modal-content{background:#fff;border-radius:14px;padding:10px 22px 24px;box-shadow:0 24px 60px -20px rgba(0,0,0,.5)}
.modal-header{display:flex;justify-content:flex-end}
.modal-header .close{background:none;border:0;font-size:30px;line-height:1;color:var(--note);cursor:pointer;padding:4px 8px}
.modal-header .close:hover{color:var(--navy)}

/* ---------- Modale DOI — grammaire des portes (porte 6, 22/07) ----------
   Le markup vient du moteur (doi-tunnel.php, classes Bootstrap 3). On le
   rhabille à la charte des portes, scopé sous #doiFormModal pour gagner la
   cascade sans !important (Site EH §2.5). Moteur et endpoint inchangés. */
#doiFormModal .eh-doi-form-wrap h3{font:800 24px/1.15 var(--font-display);color:var(--navy);text-transform:uppercase;letter-spacing:.01em;margin:0 0 18px}
#doiFormModal .eh-doi-form-wrap>p,#doiFormModal .eh-doi-login-panel>p{font-size:14.5px;color:var(--texte);margin-bottom:16px}
#doiFormModal .eh-doi-tabs{display:flex;gap:8px;margin-bottom:20px}
#doiFormModal .eh-doi-tab{flex:1;background:var(--bande);border:1px solid var(--ligne);border-radius:8px;padding:11px 10px;font:700 13px var(--font-display);text-transform:uppercase;letter-spacing:.04em;color:var(--note);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
#doiFormModal .eh-doi-tab.btn-primary,#doiFormModal .eh-doi-tab.active{background:var(--vert);border-color:var(--vert);color:var(--navy)}
#doiFormModal .form-group{margin-bottom:16px;position:relative}
#doiFormModal .form-control{width:100%;border:1px solid var(--ligne);border-radius:8px;padding:12px 14px;font:400 15px var(--font-corps);color:var(--texte2);background:var(--bande)}
#doiFormModal .form-control:focus{outline:2px solid var(--vert);background:#fff}
#doiFormModal .glyphicon,#doiFormModal .form-control-feedback{display:none}
#doiFormModal .btn-primary{width:100%;background:var(--vert);color:var(--navy);border:0;border-radius:8px;padding:14px;font:800 18px var(--font-display);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:background .25s,color .25s}
#doiFormModal .btn-primary:hover{background:var(--vert-h);color:#fff}
#doiFormModal .checkbox label{display:flex;align-items:flex-start;gap:9px;font:400 13.5px var(--font-corps);color:var(--texte);line-height:1.5;cursor:pointer}
#doiFormModal .checkbox input{margin-top:3px;accent-color:var(--vert)}
#doiFormModal .eh-doi-legal{font-size:12.5px;color:var(--note);line-height:1.5;margin-top:6px}
#doiFormModal .eh-doi-known-info,#doiFormModal .alert-info{background:var(--vert-pale);border:1px solid var(--vert);border-radius:8px;padding:14px 16px;font-size:14px;color:var(--texte)}
#doiFormModal .eh-doi-known-info strong{color:var(--navy)}
#doiFormModal .eh-doi-error,#doiFormModal .text-danger{background:var(--rouge-err-fond);color:var(--rouge-err);border:1px solid var(--rouge-err-filet);border-radius:8px;padding:10px 14px;font-size:14px;margin-bottom:16px}
#doiFormModal .eh-doi-login-panel label.control-label{display:block;font:700 13px var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin-bottom:6px}
#doiFormModal .eh-doi-email-known-hint{font-size:12px;color:var(--vert-h);margin:-8px 0 14px}
#doiFormModal .eh-doi-login-panel .text-center a{color:var(--vert-h);font-weight:600;font-size:14px}

@media(max-width:960px){
  .fiche-prep-grille{grid-template-columns:1fr}
  .fiche-bloc-corps.avec-schema{grid-template-columns:1fr}
  .fiche-schema{max-width:340px;margin:0 auto}
  .fiche-videos-grille.deux{grid-template-columns:1fr}
  .fiche-poursuite .sel-grille{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .fiche-poursuite .sel-grille{grid-template-columns:1fr}
  .fiche-strip{display:grid;grid-template-columns:repeat(3,1fr);width:100%}
  .fiche-actions .btn{width:100%;text-align:center}
  .fiche-abo{padding:26px 20px}
}

/* ==========================================================================
   Surface handXPrience (page-handxprience.php, adresse /handxprience/
   depuis le renommage du 31/08) — refonte du 31/08.
   Composition validée (composition-20260831.md + maquette v3.3) : deux aplats
   navy (héros, accès) encadrent la page, alternance blanc / bande-sec / vert
   pâle entre eux, chaque bloc d'information en tuile, filigrane = les VRAIS
   terrains de La Tablette (médias filigrane-terrain-demi / -complet, fabriqués
   par lot5/page-hxp-20260827/maquette/fabrique-filigranes.py). Les ronds
   décoratifs du héros sont retirés (règle Philippe du 30/08).
   ========================================================================== */
.hxp-page section{padding:78px 0}
.hxp-hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hxp-page .hxp-hero{padding-bottom:120px}
.hxp-hero-grid{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:center;position:relative;z-index:1}
.hxp-hero h1{color:#fff;font-size:clamp(34px,3.8vw,52px);font-weight:800;line-height:1.05;margin-bottom:16px}
.hxp-hero .num-sec{background:var(--vert);color:var(--navy)}
.hxp-hero-sous{font:600 23px var(--font-display);color:var(--vert);margin-bottom:16px;letter-spacing:.02em}
.hxp-cta{margin-top:28px}
.hxp-cta .btn{min-width:260px}
.hxp-cta-note{margin-top:14px;font-size:14.5px;color:#c9cbe2;line-height:1.6}
.hxp-cta-note a{color:var(--vert);text-decoration:underline}

/* Le terrain de La Tablette, seul filigrane, sur les deux aplats navy. */
img.hxp-terrain{position:absolute;z-index:0;height:auto;pointer-events:none;user-select:none}
.hxp-terrain-hero{right:-140px;top:50%;transform:translateY(-50%) rotate(-6deg);width:760px;opacity:.38}
.hxp-terrain-acces{right:-160px;top:50%;transform:translateY(-50%) rotate(8deg);width:520px;opacity:.3}

/* Les cinq entrées : rangée de tuiles à cheval sur le navy, ancres de page. */
.hxp-outils-rangee{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:-64px;position:relative;z-index:2}
.hxp-outil-tuile{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:18px 18px;box-shadow:0 20px 44px -18px rgba(40,36,89,.35);transition:transform .25s,box-shadow .25s}
.hxp-outil-tuile b{font:700 17px var(--font-display);text-transform:uppercase;color:var(--navy);letter-spacing:.02em}
.hxp-outil-tuile span{font-size:13px;color:var(--texte2);line-height:1.45}
.hxp-outil-tuile:hover{transform:translateY(-4px);box-shadow:0 26px 54px -18px rgba(40,36,89,.45)}
.hxp-outil-tuile.tuile-soon{background:var(--vert-pale)}
.hxp-outil-tuile .soon{display:inline-block;background:#fff;color:var(--vert-h);font:700 10.5px var(--font-corps);font-style:normal;text-transform:none;letter-spacing:.04em;padding:2px 8px;border-radius:9px;vertical-align:middle;margin-left:4px}
.hxp-outils-note{text-align:center;font-size:15px;color:var(--texte2);margin:18px 0 0}

/* Rangées des sections : tuile de texte + visuel, alternance par hxp-inv. */
.hxp-rangee{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.hxp-inv .hxp-tuile-txt{order:2}
.hxp-inv .hxp-visu{order:1}
.hxp-tuile-txt{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:34px 36px}
.hxp-tuile-txt h2{font-size:clamp(28px,3vw,38px);font-weight:800;line-height:1.08;margin-bottom:14px}
.hxp-tuile-txt p{font-size:15px;color:var(--texte);line-height:1.65;margin-bottom:12px}
.hxp-tuile-txt p:last-child{margin-bottom:0}
.hxp-tuile-txt p strong{color:var(--navy);font-weight:700}

/* L'accroche : la première phrase porte la section, le reste appuie. */
.hxp-tuile-txt p.hxp-accroche{font:700 18.5px/1.5 var(--font-corps);color:var(--navy);margin-bottom:14px}

/* Le geste de section : bouton secondaire à bordure, jamais un second vert. */
.hxp-lien{margin-top:20px}
.hxp-btn-sec{display:inline-block;border:1.5px solid var(--navy);background:#fff;border-radius:8px;padding:10px 18px;font:700 14.5px var(--font-corps);color:var(--navy);cursor:pointer;transition:border-color .25s,color .25s}
.hxp-btn-sec:hover{border-color:var(--vert-h);color:var(--vert-h)}
.hxp-btn-sec .soon{display:inline-block;background:var(--vert-pale);color:var(--vert-h);font:700 11px var(--font-corps);font-style:normal;padding:2px 8px;border-radius:9px;vertical-align:middle}

/* 01 — La Tablette : la chaîne complète — l'outil en fenêtre, la fiche
   paysage qui en sort, la carte recto à côté. */
.hxp-compo-fiche{position:relative;padding:0 0 150px 0}
.hxp-compo-paysage{position:absolute;left:-14px;bottom:0;width:62%;height:auto;border-radius:8px;border:1px solid var(--ligne);box-shadow:0 20px 50px -18px rgba(40,36,89,.45);transform:rotate(-1.5deg);z-index:1}
.hxp-compo-carte{position:absolute;right:6px;bottom:12px;width:25%;height:auto;border-radius:8px;border:1px solid var(--ligne);box-shadow:0 18px 44px -16px rgba(40,36,89,.45);transform:rotate(2.5deg);z-index:1}

/* Les fenêtres de section, légèrement inclinées comme celle du héros. */
.hxp-fenetre-gauche,.hxp-fenetre-droite{transform:rotate(-1.2deg)}

/* 05 — Le Projet d'équipe : bande vert pâle pleine largeur, tuile blanche
   centrée. La rupture de couleur assume l'absence de capture : l'outil
   n'existe pas, rien ne se promet en visuel. */
.hxp-projet{background:var(--vert-pale)}
.hxp-projet-tuile{max-width:820px;margin:0 auto;box-shadow:0 20px 44px -20px rgba(40,36,89,.2)}
.hxp-projet-tuile h2 .soon{display:inline-block;background:var(--vert-pale);color:var(--vert-h);font:700 13px var(--font-corps);padding:3px 12px;border-radius:11px;letter-spacing:.04em;vertical-align:middle;margin-left:10px}

/* 03 — le téléphone du mode salle, cadre étroit, jamais rogné en largeur. */
.hxp-rangee-tel{grid-template-columns:3fr 2fr}
.hxp-tel{max-width:320px;margin:0 auto}
.hxp-tel img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--ligne);box-shadow:0 24px 60px -22px rgba(40,36,89,.35)}

/* La citation : grande, seule respiration hors tuile de la page. */
.hxp-citation{text-align:center}
.hxp-citation-bar{width:48px;height:3px;background:var(--vert);margin:0 auto 26px}
.hxp-citation-texte{font-size:clamp(24px,2.4vw,31px);font-style:italic;color:var(--navy);max-width:820px;margin:0 auto 18px;line-height:1.5;font-weight:600}
.hxp-citation-auteur{font-size:16px;color:var(--note)}

/* La bande d'accès : navy, texte à gauche, prix au-dessus du bouton à
   droite (forme retenue par Philippe les 30 et 31/08). */
.hxp-acces{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hxp-acces-inner{position:relative;z-index:1}
.hxp-acces-grid{display:grid;grid-template-columns:7fr 4fr;gap:48px;align-items:center;max-width:1000px}
.hxp-acces h2{color:#fff;font-size:clamp(28px,3vw,38px);font-weight:800;line-height:1.1;margin-bottom:18px}
.hxp-acces p{color:#c9cbe2;font-size:16px;line-height:1.65;margin-bottom:14px}
.hxp-acces p strong{color:#fff;font-weight:700}
.hxp-acces-libere{font:700 21px var(--font-corps);color:#fff;margin-top:6px}
.hxp-acces-achat{text-align:center}
.hxp-prix{margin:0 0 16px}
.hxp-prix b{font:800 46px var(--font-display);color:#fff;letter-spacing:.02em}

/* Téléphone : une colonne, texte avant visuel, images jamais rognées. */
@media(max-width:900px){
  .hxp-page .hxp-hero{padding-bottom:96px}
  .hxp-outils-rangee{grid-template-columns:1fr;gap:12px;margin-top:-48px}
  .hxp-rangee,.hxp-rangee-tel{grid-template-columns:1fr;gap:28px}
  .hxp-inv .hxp-tuile-txt{order:1}
  .hxp-inv .hxp-visu{order:2}
  .hxp-tuile-txt{padding:26px 22px}
  .hxp-terrain-hero{width:460px;right:-160px;opacity:.3}
  .hxp-terrain-acces{width:360px;right:-140px;opacity:.25}
  .hxp-compo-fiche{padding:0 0 110px 0}
  .hxp-acces-grid{grid-template-columns:1fr;gap:26px}
  .hxp-acces-achat{text-align:left}
}

/* ==========================================================================
   Cartes abonnement (inc/pricing-cards.php — part partagé HXP / abonnement)
   ========================================================================== */
.eh-abo-cards{max-width:920px;margin:0 auto}
.eh-abo-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:30px;align-items:stretch}
.eh-abo-card{border-radius:14px;padding:38px 34px;position:relative;overflow:hidden;display:flex;flex-direction:column}
.eh-abo-court{position:absolute;right:-30px;bottom:-8px;width:320px;height:240px;pointer-events:none}
.eh-abo-free .eh-abo-court path,.eh-abo-free .eh-abo-court line{stroke:var(--navy);opacity:.05}
.eh-abo-navy .eh-abo-court path,.eh-abo-navy .eh-abo-court line{stroke:#fff;opacity:.09}
.eh-abo-free{background:#fff;border:1px solid var(--ligne);box-shadow:0 1px 10px rgba(40,36,89,.05)}
.eh-abo-navy{background:linear-gradient(160deg,var(--encre) 0%,var(--navy2) 100%);color:#e9e9f4;box-shadow:0 14px 34px rgba(40,36,89,.30)}
.eh-abo-card h2{font-size:26px;font-weight:800;margin-bottom:4px}
.eh-abo-navy h2{color:#fff}
.eh-abo-who{font-size:15px;color:var(--note);margin-bottom:24px}
.eh-abo-navy .eh-abo-who{color:#b6b8d4}
.eh-abo-toggle{display:inline-flex;align-self:flex-start;background:rgba(255,255,255,.14);border-radius:9999px;padding:4px;margin-bottom:22px}
.eh-abo-toggle button{font:500 14.5px var(--font-corps);border:none;background:transparent;color:#d5d7ea;padding:8px 18px;border-radius:9999px;cursor:pointer;transition:all .2s}
.eh-abo-toggle button.active{background:#fff;color:var(--navy);font-weight:700;box-shadow:0 1px 4px rgba(20,17,50,.25)}
.eh-abo-badge{display:inline-block;margin-left:7px;background:var(--vert);color:var(--navy);font:700 11.5px var(--font-corps);padding:1px 8px;border-radius:9999px;vertical-align:1px}
.eh-abo-toggle-ghost{visibility:hidden;background:transparent}
.eh-abo-price{font:800 52px var(--font-display);line-height:1;margin-bottom:2px;transition:opacity .15s;color:var(--navy)}
.eh-abo-navy .eh-abo-price{color:#fff}
.eh-abo-price small{font-size:17px;font-weight:500;font-family:var(--font-corps);color:var(--note)}
.eh-abo-navy .eh-abo-price small{color:#b6b8d4}
.eh-abo-price-sub{font-size:14.5px;margin-bottom:24px;min-height:22px;color:var(--note)}
.eh-abo-navy .eh-abo-price-sub{color:#9fe3c8;font-weight:500}
.eh-abo-group{font:800 12.5px var(--font-display);letter-spacing:.09em;text-transform:uppercase;margin:16px 0 4px;color:#b0b6c4}
.eh-abo-navy .eh-abo-group{color:#8f93bd}
ul.eh-abo-features{list-style:none;margin:0;padding:0}
ul.eh-abo-features li{display:flex;align-items:flex-start;gap:11px;padding:5px 0;font-size:15px}
.eh-abo-tick{flex-shrink:0;width:21px;height:21px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;margin-top:2px;background:var(--vert-pale);color:var(--vert-h)}
.eh-abo-navy .eh-abo-tick{background:rgba(255,255,255,.18);color:#fff}
.eh-abo-cards li.eh-abo-soon{opacity:.55}
.eh-abo-chip{display:inline-block;margin-left:7px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.18);border-radius:9999px;padding:1px 8px;vertical-align:1px;white-space:nowrap}
.eh-abo-cta-zone{margin-top:auto;padding-top:26px}
.eh-abo-btn{display:block;width:100%;text-align:center;padding:15px 24px;border-radius:8px;font:800 17px var(--font-display);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border:none;transition:all .2s;text-decoration:none}
.eh-abo-free .eh-abo-btn{background:transparent;border:2px solid var(--vert-h);color:var(--vert-h)}
.eh-abo-free .eh-abo-btn:hover{background:var(--vert-h);color:#fff}
.eh-abo-navy .eh-abo-btn{background:var(--vert);color:var(--navy);box-shadow:0 4px 14px rgba(20,60,50,.22)}
.eh-abo-navy .eh-abo-btn:hover{background:var(--vert-h);color:#fff}
.eh-abo-btn[disabled]{opacity:.6;cursor:wait}
.eh-abo-reassure{text-align:center;font-size:13px;margin-top:12px;line-height:1.5;color:var(--note)}
.eh-abo-navy .eh-abo-reassure{color:#b6b8d4}
.eh-abo-error{margin-top:18px;background:#fff6e8;border:1px solid #f0d9a8;border-radius:8px;padding:12px 16px;font-size:14.5px;color:#8a6d1a}
.eh-abo-testmode{text-align:center;color:var(--note);margin-top:12px}
.eh-abo-indispo{color:var(--note);margin-top:20px}

@media(max-width:900px){
  .hxp-hero-grid{grid-template-columns:1fr;gap:36px}
  .eh-abo-grid{grid-template-columns:1fr}
  .eh-abo-navy{order:-1}
  .hxp-page section{padding:52px 0}
}
.hxp-hero .fenetre img{display:block;width:100%;height:auto}

/* ---------- Boutique (Lot 5, B1-B7) ---------- */

.boutique{background:var(--bande);padding-bottom:84px}
.btq-tete{background:var(--navy);color:#fff;padding:52px 0 40px}
.btq-tete .sur-titre{color:var(--vert)}
.btq-tete h1{color:#fff;font-size:clamp(34px,4vw,50px);font-weight:800}
.btq-accroche{color:#cfd4ea;font-size:18px;max-width:660px;margin-top:12px}
.btq-rayons-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.btq-rayons-nav a{font:700 15px var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:#fff;border:2px solid rgba(255,255,255,.35);border-radius:8px;padding:8px 16px;transition:all .2s}
.btq-rayons-nav a:hover{border-color:var(--vert);color:var(--vert)}

.btq-rayon{padding-top:46px}
.btq-rayon-tete h2{font-size:clamp(26px,3vw,34px);font-weight:800}
.btq-rayon-tete p{margin-top:6px;max-width:640px}
.btq-grille{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:22px}
.btq-grille-archive{margin-top:34px}

/* Carte produit — grammaire des cartes print, cadre navy neutre */
.pdt-carte{background:var(--navy);border-radius:12px;padding:7px;transition:transform .25s,box-shadow .25s;display:flex}
.pdt-carte:hover{transform:translateY(-5px);box-shadow:0 20px 44px -22px var(--navy)}
.pdt-carte>a{display:flex;flex-direction:column;flex:1}
.pdt-tete{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 8px;color:#fff}
.pdt-format{background:rgba(255,255,255,.14);font:700 10.5px var(--font-display);letter-spacing:.13em;text-transform:uppercase;padding:3px 8px}
.pdt-promo{font:800 11px var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--navy);background:var(--vert);border-radius:9px;padding:2px 8px}
.pdt-visuel{background:#fff;border-radius:7px 7px 0 0;padding:14px 14px 0;text-align:center}
.pdt-visuel img{width:auto;max-width:100%;height:190px;object-fit:contain;display:inline-block}
.pdt-corps{background:#fff;border-radius:0 0 7px 7px;padding:12px 14px 12px;flex:1;display:flex;flex-direction:column}
.pdt-corps h3{font-size:17.5px;line-height:1.15;margin-bottom:10px}
.pdt-bas{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-top:1px solid var(--ligne);padding-top:9px}
.pdt-prix{font:800 19px var(--font-display);color:var(--navy)}
.pdt-prix del{font:600 14px var(--font-display);color:var(--note);margin-right:6px}
.pdt-prix ins{text-decoration:none}
.pdt-note{font:700 14px var(--font-display);color:var(--defense);white-space:nowrap}

.btq-abo{padding-top:56px}
.boutique .woocommerce-message,.boutique .woocommerce-info,.boutique .woocommerce-error{background:#fff;border:1px solid var(--ligne);border-left:4px solid var(--vert);border-radius:8px;padding:14px 18px;margin-top:22px;list-style:none}
.boutique .woocommerce-error{border-left-color:var(--attaque)}

/* ---------- Fiche produit (Lot 5, B4-B5) ---------- */

.produit-fiche{background:#fff}
.pf-haut{background:var(--bande);padding:40px 0 46px}
.pf-grille{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:44px;align-items:start}
.pf-galerie .woocommerce-product-gallery{position:relative}
.pf-galerie img{border-radius:14px;box-shadow:0 18px 44px -22px rgba(29,26,64,.35);background:#fff}
.pf-galerie .flex-control-thumbs{display:flex;gap:10px;list-style:none;margin-top:12px}
.pf-galerie .flex-control-thumbs img{height:64px;width:auto;border-radius:6px;cursor:pointer;box-shadow:none;border:1px solid var(--ligne)}
.pf-galerie .onsale{position:absolute;top:12px;left:12px;z-index:2;font:800 13px var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--navy);background:var(--vert);border-radius:9px;padding:4px 12px}

.pf-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pf-chip{font:700 12px var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--navy);background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:4px 12px}
.pf-chip-format{background:var(--navy);border-color:var(--navy);color:#fff}
a.pf-chip:hover{border-color:var(--vert);color:var(--vert-h)}

.pf-resume .product_title{font-size:clamp(30px,3.4vw,42px);font-weight:800;line-height:1.05;margin-bottom:12px}
.pf-resume .woocommerce-product-rating{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.pf-resume .price{display:block;font:800 34px var(--font-display);color:var(--navy);margin:6px 0 14px}
.pf-resume .price del{font-size:22px;color:var(--note);margin-right:10px}
.pf-resume .price ins{text-decoration:none}
.pf-resume .woocommerce-product-details__short-description{font-size:16.5px;margin-bottom:18px}
.pf-resume form.cart{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;margin-bottom:20px}
.pf-resume form.cart .quantity{display:none}
.pf-resume .single_add_to_cart_button{flex:1;min-width:230px;background:var(--vert);color:var(--navy);border:0;border-radius:8px;padding:16px 34px;font:800 20px var(--font-display);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:background .25s,color .25s,transform .25s;box-shadow:0 6px 18px rgba(89,206,168,.3)}
.pf-resume .single_add_to_cart_button:hover{background:var(--vert-h);color:#fff;transform:translateY(-2px)}
.pf-resume form.cart .variations{width:100%;border-collapse:collapse}
.pf-resume form.cart .variations td,.pf-resume form.cart .variations th{padding:6px 0;text-align:left}
.pf-resume form.cart .variations label{font:700 14px var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--navy)}
.pf-resume form.cart .variations select{border:1px solid var(--ligne);border-radius:8px;padding:10px 12px;font:500 15px var(--font-corps);color:var(--texte2);background:#fff;max-width:100%}
.pf-resume .reset_variations{font-size:13px;color:var(--note)}
.pf-resume .woocommerce-variation-price .price{font-size:26px;margin:4px 0 10px}
.pf-resume .stock{font-size:14px;color:var(--vert-h);margin-bottom:8px}

.pf-confiance{list-style:none;border-top:1px solid var(--ligne);padding-top:16px;display:grid;gap:8px}
.pf-confiance li{position:relative;padding-left:26px;font-size:15px}
.pf-confiance li::before{content:"";position:absolute;left:0;top:5px;width:14px;height:14px;border-radius:50%;background:var(--vert-pale);border:2px solid var(--vert)}

.pf-description{padding:52px 0 20px}
.pf-lecture{max-width:820px}
.pf-lecture h1,.pf-lecture h2{font-size:clamp(24px,2.6vw,30px);margin:34px 0 12px}
.pf-lecture h3{font-size:20px;margin:26px 0 10px}
.pf-lecture p{margin-bottom:14px}
.pf-lecture ul,.pf-lecture ol{margin:0 0 16px 22px}
.pf-lecture li{margin-bottom:6px}
.pf-lecture img{border-radius:14px}

.pf-avis{padding:26px 0}
.pf-avis .woocommerce-Reviews{max-width:820px}
.pf-avis h2{font-size:clamp(22px,2.4vw,28px);margin-bottom:16px}
.pf-avis .commentlist{list-style:none}
.pf-avis .commentlist li{background:var(--bande);border:1px solid var(--ligne);border-radius:14px;padding:16px 18px;margin-bottom:12px}
.pf-avis .comment_container img{display:none}
.pf-avis .comment-text .meta{font-size:13px;color:var(--note);margin:4px 0 6px}
.pf-avis .comment-form label{display:block;font:700 14px var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--navy);margin-bottom:5px}
.pf-avis .comment-form input[type=text],.pf-avis .comment-form input[type=email],.pf-avis .comment-form textarea{width:100%;border:1px solid var(--ligne);border-radius:8px;padding:10px 12px;font:400 15px var(--font-corps);margin-bottom:12px;background:#fff}
.pf-avis .form-submit input{background:var(--navy);color:#fff;border:0;border-radius:8px;padding:12px 26px;font:800 16px var(--font-display);text-transform:uppercase;cursor:pointer}

.pf-poursuite{padding:20px 0 70px}
.pf-poursuite section>h2,.pf-poursuite .up-sells>h2,.pf-poursuite .related>h2{font-size:clamp(22px,2.4vw,28px);margin:30px 0 4px}
.pf-poursuite ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;list-style:none;margin-top:18px}
.pf-poursuite ul.products::before,.pf-poursuite ul.products::after{display:none;content:none}
.pf-poursuite ul.products li.product{display:flex}
.pf-poursuite ul.products li.product .pdt-carte{flex:1}
.pf-poursuite .onsale{display:none}

.pf-cta-mobile{display:none}

/* ---------- Panier et commande (B6 : habillage seul, moteur intact) ---------- */

.woocommerce-cart .page-contenu,.woocommerce-checkout .page-contenu{background:var(--bande);padding-bottom:70px}
.woocommerce-cart .contenu-tete h1,.woocommerce-checkout .contenu-tete h1{font-size:clamp(30px,3.4vw,42px);padding-top:34px}
.woocommerce table.shop_table{width:100%;background:#fff;border:1px solid var(--ligne);border-radius:14px;border-collapse:separate;border-spacing:0;overflow:hidden;margin:18px 0 24px}
.woocommerce table.shop_table th{font:700 13px var(--font-display);text-transform:uppercase;letter-spacing:.07em;color:var(--navy);background:var(--bande);padding:12px 14px;text-align:left}
.woocommerce table.shop_table td{padding:12px 14px;border-top:1px solid var(--ligne);vertical-align:middle}
.woocommerce table.shop_table img{width:54px;height:auto;border-radius:6px}
.woocommerce .product-remove a{font-size:20px;color:var(--note);text-decoration:none}
.woocommerce .product-remove a:hover{color:var(--attaque)}
.woocommerce .quantity .qty{width:64px;border:1px solid var(--ligne);border-radius:8px;padding:8px;text-align:center;font:500 15px var(--font-corps)}
.woocommerce .coupon{display:flex;gap:8px}
.woocommerce .coupon .input-text{border:1px solid var(--ligne);border-radius:8px;padding:10px 12px;font:400 14px var(--font-corps)}
.woocommerce button.button,.woocommerce a.checkout-button,.woocommerce #place_order{background:var(--vert);color:var(--navy);border:0;border-radius:8px;padding:13px 26px;font:800 17px var(--font-display);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:background .25s,color .25s;text-decoration:none;display:inline-block}
.woocommerce button.button:hover,.woocommerce a.checkout-button:hover,.woocommerce #place_order:hover{background:var(--vert-h);color:#fff}
.woocommerce button.button:disabled{opacity:.5;cursor:default}
.cart_totals,.woocommerce-checkout-review-order{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:20px}
.cart_totals h2,.woocommerce-checkout h3{font-size:22px;margin-bottom:10px}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{border:1px solid var(--ligne);border-radius:8px;padding:11px 12px;font:400 15px var(--font-corps);width:100%;background:#fff}
.woocommerce form .form-row label{font:600 13.5px var(--font-corps);color:var(--texte2)}
.woocommerce-checkout #payment{background:var(--bande);border-radius:14px}
.woocommerce-checkout #payment .payment_methods{list-style:none;padding:14px}

/* ---------- Boutique responsive ---------- */

@media(max-width:1100px){
  .btq-grille,.pf-poursuite ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:960px){
  .pf-grille{grid-template-columns:minmax(0,1fr);gap:26px}
  .pf-haut{padding:26px 0 34px}
  .pf-cta-mobile{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--navy);color:#fff;padding:12px 18px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgba(29,26,64,.25)}
  .pf-cta-prix{font:800 20px var(--font-display)}
  .pf-cta-prix del{color:#a9afd6;font-size:15px;margin-right:6px}
  .pf-cta-prix ins{text-decoration:none}
  .pf-cta-btn{background:var(--vert);color:var(--navy);border-radius:8px;padding:11px 20px;font:800 16px var(--font-display);text-transform:uppercase;letter-spacing:.04em}
  .produit-fiche{padding-bottom:64px}
}
@media(max-width:760px){
  .btq-grille,.pf-poursuite ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
  .btq-tete{padding:38px 0 30px}
}
@media(max-width:480px){
  .btq-grille{grid-template-columns:minmax(0,1fr)}
  .pdt-visuel img{height:210px}
}

/* ---------- Home vivante (Lot 5, V1-V4) ---------- */

/* V1 — bande « reprendre » du connecté */
.home-reprendre{background:var(--navy);color:#fff}
.hr-ligne{display:flex;align-items:center;gap:18px;padding:12px 20px;flex-wrap:wrap}
.hr-bonjour{font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:.02em}
.hr-item{font-size:14.5px;opacity:.92;min-width:0}
.hr-item b{color:#fff}
.hr-cta{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.03em;color:var(--navy);background:var(--vert);padding:7px 16px;border-radius:8px;text-decoration:none;white-space:nowrap}
.hr-cta:hover{background:var(--vert-h)}
.home-reprendre .hr-espace{margin-left:auto;color:#fff}

/* V2 — en ce moment dans votre saison */
.saison-liens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.saison-lien{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:22px;text-decoration:none;transition:transform .3s,box-shadow .3s}
.saison-lien:hover{transform:translateY(-6px);box-shadow:0 18px 40px -18px rgba(40,36,89,.25)}
.sl-type{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--vert-h)}
.sl-titre{font-family:var(--font-display);font-weight:800;font-size:22px;line-height:1.2;color:var(--titre)}
.saison-lien .traj{margin-top:auto}

/* V4 — nouveau sur le site */
.nouveau-liste{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.nouveau-item{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:20px;text-decoration:none;transition:transform .3s,box-shadow .3s}
.nouveau-item:hover{transform:translateY(-6px);box-shadow:0 18px 40px -18px rgba(40,36,89,.25)}
.nv-type{font-family:var(--font-display);font-weight:700;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--vert-h)}
.nv-titre{font-family:var(--font-display);font-weight:800;font-size:19px;line-height:1.25;color:var(--titre)}
.nv-quand{font-size:13.5px;color:var(--note);margin-top:auto}

/* ---------- Guides du coach (Lot 5, G1-G2) ---------- */

.guide-besoin{text-decoration:none;display:inline-block}
.guide-besoin:hover{color:var(--vert-h)}
.guide-cta{background:var(--vert-pale);border:1px solid #d3ede2;border-radius:14px;padding:26px 28px;margin:38px auto 0;max-width:720px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.guide-cta p{margin:0;flex:1 1 260px;color:var(--texte2)}
.guide-cta .btn{white-space:nowrap}
/* Nom de marque dans un bouton en capitales : la casse du mot survit
   (handXPrience, arbitrage Philippe du 22/08). */
.btn .tt-marque{text-transform:none}
.guide-suite{margin:46px auto 0;max-width:1080px}
.guide-suite h2{font-family:var(--font-display);font-weight:800;font-size:26px;color:var(--titre);margin-bottom:18px}

@media (max-width:900px){
  .saison-liens{grid-template-columns:1fr}
  .nouveau-liste{grid-template-columns:1fr 1fr}
  .home-top-exos{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .nouveau-liste{grid-template-columns:1fr}
  .home-top-exos{grid-template-columns:1fr}
  .hr-ligne{gap:10px;padding:11px 16px}
  .hr-item{display:none}
  .home-reprendre .hr-espace{margin-left:auto}
}

/* ---------- Portes utilisateur (Lot 5 × Cohérence UX, 22/07) ---------- */

.porte-carte{max-width:560px}
.porte-benefices{list-style:none;margin:0 0 22px;display:grid;gap:8px}
.porte-benefices li{position:relative;padding-left:26px;font-size:15px;line-height:1.55}
.porte-benefices li::before{content:"";position:absolute;left:0;top:5px;width:14px;height:14px;border-radius:50%;background:var(--vert-pale);border:2px solid var(--vert)}

.porte-hp{position:absolute;left:-5000px}
.porte-form .porte-champ{margin-bottom:16px;display:block}
.porte-form label,.porte-roles legend{display:block;font:700 13px var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin-bottom:6px}
.porte-form input[type=text],.porte-form input[type=email]{width:100%;border:1px solid var(--ligne);border-radius:8px;padding:12px 14px;font:400 15px var(--font-corps);color:var(--texte2);background:var(--bande)}
.porte-form input[type=text]:focus,.porte-form input[type=email]:focus{outline:2px solid var(--vert);background:#fff}
.porte-roles{border:0;padding:0;margin:0 0 16px}
.porte-champ-err input[type=text],.porte-champ-err input[type=email]{border-color:var(--rouge-err);background:var(--rouge-err-fond)}
.porte-err{display:block;color:var(--rouge-err);font-size:13.5px;margin-top:5px}
.porte-optin{margin:2px 0 18px}
.porte-optin label{display:flex;align-items:flex-start;gap:9px;text-transform:none;font:400 13.5px var(--font-corps);color:var(--texte);letter-spacing:0;line-height:1.5;cursor:pointer}
.porte-optin input{margin-top:3px;accent-color:var(--vert)}
.porte-submit{margin-bottom:14px}
.porte-submit .btn{width:100%;padding:14px}
.porte-legal{font-size:12.5px;color:var(--note);line-height:1.5}

.porte-gate-connu{background:var(--vert-pale);border:1px solid var(--vert);border-radius:8px;padding:16px 18px;margin-bottom:18px}
.porte-gate-connu p{margin-bottom:10px;font-size:14.5px}
.porte-gate-connu p:last-child{margin-bottom:0}
.porte-gate-btn{padding:11px 26px;font-size:17px}
.porte-gate-note{font-size:13px;color:var(--note)}

.porte-etapes{list-style:none;counter-reset:etape;margin:4px 0 22px;display:grid;gap:10px}
.porte-etapes li{position:relative;padding-left:38px;font-size:15px;counter-increment:etape;color:var(--note)}
.porte-etapes li::before{content:counter(etape);position:absolute;left:0;top:1px;width:26px;height:26px;border-radius:50%;border:2px solid var(--ligne);color:var(--note);font:700 14px/22px var(--font-display);text-align:center;background:#fff}
.porte-etapes li.fait{color:var(--texte)}
.porte-etapes li.fait::before{content:"✓";background:var(--vert);border-color:var(--vert);color:var(--navy)}
.porte-etapes li.encours{color:var(--texte2);font-weight:600}
.porte-etapes li.encours::before{border-color:var(--vert);color:var(--vert-h)}

.porte-texte h3{font-size:21px;margin:18px 0 8px}
.porte-texte ul{margin:0 0 14px 20px}
.porte-texte p{margin-bottom:12px}

.porte-attente{border-top:1px solid var(--ligne);margin-top:24px;padding-top:22px}
.porte-attente h2{font-size:22px;margin-bottom:6px}
.porte-attente p{font-size:14.5px;margin-bottom:14px}
.porte-attente-carte{grid-template-columns:1fr}

.porte-bienvenue .eh-doi-welcome h1{font-size:34px;margin-bottom:10px}
.porte-bienvenue .eh-doi-welcome p{margin-bottom:14px}
.porte-bienvenue .eh-doi-welcome-cta .btn,.porte-bienvenue .eh-doi-welcome .btn{box-shadow:none}
.porte-bienvenue .eh-doi-welcome-setpwd{background:var(--bande);border:1px solid var(--ligne);border-radius:8px;padding:18px 20px;margin-top:18px}
.porte-bienvenue .eh-doi-welcome-setpwd h2{font-size:21px;margin-bottom:6px}
.porte-suite{border-top:1px solid var(--ligne);margin-top:24px;padding-top:22px}
.porte-suite h2{font-size:22px;margin-bottom:12px}
.porte-suite-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.porte-suite-espace{font:600 15px var(--font-corps);color:var(--vert-h)}
.porte-suite-espace:hover{text-decoration:underline}

@media(max-width:560px){
  .porte-carte{padding:28px 20px}
  .porte-suite-actions .btn{width:100%}
}

/* ---- Bandeau newsletter (capture email — pied d'article + bas de home) ---- */
.nl-cta{background:var(--navy);color:#fff;padding:56px 0;margin-top:64px}
.nl-cta-in{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.nl-cta-txt h2{color:#fff;margin:0 0 14px;font-size:30px;line-height:1.12}
.nl-cta-txt p{margin:0;color:rgba(255,255,255,.78);font-size:17px;line-height:1.6;max-width:46ch}
.nl-form{margin:0}
.nl-champs{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.nl-champs input{flex:1 1 180px;min-width:0;padding:15px 16px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:rgba(255,255,255,.07);color:#fff;font:400 16px/1.3 var(--font-corps)}
.nl-champs input::placeholder{color:rgba(255,255,255,.5)}
.nl-champs input:focus{outline:none;border-color:var(--vert);background:rgba(255,255,255,.11)}
.nl-champs .btn{flex:0 0 auto;box-shadow:none}
.nl-preuve{margin:14px 0 0;color:rgba(255,255,255,.6);font-size:14px}
.nl-msg{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 16px;padding:12px 16px;border-radius:8px;font-size:15px;line-height:1.5}
.nl-msg-exists{background:rgba(89,206,168,.14);border:1px solid rgba(89,206,168,.4);color:#fff}
.nl-msg-exists a{color:var(--vert);font-weight:700;text-decoration:underline}
.nl-msg-err{background:rgba(224,71,91,.16);border:1px solid rgba(224,71,91,.45);color:#ffd9de}
.nl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
@media(max-width:860px){
  .nl-cta{padding:40px 0;margin-top:44px}
  .nl-cta-in{grid-template-columns:1fr;gap:24px}
  .nl-cta-txt h2{font-size:25px}
  .nl-champs .btn{flex:1 1 100%}
}

/* ============================================================ Communauté (forum Asgaros) */
.communaute .com-tete{padding:46px 0 6px;max-width:840px}
.communaute .com-tete h1{font:800 clamp(34px,5vw,52px) var(--font-display);color:var(--navy);text-transform:uppercase;line-height:1.04;margin:0 0 14px}
.communaute .com-intro{color:var(--encre);opacity:.85;margin:0 0 6px;max-width:660px}
.communaute .com-retour{margin:14px 0 0}
.communaute .com-forum{padding:20px 0 70px}

/* Asgaros rend son propre h1 sur la vue d'accueil : doublon du h1 de la page. */
.communaute #af-wrapper .main-title-overview{display:none}

/* Navigation interne et recherche. Le skin Asgaros force color:#fff !important
   sur ces liens : le bandeau reste donc foncé, en navy de la charte. */
.communaute #af-wrapper{font-family:var(--font-corps);color:var(--encre)}
.communaute #af-wrapper #forum-header{background:var(--navy);border:0;border-radius:14px;padding:12px 16px}
.communaute #af-wrapper #forum-navigation a,
.communaute #af-wrapper #forum-navigation-mobile a{font:700 15px var(--font-display);text-transform:uppercase;letter-spacing:.05em;border-left-color:rgba(255,255,255,.22);border-radius:8px}
.communaute #af-wrapper #forum-navigation a:hover{background:rgba(255,255,255,.12)}
.communaute #af-wrapper #forum-search input{border:1px solid rgba(40,36,89,.16);border-radius:8px;padding:7px 12px;font-family:var(--font-corps)}
.communaute #af-wrapper #forum-search input:focus{border-color:var(--vert);outline:none}
.communaute #af-wrapper #forum-breadcrumbs{margin:14px 0 6px;font-size:14px;color:var(--encre);opacity:.75}

/* Bandeaux de catégories et lignes de forums. */
.communaute #af-wrapper .title-element{background:var(--navy);color:#fff;font:700 17px var(--font-display);text-transform:uppercase;letter-spacing:.06em;border:0;border-radius:10px 10px 0 0;padding:12px 18px}
.communaute #af-wrapper .title-element .last-post-headline{color:rgba(255,255,255,.65)}
.communaute #af-wrapper .content-container{border:1px solid rgba(40,36,89,.1);border-top:0;border-radius:0 0 10px 10px;margin-bottom:26px;background:#fff}
.communaute #af-wrapper .content-element{border-bottom:1px solid rgba(40,36,89,.07)}
.communaute #af-wrapper .content-element:last-child{border-bottom:0}
.communaute #af-wrapper .forum-status i{color:var(--vert-h)}
.communaute #af-wrapper a.forum-title{font:700 20px var(--font-display);color:var(--navy)}
.communaute #af-wrapper a.forum-title:hover{color:var(--vert-h)}
.communaute #af-wrapper .forum-description{color:var(--encre);opacity:.8}
.communaute #af-wrapper .forum-stats{color:var(--encre);opacity:.55}

/* Titres internes (sujet, forum) rendus par Asgaros. */
.communaute #af-wrapper .main-title{font:800 clamp(24px,3.6vw,34px) var(--font-display);color:var(--navy);text-transform:uppercase;line-height:1.08}

/* Boutons (répondre, nouveau sujet, éditeur). */
.communaute #af-wrapper .button{background:var(--vert);color:var(--navy);border:0;border-radius:8px;padding:10px 18px;font:800 16px var(--font-display);text-transform:uppercase;letter-spacing:.04em}
.communaute #af-wrapper .button:hover{background:var(--vert-h);color:#fff}
.communaute #af-wrapper .button.button-red{background:#fff;color:#b3403f;border:2px solid #d9807f}
.communaute #af-wrapper .button.button-red:hover{background:#b3403f;color:#fff}

/* Messages d'un sujet. */
.communaute #af-wrapper .post-element{border:1px solid rgba(40,36,89,.1);border-radius:14px;margin-bottom:18px;background:#fff}
.communaute #af-wrapper .forum-post-header-container{background:var(--bande);border-radius:10px 10px 0 0}
.communaute #af-wrapper .post-author-block-name a{font:700 17px var(--font-display);color:var(--navy)}
.communaute #af-wrapper a.highlight-admin{color:var(--vert-h)}
.communaute #af-wrapper .post-message{font-family:var(--font-corps);color:var(--encre);line-height:1.65}
.communaute #af-wrapper .reaction .reaction-icon{color:var(--vert-h)}
.communaute #af-wrapper .report-link{color:var(--encre);opacity:.45}
.communaute #af-wrapper .report-link:hover{opacity:.9;color:#b3403f}

/* Mobile : navigation repliée gérée par Asgaros ; la recherche du plugin est
   flottante/absolue et sort du bandeau -> remise dans le flux, pleine largeur. */
@media (max-width:720px){
	.communaute .com-tete{padding-top:30px}
	.communaute #af-wrapper #forum-header{padding:12px}
	.communaute #af-wrapper #forum-search{position:static;float:none;width:100%;margin:10px 0 0}
	.communaute #af-wrapper #forum-search form{width:100%}
	.communaute #af-wrapper #forum-search input{width:100%;box-sizing:border-box}
	.communaute #af-wrapper #forum-search .search-icon{display:none}
}

/* ============================================================ Mes séances (surface Lot 5, 26/07/2026) */

.sea-liste{display:flex;flex-direction:column;gap:12px;margin:14px 0 26px}
/* Tuile de séance — LA forme unique des listes (31/08, 5e passe) : fond blanc
   détaché du fond de page, date en tête, titre dessous, gestes à droite en
   bout de tuile ; les formulaires du bloc de gestes passent sous la tuile. */
.sea-tuile-seance{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:14px 18px}
.sea-tuile-seance.est-prete{border-left:4px solid var(--vert)}
.sea-ts-corps{flex:1 1 260px;min-width:0}
.sea-ts-date{display:block;font:700 12.5px var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--navy);margin-bottom:3px}
.sea-ts-titre{display:block;font:700 18px/1.25 var(--font-display);color:var(--titre);text-decoration:none}
a.sea-ts-titre:hover{color:var(--vert-h)}
.sea-ts-meta{display:block;font-size:13.5px;color:var(--note);margin-top:2px}
.sea-ts-fam{margin-top:9px;max-width:190px}
.sea-tuile-seance>.sea-gestes{flex:0 0 auto;margin:0 0 0 auto}
.sea-tuile-seance>.sea-gestes .sea-menu{margin-left:0}
.sea-tuile-seance>.sea-ranger-form,.sea-tuile-seance>.sea-debrief-form{flex:1 0 100%}
/* Créneau du programme encore sans séance, dans la liste « À venir » (retour
   Philippe 31/08) : fond distinct du blanc et bord pointillé — la tuile dit
   « pas encore prête », son geste compose la séance à cette date. */
.sea-tuile-seance.est-a-preparer{background:var(--vert-pale);border:1.5px dashed var(--vert)}
.sea-gestes{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.sea-gestes button{background:none;border:0;padding:0;font:600 14px var(--font-corps);color:var(--navy);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.sea-gestes .sea-supprimer{color:#b0433f}
.sea-debrief-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--ligne)}
/* Toute classe qui pose un display doit rendre l'attribut hidden : sans ces
   deux règles, le bilan s'affichait sur les séances à venir et « Voir plus
   d'exercices » serait apparu sans rien à charger (mesuré au rendu 28/07). */
.sea-debrief-form[hidden]{display:none}
.sea-btn-second[hidden]{display:none}
.sea-debrief-note{flex:1 1 100%;min-width:180px;border:1px solid var(--ligne);border-radius:8px;padding:8px 10px;font:400 14px var(--font-corps);line-height:1.45;resize:vertical}
.sea-debrief-err{display:block;flex:1 0 100%;color:var(--rouge-err);font-size:13.5px}
.sea-debrief-err[hidden]{display:none}
.chip-btn{border:1.5px solid var(--ligne);background:#fff;border-radius:20px;padding:7px 14px;font:600 14px var(--font-corps);color:var(--texte2);cursor:pointer}
.chip-btn.actif{border-color:var(--navy);background:var(--navy);color:#fff}
.sea-vide{border:1px dashed var(--ligne);border-radius:14px;padding:16px 18px;margin:14px 0;background:var(--bande)}

/* ---- Liste des séances : tuiles par moment, cartes parlantes, saison ---- */
/* La tête navy (direction 1 du 30/07) est TOMBÉE le 14/08 : Philippe a retenu
   les tuiles par moment après comparaison sur rendu réel, ses règles partent
   avec elle. */

/* Le fil « À venir » (trajectoire pointillée) est TOMBÉ le 31/08 (5e passe) :
   les séances à venir rendent la tuile unique, ses règles partent avec lui. */
.sea-actions-tete{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:0 0 22px}
.sea-gestes .sea-geste-fort{font:700 14px var(--font-corps);color:var(--navy);background:var(--vert-pale);border:1px solid var(--vert);border-radius:20px;padding:6px 14px;text-decoration:none}
.sea-geste{font:600 14px var(--font-corps);color:var(--navy);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;background:none;border:0;padding:0;cursor:pointer}
.sea-gestes{align-items:center}
/* Dupliquer et supprimer sous un menu replié : le geste destructeur quitte le
   niveau du geste courant (remodelage du 28/07 (nuit)). */
.sea-menu{position:relative;margin-left:auto}
.sea-menu>summary{list-style:none;cursor:pointer;color:var(--note);font:700 16px var(--font-corps);padding:2px 10px;border-radius:8px;line-height:1}
.sea-menu>summary::-webkit-details-marker{display:none}
.sea-menu>summary:hover{background:var(--bande);color:var(--navy)}
.sea-menu-corps{position:absolute;right:0;top:26px;z-index:5;background:#fff;border:1px solid var(--ligne);border-radius:14px;box-shadow:0 14px 30px -10px rgba(40,36,89,.3);padding:6px;display:flex;flex-direction:column;min-width:140px}
.sea-menu-corps button{background:none;border:0;text-align:left;padding:9px 12px;font:600 14px var(--font-corps);color:var(--navy);cursor:pointer;border-radius:8px}
.sea-menu-corps button:hover{background:var(--bande)}
.sea-menu-corps .sea-supprimer{color:#b0433f}
.sea-note-liste{font-size:13.5px;color:var(--note);margin:-14px 0 26px}
.sea-note-liste a{color:var(--navy);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}

/* Trois axes de rangement (29/07) : la saison encadre, l'équipe range, le temps
   ordonne. Chaque commande ne se montre qu'une fois utile — une seule saison
   n'affiche aucun sélecteur, une seule équipe aucun onglet. */
.sea-liste-entete{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.sea-saison-choix{display:flex;align-items:center;gap:8px;margin-top:6px}
.sea-saison-choix label{font:600 13px var(--font-corps);color:var(--note)}
.sea-saison-choix select{border:1px solid var(--ligne);border-radius:8px;padding:7px 10px;font:600 14px var(--font-corps);color:var(--navy);background:#fff}

/* Bandeau de filtres (2e retour du 31/08) : la grammaire du sélecteur
   d'exercices sur la production de l'entraîneur — équipe, état et recherche
   dans un seul cadre, résultats dessous, jonction visée par le JS. Les puces
   réutilisent .chip-btn (grammaire de l'espace) et .sel-chips (le rang du
   sélecteur), rien de refabriqué. */
/* Zone en deux colonnes (3e retour du 31/08) : la carte de filtres à gauche,
   figée au défilement SANS défilement interne (elle tient dans l'écran, ses
   groupes étant courts), les séances à droite — la géométrie du sélecteur. */
.sea-zone{display:grid;grid-template-columns:264px minmax(0,1fr);gap:24px;align-items:start}
.sea-resultats{min-width:0}
.sea-resultats>.sea-etat-titre:first-child{margin-top:0}
.sea-filtres-carte{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:16px 18px 18px;display:flex;flex-direction:column;gap:14px;position:sticky;top:88px}
.sea-filtres-tete{display:none}
.sea-filtres-ligne{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.sea-filtres-lbl{font:700 13px var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--navy)}
.sea-filtres-carte .chip-btn{text-decoration:none;display:inline-block}
.sea-filtres-carte .chip-btn .n{font-size:12px;color:var(--note);background:var(--bande);border-radius:11px;padding:1px 8px;margin-left:4px}
.sea-filtres-carte .chip-btn.actif .n{background:var(--vert-pale);color:var(--navy)}
.sea-filtres-carte .sea-rech{width:100%}
.sea-filtres-carte .sea-rech input[type="search"]{min-width:0;width:100%}
.sea-filtres-pied{margin:0;padding-top:12px;border-top:1px dashed var(--ligne);font:600 13.5px var(--font-corps)}
.sea-filtres-pied a{color:var(--navy);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.sea-filtres-btn{display:none}
/* Confirmation de suppression en petite modale (31/08) : grammaire .modal du
   site, dialogue resserré. */
.sea-suppr-modale .modal-dialog{max-width:400px;margin-top:18vh}
.sea-suppr-modale .modal-content{padding:24px}
.sea-suppr-question{font:600 15.5px var(--font-corps);color:var(--navy);margin:0}
.sea-suppr-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.sea-suppr-actions button{border-radius:8px;padding:10px 16px;font:600 14px var(--font-corps);cursor:pointer;border:0}
.sea-suppr-oui{background:#b0433f;color:#fff}
@media(max-width:960px){
  /* Même bascule que le sélecteur : la carte de filtres passe derrière un
     bouton « Filtres » et s'ouvre en plein écran. */
  .sea-zone{display:block}
  .sea-filtres-btn{display:block;width:100%;background:var(--navy);color:#fff;border:0;border-radius:8px;padding:13px;font:800 16px var(--font-display);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;margin-bottom:16px}
  .sea-filtres-carte{display:none;position:fixed;inset:0;z-index:80;border-radius:0;overflow-y:auto;padding:18px 20px 90px}
  .sea-filtres-carte.ouvert{display:flex}
  .sea-filtres-tete{display:flex;justify-content:space-between;align-items:center}
  .sea-filtres-tete p{font:800 18px var(--font-display);text-transform:uppercase;margin:0;color:var(--navy)}
  .sea-filtres-fermer{background:none;border:0;font-size:28px;line-height:1;color:var(--navy);cursor:pointer}
}

.sea-eq{color:var(--navy);font-weight:600}

.sea-rech{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sea-rech input[type="search"]{border:1px solid var(--ligne);border-radius:8px;padding:9px 12px;font:400 14px var(--font-corps);min-width:210px}
.sea-rech input[type="search"]:focus{outline:2px solid var(--vert);outline-offset:1px}

.sea-pages{display:flex;align-items:center;justify-content:center;gap:16px;margin:-10px 0 26px;font:600 14px var(--font-corps)}
.sea-pages a{color:var(--navy);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.sea-pages span{color:var(--note);font-weight:400}

/* Toute règle de display s'accompagne de son [hidden] dans le MÊME passage
   (croix morte du 26/07, bilan du 28/07). */
.sea-ranger-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--ligne)}
.sea-ranger-form[hidden]{display:none}
.sea-ranger-form>span{font:600 14px var(--font-corps);color:var(--texte2)}
.sea-ranger-form input[type="text"]{flex:1;min-width:150px;border:1px solid var(--ligne);border-radius:8px;padding:8px 10px;font:400 14px var(--font-corps)}

@media (max-width:760px){
  .sea-liste-entete{flex-direction:column;gap:4px}
  .sea-rech{width:100%}
  .sea-rech input[type="search"]{flex:1;min-width:0}
}

.sea-saison{font-size:15px;color:var(--texte2);border-top:1px solid var(--ligne);padding-top:14px;margin-top:8px}
.sea-saison b{font:800 19px var(--font-display);color:var(--titre)}
/* Calendrier replié : il occupait 400 px au milieu de la page pour une seule
   séance datée (mesuré le 28/07 (nuit)). */
/* Le calendrier replié est TOMBÉ le 31/08 (5e passe) : il vit ouvert, en
   section pleine largeur sous le bloc filtres + séances. */
.sea-cal-section{margin:26px 0 8px}
.sea-cal-section>.sea-etat-titre{margin-bottom:10px}

/* ---- Choix de la séance type au démarrage ---- */
.sea-depart{position:relative}
/* Toute règle de display s'accompagne de son [hidden] dans le MÊME passage :
   sans elle le panneau serait ouvert au chargement (piège tombé deux fois sur
   cette surface, 26/07 puis 28/07). */
.sea-depart-choix{position:absolute;left:0;top:calc(100% + 8px);z-index:20;background:#fff;border:1px solid var(--ligne);border-radius:14px;box-shadow:0 18px 40px -12px rgba(40,36,89,.35);padding:8px;min-width:260px;display:flex;flex-direction:column}
.sea-depart-choix[hidden]{display:none}
.sea-depart-titre{font:700 13px var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--note);margin:4px 10px 6px}
.sea-depart-choix a{padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--navy);font:600 15px var(--font-corps)}
.sea-depart-choix a:hover{background:var(--bande)}

/* ---- Écran « Mes séances types » ---- */
.sea-type{border:1px solid var(--ligne);border-radius:14px;background:#fff;padding:14px 16px;margin-bottom:16px}
.sea-type-tete{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.sea-type-tete input{flex:1;min-width:140px;border:0;border-bottom:2px solid transparent;font:800 21px var(--font-display);color:var(--titre);background:transparent;padding:2px 0}
.sea-type-tete input:focus{outline:none;border-bottom-color:var(--vert)}
.sea-type-somme{font:700 15px var(--font-display);color:var(--navy);white-space:nowrap}
.sea-type-defaut{font:700 11px var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--navy);background:var(--vert-pale);border-radius:20px;padding:4px 10px;white-space:nowrap}
.sea-type-lignes{margin-bottom:10px}
.sea-type-pied{display:flex;gap:16px;align-items:center;flex-wrap:wrap;border-top:1px dashed var(--ligne);padding-top:12px}
.sea-type-pied .sea-geste[hidden]{display:none}
.sea-type-supprimer{color:#b0433f}
.sea-type-confirme{display:inline-flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--bande);border-radius:8px;padding:8px 12px;font-size:14px;color:var(--texte2)}
.sea-trame-barre{display:flex;gap:16px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--ligne);padding-top:18px;margin-top:24px}
.sea-note-alerte{color:#b0433f;font-weight:600}

/* ---- Écran « Ma séance type » ---- */
.sea-trame-somme{background:var(--bande);border-radius:14px;padding:12px 16px;font-size:15px;color:var(--texte2);margin:6px 0 18px}
.sea-trame-somme b{font:800 18px var(--font-display);color:var(--titre)}
.sea-trame-ligne{display:flex;gap:10px;align-items:center;border:1px solid var(--ligne);border-radius:14px;background:#fff;padding:10px 12px;margin-bottom:8px}
.sea-trame-ligne input[type="text"]{flex:1;min-width:120px;border:1px solid var(--ligne);border-radius:8px;padding:9px 11px;font:600 15px var(--font-corps);color:var(--titre)}
.sea-trame-ligne input[type="number"]{width:74px;border:1px solid var(--ligne);border-radius:8px;padding:9px 8px;font:400 15px var(--font-corps);text-align:right}
.sea-trame-ligne .sea-trame-min{font-size:13px;color:var(--note)}
/* Genre du temps (21/08) : icône dans le rail et l'en-tête du composeur,
   select discret ici et sur le composeur. Icône masquée quand vide (genre
   « travail », sans distinction visuelle) via :empty plutôt que [hidden] :
   son affichage dépend du contenu posé par le JS, jamais d'un attribut. */
.sea-genre-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:5px;color:var(--note);vertical-align:middle;flex:none}
.sea-genre-ico[hidden]{display:none}
.sea-genre-ico:empty{display:none}
.sea-genre-ico svg{width:16px;height:16px}
.sea-genre-choix{border:1px solid #d5daf0;border-radius:6px;padding:4px 6px;font-size:13px;color:var(--texte2);background:#fff}
.sea-genre-choix[hidden]{display:none}
.sea-trame-gestes{display:flex;gap:4px;margin-left:auto}
.sea-trame-gestes button{width:28px;height:26px;border:1px solid var(--ligne);background:#fff;border-radius:8px;color:var(--navy);cursor:pointer;font-size:13px;line-height:1;padding:0}
.sea-trame-gestes button[disabled]{opacity:.35;cursor:default}
.sea-trame-gestes .sea-trame-retire{color:#b0433f}
.sea-trame-ajout{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:14px 0 26px}

.sea-trame-ajout .sea-note-liste{margin:0}
.sea-trame-noms{margin-bottom:24px}
.sea-trame-noms[hidden]{display:none}
.sea-trame-noms-liste{display:flex;gap:8px;flex-wrap:wrap}
.sea-trame-nom{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--ligne);border-radius:20px;padding:6px 8px 6px 14px;font:600 14px var(--font-corps);color:var(--texte2)}
.sea-trame-nom button{background:none;border:0;color:var(--note);cursor:pointer;font-size:15px;line-height:1;padding:0 4px}
.sea-trame-reset{margin-top:8px}
.sea-trame-reset[hidden]{display:none}
/* Écran « Mes équipes » : mêmes cartes que les séances types (.sea-type), seules
   la ligne de rendez-vous et les suggestions ont leur grammaire propre. Chaque
   règle de display qui touche un élément porteur de [hidden] pose sa contrepartie
   dans le même passage (croix morte du 26/07, récidive du 28/07). */
.sea-rdv{display:flex;gap:10px;align-items:center;border:1px solid var(--ligne);border-radius:14px;background:#fff;padding:10px 12px;margin-bottom:8px}
.sea-rdv-jour{flex:0 0 auto;min-width:150px;border:1px solid var(--ligne);border-radius:8px;padding:9px 11px;font:600 15px var(--font-corps);color:var(--titre);background:#fff}
.sea-rdv-a{font-size:13px;color:var(--note)}
.sea-rdv-heure{flex:0 0 auto;border:1px solid var(--ligne);border-radius:8px;padding:8px 10px;font:400 15px var(--font-corps);color:var(--titre)}
.sea-eq-vide{margin:0;padding:2px 0 4px}
.sea-eq-etatvide{background:var(--bande);border-radius:14px;padding:14px 16px;font-size:15px;color:var(--texte2);margin:0 0 16px}
.sea-eq-ajout{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:14px 0 22px}
.sea-eq-ajout .sea-geste[hidden]{display:none}
.sea-eq-ajout .sea-note-liste{margin:0}
.sea-eq-sugg{margin-bottom:24px}
.sea-eq-sugg[hidden]{display:none}
.sea-eq-sugg .sea-note-liste{margin:0 0 8px}
.sea-eq-sugg-liste{display:flex;gap:8px;flex-wrap:wrap}
.sea-eq-sugg-btn{border:1px solid var(--ligne);border-radius:20px;background:#fff;padding:7px 14px;font:600 14px var(--font-corps);color:var(--navy);cursor:pointer}
.sea-eq-sugg-btn:hover{border-color:var(--vert);background:var(--vert-pale)}
.sea-eq-sugg-btn[disabled]{opacity:.4;cursor:default}
/* Écran « Mes périodes » : plage de dates + raccourcis des trois temps de la
   saison, objectifs en lignes. Toute règle de display s'accompagne de son
   [hidden] dans le MÊME passage (famille de la croix morte). */
.sea-per-dates{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;font-size:14px;color:var(--note)}
.sea-per-dates[hidden]{display:none}
.sea-per-dates input[type="date"]{border:1px solid var(--ligne);border-radius:8px;padding:7px 10px;font:400 14px var(--font-corps)}
.sea-per-racc{display:flex;gap:8px;flex-wrap:wrap}
.sea-per-racc[hidden]{display:none}
.sea-per-obj{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.sea-per-obj[hidden]{display:none}
.sea-per-obj input[type="text"]{flex:1 1 auto;min-width:0;border:1px solid var(--ligne);border-radius:8px;padding:9px 12px;font:400 15px var(--font-corps)}
.sea-per-passee{opacity:.72}
/* Composeur : rangée de cochage des objectifs de la période. Le [hidden] vit
   dans le MÊME passage que le display (famille de la croix morte). */
.sea-obj-coche{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin:2px 0 14px;font-size:14px;color:var(--note)}
.sea-obj-coche[hidden]{display:none}
.sea-obj-cases{display:inline-flex;gap:8px;flex-wrap:wrap}
/* Contreparties posées le 10/08 avec le comportement qui les exige : la rangée
   montre soit ses cases, soit la ligne qui explique leur absence, et un display
   posé sans sa contrepartie rend un masqué visible (quatre récidives payées sur
   ce fichier). */
.sea-obj-cases[hidden],.sea-obj-lbl[hidden],.sea-obj-note[hidden]{display:none}
/* La ligne explicative prend sa ligne entière plutôt que de se serrer à côté
   d'un libellé masqué, et sa longueur de lecture est bornée : au-delà d'une
   soixantaine de caractères, l'œil perd le début de la ligne suivante. Elle
   garde la grammaire de la rangée (même taille, même gris) : c'est une note,
   pas un encart d'alerte. */
.sea-obj-note{flex:1 1 100%;max-width:62ch;line-height:1.5}
.sea-obj-note .traj{white-space:nowrap}
.sea-obj-case{display:inline-flex;gap:6px;align-items:center;font:500 13.5px var(--font-corps);color:var(--texte2);cursor:pointer}
.sea-obj-case input{accent-color:var(--vert-h,#1f9d77)}
/* Précision par objectif coché (21/08) : la case puis son champ, empilés dans
   la même colonne. Le [hidden] vit dans le même passage que le display, même
   règle que le reste de la rangée. */
.sea-obj-item{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.sea-obj-item[hidden]{display:none}
.sea-obj-prec{width:260px;max-width:100%;border:1px solid #d5daf0;border-radius:6px;padding:6px 8px;color:var(--texte2)}
.sea-obj-prec[hidden]{display:none}
/* Bilan : la rangée d'objectifs prend sa ligne dans le formulaire. Même
   passage, même contrepartie [hidden]. */
.sea-debrief-obj{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:1 0 100%}
.sea-debrief-obj[hidden]{display:none}
/* Second rang d'un appel à l'action : la géométrie de .btn sans le vert — un
   seul bouton vert par écran (décision 30/07). */
.btn.btn-sobre{background:#fff;color:var(--navy);border:2px solid var(--navy);box-shadow:none;padding:13px 30px}
.btn.btn-sobre:hover{background:var(--navy);color:#fff;transform:none;box-shadow:none}
/* Compteur des onglets d'équipe (maquette : « Sénior F 9 »). */
/* Ce que vous travaillez en ce moment : barres de LONGUEUR, jamais anneaux ni
   jauges (préattentif : la longueur quantifie). [hidden] du même passage. */
/* Tuiles par moment (14/08) : grammaire du tableau de bord REPRISE
   (.app-apercu, .app-carte-visu, .visu-*), le moment en surtitre, la tuile de
   saison en bleu très pâle dérivé du navy. Le bloc « Ce que vous travaillez »
   est absorbé par la tuile « Cette saison », ses règles partent avec lui. */
.sea-moments{margin-bottom:6px}
.sea-moment-lbl{font:700 11px var(--font-display);text-transform:uppercase;letter-spacing:.13em;color:var(--vert-h);display:flex;align-items:center;gap:8px}
.sea-moment-lbl::before{content:"";width:16px;height:2px;background:var(--vert-h);flex:none}
/* Hiérarchie des tuiles (3e retour du 31/08) : le descriptif est le TITRE, un
   filet le sépare du contenu, et le contenu repasse sous lui (graisse corps,
   pas de capitales — les deux niveaux ne se disputent plus). */
.sea-moment-titre{font:700 17px var(--font-display);text-transform:uppercase;color:var(--navy);line-height:1.25;padding-bottom:10px;border-bottom:1px solid var(--ligne);margin-top:-4px}
.sea-moments .app-carte-visu b{font:700 15px var(--font-corps);text-transform:none}
.sea-tete-carte{display:flex;flex-direction:column;gap:8px;background:var(--bande);border:1px solid var(--ligne);border-radius:10px;padding:12px 14px;text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}
.sea-tete-carte:hover{border-color:var(--vert);box-shadow:0 8px 18px -12px rgba(40,36,89,.3)}
.sea-tete-ouvre{font:600 13.5px var(--font-corps);color:var(--vert-h)}
.sea-moment-quand{font-size:13.5px;color:var(--note)}
.sea-moment-meta{font-size:13.5px;color:var(--texte2)}
.sea-moment-gestes{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:4px}
.sea-moment-gestes a{font:600 13.5px var(--font-corps);color:var(--texte2)}
.sea-moment-gestes a:hover{color:var(--vert-h)}
.sea-creneaux{list-style:none;margin:2px 0 0;padding:0}
.sea-creneaux li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:7px 0;border-top:1px solid var(--ligne);font-size:13.5px}
.sea-creneaux li:first-child{border-top:0}
.sea-creneaux .j{font:600 13px var(--font-corps);color:var(--titre)}
.sea-creneaux .e{color:var(--note)}
.sea-creneaux .c{margin-left:auto;font:600 13px var(--font-corps);color:var(--vert-h)}
/* Le filigrane de terrain posé ici le 14/08 était en encre BLANCHE sur ce fond
   clair, donc invisible (mesuré : le retirer ne change qu'un canal sur 255).
   Retiré le 16/08 avec l'arbitrage « le schéma n'apporte rien en arrière-plan ».
   Le calage qui l'accompagnait part avec lui : `position:relative`, le z-index
   des enfants et `overflow:hidden` ne servaient qu'à contenir et rogner ce fond
   absolu. Mesuré plutôt que supposé, les trois retirés : la tuile garde 387 px et
   la page 1666 px, au pixel près. */
.sea-tuile-saison{background:#eef0fa;border-color:#d5daf0}
.sea-sai-eq{margin-top:2px}
.sea-sai-eq + .sea-sai-eq{margin-top:10px;padding-top:10px;border-top:1px solid var(--ligne)}
.sea-sai-eq-nom{display:block;font:600 12.5px var(--font-corps);color:var(--navy);text-transform:uppercase;letter-spacing:.07em}
.sea-sai-eq-nom span{text-transform:none;letter-spacing:0;font-weight:400;color:var(--note)}
.sea-sai-obj{padding:6px 0;font-size:14px}
.sea-sai-obj .lib{display:block;color:var(--texte2);line-height:1.35}
.sea-sai-obj .bas{display:flex;align-items:center;gap:10px;margin-top:4px}
.sea-sai-obj .barre{flex:1;height:6px;border-radius:6px;background:#fff;overflow:hidden}
.sea-sai-obj .barre i{display:block;height:100%;background:var(--vert);border-radius:6px}
.sea-sai-obj .n{font:600 12.5px var(--font-corps);color:var(--texte2);white-space:nowrap}
.sea-sai-obj .n.rien{color:var(--note);font-weight:400}
.sea-sai-note{font-size:13px;color:var(--note)}
/* Section « Ma saison, mes groupes » (14/08) : listes des tuiles de réglage
   (horaires, sections de trame), rappel de fonctionnement, encart du moteur
   d'objectifs à venir. Les tuiles reprennent app-carte-visu et sea-tuile-saison. */
.sai-reg{list-style:none;margin:0;padding:0}
.sai-reg li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--ligne);font-size:14px}
.sai-reg li:first-child{border-top:0}
.sai-reg .j{font:600 13.5px var(--font-corps);color:var(--titre)}
.sai-reg .q{color:var(--note);font-size:13.5px}
.sai-rappel{margin-top:22px;padding:14px 18px;background:#fff;border:1px solid var(--ligne);border-radius:14px;font-size:14px;color:var(--texte2)}
.sai-rappel b{color:var(--navy)}
.sai-avenir{margin-top:16px;padding:16px 18px;border:1px dashed #c9cfdd;border-radius:14px;background:#fff;font-size:14px;color:var(--texte2)}
.sai-avenir b{display:block;margin-bottom:6px;font:700 14px var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--navy)}
/* L'historique en lignes est TOMBÉ le 31/08 (5e passe) : il rend la tuile
   unique, comme le fil et les cartes. */
/* Pied en trois grands chiffres (maquette). */
.sea-pied-chiffres{display:flex;gap:44px;flex-wrap:wrap;border-top:1px solid var(--ligne);padding-top:20px;margin-top:14px}
.sea-pied-chiffres[hidden]{display:none}
.sea-pied-chiffres b{font:800 36px var(--font-display);color:var(--navy);display:block;line-height:1.05}
.sea-pied-chiffres span{font-size:13.5px;color:var(--note)}
@media(max-width:700px){
  .sea-pied-chiffres{gap:26px}
  .sea-trame-ligne{flex-wrap:wrap}
  .sea-trame-ligne input[type="text"]{flex:1 0 100%}
  .sea-trame-gestes button{width:34px;height:30px}
  /* Le jour prend la ligne, l'heure et la croix se rangent dessous : en colonne,
     une base flexible réserverait de la HAUTEUR au lieu de la largeur (défaut
     mesuré le 30/07), d'où des bases à zéro et des largeurs explicites. */
  .sea-rdv{flex-wrap:wrap}
  .sea-rdv-jour{flex:1 0 100%;min-width:0}
  .sea-rdv-heure{flex:0 0 auto}
  /* La forme à panneau enveloppe le bouton dans .sea-depart, item flex qui
     serre à son contenu : sans cette largeur, le bouton fait 249 px sur les
     342 disponibles (mesuré le 22/08, défaut noté depuis le 29/07). */
  .sea-actions-tete .sea-depart{width:100%}
  .sea-actions-tete .btn{width:100%;text-align:center}
  .sea-gestes .sea-geste-fort{flex:1 0 100%;text-align:center}
  /* La tuile en colonne : le corps prend la ligne entière (base à ZÉRO, pas
     flexible — en colonne, une base flexible réserve de la HAUTEUR, défaut
     mesuré le 30/07), les gestes passent dessous. */
  .sea-tuile-seance{flex-direction:column;align-items:flex-start;gap:8px;padding:14px}
  .sea-ts-corps{flex:0 0 auto;width:100%}
  .sea-ts-fam{max-width:230px;width:100%}
  .sea-tuile-seance>.sea-gestes{margin-left:0}
}

.sea-cal{border:1px solid var(--ligne);border-radius:14px;padding:14px;margin:14px 0 26px;overflow-x:auto}
.sea-cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.sea-cal-nav b{font:700 18px var(--font-display);color:var(--titre)}
.sea-cal-nav a{text-decoration:none;color:var(--navy);font-size:18px;padding:2px 10px}
.sea-cal-grille{display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));gap:4px;min-width:340px}
.sea-cal-jour{font:700 11px var(--font-display);letter-spacing:.06em;color:var(--note);text-align:center}
.sea-cal-case{min-height:52px;border:1px solid var(--ligne);border-radius:6px;padding:3px 4px;font-size:12px}
.sea-cal-case.vide{border:0}
.sea-cal-case.auj{border-color:var(--vert);background:var(--vert-pale)}
.sea-cal-case i{font-style:normal;color:var(--note);font-size:11px}
.sea-cal-item{display:block;background:var(--navy);color:#fff;border-radius:6px;padding:2px 4px;margin-top:2px;text-decoration:none;font-size:11px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sea-cal-item.est-prete{background:var(--vert);color:var(--encre)}
/* Créneau du programme encore sans séance (5e passe) : en CONTOUR, jamais en
   plein — le plein dit « une séance existe ». */
.sea-cal-item.est-creneau{background:#fff;color:var(--navy);border:1.5px dashed var(--navy);padding:1px 4px}
.sea-cal-item.est-creneau:hover{background:var(--vert-pale)}

.sea-retour{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:14px}
/* Retour bordé (31/08, session navigations) : la petite flèche texte ne se
   remarquait pas — même forme que le bouton secondaire de l'espace
   (.sea-ajouter / .tuile-btn), une seule grammaire de retour partout. */
.sea-retour a{display:inline-block;border:1px solid var(--ligne);background:#fff;border-radius:8px;padding:8px 14px;font:600 13.5px var(--font-corps);color:var(--navy);text-decoration:none}
.sea-retour a:hover,.sea-retour a:focus-visible{border-color:var(--vert);color:var(--vert-h)}
.sea-sauve{font-size:13px;color:var(--note);display:inline-flex;align-items:center;gap:8px;text-align:right}
.sea-sauve.etat-ok{color:var(--texte2)}
.sea-sauve.etat-reprise,.sea-sauve.etat-refus{color:var(--attaque);font-weight:600}
.sea-recharger{border:1px solid currentColor;background:transparent;color:inherit;border-radius:8px;padding:2px 8px;font:600 12px var(--font-corps);cursor:pointer}
/* Feuille + repli (14/08) : l'en-tête n'est plus une carte. Le titre vit nu,
   une ligne de résumé dit ce qui est réglé, et les champs ne se déplient qu'à
   la demande (classe .ouvert — une séance neuve arrive dépliée du serveur). */
.sea-titre{width:100%;border:0;font:700 26px var(--font-display);color:var(--titre);padding:2px 0;background:transparent;text-transform:uppercase;letter-spacing:.01em}
.sea-titre:focus{outline:none;border-bottom:2px solid var(--vert)}
.sea-reglages{display:flex;gap:14px;flex-wrap:wrap}
.sea-reglages label{display:flex;flex-direction:column;gap:4px;font:600 13px var(--font-corps);color:var(--texte2)}
.sea-reglages input{border:1px solid var(--ligne);border-radius:8px;padding:8px 10px;font:400 15px var(--font-corps);min-width:90px}
.sea-reglages .sea-theme{flex:1;min-width:200px}
.sea-reglages .sea-notes{flex:1 1 100%}
.sea-reglages textarea{width:100%;border:1px solid var(--ligne);border-radius:8px;padding:10px;font:400 15px var(--font-corps)}
.sea-date-note{font:400 12px var(--font-corps);color:var(--note)}
.sea-jauge{flex:0 0 120px;height:6px;border-radius:6px;background:var(--bande);overflow:hidden}
.sea-jauge i{display:block;height:100%;background:var(--vert);transition:width .25s}
.sea-jauge i.depasse{background:var(--attaque)}
/* Le matériel vit sur la ligne de jauge : un bouton discret, la liste dépliée
   à la demande sur sa pleine largeur. */
.sea-mat-liste{font-size:13.5px;color:var(--texte2);line-height:1.55}
.sea-temoin{position:absolute;visibility:hidden;white-space:pre;left:-9999px}

/* La feuille (14/08) : les sections se séparent par un filet, l'exercice est
   une ligne au trait de sa famille, l'ajout est un lien. Les gestes se font
   discrets et reviennent au survol ou au clavier (pleine opacité sous 760px). */
.sea-section{border-top:1px solid var(--ligne);padding:14px 0 8px}
.sea-section.vide{padding:11px 0}
.sea-section.vide .sea-section-tete input{color:var(--note)}
.sea-section-tete{display:flex;align-items:baseline;gap:10px}
.sea-section-tete input{border:0;font:700 17px var(--font-display);color:var(--titre);background:transparent;text-transform:uppercase;letter-spacing:.04em;flex:0 1 auto;width:auto;min-width:40px}
.sea-section-tete input:focus{outline:none;border-bottom:1px solid var(--vert)}
.sea-section-duree{font:600 13px var(--font-corps);color:var(--note);white-space:nowrap}
/* Garder une section créée au vol (21/08) : case à cocher, remplace l'ancien
   bouton « Garder cet intitulé ». La règle [hidden] accompagne le display dans
   le MÊME passage : sans elle, la case s'afficherait sur toutes les sections
   déjà proposées (piège de l'attribut hidden écrasé, 26/07 puis 28/07). */
.sea-section-garde{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;font:600 13px var(--font-corps);color:var(--navy);white-space:nowrap;cursor:pointer}
.sea-section-garde[hidden]{display:none}
.sea-section-garde input{margin:0}
.sea-section-garde input:disabled{cursor:default}
.sea-bloc{display:flex;gap:12px;align-items:flex-start;border-left:3px solid var(--theme);padding:9px 0 9px 11px;margin-top:8px;background:transparent}
.sea-bloc img{width:72px;height:auto;border-radius:6px;flex:none}
/* Le carré d'un bloc sans visuel peut porter l'icône du genre du temps
   (21/08) : centrée, encre discrète. Le [hidden] accompagne le display dans
   le même passage. */
.sea-bloc-vide{width:72px;height:40px;border-radius:6px;background:var(--bande);flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--note)}
.sea-bloc-vide[hidden]{display:none}
.sea-bloc-vide svg{width:22px;height:22px}
.sea-bloc-txt{flex:1;min-width:0}
.sea-bloc-ligne{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.sea-bloc-ligne b{font:700 16px/1.25 var(--font-display);color:var(--titre)}
.sea-bloc-sous{display:block;font-size:12.5px;color:var(--note);margin-top:1px}
.sea-bloc-note-ajout{border:0;background:transparent;padding:0;margin-left:8px;font:500 12.5px var(--font-corps);color:var(--vert-h);cursor:pointer}
.sea-bloc-note{width:100%;border:0;font:italic 400 13.5px var(--font-corps);color:var(--texte2);padding:3px 0;background:transparent;margin-top:2px}
.sea-bloc-note[hidden]{display:none}
.sea-bloc-note:focus{outline:none;border-bottom:1px solid var(--vert)}
.sea-bloc-duree{display:inline-flex;align-items:baseline;gap:4px;font:500 13px var(--font-corps);color:var(--texte2);white-space:nowrap}
.sea-bloc-duree input{width:44px;border:0;border-bottom:1px solid var(--ligne);border-radius:0;padding:2px 0;font:600 14px var(--font-corps);color:var(--titre);text-align:center;background:transparent}
.sea-bloc-duree input:focus{outline:none;border-color:var(--vert)}
.sea-bloc-gestes{display:flex;gap:2px;opacity:.3;transition:opacity .2s}
.sea-bloc:hover .sea-bloc-gestes,.sea-bloc-gestes:focus-within{opacity:1}
.sea-bloc-gestes button{border:0;background:transparent;border-radius:8px;width:24px;height:22px;font-size:13px;color:var(--navy);cursor:pointer;line-height:1}
.sea-bloc-gestes button:hover:not(:disabled){background:var(--bande)}
/* Bouton d'ajout (21/08) : le lien gris du 14/08 ne se voyait pas sur la tuile
   (retour de navigation de Philippe) — il prend la forme bordée des boutons de
   gestes de l'espace, sans toucher au seul vert de l'écran. */
.sea-ajouter{border:1px solid var(--ligne);background:#fff;border-radius:8px;padding:8px 14px;margin:10px 0 0 98px;font:600 13.5px var(--font-corps);color:var(--navy);cursor:pointer}
.sea-ajouter:hover,.sea-ajouter:focus-visible{border-color:var(--vert);color:var(--vert-h)}
.sea-section.vide .sea-ajouter{margin:0}
.sea-section-gestes{margin-left:auto;display:flex;align-items:center;gap:2px;flex:0 0 auto;opacity:.35;transition:opacity .2s}
.sea-section:hover .sea-section-gestes,.sea-section-gestes:focus-within{opacity:1}
.sea-section-gestes button:not(.sea-section-retirer){border:0;background:transparent;border-radius:8px;width:24px;height:22px;font-size:13px;color:var(--navy);cursor:pointer;line-height:1}
.sea-section-gestes button:not(.sea-section-retirer):hover:not(:disabled){background:var(--bande)}
.sea-section-gestes button:disabled,.sea-bloc-gestes button:disabled{opacity:.3;cursor:default}
.sea-section-retirer{flex:0 0 auto;border:0;background:transparent;color:var(--note);font-size:18px;line-height:1;padding:2px 6px;border-radius:8px;cursor:pointer}
.sea-section-retirer:hover{color:var(--attaque);background:var(--bande)}
.sea-section-nouvelle{margin-bottom:8px}
/* Relogé sous les boutons de navigation sur téléphone (01/09). */
.sea-travail .sea-section-nouvelle{margin:16px 0 0}
.sea-section-ajouter{border:0;background:transparent;padding:0;font:600 14px var(--font-corps);color:var(--vert-h);cursor:pointer}
.sea-section-ajouter:hover{text-decoration:underline}
.sea-section-choix{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding:14px;border:1px solid var(--ligne);border-radius:14px;background:var(--bande)}
.sea-section-choix[hidden]{display:none}
.sea-section-choix-titre{flex:1 0 100%;margin:0 0 2px;font:600 14px var(--font-corps);color:var(--texte2)}
.sea-section-choix button{border:1px solid var(--ligne);background:#fff;border-radius:20px;padding:8px 14px;font:600 14px var(--font-corps);color:var(--navy);cursor:pointer}
.sea-section-choix button:hover,.sea-section-choix button:focus-visible{border-color:var(--vert);background:var(--vert-pale)}
.sea-section-choix .sea-section-choix-libre{border-style:dashed;color:var(--texte2)}
.sea-annuler{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding:10px 14px;border-radius:14px;background:var(--bande);border-left:3px solid var(--navy);font-size:14px;color:var(--texte2)}
.sea-annuler[hidden]{display:none}
.sea-annuler-txt{flex:1;min-width:180px}
.sea-annuler-oui{border:1px solid var(--navy);background:transparent;color:var(--navy);border-radius:8px;padding:5px 12px;font:600 13px var(--font-corps);cursor:pointer}
.sea-annuler-oui:hover{background:var(--navy);color:#fff}
.sea-annuler-non{border:0;background:transparent;color:var(--note);font-size:18px;line-height:1;padding:2px 6px;cursor:pointer}
/* Les gestes de sortie n'existent qu'une fois la séance déclarée prête : sans
   cette contrepartie, le display ci-dessus écrase l'attribut hidden du HTML et
   les trois liens s'affichent sur une séance neuve (défaut du 26/07 au 31/07). */
/* Pas de margin-top : le conteneur vit dans le bandeau flex centré, la marge
   héritée de son ancienne place sous la jauge désalignait les trois boutons
   (signalé par Philippe le 01/09). */
.sea-sortie-gestes{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.sea-sortie-gestes[hidden]{display:none}
/* Fond navy : le texte passe en blanc, sans quoi il hérite du navy de .btn
   (prévu pour le fond vert) et le bouton se rend en rectangle sombre vide. */
.sea-btn-second{background:var(--navy);color:#fff}

/* ---------- Composeur en écran plein, trois colonnes (17/08) ----------
   Forme arrêtée par Philippe sur la maquette du 17/08. Le découpage en tuiles
   est celui du Concept 01, repris tel quel ; l'identité reste celle d'EH.
   La grammaire est celle des tuiles de l'espace (fond blanc, filet, rayon 14),
   reprise et jamais refabriquée. */
.sea-bandeau{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.sea-retour-lien{display:inline-block;border:1px solid var(--ligne);background:#fff;border-radius:8px;padding:8px 14px;font:600 13.5px var(--font-corps);color:var(--navy);text-decoration:none}
.sea-retour-lien:hover,.sea-retour-lien:focus-visible{border-color:var(--vert);color:var(--vert-h)}
.sea-bandeau-gestes{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sea-plein{display:grid;grid-template-columns:240px minmax(0,1fr) 320px;gap:20px;align-items:start}

.sea-rail,.sea-travail,.sea-mat-tuile,.sea-raccourcis{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:16px}
.sea-tuile-lbl{display:block;font:700 11.5px var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--note);margin-bottom:10px}

/* Le rail des temps : une seule tuile, qui suit le défilement. Les entrées sont
   compactes (arbitrage du 17/08 : 7 px, l'aération d'avant est abandonnée),
   parce que dix entrées et treize lignes de texte doivent tenir dans la fenêtre. */
.sea-rail{position:sticky;top:88px}
.sea-rail-entree{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;border:0;background:transparent;padding:7px 8px;border-radius:8px;cursor:pointer;color:var(--texte2);font:600 14px var(--font-corps);line-height:1.25}
.sea-rail-entree:hover{background:var(--bande)}
.sea-rail-entree.actif{background:var(--vert-pale);color:var(--navy)}
.sea-rail-entree.vide .sea-rail-nom{color:var(--note);font-weight:500}
.sea-rail-entree.fait .sea-rail-nom::before{content:"\2713\00a0";color:var(--vert-h)}
.sea-rail-nom{flex:1;min-width:0}
.sea-rail-duree{flex:none;font:500 12.5px var(--font-corps);color:var(--note)}
.sea-rail-cadrer{border-bottom:1px solid var(--ligne);margin-bottom:6px;padding-bottom:10px}
.sea-rail-gestes{display:flex;gap:4px;padding:2px 8px 8px}
.sea-rail-gestes button{border:1px solid var(--ligne);background:#fff;border-radius:8px;width:30px;height:26px;cursor:pointer;color:var(--texte2);line-height:1}
.sea-rail-gestes button[disabled]{opacity:.35;cursor:default}
.sea-rail-pied{margin-top:12px;padding-top:12px;border-top:1px solid var(--ligne);font-size:13px;color:var(--texte2);display:flex;flex-direction:column;gap:6px}
/* En COLONNE, le `flex:0 0 120px` de la jauge réserve 120 px de HAUTEUR et
   non de largeur : elle rendait un pavé vert de 200 x 110 px au pied du
   rail (piège du 30/07, mesuré à l'écran le 17/08). */
.sea-rail-pied .sea-jauge{flex:none;width:100%;height:6px}

/* La colonne de travail : le temps courant, et lui seul. */
.sea-travail-tete{display:flex;flex-direction:column;gap:2px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--ligne)}
.sea-travail-rang{font:700 11.5px var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--note)}
.sea-travail-titre{font:800 22px var(--font-display);text-transform:uppercase;color:var(--titre);line-height:1.15}
.sea-travail-pied{display:flex;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--ligne)}
.sea-travail-pied button[disabled]{opacity:.35;cursor:default}

/* « Cadrer » : les réglages portent leur libellé au-dessus (trait 6). */
/* La zone de saisie du cadrage se distingue de la zone de création de
   l'étape, qui reste blanche (retour mobile du 31/08, variante tuile
   bleue arbitrée sur captures le 01/09) : les valeurs de la tuile de
   saison, aucune couleur nouvelle. */
.sea-cadrer{display:flex;flex-direction:column;gap:16px;background:#eef0fa;border:1px solid #d5daf0;border-radius:8px;padding:16px}
.sea-cadrer[hidden]{display:none}
.sea-cadrer-nom{display:flex;flex-direction:column;gap:4px;font:600 13px var(--font-corps);color:var(--texte2)}
/* Le champ n'est plus le titre de l'écran : il porte son libellé au-dessus
   comme les autres réglages (trait 6), donc il descend d'un cran. */
.sea-cadrer-nom .sea-titre{font-size:20px;border:1px solid var(--ligne);border-radius:8px;padding:8px 10px}
.sea-cadrer-nom .sea-titre:focus{border-color:var(--vert);border-bottom-width:1px}
.sea-champ{display:flex;flex-direction:column;gap:6px}
.sea-champ-lbl{font:600 13px var(--font-corps);color:var(--texte2)}
.sea-segments{display:flex;gap:6px;flex-wrap:wrap}
.sea-segments button{border:1px solid var(--ligne);background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;font:600 14px var(--font-corps);color:var(--texte2)}
.sea-segments button:hover{border-color:var(--navy)}
.sea-segments button.actif{background:var(--navy);border-color:var(--navy);color:#fff}
.sea-creneau-libre{display:flex;flex-direction:column;gap:4px;font:600 13px var(--font-corps);color:var(--texte2);max-width:220px}
.sea-creneau-libre[hidden]{display:none}

/* L'aide vit dans son encart, séparée du formulaire (trait 8). */
.sea-conseil{background:var(--vert-pale);border-radius:14px;padding:12px 14px;margin-top:16px;font-size:14px;color:var(--texte2)}
.sea-conseil[hidden]{display:none}

/* La colonne de droite : le résumé, le matériel, les raccourcis. */
.sea-cote{display:flex;flex-direction:column;gap:14px}
.sea-recap{background:var(--navy);color:#fff;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:4px}
.sea-recap-lbl{font:700 11.5px var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--vert)}
.sea-recap-titre{font:800 19px var(--font-display);text-transform:uppercase;line-height:1.15;margin-bottom:2px}
.sea-recap-quand,.sea-recap-qui,.sea-recap-theme{font-size:14px;color:#d7d9e8}
.sea-recap-chiffre{font-size:13.5px;color:#b9bcd4}
.sea-mat-tuile{background:#eef0fa;border-color:#d5daf0}
.sea-mat-tuile[hidden]{display:none}
.sea-raccourcis{display:flex;flex-direction:column;gap:8px}
.sea-raccourcis a{color:var(--vert-h);font:600 14px var(--font-corps)}

@media (max-width:1180px){
  /* Le résumé passe sous le travail avant que les colonnes ne s'écrasent. */
  .sea-plein{grid-template-columns:220px minmax(0,1fr)}
  .sea-cote{grid-column:2/-1;flex-direction:row;flex-wrap:wrap}
  .sea-cote>*{flex:1 1 260px}
}
@media (max-width:760px){
  .sea-plein{grid-template-columns:1fr;gap:14px}
  .sea-cote{grid-column:1/-1;flex-direction:column}
  /* En colonne, le flex:1 1 260px posé à 1180 pour la rangée devient une
     HAUTEUR réservée de 260 px par tuile (piège du 30/07, signalé par
     Philippe le 01/09 : « Cette séance », « Matériel » et « Raccourcis »
     ne s'adaptaient pas à leur contenu). */
  .sea-cote>*{flex:0 0 auto}
  /* La tuile du rail disparaît sur téléphone (arbitrage Philippe 01/09 :
     elle se confondait avec l'étape courante) : on navigue par les boutons
     Étape précédente/suivante, l'ajout de section est relogé par le JS sous
     eux, la jauge vit déjà dans le pavé récapitulatif. Les règles pastilles
     du 16/08 sont parties avec elle. */
  .sea-rail{display:none}
  /* Trois boutons pleine largeur empilés poussaient le composeur sous la ligne
     de flottaison : ils tiennent sur une ligne, à leur taille. */
  .sea-bandeau-gestes{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto}
  .sea-bandeau-gestes .btn{flex:0 0 auto;padding:10px 14px;font-size:13px}
  .sea-sortie-gestes{display:flex;gap:8px;flex:0 0 auto}
  .sea-bandeau-gestes{margin-left:0;width:100%}
  .sea-travail-pied{flex-direction:column}
}
/* Pendant la composition, les onglets du bas laissent la place à l'écran
   (comme La Tablette) : sur 390 px, chaque bande compte. */
@media (max-width:960px){
  .app-plein .app-tabs,.app-plein .app-plus{display:none}
  .app-plein{padding-bottom:24px}
}

.sea-biblio{position:fixed;inset:0;background:rgba(29,26,64,.55);z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px}
.sea-biblio[hidden]{display:none}
.sea-biblio-carte{position:relative;background:#fff;width:min(720px,100%);max-height:88vh;border-radius:14px;display:flex;flex-direction:column;overflow:hidden}
.sea-biblio-tete{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--ligne)}
.sea-biblio-tete b{font:700 18px var(--font-display);color:var(--titre)}
.sea-biblio-tete button{border:0;background:none;font-size:26px;color:var(--note);cursor:pointer;line-height:1}
.sea-biblio-onglets{display:flex;gap:6px;padding:10px 18px 0}
.sea-biblio-onglets button{border:0;background:var(--bande);border-radius:8px 8px 0 0;padding:9px 14px;font:600 14px var(--font-corps);color:var(--texte2);cursor:pointer}
.sea-biblio-onglets button.actif{background:var(--navy);color:#fff}
.sea-biblio-corps{padding:14px 18px;overflow-y:auto}
.sea-biblio-corps label{display:block;margin-bottom:10px;font:600 13px var(--font-corps);color:var(--texte2)}
.sea-biblio-corps label input{display:block;width:100%;margin-top:4px;border:1px solid var(--ligne);border-radius:8px;padding:9px 10px;font:400 15px var(--font-corps)}
/* Garder ce temps pour le retrouver ici (21/08) : la case est une ligne à
   part, jamais le label bloc pleine largeur des champs texte ci-dessus — sans
   cette redéfinition, l'entraîneur verrait une case étirée sur toute la
   largeur du panneau. */
.sea-biblio-corps label.sea-libre-garder{display:flex;align-items:center;gap:8px;font:400 14px var(--font-corps);color:var(--texte2)}
.sea-biblio-corps label.sea-libre-garder input{display:inline-block;width:auto;margin:0;flex:none}
/* Temps gardés de la bibliothèque (21/08), proposés au-dessus du formulaire.
   La règle [hidden] accompagne le display dans le MÊME passage : liste vide
   sur un compte qui n'a rien gardé. */
.sea-libre-gardes{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.sea-libre-gardes[hidden]{display:none}
.sea-libre-garde{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--ligne);border-radius:20px;padding:6px 8px 6px 14px;font:600 14px var(--font-corps);color:var(--texte2);background:#fff}
.sea-libre-garde button{background:none;border:0;cursor:pointer;font:inherit;color:inherit;padding:0}
.sea-libre-garde .sea-libre-garde-retire{color:var(--note);font-size:15px;line-height:1;padding:0 4px}
.sea-filtres{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
/* Filtres du sélecteur dans la bibliothèque (01/09) : joueurs et temps en
   lignes ouvertes, niveau / âge / poste repliés — chevron du sel-groupe,
   chips de la bibliothèque. */
.sea-filtre-ligne{align-items:center}
.sea-filtre-lbl{flex:0 0 auto;font:600 13px var(--font-corps);color:var(--texte2)}
.sea-biblio-groupe > summary{display:flex;align-items:center;gap:8px;font:600 13px var(--font-corps);color:var(--navy);cursor:pointer;list-style:none;padding:2px 0}
.sea-biblio-groupe > summary::-webkit-details-marker{display:none}
.sea-biblio-groupe > summary::after{content:"";width:7px;height:7px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(45deg);transition:transform .2s;flex:none}
.sea-biblio-groupe[open] > summary::after{transform:rotate(225deg)}
.sea-biblio-groupe > .sea-chips{margin-top:6px}
.sea-filtres input[type="search"]{border:1px solid var(--ligne);border-radius:8px;padding:9px 12px;font:400 15px var(--font-corps)}
.sea-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.sea-chips select{border:1px solid var(--ligne);border-radius:8px;padding:7px 8px;font:600 13.5px var(--font-corps);color:var(--texte2)}
.sea-resultats{display:flex;flex-direction:column;gap:8px}
.sea-resultat{display:flex;gap:12px;align-items:center;border:1px solid var(--ligne);border-radius:14px;padding:8px 10px}
/* Liseré aux couleurs des 6 familles (arbitrage Philippe du 22/08) : a-fam
   n'est posée par le JS qu'avec une classe theme-*, jamais seule. */
.sea-resultat.a-fam{border-left:4px solid var(--theme)}
.sea-resultat img{width:74px;height:auto;border-radius:6px;flex:none}
.sea-resultat > div{flex:1;min-width:0}
.sea-resultat b{display:block;font:700 15px/1.3 var(--font-display);color:var(--titre)}
.sea-resultat span{font-size:12.5px;color:var(--note)}
.sea-resultat .btn{padding:8px 14px;font-size:14px;flex:none}
.sea-resultat-loupe{border:0;background:none;padding:0;cursor:zoom-in;flex:none;border-radius:8px;line-height:0}
.sea-resultat-loupe:focus-visible{outline:3px solid var(--vert);outline-offset:2px}
.sea-resultat-loupe img{display:block}
/* L'échafaudage qui dessinait une fiche autour du schéma (5 règles posées le
   10/08) est RETIRÉ le 11/08 : le serveur envoie désormais l'image de la fiche
   réelle, produite par La Tablette à la sauvegarde. Un cadre de fiche autour
   d'une fiche n'a plus de sens, et les règles d'affichage des vignettes sont
   déjà communes aux deux origines (.sea-resultat img, .sea-bloc img). */
/* Aperçu d'un exercice par-dessus les résultats (la carte est le contexte positionné) */
.sea-biblio-apercu{position:absolute;inset:0;background:#fff;z-index:5;display:flex;flex-direction:column;overflow-y:auto;padding:14px 18px 18px;border-left:4px solid var(--theme)}
.sea-biblio-apercu[hidden]{display:none}
.sea-biblio-apercu > button{border:0;background:none;font-size:26px;color:var(--note);cursor:pointer;line-height:1;align-self:flex-end;flex:none}
.sea-biblio-apercu-corps{display:flex;flex-direction:column;gap:10px}
.sea-biblio-apercu-visuel{width:min(420px,100%);height:auto;border-radius:14px;align-self:center}
.sea-biblio-apercu-titre{font:700 18px var(--font-display);color:var(--titre)}
.sea-biblio-apercu-meta{font-size:13px;color:var(--note)}
.sea-biblio-apercu-bloc b{display:block;font:700 14px var(--font-display);color:var(--titre);margin-bottom:4px}
.sea-biblio-apercu-bloc p{margin:0;font-size:14.5px;color:var(--texte2);line-height:1.5}
.sea-biblio-apercu-bloc ol,.sea-biblio-apercu-bloc ul{margin:0;padding-left:20px;font-size:14.5px;color:var(--texte2);line-height:1.5}
.sea-biblio-apercu-metas{margin:0;font-size:13px;color:var(--note);line-height:1.5}
.sea-biblio-apercu-corps > .btn{align-self:flex-start;margin-top:4px}
.sea-tablette-note{font-size:13px;color:var(--note);margin-top:10px}
.sea-plus{text-align:center;margin-top:10px}
body.sea-biblio-ouverte{overflow:hidden}

/* sea-salle-bloc, sea-salle-fiche-titre, sea-salle-fiche-liste : encore
   utilisées par la tuile « Objectifs de la séance » du mode salle
   (inc/mode-salle.php, eh_theme_mode_salle_plan) — conservées telles quelles
   (22/08). Les autres classes sea-salle-* (tete, section, bloc header/img,
   note, fiche, metas) ne servaient qu'à l'ancien déroulé vertical de la vue
   salle, retiré à l'étape 3 : zéro appelant restant, retirées (R9). */
.sea-salle-bloc{border:1px solid var(--ligne);border-radius:14px;padding:14px 16px;margin-bottom:12px}
/* Bilan en fin de mode salle (30/08) : bloc blanc sous les temps du plan, le
   formulaire partagé y vit ouvert — son filet haut de carte n'a pas de sens ici. */
.sea-salle-bilan{background:#fff;margin-top:16px}
.sea-salle-bilan-note{font-size:13px;color:var(--note);margin:0 0 10px}
.sea-salle-bilan .sea-debrief-form{margin-top:0;padding-top:0;border-top:0}
.sea-salle-fiche-titre{font:700 14px var(--font-display);color:var(--titre);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 3px}
.sea-salle-fiche-liste{margin:0;padding-left:20px;font-size:16px;color:var(--texte2);line-height:1.5}
.sea-salle-fiche-liste li{margin-bottom:3px}

.sea-apercu{opacity:.92;margin:14px 0}
.sea-tuile-seance.demo{pointer-events:none}
.sea-demo-blocs{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.sea-demo-bloc{border:1px solid var(--ligne);border-left:4px solid var(--vert);border-radius:14px;padding:10px 14px}
.sea-demo-bloc b{display:block;font:700 15px var(--font-display);color:var(--titre)}
.sea-demo-bloc span{font-size:13.5px;color:var(--note)}

@media (max-width:760px){
	.sea-bloc img,.sea-bloc-vide{width:56px}
	.sea-ajouter{margin-left:82px}
	/* Sur téléphone l'en-tête de section passe à la ligne : le nom garde sa
	   largeur de texte, durée et gestes descendent dessous au lieu de l'écraser. */
	.sea-section-tete{flex-wrap:wrap;row-gap:2px}
	.sea-bloc-gestes{opacity:1}
	.sea-section-gestes{opacity:1}
	.sea-bloc-gestes button{width:34px;height:30px}
	.sea-section-gestes button:not(.sea-section-retirer){width:34px;height:30px}
	.sea-reglages label{flex:1 1 40%}
	.sea-jauge{flex-basis:110px}
	.sea-biblio{align-items:stretch;padding:0}
	.sea-biblio-carte{max-height:100vh;border-radius:0;width:100%}
}

/* ---------- Bande abonnement de l'accueil (sous la grille boutique) ---------- */
.home-abo{display:flex;align-items:center;gap:26px;margin-top:22px;padding:20px 24px;background:var(--navy);color:#fff;border-radius:14px;flex-wrap:wrap}
.home-abo-visuel{flex:0 0 232px;max-width:232px;background:#fff;border-radius:6px;overflow:hidden}
.home-abo-visuel img{display:block;width:100%;height:auto}
.home-abo-txt{flex:1 1 320px}
.home-abo-txt h3{font-family:var(--font-display);font-weight:800;font-size:24px;color:#fff;margin-bottom:16px}
.home-abo-txt p{margin:0 0 12px;color:#d8dbef;font-size:15.5px;line-height:1.6}
.home-abo-txt p:last-child{margin-bottom:0}
.home-abo-cta{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;gap:16px}
.home-abo-prix{font:800 36px var(--font-display);color:var(--vert);line-height:1.05;text-align:center}
.home-abo-prix span{display:block;font:600 13px var(--font-corps);color:#c9cde8;margin-top:2px}
@media (max-width:900px){
  .home-abo{gap:20px;padding:18px}
  .home-abo-visuel{flex-basis:170px;max-width:170px}
  .home-abo-cta{flex:1 1 100%;flex-direction:row;justify-content:space-between}
}
@media (max-width:520px){
  .home-abo{flex-direction:column;text-align:center}
  .home-abo-visuel{flex-basis:auto;max-width:200px}
  .home-abo-cta{flex-direction:column}
}

/* ==========================================================================
   Mode salle — coquille commune aux DEUX portes (Lot 5) : la fiche exercice
   seule (entrée 2, single-exercice.php, $_GET['salle']) et la vue séance
   (entrée 1, page-compte-utilisateur.php, étape 3 du 22/08 — le plan des
   temps puis chaque temps en volets). Maquette validée le 22/08. Page
   autonome dans les deux cas : la grammaire suit le design system C (navy,
   vert, familles) mais recompose son propre écran plein, sans les classes
   .fiche-* de la fiche publique ni .sea-* du reste de la surface séances.
   Préfixe msal- vérifié libre avant pose (0 occurrence).
   ========================================================================== */

/* --theme par défaut en spécificité NULLE (:where) : les classes .theme-*
   (0-1-0, définies plus haut dans la feuille) doivent toujours gagner — posé
   en .msal nu, l'ordre de la feuille les écraserait (piège de la règle sœur,
   14/08). Sert le bord des lignes « temps libre » du plan, sans famille. */
:where(.msal){--theme:var(--navy)}
.msal{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;background:var(--bande);font-family:var(--font-corps);--msal-schema-h:28vh}
/* La barre d'administration WordPress (32 px, 46 px sous 783 px) recouvrait la
   topbar du mode salle pour un compte admin — mesuré au rendu le 22/08. Le
   décalage suit la convention WordPress (classe admin-bar sur body). */
.admin-bar .msal{top:32px}
@media (max-width:782px){.admin-bar .msal{top:46px}}

.msal-topbar{flex:0 0 auto;z-index:5;background:var(--navy);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:12px}
.msal-back{width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:20px;line-height:1;text-decoration:none;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.msal-titres h1{font-family:var(--font-corps);font-size:15px;font-weight:700;letter-spacing:.2px;text-transform:none;color:#fff}
.msal-sub{font-size:11.5px;color:#fff;opacity:.75;margin-top:1px}
.msal-veille{margin-left:auto;flex:0 0 auto;border:0;border-radius:8px;background:rgba(255,255,255,.14);color:#fff;font:600 11.5px var(--font-corps);padding:8px 10px;cursor:pointer;line-height:1.2;text-align:center}
.msal-veille.on{background:var(--vert);color:#10321f}
.msal-veille:disabled{opacity:.5;cursor:default}
.msal-veille-msg{flex:0 0 auto;padding:0 16px;font-size:12.5px;color:var(--navy);background:var(--vert-pale)}
.msal-veille-msg:empty{padding:0}

.msal-ecran{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.msal-ecran[hidden]{display:none}

.msal-progress{flex:0 0 auto;background:var(--bande);padding:11px 16px 9px;border-bottom:1px solid var(--ligne)}
.msal-pbar{display:flex;gap:4px;margin-bottom:7px}
.msal-pbar i{flex:1;height:4px;border-radius:3px;background:var(--ligne)}
.msal-pbar i.done{background:var(--theme)}
.msal-pbar i.now{background:var(--navy)}
.msal-pmeta{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.msal-pk{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--theme)}
.msal-pn{font-size:11.5px;color:var(--note);font-weight:600;white-space:nowrap}

.msal-corps{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 16px 6px}
.msal-exo{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:16px;max-width:640px;margin:0 auto}
.msal-kick{font:800 11px var(--font-corps);text-transform:uppercase;letter-spacing:.1em;color:var(--theme)}
.msal-h2{font-family:var(--font-display);font-size:22px;color:var(--navy);text-transform:uppercase;letter-spacing:.01em;line-height:1.08;margin:3px 0 8px}
.msal-bandeau{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.msal-bandeau span{background:var(--bande);color:var(--navy);font:600 11.5px var(--font-corps);padding:5px 9px;border-radius:20px}
.msal-obj{font-size:13.5px;color:var(--note);border-left:3px solid var(--ligne);padding-left:10px;margin-bottom:12px;font-style:italic}
.msal-rappel{font:600 13px var(--font-corps);color:var(--note);margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid var(--ligne);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Le schéma ne mange jamais l'écran : la consigne reste lisible sous lui sans
   défiler. Plafond en hauteur (jamais en largeur, les schémas terrain EH sont
   en portrait), contain qui ne recadre rien. */
.msal-schema{border-radius:8px;overflow:hidden;background:var(--bande);margin-bottom:12px;position:relative;display:flex;justify-content:center}
.msal-schema img{max-width:100%;max-height:var(--msal-schema-h);width:auto;height:auto;object-fit:contain;display:block}
.msal-zoom{position:absolute;right:8px;top:8px;border:0;background:rgba(40,36,89,.82);color:#fff;font:600 10.5px var(--font-corps);padding:5px 9px;border-radius:8px;cursor:pointer}

.msal-materiel{font-size:13.5px;color:var(--note);margin-bottom:10px}
.msal-materiel b{color:var(--texte2);font-weight:600}
.msal-txt{font-size:16px;color:var(--texte2);line-height:1.6}
.msal-txt p{margin-bottom:10px}
.msal-txt p:last-child{margin-bottom:0}
.msal-txt ul{margin:0 0 10px;padding-left:20px}
.msal-txt li{margin-bottom:5px}

/* Note d'un temps de séance (étape 3) : sous la tête du premier volet,
   discrète — un fond léger, jamais la couleur de famille (elle appartient au
   bord de la ligne du plan et à la barre de progression, pas à ce bloc). */
.msal-note{background:var(--bande);border-radius:8px;padding:8px 12px;font-size:13.5px;color:var(--texte2);margin-bottom:12px}

.msal-pied{flex:0 0 auto;z-index:5;display:flex;align-items:stretch;gap:8px;background:#fff;border-top:1px solid var(--ligne);padding:10px 12px}
.msal-navbtn{flex:1 1 auto;border:0;border-radius:8px;padding:13px 8px;font:700 14.5px var(--font-corps);cursor:pointer;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;gap:5px;font-family:inherit;line-height:1.15;text-align:center;text-decoration:none}
.msal-navbtn.msal-prev{flex:0 0 auto;width:52px;background:var(--bande);color:var(--navy);font-size:19px}
/* Geste discret « revenir au plan » (M6, étape 3) : même famille visuelle que
   .msal-prev (fond bande, texte navy, compact) — jamais aussi appuyé que le
   bouton « suivant », qu'il accompagne sans lui faire concurrence. */
.msal-navbtn.msal-navplan{flex:0 0 auto;width:64px;background:var(--bande);color:var(--navy);font-size:12px}
.msal-navbtn:disabled{opacity:.32;cursor:default}
.msal-navpos{flex:0 0 auto;font:800 13px var(--font-corps);color:var(--navy);align-self:center;min-width:34px;text-align:center}
/* Lien discret, jamais un bouton (arbitrage Philippe du 22/08) : gris, pas de
   fond, il ne rivalise pas avec le bouton de retour à côté de lui. */
.msal-lien-fiche{flex:1 1 auto;align-self:center;text-align:center;font-size:12.5px;color:var(--note);text-decoration:underline}

.msal-overlay{position:fixed;inset:0;z-index:300;background:rgba(20,18,45,.92);display:flex;align-items:center;justify-content:center;padding:24px}
.msal-overlay[hidden]{display:none}
.msal-overlay img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.msal-overlay-fermer{position:absolute;top:16px;right:16px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:22px;line-height:1;cursor:pointer}

/* ---------- Le plan (étape 3) : écran de base de la vue séance ---------- */
.msal-plan-corps{max-width:640px;margin:0 auto}
.msal-plan-sect{font:700 11.5px var(--font-corps);text-transform:uppercase;letter-spacing:.09em;color:var(--note);margin:16px 0 8px}
.msal-plan-sect:first-child{margin-top:0}
.msal-plan-ligne{width:100%;background:#fff;border:1px solid var(--ligne);border-left:4px solid var(--theme);border-radius:14px;padding:12px 13px;margin-bottom:9px;display:flex;align-items:center;gap:12px;cursor:pointer;text-align:left;font-family:inherit}
.msal-plan-dur{flex:0 0 auto;width:44px;height:44px;border-radius:8px;background:var(--bande);color:var(--navy);font:800 15px var(--font-display);display:flex;align-items:center;justify-content:center}
.msal-plan-txt{flex:1 1 auto;min-width:0;display:block}
.msal-plan-nom{display:block;font-size:14px;font-weight:600;color:var(--navy);line-height:1.25}
.msal-plan-meta{display:block;font-size:11.5px;color:var(--note);margin-top:3px}
.msal-plan-fl{flex:0 0 auto;color:var(--note);font-size:17px}

@media (min-width:760px){
  .msal-topbar,.msal-progress,.msal-pied{padding-left:28px;padding-right:28px}
  .msal-corps{padding-left:28px;padding-right:28px}
  .msal-exo{padding:22px 26px}
}

/* ==========================================================================
   Page abonnement (page-abonnement.php, 23/08/2026) — préfixe abop-*
   Grammaire : sections de la page handXPrience, tuiles du thème, bande-sec,
   arrondis 14/8/6. Aucun décor sous 15 % d'opacité (piège du 11/08).
   ========================================================================== */
.abop-page section{padding:64px 0}
.abop-page section h2{font-size:clamp(28px,3.2vw,40px);font-weight:800;text-align:center;margin-bottom:34px}
.abop-tete{padding:56px 24px 8px;text-align:center}
.abop-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.abop-lead{font:800 clamp(26px,3vw,36px) var(--font-display);color:var(--navy);text-transform:uppercase;letter-spacing:.015em;line-height:1.1;max-width:880px;margin:0 auto 16px}
.abop-lead-2{font-size:18px;color:var(--texte2);max-width:760px;margin:0 auto;line-height:1.6;text-align:left}
.abop-etroit{max-width:760px}
.abop-etroit p{font-size:16px;margin-bottom:16px;line-height:1.7}
.abop-grid4{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:920px;margin:0 auto}
.abop-lancement{background:var(--vert-pale);border:1px solid var(--vert);border-radius:14px;padding:20px 26px;max-width:920px;margin:0 auto 30px;text-align:center;font-size:16px;line-height:1.7}
.abop-tuile{padding:26px 24px}
.abop-tuile h3{font-size:19px;margin-bottom:10px}
.abop-tuile p{font-size:14.5px;margin-bottom:12px}
.abop-tuile p:last-child{margin-bottom:0}
.abop-detail{text-align:center;margin:28px 0 0}
.abop-capture{margin:32px auto 0;max-width:920px}
.abop-capture img{width:100%;height:auto;display:block;border-radius:14px;border:1px solid var(--ligne);box-shadow:0 18px 40px -18px rgba(40,36,89,.25)}
.abop-capture figcaption{font-size:13.5px;color:var(--note);text-align:center;margin-top:10px}
.abop-citations{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:920px;margin:24px auto 0}
.abop-citation{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:26px 26px 20px;margin:0;position:relative}
.abop-citation::before{content:'\201C';font:700 54px var(--font-display);line-height:1;color:var(--vert);position:absolute;top:10px;left:18px}
.abop-citation p{font-size:15.5px;font-style:italic;color:var(--texte2);margin:14px 0 12px}
.abop-citation footer{font-size:13.5px;color:var(--note)}
.abop-suite{background:var(--navy);color:#c9cbe2;border-radius:14px;padding:42px 38px;max-width:920px;margin:0 auto}
.abop-page .abop-suite h2{color:#fff;margin-bottom:22px}
.abop-suite p{max-width:720px;margin:0 auto 16px;font-size:16px}
.abop-suite p:last-child{margin-bottom:0}
.abop-suite ul{max-width:720px;margin:0 auto 16px;padding-left:24px}
.abop-suite li{padding:3px 0;font-size:16px}
.abop-faq details{background:#fff;border:1px solid var(--ligne);border-radius:14px;margin-bottom:12px;overflow:hidden}
.abop-faq summary{cursor:pointer;list-style:none;padding:17px 22px;font:700 17px var(--font-display);text-transform:uppercase;letter-spacing:.015em;color:var(--navy);position:relative;padding-right:48px}
.abop-faq summary::-webkit-details-marker{display:none}
.abop-faq summary::after{content:'+';position:absolute;right:20px;top:50%;transform:translateY(-50%);font:400 24px var(--font-display);color:var(--vert-h)}
.abop-faq details[open] summary::after{content:'\2212'}
.abop-faq details p{padding:0 22px 18px;margin:0}
.abop-faq a,.abop-tuile a{color:var(--vert-h);font-weight:600;border-bottom:2px dotted var(--vert-h)}
@media(max-width:960px){
  .abop-grid4{grid-template-columns:1fr}
  .abop-citations{grid-template-columns:1fr}
  .abop-page section{padding:48px 0}
  .abop-suite{padding:30px 22px}
}

/* ---- Compte boutique dans la coquille, étapes 3 et 4 (03/09) : sous-onglets,
   tuiles de commandes, de téléchargements, d'adresses et de cartes, formulaires
   WooCommerce habillés. Grammaire de l'espace reprise, jamais refabriquée
   (tuile blanche à filet et arrondi 14, .tuile-btn bordé, .chip-btn du
   sélecteur, .sea-retour) — aucune couleur nouvelle. Préfixe cpb- grepé libre
   avant pose (cb- appartient aux cartes print). ---- */
.app-sousonglets{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 22px}
.app-sousonglets .chip-btn{text-decoration:none;display:inline-block}
/* Message de retour d'une section de l'espace (03/09, vue « Mon abonnement » :
   retours Checkout et refus du portail) — tokens existants seulement, préfixe
   app-msg grepé libre avant pose. */
.app-msg{margin:14px 0 18px;padding:12px 16px;border-radius:8px;border:1px solid var(--ligne);background:var(--bande);color:var(--texte);font-size:15px;line-height:1.5}
.app-msg-ok{background:var(--vert-pale);border-color:rgba(89,206,168,.5);color:var(--vert-h)}
.app-msg-err{background:var(--rouge-err-fond);border-color:var(--rouge-err-filet);color:var(--rouge-err)}
.cpb-liste{list-style:none;display:flex;flex-direction:column;gap:12px;margin:0 0 18px;padding:0}
.cpb-tuile{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:16px 20px}
.cpb-tuile[hidden],.cpb-gestes[hidden]{display:none}
.cpb-corps{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:3px}
.cpb-date{font:700 12.5px var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--navy)}
.cpb-titre{font:700 18px/1.25 var(--font-display);color:var(--titre);text-decoration:none}
a.cpb-titre:hover{color:var(--vert-h)}
.cpb-meta{font-size:13.5px;color:var(--note)}
.cpb-statut{font:700 10.5px var(--font-display);text-transform:uppercase;letter-spacing:.08em;border-radius:9px;padding:3px 10px;background:var(--bande);color:var(--texte2);flex:none}
.cpb-statut.st-completed,.cpb-statut.st-processing,.cpb-statut.st-defaut{background:var(--vert-pale);color:var(--vert-h)}
.cpb-statut.st-pending,.cpb-statut.st-on-hold,.cpb-statut.st-failed{background:var(--prepa);color:#fff}
.cpb-gestes{display:flex;gap:10px;flex-wrap:wrap;align-items:center;flex:none;margin-left:auto}
.cpb-gestes .tuile-btn{align-self:auto}
.cpb-pagination{display:flex;gap:12px;align-items:center;justify-content:center;margin:6px 0 18px;font-size:13.5px;color:var(--note)}
.cpb-vide{border:1px dashed var(--ligne);border-radius:14px;padding:22px 20px;background:var(--bande);display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.cpb-vide p{margin:0}
.cpb-retour{margin-bottom:16px}
.cpb-tete{margin-bottom:18px}
/* Téléchargements : le fichier en bouton bordé navy (jamais un second vert), la
   mention « Limite atteinte » du module eh-downloads-epuises grisée. */
.cpb-dl-fichier .woocommerce-MyAccount-downloads-file,.cpb-dl-fichier .button{display:inline-block;border:1px solid var(--navy);background:#fff;border-radius:8px;padding:8px 14px;font:600 13.5px var(--font-corps);color:var(--navy);text-decoration:none;line-height:1.3}
.cpb-dl-fichier .woocommerce-MyAccount-downloads-file:hover,.cpb-dl-fichier .button:hover{background:var(--navy);color:#fff}
.cpb-dl.est-epuise{background:var(--bande)}
.cpb-dl-fichier .eh-dl-epuise{font:600 13.5px var(--font-corps)}
/* Formulaires (compte, adresse, carte) : les champs de WooCommerce dans une
   tuile, libellé au-dessus du champ (trait 6 du Concept 01), un seul bouton
   d'envoi vert (le .button de la boutique). */
.cpb-form{display:flex;flex-direction:column;gap:14px;margin:0 0 18px}
.cpb-bloc{display:block;padding:20px 22px;margin:0;border:1px solid var(--ligne)}
fieldset.cpb-bloc{min-width:0}
.cpb-bloc-titre{font:700 16px var(--font-display);text-transform:uppercase;color:var(--navy);margin:0 0 12px;padding:0;letter-spacing:.02em}
legend.cpb-bloc-titre{float:left;width:100%}
.cpb-champs{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;clear:both}
.app .cpb-champs .form-row,.app .cpb-champs .woocommerce-form-row{margin:0;display:flex;flex-direction:column;gap:5px;width:auto;float:none;padding:0}
.app .cpb-champs .form-row-wide,.app .cpb-champs .woocommerce-form-row--wide{grid-column:1/-1}
.app .cpb-champs .required{color:var(--vert-h);text-decoration:none}
.app .cpb-champs .select2-container{width:100% !important}
.cpb-envoi{margin:0}
.cpb-adresse address{font-style:normal;font-size:14.5px;line-height:1.5;color:var(--texte2)}
.cpb-adresse .cpb-bloc-titre{margin-bottom:6px}
/* Le formulaire d'ajout de carte reste celui de WooCommerce (script Stripe). */
.app .woocommerce-Payment .payment_methods{list-style:none;margin:0 0 14px;padding:0}
.app .woocommerce-Payment .payment_methods li{padding:8px 0}
.app .woocommerce-Payment .payment_box{margin-top:10px}
/* Détail d'une commande : tableaux natifs (articles, totaux, téléchargements)
   habillés comme ceux de la boutique, gestes en boutons bordés, adresses en
   deux colonnes. */
.app .woocommerce-order-details__title,.app .woocommerce-order-downloads__title,.app .woocommerce-column__title{font-size:19px;margin:22px 0 10px}
.app .woocommerce-table th,.app .woocommerce-table td{font-size:14.5px}
.app .woocommerce-table tfoot th{background:transparent;text-transform:none;letter-spacing:0;font:600 14px var(--font-corps);color:var(--texte2)}
.app .woocommerce a.woocommerce-button.button,.app .woocommerce-table a.button{display:inline-block;border:1px solid var(--ligne);background:#fff;border-radius:8px;padding:8px 14px;font:600 13.5px var(--font-corps);color:var(--navy);text-decoration:none;margin:2px 6px 2px 0}
.app .woocommerce a.woocommerce-button.button:hover,.app .woocommerce-table a.button:hover{border-color:var(--navy)}
.app .woocommerce-columns--addresses{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.app .woocommerce-customer-details address{font-style:normal;background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:16px 20px;font-size:14.5px;line-height:1.5}
.app .woocommerce-customer-details .woocommerce-column{margin-bottom:12px}
.app .woocommerce-OrderUpdates{list-style:none;padding:0}
/* Notices WooCommerce dans l'espace : la forme des notices de la boutique. */
.app .woocommerce-message,.app .woocommerce-info,.app .woocommerce-error{background:#fff;border:1px solid var(--ligne);border-left:4px solid var(--vert);border-radius:8px;padding:14px 18px;margin:0 0 18px;list-style:none}
.app .woocommerce-error{border-left-color:var(--attaque)}
.app .woocommerce-message a.button,.app .woocommerce-info a.button{margin-left:8px}
@media(max-width:700px){
  .cpb-tuile{padding:14px 16px}
  .cpb-gestes{margin-left:0;flex:1 0 100%}
  .cpb-champs{grid-template-columns:1fr}
  .app .woocommerce-columns--addresses{grid-template-columns:1fr}
}
/* Corrections attrapées au banc visuel du 03/09 (rendu réel, captures) : les
   feuilles de WooCommerce gagnaient la cascade sur quatre points — bouton de
   fichier violet (.woocommerce a.button.alt, spécificité 0-3-1), « Commander
   une nouvelle fois » en pilule grise, icônes de l'adresse en carrés (police
   d'icônes WooCommerce non chargée), sélecteur de pays (select2) à hauteur
   fixe, fond mauve du formulaire de carte (#payment). */
.app .woocommerce .cpb-dl-fichier a.button,.app .woocommerce .cpb-dl-fichier a.button.alt{background:#fff;color:var(--navy);border:1px solid var(--navy);border-radius:8px;padding:8px 14px;font:600 13.5px var(--font-corps);text-transform:none;letter-spacing:0;box-shadow:none;line-height:1.3}
.app .woocommerce .cpb-dl-fichier a.button:hover,.app .woocommerce .cpb-dl-fichier a.button.alt:hover{background:var(--navy);color:#fff}
.app .woocommerce .order-again .button{display:inline-block;border:1px solid var(--ligne);background:#fff;border-radius:8px;padding:8px 14px;font:600 13.5px var(--font-corps);color:var(--navy);text-decoration:none;text-transform:none;letter-spacing:0}
.app .woocommerce .order-again .button:hover{border-color:var(--navy)}
.app .woocommerce-customer-details .woocommerce-customer-details--phone,.app .woocommerce-customer-details .woocommerce-customer-details--email{padding-left:0}
.app .woocommerce-customer-details .woocommerce-customer-details--phone::before,.app .woocommerce-customer-details .woocommerce-customer-details--email::before{display:none}
.app .cpb-champs .select2-container--default .select2-selection--single{height:auto;border:1px solid var(--ligne);border-radius:8px;padding:11px 12px;background:#fff}
.app .cpb-champs .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:1.4;padding:0;font:400 15px var(--font-corps);color:var(--texte)}
.app .cpb-champs .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;top:0;right:8px}
.app #add_payment_method #payment{background:#fff;border-radius:14px}
.app #add_payment_method #payment ul.payment_methods{border-bottom:1px solid var(--ligne);padding:0 0 12px}
.app #add_payment_method #payment .payment_box{background:var(--bande);border-radius:8px}
.app #add_payment_method #payment div.form-row.cpb-envoi{padding:0;border:0;margin-top:14px}
.app #add_payment_method #place_order{float:none}
