.modal.wide{width:min(1180px,96vw)}
.modal.gallery-mode{padding:0;max-height:94vh}
.modal.gallery-mode>.modal-close{display:none}
.modal-open{overflow:hidden}
.gallery-modal-header{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:190px 1fr 48px;align-items:center;gap:18px;padding:20px 24px;background:#fff;border-bottom:1px solid var(--line)}
.gallery-modal-header h2,.gallery-modal-header p{margin:0}
.gallery-modal-header p{font-size:13px}
.gallery-back,.gallery-close{border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer;font-weight:700;color:var(--ink)}
.gallery-back{padding:10px 14px}
.gallery-close{width:42px;height:42px;font-size:25px}
.gallery-coverage{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:18px 24px;background:var(--soft);border-bottom:1px solid var(--line)}
.gallery-coverage span{background:#fff;border:1px solid var(--line);border-radius:18px;padding:6px 10px;font-size:12px}
.gallery-grid{padding:24px;grid-template-columns:repeat(3,1fr)}
.room-card{padding:0;text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:pointer}
.room-card:hover{border-color:var(--brand);box-shadow:0 4px 14px rgba(8,126,120,.12)}
.room-card img{height:190px}
.room-card div{display:flex;flex-direction:column;gap:3px}
.room-card em{font-size:12px;color:var(--muted);font-style:normal}
.photo-disclosure{margin:0 24px 24px;padding:15px 18px;display:flex;gap:24px;flex-wrap:wrap;background:var(--accent);border:1px solid #9bcac6;border-radius:7px;font-size:13px}
.room-view{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);gap:24px;padding:24px}
.room-view>img{width:100%;height:560px;object-fit:cover;border-radius:8px;background:#e3e7e8}
.room-view aside{border:1px solid var(--line);border-radius:8px;padding:20px;align-self:start}
.room-view dl{margin:12px 0}
.room-view dl div{border-top:1px solid var(--line);padding:10px 0}
.room-view dt{color:var(--muted);font-size:12px}
.room-view dd{margin:2px 0 0;font-weight:700}
.room-tabs{display:flex;gap:8px;overflow:auto;padding:0 24px 24px}
.room-tabs button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:18px;padding:8px 13px;cursor:pointer}
.room-tabs button.active{background:var(--brand);color:#fff;border-color:var(--brand)}
@media(max-width:800px){.gallery-grid{grid-template-columns:1fr 1fr}.room-view{grid-template-columns:1fr}.room-view>img{height:400px}.gallery-modal-header{grid-template-columns:150px 1fr 44px}}
