/* Fotogallery v3.4 — colori configurabili dal pannello WordPress */
.gsw{--gsw-navy:#082B59;--gsw-red:#D82F39;--gsw-yellow:#F5C543;--gsw-ink:#112F55;--gsw-soft:#f4f7fb;--gsw-muted:#61748a;box-sizing:border-box;width:100%;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--gsw-ink);line-height:1.5;isolation:isolate}
.gsw *, .gsw *::before, .gsw *::after{box-sizing:border-box}
.gsw [hidden]{display:none!important}
.gsw :is(h2,h3,p){color:inherit}
.gsw .gsw-paper{background:#fff;position:relative;overflow:hidden;border-radius:0;max-width:1320px;margin:auto;box-shadow:0 12px 48px rgba(7,29,62,.075)}
.gsw .gsw-top{height:130px;display:flex;align-items:flex-start;justify-content:space-between;position:relative;padding:28px clamp(18px,4vw,58px);overflow:hidden}
.gsw .gsw-brand{position:relative;z-index:2;max-width:240px;min-width:85px;display:flex;flex-direction:column;gap:2px}
.gsw .gsw-brand-logo{display:block;width:auto;max-width:100%;max-height:90px;object-fit:contain;object-position:left center}
.gsw .gsw-brand-fallback strong{font-size:clamp(18px,2.3vw,25px);font-weight:950;line-height:.91;letter-spacing:-.075em;color:var(--gsw-navy)}
.gsw .gsw-brand-fallback span{font-weight:900;color:var(--gsw-red);font-size:12px;letter-spacing:.11em;margin-top:5px}
.gsw .gsw-top-caption{z-index:2;font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--gsw-navy);margin-right:170px;margin-top:5px}
.gsw .gsw-corner{position:absolute;right:-7px;top:0;width:245px;height:137px;background:var(--gsw-navy);clip-path:polygon(10% 0,100% 0,100% 100%,62% 100%);z-index:1}
.gsw .gsw-corner::before{content:"";position:absolute;right:0;top:0;width:83px;height:87px;background:var(--gsw-red);clip-path:polygon(0 0,100% 0,100% 100%)}
.gsw .gsw-corner::after{content:"";position:absolute;right:0;bottom:0;width:105px;height:44px;background:var(--gsw-yellow);clip-path:polygon(0 100%,100% 0,100% 100%)}
.gsw .gsw-kicker{display:inline-block;font-size:11px;letter-spacing:.14em;font-weight:900;color:var(--gsw-red);text-transform:uppercase;margin-bottom:9px}
.gsw .gsw-dot{color:var(--gsw-red)}
.gsw .gsw-content{padding:18px clamp(22px,5.5vw,72px) 55px}
.gsw-upload .gsw-paper{max-width:640px;border:1px solid #e6eaf2;border-radius:23px}
.gsw-upload .gsw-top{padding:27px 40px 0;height:134px}
.gsw-upload .gsw-content{padding:10px clamp(22px,6vw,56px) 52px}
.gsw-upload h2{font-size:clamp(34px,6.5vw,49px);font-weight:950;letter-spacing:-.055em;line-height:1.05;color:var(--gsw-navy);margin:3px 0 14px}
.gsw-upload .gsw-content>p{font-size:15px;line-height:1.65;color:var(--gsw-muted);margin:0 0 27px}
.gsw .gsw-picker{border:2px dashed #b1c0d5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:28px 22px;min-height:196px;background:linear-gradient(140deg,#f9fbfd,#f1f5fb);border-radius:16px;position:relative;color:var(--gsw-navy);text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.gsw .gsw-picker:hover,.gsw .gsw-picker:focus-within{border-color:var(--gsw-red);background:#fffafa}
.gsw .gsw-picker svg{margin-bottom:8px}
.gsw .gsw-picker strong{font-size:16px;font-weight:800}
.gsw .gsw-picker small{font-size:12px;color:var(--gsw-muted)}
.gsw .gsw-picker input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}
.gsw .gsw-preview{padding:14px 0 0;text-align:center}
.gsw .gsw-preview img{display:inline-block;max-width:100%;max-height:330px;object-fit:contain;border-radius:11px}
.gsw .gsw-agree{display:flex;align-items:flex-start;gap:12px;margin:22px 0 20px;font-size:13px;color:#465c77;line-height:1.5;text-align:left}
.gsw .gsw-agree input{flex:0 0 17px;width:17px;height:17px;margin:2px 0 0;accent-color:var(--gsw-red)}
.gsw .gsw-trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.gsw .gsw-btn{border-radius:9px;border:1.5px solid transparent;cursor:pointer;display:inline-flex;gap:12px;align-items:center;justify-content:center;min-height:45px;padding:11px 17px;font-size:13px;font-weight:800;letter-spacing:.015em;text-decoration:none;line-height:1.35;transition:filter .16s,background .16s,color .16s}
.gsw .gsw-btn-main{background:var(--gsw-navy);color:#fff;box-shadow:0 4px 0 var(--gsw-yellow)}
.gsw .gsw-btn-main:hover{background:var(--gsw-red);color:#fff;filter:brightness(1.02)}
.gsw .gsw-btn-outline{background:#fff;color:var(--gsw-navy);border-color:#bed0e5}
.gsw .gsw-btn-outline:hover{border-color:var(--gsw-navy);color:var(--gsw-navy)}
.gsw .gsw-btn-danger{color:var(--gsw-red);border-color:#ebbec2}
.gsw .gsw-form>.gsw-btn-main{display:flex;width:100%;justify-content:space-between;padding:13px 21px;font-size:15px}
.gsw .gsw-form>.gsw-btn-main span:last-child{font-size:24px;font-weight:400;line-height:1}
.gsw .gsw-btn:disabled{opacity:.6;cursor:wait}
.gsw .gsw-message{margin:13px 0 0!important;min-height:1em;font-size:13px;font-weight:700;color:var(--gsw-navy)}
.gsw .gsw-error{color:var(--gsw-red)!important}
.gsw .gsw-success{margin:24px 0;padding:22px;border:1px solid #d4e8dd;background:#f2fbf5;text-align:center;border-radius:15px}
.gsw .gsw-success-check{margin:auto;background:#dbf5e6;color:#1e8555;width:54px;height:54px;line-height:54px;text-align:center;border-radius:50%;font-size:31px;font-weight:700}
.gsw .gsw-success h3{color:var(--gsw-navy);font-size:26px;font-weight:900;margin:11px 0 5px}
.gsw .gsw-success p{color:#4b6371;margin:0 0 14px;font-size:14px}
.gsw .gsw-my-area{margin-top:32px;border-top:3px solid var(--gsw-yellow);padding-top:20px}
.gsw .gsw-section-top h3{color:var(--gsw-navy);font-size:22px;font-weight:900;margin:0 0 3px}
.gsw .gsw-section-top p{font-size:12px;color:var(--gsw-muted);margin:0 0 14px}
.gsw .gsw-mine-item{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #e7edf5}
.gsw .gsw-mine-item img{width:88px;height:88px;object-fit:contain;background:#f1f4f8;border-radius:9px;flex-shrink:0}
.gsw .gsw-mine-body{min-width:0}
.gsw .gsw-own-state{font-weight:800;font-size:13px;color:var(--gsw-navy)}
.gsw .gsw-mine-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.gsw .gsw-mine-actions .gsw-btn{min-height:36px;padding:7px 11px;font-size:11px}
.gsw-gallery{max-width:1350px;margin:auto}
.gsw-gallery .gsw-gallery-intro{display:flex;align-items:center;gap:24px;justify-content:space-between;padding:16px clamp(22px,4vw,58px) 28px}
.gsw-gallery .gsw-gallery-intro h2{font-size:clamp(31px,4.2vw,53px);line-height:1.05;font-weight:950;letter-spacing:-.055em;color:var(--gsw-navy);margin:4px 0 14px}
.gsw-gallery .gsw-gallery-intro p{color:var(--gsw-muted);font-size:14px;line-height:1.6;margin:0;max-width:580px}
.gsw-gallery .gsw-upload-link{align-self:flex-end;white-space:nowrap;margin-bottom:7px}
.gsw-gallery .gsw-tiles{columns:4 210px;column-gap:11px;padding:0 clamp(12px,3.5vw,50px) 36px}
.gsw-gallery .gsw-tile{background:#f3f5f9;display:block;width:100%;margin:0 0 11px;padding:0;border:0;border-radius:10px;break-inside:avoid;overflow:hidden;cursor:zoom-in;transition:transform .2s,box-shadow .2s}
.gsw-gallery .gsw-tile:hover{transform:translateY(-3px);box-shadow:0 10px 20px rgba(12,29,65,.17)}
.gsw-gallery .gsw-tile:focus-visible{outline:3px solid var(--gsw-yellow);outline-offset:3px}
.gsw-gallery .gsw-tile img{display:block;width:100%;height:auto;max-width:none;border-radius:0;object-fit:contain}
.gsw-gallery .gsw-empty{color:var(--gsw-muted);text-align:center;padding:33px 15px;font-size:16px}
body.gsw-lightbox-open{overflow:hidden}
.gsw .gsw-lightbox{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;color:#fff;padding:55px 50px 25px;isolation:isolate}
.gsw .gsw-lightbox-shade{position:absolute;inset:0;z-index:-1;background:rgba(4,13,31,.96);backdrop-filter:blur(8px)}
.gsw .gsw-lightbox-view{max-width:min(1150px,100%);width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.gsw .gsw-lightbox-image{max-width:100%;max-height:calc(100% - 95px);width:auto;height:auto;object-fit:contain;display:block;border-radius:3px;min-height:0}
.gsw .gsw-lightbox button{cursor:pointer}
.gsw .gsw-lightbox-close{position:fixed;right:21px;top:12px;background:rgba(255,255,255,.15);border:0;border-radius:50%;color:#fff;font-size:31px;width:42px;height:42px;line-height:1}
.gsw .gsw-lightbox-prev,.gsw .gsw-lightbox-next{position:fixed;top:45%;width:42px;height:64px;border:0;border-radius:7px;background:rgba(255,255,255,.15);font-size:46px;line-height:1;color:#fff}
.gsw .gsw-lightbox-prev{left:9px}.gsw .gsw-lightbox-next{right:9px}
.gsw .gsw-share-row{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;align-items:center}
.gsw .gsw-share-row :is(button,a){font:700 12px/1.3 inherit!important;padding:9px 12px!important;display:inline-flex;align-items:center;justify-content:center;min-height:36px;border:1px solid rgba(255,255,255,.42);background:rgba(255,255,255,.13);color:#fff!important;border-radius:7px;text-decoration:none;white-space:nowrap}
.gsw .gsw-share-row :is(button,a):hover{background:var(--gsw-red)}
.gsw .gsw-share-status{font-size:12px;color:#f7dfb1;text-align:center;min-height:18px}
.gsw-screen{height:85vh;min-height:600px;max-height:1300px;background:var(--gsw-navy);color:white;display:flex;flex-direction:column;overflow:hidden}
.gsw-screen:fullscreen{width:100vw;height:100dvh;min-height:0;max-height:none;border-radius:0}
.gsw-screen .gsw-screen-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px clamp(12px,2.5vw,34px);min-height:105px;background:#fff;color:var(--gsw-navy);position:relative;overflow:hidden;flex:0 0 auto;border-bottom:7px solid var(--gsw-yellow)}
.gsw-screen .gsw-screen-top:before{content:"";position:absolute;right:0;top:0;width:100px;height:100%;clip-path:polygon(0 0,100% 0,100% 100%);background:var(--gsw-red)}
.gsw-screen .gsw-brand{z-index:2;min-width:92px;max-width:175px}
.gsw-screen .gsw-brand-logo{max-height:74px}
.gsw-screen .gsw-screen-top>div:nth-child(2){flex:1;min-width:0;z-index:2;margin-left:20px}
.gsw-screen .gsw-screen-top h2{font-size:clamp(18px,2.3vw,32px);color:var(--gsw-navy);line-height:1.1;margin:2px 0;font-weight:950}
.gsw-screen .gsw-live{font-size:clamp(10px,1.1vw,15px);font-weight:900;letter-spacing:.13em;color:var(--gsw-red)}
.gsw-screen .gsw-fullscreen{z-index:2;background:var(--gsw-navy);color:#fff;border:0;border-radius:7px;padding:10px 16px;font-size:12px;font-weight:700;cursor:pointer;margin-right:48px;white-space:nowrap}
.gsw-screen .gsw-stage{min-height:0;flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#0a1830}
.gsw-screen .gsw-stage-blur{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(35px) brightness(.38);transform:scale(1.06)}
.gsw-screen .gsw-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.32),transparent 34%);pointer-events:none}
.gsw-screen .gsw-stage-img{position:relative;z-index:1;max-width:100%;max-height:100%;width:auto;height:100%;object-fit:contain;box-shadow:0 0 38px rgba(0,0,0,.3)}
.gsw-screen .gsw-animate{animation:gsw-appear .65s ease-out}
.gsw-screen .gsw-stage-empty{z-index:1;position:relative;color:#fff;font-weight:900;max-width:680px;text-align:center;font-size:clamp(27px,3.5vw,52px);padding:25px}
.gsw-screen .gsw-stage-empty span{display:block;font-size:clamp(15px,1.4vw,23px);font-weight:400;margin-top:18px}
.gsw-screen .gsw-screen-bottom{min-height:70px;flex:0 0 auto;display:flex;align-items:center;gap:16px;padding:13px clamp(18px,2.5vw,34px);background:var(--gsw-navy);font-size:clamp(11px,1.2vw,18px)}
.gsw-screen .gsw-screen-bottom strong{font-weight:900}
.gsw-screen .gsw-screen-bottom>span:nth-last-child(2){color:#d9e7f7;font-size:clamp(10px,.9vw,14px);margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:38vw}
.gsw-screen .gsw-screen-counter{font-size:11px;opacity:.8;white-space:nowrap}
.gsw-screen .gsw-surface-red,.gsw-screen .gsw-surface-yellow{display:inline-block;flex:0 0 12px;height:29px;transform:skew(-15deg)}
.gsw-screen .gsw-surface-red{background:var(--gsw-red)}
.gsw-screen .gsw-surface-yellow{background:var(--gsw-yellow)}
@keyframes gsw-appear{from{opacity:0;transform:scale(.975)}to{opacity:1;transform:scale(1)}}
@media(max-width:760px){
 .gsw .gsw-top{height:118px;padding:25px 22px}
 .gsw .gsw-top-caption{display:none}
 .gsw .gsw-corner{width:175px;height:125px}
 .gsw-upload .gsw-top{padding:25px 26px}
 .gsw-gallery .gsw-gallery-intro{flex-direction:column;align-items:flex-start;gap:12px}
 .gsw-gallery .gsw-upload-link{align-self:flex-start}
 .gsw-gallery .gsw-tiles{columns:2 135px;column-gap:8px;padding:0 10px 30px}
 .gsw-gallery .gsw-tile{margin-bottom:8px}
 .gsw .gsw-lightbox{padding:64px 10px 19px}
 .gsw .gsw-lightbox-image{max-height:calc(100% - 146px)}
 .gsw .gsw-lightbox-prev,.gsw .gsw-lightbox-next{top:40%;width:32px;height:52px;font-size:34px}
 .gsw .gsw-share-row{gap:5px}
 .gsw .gsw-share-row :is(button,a){padding:7px 8px!important;font-size:11px!important;min-height:33px}
 .gsw-screen .gsw-fullscreen{margin-right:0}
 .gsw-screen .gsw-screen-top{min-height:84px}
 .gsw-screen .gsw-screen-top:before{display:none}
 .gsw-screen .gsw-screen-top>div:nth-child(2){margin-left:0}
 .gsw-screen .gsw-screen-bottom>span:nth-last-child(2){display:none}
}
@media(max-width:480px){
 .gsw-upload .gsw-paper{border-radius:14px}
 .gsw .gsw-mine-item{align-items:flex-start;gap:10px}
 .gsw .gsw-mine-item img{width:70px;height:82px}
 .gsw-screen .gsw-fullscreen{font-size:0;width:35px;height:35px}
 .gsw-screen .gsw-fullscreen:after{content:"⛶";font-size:20px}
}
@media(prefers-reduced-motion:reduce){.gsw *{transition:none!important;animation:none!important}}

/* Layout full width: mantiene header e footer del tema, ma libera la galleria dai contenitori stretti. */
/* 100% of the page's available width, without negative viewport margins.
   Negative 50vw offsets broke content in some WordPress desktop themes. */
.gsw.gsw-upload,.gsw.gsw-gallery,.gsw.gsw-screen{
 width:100%;max-width:100%!important;position:relative;left:auto;
 margin-left:0;margin-right:0;clear:both;min-width:0;
}
.gsw.gsw-gallery{overflow:visible;display:block}
.gsw.gsw-gallery .gsw-paper{overflow:visible}
.gsw.gsw-gallery .gsw-top{display:flex;visibility:visible;opacity:1}
.gsw.gsw-gallery .gsw-gallery-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:22px;position:relative;overflow:visible;visibility:visible;opacity:1}
.gsw.gsw-gallery .gsw-gallery-intro>div{min-width:0;width:100%;position:relative;visibility:visible;opacity:1}
.gsw.gsw-gallery .gsw-gallery-intro h2{display:block;position:static;margin:4px 0 14px;padding:0;white-space:normal;overflow:visible;visibility:visible;opacity:1;transform:none;font-size:clamp(32px,4.2vw,53px);line-height:1.12}
.gsw.gsw-gallery .gsw-gallery-intro p{display:block;position:static;visibility:visible;opacity:1;transform:none}
.gsw.gsw-gallery .gsw-tiles{display:block;min-height:0;visibility:visible;opacity:1;overflow:visible}
.gsw.gsw-gallery .gsw-empty{visibility:visible;opacity:1}
@media(max-width:760px){.gsw.gsw-gallery .gsw-gallery-intro{grid-template-columns:1fr;align-items:start}}
.gsw.gsw-gallery .gsw-paper{max-width:none!important;width:100%;border-radius:0;box-shadow:none}
.gsw.gsw-gallery .gsw-tiles{columns:5 205px;column-gap:13px;padding:0 clamp(12px,3vw,64px) 44px}
.gsw.gsw-gallery .gsw-tile{margin-bottom:13px}
.gsw .gsw-brand{max-width:320px}
.gsw .gsw-brand-logo{max-height:105px}
.gsw-gallery .gsw-top{height:150px}
.gsw .gsw-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:12px}
.gsw .gsw-preview-card{position:relative;min-width:0;border:1px solid #dbe3ec;border-radius:10px;padding:5px;overflow:hidden;text-align:left}
.gsw .gsw-preview-card img{display:block;width:100%;height:120px;max-height:120px;object-fit:contain;border-radius:7px;background:#f5f6fa}
.gsw .gsw-preview-card>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;padding:6px 2px 1px}
.gsw .gsw-preview-remove{position:absolute;top:7px;right:7px;border:0;background:var(--gsw-red);color:#fff;border-radius:50%;width:29px;height:29px;line-height:1;font-size:22px;cursor:pointer}
.gsw .gsw-view-gallery{margin-top:22px!important;text-align:center}
.gsw .gsw-go-gallery{display:flex;width:100%;padding:13px 20px;font-size:14px!important;border:2px solid var(--gsw-navy)!important;color:var(--gsw-navy)!important;background:#fff;min-height:51px;box-shadow:0 3px 0 var(--gsw-yellow);gap:12px}
.gsw .gsw-go-gallery:hover{background:#fff7e8;color:var(--gsw-red)!important;border-color:var(--gsw-red)!important}
.gsw .gsw-go-gallery span:last-child{margin-left:auto;font-size:20px;line-height:1}
.gsw .gsw-own-panel{margin:20px clamp(16px,4vw,65px) 45px;border-top:3px solid var(--gsw-yellow);padding-top:16px}
.gsw .gsw-own-panel summary{cursor:pointer;font-weight:850;color:var(--gsw-navy);font-size:17px}
.gsw .gsw-own-panel summary span{font-size:12px;font-weight:450;color:var(--gsw-muted);margin-left:7px}
.gsw .gsw-own-panel .gsw-my-area{border:0;margin-top:5px;padding-top:4px}
.gsw .gsw-new-photo{outline:4px solid var(--gsw-yellow);outline-offset:-4px}
.gsw .gsw-own-delete{border-color:#e98c92!important;color:#fff!important;background:var(--gsw-red)!important}
@media(max-width:760px){.gsw.gsw-gallery .gsw-tiles{columns:2 135px;column-gap:8px;padding:0 10px 30px}.gsw.gsw-gallery .gsw-tile{margin-bottom:8px}.gsw .gsw-brand{max-width:235px}.gsw .gsw-brand-logo{max-height:95px}.gsw .gsw-gallery-intro{padding-top:10px}}

/* Resilient cards when themes add global gallery/button styles. */
.gsw.gsw-gallery .gsw-tile,.gsw.gsw-gallery .gsw-tile-fallback{display:block!important;position:relative!important;float:none!important;clear:none!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:1px!important;visibility:visible!important;opacity:1!important;text-decoration:none!important;background:#f3f5f9!important;line-height:0!important;}
.gsw.gsw-gallery .gsw-tile img{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;opacity:1!important;visibility:visible!important;object-fit:contain!important;}
.gsw.gsw-gallery .gsw-brand-logo{visibility:visible;opacity:1}
.gsw.gsw-gallery .gsw-upload-link{position:relative;visibility:visible;opacity:1}

@media(max-width:520px){
 .gsw.gsw-gallery .gsw-top{height:124px;padding:21px 16px 0}
 .gsw.gsw-gallery .gsw-brand{max-width:198px;min-width:0}
 .gsw.gsw-gallery .gsw-brand-logo{max-height:83px}
 .gsw.gsw-gallery .gsw-corner{width:110px;height:108px}
}
