:root{--gold:#e0a13a;--gold-soft:#f0c36f;--glass:rgba(20,19,16,.72);--line:rgba(255,255,255,.18);--text:#fff;--muted:rgba(255,255,255,.72)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#000;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}#pano,.tour-shell{position:absolute;inset:0}#pano{overflow:hidden;background:#111}.tour-shell{isolation:isolate}.shade{position:absolute;left:0;right:0;z-index:2;pointer-events:none}.shade-top{top:0;height:28vh;background:linear-gradient(to bottom,rgba(0,0,0,.64),rgba(0,0,0,0))}.shade-bottom{bottom:0;height:36vh;background:linear-gradient(to top,rgba(0,0,0,.78),rgba(0,0,0,0))}
.topbar{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;padding:clamp(16px,2vw,30px);pointer-events:none}.brand,.top-actions{pointer-events:auto}.brand{display:flex;flex-direction:column;align-items:center;width:clamp(185px,17vw,255px);filter:drop-shadow(0 4px 16px rgba(0,0,0,.55));transition:.2s}.brand:hover{transform:translateY(-1px)}.brand-logo{display:block;width:100%;height:clamp(48px,5.5vw,78px);object-fit:contain}.brand-tagline{width:100%;text-align:center;margin-top:-3px;font-size:clamp(7px,.68vw,10px);font-weight:750;letter-spacing:.16em;color:rgba(255,255,255,.82);white-space:nowrap}.top-actions{display:flex;gap:8px}.icon-btn,.round-btn,.dock-arrow{border:1px solid var(--line);background:rgba(20,19,17,.62);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;transition:.18s ease}.icon-btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:22px;box-shadow:0 10px 30px rgba(0,0,0,.18)}.icon-btn:hover,.round-btn:hover,.dock-arrow:hover{background:rgba(224,161,58,.18);border-color:rgba(224,161,58,.65);transform:translateY(-1px)}.icon-btn.active{border-color:var(--gold);color:var(--gold-soft);background:rgba(224,161,58,.18)}#musicBtn{position:relative}.music-off{display:none;position:absolute;font-size:14px;right:8px;bottom:7px}.music-on{font-size:21px}#musicBtn.muted .music-off{display:block;color:rgba(255,255,255,.78)}
.hero-copy{position:absolute;z-index:7;left:clamp(24px,4.8vw,74px);top:clamp(120px,18vh,190px);width:min(540px,70vw);text-shadow:0 4px 24px rgba(0,0,0,.72);pointer-events:none}.eyebrow{color:var(--gold-soft);letter-spacing:.19em;font-weight:800;font-size:clamp(10px,.8vw,12px)}.hero-copy h1{margin:7px 0 0;font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(26px,3vw,46px);line-height:1.02}.hero-divider{width:58px;height:1px;margin:13px 0 10px;background:linear-gradient(90deg,var(--gold),transparent)}.scene-name{font-size:clamp(13px,1vw,16px);color:rgba(255,255,255,.86)}.contact-line{pointer-events:auto;display:flex;gap:8px;align-items:center;margin-top:8px;font-size:11px;color:rgba(255,255,255,.68)}.contact-line a:hover{color:var(--gold-soft)}
.scene-dock{position:absolute;z-index:12;left:50%;transform:translateX(-50%);bottom:86px;width:min(92vw,980px);height:108px;display:grid;grid-template-columns:42px 1fr 42px;gap:8px;align-items:center;padding:8px;border:1px solid rgba(255,255,255,.14);background:rgba(17,16,14,.76);border-radius:16px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 22px 60px rgba(0,0,0,.35);transition:.25s ease}.scene-dock.hidden{opacity:0;transform:translate(-50%,18px);pointer-events:none}.scene-rail{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;min-width:0}.scene-rail::-webkit-scrollbar{display:none}.scene-card{flex:0 0 128px;height:88px;border:1px solid rgba(255,255,255,.10);background:#25231f;border-radius:10px;overflow:hidden;padding:0;position:relative;cursor:pointer;text-align:left;transition:.18s ease}.scene-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.06) 68%)}.scene-card img{width:100%;height:100%;object-fit:cover;display:block;transition:.25s ease}.scene-card:hover img{transform:scale(1.035)}.scene-card.active{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset,0 0 22px rgba(224,161,58,.18)}.scene-card span{position:absolute;z-index:2;left:9px;right:8px;bottom:8px;font-size:10.5px;line-height:1.15;font-weight:750;text-shadow:0 2px 8px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock-arrow{width:40px;height:76px;border-radius:10px;font-size:30px}.bottom-controls{position:absolute;z-index:13;right:clamp(18px,3vw,48px);bottom:22px;display:flex;align-items:center;gap:9px}.pill-btn{height:50px;border:1px solid rgba(255,255,255,.16);background:rgba(18,17,15,.77);border-radius:26px;padding:0 18px;display:flex;gap:9px;align-items:center;cursor:pointer;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-weight:700;font-size:13px}.pill-btn.active{border-color:rgba(224,161,58,.5)}.grid-icon{color:var(--gold-soft);font-size:17px;transform:rotate(45deg);display:inline-block}.zoom-group{display:flex;gap:7px}.round-btn{width:50px;height:50px;border-radius:50%;font-size:24px}
.hotspot{position:relative;cursor:pointer}.link-hotspot{width:50px;height:50px;margin:-25px 0 0 -25px;display:grid;place-items:center}.link-hotspot-core{width:44px;height:44px;border-radius:50%;border:1.7px solid rgba(255,255,255,.94);background:rgba(13,13,12,.72);box-shadow:0 6px 20px rgba(0,0,0,.36),inset 0 0 0 4px rgba(255,255,255,.04);display:grid;place-items:center;transition:.18s ease;backdrop-filter:blur(7px)}.hotspot-icon{width:23px;height:23px;display:grid;place-items:center}.hotspot-icon svg,.info-hotspot>svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.link-hotspot:hover .link-hotspot-core{transform:scale(1.1);border-color:var(--gold-soft);color:var(--gold-soft);background:rgba(44,31,13,.82)}.kind-pool .link-hotspot-core,.kind-gym .link-hotspot-core,.kind-kids .link-hotspot-core,.kind-event .link-hotspot-core,.kind-aerial .link-hotspot-core,.kind-terrace .link-hotspot-core,.kind-door .link-hotspot-core{border-color:rgba(240,195,111,.9)}.hotspot-label{position:absolute;left:50%;bottom:56px;transform:translate(-50%,5px);padding:7px 10px;max-width:220px;width:max-content;border-radius:8px;background:rgba(12,11,10,.9);border:1px solid rgba(255,255,255,.14);font-size:11px;font-weight:700;line-height:1.15;opacity:0;pointer-events:none;transition:.18s ease;box-shadow:0 12px 28px rgba(0,0,0,.28)}.link-hotspot:hover .hotspot-label,.labeled-hotspot .hotspot-label,.touch .hotspot-label{opacity:1;transform:translate(-50%,0)}.info-hotspot{width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;border:1.7px solid rgba(255,255,255,.96);background:rgba(224,161,58,.9);display:grid;place-items:center;box-shadow:0 8px 25px rgba(0,0,0,.35);transition:.18s}.info-hotspot>svg{width:25px;height:25px}.info-hotspot:hover{}.info-label{opacity:1;transform:translate(-50%,0);bottom:54px}
.nadir-brand{width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;background:radial-gradient(circle,rgba(12,12,11,.94) 0 58%,rgba(12,12,11,.78) 59%,rgba(12,12,11,0) 72%);display:flex;flex-direction:column;align-items:center;justify-content:center;filter:drop-shadow(0 10px 20px rgba(0,0,0,.4));transition:.2s}.nadir-brand:hover{}.nadir-brand img{width:105px;height:45px;object-fit:contain}.nadir-brand span{font-size:7px;letter-spacing:.15em;font-weight:800;color:rgba(255,255,255,.72);margin-top:-1px}
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;transition:.2s}.modal.open{opacity:1;visibility:visible}.modal-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.74);backdrop-filter:blur(8px);cursor:pointer}.modal-card{position:relative;z-index:1;width:min(1040px,94vw);max-height:90vh;overflow:auto;background:#f6f3ed;color:#24231f;border-radius:18px;box-shadow:0 30px 100px rgba(0,0,0,.55);display:grid;grid-template-columns:minmax(210px,.35fr) minmax(0,1fr)}.modal-copy{padding:38px 30px;background:#171613;color:#fff}.modal-kicker{color:var(--gold-soft);font-size:10px;font-weight:800;letter-spacing:.18em}.modal-copy h2{font-family:Georgia,serif;font-size:30px;font-weight:500;line-height:1.05;margin:10px 0 12px}.modal-copy p{font-size:13px;line-height:1.5;color:rgba(255,255,255,.72);white-space:pre-wrap}.modal-image{display:block;width:100%;height:100%;max-height:84vh;object-fit:contain;background:#fff}.modal-image[hidden]{display:none}.modal-close{position:absolute;right:13px;top:13px;z-index:3;width:38px;height:38px;border-radius:50%;border:1px solid rgba(0,0,0,.14);background:rgba(255,255,255,.9);color:#111;font-size:26px;cursor:pointer}.toast{position:absolute;z-index:30;top:82px;right:28px;padding:10px 14px;border-radius:10px;background:rgba(10,10,9,.9);border:1px solid rgba(255,255,255,.13);font-size:13px;opacity:0;transform:translateY(-8px);pointer-events:none;transition:.2s ease}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:760px){.topbar{padding:13px;align-items:flex-start}.brand{width:145px}.brand-logo{height:45px}.brand-tagline{font-size:5.5px;letter-spacing:.11em}.top-actions{gap:5px}.icon-btn{width:37px;height:37px;font-size:17px}#shareBtn{display:grid}.hero-copy{left:18px;top:86px;width:78vw}.hero-copy h1{font-size:27px}.contact-line{font-size:9px;gap:5px}.scene-dock{bottom:76px;width:calc(100vw - 20px);height:101px;grid-template-columns:32px 1fr 32px;padding:6px;border-radius:13px}.scene-card{flex-basis:108px;height:79px}.dock-arrow{width:30px;height:68px}.bottom-controls{left:10px;right:10px;bottom:13px;justify-content:flex-end}.pill-btn{margin-right:auto;height:46px;padding:0 13px}.round-btn{width:46px;height:46px}.hotspot-label{bottom:50px;font-size:9.5px;padding:5px 7px;max-width:140px}.nadir-brand{width:120px;height:120px;margin:-60px 0 0 -60px}.nadir-brand img{width:84px;height:38px}.modal{padding:10px}.modal-card{display:block;max-height:92vh}.modal-copy{padding:24px 22px}.modal-copy h2{font-size:24px}.modal-image{height:auto;max-height:66vh}}
@media(max-height:620px) and (orientation:landscape){.hero-copy{top:76px}.contact-line{display:none}.scene-dock{height:88px;bottom:66px}.scene-card{height:68px}.dock-arrow{height:62px}.bottom-controls{bottom:9px}.pill-btn,.round-btn{height:44px}.round-btn{width:44px}}

/* ===== AboveMTY v3 professional refinement ===== */
.hero-copy{top:clamp(145px,20vh,215px)}
.brand-logo{height:auto;max-height:92px;object-fit:contain}
.brand-tagline{margin-top:2px;text-align:center}
.contact-line,.eyebrow{display:none!important}
.tour-credit{position:absolute;z-index:14;left:clamp(18px,2.5vw,38px);bottom:24px;display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(15,14,13,.48);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:9px;font-weight:750;letter-spacing:.08em;color:rgba(255,255,255,.62);text-shadow:0 2px 8px rgba(0,0,0,.5)}
.tour-credit a{color:rgba(255,255,255,.9);letter-spacing:.02em;text-transform:none}.tour-credit a:hover{color:var(--gold-soft)}
.floorplan-btn{border-color:rgba(224,161,58,.34)}.plan-icon{font-size:21px;color:var(--gold-soft);transform:rotate(-8deg)}

/* Standard navigation: clean icon, subtle attention bounce, label only on hover/focus. */
.link-hotspot-core{animation:abvHotspotFloat 2.7s ease-in-out infinite;will-change:transform}
.link-hotspot:hover .link-hotspot-core,.link-hotspot:focus-within .link-hotspot-core{animation:none;transform:scale(1.09);border-color:var(--gold-soft);color:var(--gold-soft);background:rgba(44,31,13,.82)}
@keyframes abvHotspotFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.hotspot-label{opacity:0!important;transform:translate(-50%,6px)!important}
.link-hotspot:hover .hotspot-label,.link-hotspot:focus-within .hotspot-label,.info-hotspot:hover .hotspot-label,.info-hotspot:focus-within .hotspot-label,.mobile-focus .hotspot-label{opacity:1!important;transform:translate(-50%,0)!important}
.drone-hotspot-icon{width:31px;height:19px;object-fit:contain;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}
.kind-aerial .link-hotspot-core{border-color:rgba(240,195,111,.92);background:rgba(18,17,15,.76)}

/* Amenity/elevator shortcut clusters become architectural wayfinding text, like premium property tours. */
.wayfinding-hotspot{margin:-15px 0 0 -8px;display:flex;align-items:center;gap:8px;height:30px;padding:0 9px 0 11px;border-radius:8px;border:1px solid transparent;background:rgba(12,12,11,.22);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);color:#fff;font-size:13px;font-weight:720;line-height:1;text-shadow:0 2px 8px rgba(0,0,0,.9);white-space:nowrap;transition:background .18s,border-color .18s,color .18s,transform .18s;box-shadow:0 5px 18px rgba(0,0,0,.08)}
.wayfinding-hotspot::before{content:'';position:absolute;left:7px;right:7px;bottom:3px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:0;transform:scaleX(.45);transition:.18s}
.wayfinding-hotspot:hover{background:rgba(15,14,12,.76);border-color:rgba(240,195,111,.45);color:var(--gold-soft);transform:translateX(3px)}
.wayfinding-hotspot:hover::before{opacity:.9;transform:scaleX(1)}
.wayfinding-arrow{font-size:21px;color:var(--gold-soft);line-height:1;animation:abvWayfindingNudge 2.2s ease-in-out infinite}
@keyframes abvWayfindingNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}

