/* ============================================================
   COACH TANA — Design system « sportswear » (façon Nike / Adidas)
   Noir intense + blanc + accent VOLT électrique. Typo condensée
   en capitales pour les titres (Barlow Condensed), Inter en corps.
   ============================================================ */
:root{
  --ink:#0c0c0d;        /* noir principal */
  --ink-2:#17171a;      /* noir carte sombre */
  --paper:#ffffff;
  --mist:#f3f3f4;       /* fond gris clair */
  --line:#e4e4e7;
  --muted:#6b6b73;
  --volt:#c9ff00;       /* accent électrique */
  --volt-deep:#a4d400;
  --volt-soft:#f2ffcc;
  --danger:#ff3b30;
  --danger-bg:#ffe9e7;
  --ok:#12b76a;
  --ok-bg:#e6f9f0;
  --warn:#f59e0b;
  --warn-bg:#fff5e6;
  --radius:16px;
  --ombre:0 4px 24px rgba(12,12,13,.08);
  --disp:'Barlow Condensed','Arial Narrow',system-ui,sans-serif;
  --body:'Inter',system-ui,-apple-system,Segoe UI,Arial,sans-serif;
}
/* Le site est clair uniquement : on force le thème clair des contrôles natifs
   (select, inputs de date…) pour qu'ils ne s'inversent pas quand le système
   d'exploitation est en mode sombre (sinon fond noir + texte noir hérité). */
:root{color-scheme:light}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--body);background:var(--paper);color:var(--ink);
  line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--ink);text-decoration:none}
a:hover{text-decoration:none}
img{max-width:100%}
.conteneur{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}

h1,h2,h3,.disp{font-family:var(--disp);text-transform:uppercase;line-height:.98;
  letter-spacing:.5px;font-weight:800}

/* ---------- En-tête ---------- */
.entete{background:var(--paper);border-bottom:2px solid var(--ink);position:sticky;top:0;z-index:60}
/* min-height (PAS height figée) : avec beaucoup de liens (admin/coach) la nav
   passe sur 2 lignes — le bandeau doit GRANDIR vers le bas, sinon la moitié
   haute du menu sort de l'écran et devient inatteignable. */
.entete-in{display:flex;align-items:center;justify-content:space-between;
  min-height:66px;gap:6px 14px;flex-wrap:wrap;padding:8px 0}
.logo{font-family:var(--disp);font-weight:900;font-size:27px;letter-spacing:.5px;
  text-transform:uppercase;color:var(--ink);display:inline-flex;align-items:center}
.logo span{background:var(--volt);color:var(--ink);padding:1px 8px;margin-left:5px;transform:skewX(-8deg)}
.logo-bolt{color:var(--volt-deep);font-style:normal;margin-left:4px;font-weight:900}
.nav{display:flex;align-items:center;gap:6px 20px;flex-wrap:wrap}
.nav a{font-family:var(--disp);text-transform:uppercase;font-weight:600;font-size:16px;
  letter-spacing:.5px;color:var(--ink);position:relative}
.nav a:hover{color:var(--volt-deep)}
.nav-user{font-family:var(--disp);text-transform:uppercase;color:var(--muted);font-size:15px;letter-spacing:.5px}
a.nav-user{text-decoration:none;border:1.5px solid var(--line);border-radius:999px;padding:5px 12px;transition:.15s}
a.nav-user:hover{border-color:var(--volt);color:var(--ink);background:var(--volt)}

/* ---------- Boutons ---------- */
.btn{display:inline-block;background:var(--ink);color:var(--paper);font-family:var(--disp);
  text-transform:uppercase;font-weight:700;letter-spacing:1px;font-size:16px;
  padding:12px 26px;border:2px solid var(--ink);border-radius:999px;cursor:pointer;
  transition:transform .08s,background .15s,color .15s}
.btn:hover{background:var(--volt);border-color:var(--volt);color:var(--ink)}
.btn:active{transform:translateY(1px)}
.btn-clair{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.btn-clair:hover{background:var(--ink);color:var(--paper)}
.btn-volt{background:var(--volt);border-color:var(--volt);color:var(--ink)}
.btn-volt:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn-gros{padding:16px 34px;font-size:18px}
/* CTA principal du hero — volontairement imposant */
.btn-xl{padding:22px 52px;font-size:24px;border-radius:16px;letter-spacing:1px;box-shadow:0 6px 24px rgba(204,255,0,.35)}
.btn-xl:hover{transform:translateY(-2px)}
/* Téléphone avec indicatif pays */
.tel-groupe{display:flex;gap:8px}
.tel-groupe select{flex:0 0 auto;width:auto;min-width:104px}
.tel-groupe input{flex:1}
/* Sélecteur de langue (drapeaux) */
.lang-switch{position:relative;display:inline-block}
.lang-btn{background:transparent;border:1.5px solid var(--line);border-radius:999px;
  padding:5px 12px;font-family:var(--disp);text-transform:uppercase;font-size:13px;
  font-weight:700;letter-spacing:.5px;cursor:pointer;color:inherit}
.lang-btn:hover{border-color:var(--volt)}
.lang-menu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:2px solid var(--ink);
  border-radius:12px;box-shadow:6px 6px 0 var(--volt);padding:6px;display:none;z-index:1500;min-width:170px}
.lang-menu.ouvert{display:block}
.lang-menu a{display:block;padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--ink);
  font-size:15px;white-space:nowrap}
