.acfsg{position:relative;max-width:100%}
.acfsg__viewport{overflow:hidden;outline:none}
.acfsg__track{display:flex !important;transition:transform .35s ease;will-change:transform;touch-action:pan-y}
.acfsg__slide{min-width:100%;flex:0 0 100%}
.acfsg__img{display:block;width:100%;height:auto}
.acfsg__btn{position:absolute;top:50%;transform:translateY(-50%);border:0;background:rgba(0,0,0,.45);color:#fff;width:40px;height:40px;border-radius:999px;cursor:pointer;line-height:40px;font-size:26px;z-index:5}
.acfsg__btn--prev{left:10px}
.acfsg__btn--next{right:10px}
.acfsg__dots{display:flex;gap:8px;justify-content:center;margin-top:10px}
.acfsg__dot{width:10px;height:10px;border-radius:999px;border:0;background:rgba(0,0,0,.25);cursor:pointer}
.acfsg__dot.is-active{background:rgba(0,0,0,.75)}

/* Lightbox (animated) */
.acfsglb{
  position:fixed; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.0);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  z-index:999999;
  padding:20px;
  transition: opacity .22s ease, background .22s ease, visibility 0s linear .22s;
}

.acfsglb.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  background:rgba(0,0,0,.88);
  transition: opacity .22s ease, background .22s ease, visibility 0s;
}

.acfsglb__inner{
  position:relative;
  max-width:min(1200px, 100%);
  max-height:100%;
  width:100%;
  transform: translateY(8px) scale(.98);
  opacity:0;
  transition: transform .22s ease, opacity .22s ease;
  will-change: transform, opacity;
}

.acfsglb.is-open .acfsglb__inner{
  transform: translateY(0) scale(1);
  opacity:1;
}

.acfsglb__img{display:block;max-width:100%;max-height:85vh;margin:0 auto}

.acfsglb__close{position:absolute;top:-10px;right:-10px;border:0;background:rgba(255,255,255,.18);color:#fff;width:42px;height:42px;border-radius:999px;cursor:pointer;font-size:22px;line-height:42px}
.acfsglb__nav{position:absolute;top:50%;transform:translateY(-50%);border:0;background:rgba(255,255,255,.18);color:#fff;width:48px;height:48px;border-radius:999px;cursor:pointer;font-size:28px;line-height:48px}
.acfsglb__prev{left:-12px}
.acfsglb__next{right:-12px}
.acfsglb__caption{color:#fff;text-align:center;margin-top:10px;opacity:.9;font-size:14px}

/* Accessibilità: riduci animazioni se richiesto */
@media (prefers-reduced-motion: reduce){
  .acfsglb, .acfsglb__inner{transition:none !important}
}