/* Info markers: transform stays on the Marzipano root; animation/scale lives on the child so it never jumps. */
.info-hotspot{width:42px;height:42px;margin:-21px 0 0 -21px;border:0;background:transparent;box-shadow:none;display:grid;place-items:center}
.info-hotspot-core{width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(255,255,255,.92);background:rgba(183,127,37,.9);display:grid;place-items:center;box-shadow:0 7px 22px rgba(0,0,0,.32);transition:.18s;animation:abvInfoPulse 3.2s ease-in-out infinite}
.info-hotspot-core svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.info-hotspot:hover{}.info-hotspot:hover .info-hotspot-core{animation:none;transform:scale(1.08);background:rgba(210,151,56,.96)}
.info-label{bottom:48px}
@keyframes abvInfoPulse{0%,100%{box-shadow:0 7px 22px rgba(0,0,0,.32),0 0 0 0 rgba(224,161,58,.20)}50%{box-shadow:0 7px 22px rgba(0,0,0,.32),0 0 0 7px rgba(224,161,58,0)}}

/* Nadir logo is an embedded floor plaque, not a floating black blob. */
.nadir-brand{width:220px;height:150px;margin:0;border-radius:0;background:transparent;display:grid;place-items:center;filter:none;transition:none!important;transform-origin:center center}
.nadir-brand:hover{}
.nadir-inner{width:184px;height:104px;border-radius:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(12,12,11,.84);border:1px solid rgba(255,255,255,.22);box-shadow:0 9px 25px rgba(0,0,0,.35);overflow:hidden}
.nadir-brand img{width:132px;height:48px;object-fit:contain;margin:0}.nadir-brand small{font-size:7px;line-height:1;letter-spacing:.14em;font-weight:800;color:rgba(255,255,255,.68);margin-top:5px}
.nadir-brand:hover .nadir-inner{border-color:rgba(240,195,111,.7);box-shadow:0 9px 25px rgba(0,0,0,.35),0 0 0 3px rgba(224,161,58,.10)}

