/* Page de chargement du site principal : invisible par défaut, elle n'apparaît que si le chargement d'une page traîne
   (ecfo-loader.js lui ajoute .is-shown après un court délai), puis disparaît dès que la page est prête.
   Tout est préfixé .ecfo-loader pour ne rien changer au reste du site. Manrope vient des polices déjà servies par le site. */
.ecfo-loader{--ld-blue:#0757ff;--ld-navy:#061342;--ld-muted:#536d9d;--ld-track:#e2edff;
  position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;overflow:hidden;
  padding:clamp(40px,9vh,105px) 24px 36px;text-align:center;box-sizing:border-box;
  font-family:Manrope,Arial,sans-serif;color:var(--ld-navy);
  background:radial-gradient(ellipse at 0% 100%,#bad8fc 0,transparent 38%),radial-gradient(ellipse at 100% 0%,#d1e6fc 0,transparent 33%),#fff;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility 0s linear .3s}
.ecfo-loader *{box-sizing:border-box}
.ecfo-loader.is-shown{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .25s ease}
.ecfo-loader .ld-content{width:100%;margin:auto 0;display:flex;align-items:center;flex-direction:column}
.ecfo-loader .ld-logo{position:relative;width:clamp(170px,23.6vw,365px);aspect-ratio:1;display:grid;place-items:center;margin-bottom:22px}
.ecfo-loader .ld-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;stroke-width:2.2}
.ecfo-loader .ld-track{stroke:var(--ld-track)}
.ecfo-loader .ld-arc{stroke:var(--ld-blue);stroke-width:3.2;stroke-linecap:round;stroke-dasharray:88 578;transform-origin:110px 110px;animation:ecfoLoaderSpin 2.6s linear infinite;transform:rotate(-90deg)}
.ecfo-loader .ld-crop{position:relative;width:78%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#fff}
.ecfo-loader .ld-crop img{position:absolute;width:128.5%;height:128.5%;max-width:none;left:-12.9%;top:-13.4%;object-fit:contain}
.ecfo-loader .ld-title{font-size:clamp(29px,4.5vw,70px);font-weight:800;line-height:1.16;letter-spacing:-.045em;margin:0 0 10px;color:var(--ld-navy);text-transform:none}
.ecfo-loader .ld-sub{margin:0;color:var(--ld-blue);font-size:clamp(13px,2vw,30px);font-weight:700;letter-spacing:.15em;line-height:1.6}
.ecfo-loader .ld-status{width:min(360px,70vw);margin-top:clamp(28px,4.8vh,58px)}
.ecfo-loader .ld-bar{height:5px;border-radius:10px;background:var(--ld-track);overflow:hidden;position:relative}
.ecfo-loader .ld-bar span{display:block;width:65%;height:100%;border-radius:inherit;background:var(--ld-blue);animation:ecfoLoaderBar 2.8s ease-in-out infinite}
.ecfo-loader .ld-status p{margin:18px 0 0;color:var(--ld-muted);font-size:clamp(14px,1.35vw,20px);font-weight:400}
.ecfo-loader .ld-foot{margin-top:clamp(44px,10vh,140px);z-index:1}
.ecfo-loader .ld-foot>p{margin:0 0 17px;font-size:clamp(13px,1.35vw,20px);color:#123371}
.ecfo-loader .ld-foot ul{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 0;list-style:none;margin:0;padding:0;color:#6281b1;font-size:clamp(9px,.8vw,12px);letter-spacing:.24em}
.ecfo-loader .ld-foot li{margin:0;padding:0}
.ecfo-loader .ld-foot li+li:before{content:'·';display:inline-block;margin:0 18px;color:#6988b6}
.ecfo-loader .ld-arcs{position:absolute;bottom:0;right:0;width:min(36vw,560px);height:min(46vw,620px);overflow:hidden;z-index:-1;pointer-events:none}
.ecfo-loader .ld-arcs i{position:absolute;width:1100px;height:1100px;border:1px solid #d7e7ff;border-radius:50%;left:0;top:80px}
.ecfo-loader .ld-arcs i:nth-child(2){left:70px;top:150px}
.ecfo-loader .ld-arcs i:nth-child(3){left:140px;top:220px}
@keyframes ecfoLoaderSpin{to{transform:rotate(270deg)}}
@keyframes ecfoLoaderBar{0%,100%{transform:translateX(-110%)}50%{transform:translateX(55%)}}
@media(max-width:600px){
  .ecfo-loader{padding:48px 20px 28px}
  .ecfo-loader .ld-logo{width:220px;margin-bottom:28px}
  .ecfo-loader .ld-sub{letter-spacing:.12em}
  .ecfo-loader .ld-foot{margin-top:64px}
  .ecfo-loader .ld-foot ul{max-width:340px;line-height:1.8;letter-spacing:.13em}
  .ecfo-loader .ld-foot li+li:before{margin:0 8px}
  .ecfo-loader .ld-arcs{width:60vw;height:60vw;opacity:.7}
  .ecfo-loader .ld-arcs i{width:650px;height:650px}
}
@media(max-height:600px) and (min-width:601px){
  .ecfo-loader{padding-top:25px;padding-bottom:20px}
  .ecfo-loader .ld-logo{width:150px;margin-bottom:12px}
  .ecfo-loader .ld-title{font-size:35px}
  .ecfo-loader .ld-sub{font-size:16px}
  .ecfo-loader .ld-status{margin-top:22px}
  .ecfo-loader .ld-foot{margin-top:26px}
}
@media(prefers-reduced-motion:reduce){.ecfo-loader .ld-arc,.ecfo-loader .ld-bar span{animation:none}.ecfo-loader .ld-bar span{transform:none}.ecfo-loader{transition:none}}