.lang-menu a:hover{background:var(--volt-soft,#f7ffe0)}
/* Masque la barre/bandeau ajoutés par Google Traduction */
.goog-te-banner-frame,.skiptranslate iframe,#goog-gt-tt{display:none!important}
body{top:0!important}
.goog-te-gadget{font-size:0!important}
.goog-tooltip,.goog-text-highlight{background:none!important;box-shadow:none!important}
.bloc-btn{width:100%;margin-top:10px}
.lien-bouton{background:none;border:none;color:var(--ink);cursor:pointer;
  text-decoration:underline;font-size:14px;padding:0;font-family:var(--body)}

.contenu{padding:30px 20px 70px;min-height:60vh}

/* ---------- Flash ---------- */
.flashs{margin-bottom:20px;display:flex;flex-direction:column;gap:10px}
.flash{padding:13px 18px;border-radius:12px;font-size:14px;font-weight:500;
  border-left:5px solid var(--ink);background:var(--mist)}
.flash-succes{background:var(--ok-bg);border-color:var(--ok)}
.flash-erreur{background:var(--danger-bg);border-color:var(--danger)}
.flash-info,.flash-message{background:var(--volt-soft);border-color:var(--volt-deep)}

/* ---------- Hero ---------- */
.hero{position:relative;color:var(--paper);border-radius:26px;padding:64px 44px;margin-bottom:40px;
  overflow:hidden;background:linear-gradient(110deg,rgba(12,12,13,.94) 0%,rgba(12,12,13,.72) 46%,rgba(12,12,13,.42) 100%),var(--hero,none) center/cover no-repeat,var(--ink)}
.hero::after{content:"";position:absolute;top:-40%;right:-6%;width:44%;height:190%;
  background:var(--volt);transform:skewX(-12deg);opacity:.12}
.hero::before{content:"";position:absolute;bottom:-30%;left:-10%;width:36%;height:120%;
  background:var(--volt);transform:skewX(-12deg);opacity:.05}
.hero-txt{position:relative;z-index:2}
.hero h1{font-size:clamp(40px,7vw,78px);font-weight:900;letter-spacing:0}
.hero h1 span{color:var(--volt)}
.hero-sous{margin-top:18px;font-size:18px;max-width:620px;color:#d4d4d8;font-family:var(--body);
  text-transform:none;letter-spacing:0;font-weight:400}
.hero-actions{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
.hero .btn{background:var(--volt);border-color:var(--volt);color:var(--ink)}
.hero .btn:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.hero .btn-clair{background:transparent;border-color:#3f3f46;color:var(--paper)}
.hero .btn-clair:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.hero-info{margin-top:26px;font-size:13px;color:#a1a1aa;font-family:var(--disp);
  text-transform:uppercase;letter-spacing:1.5px}

/* ---------- Blocs / étapes ---------- */
.bloc{margin:46px 0}
.bloc h2{font-size:clamp(26px,4vw,40px);margin-bottom:24px;position:relative;padding-left:18px}
.bloc h2::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:6px;background:var(--volt)}
.etapes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.etape{background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius);
  padding:28px 24px;transition:transform .15s,box-shadow .15s}
.etape:hover{transform:translateY(-4px);box-shadow:8px 8px 0 var(--volt)}
.etape .num{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;
  background:var(--ink);color:var(--volt);border-radius:12px;font-family:var(--disp);
  font-weight:900;font-size:24px;margin-bottom:14px}
.etape h3{font-size:22px;margin-bottom:8px}
.etape p{color:var(--muted);font-size:15px}

/* ---------- Chips (disciplines) ---------- */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{background:var(--paper);border:2px solid var(--ink);border-radius:999px;
  padding:8px 18px;font-family:var(--disp);text-transform:uppercase;font-weight:600;
  font-size:14px;letter-spacing:.5px;transition:.15s}
.chip:hover{background:var(--volt);border-color:var(--volt)}
.chip.pt{padding:5px 13px;font-size:13px;margin:3px 3px 0 0;display:inline-block}

/* ---------- Cartes / formulaires ---------- */
.carte{background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);
  padding:28px;box-shadow:var(--ombre)}
.carte-form{max-width:470px;margin:14px auto}
.carte-form h1{font-size:34px;margin-bottom:18px}
.carte h3{font-size:22px;margin-bottom:16px}
form label{display:block;font-family:var(--disp);text-transform:uppercase;font-weight:600;
  font-size:14px;letter-spacing:.6px;margin-top:16px;color:var(--ink)}
form label small{font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0}
form input,form select,form textarea{width:100%;margin-top:7px;padding:12px 14px;
  border:2px solid var(--line);border-radius:11px;font-size:15px;font-family:var(--body);
  background:var(--paper);transition:border .15s,box-shadow .15s}
form input:focus,form select:focus,form textarea:focus{outline:none;border-color:var(--ink);
  box-shadow:0 0 0 3px var(--volt)}
/* Sélecteur « Lieu du cours » : il est dans un <label>, PAS dans un <form>,
   donc la règle ci-dessus ne l'atteint pas. On lui donne le même rendu
   (fond blanc + texte encre) pour éviter le fond noir natif en mode sombre. */
.loc-label{display:block;font-family:var(--disp);text-transform:uppercase;
  font-size:14px;letter-spacing:.6px;margin-top:16px;color:var(--ink)}
.lieu-select{width:100%;margin-top:7px;padding:12px 14px;border:2px solid var(--line);
  border-radius:11px;font-size:15px;font-family:var(--body);
  background:var(--paper);color:var(--ink)}
.lieu-select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--volt)}
.grille2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.aide{color:var(--muted);font-size:14px;margin-top:14px}
.centre{text-align:center}
.renvoi{margin-top:12px;text-align:center}