.modal-card{overflow:hidden}.modal-copy{min-width:230px}.modal-close{display:flex;align-items:center;justify-content:center}

@media(max-width:760px){
  .hero-copy{top:105px}.hero-copy h1{font-size:25px}.brand{width:135px}.brand-logo{max-height:54px}.brand-tagline{font-size:5.4px}
  .tour-credit{left:10px;bottom:66px;max-width:calc(100vw - 20px);font-size:7px;padding:7px 9px;gap:5px;white-space:nowrap}
  .bottom-controls{gap:6px}.pill-btn{padding:0 11px;font-size:11px}.floorplan-btn{margin-right:0}.zoom-group{gap:5px}
  .wayfinding-hotspot{font-size:11px;height:27px;padding:0 7px 0 9px;gap:5px}.wayfinding-arrow{font-size:18px}
  .nadir-brand{width:180px;height:124px;margin:0}.nadir-inner{width:152px;height:86px}.nadir-brand img{width:110px;height:40px}
}
@media(max-width:520px){.pill-btn span:last-child{display:none}.pill-btn{width:46px;padding:0;justify-content:center}.floorplan-btn{width:auto;min-width:86px;padding:0 13px;gap:7px}.floorplan-btn span:last-child{display:inline!important}.tour-credit{font-size:6.6px}.scene-dock{bottom:118px}.bottom-controls{bottom:12px}.tour-credit{bottom:65px}}

/* ===== AboveMTY v4 — quieter, architectural UI ===== */
.top-actions{gap:7px;padding:5px;border:1px solid rgba(255,255,255,.10);border-radius:18px;background:rgba(13,13,12,.30);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 12px 35px rgba(0,0,0,.16)}
.icon-btn{position:relative;width:42px;height:42px;border-radius:13px;border:1px solid rgba(255,255,255,.10);background:rgba(17,17,16,.52);box-shadow:none;color:rgba(255,255,255,.88)}
.icon-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.icon-btn:hover{transform:none;background:rgba(255,255,255,.09);border-color:rgba(240,195,111,.42);color:#fff}.icon-btn.active{background:rgba(185,126,33,.20);border-color:rgba(240,195,111,.62);color:var(--gold-soft)}
#musicBtn .status-dot{position:absolute;width:5px;height:5px;border-radius:50%;right:7px;bottom:7px;background:rgba(255,255,255,.30)}#musicBtn.active .status-dot{background:var(--gold-soft);box-shadow:0 0 0 3px rgba(224,161,58,.12)}
.music-on,.music-off{display:none!important}

/* Navigation hotspots: only the inner visual animates; the Marzipano root never gets a transform. */
.link-hotspot-core{animation:abvNavHint 3.4s ease-in-out infinite;will-change:transform}
@keyframes abvNavHint{0%,76%,100%{transform:translateY(0)}84%{transform:translateY(-3px)}92%{transform:translateY(0)}}
.link-hotspot:hover .link-hotspot-core{animation:none;transform:scale(1.06)}
.drone-hotspot-icon{width:32px;height:17px;object-fit:contain;display:block;transform:none!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.55))}
.kind-aerial .link-hotspot-core{width:54px;height:44px;border-radius:15px}

/* Amenity directory: one stable hotspot instead of several projected labels fighting each other. */
.amenity-directory{margin:-72px 0 0 -95px;width:190px;pointer-events:auto}
.directory-panel{width:190px;padding:8px 0;border-radius:12px;background:rgba(14,14,13,.62);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 32px rgba(0,0,0,.20);overflow:hidden}
.directory-row{appearance:none;width:100%;height:31px;padding:0 12px;border:0;background:transparent;color:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font:650 11px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.01em;text-align:left;white-space:nowrap;transition:background .15s,color .15s,padding .15s}
.directory-row+.directory-row{border-top:1px solid rgba(255,255,255,.07)}.directory-row:hover{background:rgba(255,255,255,.07);color:var(--gold-soft);padding-left:15px}.directory-chevron{font-size:18px;font-weight:300;color:var(--gold-soft);line-height:1;transform:translateY(-1px)}

