#floor-plan{background:#f4f0e7;color:#242a27;padding:100px 5% 72px;overflow:hidden;isolation:isolate}
#floor-plan *{box-sizing:border-box}
#floor-plan .fp-inner{max-width:1600px;margin:auto}
#floor-plan .fp-heading{text-align:center;margin:0 auto 50px}
#floor-plan .fp-kicker{font-size:11px;letter-spacing:3px;margin:0 0 20px}
#floor-plan h2{font:400 clamp(38px,4.4vw,68px)/1.1 'Poiret One',sans-serif;letter-spacing:-1px;margin:0 0 22px}
#floor-plan .fp-subtitle{font-size:clamp(17px,1.5vw,22px);line-height:1.6;margin:0}
#floor-plan .fp-stage{position:relative;min-height:0}
#floor-plan .fp-map-pane{width:100%;max-width:1280px;margin:0 auto;}
#floor-plan.fp-selected .fp-map-pane{width:100%;margin:0 auto}
#floor-plan .fp-map-viewport{position:relative;overflow:hidden;aspect-ratio:1672/941;background:#e9e3d8;touch-action:pan-y}
#floor-plan .fp-map-transform{position:relative;width:100%;transform-origin:0 0;will-change:transform}
#floor-plan .fp-plan-image{display:block;width:100%;height:auto;margin:0;aspect-ratio:1672/941;user-select:none;-webkit-user-drag:none}
#floor-plan .fp-map-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#floor-plan .fp-hotspot{fill:#c3a16b;fill-opacity:0;stroke:#806039;stroke-opacity:0;stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill-opacity .3s,stroke-opacity .3s;outline:none}
#floor-plan .fp-hotspot.fp-aqua{fill:#60b7b4;stroke:#286c6b}
#floor-plan .fp-hotspot.is-active{fill-opacity:.48;stroke-opacity:1}
#floor-plan .fp-hotspot:focus-visible{stroke:#242a27;stroke-opacity:1;stroke-width:3;stroke-dasharray:5 3}
#floor-plan .fp-map-label{position:absolute;transform:translate(-50%,-130%);pointer-events:none;background:#f9f6efed;color:#242a27;padding:8px 12px;font-size:14px;white-space:nowrap;opacity:0;transition:opacity .3s;box-shadow:0 2px 12px #0001}
#floor-plan .fp-map-label.is-visible{opacity:1}
#floor-plan .fp-map-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}
#floor-plan .fp-map-tools p{font-size:16px;margin:0}
#floor-plan button{font-family:inherit;color:inherit;background:transparent;border:0;cursor:pointer;min-height:44px;font-size:15px;padding:8px 12px}
#floor-plan button:focus-visible{outline:2px solid #806942;outline-offset:2px}
#floor-plan .fp-zoom{display:flex;align-items:center;border:1px solid #242a2730;flex-shrink:0}
#floor-plan .fp-zoom button{min-width:44px}
#floor-plan .fp-zoom button:disabled{opacity:.35;cursor:default}
#floor-plan .fp-room-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:4px;border-top:1px solid #242a2725;padding-top:10px}
#floor-plan .fp-room-nav button{border-bottom:1px solid transparent;white-space:nowrap}
#floor-plan .fp-room-nav button span{font-size:11px;margin-right:6px;opacity:.6}
#floor-plan .fp-room-nav button[aria-pressed=true]{border-color:#806942;background:#e8decd66}
#floor-plan .fp-detail{position:relative;width:100%;max-width:1280px;margin:48px auto 0;animation:fp-appear .5s both}
#floor-plan .fp-detail[hidden]{display:none}
#floor-plan .fp-detail-top{display:flex;align-items:center;justify-content:space-between;min-height:48px}
#floor-plan .fp-room-number{font-size:12px;letter-spacing:2px}
#floor-plan .fp-close{display:flex;align-items:center;gap:12px}
#floor-plan .fp-close span{font-size:24px}
#floor-plan .fp-photo-wrap{position:relative;aspect-ratio:1672/941;overflow:hidden;background:#e9e3d8}
#floor-plan .fp-photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .45s}
#floor-plan .fp-photo.is-visible{opacity:1}
#floor-plan .fp-detail-copy{padding:25px 0 20px;min-height:160px}
#floor-plan h3{font-size:clamp(28px,3vw,46px);line-height:1.15;font-weight:400;margin:0 0 14px;outline:none}
#floor-plan .fp-room-description{font-size:19px;line-height:1.6;margin:0;max-width:48ch}
#floor-plan .fp-detail-nav{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #242a2725;padding-top:10px}
#floor-plan .fp-detail-nav button{display:flex;gap:12px;align-items:center}
#floor-plan .fp-counter{font-size:13px;letter-spacing:2px}
#floor-plan .fp-error{font-size:16px}
#floor-plan.fp-reveal .fp-heading,#floor-plan.fp-reveal .fp-stage{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}
#floor-plan.fp-reveal.fp-entered .fp-heading,#floor-plan.fp-reveal.fp-entered .fp-stage{opacity:1;transform:none}
#floor-plan.fp-reveal.fp-entered .fp-stage{transition-delay:.12s}
@keyframes fp-appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:900px){
#floor-plan{padding:65px 6% 50px;overflow:clip}
#floor-plan .fp-heading{margin-bottom:30px}
#floor-plan .fp-stage{min-height:0}
#floor-plan .fp-map-pane,#floor-plan.fp-selected .fp-map-pane{width:100%;margin:0;padding:0}
#floor-plan .fp-map-tools p{font-size:14px}
#floor-plan .fp-room-nav{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}
#floor-plan .fp-room-nav button{flex-shrink:0;min-height:48px}
#floor-plan .fp-detail{position:fixed;z-index:100;inset:auto 0 0;width:100%;margin:0;max-height:72vh;max-height:72dvh;overflow-y:auto;overscroll-behavior:contain;background:#f4f0e7;border-top:1px solid #b6aa96;box-shadow:0 -10px 50px #18201b30;padding:0 6% max(14px,env(safe-area-inset-bottom));animation:fp-appear .3s both}
#floor-plan .fp-detail-top{position:sticky;top:0;background:#f4f0e7;z-index:2;min-height:50px}
#floor-plan .fp-photo-wrap{max-height:29vh;max-height:29dvh;aspect-ratio:1672/941;margin:auto}
#floor-plan .fp-detail-copy{padding:17px 0 16px;min-height:0}
#floor-plan h3{font-size:30px;margin-bottom:10px}
#floor-plan .fp-room-description{font-size:17px;line-height:1.5}
#floor-plan .fp-detail-nav{padding-top:4px}
#floor-plan .fp-map-label{display:none}
}
@media(prefers-reduced-motion:reduce){#floor-plan *,#floor-plan.fp-reveal .fp-heading,#floor-plan.fp-reveal .fp-stage{animation:none!important;transition:none!important;scroll-behavior:auto!important}#floor-plan.fp-reveal .fp-heading,#floor-plan.fp-reveal .fp-stage{opacity:1;transform:none}}

@media(min-width:901px){
#floor-plan .fp-detail{position:absolute;z-index:10;width:min(420px,42vw);max-width:calc(100% - 24px);margin:0;padding:0 20px 16px;background:#fbf8f1;border:1px solid #b6aa9670;box-shadow:0 12px 48px #18201b30;border-radius:3px;animation:fp-appear .22s both}
#floor-plan .fp-detail-top{min-height:44px}
#floor-plan .fp-photo-wrap{margin:0 -20px}
#floor-plan .fp-detail-copy{padding:18px 0 16px;min-height:0}
#floor-plan h3{font-size:30px;margin-bottom:10px}
#floor-plan .fp-room-description{font-size:17px;line-height:1.5}
#floor-plan .fp-detail-nav{padding-top:5px}
}
