/*
  BEA room gallery: authentic photography, asymmetric editorial hierarchy,
  incandescent amber wayfinding, visible sequence, and restrained motion.
*/
body.room-gallery-open { overflow: auto; background: #080706; }
.room-gallery { min-height: 100svh; overflow-x: hidden; background: radial-gradient(circle at 82% 3%,rgba(217,154,61,.12),transparent 31rem),linear-gradient(135deg,rgba(255,255,255,.018) 1px,transparent 1px),#080706; background-size:auto,4rem 4rem,auto; color:var(--cream); }
.room-gallery__topbar { position:sticky; z-index:40; top:0; min-height:5rem; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem; padding:.7rem clamp(1rem,3vw,2.8rem); border-bottom:1px solid rgba(241,234,220,.16); background:rgba(8,7,6,.88); backdrop-filter:blur(20px); }
.room-gallery__back,.room-gallery__reserve { min-height:44px; display:inline-flex; align-items:center; gap:.58rem; color:var(--cream); font-size:.72rem; font-weight:600; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; transition:color 180ms var(--ease-out),transform 180ms var(--ease-out); }
.room-gallery__back { width:max-content; }
.room-gallery__reserve { justify-self:end; padding:.58rem .76rem; border:1px solid rgba(241,234,220,.28); }
.room-gallery__back svg,.room-gallery__reserve svg { width:1rem; height:1rem; }
.room-gallery__back:hover,.room-gallery__back:focus-visible,.room-gallery__reserve:hover,.room-gallery__reserve:focus-visible { color:var(--amber-light); transform:translateY(-2px); }
.room-gallery__brand { display:block; line-height:0; }
.room-gallery__brand img { width:2.05rem; height:auto; filter:brightness(.9) saturate(.9) drop-shadow(0 0 .2rem rgba(255,143,27,.2)); transition:filter 180ms var(--ease-out),transform 180ms var(--ease-out); }
.room-gallery__brand:hover img,.room-gallery__brand:focus-visible img { transform:translateY(-2px) scale(1.05); filter:brightness(1.45) saturate(1.35) drop-shadow(0 0 .22rem #fff8dc) drop-shadow(0 0 .85rem rgba(255,126,18,.95)); }
.room-gallery__intro { width:min(100% - 2rem,86rem); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr) auto; align-items:end; gap:clamp(1.5rem,4vw,4rem); padding:clamp(3.5rem,8vw,8rem) 0 clamp(2rem,4vw,3.5rem); }
.room-gallery__intro h1 { margin:.28rem 0 0; font-family:"Bebas Neue",Impact,sans-serif; font-size:clamp(5.8rem,13vw,12.5rem); font-weight:400; letter-spacing:.035em; line-height:.72; text-transform:uppercase; text-shadow:.02em .03em 0 rgba(217,154,61,.42); }
.room-gallery__intro p { max-width:38rem; margin:0; color:var(--smoke); font-size:clamp(.86rem,1.3vw,1rem); line-height:1.75; }
.room-gallery__intro>a { min-height:44px; display:inline-flex; align-items:center; gap:.5rem; padding-bottom:.38rem; border-bottom:1px solid rgba(217,154,61,.65); color:var(--cream); font-size:.7rem; font-weight:600; letter-spacing:.11em; text-decoration:none; text-transform:uppercase; white-space:nowrap; }
.room-gallery__intro>a span { transition:transform 180ms var(--ease-out); }
.room-gallery__intro>a:hover span,.room-gallery__intro>a:focus-visible span { transform:translateX(4px); }
.room-gallery__viewer { width:min(100% - 2rem,86rem); margin:0 auto; }
.room-gallery__stage { position:relative; aspect-ratio:16/9; min-height:32rem; max-height:calc(100svh - 7rem); overflow:hidden; border:1px solid rgba(241,234,220,.16); background:#11100e; box-shadow:0 2rem 7rem rgba(0,0,0,.42); }
.room-gallery__stage::before { content:""; position:absolute; z-index:4; inset:.65rem; border:1px solid rgba(241,234,220,.16); pointer-events:none; }
.room-gallery__image-button { position:absolute; inset:0; width:100%; height:100%; padding:0; overflow:hidden; border:0; background:#11100e; color:var(--cream); }
.room-gallery__image-button>img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.9) contrast(1.04) brightness(.86); transition:opacity 180ms var(--ease-out); }
.room-gallery.is-high-contrast .room-gallery__image-button>img,.room-gallery.is-high-contrast .room-gallery__filmstrip img { filter:saturate(.25) contrast(1.28) brightness(.72); }
.room-gallery__image-button>img.is-changing { animation:room-image-in 520ms var(--ease-out) both; }
.room-gallery__shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,6,5,.08),transparent 55%,rgba(7,6,5,.48)); pointer-events:none; }
.room-gallery__expand { position:absolute; right:clamp(1.2rem,2.5vw,2.4rem); top:clamp(1.2rem,2.5vw,2.4rem); display:inline-flex; align-items:center; gap:.5rem; padding:.58rem .7rem; border:1px solid rgba(241,234,220,.38); background:rgba(8,7,6,.62); color:var(--cream); font-size:.64rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; backdrop-filter:blur(10px); }
.room-gallery__expand svg { width:.92rem; height:.92rem; }
.room-gallery__arrow { position:absolute; z-index:8; top:50%; width:3.25rem; height:3.25rem; display:grid; place-items:center; border:1px solid rgba(241,234,220,.35); background:rgba(8,7,6,.7); color:var(--cream); backdrop-filter:blur(12px); transform:translateY(-50%); transition:color 180ms var(--ease-out),background 180ms var(--ease-out),transform 180ms var(--ease-out); }
.room-gallery__arrow--previous { left:clamp(1.1rem,2.5vw,2.3rem); }
.room-gallery__arrow--next { right:clamp(1.1rem,2.5vw,2.3rem); }
.room-gallery__arrow:hover,.room-gallery__arrow:focus-visible { color:var(--ink); background:var(--amber-light); transform:translateY(-50%) scale(1.05); }
.room-gallery__counter { position:absolute; z-index:7; left:clamp(1.2rem,2.6vw,2.5rem); bottom:clamp(1.2rem,2.5vw,2.4rem); display:flex; align-items:baseline; gap:.48rem; font-family:"Bebas Neue",Impact,sans-serif; }
.room-gallery__counter strong { font-size:clamp(2.6rem,5vw,5.5rem); font-weight:400; line-height:.75; }
.room-gallery__counter span { color:var(--smoke); font-size:.9rem; letter-spacing:.1em; }
.room-gallery__caption { display:grid; grid-template-columns:11rem 1fr; gap:1rem; padding:1.15rem 0 1.25rem; border-bottom:1px solid rgba(241,234,220,.16); }
.room-gallery__caption span { color:var(--amber-light); font-size:.61rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.room-gallery__caption p { margin:0; font-family:"Bebas Neue",Impact,sans-serif; font-size:clamp(1.35rem,2.6vw,2.6rem); letter-spacing:.045em; line-height:1; }
.room-gallery__filmstrip { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.65rem; padding:1rem 0 0; }
.room-gallery--lounge .room-gallery__filmstrip { grid-template-columns:repeat(4,minmax(0,1fr)); }
.room-gallery__filmstrip button { position:relative; aspect-ratio:16/10; min-height:4rem; overflow:hidden; padding:0; border:1px solid rgba(241,234,220,.16); background:#11100e; color:var(--cream); opacity:.55; transition:opacity 180ms var(--ease-out),border-color 180ms var(--ease-out),transform 180ms var(--ease-out); }
.room-gallery__filmstrip button:hover,.room-gallery__filmstrip button:focus-visible,.room-gallery__filmstrip button.is-active { border-color:var(--amber-light); opacity:1; transform:translateY(-3px); }
.room-gallery__filmstrip img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.82) brightness(.75); }
.room-gallery__filmstrip button.is-active img { filter:saturate(.95) brightness(.92); }
.room-gallery__filmstrip span { position:absolute; left:.55rem; bottom:.45rem; font-family:"Bebas Neue",Impact,sans-serif; font-size:1rem; letter-spacing:.08em; text-shadow:0 2px 10px #000; }
.room-gallery__notes { width:min(100% - 2rem,86rem); margin:clamp(4rem,8vw,8rem) auto 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid rgba(241,234,220,.16); border-left:1px solid rgba(241,234,220,.16); }
.room-gallery__notes>div,.room-gallery__notes>a { min-height:8rem; display:grid; align-content:center; gap:.45rem; padding:1.2rem; border-right:1px solid rgba(241,234,220,.16); border-bottom:1px solid rgba(241,234,220,.16); color:var(--cream); text-decoration:none; }
.room-gallery__notes small { color:var(--amber-light); font-size:.58rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.room-gallery__notes strong { font-family:"Bebas Neue",Impact,sans-serif; font-size:clamp(1.4rem,2.5vw,2.35rem); font-weight:400; letter-spacing:.045em; }
.room-gallery__notes>a { position:relative; background:rgba(217,154,61,.08); }
.room-gallery__notes>a>span { position:absolute; right:1rem; top:1rem; }
.room-gallery__notes>a:hover,.room-gallery__notes>a:focus-visible { background:var(--amber); color:var(--ink); }
.room-gallery__footer { width:min(100% - 2rem,86rem); margin:0 auto; display:flex; justify-content:space-between; gap:1rem; padding:1.5rem 0 2.2rem; color:var(--smoke); font-size:.64rem; letter-spacing:.08em; }
.room-gallery__footer a { color:var(--smoke); text-decoration:none; }
.room-gallery__footer a:hover,.room-gallery__footer a:focus-visible { color:var(--amber-light); }
.room-gallery__footer strong { color:var(--cream); }
.room-lightbox[hidden] { display:none; }
.room-lightbox { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:clamp(1rem,4vw,3.5rem); background:rgba(4,3,2,.96); backdrop-filter:blur(18px); animation:fade-in 220ms var(--ease-out) both; }
.room-lightbox figure { width:min(100%,86rem); max-height:calc(100svh - 5rem); display:grid; margin:0; }
.room-lightbox figure img { width:100%; max-height:calc(100svh - 8rem); display:block; object-fit:contain; overflow:hidden; }
.room-lightbox figcaption { display:flex; justify-content:space-between; gap:1rem; padding-top:.8rem; color:var(--cream); font-size:.78rem; }
.room-lightbox figcaption span { color:var(--amber-light); font-size:.58rem; font-weight:600; letter-spacing:.17em; text-transform:uppercase; }
.room-lightbox__close,.room-lightbox__arrow { position:fixed; z-index:3; width:3rem; height:3rem; display:grid; place-items:center; border:1px solid rgba(241,234,220,.28); background:rgba(8,7,6,.74); color:var(--cream); }
.room-lightbox__close { top:1rem; right:1rem; }
.room-lightbox__arrow { top:50%; transform:translateY(-50%); }
.room-lightbox__arrow--previous { left:1rem; }
.room-lightbox__arrow--next { right:1rem; }
.room-lightbox__close:hover,.room-lightbox__close:focus-visible,.room-lightbox__arrow:hover,.room-lightbox__arrow:focus-visible { background:var(--amber-light); color:var(--ink); }
@keyframes room-image-in { from { opacity:0; transform:scale(1.035); } to { opacity:1; } }
@media (max-width:900px) { .room-gallery__intro { grid-template-columns:1fr auto; } .room-gallery__intro p { grid-column:1/-1; grid-row:2; } .room-gallery__intro>a { grid-column:2; grid-row:1; } .room-gallery__stage { min-height:28rem; } }
@media (max-width:640px) {
  .room-gallery__topbar { min-height:4.4rem; grid-template-columns:auto 1fr auto; padding:.52rem .65rem; }
  .room-gallery__back,.room-gallery__reserve { width:44px; justify-content:center; padding:0; }
  .room-gallery__back span,.room-gallery__reserve span,.room-gallery__reserve svg:last-child { display:none; }
  .room-gallery__brand { justify-self:center; } .room-gallery__brand img { width:1.55rem; }
  .room-gallery__intro { width:min(100% - 1.25rem,86rem); grid-template-columns:1fr; gap:1.2rem; padding:3.2rem 0 1.6rem; }
  .room-gallery__intro h1 { font-size:clamp(5.6rem,27vw,8rem); }
  .room-gallery__intro p,.room-gallery__intro>a { grid-column:auto; grid-row:auto; }
  .room-gallery__intro>a { width:max-content; }
  .room-gallery__viewer,.room-gallery__notes,.room-gallery__footer { width:min(100% - 1.25rem,86rem); }
  .room-gallery__stage { min-height:0; aspect-ratio:4/5; }
  .room-gallery__expand { right:.85rem; top:.85rem; width:44px; height:44px; justify-content:center; padding:0; font-size:0; }
  .room-gallery__arrow { width:2.8rem; height:2.8rem; }
  .room-gallery__arrow--previous { left:.8rem; } .room-gallery__arrow--next { right:.8rem; }
  .room-gallery__counter { left:1rem; bottom:1rem; }
  .room-gallery__caption { grid-template-columns:1fr; gap:.45rem; }
  .room-gallery__filmstrip,.room-gallery--lounge .room-gallery__filmstrip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .room-gallery__notes { margin-top:4rem; grid-template-columns:1fr 1fr; }
  .room-gallery__notes>div,.room-gallery__notes>a { min-height:7rem; padding:1rem; }
  .room-gallery__footer { flex-direction:column; }
  .room-lightbox { padding:.65rem; }
  .room-lightbox__arrow { top:auto; bottom:1rem; transform:none; }
  .room-lightbox figcaption { padding-inline:.35rem; padding-bottom:4.5rem; flex-direction:column; }
}
