/* =====================================================================
   BUILDWEB CMS - gallerie, slider ed effetti sulle immagini (v1.1)
   ===================================================================== */

/* ---------- contenitore galleria ---------- */
.bwg{position:relative;width:var(--g-w,100%);max-width:100%;margin:0 0 30px;--g-h:480px}
.bwg-align-center{margin-left:auto;margin-right:auto}
.bwg-align-right{margin-left:auto}
.bwg-align-left{margin-right:auto}
.bwg figure{margin:0}
.bwg img,.bwg video{-webkit-user-drag:none;user-select:none}
.bwg-stage{position:relative;overflow:hidden;border-radius:var(--g-radius);background:var(--g-bg);height:var(--g-h)}
.bwg-ratio .bwg-stage,.bwg-ratio.bwg--beforeafter .bwg-ba{height:auto;aspect-ratio:var(--g-ratio)}
.bwg-shadow .bwg-stage,.bwg-shadow .bwg-cell,.bwg-shadow .bwg-ba{box-shadow:0 10px 30px rgba(0,0,0,.18)}
.bwg-track{position:relative;width:100%;height:100%}
.bwg-slide{position:absolute;inset:0;overflow:hidden}
.bwg-media{display:block;width:100%;height:100%;object-fit:var(--g-fit,cover);background:var(--g-bg)}
.bwg-link{display:block;width:100%;height:100%}