/* Info markers: small, level, and completely static. */
.info-hotspot{width:34px;height:34px;margin:-17px 0 0 -17px;background:transparent!important;border:0!important;box-shadow:none!important}
.info-hotspot-core{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.82);background:rgba(18,18,17,.72);display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.25);animation:none!important;transition:background .15s,border-color .15s,transform .15s}
.info-hotspot-core span{font:600 15px/1 Georgia,serif;color:#fff;transform:translateY(-.5px)}.info-hotspot:hover .info-hotspot-core{transform:scale(1.06);background:rgba(175,119,31,.86);border-color:var(--gold-soft)}.info-label{bottom:40px}

/* Nadir badge: regular screen-facing hotspot so the logo stays upright while covering the selfie stick. */
.nadir-brand{width:154px;height:154px;margin:-77px 0 0 -77px;border-radius:50%;background:rgba(13,13,12,.68);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;box-shadow:0 12px 32px rgba(0,0,0,.28);filter:none;transition:border-color .18s,background .18s!important}
.nadir-brand:hover{background:rgba(13,13,12,.78);border-color:rgba(240,195,111,.58)}.nadir-inner{width:116px;height:68px;border:0;border-radius:0;background:transparent;box-shadow:none;display:grid;place-items:center;overflow:visible}.nadir-brand img{width:116px;height:68px;object-fit:contain;margin:0}.nadir-brand small{display:none}

.tour-credit a{color:rgba(255,255,255,.9)}
@media(max-width:760px){.top-actions{gap:4px;padding:4px;border-radius:14px}.icon-btn{width:36px;height:36px;border-radius:10px}.icon-btn svg{width:17px;height:17px}.amenity-directory{margin:-65px 0 0 -82px;width:164px}.directory-panel{width:164px}.directory-row{height:29px;padding:0 10px;font-size:10px}.nadir-brand{width:132px;height:132px;margin:-66px 0 0 -66px}.nadir-inner,.nadir-brand img{width:98px;height:58px}}


/* ===== AboveMTY v5 — refined wayfinding + correct Marzipano positioning ===== */
/* Smaller brand: present but not competing with the property. */
.brand{width:clamp(145px,13vw,195px)}
.brand-logo{max-height:70px}
.brand-tagline{font-size:clamp(6px,.55vw,8px);letter-spacing:.14em}

/* Compact scene filmstrip. Cards grow gently on hover without making the dock taller. */
.scene-dock{height:92px;width:min(90vw,900px);grid-template-columns:36px 1fr 36px;gap:6px;padding:7px}
.scene-card{flex-basis:104px;height:70px;border-radius:8px;transform-origin:center bottom;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.scene-card:hover{transform:scale(1.10);z-index:4}
.scene-card:hover img{transform:scale(1.025)}
.scene-card span{left:7px;right:6px;bottom:6px;font-size:9px}
.dock-arrow{width:34px;height:64px;font-size:25px}

/* Amenity directory: architectural text, no large grey card. */
.amenity-directory{margin:-54px 0 0 -74px;width:148px;pointer-events:auto}
.directory-panel{position:relative;width:148px;padding:3px 0 3px 9px;border:0;border-left:1px solid rgba(240,195,111,.62);border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;overflow:visible}
.directory-row{width:100%;height:25px;padding:0 4px 0 7px;border:0;border-radius:5px;background:transparent;color:rgba(255,255,255,.94);gap:7px;font:650 10px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.005em;text-shadow:0 2px 7px rgba(0,0,0,.96);transition:background .14s,color .14s,padding .14s}
.directory-row+.directory-row{border-top:0}
.directory-row:hover{background:rgba(10,10,9,.48);color:#fff;padding-left:10px}
.directory-chevron{font-size:15px;font-weight:300;color:var(--gold-soft);text-shadow:0 2px 6px rgba(0,0,0,.9)}
.aerial-directory{margin:-48px 0 0 -62px;width:124px}
.aerial-directory .directory-panel{width:124px;padding-left:7px}
.aerial-directory .directory-row{height:23px;font-size:9px;padding-left:5px}

/* Aerial destination: the drone itself is the marker, with no dark pill behind it. */
.kind-aerial.link-hotspot{width:58px;height:44px;margin:-22px 0 0 -29px}
.kind-aerial .link-hotspot-core{width:58px;height:44px;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;backdrop-filter:none;animation:abvNavHint 3.8s ease-in-out infinite}
.kind-aerial .drone-hotspot-icon{width:46px;height:28px;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(0,0,0,.95)) drop-shadow(0 0 5px rgba(224,161,58,.22))}
.kind-aerial:hover .link-hotspot-core{background:transparent!important}

/* Info markers remain screen-facing and correctly positioned by Marzipano. */
.info-hotspot{width:32px;height:32px;margin:-16px 0 0 -16px;background:transparent!important;border:0!important;box-shadow:none!important}
.info-hotspot-core{width:30px;height:30px;border:1px solid rgba(255,255,255,.88);background:rgba(14,14,13,.70);box-shadow:0 5px 15px rgba(0,0,0,.28)}
.info-hotspot-core span{font-size:14px}.info-label{bottom:37px}

/* Nadir: Marzipano owns the root transform. Only the child visual is styled. */
.nadir-brand{width:166px;height:166px;margin:-83px 0 0 -83px;border:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;filter:none;display:grid;place-items:center}
.nadir-inner{width:148px;height:92px;border-radius:46px;background:rgba(11,11,10,.86);border:1px solid rgba(255,255,255,.20);box-shadow:0 8px 24px rgba(0,0,0,.34);display:grid;place-items:center;transition:transform .16s,border-color .16s}
.nadir-brand:hover .nadir-inner{transform:scale(1.035);border-color:rgba(240,195,111,.58)}
.nadir-brand img{width:126px;height:70px;object-fit:contain}

@media(max-width:760px){
  .brand{width:118px}.brand-logo{max-height:46px}.brand-tagline{font-size:4.8px}
  .scene-dock{height:82px;bottom:76px;grid-template-columns:30px 1fr 30px;padding:6px}
  .scene-card{flex-basis:88px;height:61px}.scene-card:hover{transform:none}.scene-card span{font-size:8px}
  .dock-arrow{width:28px;height:56px}
  .amenity-directory{margin:-49px 0 0 -63px;width:126px}.directory-panel{width:126px}.directory-row{height:23px;font-size:9px}
  .aerial-directory{margin:-43px 0 0 -55px;width:110px}.aerial-directory .directory-panel{width:110px}.aerial-directory .directory-row{font-size:8.5px;height:22px}
  .nadir-brand{width:142px;height:142px;margin:-71px 0 0 -71px}.nadir-inner{width:126px;height:78px}.nadir-brand img{width:108px;height:60px}
}
/* Never interpolate/override Marzipano's positioning transform on hotspot roots. */
.info-hotspot{transition:none!important}


/* ===== AboveMTY v6 refinements ===== */
/* Crisp original drone mark; no stretching or animated blur. */
.kind-aerial.link-hotspot{width:52px;height:38px;margin:-19px 0 0 -26px}
.kind-aerial .link-hotspot-core{width:52px;height:38px;animation:none!important;transform:none!important}
.kind-aerial .drone-hotspot-icon{width:48px;height:32px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.75));transform:none!important}
.kind-aerial:hover .drone-hotspot-icon{transform:scale(1.06)!important}

