/* ESS Progression — mod_ess_progression. Tout est préfixé .ess- */
.ess-root{--ess-bg:#004070;color:#fff;font-family:var(--ess-font,Montserrat,sans-serif);overflow-x:clip;overflow-anchor:none;position:relative;z-index:2}
.ess-root .ess-body{background:var(--ess-bg);transition:background-color .9s ease}
/* Transition du haut : illustration officielle (neige) puis vagues superposées, du blanc vers la couleur du groupe */
.ess-root .ess-ridge{position:relative;margin-top:calc(-1 * var(--ess-overlap,0px));margin-bottom:-1px;pointer-events:none}
.ess-root .ess-ridge.is-illu.is-over{margin-top:calc(-1 * max(var(--ess-overlap,0px), 22%))}
.ess-root .ess-illu{aspect-ratio:1960/503;background:url(illu-neige.png) 50% 100%/100% 100% no-repeat}
.ess-root .ess-wv{position:relative;height:var(--ess-ridge,140px)}
.ess-root .is-illu .ess-wv{margin-top:-4.5%;background:#fff}
.ess-root .ess-wv i{position:absolute;inset:0;background:var(--ess-bg);transition:background-color .9s ease;-webkit-mask:var(--wm) 0 0/100% 100% no-repeat;mask:var(--wm) 0 0/100% 100% no-repeat}
.ess-root .ess-wv i:nth-child(1){opacity:.24;--wm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 14C117 14 143 6 260 6C566 6 634 30 940 30C1084 30 1116 12 1260 12C1341 12 1359 20 1440 20V100H0Z'/%3E%3C/svg%3E")}
.ess-root .ess-wv i:nth-child(2){opacity:.34;--wm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 36C189 36 231 50 420 50C600 50 640 40 820 40C973 40 1007 54 1160 54C1286 54 1314 40 1440 40V100H0Z'/%3E%3C/svg%3E")}
.ess-root .ess-wv i:nth-child(3){opacity:.52;--wm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 62C135 62 165 70 300 70C453 70 487 58 640 58C802 58 838 72 1000 72C1135 72 1165 60 1300 60C1363 60 1377 66 1440 66V100H0Z'/%3E%3C/svg%3E")}
.ess-root .ess-wv i:nth-child(4){--wm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 84C126 84 154 90 280 90C442 90 478 78 640 78C802 78 838 92 1000 92C1135 92 1165 80 1300 80C1363 80 1377 86 1440 86V100H0Z'/%3E%3C/svg%3E")}
@media (max-width:699px){.ess-root .ess-wv{height:calc(var(--ess-ridge,140px) * .55)}}
.ess-root *{box-sizing:border-box}
.ess-root h1,.ess-root h2,.ess-root h3{font-family:inherit;text-transform:none;color:#fff}
.ess-root ul,.ess-root li,.ess-root p{margin:0}
.ess-root img,.ess-root svg{max-width:none}
.ess-root .ess-h2,.ess-root .ess-league h2{margin:0;font-weight:100;line-height:.95;letter-spacing:-.02em}
.ess-root .ess-lead{max-width:520px;font-size:16px;line-height:1.6;color:#fff}
.ess-root .ess-bar{position:relative;z-index:4;max-width:1200px;margin:0 auto;padding:8px 24px 0;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.ess-root .ess-toggle{display:flex;flex-wrap:wrap;padding:4px;background:rgba(255,255,255,.14);border-radius:40px;backdrop-filter:blur(8px)}
.ess-root .ess-toggle:empty{display:none}
.ess-root .ess-toggle button{border:0;margin:0;background:transparent;color:#fff;font-size:15px;font-weight:600;line-height:1;font-family:inherit;padding:14px 24px;border-radius:40px;cursor:pointer;transition:all .35s ease}
.ess-root .ess-toggle button.is-on{background:#fff;color:#191919}
.ess-root .ess-cue{font-size:13px;display:flex;flex-direction:row-reverse;gap:10px;align-items:center;margin-left:auto}
.ess-root .ess-cue span{display:inline-block;animation:ess-cue 1.6s ease-in-out infinite}
@keyframes ess-cue{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
.ess-root .ess-nav{--nav:rgba(255,255,255,.7);position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:18px;padding:0;background:none;opacity:0;pointer-events:none;transition:opacity .4s ease}
@supports (color:color-mix(in oklch,red,blue)){
  .ess-root .ess-nav{--nav:color-mix(in oklch,var(--ess-bg),#fff 58%)}
  .ess-root[data-nav-tone="dark"] .ess-nav{--nav:color-mix(in oklch,var(--ess-bg),#000 45%)}
}
.ess-root[data-nav-tone="dark"] .ess-nav{--nav-fallback:rgba(0,0,0,.45)}
.ess-root .ess-nav::before{content:"";position:absolute;right:8px;top:8px;bottom:8px;width:2px;border-radius:2px;background:var(--nav);opacity:.45;transition:background-color .9s ease}
.ess-root .ess-nav[hidden]{display:none!important}
.ess-root .ess-nav.is-on{opacity:1;pointer-events:auto}
.ess-root .ess-nav button{position:relative;border:0;margin:0;background:transparent;padding:0;cursor:pointer;display:flex;align-items:center;gap:12px;justify-content:flex-end;font-size:12px;font-weight:600;font-family:inherit;color:var(--nav);transition:color .9s ease}
.ess-root .ess-nav button span{opacity:.7;transition:opacity .3s}
.ess-root .ess-nav button i{display:block;width:12px;height:12px;margin:0 3px;border-radius:50%;border:2px solid var(--nav);background:var(--ess-bg);transition:all .4s ease, background-color .9s ease, border-color .9s ease}
.ess-root .ess-nav button.is-past i{background:var(--nav)}
.ess-root .ess-nav button.is-on span{opacity:1}
.ess-root .ess-nav button.is-on i{width:18px;height:18px;margin:0;background:var(--nav);box-shadow:0 0 0 4px var(--ess-bg)}
.ess-root .ess-nav button:hover span{opacity:1}
@media (max-width:1099px){.ess-root .ess-nav{right:12px}.ess-root .ess-nav button span{display:none}}
@media (max-width:699px){.ess-root .ess-nav{display:none}}
.ess-root .ess-tl{position:relative;max-width:1200px;margin:0 auto;padding:0 24px calc(12 * var(--ess-vh,1vh))}
.ess-root .ess-svg{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.ess-root .ess-svg path{fill:none;stroke-linecap:round}
.ess-root .ess-p1{stroke:rgba(255,255,255,.1);stroke-width:46}
.ess-root .ess-p2{stroke:rgba(255,255,255,.45);stroke-width:3;stroke-dasharray:1 14}
.ess-root .ess-p3{stroke:#fff;stroke-width:5;stroke-dasharray:0 100000;transition:stroke-dasharray .45s cubic-bezier(.2,0,.3,1)}
.ess-root .ess-dot{transition:opacity .3s ease,left .45s cubic-bezier(.2,0,.3,1),top .45s cubic-bezier(.2,0,.3,1);position:absolute;left:-100px;top:-100px;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:#fff;box-shadow:0 0 0 8px rgba(255,255,255,.2),0 0 30px rgba(255,255,255,.6);z-index:3;pointer-events:none}
.ess-root .ess-league{position:relative;z-index:4;padding:calc(22 * var(--ess-vh,1vh)) 0 calc(10 * var(--ess-vh,1vh));display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}
.ess-root .ess-league h2{font-size:clamp(48px,9vw,120px)}
.ess-root .ess-lvl{position:relative;z-index:4;min-height:calc(78 * var(--ess-vh,1vh));display:flex;align-items:center;gap:56px}
.ess-root .ess-lvl.is-alt{flex-direction:row-reverse}
.ess-root .ess-lvl-sp{flex:.55}
.ess-root .ess-medal-w{flex:none;width:220px;height:220px;position:relative}
.ess-root .ess-ring{position:absolute;inset:-14%;border-radius:50%;border:2px solid rgba(255,255,255,.6);opacity:0;transform:scale(.8);transition:all .6s ease}
.ess-root .ess-medal{position:absolute;inset:0;cursor:pointer;transform:scale(.82) rotate(-18deg);transition:transform .7s cubic-bezier(.2,.9,.3,1.3),filter .6s}
.ess-root .ess-medal svg{display:block;width:100%;height:100%}
/* Médailles officielles (ovales 367×320) et illustrations des ligues */
.ess-root .ess-medal-w.is-img{width:250px;height:218px}
.ess-root .ess-medal-w.is-img .ess-ring{inset:calc(13.8% - 12px) -12px -12px}
/* Emblème de ligue : accolé au titre (logo de section), pas sur l'axe des médailles */
.ess-root .ess-league-head{display:flex;align-items:center;justify-content:center;gap:clamp(18px,2.4vw,36px);max-width:100%}
.ess-root .ess-league-head h2{min-width:0}
.ess-root .ess-league-img{display:block;flex:none;height:clamp(72px,8.5vw,118px);width:auto;object-fit:contain}
.ess-root .ess-league-img.is-tall{height:clamp(104px,12.3vw,170px)}
.ess-root .ess-league-img+h2{text-align:left;font-size:clamp(40px,6.2vw,92px);text-wrap:balance}
.ess-root .ess-medal-img{display:block;width:100%;height:100%;object-fit:contain;filter:grayscale(1);opacity:.45;transition:filter .6s,opacity .6s}
.ess-root .ess-medal .o{fill:rgba(255,255,255,.1);stroke:rgba(255,255,255,.35);stroke-width:3;transition:all .6s}
.ess-root .ess-medal .i{fill:rgba(255,255,255,.06);transition:fill .6s}
.ess-root .ess-medal .k{fill:rgba(255,255,255,.45);transition:fill .6s}
.ess-root .ess-medal .s{fill:none;stroke:rgba(255,255,255,.45);stroke-linecap:round;transition:stroke .6s}
.ess-root .ess-txt-w{flex:1;min-width:0;display:flex}
.ess-root .ess-lvl.is-alt .ess-txt-w{justify-content:flex-end}
.ess-root .ess-txt{max-width:460px;display:flex;flex-direction:column;gap:14px;opacity:.3;transform:translateY(30px);transition:opacity .6s,transform .6s}
.ess-root .ess-num-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ess-root .ess-num{font-weight:100;font-size:64px;line-height:.8;letter-spacing:-.03em}
.ess-root .ess-txt h3{margin:0;font-weight:300;font-size:clamp(26px,3vw,36px);line-height:1.1}
.ess-root .ess-sub{font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.8}
.ess-root .ess-txt ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}
.ess-root .ess-txt li{display:flex;gap:12px;align-items:center;font-size:15px;line-height:1.4;padding:12px 16px;border-radius:12px;background:rgba(255,255,255,.06);opacity:.4;transform:translateX(-12px);transition:all .5s ease}
.ess-root .ess-txt li b{flex:none;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.2);color:var(--ess-bg);display:flex;align-items:center;justify-content:center;transform:scale(.6);transition:all .4s cubic-bezier(.2,.9,.3,1.4)}
.ess-root .ess-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.ess-root .ess-btn{margin:0;font-size:14px;font-weight:600;font-family:inherit;padding:12px 18px;border-radius:30px;text-decoration:none;cursor:pointer;display:inline-flex;gap:8px;align-items:center;transition:all .3s}
.ess-root .ess-btn:hover{text-decoration:none;filter:brightness(110%)}
.ess-root a.ess-btn-video,.ess-root a.ess-btn-video:hover{background:#fff;color:var(--ess-bg)}
.ess-root .ess-lvl.is-rev .ess-txt,.ess-root .ess-lvl.is-rev li{opacity:1;transform:none}
.ess-root .ess-lvl.is-reached .ess-medal{transform:scale(.94) rotate(0);filter:drop-shadow(0 12px 28px rgba(0,0,0,.35))}
.ess-root .ess-lvl.is-active .ess-medal{transform:scale(1.08) rotate(0)}
.ess-root .ess-lvl.is-active .ess-ring{opacity:1;transform:scale(1)}
.ess-root .ess-lvl.is-reached .ess-medal-img{filter:none;opacity:1}
.ess-root .ess-lvl.is-reached .ess-medal .o{fill:var(--lc);stroke:#fff}
.ess-root .ess-lvl.is-reached .ess-medal .i{fill:#fff}
.ess-root .ess-lvl.is-reached .ess-medal .k{fill:var(--lc)}
.ess-root .ess-lvl.is-reached .ess-medal .s{stroke:var(--lc)}
.ess-root .ess-lvl.is-reached li{background:rgba(255,255,255,.14)}
.ess-root .ess-lvl.is-reached li b{background:#fff;transform:scale(1)}
.ess-root .ess-lvl.is-reached li:nth-child(2),.ess-root .ess-lvl.is-reached li:nth-child(2) b{transition-delay:.14s}
.ess-root .ess-lvl.is-reached li:nth-child(3),.ess-root .ess-lvl.is-reached li:nth-child(3) b{transition-delay:.28s}
.ess-root .ess-lvl.is-reached li:nth-child(n+4),.ess-root .ess-lvl.is-reached li:nth-child(n+4) b{transition-delay:.42s}
.ess-root .ess-finale{position:relative;z-index:2;padding:calc(16 * var(--ess-vh,1vh)) 0 calc(4 * var(--ess-vh,1vh));display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px}
.ess-root .ess-finale-mark{position:relative;z-index:4;width:140px;height:140px;border-radius:50%;border:2px solid rgba(255,255,255,.55);background:var(--ess-bg);color:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;transform:scale(.7);transition:transform .8s cubic-bezier(.2,.9,.3,1.3),background-color .6s ease,color .6s ease,border-color .6s ease}
.ess-root .ess-finale-mark svg{position:relative;z-index:1;transform:rotate(-20deg) scale(.8);transition:transform .8s cubic-bezier(.2,.9,.3,1.4) .1s}
.ess-root .ess-finale-mark::before,.ess-root .ess-finale-mark::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid #fff;opacity:0;pointer-events:none}
.ess-root .ess-flake{position:absolute;left:50%;top:50%;width:var(--s);height:var(--s);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);border-radius:50%;background:#fff;opacity:0;pointer-events:none}
.ess-root .ess-burst{position:absolute;inset:0;z-index:0;pointer-events:none;--r:1px}
.ess-root .ess-medal{z-index:1}
.ess-root .ess-finale-mark{--r:1px}
.ess-root .ess-lvl.is-burst .ess-flake{animation:ess-burst 1.5s cubic-bezier(.1,.7,.3,1) var(--d) both}
.ess-root .ess-finale h2{margin:0;font-weight:100;font-size:clamp(40px,7vw,88px);line-height:1;letter-spacing:-.02em;opacity:.25;transform:translateY(24px);transition:opacity .7s ease .25s,transform .7s cubic-bezier(.2,0,.3,1) .25s}
.ess-root .ess-finale .ess-lead{opacity:0;transform:translateY(16px);transition:opacity .7s ease .4s,transform .7s cubic-bezier(.2,0,.3,1) .4s}
.ess-root .ess-mini-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:760px;margin-top:10px}
.ess-root .ess-mini{width:60px;height:60px;opacity:0;transform:scale(.3) rotate(-30deg);transition:transform .55s cubic-bezier(.2,.9,.3,1.4) var(--d),opacity .3s ease var(--d);filter:drop-shadow(0 6px 14px rgba(0,0,0,.3))}
.ess-root .ess-mini svg,.ess-root .ess-mini img{display:block;width:100%;height:100%;object-fit:contain}
.ess-root .ess-mini .o{fill:var(--lc);stroke:#fff;stroke-width:3}
.ess-root .ess-mini .i{fill:#fff}
.ess-root .ess-mini .k{fill:var(--lc)}
.ess-root .ess-mini .s{fill:none;stroke:var(--lc);stroke-linecap:round}
.ess-root.is-complete .ess-finale-mark{transform:scale(1);background:#fff;border-color:#fff;color:var(--ess-bg)}
.ess-root.is-complete .ess-finale-mark svg{transform:none}
.ess-root.is-complete .ess-finale-mark::before{animation:ess-pulse 1.4s ease-out .1s 2}
.ess-root.is-complete .ess-finale-mark::after{animation:ess-pulse 1.4s ease-out .5s 2}
.ess-root.is-complete .ess-flake{animation:ess-burst 1.5s cubic-bezier(.1,.7,.3,1) var(--d) both}
.ess-root.is-complete .ess-finale h2,.ess-root.is-complete .ess-finale .ess-lead{opacity:1;transform:none}
.ess-root.is-complete .ess-mini{opacity:1;transform:none}
.ess-root.is-complete .ess-dot{opacity:0;transition:opacity .3s ease}
@keyframes ess-pulse{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.9)}}
@keyframes ess-burst{0%{opacity:1;transform:translate(0,0) scale(1)}70%{opacity:.9}100%{opacity:0;transform:translate(calc(var(--fx) * var(--r)),calc(var(--fy) * var(--r))) scale(.3)}}
@media (prefers-reduced-motion:reduce){.ess-root .ess-flake,.ess-root .ess-lvl.is-burst .ess-flake,.ess-root .ess-finale-mark::before,.ess-root .ess-finale-mark::after{animation:none!important}}
@media (max-width:859px){
  .ess-root .ess-mini{width:44px;height:44px}
  .ess-root .ess-burst{--r:.5px}
  .ess-root .ess-finale-mark{width:112px;height:112px}
  .ess-root .ess-lvl,.ess-root .ess-lvl.is-alt{flex-direction:row;gap:20px;align-items:flex-start;min-height:calc(70 * var(--ess-vh,1vh))}
  .ess-root .ess-lvl-sp{display:none}
  .ess-root .ess-medal-w{width:92px;height:92px}
  .ess-root .ess-lvl.is-alt .ess-txt-w{justify-content:flex-start}
  .ess-root .ess-num{font-size:44px}
}

@media (max-width:859px){
  .ess-root .ess-medal-w.is-img{width:112px;height:98px}
  .ess-root .ess-medal-w.is-img .ess-ring{inset:calc(13.8% - 7px) -7px -7px}
  .ess-root .ess-league-head{flex-direction:column;gap:14px}
  .ess-root .ess-league-img{height:84px}
  .ess-root .ess-league-img.is-tall{height:120px}
  .ess-root .ess-league-img+h2{text-align:center}
}
/* Iframe : lissage fait en JS (ess.js), pas de transitions CSS sur la position */
.ess-root.is-framed .ess-dot{transition:opacity .3s ease}
.ess-root.is-framed .ess-p3{transition:none}
.ess-root.is-framed .ess-nav{transition:opacity .3s ease}
/* Vidéo en fenêtre */
.ess-modal{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;background:rgba(8,12,18,.88);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s;font-family:Montserrat,sans-serif}
.ess-modal.is-open{opacity:1;visibility:visible;transition:opacity .3s ease}
.ess-modal-box{position:relative;max-width:92vw;transform:scale(.96);transition:transform .3s cubic-bezier(.2,0,.3,1)}
.ess-modal.is-open .ess-modal-box{transform:none}
.ess-modal-v{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#000;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.ess-modal-v iframe,.ess-modal-v video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.ess-modal-x{position:absolute;right:0;top:-52px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:#191919;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:filter .3s}
.ess-modal-x:hover{filter:brightness(90%)}
