:root{
  --ink:#0A0A0B;
  --surface:#111113;
  --surface-2:#17171A;
  --surface-3:#202024;
  --line:#2B2B31;
  --line-2:#3A3A42;
  --text:#F4F2ED;
  --text-2:#A5A19A;
  --text-3:#6F6B64;
  --accent:#D93B2B;
  --accent-2:#EC5442;
  --accent-soft:rgba(217,59,43,.13);
  --accent-line:rgba(217,59,43,.34);
  --on-accent:#0A0A0B;
  --warn:#E0A33B;
  --warn-soft:rgba(224,163,59,.15);
  --warn-line:rgba(224,163,59,.34);
  --good:#5BC08C;
  --good-soft:rgba(91,192,140,.14);
  --bad:#FF8074;
  --bad-soft:rgba(255,128,116,.15);
  --info:#7BA0E4;
  --info-soft:rgba(123,160,228,.14);
  --r:4px;
  --r-lg:10px;
  --maxw:1180px;
  --f-display:"Anton","Arial Narrow",Impact,sans-serif;
  --f-body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0;background:var(--ink);color:var(--text);
  font-family:var(--f-body);font-size:15px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
input,select,textarea{font:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- type ---------- */
h1,h2,h3,h4{margin:0;font-family:var(--f-display);font-weight:400;text-transform:uppercase;letter-spacing:.005em;text-wrap:balance;line-height:.95}
h1{font-size:clamp(42px,6.4vw,78px)}
h2{font-size:clamp(28px,3.6vw,44px)}
h3{font-size:22px}
h4{font-size:16px;letter-spacing:.04em}
p{margin:0}
.lede{font-size:17px;color:var(--text-2);max-width:60ch}
.eyebrow{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);display:inline-flex;align-items:center;gap:9px;
}
.eyebrow::before{content:"";width:16px;height:9px;background:var(--accent);
  clip-path:polygon(28% 0,100% 0,72% 100%,0 100%)}
.mono{font-family:var(--f-mono)}
.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--text-2)}
.small{font-size:13px}
.tiny{font-size:12px}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.stack{display:flex;flex-direction:column}
.g8{gap:8px}.g12{gap:12px}.g16{gap:16px}.g24{gap:24px}.g32{gap:32px}.g48{gap:48px}
.row{display:flex;align-items:center;gap:12px}
.row-b{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.section{padding:88px 0}
.section-tight{padding:56px 0}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* diagonal bar motif = the SILLON furrows */
.furrows{
  background-image:repeating-linear-gradient(115deg,
    rgba(217,59,43,.09) 0 2px, transparent 2px 15px);
}
.furrows-dim{
  background-image:repeating-linear-gradient(115deg,
    rgba(244,242,237,.045) 0 2px, transparent 2px 13px);
}


/* ---------- header ---------- */
header.site{
  position:sticky;top:0;z-index:120;background:var(--ink);
  border-bottom:1px solid var(--line);
}
header.site .headbar{display:flex;align-items:center;gap:28px;height:66px}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo .mark{width:26px;height:26px}
.logo .wm{font-family:var(--f-display);font-size:22px;letter-spacing:.1em}
nav.main{display:flex;gap:4px;margin-left:8px;flex-wrap:wrap}
nav.main a{
  padding:8px 12px;font-size:13.5px;font-weight:600;color:var(--text-2);
  border-radius:var(--r);letter-spacing:.01em;
}
nav.main a:hover{color:var(--text);background:var(--surface-2)}
nav.main a.on{color:var(--accent)}
.head-right{margin-left:auto;display:flex;align-items:center;gap:10px}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 20px;border-radius:var(--r);font-weight:700;font-size:13.5px;
  letter-spacing:.02em;text-transform:uppercase;font-family:var(--f-body);
  border:1px solid transparent;transition:background .15s,border-color .15s,color .15s;
}
.btn-accent{background:var(--accent);color:var(--on-accent)}
.btn-accent:hover{background:var(--accent-2)}
.btn-ghost{border-color:var(--line-2);color:var(--text)}
.btn-ghost:hover{border-color:var(--text-2);background:var(--surface-2)}
.btn-quiet{color:var(--text-2);padding:11px 14px}
.btn-quiet:hover{color:var(--text)}
.btn-sm{padding:7px 13px;font-size:12px}
.btn-block{width:100%}