/* A more compact architectural directory. */
.amenity-directory{margin:-46px 0 0 -67px;width:134px}
.directory-panel{width:134px;padding:2px 0 2px 8px;border-left-color:rgba(240,195,111,.52)}
.directory-row{height:23px;padding:0 3px 0 6px;font-size:9.4px;font-weight:620}
.directory-chevron{font-size:14px}
.aerial-directory{margin:-43px 0 0 -56px;width:112px}
.aerial-directory .directory-panel{width:112px;padding-left:6px}
.aerial-directory .directory-row{height:21px;font-size:8.4px}
.alberca-directory{width:132px}.alberca-directory .directory-panel{width:132px}

/* Slightly larger nadir cover and exact nadir placement hides the selfie-stick footprint. */
.nadir-brand{width:178px;height:178px;margin:-89px 0 0 -89px}
.nadir-inner{width:158px;height:102px;border-radius:51px}
.nadir-brand img{width:136px;height:76px}
.nadir-brand:focus-visible{outline:none}

@media(max-width:760px){
  .amenity-directory{margin:-42px 0 0 -58px;width:116px}.directory-panel{width:116px}.directory-row{height:21px;font-size:8.6px}
  .aerial-directory{margin:-39px 0 0 -49px;width:98px}.aerial-directory .directory-panel{width:98px}.aerial-directory .directory-row{font-size:8px;height:20px}
  .nadir-brand{width:150px;height:150px;margin:-75px 0 0 -75px}.nadir-inner{width:134px;height:88px}.nadir-brand img{width:116px;height:65px}
}


/* ===== AboveMTY v7 targeted hotspot corrections ===== */
/* Aerial destination: compact black circular badge so the drone remains legible on bright windows/sky. */
.kind-aerial.link-hotspot{width:52px!important;height:52px!important;margin:-26px 0 0 -26px!important}
.kind-aerial .link-hotspot-core{width:46px!important;height:46px!important;border-radius:50%!important;border:1.4px solid rgba(224,161,58,.92)!important;background:rgba(10,10,10,.82)!important;box-shadow:0 7px 22px rgba(0,0,0,.38)!important;backdrop-filter:blur(5px)!important;display:grid!important;place-items:center!important;animation:none!important;transform:none!important}
.kind-aerial .hotspot-icon{width:31px!important;height:22px!important;display:grid!important;place-items:center!important}
.kind-aerial .drone-hotspot-icon{width:31px!important;height:21px!important;object-fit:contain!important;display:block!important;filter:none!important;transform:none!important}
.kind-aerial:hover .link-hotspot-core{transform:scale(1.06)!important;background:rgba(18,16,12,.92)!important;border-color:var(--gold-soft)!important}
.kind-aerial:hover .drone-hotspot-icon{transform:none!important}

/* Directory groups: all links in the group live in the same slim architectural panel. */
.amenity-directory{z-index:3}
.alberca-directory{margin:-34px 0 0 -67px!important;width:134px!important}
.alberca-directory .directory-panel{width:134px!important}
.ludoteca-directory{margin:-48px 0 0 -67px!important;width:134px!important}
.ludoteca-directory .directory-panel{width:134px!important}
@media(max-width:760px){
  .kind-aerial.link-hotspot{width:48px!important;height:48px!important;margin:-24px 0 0 -24px!important}
  .kind-aerial .link-hotspot-core{width:42px!important;height:42px!important}
  .kind-aerial .drone-hotspot-icon{width:28px!important;height:19px!important}
  .alberca-directory,.ludoteca-directory{width:118px!important;margin-left:-59px!important}
  .alberca-directory .directory-panel,.ludoteca-directory .directory-panel{width:118px!important}
}


/* ===== AboveMTY v8 · mobile performance =====
   Mobile only. Desktop styling and 4096 panorama level stay unchanged.
   IMPORTANT: do not set transform on Marzipano hotspot root elements here. */
.mobile-perf .top-actions,
.mobile-perf .icon-btn,
.mobile-perf .scene-dock,
.mobile-perf .pill-btn,
.mobile-perf .round-btn,
.mobile-perf .link-hotspot-core,
.mobile-perf .directory-panel,
.mobile-perf .modal-backdrop,
.mobile-perf .tour-credit,
.mobile-perf .nadir-brand {
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.mobile-perf .brand,
.mobile-perf .drone-hotspot-icon {
  filter:none!important;
}
.mobile-perf .scene-rail { scroll-behavior:auto!important; }
.mobile-perf .scene-card img,
.mobile-perf .link-hotspot-core,
.mobile-perf .info-hotspot-core,
.mobile-perf .nadir-inner,
.mobile-perf .directory-row,
.mobile-perf .kind-aerial .link-hotspot-core {
  animation:none!important;
  transition:none!important;
}
.mobile-perf .shade { opacity:.92; }

/* ===== AboveMTY v9 · aggressive mobile smoothness ===== */
.mobile-perf .hotspot,
.mobile-perf .hotspot *,
.mobile-perf .scene-card,
.mobile-perf .scene-card *,
.mobile-perf .icon-btn,
.mobile-perf .pill-btn,
.mobile-perf .round-btn,
.mobile-perf .scene-dock,
.mobile-perf .brand {
  transition:none!important;
  animation:none!important;
}
.mobile-perf .brand { filter:none!important; }
.mobile-perf .scene-card.active { box-shadow:0 0 0 1px var(--gold) inset!important; }
.mobile-perf .hotspot-label { box-shadow:none!important; }


/* ===== AboveMTY v10 · gesture-first mobile rendering =====
   While the finger is actively dragging the panorama, remove secondary DOM
   overlays from layout/compositing. They return immediately on release. */
.mobile-perf.mobile-panning .topbar,
.mobile-perf.mobile-panning .scene-dock,
.mobile-perf.mobile-panning .bottom-controls,
.mobile-perf.mobile-panning .tour-credit,
.mobile-perf.mobile-panning .hotspot {
  display:revert;
}
.mobile-perf #pano {
  touch-action:none;
}


