/* Real project photographs; isolated to room cards and their galleries. */
.homepage-room-photo,.room-card-photo{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:#184b4c}
.homepage-room-photo>img,.room-card-photo>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 55%;transition:transform .3s}
.homepage-room-photo:hover>img,.room-card:hover .room-card-photo>img{transform:scale(1.025)}
.room-photo-count{position:absolute;right:10px;bottom:10px;z-index:1;padding:5px 9px;border-radius:7px;background:#184b4cf0;color:#fff5e5;font-size:12px;line-height:1.5;font-weight:500}
.home .homepage-room-art{height:auto;aspect-ratio:4/3}
.home .homepage-room-photo:focus-visible{outline:3px solid #eab56c;outline-offset:-4px}
.room-detail-with-photos{align-items:start;grid-template-columns:minmax(0,1.4fr) minmax(290px,.85fr);gap:30px}
.room-gallery{min-width:0;padding:22px;background:#fffdf7;border:1px solid #e3ddce;border-radius:22px;color:#203e3b}
.room-gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 18px}
.room-gallery-heading h2{font:400 29px/1.2 Georgia,serif;letter-spacing:-.025em;margin:0}
.room-gallery-heading>span{font-size:13px;color:#61736a;white-space:nowrap}
.room-gallery-main{display:block;position:relative;border-radius:14px;overflow:hidden;background:#184b4c;height:clamp(360px,40vw,570px)}
.room-gallery-main>img{display:block;width:100%;height:100%;object-fit:contain}
.gallery-open-label{display:flex;align-items:center;gap:10px;position:absolute;right:14px;bottom:14px;padding:11px 14px;background:#f5f0e7f5;color:#203e3b;border-radius:9px;font-size:14px;line-height:1.5;box-shadow:0 3px 12px #0002}
.gallery-open-label .icon{width:18px;height:18px}
.room-gallery-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:16px}
.room-gallery-thumb{display:block;position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#e8eee0;border:3px solid transparent;min-height:44px}
.room-gallery-thumb>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.room-gallery-thumb>span{position:absolute;bottom:6px;left:6px;padding:2px 6px;background:#184b4cf0;color:#fff5e5;font-size:11px;border-radius:5px;line-height:1.6}
.room-gallery-thumb.is-current{border-color:#b77d2d;box-shadow:0 0 0 1px #b77d2d}
.room-gallery-hint{font-size:13px;line-height:1.7;color:#61736a;margin:14px 0 0}
.room-detail-with-photos .room-summary{padding:30px;border-radius:22px;border-color:#e3ddce;background:#e8eee0}
.room-detail-with-photos .room-summary h2{font:400 33px/1.13 Georgia,serif;letter-spacing:-.03em;color:#203e3b}
.room-detail-with-photos .room-summary .eyebrow{font-size:11px;color:#61736a}
.room-detail-with-photos .room-summary dl{font-size:14px}
.room-detail-with-photos .room-summary dd{font-size:14px;color:#203e3b;text-align:right;max-width:180px}
.room-detail-with-photos .room-summary .muted{font-size:14px;line-height:1.8;color:#52674e}
.room-detail-with-photos .room-summary .button{background:#184b4c;color:#fff5e5;border-color:#184b4c;font-size:14px;min-height:48px}
.room-gallery a:focus-visible,.room-photo-dialog button:focus-visible{outline:3px solid #eab56c;outline-offset:4px}
.room-photo-dialog{width:min(1200px,calc(100vw - 40px));max-width:calc(100vw - 40px);max-height:calc(100dvh - 32px);padding:20px;border:1px solid #486865;border-radius:18px;background:#123d3e;color:#fff5e5;overflow:auto}
.room-photo-dialog::backdrop{background:#071e21e8}
.room-photo-dialog:not([open]){display:none}
.photo-dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}
.photo-dialog-toolbar h2{font:400 28px/1.2 Georgia,serif;margin:0;color:#fff5e5}
.photo-dialog-close{display:flex;align-items:center;gap:15px;background:#f5f0e7;color:#203e3b;border:0;border-radius:10px;min-height:44px;padding:9px 15px;font-size:14px;cursor:pointer}
.photo-dialog-close>span{font-size:25px;line-height:1}
.photo-dialog-frame{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:15px;align-items:center}
.photo-dialog-frame>img{display:block;width:100%;height:clamp(220px,calc(100dvh - 180px),800px);object-fit:contain}
.photo-dialog-frame>button{width:48px;height:48px;background:#eab56c;border:0;border-radius:12px;color:#203e3b;font-size:25px;cursor:pointer}
.photo-dialog-counter{font-size:14px;line-height:1.6;text-align:center;margin:15px 0 0;color:#f5f0e7}
@media(max-width:950px){.room-detail-with-photos{grid-template-columns:1fr;gap:24px}.room-gallery-main{height:clamp(360px,65vw,620px)}.room-detail-with-photos .room-summary dd{max-width:none}}
@media(max-width:600px){.room-gallery{padding:18px;border-radius:18px}.room-gallery-heading h2{font-size:25px}.room-gallery-main{height:410px;border-radius:12px}.room-gallery-thumbs{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.room-gallery-hint{font-size:13px}.gallery-open-label{font-size:13px;right:10px;bottom:10px;min-height:44px;padding:10px 12px}.room-detail-with-photos .room-summary{padding:25px}.room-detail-with-photos .room-summary h2{font-size:32px}.room-detail-with-photos .room-summary dl>div{gap:15px}.room-detail-with-photos .room-summary dd{max-width:160px}.room-photo-dialog{padding:16px;width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.photo-dialog-toolbar h2{font-size:25px}.photo-dialog-frame{grid-template-columns:44px minmax(0,1fr) 44px;gap:5px}.photo-dialog-frame>button{width:44px;height:44px;font-size:22px}.photo-dialog-frame>img{height:calc(100dvh - 190px)}.photo-dialog-close{font-size:13px;padding:9px 11px}.room-photo-count{right:8px;bottom:8px;font-size:11px;padding:4px 7px}}
@media(max-width:600px){.photo-dialog-frame{display:block;position:relative}.photo-dialog-frame>button{position:absolute;top:50%;transform:translateY(-50%);z-index:1;background:#eab56ce8}.photo-dialog-frame>button:first-child{left:0}.photo-dialog-frame>button:last-child{right:0}}
@media(max-width:380px){.home .homepage-room{display:block}.home .homepage-room-art{min-height:0;padding:20px}.room-gallery{padding:15px}.room-gallery-heading h2{font-size:23px}.room-gallery-heading>span{font-size:12px}.room-gallery-main{height:350px}.room-detail-with-photos .room-summary{padding:22px}.room-detail-with-photos .room-summary dl>div{flex-direction:column;gap:7px}.room-detail-with-photos .room-summary dd{text-align:left;max-width:none}}
@media(prefers-reduced-motion:reduce){.homepage-room-photo>img,.room-card-photo>img{transition:none}.homepage-room-photo:hover>img,.room-card:hover .room-card-photo>img{transform:none}}
