/* EFS — Mur des donneurs — v1.1.0 */

/* ---------- Goutte ---------- */
.efs-drop{position:fixed;z-index:99990;left:var(--efs-dl,22px);right:var(--efs-dr,auto);bottom:var(--efs-db,22px);width:var(--efs-ds,58px);height:calc(var(--efs-ds,58px) * 1.14);padding:0;margin:0;border:0!important;background:none!important;box-shadow:none!important;outline:none;cursor:pointer;-webkit-tap-highlight-color:transparent;line-height:0;border-radius:0;min-width:0;min-height:0}
.efs-drop:focus-visible .efs-beat{outline:2px solid #C8A24C;outline-offset:6px;border-radius:50%}
.efs-beat{display:block;width:100%;height:100%;transform-origin:50% 65%;animation:efs-beat 1.5s ease-in-out infinite;filter:drop-shadow(0 4px 10px rgba(226,0,26,.35))}
.efs-drop-svg{display:block;width:100%;height:100%}
.efs-halo{position:absolute;left:50%;top:62%;width:96%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:2px solid #E2001A;opacity:0;animation:efs-halo 1.5s ease-out infinite;pointer-events:none;box-sizing:border-box}
.efs-drop:hover .efs-beat{animation-duration:1.1s}
@keyframes efs-beat{0%,42%,100%{transform:scale(1)}10%{transform:scale(1.15)}20%{transform:scale(.98)}29%{transform:scale(1.09)}}
@keyframes efs-halo{0%{transform:translate(-50%,-50%) scale(.6);opacity:.75}65%{transform:translate(-50%,-50%) scale(2);opacity:0}100%{opacity:0}}

.efs-tip{position:absolute;bottom:14px;white-space:nowrap;background:#F4F2ED;color:#0B0B0C;font:500 13px/1.2 Jost,system-ui,sans-serif;letter-spacing:.2px;padding:8px 12px;border-radius:20px;box-shadow:0 6px 20px rgba(0,0,0,.25);opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s;pointer-events:none}
.efs-tip-left .efs-tip{left:calc(100% + 12px)}
.efs-tip-right .efs-tip{right:calc(100% + 12px);transform:translateX(6px)}
.efs-drop:hover .efs-tip,.efs-drop:focus-visible .efs-tip{opacity:1;transform:none}
.efs-no-desk{display:none}

/* ---------- Overlay : vague rouge qui part de la goutte ---------- */
.efs-ov{--x:50vw;--y:50vh;position:fixed;inset:0;z-index:2147483000;background:#E2001A;color:#F4F2ED;clip-path:circle(0 at var(--x) var(--y));-webkit-clip-path:circle(0 at var(--x) var(--y));transition:clip-path .75s cubic-bezier(.65,0,.35,1),-webkit-clip-path .75s cubic-bezier(.65,0,.35,1),background-color .3s}
.efs-ov[hidden]{display:none}
.efs-ov.is-open{clip-path:circle(150vmax at var(--x) var(--y));-webkit-clip-path:circle(150vmax at var(--x) var(--y));background:#0B0B0C;transition:clip-path .8s cubic-bezier(.65,0,.35,1),-webkit-clip-path .8s cubic-bezier(.65,0,.35,1),background-color .7s .45s}
.efs-ov button{font-family:Jost,system-ui,sans-serif;text-transform:none;letter-spacing:normal;min-width:0;min-height:0;box-shadow:none}

.efs-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.efs-scroll::-webkit-scrollbar{display:none}
.efs-wall{columns:var(--efs-col,190px);column-gap:var(--efs-gap,8px);padding:72px var(--efs-gap,8px) 34vh}

/* ---------- Vignettes ---------- */
.efs-tile{position:relative;break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 var(--efs-gap,8px);background:#1a1a1b;border-radius:4px;overflow:hidden;opacity:0;transform:translateY(-22px) scale(.94);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.efs-tile.is-in{opacity:1;transform:none}
.efs-tile img{display:block;width:100%;height:auto;max-width:none;margin:0;transition:filter .5s,transform .6s cubic-bezier(.2,.8,.2,1)}
.efs-tile:hover img{transform:scale(1.05)}
.efs-st-bw-hover .efs-tile img,.efs-st-bw .efs-tile img{filter:grayscale(1) brightness(.85)}
.efs-st-bw-hover .efs-tile:hover img{filter:none}
.efs-tile figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;padding:22px 8px 8px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#F4F2ED;font:500 13px/1 Jost,system-ui,sans-serif;letter-spacing:.4px;text-align:center;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s}
.efs-tile:hover figcaption{opacity:1;transform:none}

/* ---------- Message ---------- */
.efs-card{position:absolute;left:50%;top:50%;--ty:-50%;transform:translate(-50%,calc(var(--ty) + 24px));opacity:0;width:min(440px,calc(100vw - 40px));max-height:calc(100vh - 160px);overflow:auto;box-sizing:border-box;text-align:center;padding:28px 32px 30px;background:rgba(11,11,12,.84);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(200,162,76,.55);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.5);transition:opacity .6s .9s,transform .8s .9s cubic-bezier(.2,.8,.2,1)}
.efs-card-top .efs-card{top:76px;--ty:0%}
.efs-card-bottom .efs-card{top:auto;bottom:24px;--ty:0%}
.efs-card-bottom.efs-back-bottom .efs-card{bottom:84px}
.efs-ov.is-open .efs-card{opacity:1;transform:translate(-50%,var(--ty))}
.efs-ov.is-open .efs-card.is-hidden{opacity:0;transform:translate(-50%,calc(var(--ty) + 24px));pointer-events:none;transition:opacity .5s,transform .5s}
.efs-num{font:500 64px/1 'Cormorant Garamond',Georgia,serif;color:#E2001A;font-variant-numeric:tabular-nums}
.efs-numlabel{font:500 13px/1 Jost,system-ui,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#C8A24C;margin-top:6px}
.efs-title{font:500 28px/1.2 'Cormorant Garamond',Georgia,serif;color:#F4F2ED;margin-top:10px}
.efs-card>.efs-title:first-child{margin-top:0}
.efs-sub{font:400 15px/1.6 Jost,system-ui,sans-serif;color:#cfccc3;margin:10px 0 0}
.efs-sub p{margin:0 0 .6em;color:inherit;font:inherit}
.efs-sub p:last-child{margin-bottom:0}
.efs-sub a{color:#F4F2ED;text-decoration:underline}
.efs-sub strong,.efs-sub b{color:#F4F2ED;font-weight:600}
.efs-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}
.efs-cta{display:inline-block;background:#E2001A;color:#fff!important;text-decoration:none!important;font:500 14px/1 Jost,system-ui,sans-serif;letter-spacing:.3px;padding:13px 24px;border-radius:30px;transition:transform .2s,background-color .2s}
.efs-cta:hover{background:#c40017;transform:translateY(-1px)}
.efs-cta2{background:transparent;border:1px solid rgba(244,242,237,.5)}
.efs-cta2:hover{background:rgba(244,242,237,.12)}
.efs-card-hide{position:absolute;top:8px;right:8px;width:30px;height:30px;padding:6px;border:0;border-radius:50%;background:transparent;color:#9a988f;cursor:pointer}
.efs-card-hide:hover{background:rgba(244,242,237,.1);color:#F4F2ED}
.efs-card-hide svg,.efs-close svg,.efs-back svg{display:block;width:100%;height:100%}
.efs-msg-btn{position:absolute;top:20px;right:72px;z-index:3;padding:10px 16px;border:1px solid rgba(200,162,76,.6);border-radius:22px;background:rgba(11,11,12,.75);color:#F4F2ED;font-size:13px;line-height:1;cursor:pointer}
.efs-msg-btn[hidden]{display:none}
.efs-msg-btn:hover{background:#C8A24C;color:#0B0B0C}

/* ---------- Fermer / Retour ---------- */
.efs-close{position:absolute;top:16px;right:16px;z-index:3;width:44px;height:44px;padding:11px;border-radius:50%;border:1px solid rgba(244,242,237,.25);background:rgba(11,11,12,.7);color:#F4F2ED;cursor:pointer;opacity:0;transition:opacity .4s .6s,background-color .2s,transform .2s}
.efs-ov.is-open .efs-close{opacity:1}
.efs-close:hover{background:#E2001A;transform:rotate(90deg)}
.efs-back{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:6px;padding:12px 22px 12px 14px;border-radius:30px;border:1px solid rgba(244,242,237,.35);background:rgba(11,11,12,.8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#F4F2ED;font-size:14px;font-weight:500;line-height:1;cursor:pointer;opacity:0;transition:opacity .4s .8s,background-color .2s,color .2s}
.efs-back svg{width:18px;height:18px;flex:0 0 18px}
.efs-back-bottom .efs-back{left:50%;bottom:20px;transform:translateX(-50%)}
.efs-back-topleft .efs-back{left:16px;top:16px}
.efs-ov.is-open .efs-back{opacity:1}
.efs-back:hover{background:#F4F2ED;color:#0B0B0C}
html.efs-lock,html.efs-lock body{overflow:hidden!important}

/* ---------- Mobile ---------- */
@media (max-width:640px){
  .efs-drop{left:var(--efs-ml,16px);right:var(--efs-mr,auto);bottom:var(--efs-mb,16px);width:var(--efs-ms,50px);height:calc(var(--efs-ms,50px) * 1.14)}
  .efs-no-desk{display:block}
  .efs-no-mob{display:none!important}
  .efs-tip{display:none}
  .efs-wall{columns:var(--efs-mcols,2);column-gap:6px;padding:64px 6px 46vh}
  .efs-tile{margin-bottom:6px}
  .efs-card{padding:22px 22px 22px;max-height:calc(100vh - 150px)}
  .efs-mcard-bottom .efs-card{top:auto;bottom:16px;--ty:0%}
  .efs-mcard-bottom.efs-back-bottom .efs-card{bottom:76px}
  .efs-mcard-center .efs-card{top:50%;bottom:auto;--ty:-50%}
  .efs-mcard-hide .efs-card,.efs-mcard-hide .efs-msg-btn{display:none!important}
  .efs-num{font-size:48px}
  .efs-title{font-size:23px}
  .efs-sub{font-size:14px}
  .efs-msg-btn{top:20px;right:68px;padding:9px 13px;font-size:12px}
  .efs-back-topleft .efs-back{top:16px;left:12px}
  .efs-back{padding:11px 18px 11px 12px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  .efs-beat,.efs-halo{animation:none}
  .efs-halo{display:none}
  .efs-ov,.efs-ov.is-open,.efs-tile,.efs-card,.efs-close,.efs-back{transition:opacity .2s!important}
  .efs-tile{transform:none}
}