/* ---------- image placeholders ---------- */
.ph{
  position:relative;background:var(--surface-2);border:1px dashed var(--line-2);
  border-radius:var(--r);display:flex;align-items:center;justify-content:center;
  overflow:hidden;color:var(--text-3);
}
.ph::before{content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(115deg,rgba(244,242,237,.05) 0 2px,transparent 2px 14px)}
.ph .ph-tag{
  position:relative;font-family:var(--f-mono);font-size:11px;line-height:1.5;
  text-align:center;padding:8px 12px;background:rgba(8,8,10,.72);
  border:1px solid var(--line);border-radius:3px;max-width:88%;
}
.ph .ph-tag b{display:block;color:var(--accent);font-weight:500;letter-spacing:.06em}
.ph-r-16-9{aspect-ratio:16/9}
.ph-r-4-3{aspect-ratio:4/3}
.ph-r-3-4{aspect-ratio:3/4}
.ph-r-1-1{aspect-ratio:1/1}
.ph-r-21-9{aspect-ratio:21/9}
.ph-avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0}
.ph-avatar .ph-tag{display:none}
.ph-avatar::after{content:attr(data-ini);position:relative;font-family:var(--f-mono);
  font-size:13px;color:var(--text-2)}

/* ---------- cards & surfaces ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px}
.card-flat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.panel-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;
  align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.panel-head h4{font-size:15px}
.panel-body{padding:20px}
.grid{display:grid;gap:18px}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.g-3,.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.g-2,.g-3,.g-4{grid-template-columns:minmax(0,1fr)}}

/* ---------- pills / chips ---------- */
.pill{
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:100px;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;
  border:1px solid transparent;white-space:nowrap;
}
.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.pill-good{background:var(--good-soft);color:var(--good);border-color:rgba(91,192,140,.3)}
.pill-bad{background:var(--bad-soft);color:var(--bad);border-color:rgba(255,128,116,.34)}
.pill-warn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}
.pill-info{background:var(--info-soft);color:var(--info);border-color:rgba(123,160,228,.3)}
.pill-mute{background:var(--surface-3);color:var(--text-2);border-color:var(--line)}

/* ---------- tables ---------- */
table.t{width:100%;border-collapse:collapse;font-size:13.5px}
table.t th{
  text-align:left;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--text-3);font-weight:500;
  padding:11px 16px;border-bottom:1px solid var(--line);white-space:nowrap;
}
table.t td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
table.t tr:last-child td{border-bottom:0}
table.t tbody tr:hover{background:var(--surface-2)}
table.t .r{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--f-mono)}
.tscroll{overflow-x:auto}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--text-3)}
.field input,.field select,.field textarea{
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);
  padding:11px 13px;color:var(--text);font-size:14px;width:100%;
}
.field input::placeholder,.field textarea::placeholder{color:var(--text-3)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-line);outline:none}
.help{font-size:12px;color:var(--text-3)}

/* ---------- progress ---------- */
.bar{height:6px;background:var(--surface-3);border-radius:100px;overflow:hidden}
.bar>span{display:block;height:100%;background:var(--accent);border-radius:100px}
.bar-good>span{background:var(--good)}

/* ---------- hero ---------- */
.hero{position:relative;border-bottom:1px solid var(--line);overflow:hidden}
.hero .inner{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:44px;
  align-items:center;padding-top:76px;padding-bottom:84px}
@media(max-width:900px){.hero .inner{grid-template-columns:minmax(0,1fr);padding-top:52px;padding-bottom:60px}}
.hero h1 span.acc{color:var(--accent)}
.slash{display:block;width:64px;height:12px;background:var(--accent);
  clip-path:polygon(28% 0,100% 0,72% 100%,0 100%)}

/* ---------- program cards ---------- */
.prog{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;transition:border-color .15s}
.prog:hover{border-color:var(--line-2)}
.prog .body{padding:18px;display:flex;flex-direction:column;gap:12px;flex:1}
.prog .price{font-family:var(--f-display);font-size:30px;color:var(--accent)}
.prog ul{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:7px}
.prog ul li{font-size:13.5px;color:var(--text-2);padding-left:18px;position:relative}
.prog ul li::before{content:"";position:absolute;left:0;top:8px;width:10px;height:6px;
  background:var(--accent);clip-path:polygon(28% 0,100% 0,72% 100%,0 100%)}

