/* BWS · page Entraîneurs v2 (générique) · Iris 19/10/2026
   Complète le <style> commun (tokens --royal, --gold, --gold-s, --paper, --ink, --night, --serif, --sans, --ease).
   Olive = accent coachs/staff (charte v6 : Olive Live #5C7A4A ; branche « Fédérations et staffs » #9AA661, proposition du 09/10).
   L'olive sert aux filets, pastilles et pictos ; jamais au texte courant. */
:root{--olive:#5C7A4A;--olive-l:#9AA661}
.p-coaches .phero .btn{margin-top:36px}
/* 01 · L'équipe derrière l'équipe */
.who-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,5vw,80px);align-items:center}
.who-grid h2{max-width:14ch}
.board{margin:0;position:relative;aspect-ratio:3/2;border:1px solid var(--faint);background:radial-gradient(120% 90% at 50% 40%,rgba(18,49,79,.9),rgba(7,19,31,.95));box-shadow:inset 0 0 80px rgba(7,19,31,.8)}
.board svg{width:100%;height:100%;display:block;overflow:visible}
.board .ln{fill:none;stroke:var(--gold);stroke-width:1;opacity:.38}
.board .dotc{fill:var(--gold)}
.board .lane{fill:none;stroke:var(--olive-l);stroke-width:1.3;stroke-dasharray:5 7;opacity:.75}
.board .node .dot{fill:var(--olive-l);stroke:var(--night);stroke-width:2}
.board .node[data-role=principal] .dot{fill:var(--gold-s)}
.board .node .halo{fill:none;stroke:var(--olive-l);stroke-width:1;opacity:.0;transition:opacity .4s,transform .5s var(--ease);transform:scale(.6)}
.board .node.on .halo,.board .node[data-role=principal] .halo{opacity:.6;transform:none}
.board .node text{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;fill:var(--bone);opacity:.85}
.board .node.on text{fill:var(--gold-s);opacity:1}
/* tracé progressif à l'entrée (classe .drawn posée par coaches.js) */
.anim .board .pitch .ln{stroke-dasharray:1400;stroke-dashoffset:1400;transition:stroke-dashoffset 2.4s var(--ease)}
.anim .board .lane{opacity:0;transition:opacity 1s ease 1.2s}
.anim .board .node{opacity:0;transition:opacity .8s ease 1.6s}
.anim .board.drawn .pitch .ln{stroke-dashoffset:0}
.anim .board.drawn .lane{opacity:.75}
.anim .board.drawn .node{opacity:1}
.roles{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);margin-top:56px;border-top:1px solid var(--faint);border-left:1px solid var(--faint)}
.role{padding:30px 24px 32px;border-right:1px solid var(--faint);border-bottom:1px solid var(--faint);position:relative;transition:background .5s;outline:none}
.role:before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--olive-l);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.role:hover,.role:focus-visible,.role.on{background:rgba(154,166,97,.07)}
.role:hover:before,.role:focus-visible:before,.role.on:before{transform:scaleX(1)}
.role .ic{width:30px;height:30px;fill:none;stroke:var(--olive-l);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:18px}
.role h3{font-size:clamp(21px,1.7vw,26px)}
.role p{font-size:14px;color:var(--mute)}
/* Galerie : trois images sans visage, dans la charte */
.gal{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:2px;background:var(--night);height:min(72vh,680px)}
.gal-i{position:relative;margin:0;overflow:hidden}
.gal-i picture,.gal-i img{width:100%;height:100%;object-fit:cover;display:block}
.gal-i img{transform:scale(1.04);transition:transform 1.6s var(--ease),filter 1.2s;filter:saturate(.85) brightness(.82)}
.gal-i:hover img{transform:scale(1.1);filter:saturate(1) brightness(.95)}
.gal-i:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(7,19,31,.85));pointer-events:none}
.gal-i figcaption{position:absolute;left:28px;bottom:24px;z-index:1}
.gal-i figcaption .kicker{margin:0;color:var(--gold-s)}
.gal-i figcaption:before{content:"";display:block;width:36px;height:1px;background:var(--olive-l);margin-bottom:12px}
/* 02 · Offre (fond papier) */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:44px;border-top:1px solid #231f201f;border-left:1px solid #231f201f}
.svc-i{padding:34px 30px;border-right:1px solid #231f201f;border-bottom:1px solid #231f201f;transition:background .5s}
.svc-i:hover{background:rgba(92,122,74,.06)}
.svc-i .n{font-family:var(--serif);font-size:22px;color:var(--olive);margin-bottom:14px}
.svc-i h3{font-size:clamp(24px,2vw,30px)}
.svc-i p{font-size:15px;color:#231f20b3}
.staff-b{margin-top:56px;padding:6px 0 4px 30px;border-left:2px solid var(--olive);max-width:820px}
.staff-b .kicker{color:var(--olive)!important;margin-bottom:14px}
.staff-b h3{font-size:clamp(28px,2.8vw,40px)}
.staff-b p{color:#231f20b3}
/* 03 · Méthode : piste en 4 temps */
.track{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:50px;position:relative}
.track:before{content:"";position:absolute;left:0;right:0;top:27px;height:1px;background:var(--faint)}
.track:after{content:"";position:absolute;left:0;right:0;top:27px;height:1px;background:linear-gradient(90deg,var(--gold),var(--olive-l));transform-origin:left;transform:scaleX(var(--trk,1));transition:transform 2.2s var(--ease)}
.anim .track:not(.drawn){--trk:0}
.stp{padding:0 28px 0 0;position:relative}
.stp .sn{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--night);border:1px solid var(--gold);font-family:var(--serif);font-size:20px;color:var(--gold-s);position:relative;z-index:1;margin-bottom:26px}
.stp h3{font-size:clamp(22px,1.9vw,28px)}
.stp p{font-size:15px;color:var(--mute)}
#contact-coach .note{color:var(--mute)}
/* v4 : délai de réponse près du CTA */
#contact-coach .delai{display:flex;align-items:center;gap:12px;margin:22px 0 0;font-size:14px;letter-spacing:.06em;color:var(--gold-s)}
#contact-coach .delai-pt{flex:none;width:8px;height:8px;border-radius:50%;background:var(--olive-l)}
@media (max-width:1080px){.roles{grid-template-columns:repeat(3,1fr)}.svc-grid{grid-template-columns:1fr 1fr}.who-grid{grid-template-columns:1fr}.track{grid-template-columns:1fr 1fr;row-gap:40px}.track:before,.track:after{display:none}}
@media (max-width:720px){.roles{grid-template-columns:1fr}.svc-grid{grid-template-columns:1fr}.gal{grid-template-columns:1fr;height:auto}.gal-i{height:46vh}.track{grid-template-columns:1fr}.staff-b{padding-left:20px}.board .node text{font-size:14px}}
@media (prefers-reduced-motion:reduce){.anim .board .pitch .ln{stroke-dashoffset:0;transition:none}.anim .board .lane,.anim .board .node{opacity:1;transition:none}.gal-i img,.gal-i:hover img{transform:none;transition:none}.anim .track:not(.drawn){--trk:1}}
@media print{.top,.progress,.cue,.ghost,.gal{display:none}}

/* v3 : coréen, pas de coupure au milieu des mots */
:lang(ko) .phero h1,:lang(ko) .phero .sub,:lang(ko) main h2,:lang(ko) main p,:lang(ko) main li,:lang(ko) main h3{word-break:keep-all;overflow-wrap:anywhere}
