.o360-hotspots {
  position: relative;
  width: 100%;
}
.o360-hotspots__image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.o360-hotspots.is-fit-fit .o360-hotspots__image {
  height: 100vh;
  object-fit: contain;
}

.o360-hotspots.is-fit-fill .o360-hotspots__image {
  height: 100vh;
  object-fit: cover;
}
.o360-hotspots__layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.o360-hotspots__marker {
  position: absolute;
    border: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: auto;
  cursor: pointer;
  width: var(--o360-marker-size, 18px);
  height: var(--o360-marker-size, 18px);
  border-radius: var(--o360-popup-close-radius, 12px);
  background: var(--o360-marker-color, rgba(65,196,220,0.95));
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
  position: relative;
  z-index: 2;
}
.o360-hotspots__marker::after{
  z-index: 1;
  content:'';
  position:absolute;
  inset:-8px;
  border-radius:999px;
  border: 2px solid color-mix(in srgb, var(--o360-marker-color, rgba(65,196,220,0.95)) 55%, transparent);
  opacity:0.55;
}

.o360-hotspots__marker:hover{
  background: var(--o360-marker-hover-color, var(--o360-marker-color, rgba(65,196,220,0.95)));
}
.o360-hotspots__marker:hover::after{
  border-color: color-mix(in srgb, var(--o360-marker-hover-color, var(--o360-marker-color, rgba(65,196,220,0.95))) 55%, transparent);
  opacity:0.75;
}
.o360-hotspots__marker:hover .o360-hotspots__marker-glyph{
  background: var(--o360-marker-icon-hover-color, var(--o360-marker-icon-color, #fff));
}
@keyframes o360Pulse {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
  70% { transform: translate(-50%, -50%) scale(1.6); opacity: 0; }
  100% { transform: translate(-50%, -50%) scale(1.6); opacity: 0; }
}
.o360-hotspots__marker.is-pulse::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:999px;
  background: var(--o360-marker-color, rgba(65,196,220,0.95));
  animation: o360Pulse 1.8s infinite;
  opacity:0.6;
}
.o360-hotspots__popup {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: var(--o360-popup-w, 360px);
  max-width: min(92vw, 520px);
  max-height: 86vh;
  overflow: hidden;
  background: var(--o360-popup-bg, rgba(0,0,0,0.85));
  color: var(--o360-popup-color, #fff);
  
  padding: 12px 14px;
  z-index: 9999;
  display: none;
}
.o360-hotspots__popup.is-open { display:block; }
.o360-hotspots__popup-title{
  margin:0 0 6px 0;
  font-weight: var(--o360-popup-title-weight, 600);
  font-size: var(--o360-popup-title-size, 14px);
  color: var(--o360-popup-title-color, inherit);
}
.o360-hotspots__popup-body{
  margin:0;
  font-size: var(--o360-popup-body-size, 13px);
  line-height: 1.35;
  color: var(--o360-popup-body-color, inherit);
}

.o360-hotspots__popup-viewer {
  width: 100%;
  height: var(--o360-popup-viewer-h, 220px);
  border-radius: 10px;
  overflow: hidden;
  background: #000;
  margin: 10px 0;
}
.o360-hotspots__popup-close {
  position:absolute;
  right:8px;
  top:6px;
  border:0;
  background:transparent;
  color:inherit;
  font-size: var(--o360-popup-close-size, 18px);
  cursor:pointer;
}

.o360-hotspots.is-popup-open::before{
  content:'';
  position: fixed;
  inset: 0;
  background: var(--o360-popup-overlay-bg, rgba(0,0,0,0.45));
  z-index: 9998;
}

.o360-hotspots__marker{ display:flex; align-items:center; justify-content:center; position:absolute; }
.o360-hotspots__marker::before{ z-index:1; }

/* Marker icon: 360 camera (mask-based so color is controllable via CSS variables) */
.o360-hotspots__marker-glyph{
  position: relative;
  z-index: 3;
  width: calc(var(--o360-marker-size, 50px) - (var(--o360-marker-icon-padding, 0px) * 2));
  height: calc(var(--o360-marker-size, 50px) - (var(--o360-marker-icon-padding, 0px) * 2));
  background: var(--o360-marker-icon-color, #fff);
  -webkit-mask: var(--o360-marker-icon-mask) center / contain no-repeat;
  mask: var(--o360-marker-icon-mask) center / contain no-repeat;
}

/* Default SVG mask for the 360 camera icon */
.o360-hotspots{
  --o360-marker-icon-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%20720%20568%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%20d%3D%22M541.0,339.0%20L443.0,339.0%20L401.0,377.0%20L358.0,405.0%20L307.0,426.0%20L269.0,432.0%20L237.0,429.0%20L209.0,416.0%20L194.0,402.0%20L183.0,384.0%20L177.0,365.0%20L176.0,348.0%20L151.0,347.0%20L148.0,369.0%20L150.0,404.0%20L155.0,425.0%20L166.0,449.0%20L190.0,477.0%20L206.0,488.0%20L230.0,498.0%20L253.0,503.0%20L283.0,504.0%20L311.0,501.0%20L347.0,492.0%20L380.0,479.0%20L441.0,443.0%20L477.0,414.0%20L509.0,382.0%20Z%20M360.0,186.0%20L341.0,194.0%20L329.0,209.0%20L321.0,238.0%20L320.0,265.0%20L325.0,293.0%20L335.0,311.0%20L351.0,322.0%20L370.0,324.0%20L388.0,317.0%20L401.0,303.0%20L410.0,276.0%20L411.0,242.0%20L407.0,218.0%20L399.0,201.0%20L382.0,188.0%20Z%20M364.0,208.0%20L373.0,210.0%20L381.0,219.0%20L386.0,243.0%20L383.0,286.0%20L379.0,294.0%20L369.0,301.0%20L362.0,301.0%20L352.0,293.0%20L345.0,266.0%20L349.0,224.0%20L352.0,217.0%20Z%20M291.0,187.0%20L268.0,186.0%20L251.0,192.0%20L236.0,206.0%20L224.0,231.0%20L221.0,247.0%20L223.0,287.0%20L228.0,301.0%20L236.0,312.0%20L252.0,322.0%20L270.0,324.0%20L288.0,318.0%20L302.0,305.0%20L308.0,291.0%20L309.0,267.0%20L304.0,253.0%20L297.0,244.0%20L275.0,234.0%20L248.0,238.0%20L252.0,224.0%20L266.0,210.0%20L281.0,208.0%20L302.0,216.0%20L302.0,192.0%20Z%20M260.0,257.0%20L276.0,259.0%20L284.0,271.0%20L283.0,289.0%20L270.0,301.0%20L256.0,298.0%20L248.0,287.0%20L248.0,268.0%20Z%20M156.0,186.0%20L132.0,195.0%20L131.0,221.0%20L150.0,210.0%20L165.0,208.0%20L176.0,213.0%20L179.0,229.0%20L171.0,239.0%20L139.0,242.0%20L139.0,263.0%20L173.0,266.0%20L182.0,274.0%20L184.0,285.0%20L177.0,297.0%20L166.0,301.0%20L147.0,299.0%20L128.0,286.0%20L127.0,314.0%20L141.0,322.0%20L166.0,324.0%20L183.0,320.0%20L199.0,309.0%20L207.0,295.0%20L209.0,277.0%20L201.0,259.0%20L191.0,251.0%20L201.0,238.0%20L204.0,228.0%20L204.0,214.0%20L200.0,203.0%20L192.0,194.0%20L181.0,188.0%20Z%20M439.0,151.0%20L428.0,155.0%20L419.0,164.0%20L414.0,176.0%20L414.0,186.0%20L417.0,195.0%20L427.0,206.0%20L435.0,210.0%20L452.0,210.0%20L468.0,199.0%20L474.0,178.0%20L470.0,166.0%20L462.0,157.0%20L449.0,151.0%20Z%20M441.0,166.0%20L450.0,167.0%20L458.0,176.0%20L457.0,188.0%20L447.0,196.0%20L436.0,194.0%20L429.0,185.0%20L431.0,173.0%20Z%20M252.0,161.0%20L272.0,161.0%20L322.0,121.0%20L380.0,92.0%20L417.0,83.0%20L441.0,82.0%20L464.0,85.0%20L492.0,98.0%20L508.0,114.0%20L518.0,131.0%20L525.0,159.0%20L525.0,184.0%20L521.0,207.0%20L518.0,212.0%20L496.0,206.0%20L495.0,208.0%20L534.0,293.0%20L537.0,295.0%20L615.0,238.0%20L591.0,230.0%20L597.0,199.0%20L597.0,165.0%20L592.0,139.0%20L582.0,114.0%20L569.0,95.0%20L553.0,80.0%20L527.0,65.0%20L504.0,58.0%20L479.0,55.0%20L447.0,56.0%20L412.0,63.0%20L370.0,78.0%20L310.0,112.0%20Z%22/%3E%3C/svg%3E");
}

.o360-hotspots__popup-viewer{ pointer-events: auto; }
.o360-hotspots__popup-viewer, .o360-hotspots__popup-viewer *{ touch-action: none; }

.o360-view-capture{display:flex; align-items:center; justify-content:space-between; gap:var(--o360-swipe-hint-gap, 10px); margin:8px 0; padding:6px 8px; background: rgba(255,255,255,0.08); border-radius: 10px;}
.o360-view-capture__vals{font-size:12px; opacity:0.9;}
.o360-view-capture__copy{border:0; padding:6px 10px; border-radius:10px; cursor:pointer;}
.o360-view-capture__btns{display:flex; gap:8px;}
.o360-view-capture__apply{border:0; padding:6px 10px; border-radius:10px; cursor:pointer;}

/* Popup: hide pannellum title + fullscreen only (keep zoom controls + interaction) */
.o360-hotspots__popup .pnlm-title-box,
.o360-hotspots__popup .pnlm-fullscreen-toggle-button,
.o360-hotspots__popup .pnlm-fullscreen-toggle-button-inactive {
  display: none !important;
}


/* Remove legacy plus-sign icon (icon is now rendered by .o360-hotspots__marker-glyph) */
.o360-hotspots__marker::before{ content:''; }

/* Keep ring behind icon */
.o360-hotspots__marker::after{
  z-index: 1;
}

/* Popup: ensure pannellum controls clickable */
.o360-hotspots__popup .o360-hotspots__popup-viewer,
.o360-hotspots__popup .o360-viewer{
  position: relative;
}

.o360-hotspots__popup .pnlm-container,
.o360-hotspots__popup .pnlm-render-container,
.o360-hotspots__popup canvas{
  touch-action: none;
}

.o360-hotspots__popup .pnlm-controls,
.o360-hotspots__popup .pnlm-control,
.o360-hotspots__popup .pnlm-zoom-controls{
  pointer-events: auto !important;
}

/* Move pannellum zoom controls to bottom-left inside popup */
.o360-hotspots__popup .pnlm-zoom-controls{
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: 10px !important;
  left: 10px !important;
}


/* Popup viewer sizing (prevents Safari 0-height render) */
.o360-hotspots__popup .o360-hotspots__popup-viewer{
  width: 100%;
  height: 60vh;
  min-height: 360px;
  max-height: 620px;
  background: #000;
  position: relative;
}
.o360-hotspots__popup .o360-hotspots__popup-viewer .o360-viewer,
.o360-hotspots__popup .o360-hotspots__popup-viewer .pnlm-container{
  width: 100% !important;
  height: 100% !important;
}

/* Custom popup zoom controls (bottom-left) */
.o360-hotspots__popup-viewer{
  position: relative;
}
.o360-hotspots__popup .pnlm-zoom-controls{
  display: none !important;
}
.o360-popup-zoom{
  position:absolute;
  left:10px;
  bottom:10px;
  z-index:1000;
  display:flex;
  gap:8px;
  pointer-events:auto;
}
.o360-popup-zoom__btn{
  width:34px;
  height:34px;
  border:0;
  border-radius:10px;
  cursor:pointer;
  font-size:18px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(0,0,0,0.55);
  color:#fff;
}
.o360-popup-zoom__btn:active{
  transform: translateY(1px);
}


/* v2.0.74 FORCE popup bottom layout */
.o360-popup {
    display: flex !important;
    flex-direction: column !important;
}

.o360-popup-inner,
.o360-popup-content {
    flex: 1 1 auto !important;
}

.o360-popup-header {
    position: relative !important;
    order: 99 !important;
    bottom: 0 !important;
    top: auto !important;
    width: 100% !important;
    padding: 18px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    background: rgba(0,0,0,0.9) !important;
}

.o360-popup-title {
    margin: 0 !important;
}

.o360-popup-close {
    position: relative !important;
}







/* v2.0.74 Popup structure: wrap + popup box + floating close + title overlay */
.o360-hotspots__popup-wrap{
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: var(--o360-popup-w, 360px);
  max-width: min(92vw, 520px);
  max-height: 86vh;
  z-index: 9999;
  display: none;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.o360-hotspots__popup-wrap.is-open{ display: flex; }

/* Popup box */
.o360-hotspots__popup{
  position: relative;
  left: auto;
  top: auto;
  transform: none;
  width: 100%;
  max-width: none;
  max-height: 86vh;
  overflow: hidden;
  background: var(--o360-popup-bg, rgba(0,0,0,0.85));
  color: var(--o360-popup-color, #fff);
  
  padding: 0;
  display: block;
}

/* Viewer first */
.o360-hotspots__popup-viewer{
  width: 100%;
  height: var(--o360-popup-viewer-h, 220px);
  border-radius: 12px;
  overflow: hidden;
  background: #000;
  margin: 0;
}

/* Title overlay sits above viewer at bottom of popup */
.o360-hotspots__popup-titleOverlay{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 6;
  padding: 12px 14px;
  background: linear-gradient(to top, rgba(0,0,0,0.72), rgba(0,0,0,0));
  pointer-events: none;
}

.o360-hotspots__popup-title{
  margin: 0;
  font-weight: var(--o360-popup-title-weight, 600);
  font-size: var(--o360-popup-title-size, 14px);
  color: var(--o360-popup-title-color, inherit);
}

/* Floating close button: solid circle, centered under popup box */
.o360-hotspots__popup-close--floating{
  position: relative !important;
  top: 0 !important;
  right: auto !important;
  left: auto !important;
  width: clamp(40px, calc(var(--o360-popup-close-size, 18px) * 2.4), 56px);
  height: clamp(40px, calc(var(--o360-popup-close-size, 18px) * 2.4), 56px);
  border-radius: var(--o360-popup-close-radius, 12px);
  background: rgba(0,0,0,0.85);
  border: 1px solid rgba(255,255,255,0.16);
  box-shadow: 0 10px 26px rgba(0,0,0,0.35);
  display: grid;
  place-items: center;
  padding: 0;
  line-height: 1;
  font-size: calc(var(--o360-popup-close-size, 18px) * 1.15);
}

.o360-hotspots__popup-close--floating:hover{
  transform: translateY(-1px);
}

/* Keep existing close styles from interfering */
.o360-hotspots__popup-close{
  cursor: pointer;
}


/* v2.0.74 Fix floating close visibility */
.o360-hotspots__popup-close--floating{
  color: var(--o360-popup-color, #fff);
}


/* v2.0.74 Popup wrap layout: centered close button with 15px offset */
.o360-hotspots__popup-wrap{
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: var(--o360-popup-w, 360px);
  max-width: min(92vw, 520px);
  max-height: 86vh;
  z-index: 9999;
  display: none;
  flex-direction: column;
  align-items: center !important;
  justify-content: center;
  gap: 15px; /* offset under popup */
}

.o360-hotspots__popup-wrap.is-open{ display: flex; }

/* Popup box inside wrap */
.o360-hotspots__popup-wrap .o360-hotspots__popup{
  position: relative;
  left: auto;
  top: auto;
  transform: none;
  width: 100%;
  max-width: none;
  max-height: 86vh;
  overflow: hidden;
  background: var(--o360-popup-bg, rgba(0,0,0,0.85));
  color: var(--o360-popup-color, #fff);
  
  padding: 0;
  display: block;
}

/* Viewer top */
.o360-hotspots__popup-wrap .o360-hotspots__popup-viewer{
  width: 100%;
  height: var(--o360-popup-viewer-h, 220px);
  border-radius: 12px;
  overflow: hidden;
  background: #000;
  margin: 0;
}

/* Title overlay at bottom of popup, above viewer */
.o360-hotspots__popup-wrap .o360-hotspots__popup-titleOverlay{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 6;
  padding: 12px 14px;
  background: linear-gradient(to top, rgba(0,0,0,0.72), rgba(0,0,0,0));
  pointer-events: none;
}

.o360-hotspots__popup-wrap .o360-hotspots__popup-title{
  margin: 0;
  font-weight: var(--o360-popup-title-weight, 600);
  font-size: var(--o360-popup-title-size, 14px);
  color: var(--o360-popup-title-color, inherit);
}

/* Floating close button centered under popup */
.o360-hotspots__popup-wrap .o360-hotspots__popup-close--floating{
  position: relative !important;
  margin: 0 auto !important;
  align-self: center !important;
  width: clamp(40px, calc(var(--o360-popup-close-size, 18px) * 2.4), 56px);
  height: clamp(40px, calc(var(--o360-popup-close-size, 18px) * 2.4), 56px);
  border-radius: var(--o360-popup-close-radius, 12px);
  background: rgba(0,0,0,0.85);
  border: 1px solid rgba(255,255,255,0.16);
  box-shadow: 0 10px 26px rgba(0,0,0,0.35);
  display: grid;
  place-items: center;
  padding: 0;
  line-height: 1;
  font-size: calc(var(--o360-popup-close-size, 18px) * 1.15);
  color: var(--o360-popup-color, #fff);
}

/* Prevent legacy popup rules from showing popups outside wrap */
.o360-hotspots__popup.is-open{ display:none; }
.o360-hotspots__popup-wrap.is-open .o360-hotspots__popup.is-open{ display:block; }


/* v2.0.74 Close button style vars */
.o360-hotspots__popup-close--floating{
  width: var(--o360-popup-close-circle, clamp(40px, calc(var(--o360-popup-close-size, 18px) * 2.4), 56px));
  height: var(--o360-popup-close-circle, clamp(40px, calc(var(--o360-popup-close-size, 18px) * 2.4), 56px));
  background: var(--o360-popup-close-bg, rgba(0,0,0,0.85));
  color: var(--o360-popup-close-color, var(--o360-popup-color, #fff));
}


/* v2.0.74 Popup swipe hint (finger swipe) */
.o360-hotspots__popup-viewer{ position: relative; }

.o360-swipe-hint{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index: 9;
  pointer-events:none;
  opacity:0;
  animation:o360SwipeHintIn 0.35s ease forwards, o360SwipeHintOut 0.45s ease 3.2s forwards;
}

@keyframes o360SwipeHintIn{ to{ opacity:1; } }
@keyframes o360SwipeHintOut{ to{ opacity:0; } }

.o360-swipe-hint__bubble{
  display:inline-flex;
  flex-direction: var(--o360-swipe-hint-direction, row);
  align-items: var(--o360-swipe-hint-items, center);
  justify-content: var(--o360-swipe-hint-justify, center);
  text-align: var(--o360-swipe-hint-text-align, left);
  gap:var(--o360-swipe-hint-gap, 10px);
  padding:10px 14px;
  border-radius:999px;
  background:rgba(0,0,0,0.55);
  border:1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.o360-swipe-hint__text{
  text-align: inherit;
  font-size:var(--o360-swipe-hint-font-size, 13px);
  line-height:1;
  color:rgba(255,255,255,0.95);
  white-space:nowrap;
}

.o360-swipe-hint__icon{ width:34px; height:22px; display:block; }
.o360-swipe-hint__hand{ animation:o360HandSwipe 1.2s ease-in-out infinite; transform-origin:50% 50%; }

@keyframes o360HandSwipe{
  0%{ transform: translateX(-10px); opacity:0.7; }
  40%{ transform: translateX(10px); opacity:1; }
  100%{ transform: translateX(-10px); opacity:0.7; }
}


/* v2.0.74 Elementor editor marker overlay fix (editor only) */
body.elementor-editor-active .o360-hotspots__media,
body.elementor-editor-active .o360-hotspots__imageWrap{
  position: relative !important;
}

body.elementor-editor-active .o360-hotspots__layer{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: auto;
}


/* v2.0.74 Editor layer sizing support */
.o360-hotspots__layer{ box-sizing: border-box; }


/* v2.0.74 Ensure close colors apply on frontend */
.o360-hotspots__popup-close--floating{
  background-color: var(--o360-popup-close-bg, rgba(0,0,0,0.85));
  color: var(--o360-popup-close-color, var(--o360-popup-color, #fff));
}


/* v2.0.74 Popup position vars */
.o360-hotspots{
  --o360-popup-left: 50%;
  --o360-popup-right: auto;
  --o360-popup-tx: -50%;
}

.o360-hotspots__popup-wrap{
  left: var(--o360-popup-left);
  right: var(--o360-popup-right);
  transform: translate(var(--o360-popup-tx), -50%);
}



.o360-hotspots{
  --o360-popup-h: 86vh;
  --o360-popup-close-align: center;
}

.o360-hotspots__popup-wrap{
  width: var(--o360-popup-w, 360px);
  max-height: var(--o360-popup-h, 86vh);
  height: auto;
  align-items: var(--o360-popup-close-align, center);
}

.o360-hotspots__popup-wrap .o360-hotspots__popup{
  max-height: var(--o360-popup-h, 86vh);
}


/* v2.0.74 Popup width/height + close alignment vars */
.o360-hotspots{
  --o360-popup-h: 86vh;
  --o360-popup-close-align: center; /* flex-start | center | flex-end */
}

.o360-hotspots__popup-wrap{
  width: var(--o360-popup-w, 360px);
  max-height: var(--o360-popup-h, 86vh);
  height: auto;
  align-items: center; /* keep popup centered; close button is aligned via align-self */
}

.o360-hotspots__popup-wrap .o360-hotspots__popup{
  max-height: var(--o360-popup-h, 86vh);
}

.o360-hotspots__popup-wrap .o360-hotspots__popup-close--floating{
  align-self: var(--o360-popup-close-align, center);
}


/* v2.0.74 Hide gyro/orientation control on popup (mobile) */
@media (max-width: 767px){
  .o360-hotspots__popup-wrap .o360-hotspots__popup-viewer .pnlm-orientation-button,
  .o360-hotspots__popup-wrap .o360-hotspots__popup-viewer .pnlm-compass,
  .o360-hotspots__popup-wrap .o360-hotspots__popup-viewer .pnlm-compass-container,
  .o360-hotspots__popup-wrap .o360-hotspots__popup-viewer .pnlm-orientation{
    display:none !important;
  }
}


/* v2.0.74 Lock popup zoom UI (HFOV fixed at 120) */
.o360-hotspots__popup-wrap .o360-popup-zoom{ display:none !important; }
.o360-hotspots__popup-wrap .pnlm-zoom-controls{ display:none !important; }


/* v2.0.74 Popup swipe hint (simple, robust) */
.o360-viewer[data-o360-popup="1"]{ position: relative; }

.o360-swipe-hint{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index: 999;
  pointer-events:none;
  opacity:0;
  animation:o360HintIn 0.3s ease forwards, o360HintOut 0.4s ease 3.0s forwards;
}

@keyframes o360HintIn{ to{ opacity:1; } }
@keyframes o360HintOut{ to{ opacity:0; } }

.o360-swipe-hint__bubble{
  display:inline-flex;
  flex-direction: var(--o360-swipe-hint-direction, row);
  align-items: var(--o360-swipe-hint-items, center);
  justify-content: var(--o360-swipe-hint-justify, center);
  text-align: var(--o360-swipe-hint-text-align, left);
  gap:var(--o360-swipe-hint-gap, 10px);
  padding:10px 14px;
  border-radius:999px;
  background:rgba(0,0,0,0.55);
  border:1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color:rgba(255,255,255,0.95);
  font-size:var(--o360-swipe-hint-font-size, 13px);
  line-height:1;
  white-space:nowrap;
}

.o360-swipe-hint__icon{
  display:inline-block;
  font-size:16px;
  animation:o360HintSwipe 1.2s ease-in-out infinite;
}

@keyframes o360HintSwipe{
  0%{ transform: translateX(-10px); opacity:0.7; }
  40%{ transform: translateX(10px); opacity:1; }
  100%{ transform: translateX(-10px); opacity:0.7; }
}


/* v2.0.74 Swipe hint vars */
.o360-hotspots{ --o360-swipe-hint-font-size: 13px; --o360-swipe-hint-gap: 10px; }


/* v2.0.115 Scroll lock when popup open */
html.o360-scroll-locked, body.o360-scroll-locked{
  overflow: hidden !important;
}


/* Elementor editor: always show markers (Safari preview rebuild safe) */
