/* Aspire premises 2.5D walkthrough — self-contained styles.
   Mount fills the .facility band exactly like the old .facility-img (inset:0).
   The .facility-inner overlay (eyebrow/h2/stats) stays on top via its own z-index:2. */

#premises-tour{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  background:#10101a center center / cover no-repeat;  /* first-room poster set by JS; never a blank box */
}
#premises-tour canvas{
  position:absolute;
  inset:0;
  display:block;
  width:100% !important;
  height:100% !important;
  opacity:0;
  transition:opacity .9s ease;
}
#premises-tour.pt-canvas-ready canvas{opacity:1;}

/* CSS crossfade slideshow layers (fallback path: no-WebGL, reduced-motion, orientation-denied). */
#premises-tour .pt-slide{
  position:absolute;
  inset:0;
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
  opacity:0;
  transition:opacity .8s ease;
  will-change:opacity;
}
#premises-tour .pt-slide.is-active{opacity:1;}

/* Radial vignette / edge mask over the canvas to hide displacement-stretched border pixels. */
#premises-tour .pt-vignette{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(125% 115% at 50% 46%, rgba(16,16,26,0) 56%, rgba(16,16,26,.46) 100%);
  box-shadow:inset 0 0 90px 24px rgba(16,16,26,.42);
}

/* Room caption + dot indicators. Appended to the .facility section (mount's parent)
   so they paint above the section's ::after gradient. Sit bottom-right, clear of the left text overlay. */
.pt-hud{
  position:absolute;
  right:clamp(18px,3.4vw,46px);
  bottom:clamp(16px,2.6vw,30px);
  z-index:4;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:11px;
  pointer-events:none;
  font-family:'Inter',system-ui,sans-serif;
}
.pt-caption{
  color:#fff;
  font-size:clamp(12px,1.25vw,15px);
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  text-shadow:0 1px 14px rgba(0,0,0,.6);
  padding:7px 14px;
  border-radius:999px;
  background:rgba(16,16,26,.34);
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
  border:1px solid rgba(255,255,255,.16);
  transition:opacity .5s ease;
  white-space:nowrap;
}
.pt-caption.is-fading{opacity:0;}
.pt-dots{display:flex;gap:8px;pointer-events:auto;}
.pt-dots button{
  width:8px;height:8px;padding:0;border:0;border-radius:50%;
  background:rgba(255,255,255,.42);
  cursor:pointer;transition:background .3s ease,transform .3s ease;
  -webkit-appearance:none;appearance:none;
}
.pt-dots button:hover{background:rgba(255,255,255,.75);}
.pt-dots button.is-active{background:#fff;transform:scale(1.35);}

@media (max-width:768px){
  .pt-hud{left:0;right:0;align-items:center;bottom:14px;}
  .pt-dots{pointer-events:auto;}
}

@media (prefers-reduced-motion:reduce){
  #premises-tour canvas{transition:none;}
  #premises-tour .pt-slide{transition:none;}
}
