.room-pin::before{display:none}
.room-pin{color:var(--ink);text-align:left;z-index:2;transition:background .25s;will-change:transform,opacity}
.room-pin[aria-hidden=true]{pointer-events:none}
.room-pin-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 3px #f5f4f0cc;transform:translate(-50%,-50%);pointer-events:none}
.room-pin-line{position:absolute;height:1px;background:#15151555;transform-origin:left center;pointer-events:none}
.viewer .room-pin{display:flex;gap:10px;align-items:center;padding:7px 8px 7px 12px;box-shadow:none}
.viewer .room-pin small{display:block;font:500 9px/1 var(--sans);color:var(--muted);letter-spacing:.06em;margin-top:4px}
.viewer .room-pin i{flex:none;width:24px;height:24px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:400 16px/1 var(--sans);font-style:normal}
.room-navigation{position:absolute;z-index:5;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);width:max-content}
.room-floors{display:flex;gap:3px;padding:4px;background:#f5f4f0ed;border:1px solid var(--line);border-radius:32px;backdrop-filter:blur(12px)}
.room-floors button,.room-directory{border:0;background:none;color:var(--muted);padding:11px 14px;white-space:nowrap;border-radius:28px;font:500 10px/1.2 var(--sans);cursor:pointer;min-height:36px}
.room-floors button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.room-directory{background:#f5f4f0ed;border:1px solid var(--line);color:var(--ink);display:flex;gap:14px;align-items:center;backdrop-filter:blur(12px)}
.room-directory:hover,.room-floors button:hover{color:var(--ink);background:#fff}
.room-floors button[aria-pressed=true]:hover{background:#343434;color:#fff}
.room-dialog{width:min(1000px,calc(100% - 32px));max-height:calc(100svh - 32px);padding:24px;border:0;background:var(--paper);color:var(--ink);overflow:auto;overscroll-behavior:contain}
.room-dialog::backdrop{background:#16110ee0;backdrop-filter:blur(8px)}
.room-dialog-bar{position:sticky;top:0;z-index:4;background:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:26px}
.room-dialog-bar .eyebrow{margin:0}
.room-dialog-bar>button{border:0;background:none;padding:10px 0;font:500 11px/1 var(--sans);color:var(--ink);cursor:pointer}
.room-dialog h2{font:400 clamp(38px,5vw,64px)/1 var(--serif);letter-spacing:-.02em;margin-bottom:24px}
.room-detail{display:grid;grid-template-columns:1fr minmax(260px,.85fr);gap:40px}
.room-detail-copy{padding-top:20px}
.room-detail-copy>p:not(.eyebrow){font:400 15px/1.65 var(--sans);max-width:420px}
.room-detail-copy>.room-area{font:400 52px/1 var(--serif)!important;margin:22px 0 26px}
.room-detail-copy dl{margin:28px 0;display:grid;gap:10px}
.room-detail-copy dl>div{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding-bottom:10px;font:400 12px/1.4 var(--sans)}
.room-detail-copy dt{color:var(--muted)}
.room-detail-copy dd{margin:0}
.room-detail-copy .btn{background:var(--wine);color:#f4eee7;border:0;cursor:pointer;font-size:10px;letter-spacing:.02em;text-transform:none;padding:16px}
.room-detail-copy>.room-source{font-size:10px!important;color:var(--muted);line-height:1.5;margin-top:28px}
.room-plan{margin:0;text-align:center}
.room-plan>div{position:relative;max-width:340px;margin:auto}
.room-plan img{width:100%;height:auto}
.room-plan-marker{position:absolute;width:28px;height:28px;border-radius:50%;border:2px solid var(--wine);background:#96574126;box-shadow:0 0 0 7px #96574118;transform:translate(-50%,-50%)}
.room-plan-marker::after{content:'';position:absolute;inset:9px;background:var(--wine);border-radius:50%}
.room-plan figcaption{font:400 10px/1.4 var(--sans);color:var(--muted);margin-top:12px}
.room-related{border-top:1px solid var(--line);padding-top:22px;margin-top:28px}
.room-related .eyebrow{margin-bottom:10px}
.room-related>div{display:flex;flex-wrap:wrap;gap:7px}
.room-related button{border:1px solid var(--line);border-radius:24px;padding:11px 15px;background:transparent;color:var(--muted);font:500 11px/1.2 var(--sans);cursor:pointer}
.room-related button[aria-pressed=true]{background:var(--wine);color:#fff}
.room-catalog{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px}
.room-catalog h3{margin-bottom:16px}
.room-catalog section>div{border-top:1px solid var(--line)}
.room-catalog button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;color:var(--ink);font:400 18px/1.15 var(--serif)}
.room-catalog button small{display:block;margin-top:6px;color:var(--muted);font:400 10px/1 var(--sans)}
.room-catalog button>span:last-child{font:400 11px/1 var(--sans);white-space:nowrap}
.room-outdoor img{width:100%;margin-top:20px}
.room-outdoor p{font-size:10px;color:var(--muted);margin-top:10px}
@media(max-width:860px){
  .room-navigation{flex-direction:column;gap:6px;bottom:18px;width:calc(100% - 28px)}
  .room-floors{max-width:100%;width:100%;justify-content:center;border-radius:24px}
  .room-floors button{padding:9px 7px;white-space:normal;font-size:9px;min-height:37px;flex:1}
  .room-directory{padding:9px 15px;min-height:32px;font-size:9px}
  .room-pin{font-size:14px}.room-pin small{font-size:8px;letter-spacing:.04em}
  .room-dialog{padding:20px;width:calc(100% - 24px);max-height:calc(100svh - 24px)}
  .room-detail{grid-template-columns:1fr;gap:26px}
  .room-detail-copy{padding-top:0}
  .room-plan>div{max-width:300px}
  .room-catalog{grid-template-columns:1fr;gap:30px}
}
