/* NSM Dome Gallery — vanilla port of react-bits DomeGallery (MIT), brand-themed */
.nsm-dome{position:relative;width:100%;display:block}
.nsm-dome.sphere-root{
  --radius:520px;
  --viewer-pad:56px;
  --circ:calc(var(--radius) * 3.14);
  --rot-y:calc((360deg / var(--segments-x)) / 2);
  --rot-x:calc((360deg / var(--segments-y)) / 2);
  --item-width:calc(var(--circ) / var(--segments-x));
  --item-height:calc(var(--circ) / var(--segments-y));
  --overlay-blur-color:#24383F;
  --tile-radius:14px;
  --enlarge-radius:20px;
  --image-filter:none;
}
.nsm-dome *{box-sizing:border-box}
.nsm-dome .sphere,.nsm-dome .item,.nsm-dome .item__image{transform-style:preserve-3d}
.nsm-dome main.sphere-main{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;background:transparent}
.nsm-dome .stage{width:100%;height:100%;display:grid;place-items:center;perspective:calc(var(--radius) * 2);perspective-origin:50% 50%;contain:layout paint size}
.nsm-dome .sphere{transform:translateZ(calc(var(--radius) * -1));will-change:transform}
.nsm-dome .overlay,.nsm-dome .overlay--blur{position:absolute;inset:0;margin:auto;z-index:3;pointer-events:none}
.nsm-dome .overlay{background-image:radial-gradient(rgba(235,235,235,0) 65%, var(--overlay-blur-color,#24383F) 100%)}
.nsm-dome .overlay--blur{-webkit-mask-image:radial-gradient(rgba(235,235,235,0) 70%, var(--overlay-blur-color,#24383F) 90%);mask-image:radial-gradient(rgba(235,235,235,0) 70%, var(--overlay-blur-color,#24383F) 90%);backdrop-filter:blur(3px)}
.nsm-dome .item{width:calc(var(--item-width) * var(--item-size-x));height:calc(var(--item-height) * var(--item-size-y));position:absolute;top:-999px;bottom:-999px;left:-999px;right:-999px;margin:auto;transform-origin:50% 50%;backface-visibility:hidden;transition:transform 300ms;transform:rotateY(calc(var(--rot-y) * (var(--offset-x) + ((var(--item-size-x) - 1) / 2)) + var(--rot-y-delta,0deg))) rotateX(calc(var(--rot-x) * (var(--offset-y) - ((var(--item-size-y) - 1) / 2)) + var(--rot-x-delta,0deg))) translateZ(var(--radius))}
.nsm-dome .item__image{position:absolute;display:block;inset:8px;border-radius:var(--tile-radius,14px);background:transparent;overflow:hidden;backface-visibility:hidden;transition:transform 300ms;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;pointer-events:auto;box-shadow:0 6px 18px rgba(0,0,0,.18);-webkit-transform:translateZ(0);transform:translateZ(0)}
.nsm-dome .item__image:focus{outline:none}
.nsm-dome .item__image img{width:100%;height:100%;object-fit:cover;pointer-events:none;backface-visibility:hidden;filter:var(--image-filter,none)}
.nsm-dome .viewer{position:absolute;inset:0;z-index:20;pointer-events:none;display:flex;align-items:center;justify-content:center;padding:var(--viewer-pad)}
.nsm-dome .viewer .frame{height:100%;aspect-ratio:1;border-radius:var(--enlarge-radius,20px);display:flex}
@media (max-aspect-ratio:1/1){.nsm-dome .viewer .frame{height:auto;width:100%}}
.nsm-dome .viewer .scrim{position:absolute;inset:0;z-index:10;background:rgba(15,26,30,.5);pointer-events:none;opacity:0;transition:opacity 500ms ease;backdrop-filter:blur(3px)}
.nsm-dome[data-enlarging='true'] .viewer .scrim{opacity:1;pointer-events:all}
.nsm-dome .viewer .enlarge{position:absolute;z-index:30;border-radius:var(--enlarge-radius,20px);overflow:hidden;transition:transform 500ms ease,opacity 500ms ease;transform-origin:top left;box-shadow:0 18px 50px rgba(0,0,0,.4)}
.nsm-dome .viewer .enlarge img{width:100%;height:100%;object-fit:cover;filter:var(--image-filter,none)}
.nsm-dome .enlarge-closing img{filter:var(--image-filter,none)}
.nsm-dome .edge-fade{position:absolute;left:0;right:0;height:110px;z-index:5;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--overlay-blur-color,#24383F))}
.nsm-dome .edge-fade--top{top:0;transform:rotate(180deg)}
.nsm-dome .edge-fade--bottom{bottom:0}
body.nsm-dg-lock{overflow:hidden}

.elementor-widget-nsm_dome,.elementor-widget-nsm_dome>.elementor-widget-container{width:100%}
.e-con-inner>.elementor-widget-nsm_dome,.e-con>.elementor-widget-nsm_dome{width:100%}
