/* Pannellum 2.5.6, https://github.com/mpetroff/pannellum */
.pnlm-container{margin:0;padding:0;overflow:hidden;position:relative;cursor:default;width:100%;height:100%;font-family:Helvetica,"Nimbus Sans L","Liberation Sans",Arial,sans-serif;background:#f4f4f4 url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2267%22%20height%3D%22100%22%20viewBox%3D%220%200%2067%20100%22%3E%0A%3Cpath%20stroke%3D%22%23ccc%22%20fill%3D%22none%22%20d%3D%22M33.5%2C50%2C0%2C63%2C33.5%2C75%2C67%2C63%2C33.5%2C50m-33.5-50%2C67%2C25m-0.5%2C0%2C0%2C75m-66.5-75%2C67-25m-33.5%2C75%2C0%2C25m0-100%2C0%2C50%22%2F%3E%0A%3C%2Fsvg%3E%0A') repeat;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none;outline:0;line-height:1.4;contain:content}.pnlm-container *{box-sizing:content-box}.pnlm-ui{position:absolute;width:100%;height:100%;z-index:1}.pnlm-grab{cursor:grab;cursor:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2226%22%20width%3D%2226%22%3E%0A%3Cpath%20stroke%3D%22%23000%22%20stroke-width%3D%221px%22%20fill%3D%22%23fff%22%20d%3D%22m15.3%2020.5s6.38-6.73%204.64-8.24-3.47%201.01-3.47%201.01%203.61-5.72%201.41-6.49c-2.2-0.769-3.33%204.36-3.33%204.36s0.873-5.76-1.06-5.76-1.58%205.39-1.58%205.39-0.574-4.59-2.18-4.12c-1.61%200.468-0.572%205.51-0.572%205.51s-1.58-4.89-2.93-3.79c-1.35%201.11%200.258%205.25%200.572%206.62%200.836%202.43%202.03%202.94%202.17%205.55%22%2F%3E%0A%3C%2Fsvg%3E%0A') 12 8,default}.pnlm-grabbing{cursor:grabbing;cursor:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2226%22%20width%3D%2226%22%3E%0A%3Cpath%20stroke%3D%22%23000%22%20stroke-width%3D%221px%22%20fill%3D%22%23fff%22%20d%3D%22m15.3%2020.5s5.07-5.29%203.77-6.74c-1.31-1.45-2.53%200.14-2.53%200.14s2.74-3.29%200.535-4.06c-2.2-0.769-2.52%201.3-2.52%201.3s0.81-2.13-1.12-2.13-1.52%201.77-1.52%201.77-0.261-1.59-1.87-1.12c-1.61%200.468-0.874%202.17-0.874%202.17s-0.651-1.55-2-0.445c-1.35%201.11-0.68%202.25-0.365%203.62%200.836%202.43%202.03%202.94%202.17%205.55%22%2F%3E%0A%3C%2Fsvg%3E%0A') 12 8,default}.pnlm-sprite{background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2226%22%20height%3D%22208%22%3E%0A%3Ccircle%20fill-opacity%3D%22.78%22%20cy%3D%22117%22%20cx%3D%2213%22%20r%3D%2211%22%20fill%3D%22%23fff%22%2F%3E%0A%3Ccircle%20fill-opacity%3D%22.78%22%20cy%3D%22143%22%20cx%3D%2213%22%20r%3D%2211%22%20fill%3D%22%23fff%22%2F%3E%0A%3Ccircle%20cy%3D%22169%22%20cx%3D%2213%22%20r%3D%227%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%2F%3E%0A%3Ccircle%20cy%3D%22195%22%20cx%3D%2213%22%20r%3D%227%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%2F%3E%0A%3Ccircle%20cx%3D%2213%22%20cy%3D%22195%22%20r%3D%222.5%22%2F%3E%0A%3Cpath%20d%3D%22m5%2083v6h2v-4h4v-2zm10%200v2h4v4h2v-6zm-5%205v6h6v-6zm-5%205v6h6v-2h-4v-4zm14%200v4h-4v2h6v-6z%22%2F%3E%0A%3Cpath%20d%3D%22m13%20110a7%207%200%200%200%20-7%207%207%207%200%200%200%207%207%207%207%200%200%200%207%20-7%207%207%200%200%200%20-7%20-7zm-1%203h2v2h-2zm0%203h2v5h-2z%22%2F%3E%0A%3Cpath%20d%3D%22m5%2057v6h2v-4h4v-2zm10%200v2h4v4h2v-6zm-10%2010v6h6v-2h-4v-4zm14%200v4h-4v2h6v-6z%22%2F%3E%0A%3Cpath%20d%3D%22m17%2038v2h-8v-2z%22%2F%3E%0A%3Cpath%20d%3D%22m12%209v3h-3v2h3v3h2v-3h3v-2h-3v-3z%22%2F%3E%0A%3Cpath%20d%3D%22m13%20136-6.125%206.125h4.375v7.875h3.5v-7.875h4.375z%22%2F%3E%0A%3Cpath%20d%3D%22m10.428%20173.33v-5.77l5-2.89v5.77zm1-1.73%203-1.73-3.001-1.74z%22%2F%3E%0A%3C%2Fsvg%3E%0A')}.pnlm-container:-moz-full-screen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:-webkit-full-screen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:-ms-fullscreen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:fullscreen{height:100%!important;width:100%!important;position:static!important}.pnlm-render-container{cursor:inherit;position:absolute;height:100%;width:100%}.pnlm-controls{margin-top:4px;background-color:#fff;border:1px solid #999;border-color:rgba(0,0,0,0.4);border-radius:3px;cursor:pointer;z-index:2;-webkit-transform:translateZ(9999px);transform:translateZ(9999px)}.pnlm-control:hover{background-color:#f8f8f8}.pnlm-controls-container{position:absolute;top:0;left:4px;z-index:1}.pnlm-zoom-controls{width:26px;height:52px}.pnlm-zoom-in{width:100%;height:50%;position:absolute;top:0;border-radius:3px 3px 0 0}.pnlm-zoom-out{width:100%;height:50%;position:absolute;bottom:0;background-position:0 -26px;border-top:1px solid #ddd;border-top-color:rgba(0,0,0,0.10);border-radius:0 0 3px 3px}.pnlm-fullscreen-toggle-button,.pnlm-orientation-button,.pnlm-hot-spot-debug-indicator{width:26px;height:26px}.pnlm-hot-spot-debug-indicator{position:absolute;top:50%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;background-color:rgba(255,255,255,0.5);border-radius:13px;display:none}.pnlm-orientation-button-inactive{background-position:0 -156px}.pnlm-orientation-button-active{background-position:0 -182px}.pnlm-fullscreen-toggle-button-inactive{background-position:0 -52px}.pnlm-fullscreen-toggle-button-active{background-position:0 -78px}.pnlm-panorama-info{position:absolute;bottom:4px;background-color:rgba(0,0,0,0.7);border-radius:0 3px 3px 0;padding-right:10px;color:#fff;text-align:left;display:none;z-index:2;-webkit-transform:translateZ(9999px);transform:translateZ(9999px)}.pnlm-title-box{position:relative;font-size:20px;display:table;padding-left:5px;margin-bottom:3px}.pnlm-author-box{position:relative;font-size:12px;display:table;padding-left:5px}.pnlm-load-box{position:absolute;top:50%;left:50%;width:200px;height:150px;margin:-75px 0 0 -100px;background-color:rgba(0,0,0,0.7);border-radius:3px;text-align:center;font-size:20px;display:none;color:#fff}.pnlm-load-box p{margin:20px 0}.pnlm-lbox{position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;display:none}.pnlm-loading{animation-duration:1.5s;-webkit-animation-duration:1.5s;animation-name:pnlm-mv;-webkit-animation-name:pnlm-mv;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;animation-timing-function:linear;-webkit-animation-timing-function:linear;height:10px;width:10px;background-color:#fff;position:relative}@keyframes pnlm-mv{from{left:0;top:0}25%{left:10px;top:0}50%{left:10px;top:10px}75%{left:0;top:10px}to{left:0;top:0}}@-webkit-keyframes pnlm-mv{from{left:0;top:0}25%{left:10px;top:0}50%{left:10px;top:10px}75%{left:0;top:10px}to{left:0;top:0}}.pnlm-load-button{position:absolute;top:50%;left:50%;width:200px;height:100px;margin:-50px 0 0 -100px;background-color:rgba(0,0,0,.7);border-radius:3px;text-align:center;font-size:20px;display:table;color:#fff;cursor:pointer}.pnlm-load-button:hover{background-color:rgba(0,0,0,.8)}.pnlm-load-button p{display:table-cell;vertical-align:middle}.pnlm-info-box{font-size:15px;position:absolute;top:50%;left:50%;width:200px;height:150px;margin:-75px 0 0 -100px;background-color:#000;border-radius:3px;display:table;text-align:center;color:#fff;table-layout:fixed}.pnlm-info-box a,.pnlm-author-box a{color:#fff;word-wrap:break-word;overflow-wrap:break-word}.pnlm-info-box p{display:table-cell;vertical-align:middle;padding:0 5px 0 5px}.pnlm-error-msg{display:none}.pnlm-about-msg{font-size:11px;line-height:11px;color:#fff;padding:5px 8px 5px 8px;background:rgba(0,0,0,0.7);border-radius:3px;position:absolute;top:50px;left:50px;display:none;opacity:0;-moz-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;z-index:1}.pnlm-about-msg a:link,.pnlm-about-msg a:visited{color:#fff}.pnlm-about-msg a:hover,.pnlm-about-msg a:active{color:#eee}.pnlm-hotspot-base{position:absolute;visibility:hidden;cursor:default;vertical-align:middle;top:0;z-index:1}.pnlm-hotspot{height:26px;width:26px;border-radius:13px}.pnlm-hotspot:hover{background-color:rgba(255,255,255,0.2)}.pnlm-hotspot.pnlm-info{background-position:0 -104px}.pnlm-hotspot.pnlm-scene{background-position:0 -130px}div.pnlm-tooltip > span{visibility:hidden;position:absolute;border-radius:3px;background-color:rgba(0,0,0,0.7);color:#fff;text-align:center;max-width:200px;padding:5px 10px;margin-left:-220px;cursor:default}
.pnlm-compass{position:absolute;width:50px;height:50px;right:4px;bottom:4px;border-radius:25px;background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2250%22%20width%3D%2250%22%3E%0A%3Cpath%20d%3D%22m24.5078%206-3.2578%2018h7.5l-3.25781-18h-0.984376zm-3.2578%2020%203.2578%2018h0.9844l3.2578-18h-7.5zm1.19531%200.9941h5.10938l-2.5547%2014.1075-2.5547-14.1075z%22%2F%3E%0A%3C%2Fsvg%3E%0A');cursor:default;display:none}.pnlm-world{position:absolute;left:50%;top:50%}.pnlm-face{position:absolute;-webkit-transform-origin:0 0;transform-origin:0 0}.pnlm-dragfix,.pnlm-preview-img{position:absolute;height:100%;width:100%}.pnlm-preview-img{background-size:cover;background-position:center}.pnlm-lbar{width:150px;margin:0 auto;border:#fff 1px solid;height:6px}.pnlm-lbar-fill{background:#fff;height:100%;width:0}.pnlm-lmsg{font-size:12px}.pnlm-fade-img{position:absolute;top:0;left:0}.pnlm-pointer{cursor:pointer}

/**
 * Panorama Viewer Styles
 */

:root {
    --x-panorama-pulse-duration: 2s;
    --x-panorama-pulse-color: rgba(0,0,0,0.4);
    --x-panorama-pulse-size: 2;
    --x-panorama-spinner-track-color: #0d131e20;
    --x-panorama-spinner-stroke-width: 2px;
    --x-panorama-spinner-size: 3em;
}

 :where(.brxe-xpanoramaviewer) {
  aspect-ratio: 2/1;
  position: relative;
  width: 100%;
 }

 .x-panorama-viewer_inner {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

[data-hide-nested-content] .x-panorama-viewer_inner {
    pointer-events: none!important;
    visibility: hidden!important;
    opacity: 0!important;
}

:where(.x-panorama-viewer) {
  width: 100%;
  position: relative;
  overflow: hidden;
  aspect-ratio: inherit; 
}

.pnlm-hotspot {
  color: #fff;
}

/* Custom hotspot wrapper */
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-wrapper {
    position: relative;
}

/* Custom icon button wrapper */
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-icon {
    background: none;
    color: #111;
    border: none;
    border-radius: 100%;
}

.pnlm-hotspot-icon a {
  color: inherit;
}

/* Inner span for icon content - sits above pulse */
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-icon-inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    border-radius: 100px;
    background: none;
    border: none;
    cursor: pointer;
    background: #fff;
    color: inherit;
    border: currentColor 1px solid;
    padding: 0.5em;
    width: fit-content;
}

.pnlm-hotspot-icon-inner {
    height: 1em;
}

/* Pulse effect */
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-icon::after,
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-icon::before {
    content: '';
    display: block;
    position: absolute;
    pointer-events: none;
    -webkit-animation: x-panorama-pulse var(--x-panorama-pulse-duration) infinite;
    animation: x-panorama-pulse var(--x-panorama-pulse-duration) infinite;
    left: 50%;
    top: 50%;
    width: 100%;
    height: 100%;
    border-radius: 100px;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: opacity, transform;
    opacity: 0;
    background: var(--x-panorama-pulse-color);
    transform: translate(-50%, -50%);
}

:where(.brxe-xpanoramaviewer) .pnlm-hotspot-icon::before {
    animation-delay: calc(var(--x-panorama-pulse-duration)/4);
    -webkit-animation-delay: calc(var(--x-panorama-pulse-duration)/4);
}

/* Pause pulse on hover by default (when data-pulse-disable-hover is NOT present) */
:where(.brxe-xpanoramaviewer[data-pulse-disable-hover]) .pnlm-hotspot-icon:hover::after,
:where(.brxe-xpanoramaviewer[data-pulse-disable-hover]) .pnlm-hotspot-icon:hover::before,
:where(.brxe-xpanoramaviewer[data-pulse-disable-hover]) .pnlm-hotspot-icon:focus::after,
:where(.brxe-xpanoramaviewer[data-pulse-disable-hover]) .pnlm-hotspot-icon:focus::before {
    display: none;
}

:where(.brxe-xpanoramaviewer) .pnlm-hotspot:has(.pnlm-hotspot-icon:hover),
:where(.brxe-xpanoramaviewer) .pnlm-hotspot:has(.pnlm-hotspot-icon:focus) {
    z-index: 2;
}

@keyframes x-panorama-pulse {
    0% {
        opacity: .8;
        transform: translate(-50%, -50%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(var(--x-panorama-pulse-size));
    }
}

@-webkit-keyframes x-panorama-pulse {
    0% {
        opacity: .8;
        -webkit-transform: translate(-50%, -50%) scale(1);
    }
    100% {
        opacity: 0;
        -webkit-transform: translate(-50%, -50%) scale(var(--x-panorama-pulse-size));
    }
}

/* Button text styling */
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-text {
    margin-left: 8px;
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
} 

/* Tooltip positioning for custom icons */
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-tooltip {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(-5px);
    margin-bottom: 5px;
    background: white;
    border-radius: 4px;
    color: #111;
    padding: 0.5em;
    visibility: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    opacity: 0;
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
    width: 100px;
}

:where(.brxe-xpanoramaviewer)  .pnlm-about-msg {
        visibility: hidden;
  }

:where(.brxe-xpanoramaviewer) .pnlm-about-msg a {
        visibility: hidden;
  } 

:where(.brxe-xpanoramaviewer) .pnlm-hotspot-tooltip:after {
    content:'';
    position:absolute;
    width:0;
    height:0;
    border-width:10px;
    border-style:solid;
    border-color: #fff transparent transparent transparent;
    bottom:-19px;
    left:-10px;
    margin:0 50%;
}

:where(.brxe-xpanoramaviewer) .pnlm-hotspot-icon:hover + .pnlm-hotspot-tooltip,
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-icon:focus + .pnlm-hotspot-tooltip,
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-wrapper:focus-within .pnlm-hotspot-tooltip,
:where(.brxe-xpanoramaviewer) .pnlm-hotspot-tooltip:hover {
    visibility: visible;
    opacity: 1;
    transform: translateX(-50%) translateY(-10px);
}


.x-panorama-viewer.pnlm-container {
    background: #f4f4f4;
  position: absolute;
  font-family: inherit; 
  z-index: 1;
}

.x-panorama-viewer .pnlm-render-container {
  top: 0;
}

.x-panorama-viewer .pnlm-load-box,
.x-panorama-viewer .pnlm-load-button {
  display: none!important;
}

/* Builder placeholder */
.x-panorama-viewer--builder {
  background: #f5f5f5;
  border: 2px dashed #ddd;
  display: flex;
  align-items: center;
  justify-content: center;
}

.x-panorama-viewer__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #666;
  font-size: 14px;
  text-align: center;
  padding: 20px;
}

.x-panorama-viewer__placeholder i {
  font-size: 48px;
  color: #999;
}

/* Ensure Pannellum container fills the element */
.x-panorama-viewer .pnlm-container {
  width: 100% !important;
  height: 100% !important;
}

/* Custom control styling to match Bricks theme */
.x-panorama-viewer .pnlm-controls {
  background-color: rgba(255, 255, 255, 0.85);
  border-radius: 4px;
}

.x-panorama-viewer .pnlm-control:hover {
  background-color: rgba(255, 255, 255, 1);
}

/* Loading indicator */
.x-panorama-viewer .pnlm-load-box {
  background-color: rgba(0, 0, 0, 0.7);
  border-radius: 4px;
}


.brx-body.iframe .brxe-xpanoramascene:not(.is-active-element) {
    opacity: 0;
    visibility: hidden;
}

:where(.brxe-xpanoramaviewer) .pnlm-hotspot:hover {
  background-color: transparent;
}

/* Keyboard accessibility for hotspots */
.pnlm-hotspot:focus {
    outline: 2px solid #4A90E2;
    outline-offset: 2px;
    background-color: rgba(255, 255, 255, 0.3) !important;
}

/* Load button for click-to-load strategy */
.x-panorama-load-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    padding: 0.5em 1em;
    background: rgba(255, 255, 255, 0.95);
    border: 2px solid #111;
    color: #111;
    cursor: pointer;
    transition: all 0.3s ease;
}

.x-panorama-load-button:active {
    transform: translate(-50%, -50%) scale(0.98);
}

/* Hide inner content by default unless loading strategy requires it */
.x-panorama-viewer_inner {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* Show inner content only for click and interactions loading strategies */
.brxe-xpanoramaviewer[data-loading-strategy="click"] .x-panorama-viewer_inner,
.brxe-xpanoramaviewer[data-loading-strategy="interactions"] .x-panorama-viewer_inner {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* Hide inner content when panorama has loaded (for click/interactions strategies) */
.brxe-xpanoramaviewer[data-panorama-loaded] .x-panorama-viewer_inner {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}


/* iOS Fullscreen fallback */
.brxe-xpanoramaviewer[data-x-fullscreen-fallback-active] {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important; /* Use dynamic viewport height for mobile */
    z-index: 999999 !important;
    background: #000;
    aspect-ratio:unset!important;
}

.brxe-xpanoramaviewer[data-x-fullscreen-fallback-active] .x-panorama-viewer {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio:unset!important;
}

.brxe-xpanoramaviewer[data-x-fullscreen-fallback-active] .pnlm-container {
    width: 100% !important;
    height: 100% !important;
} 

/* Hide orientation button unless sensors are confirmed working */
.brxe-xpanoramaviewer:not([data-orientation-supported="true"]) .pnlm-orientation-button,
.brxe-xpanoramaviewer:not([data-orientation-supported="true"]) .pnlm-orientation-button-inactive,
.brxe-xpanoramaviewer:not([data-orientation-supported="true"]) .pnlm-orientation-button-active {
    display: none !important;
}

.brxe-xpanoramaviewer .pnlm-load-box {
    display: none!important;
}

/* Back button styling */
.pnlm-back-button {
    width: 26px;
    height: 26px;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease;
}

.pnlm-back-button:hover {
    background: rgba(0, 0, 0, 0.6);
}

.pnlm-back-button svg {
    width: 16px;
    height: 16px;
    color: inherit;
}

/* Scroll Instructions Overlay */
.pnlm-scroll-instructions {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: rgba(0, 0, 0, 0.4);
    color: white;
    padding: 20px 24px;
    z-index: 1000;
    pointer-events: none;
    opacity: 1;
    transition: opacity 0.3s ease;
    font-size: 14px;
    line-height: 1.4;
    text-align: center;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
 

[data-preview-scroll-instructions="true"] .pnlm-scroll-instructions {
    opacity: 1!important;
}

/* Loading Spinner */
.x-panorama-viewer::before {
    -webkit-animation: xPanoramaSpinAnimation 1s linear infinite;
    animation: xPanoramaSpinAnimation 1s linear infinite;
    border: solid var(--x-panorama-spinner-stroke-width) var(--x-panorama-spinner-track-color);
    border-radius: 50%;
    border-right-color: currentColor;
    border-top-color: currentColor;
    display: inline-block;
    height: var(--x-panorama-spinner-size);
    width: var(--x-panorama-spinner-size);
    -webkit-transition: opacity .3s ease, visibility .3s ease;
    transition: opacity .3s ease, visibility .3s ease; 
    left: calc(50% - var(--x-panorama-spinner-size)/2);
    opacity: 0;
    position: absolute;
    top: calc(50% - var(--x-panorama-spinner-size)/2);
    visibility: hidden;
    content: '';
    z-index: 2;
    pointer-events: none;
}

.x-panorama-viewer[data-loading="true"]::before {
    opacity: 1;
    visibility: visible;
}

@-webkit-keyframes xPanoramaSpinAnimation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }

    to {
        -webkit-transform: rotate(1turn);
        transform: rotate(1turn)
    }
}

@keyframes xPanoramaSpinAnimation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }

    to {
        -webkit-transform: rotate(1turn);
        transform: rotate(1turn)
    }
}