/* WSL Academy — refinement. Original brand colour tokens remain unchanged. */
:root{--nav-h:82px;--r:10px;--r-l:18px}
body{font-size:16px;line-height:1.7}
.wrap,.nav-in{max-width:1280px}
h1,h2{letter-spacing:-.045em;line-height:1.08}
h2{font-size:clamp(1.9rem,3.1vw,2.65rem)}
h3{line-height:1.35}
p{line-height:1.75}
section{padding:88px 0}.pad-0{padding-top:0}
.skip-link{position:fixed;left:20px;top:-80px;z-index:500;background:var(--paper);color:var(--ink);padding:12px 20px;border:2px solid var(--signal);border-radius:10px}.skip-link:focus{top:12px}
.nav{background:var(--paper);border-bottom:1px solid var(--line)}
.nav-in{gap:16px}.brand{font-size:1.75rem;gap:10px}.brand .mark{width:30px;height:36px}.brand small{font-size:.55rem;letter-spacing:.18em;margin-top:4px}
.menu a{font-size:.84rem;letter-spacing:0}.nav .nav-cta{font-size:.85rem;min-height:44px;padding:10px 16px;margin-left:4px}
.btn{min-height:52px;padding:13px 22px;font-size:.91rem;font-weight:700;border-width:1px;border-radius:10px;transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-t:hover{box-shadow:0 7px 18px rgba(193,68,42,.15)}
.btn-o{border-color:var(--line)}
.overline,.sec-h p.overline{display:flex;align-items:center;gap:9px;font-size:.68rem;font-weight:800;letter-spacing:.16em;color:var(--signal);line-height:1.5;margin:0 0 18px;max-width:none}
.location-dot{width:7px;height:7px;flex:0 0 7px;background:var(--signal);border-radius:50%}
.hero{padding:calc(var(--nav-h) + 64px) 0 0;background:var(--paper)}
.hero-layout{display:grid;grid-template-columns:1.22fr 1fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(3rem,5.15vw,4.35rem);line-height:1.06;letter-spacing:-.055em;margin:0 0 24px}
.hero h1 span{white-space:normal}.hero h1 span:last-child{color:var(--signal)}
.hero .lead{font-size:1rem;line-height:1.8;max-width:52ch;margin:0 0 28px}
.hero .acts{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.hero .acts .btn{width:auto}.hero .acts .btn-t span{font-size:1.3rem;margin-left:14px;line-height:1}
.hero .tags{gap:8px 16px}.hero .tag{font-size:.7rem;color:var(--concrete)}.hero .tag .ico{color:var(--signal);width:16px;height:16px}
.route-art{height:468px;position:relative;background:var(--mist);border:1px solid var(--line);border-radius:22px;overflow:hidden;isolation:isolate}
.art-top{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:24px 28px 14px;font-size:.59rem;letter-spacing:.13em;font-weight:800;color:var(--concrete)}
.art-cross{font-size:1.3rem;color:var(--signal)}.art-title{position:relative;z-index:2;padding:0 28px;font-size:1.7rem;font-weight:500;letter-spacing:-.04em;line-height:1.2}.art-title strong{font-weight:800}
.route-drawing{position:absolute;width:100%;height:340px;left:0;top:112px}
.art-caption{position:absolute;right:22px;bottom:76px;display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line);padding:15px 18px;border-radius:12px;box-shadow:0 12px 24px rgba(0,0,0,.05)}
.caption-icon{display:flex;justify-content:center;align-items:center;width:35px;height:35px;background:var(--terra-w);color:var(--signal);border-radius:50%;font-size:1.3rem}.art-caption b{display:block;font-size:.81rem}.art-caption div>span{display:block;font-size:.66rem;color:var(--concrete);margin-top:2px}
.art-foot{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:17px 26px;border-top:1px solid var(--line);background:var(--mist);font-size:.55rem;font-weight:700;letter-spacing:.1em;color:var(--concrete)}
.quick-label{display:flex;justify-content:space-between;align-items:center;margin:42px 0 14px;font-size:.63rem;letter-spacing:.13em;font-weight:800;color:var(--concrete)}.quick-label span:last-child{font-size:1.2rem;color:var(--signal)}
.hero-links{display:grid;grid-template-columns:repeat(6,1fr);gap:0;padding:0 0 30px;border-top:0;border-bottom:1px solid var(--line)}
.hero-links a{font-size:.75rem;padding:14px 10px;gap:7px;border:0;border-right:1px solid var(--line);border-radius:0;justify-content:center}.hero-links a:first-child{padding-left:0}.hero-links a:last-child{border-right:0;padding-right:0}.hero-links a>.ico{color:var(--signal);width:18px;height:18px}.hero-links a:hover{background:var(--mist);color:var(--ink)}.hero-links .cart{font-size:.48rem;padding:4px;margin-left:0}.hero-links a:hover .cart{background:var(--signal);color:var(--paper)}
.sec-h{margin-bottom:32px}.sec-h h2{max-width:25ch}.sec-h p{max-width:60ch;font-size:.98rem;margin-top:14px}
:is(.home,.catalogue) .plist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;border:0}
:is(.home,.catalogue) .plist a{display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:27px;border:1px solid var(--line);border-radius:16px;position:relative;min-height:228px;background:var(--paper);transition:border-color .2s,transform .2s,box-shadow .2s}
:is(.home,.catalogue) .plist a:hover{padding-left:27px;transform:translateY(-4px);border-color:var(--signal);box-shadow:0 12px 24px rgba(0,0,0,.04)}
:is(.home,.catalogue) .plist .pname{font-size:1.2rem;letter-spacing:-.025em;gap:8px;margin-bottom:15px}:is(.home,.catalogue) .plist a:hover .pname{text-decoration:none}:is(.home,.catalogue) .plist .pdesc{font-size:.84rem;line-height:1.75;margin-bottom:24px}:is(.home,.catalogue) .plist .pprice{margin-top:auto;text-align:left;font-size:1.5rem;line-height:1.1}:is(.home,.catalogue) .plist .pprice small{font-size:.67rem;margin-top:7px;font-weight:500}:is(.home,.catalogue) .plist a::after{content:'↗';position:absolute;bottom:28px;right:26px;width:34px;height:34px;display:grid;place-items:center;font-size:1.15rem;border:1px solid var(--line);border-radius:50%;color:var(--signal)}
:is(.home,.catalogue) .plist-h{font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;margin:30px 0 15px}:is(.home,.catalogue) .plist+.plist-h{margin-top:30px}
.road{padding:70px 0}.road .sec-h{display:grid;grid-template-columns:1fr 1fr;gap:0 80px;align-items:end;margin-bottom:44px}.road .sec-h .overline{grid-column:1/-1;color:var(--concrete-l)}.road .sec-h h2{font-size:2.3rem}.road .sec-h p:not(.overline){font-size:.93rem;margin:0;max-width:44ch}.road .stop .n{border:1px solid var(--concrete);width:44px;height:44px;font-size:1rem}.road .lane{opacity:.28;animation:none;height:1px;top:22px}.road .stops{gap:32px}.road .stop{padding-top:67px}.road .stop h3{font-size:1rem;margin-bottom:10px}.road .stop p{font-size:.82rem;line-height:1.8}.road .stop:last-child .n{border-color:var(--signal)}
.feat{gap:18px}.feat .it{padding:25px;border:1px solid var(--line);border-radius:16px;gap:17px}.feat .it .ic{border:0;background:var(--terra-w);color:var(--signal);border-radius:12px;width:42px;height:42px}.feat h3{font-size:1rem;margin-bottom:8px}.feat p{font-size:.86rem}
.faq{border-top:0;gap:10px}.faq details{border:1px solid var(--line);padding:19px 21px;border-radius:12px;background:var(--paper)}.faq summary{font-size:.89rem;line-height:1.55;align-items:center}.faq summary .ico{background:var(--mist);padding:4px;width:26px;height:26px;border-radius:50%}.faq details[open]{border-color:var(--signal)}.faq details p{font-size:.86rem;line-height:1.8;margin-top:15px}
.band{padding:48px;border-radius:20px;gap:40px}.band h2{font-size:2.2rem;line-height:1.15;max-width:22ch}.band p{font-size:.91rem;max-width:58ch}.band .acts{display:grid;grid-template-columns:1fr;min-width:225px}.band::before{bottom:0;height:4px;background:var(--signal)}
.ph{position:relative;padding:calc(var(--nav-h) + 58px) 0 48px;border-bottom:1px solid var(--line);background:var(--mist)}.ph::before{content:'';position:absolute;bottom:-1px;left:max(32px,calc((100% - 1216px)/2));width:66px;height:3px;background:var(--signal)}.ph .crumb{font-size:.72rem;font-weight:700;color:var(--signal);letter-spacing:.05em;margin-bottom:18px}.ph h1{font-size:clamp(2.25rem,4.5vw,3.6rem);max-width:22ch;line-height:1.12}.ph h1 em{color:var(--signal)}.ph .lead{max-width:65ch;font-size:1.03rem;line-height:1.8;margin-top:18px}.ph .tags{margin-top:22px;gap:10px}.ph .tag{font-size:.74rem;border:1px solid var(--line);padding:7px 11px;background:var(--paper);border-radius:7px}.ph .tag .ico{color:var(--signal)}
.card{padding:28px;border:1px solid var(--line);border-radius:16px}.card.acc{border:1px solid var(--signal);box-shadow:inset 0 4px 0 var(--signal)}.card .ic{border-radius:12px;background:var(--terra-w);color:var(--signal)}.card p{font-size:.9rem}.card .btn{margin-top:22px}.chip{padding:7px 9px;font-size:.65rem;border-radius:5px}.price-b{font-size:2.3rem;margin-top:24px}
.tw{border:1px solid var(--line);border-radius:14px}th{background:var(--asphalt);padding:18px 20px;font-size:.79rem}td{padding:20px;font-size:.87rem}.note{border-width:1px;border-left-width:3px;border-radius:10px;background:var(--mist)}.note p{font-size:.88rem}.checks li{font-size:.92rem}.form{border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:0 12px 36px rgba(0,0,0,.035)}.fg{margin-bottom:18px}.fg label{font-size:.81rem}.fg input,.fg select,.fg textarea{border:1px solid var(--line);border-radius:9px;background:var(--mist)}.fg input:focus,.fg select:focus,.fg textarea:focus{background:var(--paper);border-color:var(--signal);box-shadow:0 0 0 3px var(--terra-w)}
footer{padding-top:58px;margin-top:0}footer .brand{display:flex;font-size:1.75rem}footer p,footer a{font-size:.82rem}footer h4{font-size:.78rem;margin-bottom:17px}footer .col>p{line-height:1.85}footer .legal{font-size:.68rem;line-height:1.9;padding:24px 0 30px;margin-top:38px}.legal a{font-size:inherit}
@media(min-width:980px) and (max-width:1120px){.menu a{padding:8px 7px;font-size:.75rem}.nav-in{gap:8px}.hero-layout{gap:32px}.hero h1{font-size:3.6rem}.hero-links a{font-size:.68rem;gap:4px}.hero-links .cart{display:none}}
@media(max-width:979px){:root{--nav-h:72px}.menu{visibility:hidden}.menu.open{visibility:visible}.menu a{font-size:1.2rem;padding:20px 0}.hero{padding-top:calc(var(--nav-h) + 40px)}.hero-layout{grid-template-columns:1.15fr 1fr;gap:24px}.hero h1{font-size:clamp(2.2rem,5.1vw,3.3rem)}.hero .lead{font-size:.91rem}.hero .acts{flex-direction:column;align-items:stretch}.route-art{height:420px}.art-top{padding:22px 20px 15px;font-size:.49rem}.art-title{padding:0 20px;font-size:1.45rem}.route-drawing{top:90px}.art-caption{right:14px;padding:13px;bottom:70px}.art-foot{font-size:.45rem;padding:16px}.hero-links{grid-template-columns:repeat(3,1fr);gap:8px}.hero-links a,.hero-links a:first-child,.hero-links a:last-child{padding:13px 8px;border:1px solid var(--line);border-radius:8px;font-size:.77rem}:is(.home,.catalogue) .plist a{padding:22px;min-height:256px}:is(.home,.catalogue) .plist a:hover{padding-left:22px}:is(.home,.catalogue) .plist .pname{font-size:1.04rem}.road .sec-h{display:block}.road .sec-h h2{margin-bottom:18px}.road .lane{left:23px;top:8px;bottom:8px;height:auto;width:1px}.road .stop{padding-top:0}.road .stops{gap:28px}.road .stop .n{left:-74px}.road .stop p{max-width:55ch}.band{display:grid;grid-template-columns:1fr;gap:24px;padding:36px}.band p{margin-bottom:0}.band .acts{grid-template-columns:1fr 1fr;padding:0}.home .split{gap:26px}}
@media(max-width:639px){section{padding:54px 0}.pad-0{padding-top:0}.wrap,.nav-in{padding-left:22px;padding-right:22px}.brand{font-size:1.6rem}.hero{padding-top:calc(var(--nav-h) + 30px)}.hero-layout{grid-template-columns:1fr;gap:28px}.overline,.sec-h p.overline{font-size:.58rem;letter-spacing:.12em;margin-bottom:15px}.hero h1{font-size:clamp(2.1rem,9.1vw,3.45rem);margin-bottom:20px;line-height:1.09}.hero .lead{font-size:.92rem;margin-bottom:22px}.hero .acts{margin-bottom:18px}.hero .acts .btn{width:100%}.hero .tags{gap:7px 12px}.hero .tag{font-size:.64rem}.route-art{height:338px;border-radius:16px}.art-title{font-size:1.4rem}.art-top{padding:16px 20px 10px;font-size:.53rem}.route-drawing{height:270px;top:66px}.art-caption{bottom:54px;right:16px;padding:12px 14px}.art-foot{padding:13px 18px;font-size:.49rem}.quick-label{margin-top:27px;font-size:.57rem}.hero-links{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:24px}.hero-links a,.hero-links a:first-child,.hero-links a:last-child{font-size:.69rem;padding:13px 6px;gap:5px}.hero-links .cart{font-size:.43rem}.hero-links a>.ico{width:15px;height:15px}:is(.home,.catalogue) .plist{grid-template-columns:1fr;gap:12px}:is(.home,.catalogue) .plist a{min-height:0;padding:23px}:is(.home,.catalogue) .plist a:hover{padding-left:23px}:is(.home,.catalogue) .plist .pname{font-size:1.14rem}:is(.home,.catalogue) .plist .pdesc{font-size:.87rem;margin-bottom:20px}:is(.home,.catalogue) .plist .pprice{font-size:1.4rem}:is(.home,.catalogue) .plist-h{font-size:.62rem;line-height:1.6;margin-top:25px}.road{padding:50px 0}.road .sec-h h2{font-size:1.9rem}.road .stops{padding-left:62px}.road .stop .n{left:-62px}.road .lane{left:21px}.road .sec-h{margin-bottom:30px}.feat .it{padding:22px 20px;grid-template-columns:38px 1fr;gap:14px}.feat .it .ic{width:36px;height:36px;border-radius:9px}.feat .ico{width:19px;height:19px}.feat h3{font-size:.93rem}.feat p{font-size:.84rem}.sec-h{margin-bottom:26px}.sec-h p{font-size:.91rem}.faq details{padding:18px}.band{padding:29px 23px;gap:22px;border-radius:16px}.band h2{font-size:1.85rem}.band p{font-size:.85rem}.band .acts{grid-template-columns:1fr}.ph{padding:calc(var(--nav-h) + 34px) 0 34px}.ph::before{left:22px}.ph h1{font-size:2.25rem}.ph .lead{font-size:.95rem}.ph .tag{font-size:.65rem;padding:6px 8px}.card,.form{padding:24px}.faq summary{font-size:.86rem}footer{padding-top:28px}footer .col{padding:22px 0}.legal{margin-top:18px} .split,.split-r{gap:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Images des formations — fichiers locaux, affichage intégral sur fond blanc. */
:is(.home,.catalogue) .plist a.photo-card{padding:0;overflow:hidden;gap:0;min-height:0}
:is(.home,.catalogue) .plist a.photo-card:hover{padding:0}
.photo-card .course-media{display:block;width:100%;aspect-ratio:8/5;overflow:hidden;flex-shrink:0;background:var(--paper);padding:12px}
.photo-card .course-media img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:var(--paper)}
.photo-card:hover .course-media img{transform:none}
:is(.home,.catalogue) .plist .photo-card .pname{margin:24px 24px 13px}
:is(.home,.catalogue) .plist .photo-card .pdesc{margin:0 24px 26px}
:is(.home,.catalogue) .plist .photo-card .pprice{margin:auto 24px 26px;padding-right:42px}
@media(max-width:979px) and (min-width:640px){:is(.home,.catalogue) .plist{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639px){:is(.home,.catalogue) .plist .photo-card .pname{margin-top:22px}.photo-card .course-media{aspect-ratio:8/5}}

.home .hero{padding-bottom:36px}
.home .formation-catalogue{padding-top:30px}

/* Cartes de formation : fonds blancs et rythme visuel homogène. */
.photo-card .course-media{aspect-ratio:3/2;padding:16px 16px 4px;background:var(--paper)}
:is(.home,.catalogue) .plist a.photo-card{border-radius:18px;box-shadow:0 5px 18px rgba(0,0,0,.025)}
:is(.home,.catalogue) .plist a.photo-card:hover{box-shadow:0 14px 30px rgba(0,0,0,.065)}
:is(.home,.catalogue) .plist .photo-card .pname{margin-top:20px;line-height:1.4}
:is(.home,.catalogue) .plist .photo-card .pdesc{margin-bottom:24px;min-height:4.9em}
:is(.home,.catalogue) .plist .photo-card .pprice{align-self:stretch;border-top:1px solid var(--line);padding-top:20px}
:is(.home,.catalogue) .plist .photo-card .cart{border-radius:5px}
@media(max-width:639px){.photo-card .course-media{aspect-ratio:3/2;padding:14px 14px 0}:is(.home,.catalogue) .plist .photo-card .pdesc{min-height:0}}

/* ---------- Bandeau labels, financements et partenaires : une seule ligne ---------- */
.partners{padding:26px 0 34px;border-bottom:1px solid var(--line,#e4e4e4)}
.partners-h{font-family:var(--f,inherit);font-size:.86rem;font-weight:700;letter-spacing:0;line-height:1.3;
  color:var(--concrete,#6b6b6b);margin:0 0 14px;max-width:none}
.logo-row{list-style:none;margin:0;padding:0 0 6px;display:grid;grid-auto-flow:column;grid-auto-columns:108px;gap:9px;
  overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.logo-row::-webkit-scrollbar{display:none}
.logo-row li{scroll-snap-align:start;height:78px;border:1.5px solid var(--line,#e4e4e4);border-radius:10px;background:#fff;
  display:flex;align-items:center;justify-content:center;padding:12px}
.logo-row img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
@media(min-width:980px){
  .logo-row{grid-auto-flow:row;grid-template-columns:repeat(9,minmax(0,1fr));grid-auto-columns:auto;overflow:visible;padding-bottom:0}
  .logo-row li{height:94px;padding:12px 10px}
}

/* ---------- Bandeau de logos en défilement continu ---------- */
.partners .marquee{position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%)}
.partners .marquee-track{display:flex;flex-wrap:nowrap;width:max-content;gap:10px;margin:0;padding:0;
  overflow:visible;grid-template-columns:none;animation:wsl-defile 34s linear infinite}
.partners .marquee-track li{flex:0 0 148px;height:84px}
.partners .marquee:hover .marquee-track,
.partners .marquee:focus-within .marquee-track{animation-play-state:paused}
@keyframes wsl-defile{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 5px))}}
@media(min-width:980px){
  .partners .marquee-track{gap:12px;animation-duration:40s}
  .partners .marquee-track li{flex-basis:168px;height:96px}
  @keyframes wsl-defile{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 6px))}}
}
/* animations désactivées dans le système : bandeau immobile et défilable au doigt */
@media(prefers-reduced-motion:reduce){
  .partners .marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
  .partners .marquee-track{animation:none}
  .partners .marquee-track li[aria-hidden="true"]{display:none}
}

/* ---------- Vidéo de présentation dans le hero ---------- */
.hero-video{position:relative;margin:0;justify-self:center;width:min(100%,340px);aspect-ratio:9/16;
  border-radius:22px;overflow:hidden;background:#fff;border:1px solid var(--line,#e4e4e4);
  box-shadow:0 34px 60px -34px rgba(0,0,0,.28)}
.hero-video video{display:block;width:100%;height:100%;object-fit:cover;background:#fff}
.hv-toggle{position:absolute;right:12px;bottom:12px;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--line,#e4e4e4);background:rgba(255,255,255,.92);color:#0b0b0b;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .15s}
.hv-toggle:hover{background:#fff}
.hv-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.hv-toggle .i-play{fill:currentColor;stroke:none;display:none}
.hero-video.is-paused .i-pause{display:none}
.hero-video.is-paused .i-play{display:block}
@media(max-width:979px){.hero-video{width:min(100%,320px)}}