/* ===== AboveMTY v11 · mobile scene preloading + intentional load state ===== */
.scene-loader{position:fixed;inset:0;z-index:90;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;background:rgba(8,8,8,.18);transition:opacity .14s ease,visibility .14s ease}
.scene-loader.show{opacity:1;visibility:visible;pointer-events:auto}
.scene-loader-card{width:176px;padding:18px 18px 15px;border-radius:18px;background:rgba(12,12,11,.90);border:1px solid rgba(255,255,255,.13);box-shadow:0 16px 44px rgba(0,0,0,.35);display:flex;flex-direction:column;align-items:center;gap:10px}
.scene-loader-card img{width:112px;height:58px;object-fit:contain}
.scene-loader-line{width:112px;height:2px;border-radius:2px;overflow:hidden;background:rgba(255,255,255,.13)}
.scene-loader-line span{display:block;width:42%;height:100%;border-radius:2px;background:var(--gold-soft);animation:abvLoader 1s ease-in-out infinite}
.scene-loader-text{font:650 9px/1.25 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.72);text-align:center}
@keyframes abvLoader{0%{transform:translateX(-115%)}50%{transform:translateX(95%)}100%{transform:translateX(245%)}}
@media(min-width:901px) and (hover:hover){.scene-loader{display:none!important}}
.mobile-perf .scene-loader{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transition:none!important}
.mobile-perf.scene-loading .topbar,.mobile-perf.scene-loading .scene-dock,.mobile-perf.scene-loading .bottom-controls,.mobile-perf.scene-loading .tour-credit,.mobile-perf.scene-loading .hotspot{visibility:hidden!important}


/* ===== AboveMTY v12 · seamless mobile scene handoff =====
   On phones the new panorama is assembled behind an opaque branded veil.
   This prevents texture download/decode from appearing as visible stutter. */
.mobile-perf .scene-loader{
  background:rgba(8,8,8,.97)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:opacity .10s linear,visibility .10s linear!important;
  will-change:opacity;
}
.mobile-perf .scene-loader-card{
  box-shadow:none!important;
  background:rgba(12,12,11,.96)!important;
}
.mobile-perf.scene-loading #pano{pointer-events:none!important;}