/* Onglets rôle */
.onglets-role{display:flex;gap:6px;margin-bottom:10px;background:var(--ink);padding:5px;border-radius:14px}
.onglet{flex:1;text-align:center;padding:11px;border-radius:10px;font-family:var(--disp);
  text-transform:uppercase;font-weight:700;letter-spacing:.5px;color:#a1a1aa}
.onglet.actif{background:var(--volt);color:var(--ink)}
.onglet:hover{color:var(--paper)}
.onglet.actif:hover{color:var(--ink)}

/* ---------- Pied ---------- */
.pied{border-top:2px solid var(--ink);background:var(--paper);padding:28px 0;margin-top:50px}
.pied p{color:var(--muted);font-size:13px;text-align:center}
.pied a{text-decoration:underline;font-weight:600}

/* ---------- En-tête de page + bandeaux ---------- */
.entete-page{display:flex;justify-content:space-between;align-items:center;gap:14px;
  flex-wrap:wrap;margin-bottom:22px}
.entete-page h1{font-size:38px}
.entete-page .btn{margin-left:6px}
.bandeau{padding:15px 20px;border-radius:12px;font-size:15px;margin-bottom:22px;
  border-left:5px solid var(--ink);background:var(--mist)}
.bandeau-ok{background:var(--ok-bg);border-color:var(--ok)}
.bandeau-att{background:var(--warn-bg);border-color:var(--warn)}
.bandeau-ko{background:var(--danger-bg);border-color:var(--danger)}

/* ---------- Grille de cartes ---------- */
.grille-cartes{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.coach-tete{display:flex;gap:16px;align-items:center;margin-bottom:14px}
.coach-photo{width:112px;height:112px;border-radius:16px;object-fit:cover;border:2px solid var(--ink)}
.coach-photo.vide{display:flex;align-items:center;justify-content:center;font-size:34px;
  background:var(--volt)}
.note{font-family:var(--disp);font-weight:700;font-size:18px;letter-spacing:.5px}
.note small{color:var(--muted);font-weight:400;font-family:var(--body);font-size:12px}
.tarif{font-family:var(--disp);font-weight:800;font-size:22px;letter-spacing:.5px}
.bio{color:var(--ink);font-size:15px;margin:8px 0;font-family:var(--body)}
.liste-dispo{list-style:none;display:flex;flex-direction:column;gap:6px}
.liste-dispo li{padding:9px 13px;background:var(--mist);border-radius:9px;font-size:14px;
  border-left:4px solid var(--volt-deep)}

/* ---------- Tableaux ---------- */
.tableau{width:100%;border-collapse:collapse;font-size:14px}
.tableau th,.tableau td{text-align:left;padding:12px 12px;border-bottom:1px solid var(--line)}
.tableau th{font-family:var(--disp);text-transform:uppercase;color:var(--ink);font-weight:700;
  font-size:13px;letter-spacing:.6px;border-bottom:2px solid var(--ink)}
.tableau tr:hover td{background:var(--mist)}
.badge{display:inline-block;padding:4px 11px;border-radius:999px;font-family:var(--disp);
  text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.5px;
  background:var(--mist);border:1px solid var(--line)}
.badge-ok{background:var(--ok-bg);border-color:var(--ok);color:#0a7d47}
.badge-att{background:var(--warn-bg);border-color:var(--warn);color:#a16207}
.badge-ko{background:var(--danger-bg);border-color:var(--danger);color:#b42318}
.cin-mini{width:48px;height:32px;object-fit:cover;border-radius:5px;border:1px solid var(--ink);vertical-align:middle}
.actions form{margin:0}
.mini{padding:7px 14px;border:2px solid var(--ink);border-radius:999px;font-family:var(--disp);
  text-transform:uppercase;font-size:13px;font-weight:700;letter-spacing:.5px;cursor:pointer}
.mini.vert{background:var(--volt);border-color:var(--volt);color:var(--ink)}
.mini.vert:hover{background:var(--ink);color:var(--volt)}
.mini.rouge{background:var(--paper);color:var(--danger);border-color:var(--danger)}
.mini.rouge:hover{background:var(--danger);color:var(--paper)}

/* ---------- Stats admin ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat{background:var(--ink);color:var(--paper);border-radius:var(--radius);padding:22px;text-align:center}
.stat:nth-child(2){background:var(--volt);color:var(--ink)}
.stat-n{display:block;font-family:var(--disp);font-size:44px;font-weight:900;line-height:1}
.stat-l{font-family:var(--disp);text-transform:uppercase;font-size:13px;letter-spacing:1px;opacity:.85}

/* ---------- Fieldset disciplines ---------- */
.fieldset-disc{margin-top:18px;border:2px solid var(--line);border-radius:12px;padding:16px}
.fieldset-disc legend{font-family:var(--disp);text-transform:uppercase;font-weight:700;
  padding:0 8px;font-size:14px;letter-spacing:.5px}
.cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.case{display:flex;align-items:center;gap:8px;font-family:var(--body);font-weight:400;
  text-transform:none;letter-spacing:0;margin:0;cursor:pointer;font-size:14px}
.case input{width:auto;margin:0}
.case-cgu{align-items:flex-start;margin-top:18px;font-size:13px;color:var(--muted);line-height:1.5}
.case-cgu input{margin-top:3px}

/* ---------- Grille disponibilités ---------- */
.grille-dispo-wrap{overflow-x:auto}
.grille-dispo{border-collapse:collapse;width:100%;min-width:540px}
.grille-dispo th,.grille-dispo td{border:1px solid var(--line);text-align:center;padding:0}
.grille-dispo th{background:var(--ink);color:var(--paper);padding:9px;font-family:var(--disp);
  text-transform:uppercase;font-size:13px;letter-spacing:.5px}
.grille-dispo td.h{background:var(--mist);font-family:var(--disp);font-size:14px;font-weight:700;
  padding:6px 10px;white-space:nowrap}
.ceil{display:block;cursor:pointer;margin:0;padding:0}
.ceil input{display:none}
.ceil span{display:block;width:100%;height:36px;background:var(--paper)}
.ceil input:checked + span{background:var(--volt)}
.ceil:hover span{background:var(--volt-soft)}

/* ---------- Recherche + carte ---------- */
/* Fil d'Ariane de la réservation (1 cours → 2 lieu → 3 coach → 4 paiement) */
.stepper{display:flex;gap:8px;list-style:none;margin:4px 0 18px;padding:0;flex-wrap:wrap}
.stepper li{display:flex;align-items:center;gap:8px;font-family:var(--disp);text-transform:uppercase;
  font-size:12.5px;letter-spacing:.5px;font-weight:700;color:var(--muted);
  padding:7px 14px 7px 8px;border:2px solid var(--line);border-radius:999px;background:#fff}
.stepper li span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  border-radius:50%;background:var(--line);font-size:12px;color:var(--ink)}
.stepper li.actif{border-color:var(--ink);color:var(--ink)}
.stepper li.actif span,.stepper li.fait span{background:var(--volt)}
.stepper li.fait{color:var(--ink)}
/* Formulaire repliable : une ligne-résumé après la recherche */
.form-repli>summary{cursor:pointer;list-style:none;font-size:15px}
.form-repli>summary::-webkit-details-marker{display:none}
.form-repli>summary u{color:var(--volt-deep);font-weight:700}
.form-repli[open]>summary{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.form-repli:not([open]):hover{box-shadow:6px 6px 0 var(--volt)}
/* Titres de sections du formulaire */
.fs-titre{font-family:var(--disp);text-transform:uppercase;font-weight:800;letter-spacing:.5px;
  font-size:14.5px;margin:16px 0 8px}
.fs-titre small{font-family:var(--sans,inherit);text-transform:none;font-weight:400;color:var(--muted);letter-spacing:0}
/* Options avancées repliées */
.options-av{border:2px dashed var(--line);border-radius:12px;padding:0 14px;margin-top:14px}
.options-av>summary{cursor:pointer;padding:11px 0;font-weight:700;color:var(--muted);list-style:none}
.options-av>summary::-webkit-details-marker{display:none}
.options-av>summary::before{content:'▸ '}
.options-av[open]>summary::before{content:'▾ '}
.options-av[open]{padding-bottom:12px}
.options-av[open]>summary{color:var(--ink)}
/* Ligne « Ma position / adresse / localiser » */
.lieu-ligne{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch;margin-bottom:6px}
.lieu-ligne input{flex:1;min-width:210px}
.lieu-ligne .btn{padding:10px 16px;font-size:14px;white-space:nowrap}
.form-recherche{margin-bottom:10px}
.grille-recherche{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.carte-map-bloc{margin-top:16px}
.mode-emploi{background:var(--volt-soft);border:2px solid var(--volt-deep);border-radius:12px;
  padding:14px 18px;margin-bottom:12px;font-size:14px}
.mode-emploi ol{margin:8px 0 0 20px;display:flex;flex-direction:column;gap:4px}
.mode-emploi li{font-size:14px}
.map-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;
  font-size:14px;color:var(--muted)}
.map-actions .btn{padding:8px 16px;font-size:14px}
.coord-info{font-family:var(--disp);text-transform:uppercase;color:var(--ink);font-weight:700;letter-spacing:.5px}
#map{height:320px;border-radius:14px;border:2px solid var(--ink);z-index:1}
.liste-coachs{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.carte-coach{border:2px solid var(--ink);transition:box-shadow .15s,transform .15s}
.carte-coach:hover{transform:translateY(-3px);box-shadow:8px 8px 0 var(--volt)}
.creneaux{display:flex;flex-wrap:wrap;gap:9px;margin-top:6px}
.creneau{background:var(--ink);color:var(--paper);border:2px solid var(--ink);border-radius:10px;
  padding:9px 15px;font-family:var(--disp);text-transform:uppercase;font-size:14px;font-weight:700;
  letter-spacing:.5px;cursor:pointer;transition:.15s}
.creneau:hover{background:var(--volt);color:var(--ink);border-color:var(--volt)}
a.creneau{display:inline-block;text-decoration:none}
.detail-liste{list-style:none;margin-top:10px}
.detail-liste li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;
  border-bottom:1px solid var(--line)}
.detail-liste li strong{font-family:var(--disp);text-transform:uppercase;color:var(--muted);
  font-weight:600;letter-spacing:.5px}

/* ---------- Accueil : barre de recherche ---------- */
.hero-search{display:flex;gap:10px;margin-top:26px;max-width:540px}
.hero-search input{flex:1;margin:0;padding:15px 18px;border-radius:999px;border:2px solid var(--paper);
  font-size:16px;font-family:var(--body)}
.hero-search input:focus{box-shadow:0 0 0 4px var(--volt)}
.hero-search .btn{background:var(--volt);border-color:var(--volt);color:var(--ink);padding:14px 26px}
.hero-search .btn:hover{background:var(--paper);border-color:var(--paper)}
.hero-ia-hint{margin-top:8px;font-size:13px;color:#a1a1aa;font-style:italic}

/* ---------- Accueil : cartes sport ---------- */
.grille-sports{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.sport-card{position:relative;display:flex;flex-direction:column;border-radius:16px;
  border:2px solid var(--ink);overflow:hidden;color:var(--ink);background:var(--paper);
  transition:transform .15s,box-shadow .15s}
.sport-card:hover{transform:translateY(-4px);text-decoration:none;box-shadow:8px 8px 0 var(--c)}
.sport-photo{position:relative;display:block;height:150px;overflow:hidden;
  background:linear-gradient(135deg,var(--c),#0c0c0d)}
/* Traitement « campagne » Nike/Adidas : sombre + contrasté + désaturé, colorisé au survol */
.sport-photo img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(45%) contrast(1.14) brightness(.72);transition:filter .35s ease,transform .5s ease}
.sport-photo::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(12,12,13,.15) 0%,rgba(12,12,13,.55) 100%),
  linear-gradient(120deg,transparent 55%,color-mix(in srgb,var(--c) 45%,transparent) 100%)}
.sport-card:hover .sport-photo img{filter:grayscale(0) contrast(1.05) brightness(.95);transform:scale(1.08)}
.sport-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;
  border-top:4px solid var(--c)}
.sport-nom{font-family:var(--disp);text-transform:uppercase;font-weight:800;font-size:17px;
  letter-spacing:.3px;line-height:1.05}
.sport-fleche{font-family:var(--disp);font-weight:800;color:var(--c);font-size:20px;flex-shrink:0}

/* Commentaire dans la carte coach */
.cc-com{background:var(--mist);border-radius:10px;padding:11px 13px;margin-bottom:12px;flex:1}
.cc-com p{font-size:13px;font-style:italic;line-height:1.45;margin:4px 0}
.cc-com-auteur{font-family:var(--disp);text-transform:uppercase;font-size:12px;font-weight:700;color:var(--muted)}

/* ---------- Accueil : bandeau stats ---------- */
.band-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--ink);
  border-radius:16px;overflow:hidden;margin:46px 0}
.bs{background:var(--ink);color:var(--paper);padding:22px 14px;text-align:center}
.bs-n{display:block;font-family:var(--disp);font-size:40px;font-weight:900;line-height:1;color:var(--volt)}
.bs-n small{font-size:18px;color:#a1a1aa}
.bs-l{font-family:var(--disp);text-transform:uppercase;font-size:12px;letter-spacing:1.2px;color:#d4d4d8}

/* ---------- Accueil : bandeau coachs ---------- */
.band-coachs{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.coach-card{padding:0;overflow:hidden;border:2px solid var(--ink);display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.coach-card:hover{transform:translateY(-4px);box-shadow:8px 8px 0 var(--volt)}
.cc-photo{position:relative;height:170px;background:linear-gradient(135deg,var(--ink),#2a2a30);
  display:flex;align-items:center;justify-content:center;font-size:60px}
.cc-photo img{width:100%;height:100%;object-fit:cover}
.cc-note{position:absolute;top:10px;right:10px;background:var(--volt);color:var(--ink);
  font-family:var(--disp);font-weight:800;font-size:14px;padding:4px 10px;border-radius:999px}
.cc-body{padding:16px;display:flex;flex-direction:column;flex:1}
.cc-body h3{font-size:20px}
.cc-avis{color:var(--muted);font-size:12px;margin-bottom:8px}
.cc-specs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.cc-tarif{font-family:var(--disp);font-weight:700;font-size:16px;margin-bottom:12px;margin-top:auto}

/* ---------- Accueil : témoignages ---------- */
.band-temoins{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.temoin{border-left:6px solid var(--volt)}
.temoin-etoiles{color:#f5a623;font-size:18px;letter-spacing:2px;margin-bottom:8px}
.temoin-txt{font-size:15px;font-style:italic;line-height:1.5;margin-bottom:12px}
.temoin-auteur{font-family:var(--disp);text-transform:uppercase;font-weight:700;letter-spacing:.5px;
  font-size:14px;color:var(--muted)}

/* ---------- Page discipline (vitrine) ---------- */
.disc-hero{position:relative;border-radius:26px;overflow:hidden;margin-bottom:22px;
  background:linear-gradient(130deg,var(--c,#22c55e),#0c0c0d 72%)}
.disc-hero::before{content:"";position:absolute;inset:0;background-image:var(--img);
  background-size:cover;background-position:center;opacity:.55;
  filter:grayscale(35%) contrast(1.12) brightness(.9)}
.disc-hero::after{content:"";position:absolute;top:-30%;right:-8%;width:40%;height:180%;
  background:var(--volt);transform:skewX(-12deg);opacity:.16}
.disc-watermark{position:absolute;right:-10px;bottom:-40px;font-size:220px;line-height:1;
  opacity:.14;z-index:1;filter:grayscale(.2)}
.disc-hero-in{position:relative;z-index:2;padding:58px 44px;color:var(--paper)}
.disc-note-coach{display:inline-block;background:rgba(255,255,255,.14);color:#fff;
  padding:10px 16px;border-radius:10px;font-size:14px}
/* Onglets */
.disc-tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.dt{background:var(--paper);border:2px solid var(--ink);border-radius:999px;padding:10px 22px;
  font-family:var(--disp);text-transform:uppercase;font-weight:700;letter-spacing:.5px;
  font-size:15px;cursor:pointer;transition:.15s}
.dt:hover{background:var(--mist)}
.dt.actif{background:var(--ink);color:var(--volt)}
.disc-pan{margin-bottom:20px}
.disc-pan h2{margin-bottom:14px}
/* Galerie de tuiles générées */
.galerie{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.gtile{position:relative;height:160px;border-radius:16px;overflow:hidden;display:flex;
  align-items:center;justify-content:center;border:2px solid var(--ink);
  background:linear-gradient(135deg,var(--gc,var(--ink)),#0c0c0d)}
.gtile::after{content:"";position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(12,12,13,.15),rgba(12,12,13,.6))}
.gtile span{position:relative;z-index:1;font-size:52px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.6))}
.gtile em{position:absolute;bottom:10px;left:14px;z-index:1;font-style:normal;font-family:var(--disp);
  text-transform:uppercase;font-weight:800;color:#fff;letter-spacing:.5px}
/* Image feed du sport */
.galerie-feed{position:relative;margin-top:24px;border-radius:16px;overflow:hidden;border:2px solid var(--ink)}
.galerie-feed img{width:100%;max-height:380px;object-fit:cover;display:block;
  filter:grayscale(35%) contrast(1.15) brightness(.78)}
.galerie-feed::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 40%,rgba(12,12,13,.6) 100%)}
/* Styles (sous-catégories) cliquables */
.styles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
.style-card{display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:14px;
  overflow:hidden;color:var(--ink);background:var(--paper);transition:transform .15s,box-shadow .15s}
.style-card:hover{transform:translateY(-4px);text-decoration:none;box-shadow:6px 6px 0 var(--volt)}
.style-card img{width:100%;height:100px;object-fit:cover;display:block}
.style-card span{padding:10px 12px;font-family:var(--disp);text-transform:uppercase;font-weight:700;
  letter-spacing:.3px;font-size:15px}
/* Philosophie */
.philo{margin-top:18px;padding:16px 20px;border-left:5px solid var(--volt);background:var(--mist);
  border-radius:0 12px 12px 0;font-style:italic;font-size:16px;color:var(--ink)}
/* Actus */
.actus{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.actu{border-top:5px solid var(--volt)}
.actu h3{font-size:18px;margin-bottom:8px}
.actu p{color:var(--muted);font-size:14px}
.disc-cta{padding:30px 0}
.disc-ico{font-size:56px;display:block;line-height:1}
.disc-eyebrow{margin-top:14px;font-family:var(--disp);text-transform:uppercase;letter-spacing:2px;
  font-size:13px;color:var(--volt)}
.disc-hero h1{font-size:clamp(40px,7vw,74px);font-weight:900;margin-top:6px}
.disc-accroche{margin-top:12px;font-size:20px;max-width:600px;color:#e4e4e7}
.disc-actions{margin-top:26px;display:flex;gap:14px;flex-wrap:wrap}
.disc-hero .btn{background:var(--volt);border-color:var(--volt);color:var(--ink)}
.disc-hero .btn:hover{background:var(--paper);border-color:var(--paper)}
.disc-hero .btn-clair{background:transparent;border-color:rgba(255,255,255,.5);color:var(--paper)}
.disc-hero .btn-clair:hover{background:var(--paper);color:var(--ink)}
.disc-info{margin-top:20px;font-family:var(--disp);text-transform:uppercase;letter-spacing:1.5px;
  font-size:13px;color:#a1a1aa}
.grille-vitrine{display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:center}
.benefices{list-style:none;display:flex;flex-direction:column;gap:12px}
.benefices li{display:flex;align-items:center;gap:12px;background:var(--paper);border:2px solid var(--ink);
  border-radius:12px;padding:14px 18px;font-family:var(--disp);text-transform:uppercase;
  font-weight:600;letter-spacing:.5px;font-size:16px}
.benefices .check{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;
  background:var(--volt);border-radius:50%;font-weight:900;flex-shrink:0}
.grille-produits{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.produit{display:flex;flex-direction:column;padding:18px;border:2px solid var(--line)}
.produit:hover{border-color:var(--ink)}
.produit-img{height:150px;border-radius:12px;background:var(--mist);display:flex;align-items:center;
  justify-content:center;font-size:52px;overflow:hidden;margin-bottom:12px}
.produit-img img{width:100%;height:100%;object-fit:cover}
.produit h3{font-size:19px;margin-bottom:6px}
.produit-desc{color:var(--muted);font-size:13px;margin-bottom:8px;flex:1}
.produit .tarif{margin-bottom:10px}

/* ---------- Planning coach ---------- */
.planning-item{display:flex;justify-content:space-between;align-items:center;gap:16px;
  flex-wrap:wrap;margin-bottom:10px}
.planning-item .actions{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- Boutique ---------- */
.boutique-filtres{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px}
.produit-cat{display:inline-block;font-family:var(--disp);text-transform:uppercase;font-size:11px;
  letter-spacing:.6px;font-weight:700;color:var(--muted);margin-bottom:4px}

/* ---------- FAQ ---------- */
.faq-search{width:100%;padding:15px 18px;border:2px solid var(--ink);border-radius:999px;
  font-size:16px;font-family:var(--body);margin-bottom:8px}
.faq-search:focus{outline:none;box-shadow:0 0 0 4px var(--volt)}
.faq-sommaire{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 28px}
.faq-cat{margin-bottom:26px;scroll-margin-top:80px}
.faq-cat h2{font-size:24px;margin-bottom:12px;padding-left:14px;position:relative}
.faq-cat h2::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:5px;background:var(--volt)}
.faq-item{border:2px solid var(--line);border-radius:12px;margin-bottom:8px;background:var(--paper);
  transition:border .15s}
.faq-item[open]{border-color:var(--ink)}
.faq-item summary{padding:14px 18px;cursor:pointer;font-weight:600;font-size:15px;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--disp);font-size:24px;color:var(--volt-deep);flex-shrink:0}
.faq-item[open] summary::after{content:"–"}
.faq-item summary:hover{color:var(--volt-deep)}
.faq-item p{padding:0 18px 16px;color:var(--muted);font-size:15px;line-height:1.55}

/* ---------- Assistant Jeanne (chat flottant) ---------- */
#jeanne{position:fixed;right:20px;bottom:20px;z-index:100}
#jeanne-bulle{display:flex;align-items:center;gap:8px;background:var(--ink);color:var(--paper);
  border:2px solid var(--volt);border-radius:999px;padding:12px 20px;cursor:pointer;
  font-family:var(--disp);text-transform:uppercase;font-weight:700;letter-spacing:1px;font-size:16px;
  box-shadow:0 6px 24px rgba(12,12,13,.28)}
#jeanne-bulle:hover{background:var(--volt);color:var(--ink)}
.jeanne-ico{font-size:20px}
#jeanne-panneau{position:absolute;right:0;bottom:64px;width:340px;max-width:calc(100vw - 40px);
  height:460px;max-height:calc(100vh - 120px);background:var(--paper);border:2px solid var(--ink);
  border-radius:18px;box-shadow:0 12px 40px rgba(12,12,13,.32);display:flex;flex-direction:column;overflow:hidden}
/* Le display:flex ci-dessus écrasait l'attribut hidden -> la croix ✕ ne
   fermait jamais le panneau (bug Axel 19/07). Cette règle rend la main. */
#jeanne-panneau[hidden]{display:none !important}
.jeanne-tete{background:var(--ink);color:var(--paper);padding:14px 16px;display:flex;
  align-items:center;justify-content:space-between}
.jeanne-tete strong{font-family:var(--disp);text-transform:uppercase;letter-spacing:.5px;font-size:18px;display:block}
.jeanne-tete small{color:var(--volt);font-size:11px;text-transform:uppercase;letter-spacing:1px}
.jeanne-tete button{background:none;border:none;color:var(--paper);font-size:18px;cursor:pointer}
.jeanne-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--mist)}
.jm{max-width:82%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.45;white-space:pre-wrap}
.jm-bot{background:var(--paper);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}
.jm-user{background:var(--ink);color:var(--paper);align-self:flex-end;border-bottom-right-radius:4px}
.jm-attente{opacity:.5;font-style:italic}
.jeanne-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--paper);align-items:center}
.jeanne-form input{flex:1;margin:0;border-radius:999px;padding:11px 15px}
.jeanne-form .btn{padding:10px 18px;font-size:16px}
.jeanne-mic{flex-shrink:0;width:42px;height:42px;border:2px solid var(--ink);background:var(--paper);
  border-radius:50%;cursor:pointer;font-size:18px;line-height:1;transition:.15s}
.jeanne-mic:hover{background:var(--mist)}
.jeanne-mic.actif{background:var(--danger);border-color:var(--danger);animation:jpulse 1s infinite}
@keyframes jpulse{0%,100%{box-shadow:0 0 0 0 rgba(255,59,48,.55)}50%{box-shadow:0 0 0 7px rgba(255,59,48,0)}}
.jeanne-tete button{background:none;border:none;color:var(--paper);font-size:16px;cursor:pointer;padding:2px 4px}
#jeanne-son.actif{color:var(--volt)}

/* ---------- Responsive ---------- */
@media (max-width:760px){
  #jeanne-panneau{height:70vh}
  .grille-vitrine{grid-template-columns:1fr}
  .disc-hero-in{padding:40px 24px}
  .band-stats{grid-template-columns:1fr 1fr}
  .band-coachs{grid-template-columns:1fr 1fr}
  .hero{padding:40px 24px}
  .etapes{grid-template-columns:1fr}
  .grille2{grid-template-columns:1fr}
  .grille-cartes{grid-template-columns:1fr}
  .grille-recherche{grid-template-columns:1fr 1fr}
  .liste-coachs{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .entete-in{height:auto;padding:12px 0;flex-wrap:wrap}
  .nav{gap:14px;font-size:15px}
  .entete-page h1{font-size:30px}
}

/* ===== Galerie photos coach (fiche) ===== */
.galerie-edit{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:6px 0 12px}
.gphoto{margin:0;border:2px solid var(--line);border-radius:12px;overflow:hidden;background:var(--mist)}
.gphoto img{display:block;width:100%;height:96px;object-fit:cover;filter:grayscale(35%) contrast(1.08) brightness(.82)}
.gphoto-suppr{display:flex;align-items:center;gap:6px;justify-content:center;font-size:12.5px;
  padding:5px;background:#fff;cursor:pointer;font-weight:600;color:var(--muted)}
.gphoto-suppr input{accent-color:var(--danger)}

/* ===== Langues parlées ===== */
.langue-ligne{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.langue-ligne input[type=text]{flex:2;margin:0}
.langue-ligne select{flex:1;margin:0}
.btn-mini-x{flex:0 0 auto;width:36px;height:36px;border:2px solid var(--line);background:#fff;
  border-radius:10px;font-size:15px;cursor:pointer;color:var(--muted);line-height:1}
.btn-mini-x:hover{border-color:var(--danger);color:var(--danger)}
.btn-petit{padding:7px 14px;font-size:13px}

/* ===== Planning hebdo interactif ===== */
.pl-legende{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin:0 2px;border:1px solid var(--line)}
.pl-legende.pl-dispo{background:var(--volt)}
.pl-legende.pl-resa{background:var(--ink)}
.planning-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.planning-grille{border-collapse:collapse;width:100%;min-width:640px;table-layout:fixed;user-select:none}
.planning-grille th,.planning-grille td{border:1px solid var(--line);text-align:center}
.planning-grille thead th{background:var(--ink);color:var(--paper);padding:6px 2px;font-family:var(--disp)}
.planning-grille thead th.pl-auj{background:var(--volt-deep);color:var(--ink)}
.planning-grille thead th small{display:block;font-family:var(--body);font-weight:500;font-size:11px;opacity:.75}
.pl-jour{background:transparent;border:0;color:inherit;font:inherit;font-size:16px;letter-spacing:1px;
  text-transform:uppercase;cursor:pointer;padding:0}
.pl-jour:hover{color:var(--volt)}
.planning-grille th.pl-auj .pl-jour:hover{color:var(--paper)}
td.pl-h{background:var(--mist);font-family:var(--disp);font-weight:700;font-size:13px;color:var(--muted);width:46px}
.pl-cell{height:34px;padding:0;position:relative}
.pl-toggle{cursor:pointer;background:#fff;transition:background .08s}
.pl-toggle:hover{background:var(--volt-soft)}
.pl-toggle.on{background:var(--volt)}
.pl-booked{background:var(--ink);color:var(--paper);cursor:not-allowed}
.pl-booked-txt{display:block;font-size:10px;line-height:1.05;font-weight:700;padding:2px}
.pl-booked-txt em{font-style:normal;font-weight:400;opacity:.8}

/* ===== Fiche coach côté client : langues + galerie ===== */
.coach-langues{margin:6px 0 2px;font-size:13px;display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.chip-langue{background:var(--mist);border:1px solid var(--line);border-radius:20px;padding:2px 9px;font-size:12px;font-weight:600}
.coach-galerie{display:flex;gap:6px;overflow-x:auto;margin:8px 0 2px;padding-bottom:2px;-webkit-overflow-scrolling:touch}
.coach-galerie img{flex:0 0 auto;width:88px;height:66px;object-fit:cover;border-radius:8px;
  filter:grayscale(30%) contrast(1.08) brightness(.85);transition:filter .2s,transform .2s}
.coach-galerie img:hover{filter:none;transform:scale(1.04)}

/* ===== Structures sportives (carte) ===== */
.struct-filtre{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin:14px 0}
.struct-filtre label{margin:0}
.struct-map{height:380px;border-radius:14px;overflow:hidden;border:2px solid var(--line);margin:10px 0 18px;z-index:0}
.struct-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:18px;align-items:start}
.struct-liste{display:flex;flex-direction:column;gap:10px;max-height:640px;overflow-y:auto;padding-right:4px}
.struct-card{display:flex;gap:12px;align-items:flex-start;text-decoration:none;color:inherit;
  background:var(--paper);border:2px solid var(--line);border-radius:13px;padding:12px 13px;transition:border-color .12s,transform .12s}
.struct-card:hover{border-color:var(--volt);transform:translateX(2px)}
.struct-card.actif{border-color:var(--ink);box-shadow:4px 4px 0 var(--volt)}
.struct-ic{width:42px;height:42px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;font-size:21px;background:var(--mist)}
.struct-meta{min-width:0}
.struct-meta strong{display:block;line-height:1.15}
.struct-sports{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.mini-chip{font-size:11px;font-weight:600;background:var(--mist);border:1px solid var(--line);border-radius:20px;padding:1px 8px;color:var(--ink)}
.mini-chip.vide{color:var(--muted);font-style:italic}
.struct-detail{background:var(--paper);border:2px solid var(--line);border-radius:15px;padding:20px;position:sticky;top:14px}
.struct-detail h3{font-family:var(--disp);text-transform:uppercase;letter-spacing:.5px;font-size:16px;margin:18px 0 8px}
.struct-vide{color:var(--muted);text-align:center;padding:40px 10px}
.chip-sport{display:inline-block;font-size:13px;font-weight:600;background:var(--ink);color:var(--paper);
  border-radius:20px;padding:4px 12px;text-decoration:none;transition:background .12s}
.chip-sport:hover{background:var(--volt);color:var(--ink)}
.struct-coach{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0}
.struct-coach-bloc{border-top:1px solid var(--line);padding-bottom:10px}
.struct-coach-bloc:first-of-type{border-top:none}
/* réservation directe depuis la fiche structure */
.resa-direct{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:end;background:var(--mist);
  border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.resa-direct label{margin:0;font-size:12px;font-weight:600}
.resa-direct select,.resa-direct input[type=date]{margin:0;padding:6px 8px;font-size:13px;width:auto;display:block}
.resa-deplie summary::-webkit-details-marker{display:none}
.resa-deplie summary::marker{content:''}
.resa-deplie[open] summary{opacity:.65}
.struct-ajout{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:6px}
.struct-ajout label{margin:0}
.ligne-tarif{display:inline-flex;gap:6px;align-items:center;margin:0}
.tableau-mini td{padding:4px 10px !important;font-size:13.5px}
/* pins carte */
.pin{width:30px;height:30px;display:grid;place-items:center;font-size:16px;background:var(--paper);
  border:2px solid var(--ink);border-radius:50% 50% 50% 4px;box-shadow:0 2px 5px rgba(0,0,0,.3);transform:rotate(-2deg)}
.pin-on{background:var(--volt);border-color:var(--ink);transform:scale(1.2) rotate(-2deg)}
.pin-coach{background:var(--volt);box-shadow:0 2px 5px rgba(0,0,0,.3),0 0 0 3px rgba(201,255,0,.35)}
.chip-dispo{background:var(--volt);border-color:var(--volt-deep);font-weight:700}

/* Salles du coach : déclaration des sports par salle */
.salle-carte{margin-bottom:12px;padding:14px 16px}
.salle-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.salle-form{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.cases-serres{gap:6px}
.cases-serres .case span{padding:5px 10px;font-size:13px}
.mini-photos{display:flex;gap:4px;margin-top:5px}
.mini-photos img{width:44px;height:34px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}

/* Créneaux par pas de 10 min : chips compactes, zone scrollable */
.creneaux-10{max-height:132px;overflow-y:auto;display:flex;flex-wrap:wrap;gap:6px;
  padding:4px 2px;border:1px solid var(--line);border-radius:10px;background:var(--mist)}
.creneaux-10 .creneau{padding:5px 10px;font-size:13px;font-variant-numeric:tabular-nums;
  background:#fff;color:var(--ink);border-color:var(--line);font-weight:700}
.creneaux-10 .creneau:hover{background:var(--volt);border-color:var(--volt);color:var(--ink)}
/* Bouton payer */
.btn-payer{background:var(--volt);border:2px solid var(--volt);color:var(--ink);font-weight:800;
  padding:8px 16px;border-radius:10px;text-decoration:none;display:inline-block;text-transform:uppercase;
  font-size:13.5px;letter-spacing:.5px;cursor:pointer}
.btn-payer:hover{background:var(--ink);border-color:var(--ink);color:var(--volt)}

/* ===== Détail résa + fenêtre merchandising ===== */
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start;
  max-width:950px;margin:0 auto}
.detail-layout.seul{grid-template-columns:1fr;max-width:600px}
.merch-aside{position:sticky;top:14px;border-radius:16px;padding:18px}
.merch-dark{background:var(--ink);color:var(--paper);box-shadow:8px 8px 0 var(--volt);overflow:hidden}
.merch-titre{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.merch-dark h3{margin:0;font-family:var(--disp);text-transform:uppercase;font-size:27px;
  line-height:.95;letter-spacing:.5px;color:var(--volt)}
.merch-sport{background:var(--volt);color:var(--ink);font-family:var(--disp);text-transform:uppercase;
  font-size:13px;font-weight:700;padding:3px 10px;transform:skewX(-8deg);white-space:nowrap}
.merch-pitch{font-size:13px;color:#c8c8bd;margin:10px 0 12px}
.merch-slider{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:8px;-webkit-overflow-scrolling:touch}
.merch-slider::-webkit-scrollbar{height:6px}
.merch-slider::-webkit-scrollbar-thumb{background:var(--volt);border-radius:3px}
.merch-slider::-webkit-scrollbar-track{background:#2a2a2d;border-radius:3px}
.merch-card{flex:0 0 150px;scroll-snap-align:start;background:#1c1c1f;border:1px solid #2f2f33;
  border-radius:12px;overflow:hidden;transition:transform .15s,border-color .15s}
.merch-card:hover{transform:translateY(-3px);border-color:var(--volt)}
.merch-img{height:96px;background:#26262a;display:grid;place-items:center;font-size:34px}
.merch-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(35%) contrast(1.12) brightness(.8);
  transition:filter .2s}
.merch-card:hover .merch-img img{filter:none}
.merch-infos{padding:8px 10px 10px}
.merch-nom{font-size:12.5px;font-weight:600;line-height:1.25;min-height:32px;color:#eee}
.merch-bas{display:flex;justify-content:space-between;align-items:center;margin-top:6px;gap:6px}
.merch-bas form{margin:0}
.merch-prix{font-family:var(--disp);font-size:15px;font-weight:700;color:var(--volt);white-space:nowrap}
.merch-add{width:30px;height:30px;border-radius:50%;border:0;background:var(--volt);color:var(--ink);
  font-size:19px;font-weight:800;line-height:1;cursor:pointer;transition:transform .12s}
.merch-add:hover{transform:scale(1.15)}
.merch-panier-lien{display:block;text-align:center;margin-top:10px;color:#c8c8bd;font-size:13px;
  text-decoration:none}
.merch-panier-lien:hover{color:var(--volt)}

/* ===== Page ARTICLE (boutique normalisée) ===== */
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;
  align-items:start;margin:10px 0 8px}
.article-photo{height:380px;background:#17171a;border-radius:16px;overflow:hidden;
  display:grid;place-items:center}
.article-photo img{width:100%;height:100%;object-fit:cover}
.article-vignettes{display:flex;gap:8px;margin-top:8px;overflow-x:auto}
.article-vignettes img{width:70px;height:54px;object-fit:cover;border-radius:8px;cursor:pointer;
  border:2px solid var(--line);transition:border-color .12s}
.article-vignettes img:hover{border-color:var(--volt)}
.article-fiche h1{font-size:clamp(26px,4vw,40px);margin:6px 0 4px}
.article-desc{color:var(--muted);font-size:15px}
.article-prix{font-family:var(--disp);font-size:34px;font-weight:800;margin:10px 0}
.variantes-choix{display:flex;flex-direction:column;gap:6px}
.variante{display:flex;gap:10px;align-items:center;border:2px solid var(--line);border-radius:10px;
  padding:8px 12px;cursor:pointer;transition:border-color .12s}
.variante:has(input:checked){border-color:var(--ink);background:var(--volt-soft)}
.variante.rupture{opacity:.45;cursor:not-allowed}
.variante small{display:block;color:var(--muted);font-weight:400}
.variante-mini{width:42px;height:34px;object-fit:cover;border-radius:6px;flex:0 0 auto}
/* onglet commandes fournisseur */
.cmd-client{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--mist);
  border-radius:10px;padding:10px 12px;font-size:13.5px}
@media (max-width:560px){.cmd-client{grid-template-columns:1fr}}
/* code de réception (séquestre livraison) */
.code-reception{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  background:var(--volt-soft);border:2px dashed var(--volt-deep);border-radius:14px;
  padding:14px 16px;margin-top:14px}
.code-chiffres{font-family:var(--disp);font-size:42px;font-weight:800;letter-spacing:12px;
  color:var(--ink);line-height:1.1}
.produit-lien{text-decoration:none;color:inherit}
.produit-lien-img{display:block;text-decoration:none}
.produit-titre-lien{text-decoration:none;color:inherit}
.produit-titre-lien:hover{color:var(--volt-deep)}
@media (max-width:760px){.article-layout{grid-template-columns:1fr}.article-photo{height:260px}}

/* ===== Page UPSELL équipement (entre réservation et paiement) ===== */
.upsell-tete{margin:6px 0 18px}
.upsell-etape{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);margin:0 0 6px}
.upsell-etape strong{color:var(--ink);background:var(--volt);padding:1px 8px;transform:skewX(-8deg);
  display:inline-block}
.upsell-sport{background:var(--ink);color:var(--volt);padding:0 10px;display:inline-block;
  transform:skewX(-6deg)}
.upsell-grille{margin-bottom:110px}
.upsell-qte{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:4px;
  font-size:17px;font-variant-numeric:tabular-nums}
.upsell-barre{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ink);color:var(--paper);
  display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  padding:12px clamp(16px,4vw,48px);box-shadow:0 -6px 24px rgba(0,0,0,.25)}
.upsell-total{display:flex;flex-direction:column}
.upsell-total .aide{color:#c8c8bd}
.upsell-total strong{font-family:var(--disp);font-size:22px;text-transform:uppercase;
  letter-spacing:.5px;color:var(--volt)}
.upsell-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.upsell-actions .btn-clair{background:transparent;color:var(--paper);border-color:#4a4a50}
.upsell-actions .btn-clair:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
@media (max-width:640px){.upsell-barre{flex-direction:column;align-items:stretch;text-align:center}
  .upsell-actions{justify-content:center}}

/* ===== Panier ===== */
.nav-panier{position:relative;font-size:18px}
.panier-badge{position:absolute;top:-7px;right:-11px;background:var(--volt);color:var(--ink);
  font-size:10.5px;font-weight:800;border-radius:999px;padding:1px 5px;border:1px solid var(--ink)}
.panier-ligne{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.panier-ligne>div:first-child{flex:1;min-width:0}
.panier-seance{background:var(--volt-soft);border-radius:10px;padding:12px;border-bottom:none;margin-bottom:6px}
.panier-qte{display:flex;align-items:center;gap:8px;font-weight:700;font-variant-numeric:tabular-nums}
.panier-qte form{margin:0}
.panier-prix{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.panier-ligne form{margin:0}
.panier-total{display:flex;justify-content:space-between;align-items:center;padding:16px 0;
  font-size:19px;font-family:var(--disp);text-transform:uppercase;letter-spacing:.5px}
@media (max-width:820px){.detail-layout{grid-template-columns:1fr}.merch-aside{position:static}}

/* ===== Fournisseurs : tickets + chat commande ===== */
.ticket-carte{margin-bottom:12px;border-left:5px solid var(--volt);padding:14px 16px}
.ticket-tete{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.chat-fil{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;
  background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:12px}
.chat-msg{max-width:80%;background:#fff;border:1px solid var(--line);border-radius:12px 12px 12px 4px;
  padding:8px 12px;align-self:flex-start}
.chat-msg.moi{align-self:flex-end;background:var(--volt-soft);border-color:var(--volt-deep);
  border-radius:12px 12px 4px 12px}
.chat-de{font-size:11.5px;font-weight:700;color:var(--muted);margin-bottom:2px}
.chat-de small{font-weight:400}
.chat-texte{font-size:14px;white-space:pre-wrap;word-break:break-word}
.chat-form{display:flex;gap:8px;margin-top:10px}
.chat-form input{flex:1;margin:0}
.chat-form .btn{flex:0 0 auto}
.badge-ok{background:var(--ok-bg,#e6f9f0);color:var(--ok,#12b76a)}
.badge-att{background:var(--warn-bg,#fff5e6);color:var(--warn,#f59e0b)}
.badge-ko{background:var(--danger-bg,#ffe9e7);color:var(--danger,#ff3b30)}
@media (max-width:760px){.struct-layout{grid-template-columns:1fr}.struct-detail{position:static}}

/* décharge médicale (réservation) — écrase le style global des labels de form */
.decharge-label{display:flex !important;gap:9px;align-items:flex-start;margin:10px 0 4px;
  font-size:12.5px !important;font-family:var(--body) !important;text-transform:none !important;
  letter-spacing:0 !important;font-weight:500 !important;line-height:1.45;
  color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:9px 11px;cursor:pointer}
/* la règle globale « form input » (width:100%, padding 12px, bordure, fond blanc)
   transforme la checkbox en énorme boîte — on remet une vraie petite case */
.decharge-label input{flex:0 0 auto;width:15px;height:15px;min-width:15px;
  margin:2px 0 0;padding:0;border:none;border-radius:3px;box-shadow:none;
  accent-color:var(--volt-deep)}
.decharge-label span{flex:1;min-width:0}
.decharge-label.manque{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}

/* ---------- Sous-navigation persistante de l'espace coach ---------- */
.coach-sousnav{flex-wrap:wrap;gap:10px}
.coach-sousnav-btns{display:flex;flex-wrap:wrap;gap:8px}
.coach-sousnav-btns .btn{padding:8px 14px;font-size:13.5px;letter-spacing:.5px}

/* ---------- Passe MOBILE (téléphone d'abord — 20/07) ---------- */
@media (max-width:640px){
  .contenu{padding:16px 12px 50px}
  .carte{padding:18px 14px}
  .hero{padding:34px 18px;border-radius:18px}
  .btn-gros{padding:13px 18px;font-size:16px}
  .btn-xl{padding:18px 26px;font-size:20px;width:100%;text-align:center}
  .bloc{margin:30px 0}
  .etapes{grid-template-columns:1fr}
  .liste-coachs{grid-template-columns:1fr}
  .grille2{grid-template-columns:1fr !important}
  .grille-recherche{grid-template-columns:1fr 1fr}
  .carte table{display:block;overflow-x:auto}
  .stepper{gap:5px}
  .stepper li{font-size:11px;padding:5px 9px 5px 6px}
  .coach-sousnav-btns .btn{flex:1 1 46%;text-align:center;padding:9px 6px;font-size:12px}
  .planning-item{flex-direction:column;align-items:flex-start;gap:8px}
  .entete-page{flex-direction:column;align-items:flex-start;gap:8px}
  .lieu-ligne .btn{width:100%}
  .creneaux-10{max-height:180px}
  .coach-photo{width:92px;height:92px}
}
