.sip-overlay{position:fixed;inset:0;z-index:999999;display:flex;padding:16px;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;
background:var(--sip-over,rgba(0,0,0,.6));-webkit-backdrop-filter:blur(var(--sip-blur,0));backdrop-filter:blur(var(--sip-blur,0));
opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}
.sip-overlay.sip-open{opacity:1;visibility:visible;transition:opacity .35s ease}
.sip-overlay *{box-sizing:border-box}

/* positions (margin:auto keeps tall images scrollable, never cut off) */
.sip-box{position:relative;max-width:100%;margin:auto;border-radius:var(--sip-radius,12px);line-height:0}
.sip-pos-top .sip-box{margin:0 auto auto}
.sip-pos-bottom .sip-box{margin:auto auto 0}
.sip-pos-left .sip-box{margin:auto auto auto 0}
.sip-pos-right .sip-box{margin:auto 0 auto auto}
.sip-pos-bottom-left .sip-box{margin:auto auto 0 0}
.sip-pos-bottom-right .sip-box{margin:auto 0 0 auto}

.sip-box a{display:block;height:100%;border-radius:inherit}
.sip-box img{display:block;width:100%;height:auto;max-width:100%;border-radius:inherit;user-select:none}
.sip-shadow .sip-box{box-shadow:0 30px 80px -20px rgba(0,0,0,.45),0 10px 24px -10px rgba(0,0,0,.25)}

/* no overlay: page stays clickable */
.sip-noover{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;overflow:visible}
.sip-noover .sip-box{pointer-events:auto}

/* close button */
.sip-close{position:absolute;top:calc(var(--sip-cs,36px) / -2.6);right:calc(var(--sip-cs,36px) / -2.6);z-index:2;width:var(--sip-cs,36px);height:var(--sip-cs,36px);
padding:0;margin:0;border:0;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;
color:var(--sip-cc,#111);background:var(--sip-cb,#fff);box-shadow:0 6px 18px rgba(0,0,0,.25);transition:transform .25s ease,box-shadow .25s ease}
.sip-close:hover{transform:rotate(90deg) scale(1.06);box-shadow:0 8px 22px rgba(0,0,0,.32)}
.sip-close:focus-visible{outline:2px solid #fff;outline-offset:3px}
.sip-close-in .sip-close{top:10px;right:10px}
@media(max-width:767px){.sip-close{top:8px;right:8px}}

/* entrance animations */
.sip-overlay.sip-open .sip-box{animation-duration:var(--sip-dur,.5s);animation-timing-function:var(--sip-ease,ease);animation-fill-mode:both}
.sip-a-fade.sip-open .sip-box{animation-name:sipFade}
.sip-a-zoom.sip-open .sip-box{animation-name:sipZoom}
.sip-a-slide-up.sip-open .sip-box{animation-name:sipUp}
.sip-a-slide-down.sip-open .sip-box{animation-name:sipDown}
.sip-a-slide-left.sip-open .sip-box{animation-name:sipLeft}
.sip-a-slide-right.sip-open .sip-box{animation-name:sipRight}
.sip-a-flip.sip-open .sip-box{animation-name:sipFlip}
.sip-a-blur.sip-open .sip-box{animation-name:sipBlur}
.sip-a-bounce.sip-open .sip-box{animation-name:sipBounce}

@keyframes sipFade{from{opacity:0}to{opacity:1}}
@keyframes sipZoom{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}
@keyframes sipUp{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}
@keyframes sipDown{from{opacity:0;transform:translateY(-60px)}to{opacity:1;transform:none}}
@keyframes sipLeft{from{opacity:0;transform:translateX(70px)}to{opacity:1;transform:none}}
@keyframes sipRight{from{opacity:0;transform:translateX(-70px)}to{opacity:1;transform:none}}
@keyframes sipFlip{from{opacity:0;transform:perspective(900px) rotateX(-16deg) translateY(24px)}to{opacity:1;transform:perspective(900px) rotateX(0) translateY(0)}}
@keyframes sipBlur{from{opacity:0;filter:blur(14px);transform:scale(1.05)}to{opacity:1;filter:blur(0);transform:scale(1)}}
@keyframes sipBounce{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.04)}80%{transform:scale(.99)}100%{transform:scale(1)}}

/* Elementor editor preview */
.sip-overlay.sip-static{position:relative;inset:auto;z-index:1;opacity:1;visibility:visible;overflow:visible;background:#ececec;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:auto}
.sip-overlay.sip-static .sip-box{animation:none!important}

body.sip-locked{overflow:hidden}

@media (prefers-reduced-motion:reduce){
.sip-overlay,.sip-overlay.sip-open{transition:opacity .01s}
.sip-overlay.sip-open .sip-box{animation:none!important}
}