/* ---------- tabs (member/coach/admin) ---------- */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto}
.tabs button{
  padding:12px 16px;font-size:13.5px;font-weight:600;color:var(--text-2);
  border-bottom:2px solid transparent;white-space:nowrap;
}
.tabs button:hover{color:var(--text)}
.tabs button.on{color:var(--text);border-bottom-color:var(--accent)}

/* ---------- subscription card ---------- */
.subcard{
  position:relative;border-radius:var(--r-lg);border:1px solid var(--accent-line);
  background:linear-gradient(150deg,rgba(217,59,43,.14),rgba(217,59,43,.03) 55%),var(--surface);
  padding:24px;overflow:hidden;
}
.subcard.off{border-color:var(--line);background:var(--surface)}
.subcard::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(115deg,rgba(244,242,237,.04) 0 2px,transparent 2px 16px)}
.subcard>*{position:relative}
.subcard .who{font-family:var(--f-display);font-size:26px}

/* ---------- stat tiles ---------- */
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;
  display:flex;flex-direction:column;gap:10px}
.stat .k{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--text-3)}
.stat .v{font-family:var(--f-display);font-size:34px;line-height:1;font-variant-numeric:tabular-nums}
.stat .d{font-family:var(--f-mono);font-size:12px}
.stat .d.up{color:var(--good)}
.stat .d.down{color:var(--bad)}

/* ---------- faq ---------- */
details.faq{border-bottom:1px solid var(--line);padding:4px 0}
details.faq summary{cursor:pointer;list-style:none;padding:18px 0;display:flex;gap:14px;
  align-items:flex-start;font-weight:600;font-size:16px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::before{content:"+";font-family:var(--f-mono);color:var(--accent);
  font-size:18px;line-height:1.3;flex-shrink:0}
details.faq[open] summary::before{content:"–"}
details.faq .a{padding:0 0 18px 30px;color:var(--text-2);max-width:70ch}

/* ---------- modal ---------- */
.ov{position:fixed;inset:0;z-index:300;background:rgba(6,6,8,.78);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:24px}
.ov[hidden]{display:none!important}
.modal{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-lg);
  width:100%;max-width:520px;max-height:86vh;overflow:auto}
.modal .m-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;
  align-items:center;justify-content:space-between;gap:12px}
.modal .m-body{padding:24px;display:flex;flex-direction:column;gap:18px}
.code-box{
  font-family:var(--f-mono);font-size:22px;letter-spacing:.14em;text-align:center;
  padding:16px;border:1px dashed var(--accent-line);border-radius:var(--r);
  background:var(--accent-soft);color:var(--accent);
}
ol.steps{margin:0;padding-left:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:12px}
ol.steps li{counter-increment:s;padding-left:34px;position:relative;font-size:14px;color:var(--text-2)}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:1px;width:22px;height:22px;
  border-radius:50%;background:var(--accent);color:var(--on-accent);font-family:var(--f-mono);
  font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:600}
ol.steps li b{color:var(--text)}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--line);background:var(--surface);padding:48px 0 32px;margin-top:8px}
footer.site a{color:var(--text-2);font-size:13.5px}
footer.site a:hover{color:var(--accent)}

/* ---------- misc ---------- */
.note{border-left:2px solid var(--accent);padding:10px 0 10px 14px;color:var(--text-2);font-size:13.5px}
.sidebyside{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}
@media(max-width:800px){.sidebyside{grid-template-columns:1fr}}
.kv{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.kv:last-child{border-bottom:0}
.kv span:first-child{color:var(--text-3)}
[hidden]{display:none!important}
.chart-wrap{overflow-x:auto}

/* ---------- ajouts site ---------- */
.alert{border-radius:var(--r);padding:12px 14px;font-size:13.5px;border:1px solid}
.alert-err{background:var(--bad-soft);border-color:rgba(255,128,116,.34);color:var(--bad)}
.alert-ok{background:var(--good-soft);border-color:rgba(91,192,140,.3);color:var(--good)}
.tab-panel[hidden]{display:none!important}
.burger{display:none}

.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:8px;z-index:500;background:var(--accent);color:var(--on-accent);padding:8px 14px;border-radius:4px}