/* ===== AboveMTY v13 · guaranteed mobile scene veil ===== */
.mobile-perf .scene-loader{z-index:1000!important;position:fixed!important;inset:0!important;display:grid!important;place-items:center!important;background:#0b0b0a!important;}
.mobile-perf .scene-loader:not(.show){display:none!important;}
.mobile-perf .scene-loader.show{display:grid!important;opacity:1!important;visibility:visible!important;}
.mobile-perf .scene-loader-card{position:relative!important;z-index:1001!important;display:flex!important;opacity:1!important;visibility:visible!important;}


/* ===== AboveMTY v19 · fixed mobile chrome + share sheet ===== */
.mobile-perf .topbar,.mobile-perf .hero-copy,.mobile-perf .scene-dock,.mobile-perf .bottom-controls,.mobile-perf .tour-credit{visibility:visible!important;opacity:1!important}
.mobile-perf.mobile-panning .topbar{display:flex!important}
.mobile-perf.mobile-panning .hero-copy{display:block!important}
.mobile-perf.mobile-panning .scene-dock{display:grid!important}
.mobile-perf.mobile-panning .bottom-controls{display:flex!important}
.mobile-perf.mobile-panning .tour-credit{display:flex!important}
.mobile-perf.mobile-panning .hotspot{display:block!important}
.share-modal{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .16s ease,visibility .16s ease}
.share-modal.open{opacity:1;visibility:visible}.share-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.66);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.share-card{position:relative;z-index:1;width:min(560px,94vw);padding:22px;border-radius:22px;background:#171613;border:1px solid rgba(255,255,255,.13);box-shadow:0 28px 90px rgba(0,0,0,.55);color:#fff}
.share-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.share-kicker{font-size:9px;font-weight:850;letter-spacing:.18em;color:var(--gold-soft)}.share-head h2{margin:6px 0 0;font:500 25px/1.05 Georgia,serif}.share-close{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);font-size:25px;line-height:1;cursor:pointer}
.share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.share-option{min-height:94px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(255,255,255,.045);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;cursor:pointer;color:#fff}.share-option:hover{border-color:rgba(240,195,111,.55);background:rgba(224,161,58,.09)}.share-option b{font-size:11px}.share-badge{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.10);font-size:15px;font-weight:850}.whatsapp .share-badge{background:#25D366;color:#07180c}.facebook .share-badge{background:#1877F2}.xshare .share-badge{background:#050505;border:1px solid rgba(255,255,255,.16)}.threads .share-badge{background:#050505}.copy .share-badge,.more .share-badge{color:var(--gold-soft)}.share-url{margin-top:14px;padding-top:13px;border-top:1px solid rgba(255,255,255,.09);font-size:10px;color:rgba(255,255,255,.55);text-align:center}
@media(max-width:520px){.top-actions{gap:3px}.icon-btn{width:34px;height:34px}.share-card{padding:18px 15px}.share-grid{grid-template-columns:repeat(2,1fr)}.share-option{min-height:78px}.share-head h2{font-size:22px}.floorplan-btn{font-size:11px!important}}


/* ===== AboveMTY v20 · share polish / iPhone immersive fallback ===== */
.share-badge{overflow:hidden}
.share-badge .brand-svg{width:23px;height:23px;display:block;fill:currentColor}
.whatsapp .share-badge{background:#25D366;color:#fff}
.facebook .share-badge{background:#1877F2;color:#fff}
.xshare .share-badge,.threads .share-badge{background:#050505;color:#fff;border:1px solid rgba(255,255,255,.16)}

/* When iPhone/WKWebView does not expose element fullscreen, maximize the panorama
   inside the available browser viewport while keeping the fullscreen control visible. */
.tour-immersive .hero-copy,
.tour-immersive .scene-dock,
.tour-immersive .tour-credit{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.tour-immersive .bottom-controls .pill-btn,
.tour-immersive .bottom-controls .round-btn:not(#zoomInBtn):not(#zoomOutBtn){opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.tour-immersive .topbar .brand{opacity:0!important;visibility:hidden!important}
.tour-immersive .topbar{justify-content:flex-end!important;pointer-events:none!important}
.tour-immersive .top-actions{pointer-events:auto!important}
.tour-immersive .top-actions .icon-btn:not(#fullscreenBtn){display:none!important}
.tour-immersive #fullscreenBtn{background:rgba(224,161,58,.22)!important;border-color:rgba(240,195,111,.75)!important}


/* ===== AboveMTY v22 — compact filmstrip + explicit hide/show ===== */
.scene-dock{height:78px;width:min(86vw,820px);grid-template-columns:32px 1fr 32px;gap:5px;padding:5px;border-radius:13px}
.scene-card{flex-basis:94px;height:62px;border-radius:7px}
.scene-card span{font-size:8.5px;left:6px;bottom:5px}
.dock-arrow{width:30px;height:54px;font-size:23px}
.scene-dock.auto-hidden{opacity:0;transform:translate(-50%,14px);pointer-events:none}
.spaces-btn{min-width:154px;justify-content:center;gap:7px;padding:0 13px}
.spaces-panel-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--gold-soft);flex:0 0 auto}.spaces-panel-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.spaces-icon-arrow{transform-origin:12px 12px;transition:transform .2s ease}.spaces-btn.spaces-hidden .spaces-icon-arrow{transform:rotate(180deg)}
@media(max-width:760px){
  .scene-dock{height:70px;width:calc(100vw - 34px);bottom:82px;grid-template-columns:27px 1fr 27px;padding:5px;gap:4px}
  .scene-card{flex-basis:78px;height:54px}.scene-card span{font-size:7.6px;left:5px;bottom:4px}
  .dock-arrow{width:25px;height:48px;font-size:21px}
  .spaces-btn{width:auto!important;min-width:132px;height:42px!important;padding:0 10px!important}
  .spaces-btn #spacesBtnLabel{display:inline!important;font-size:10px;white-space:nowrap}
  .spaces-panel-icon{width:18px;height:18px}.spaces-panel-icon svg{width:17px;height:17px}
}
@media(max-width:390px){.spaces-btn{min-width:124px}.spaces-btn #spacesBtnLabel{font-size:9px}}

/* ===== AboveMTY v22.2 — mobile spaces visibility fix =====
   v19 intentionally forced mobile chrome visible. These state rules must win
   when the user hides the spaces strip manually or while panning. */
.mobile-perf .scene-dock.hidden,
.mobile-perf .scene-dock.auto-hidden{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translate(-50%,14px)!important;
}
/* v23 hotspot personalization */
.link-hotspot-core,.info-hotspot-core{scale:var(--hs-scale,1)}
.hotspot-no-animation .link-hotspot-core,.hotspot-no-animation .info-hotspot-core{animation:none!important}

.modal-gallery{display:flex;gap:7px;overflow-x:auto;margin-top:10px;padding-bottom:4px}.modal-gallery img{width:76px;height:58px;object-fit:cover;border-radius:7px;cursor:pointer;border:1px solid rgba(255,255,255,.16)}

/* v26 text/signage hotspot */
.text-hotspot{width:auto!important;height:auto!important;margin:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.text-hotspot .info-hotspot-core{display:none!important}.text-hotspot .info-label{position:static!important;display:block!important;opacity:1!important;transform:none!important;max-width:220px;padding:5px 10px;border-radius:2px;border:0;border-left:1px solid rgba(240,195,111,.78);background:rgba(14,13,11,.48);font-size:11px;font-weight:700;box-shadow:none;white-space:nowrap}

/* ===== Las Terrazas v12 additions ===== */

/* Flat aerial image hotspots. */
.aerial-hotspot-layer{position:absolute;inset:0;pointer-events:none;z-index:7}
.aerial-map-hotspot{
  position:absolute;transform:translate(-50%,-50%);
  pointer-events:auto;border:0;background:transparent;color:#fff;
  display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:0;
}
.aerial-map-hotspot span{
  padding:5px 8px;border-radius:7px;
  background:rgba(12,11,10,.9);border:1px solid rgba(255,255,255,.14);
  font-size:10px;font-weight:700;line-height:1.1;white-space:nowrap;
  box-shadow:0 10px 22px rgba(0,0,0,.26)
}
.aerial-map-hotspot i{
  width:13px;height:13px;margin-top:7px;
  border-left:3px solid #fff;border-top:3px solid #fff;transform:rotate(45deg)
}
.aerial-map-hotspot:hover span{border-color:var(--gold-soft);color:var(--gold-soft)}

/* Keep the exact Tres Puertas nadir badge style, but move only its INNER plaque
   down so it covers the actual tripod footprint in these panoramas.
   The Marzipano hotspot root itself is never transformed. */
.nadir-brand{width:220px!important;height:220px!important;margin:-110px 0 0 -110px!important}
.nadir-inner{
  width:194px!important;height:118px!important;border-radius:59px!important;
  transform:translateY(48px)!important;
}
.nadir-brand img{width:148px!important;height:82px!important}
@media(max-width:760px){
  .nadir-brand{width:190px!important;height:190px!important;margin:-95px 0 0 -95px!important}
  .nadir-inner{width:168px!important;height:104px!important;border-radius:52px!important;transform:translateY(40px)!important}
  .nadir-brand img{width:128px!important;height:72px!important}
}


/* v15.6 — Vista aérea: los hotspots del Preview se posicionan
   respecto al área real de la fotografía, no respecto a todo el modal. */
.modal-image-wrap{
  position:relative;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  overflow:hidden;
}
.modal-image-wrap .modal-image{
  display:block;
  width:100%;
  height:100%;
  max-height:84vh;
  object-fit:contain;
  background:#fff;
}
.modal-image-wrap .aerial-hotspot-layer{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:7;
}

.advisor-btn{
  position:fixed;z-index:38;right:24px;bottom:86px;display:flex;align-items:center;gap:10px;
  height:46px;padding:0 16px 0 10px;border-radius:24px;border:1px solid rgba(201,145,47,.75);
  background:rgba(14,14,13,.92);color:#fff;font:700 12px/1 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.30);backdrop-filter:blur(10px)
}
.advisor-btn img{width:31px;height:31px;object-fit:contain;filter:invert(1);opacity:.95}
.advisor-btn:hover{background:rgba(30,28,23,.97)}
.advisor-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center}
.advisor-modal.hidden{display:none!important}
.advisor-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.76);backdrop-filter:blur(8px)}
.advisor-card{position:relative;z-index:2;width:min(860px,92vw);max-height:90vh;border-radius:18px;overflow:hidden;background:#0b0b0b;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 70px rgba(0,0,0,.55)}
.advisor-card-image{display:block;width:100%;height:auto;max-height:72vh;object-fit:contain;background:#000}
.advisor-close{position:absolute;right:14px;top:14px;z-index:4;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.72);color:#fff;font-size:26px;cursor:pointer}
.advisor-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding:14px;background:#0d0d0d}
.advisor-actions a{min-width:130px;padding:11px 14px;border-radius:10px;text-align:center;text-decoration:none;color:#fff;background:#1a1a1a;border:1px solid rgba(255,255,255,.12);font-weight:700;font-size:12px}
.advisor-actions .advisor-whatsapp{border-color:#c9912f;background:rgba(201,145,47,.16)}
.expired-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#090909;color:#fff}
.expired-overlay.hidden{display:none!important}
.expired-panel{width:min(460px,86vw);text-align:center;padding:34px 28px;border-radius:20px;border:1px solid rgba(255,255,255,.10);background:#111}
.expired-panel img{width:min(240px,70%);height:auto;filter:invert(1);margin-bottom:20px}
.expired-panel h2{font:500 34px Georgia,serif;margin:0 0 10px}
.expired-panel p{color:#bbb;margin:0 0 22px}
.expired-panel a{display:inline-block;padding:12px 18px;border-radius:10px;border:1px solid #c9912f;color:#fff;text-decoration:none;background:rgba(201,145,47,.14);font-weight:700}
@media(max-width:760px){
  .advisor-btn{right:14px;bottom:78px;height:42px;padding-right:13px}
  .advisor-btn span{display:none}
  .advisor-card{width:94vw}
}


/* v16.1 — Contacto integrado al toolbar superior */
.advisor-toolbar-btn{
  position:relative;
}
.advisor-toolbar-btn::after{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius:14px;
  border:1px solid rgba(201,145,47,.42);
  opacity:0;
  transition:opacity .18s ease;
  pointer-events:none;
}
.advisor-toolbar-btn:hover::after,
.advisor-toolbar-btn:focus-visible::after{
  opacity:1;
}
.advisor-toolbar-btn svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* La versión anterior usaba un botón flotante inferior; ya no se usa. */
body > .advisor-btn{display:none!important}


/* v16.2 — CTA visible de contacto bajo el título/escena */
.advisor-text-btn{
  margin-top:14px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  height:38px;
  padding:0 14px;
  border-radius:19px;
  border:1px solid rgba(201,145,47,.82);
  background:rgba(12,12,11,.74);
  color:#fff;
  font:700 11px/1 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.01em;
  cursor:pointer;
  box-shadow:0 7px 18px rgba(0,0,0,.18);
  backdrop-filter:blur(8px);
}
.advisor-text-btn:hover{
  background:rgba(201,145,47,.15);
  border-color:#c9912f;
}
.advisor-text-btn svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media(max-width:760px){
  .advisor-text-btn{
    margin-top:10px;
    height:36px;
    padding:0 12px;
    font-size:10px;
  }
}


/* v16.3 — CTA visible debajo del toolbar superior derecho */
.advisor-text-btn-floating{
  position:absolute;
  z-index:12;
  top:74px;
  right:24px;
  margin:0;
  pointer-events:auto !important;
}
@media(max-width:760px){
  .advisor-text-btn-floating{
    top:66px;
    right:12px;
  }
  .advisor-text-btn-floating span{
    display:inline;
  }
}


/* v16.4 — Contactar asesor debajo de la barra de espacios */
.advisor-text-btn-floating{
  top:auto !important;
  right:auto !important;
  left:50% !important;
  bottom:24px !important;
  transform:translateX(-50%) !important;
  margin:0 !important;
  z-index:42 !important;
  min-width:156px;
  justify-content:center;
  pointer-events:auto !important;
}
.advisor-text-btn-floating svg{
  display:none !important;
}
@media(max-width:760px){
  .advisor-text-btn-floating{
    left:50% !important;
    right:auto !important;
    bottom:18px !important;
    transform:translateX(-50%) !important;
    min-width:148px;
  }
}


/* v16.6 — transient hotspot labels on touch devices */
@media (hover:none), (pointer:coarse){
  body.touch-drag-labels .link-hotspot .hotspot-label{
    opacity:1 !important;
    transform:translate(-50%,0) !important;
    visibility:visible !important;
  }
}


/* Pantalla de vigencia — misma identidad visual que Tres Puertas */
#expiredOverlay{
  position:fixed;
  inset:0;
  z-index:2147483647;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  padding:22px;
  background:
    radial-gradient(circle at 50% 40%,
    rgba(35,32,27,.90),
    rgba(13,13,13,.99) 68%);
  color:#fff;
  font-family:Arial,Helvetica,sans-serif;
}
#expiredOverlay.hidden{display:none !important;}

#expiredOverlay .access-lock-card{
  width:min(500px,calc(100vw - 36px));
  box-sizing:border-box;
  padding:40px 36px 38px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:20px;
  background:rgba(20,19,17,.97);
  text-align:center;
  box-shadow:0 30px 90px rgba(0,0,0,.58);
}

#expiredOverlay .access-lock-logo{
  display:block;
  width:min(210px,62%);
  height:auto;
  margin:0 auto 18px;
  object-fit:contain;
}

#expiredOverlay .access-lock-line{
  width:46px;
  height:2px;
  margin:0 auto 24px;
  background:#e0a12c;
}

#expiredOverlay h1{
  margin:0 auto 17px;
  max-width:410px;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(28px,5vw,39px);
  line-height:1.05;
  font-weight:500;
}

#expiredOverlay p{
  margin:0 auto 25px;
  color:rgba(255,255,255,.72);
  font-size:14px;
  line-height:1.5;
}

#expiredOverlay .access-lock-contact{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 25px;
  border:1px solid #e0a12c;
  border-radius:999px;
  color:#fff;
  background:rgba(224,161,44,.08);
  text-decoration:none;
  font-size:14px;
  font-weight:700;
}

#expiredOverlay .access-lock-contact:hover{
  background:rgba(224,161,44,.18);
}


/* PUBLICACION v3 — ajuste móvil: separar barra de espacios y crédito AboveMTY */
@media (max-width:760px){
  .scene-dock{
    bottom:92px !important;
  }

  .tour-credit{
    left:12px !important;
    bottom:64px !important;
    padding:4px 8px !important;
    gap:4px !important;
    font-size:6.2px !important;
    line-height:1 !important;
    border-radius:8px !important;
    white-space:nowrap !important;
  }

  .bottom-controls{
    bottom:10px !important;
  }
}

@media (max-width:420px){
  .scene-dock{
    bottom:92px !important;
  }

  .tour-credit{
    left:10px !important;
    right:auto !important;
    bottom:65px !important;
    max-width:calc(100vw - 20px) !important;
    padding:4px 7px !important;
    font-size:6px !important;
  }
}


/* PUBLICACION v4 — mover únicamente el crédito AboveMTY un poco más abajo en móvil */
@media (max-width:760px){
  .tour-credit{
    bottom:54px !important;
  }
}

@media (max-width:420px){
  .tour-credit{
    bottom:54px !important;
  }
}


/* PUBLICACION v5 — bajar visiblemente SOLO el crédito en móvil */
@media (max-width:760px){
  .tour-credit{
    bottom:65px !important;
    transform:translateY(10px) !important;
  }
}

@media (max-width:420px){
  .tour-credit{
    bottom:65px !important;
    transform:translateY(10px) !important;
  }
}


/* PUBLICACION v6 — ajuste fino móvil:
   bajar un poco la barra de espacios y centrar el crédito entre barra y controles */
@media (max-width:760px){
  .scene-dock{
    bottom:82px !important;
  }

  .tour-credit{
    bottom:65px !important;
    transform:none !important;
  }

  .bottom-controls{
    bottom:10px !important;
  }
}

@media (max-width:420px){
  .scene-dock{
    bottom:82px !important;
  }

  .tour-credit{
    bottom:65px !important;
    transform:none !important;
  }
}
