/* index.html — frise horaire + home specifics (depends on site.css + sessions.css) */
.hero-canon{ margin:20px 0 0; font-size:16px; line-height:1.5; color:var(--fg); font-weight:600; }
.pass-price .btn-orange{ margin-top:6px; }
.pass-price .txt-link{ margin-top:4px; }
.section-sub{ font-size:clamp(16px,2vw,19px); line-height:1.5; color:var(--muted); margin:0; max-width:64ch; text-wrap:pretty; }
#communaute .section-head-row{ gap:0; margin-bottom:32px; }
#communaute .section-sub{ margin-top:28px; max-width:60ch; }
.hero-proof{ margin:18px 0 0; }
.hero-ctas{ margin-top:28px; }
.sticky-cta .lbl small{ white-space:nowrap; }
.coach-roster{ overflow-x:auto; scroll-snap-type:x mandatory; }
.sess .s-book{ white-space:normal; }
@media (max-width:767px){ .coach-roster{ overflow-x:auto !important; scroll-snap-type:x mandatory !important; } }
.home .hero{ min-height:0; }
.section-sub strong{ color:var(--fg); font-weight:600; }
.after-plan{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 28px; margin:18px 0 0; }
.after-plan .sched-foot{ margin:0; }
.sub-h3{ font-family:var(--display); font-weight:900; text-transform:uppercase; letter-spacing:-0.02em; font-size:clamp(26px,4vw,40px); line-height:1.02; padding-top:0.06em; margin:56px 0 24px; max-width:20ch; text-wrap:balance; }
.store-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.lieu-meta{ display:flex; flex-wrap:wrap; gap:8px 20px; margin:14px 0 0; font-size:15px; color:var(--muted); }
.lieu-meta strong{ color:var(--fg); font-weight:600; }
.lieu-next{ margin:22px 0 0; font-family:var(--mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent); }
.gallery3{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gallery3 .ph{ position:relative; overflow:hidden; border:1px solid var(--line); aspect-ratio:1; }
.gallery3 .ph:first-child{ grid-column:1/-1; aspect-ratio:16/10; }
.gallery3 .ph img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); }
.gallery3 .ph .lbl{ position:absolute; bottom:8px; left:8px; font-family:var(--mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase; background:var(--bg); color:var(--fg); padding:3px 7px; }
@media (min-width:1024px){ .gallery3{ grid-template-columns:1fr 1fr; grid-auto-rows:1fr; height:100%; } .gallery3 .ph,.gallery3 .ph:first-child{ aspect-ratio:auto; } }
.seg-more{ margin:20px 0 0; }
.finalband .btn-white{ display:inline-flex; align-items:center; min-height:52px; padding:14px 24px; background:#fff; color:var(--accent-deep); font-weight:700; font-size:16px; text-decoration:none; }
.finalband .btn-white:hover{ background:var(--bg); color:#fff; }
.conduct-item p strong{ font-size:15px; }

/* ---- frise horaire (bureau) ---- */
.tl{ display:none; border:1px solid var(--line-strong); background:var(--bg); padding:0 24px 8px; }
.tl-axis,.tl-row{ display:grid; grid-template-columns:130px 1fr; }
.tl-axis{ height:40px; align-items:end; border-bottom:1px solid #3A3A3A; }
.tl-hours{ position:relative; height:100%; }
.tl-hours span{ position:absolute; bottom:10px; transform:translateX(-50%); font-family:var(--mono); font-size:12px; letter-spacing:0.08em; color:var(--muted); }
.tl-row{ border-bottom:1px solid #3A3A3A; }
.tl-row:last-of-type{ border-bottom:0; }
.tl-day{ font-family:var(--display); font-weight:800; font-size:22px; text-transform:uppercase; letter-spacing:-0.01em; color:var(--fg); display:flex; align-items:center; }
.tl-tracks{ position:relative; background-image:repeating-linear-gradient(90deg, transparent 0 calc(14.2857% - 1px), rgba(245,242,236,0.18) calc(14.2857% - 1px) 14.2857%); background-size:100% 100%; }
.tl-tracks::before{ content:''; position:absolute; inset:0; background:repeating-linear-gradient(180deg, var(--bg) 0 6px, transparent 6px 10px); mix-blend-mode:normal; pointer-events:none; opacity:0; }
.tl-track{ position:relative; height:72px; }
.tl-track + .tl-track{ border-top:1px dashed rgba(245,242,236,0.1); }
.tl-bar{ position:absolute; top:8px; height:56px; min-width:56px; border-radius:28px; display:flex; align-items:center; padding:0 8px; box-sizing:border-box; }
.tl-bar.al-r{ justify-content:flex-end; }
.tl-bar img{ flex:0 0 40px; width:40px; height:40px; border-radius:50%; object-fit:cover; border:2px solid rgba(10,10,10,0.6); }
.f-lutte{ background:#EB5C1B; } .f-leg{ background:#F2A88C; } .f-fond{ background:#F5F2EC; } .f-semi{ background:#8B8B87; }
.f-gi{ background:repeating-linear-gradient(135deg, #0a0a0a 0 6px, #8B8B87 6px 9px); border:1px solid #8B8B87; }
.f-deb{ background:transparent; border:1.5px solid #F5F2EC; }
.tl-lbl{ position:absolute; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; gap:3px; white-space:nowrap; line-height:1.2; }
.tl-lbl.r{ text-align:right; align-items:flex-end; }
.tl-lbl .who{ font-family:var(--mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent); }
.tl-lbl .who b{ font-family:var(--sans); font-weight:700; font-size:16px; letter-spacing:0; text-transform:none; color:var(--fg); }
.tl-lbl .th{ font-size:15px; color:var(--muted); }
.tl-legend{ display:flex; flex-wrap:wrap; gap:10px 22px; padding:16px 0 8px; margin-top:4px; border-top:1px solid #3A3A3A; }
.tl-legend span{ display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); }
.tl-legend i{ width:14px; height:14px; display:inline-block; border-radius:3px; }
@media (min-width:900px){ .tl{ display:block; } .home .plan{ display:none; } .tl-day{ padding-left:4px; } }