/* carte programme : le visuel occupe toute la largeur, sans arrondi interne */
.prog > a{display:block}
.prog > a .ph, .prog > a img{border-radius:0;border-left:0;border-right:0;border-top:0;display:block}


/* =====================================================================
   MOBILE — grilles fixes converties en classes, puis points de rupture
   ===================================================================== */

.split-aside{grid-template-columns:minmax(0,1fr) var(--aside,320px);gap:24px}
.split-detail{grid-template-columns:1.1fr .9fr;gap:40px}
.split-charts{grid-template-columns:1.4fr 1fr;gap:18px}
.split-media{grid-template-columns:180px minmax(0,1fr);gap:20px}
.sbs-coach{grid-template-columns:380px minmax(0,1fr);gap:44px}
.sub-right{text-align:right;min-width:150px}
.nav-account{display:none}

/* --- tablette --- */
@media(max-width:980px){
  .split-aside,.split-charts{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:900px){
  .split-detail{grid-template-columns:minmax(0,1fr);gap:28px}
  .sbs-coach{grid-template-columns:minmax(0,1fr);gap:28px}
  .sbs-coach > .stack:first-child{max-width:420px}
}

/* --- menu burger --- */
@media(max-width:860px){
  .burger{display:inline-flex;margin-left:auto}
  header.site .headbar{position:relative}
  nav.main{display:none;position:absolute;top:66px;left:0;right:0;background:var(--surface);
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;
    padding:6px 0 14px;gap:0;z-index:130;box-shadow:0 18px 30px rgba(0,0,0,.45)}
  nav.main.open{display:flex}
  nav.main a{padding:14px 2px;border-bottom:1px solid var(--line);font-size:15px}
  .nav-account{display:flex;flex-direction:column;padding-top:6px}
  .nav-account a{color:var(--accent);font-weight:700}
  .nav-account a:last-child{border-bottom:0}
  .head-right{margin-left:12px;gap:8px}
}

/* --- téléphone --- */
@media(max-width:700px){
  .hide-mobile{display:none!important}
  .section{padding:52px 0}
  .section-tight{padding:34px 0}
  .hero .inner{padding-top:40px;padding-bottom:44px;gap:30px}
  .card{padding:18px}
  .panel-body{padding:16px}
  .panel-head{padding:14px 16px}
  .stat{padding:15px}
  .stat .v{font-size:26px}
  .lede{font-size:16px}
  h3{font-size:19px}
  .tabs{gap:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs button{padding:12px 13px}
}

@media(max-width:620px){
  /* les tuiles de chiffres restent sur deux colonnes, sinon la page n'en finit plus */
  .grid.g-4:has(.stat),.grid.g-3:has(.stat){grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  footer.site .grid.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:560px){
  .wrap{padding:0 16px}
  .split-media{grid-template-columns:minmax(0,1fr)}
  .split-media > .ph,.split-media > img{max-width:200px}
  .sub-right{text-align:left;min-width:0}
  .subcard{padding:18px}
  .subcard .who{font-size:21px}
  .subcard .sub-top{flex-direction:column;align-items:flex-start;gap:14px}
  .section{padding:44px 0}
  .btn{padding:10px 15px;font-size:12.5px}
  .btn-sm{padding:8px 12px;font-size:11.5px}
  table.t td,table.t th{padding:10px 12px}
  ol.steps li{padding-left:30px}
  .code-box{font-size:17px;letter-spacing:.1em;padding:14px 8px}
  .grid{gap:14px}
  /* les graphiques se réduisent au lieu de forcer un défilement horizontal */
  .chart-wrap svg{min-width:0!important}
  /* évite le zoom automatique d'iOS à la mise au point d'un champ */
  input,select,textarea{font-size:16px}
  .logo .wm{font-size:19px}
  .eyebrow{font-size:10px;letter-spacing:.15em}
}

@media(max-width:400px){
  footer.site .grid.g-4{grid-template-columns:minmax(0,1fr)}
  .grid.g-4:has(.stat),.grid.g-3:has(.stat){gap:10px}
  .stat .v{font-size:23px}
}

/* les longues valeurs (e-mails, codes) ne débordent jamais de leur colonne */
body{overflow-wrap:break-word}
table.t{min-width:520px}
.tscroll{-webkit-overflow-scrolling:touch}