/* ---------- didascalie ---------- */
.bwg-caption strong{display:block;font-size:17px;font-weight:700;margin-bottom:3px}
.bwg-caption span{display:block;font-size:14px;line-height:1.5}
.bwg-more{display:inline-block;margin-top:6px;font-weight:700;font-size:13px}
.bwg-cap-overlay .bwg-caption{position:absolute;left:0;right:0;bottom:0;padding:40px 22px 18px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.78));transform:translateY(8px);opacity:0;transition:.5s .2s;pointer-events:none}
.bwg-cap-overlay .bwg-caption a{pointer-events:auto;color:#fff}
.bwg-cap-overlay .is-active .bwg-caption,.bwg-cap-overlay .bwg-cell .bwg-caption,.bwg--carousel.bwg-cap-overlay .bwg-caption{opacity:1;transform:none}
.bwg-cap-below .bwg-caption{padding:10px 4px;color:inherit}
.bwg-cap-below .bwg-stage{height:auto}
.bwg-cap-below .bwg-slide .bwg-media{height:var(--g-h)}
.bwg-cap-below.bwg-ratio .bwg-slide .bwg-media{height:auto;aspect-ratio:var(--g-ratio)}
.bwg-cap-below .bwg-stage{background:transparent}

/* ---------- frecce, pallini, miniature ---------- */
.bwg-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:46px;height:46px;border:0;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;font-size:30px;line-height:1;cursor:pointer;opacity:.75;transition:.2s;display:flex;align-items:center;justify-content:center;padding:0 0 4px}
.bwg-arrow:hover{background:var(--accent,#cd2122);opacity:1}
.bwg-arrow.prev{left:14px}.bwg-arrow.next{right:14px}
.bwg-dots{display:flex;justify-content:center;gap:8px;margin-top:14px}
.bwg-dots button{width:11px;height:11px;border-radius:50%;border:0;background:#c9c9c9;cursor:pointer;padding:0;transition:.25s}
.bwg-dots button.on{background:var(--accent,#cd2122);width:28px;border-radius:6px}
.bwg-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.bwg-thumbs button{flex:0 0 96px;height:62px;border:2px solid transparent;border-radius:4px;padding:0;overflow:hidden;cursor:pointer;background:#222;color:#fff;opacity:.6;transition:.2s}
.bwg-thumbs button.on{border-color:var(--accent,#cd2122);opacity:1}
.bwg-thumbs img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- 1. scorrimento orizzontale ---------- */
.bwg--slider .bwg-track{display:flex;transition:transform var(--g-speed) cubic-bezier(.65,.05,.36,1)}
.bwg--slider .bwg-slide{position:relative;flex:0 0 100%}

/* ---------- 2. scorrimento verticale ---------- */
.bwg--vertical .bwg-track{transition:transform var(--g-speed) cubic-bezier(.65,.05,.36,1)}
.bwg--vertical .bwg-slide{position:relative;height:100%}
.bwg--vertical.bwg-cap-below .bwg-stage{height:var(--g-h)}

/* ---------- 3. dissolvenza / sequenza ---------- */
.bwg--fade .bwg-slide,.bwg--sequence .bwg-slide,.bwg--kenburns .bwg-slide,.bwg--zoom .bwg-slide{opacity:0;transition:opacity var(--g-speed) ease;z-index:1}
.bwg--fade .is-active,.bwg--sequence .is-active,.bwg--kenburns .is-active,.bwg--zoom .is-active{opacity:1;z-index:2}
.bwg-cap-below.bwg--fade .bwg-stage,.bwg-cap-below.bwg--sequence .bwg-stage,.bwg-cap-below.bwg--kenburns .bwg-stage,.bwg-cap-below.bwg--zoom .bwg-stage,.bwg-cap-below.bwg--flip .bwg-stage{height:calc(var(--g-h) + 80px)}

/* ---------- 4. Ken Burns ---------- */
.bwg--kenburns .bwg-slide img.bwg-media{transform:scale(1);transform-origin:30% 40%}
.bwg--kenburns .is-active img.bwg-media{animation:bwgKb calc(var(--g-int,6s) + var(--g-speed)) linear forwards}
.bwg--kenburns .bwg-slide:nth-child(even) img.bwg-media{transform-origin:70% 60%}
@keyframes bwgKb{from{transform:scale(1)}to{transform:scale(1.18)}}

/* ---------- 5. zoom ---------- */
.bwg--zoom .bwg-slide{transform:scale(1.25);transition:opacity var(--g-speed) ease,transform var(--g-speed) ease}
.bwg--zoom .is-active{transform:scale(1)}

/* ---------- 6. rotazione 3D ---------- */
.bwg--flip .bwg-stage{perspective:1600px;overflow:visible;background:transparent}
.bwg--flip .bwg-slide{backface-visibility:hidden;transform:rotateY(180deg);opacity:0;transition:transform var(--g-speed) ease,opacity 0s calc(var(--g-speed) / 2);border-radius:var(--g-radius);background:var(--g-bg)}
.bwg--flip .is-active{transform:rotateY(0);opacity:1;z-index:2;transition:transform var(--g-speed) ease,opacity 0s calc(var(--g-speed) / 2)}
.bwg--flip .was-active{transform:rotateY(-180deg)}

/* ---------- 7. sequenza: barra ---------- */
.bwg-seqbar{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;align-items:center;gap:12px;padding:10px 14px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;font-size:13px;font-weight:600}
.bwg-play{background:rgba(255,255,255,.18);border:0;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:11px}
.bwg-play:hover{background:var(--accent,#cd2122)}
.bwg-progress{flex:1;height:4px;background:rgba(255,255,255,.25);border-radius:2px;overflow:hidden}
.bwg-progress i{display:block;height:100%;width:0;background:var(--accent,#cd2122)}
.bwg--sequence.bwg-cap-overlay .bwg-caption{bottom:52px;padding-bottom:10px}

/* ---------- 8. carosello multiplo ---------- */
.bwg--carousel .bwg-stage{background:transparent;height:auto;overflow:hidden}
.bwg--carousel .bwg-track{display:flex;gap:var(--g-gap);transition:transform var(--g-speed) cubic-bezier(.65,.05,.36,1)}
.bwg--carousel .bwg-slide{position:relative;flex:0 0 calc((100% - (var(--g-per-eff,var(--g-per)) - 1) * var(--g-gap)) / var(--g-per-eff,var(--g-per)));border-radius:var(--g-radius);overflow:hidden;background:var(--g-bg)}
.bwg--carousel .bwg-media{height:var(--g-h)}
.bwg--carousel .bwg-arrow{width:40px;height:40px;font-size:26px}

/* ---------- 9. griglia e mosaico ---------- */
.bwg-grid{display:grid;grid-template-columns:repeat(var(--g-per-eff,var(--g-per)),1fr);gap:var(--g-gap)}
.bwg-cell{position:relative;overflow:hidden;border-radius:var(--g-radius);background:var(--g-bg);cursor:zoom-in}
.bwg--grid .bwg-media{height:var(--g-h)}
.bwg--grid.bwg-cap-below .bwg-cell,.bwg--masonry.bwg-cap-below .bwg-cell{background:transparent}
.bwg--masonry .bwg-grid{display:block;column-count:var(--g-per-eff,var(--g-per));column-gap:var(--g-gap)}
.bwg--masonry .bwg-cell{break-inside:avoid;margin-bottom:var(--g-gap);display:block}
.bwg--masonry .bwg-media{height:auto}

/* effetti al passaggio del mouse (griglia, mosaico, carosello) */
.bwg .bwg-cell .bwg-media,.bwg--carousel .bwg-media{transition:transform .5s ease,filter .5s ease}
.bwg-hover-zoom .bwg-cell:hover .bwg-media,.bwg-hover-zoom.bwg--carousel .bwg-slide:hover .bwg-media{transform:scale(1.08)}
.bwg-hover-gray .bwg-cell .bwg-media,.bwg-hover-gray.bwg--carousel .bwg-media,.bwg-hover-gray.bwg--marquee .bwg-media{filter:grayscale(1)}
.bwg-hover-gray .bwg-cell:hover .bwg-media,.bwg-hover-gray.bwg--carousel .bwg-slide:hover .bwg-media{filter:none}
.bwg-hover-blur .bwg-cell:hover .bwg-media,.bwg-hover-blur.bwg--carousel .bwg-slide:hover .bwg-media{filter:blur(3px) brightness(.8)}
.bwg-hover-bright .bwg-cell .bwg-media,.bwg-hover-bright.bwg--carousel .bwg-media{filter:brightness(.75)}
.bwg-hover-bright .bwg-cell:hover .bwg-media,.bwg-hover-bright.bwg--carousel .bwg-slide:hover .bwg-media{filter:brightness(1.05)}
.bwg-hover-lift .bwg-cell,.bwg-hover-lift.bwg--carousel .bwg-slide{transition:transform .35s ease,box-shadow .35s ease}
.bwg-hover-lift .bwg-cell:hover,.bwg-hover-lift.bwg--carousel .bwg-slide:hover{transform:translateY(-6px);box-shadow:0 16px 30px rgba(0,0,0,.25)}

/* ---------- 10. nastro continuo ---------- */
.bwg-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.bwg-marquee-track{display:flex;gap:calc(var(--g-gap) * 3);width:max-content;animation:bwgMarq var(--g-dur,30s) linear infinite}
.bwg--marquee:hover .bwg-marquee-track{animation-play-state:paused}
.bwg--marquee .bwg-cell{background:transparent;cursor:default;flex:0 0 auto}
.bwg--marquee .bwg-media{height:var(--g-h);width:auto;object-fit:contain;background:transparent}
@keyframes bwgMarq{to{transform:translateX(calc(-50% - var(--g-gap) * 1.5))}}

/* ---------- 11. prima / dopo ---------- */
.bwg-ba{position:relative;height:var(--g-h);overflow:hidden;border-radius:var(--g-radius);background:var(--g-bg);--pos:50%}
.bwg-ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:var(--g-fit,cover);display:block;max-width:none}
.bwg-ba-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.bwg-ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:4px;margin-left:-2px;background:#fff;pointer-events:none;box-shadow:0 0 10px rgba(0,0,0,.4)}
.bwg-ba-handle span{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--accent,#cd2122);border:3px solid #fff}
.bwg-ba-handle span::before{content:"‹ ›";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px;letter-spacing:2px}
.bwg-ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.bwg-ba-label{position:absolute;top:14px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;font-weight:700;text-transform:uppercase;padding:4px 10px;border-radius:3px;pointer-events:none}
.bwg-ba-label.l{left:14px}.bwg-ba-label.r{right:14px}

/* ---------- video nelle gallerie ---------- */
.bwg-yt{background:#000 center/cover no-repeat;position:relative}
.bwg-yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.bwg-ytplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:74px;height:52px;border:0;border-radius:12px;background:rgba(205,33,34,.92);color:#fff;font-size:24px;cursor:pointer}
.bwg-ytplay:hover{background:#e00}

/* ---------- lightbox ---------- */
.bwg-lb{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.3s}
.bwg-lb.open{opacity:1;visibility:visible}
.bwg-lb figure{margin:0;max-width:92vw;max-height:88vh;text-align:center}
.bwg-lb img,.bwg-lb video{max-width:92vw;max-height:80vh;display:block;margin:0 auto;box-shadow:0 10px 40px rgba(0,0,0,.6)}
.bwg-lb figcaption{color:#ddd;padding:12px;font-size:14px}
.bwg-lb button{position:absolute;background:rgba(255,255,255,.1);border:0;color:#fff;cursor:pointer;border-radius:50%;width:50px;height:50px;font-size:30px}
.bwg-lb button:hover{background:var(--accent,#cd2122)}
.bwg-lb .x{top:18px;right:18px;font-size:28px}
.bwg-lb .p{left:18px;top:50%;transform:translateY(-50%)}
.bwg-lb .n{right:18px;top:50%;transform:translateY(-50%)}
.bwg-lb .c{position:absolute;top:26px;left:26px;color:#aaa;font-size:13px}

/* ---------- effetti sulle singole immagini (pulsante "Effetti" dell'editor) ---------- */
img.fx-shadow{box-shadow:0 12px 32px rgba(0,0,0,.25)}
img.fx-rounded{border-radius:14px}
img.fx-circle{border-radius:50%;aspect-ratio:1/1;object-fit:cover}
img.fx-border{border:6px solid #fff;box-shadow:0 0 0 1px #ddd,0 8px 20px rgba(0,0,0,.12)}
img.fx-polaroid{background:#fff;padding:10px 10px 36px;box-shadow:0 8px 24px rgba(0,0,0,.2);transform:rotate(-2deg)}
img.fx-hover-zoom,img.fx-hover-gray,img.fx-hover-lift,img.fx-hover-bright,img.fx-hover-tilt{transition:transform .45s ease,filter .45s ease,box-shadow .45s ease}
img.fx-hover-zoom:hover{transform:scale(1.06)}
img.fx-hover-gray{filter:grayscale(1)}
img.fx-hover-gray:hover{filter:none}
img.fx-hover-lift:hover{transform:translateY(-8px);box-shadow:0 18px 34px rgba(0,0,0,.28)}
img.fx-hover-bright{filter:brightness(.75)}
img.fx-hover-bright:hover{filter:brightness(1.05)}
img.fx-hover-tilt:hover{transform:perspective(600px) rotateY(-8deg) rotateX(4deg) scale(1.03)}
img.fx-float{animation:fxFloat 5s ease-in-out infinite}
img.fx-pulse{animation:fxPulse 2.6s ease-in-out infinite}
@keyframes fxFloat{50%{transform:translateY(-12px)}}
@keyframes fxPulse{50%{transform:scale(1.04)}}

/* animazione all'apparizione (immagini con fx-anim-* e gallerie) */
.bw-reveal,img[class*="fx-anim-"]{transition:opacity .9s ease,transform .9s ease}
.js-reveal .bw-reveal:not(.in-view),.js-reveal img[class*="fx-anim-"]:not(.in-view){opacity:0}
.js-reveal .bw-reveal-fade-up:not(.in-view),.js-reveal img.fx-anim-up:not(.in-view){transform:translateY(40px)}
.js-reveal .bw-reveal-zoom-in:not(.in-view),.js-reveal img.fx-anim-zoom:not(.in-view){transform:scale(.88)}
.js-reveal .bw-reveal-slide-left:not(.in-view),.js-reveal img.fx-anim-left:not(.in-view){transform:translateX(-60px)}
.js-reveal .bw-reveal-slide-right:not(.in-view),.js-reveal img.fx-anim-right:not(.in-view){transform:translateX(60px)}
.js-reveal img.fx-anim-rotate:not(.in-view){transform:rotate(-8deg) scale(.9)}

/* altezza scelta nel pannello (larghezza proporzionale) */
img.h-fix{height:auto;max-width:100%}

/* larghezze rapide immagini */
img.w-25{width:25%}img.w-33{width:33.33%}img.w-50{width:50%}img.w-75{width:75%}img.w-100{width:100%}
img.w-25,img.w-33,img.w-50,img.w-75,img.w-100{height:auto}

/* barra avviso per l'amministratore quando il sito è in manutenzione */
.maint-admin-bar{position:fixed;left:0;right:0;bottom:0;z-index:400;background:#b7791f;color:#fff;font-size:13px;font-weight:600;text-align:center;padding:8px 14px}
.maint-admin-bar a{color:#fff;text-decoration:underline;margin-left:8px}

@media (max-width:700px){
  .bwg{width:100%!important}
  .bwg-stage{max-height:70vh}
  .bwg-arrow{width:36px;height:36px;font-size:24px}
  img.w-25,img.w-33{width:50%}
  img.w-50,img.w-75{width:100%}
}
@media (prefers-reduced-motion:reduce){.bwg *,img[class*="fx-"]{animation:none!important;transition:none!important}}

/* v1.4: zone non protette dentro una pagina protetta */
.no-select .no-protect,.no-select .no-protect *{-webkit-user-select:text;user-select:text}

/* v1.7.1 effetto negativo e pulsanti personalizzati */
img.fx-hover-negative,img.fx-hover-negative-in{transition:transform .45s ease,filter .45s ease}
img.fx-hover-negative:hover{filter:invert(1)}
img.fx-hover-negative-in{filter:invert(1)}
img.fx-hover-negative-in:hover{filter:none}
a.bw-cbtn{display:inline-block;background:var(--b,#cd2122);color:var(--bt,#fff);font-weight:700;text-decoration:none;text-transform:uppercase;letter-spacing:.03em;line-height:1.2;cursor:pointer;border:0;transition:background-color .2s,transform .1s,box-shadow .2s}
a.bw-cbtn:hover{background:var(--bh,#a51a1b);color:var(--bt,#fff)}
a.bw-cbtn:active,a.bw-cbtn:focus-visible{background:var(--ba,#0a7d34);color:var(--bt,#fff);transform:translateY(1px) scale(.98);box-shadow:inset 0 2px 6px rgba(0,0,0,.25)}
a.bw-cbtn-sm{padding:8px 16px;font-size:12px}
a.bw-cbtn-md{padding:12px 26px;font-size:14px}
a.bw-cbtn-lg{padding:16px 36px;font-size:17px}
a.bw-cbtn-square{border-radius:0}
a.bw-cbtn-round{border-radius:8px}
a.bw-cbtn-pill{border-radius:999px}
