/* A compact introduction, a room overview, and a separate photo viewer. */
.patio-gallery__preview{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr 1fr;gap:8px;height:clamp(320px,38vw,540px);overflow:hidden;border-radius:calc(var(--radius) + 8px)}
.patio-preview-photo{display:block;overflow:hidden;min-width:0;min-height:0;background:var(--color-surface)}
.patio-preview-photo:first-child{grid-column:span 2;grid-row:span 2}
.patio-preview-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:filter .2s,transform .4s}
.patio-preview-photo:hover img{filter:brightness(.9);transform:scale(1.025)}
.patio-gallery__preview--1{grid-template-columns:1fr;grid-template-rows:1fr}.patio-gallery__preview--1 .patio-preview-photo:first-child{grid-column:auto;grid-row:auto}
.patio-gallery__preview--2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.patio-gallery__preview--2 .patio-preview-photo:first-child{grid-column:auto;grid-row:auto}
.patio-gallery__preview--3{grid-template-columns:2fr 1fr}.patio-gallery__preview--3 .patio-preview-photo:first-child{grid-column:1;grid-row:span 2}
.patio-gallery__preview--4 .patio-preview-photo:last-of-type{grid-column:3/span 2}
.patio-gallery__all-button{position:absolute;right:20px;bottom:20px;z-index:2;display:flex;gap:10px;align-items:center;background:var(--color-background);color:var(--color-text);border:1px solid currentColor;border-radius:8px;padding:12px 18px;min-height:44px;font:600 .85rem/1.3 var(--font-body);box-shadow:0 4px 20px #0002;cursor:pointer}
.patio-gallery__all-button[hidden],.patio-gallery__fallback[hidden]{display:none}
.patio-gallery__all-button small{font-weight:400;opacity:.7}
.patio-gallery__fallback{margin-top:16px}.patio-gallery__fallback summary{cursor:pointer}.patio-gallery__fallback-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.patio-gallery__fallback-grid img{width:100%;height:auto}
.patio-photo-overview,.patio-photo-viewer{position:fixed;inset:0;margin:0;width:100%;height:100dvh;max-width:100%;max-height:100dvh;border:0;padding:0;box-sizing:border-box}
.patio-photo-overview::backdrop,.patio-photo-viewer::backdrop{background:#101c17}
.patio-photo-overview{background:var(--color-background);color:var(--color-text);overflow:auto;overscroll-behavior:contain}
.patio-photo-overview__header{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:22px 4vw;background:var(--color-background);border-bottom:1px solid var(--color-border)}
.patio-photo-overview__header h2{font-size:1.3rem;margin:0;letter-spacing:-.02em}.patio-photo-overview__header>span{justify-self:end;font-size:.85rem;opacity:.7}
.patio-photo-overview__header button,.patio-photo-viewer__header button{border:0;background:transparent;color:inherit;min-height:44px;padding:8px 12px;border-radius:24px;cursor:pointer;font:500 .85rem/1.3 var(--font-body)}
.patio-photo-overview__header button{justify-self:start}.patio-photo-overview__header button:hover{background:var(--color-surface)}
.patio-photo-overview__body{max-width:1180px;margin:0 auto;padding:40px 36px 80px}
.patio-room-nav{display:flex;gap:18px;overflow:auto;padding-bottom:32px;margin-bottom:16px}.patio-room-nav[hidden]{display:none}.patio-room-nav a{flex:0 0 142px;text-decoration:none;font:500 .85rem/1.4 var(--font-body)}.patio-room-nav img{width:142px;height:100px;object-fit:cover;border-radius:8px;margin-bottom:10px}.patio-room-nav a:hover img{filter:brightness(.9)}
.patio-room-section{scroll-margin-top:110px;margin-bottom:56px}.patio-room-section h3{font:500 1.6rem/1.3 var(--font-body);letter-spacing:-.04em;margin:0 0 24px}.patio-room-section h3 span{font:400 .8rem/1.4 var(--font-body);margin-left:16px;opacity:.65;letter-spacing:0}
.patio-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.patio-room-grid>button{border:0;background:var(--color-surface);padding:0;cursor:zoom-in;overflow:hidden;border-radius:10px;min-width:0}.patio-room-grid>button:only-child{grid-column:1/-1}.patio-room-grid>button img{display:block;width:100%;height:100%;max-height:680px;aspect-ratio:3/2;object-fit:cover;transition:filter .2s}.patio-room-grid>button:only-child img{aspect-ratio:16/10}.patio-room-grid>button:hover img{filter:brightness(.9)}
.patio-photo-viewer{background:#101a16;color:#fff;overflow:hidden;display:none}.patio-photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.patio-photo-viewer__header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:16px 28px}.patio-photo-viewer__header>div{justify-self:end;display:flex;gap:12px}.patio-photo-viewer__header>[data-photo-back]{justify-self:start}.patio-photo-viewer__header button:hover{background:#ffffff1a}.patio-photo-viewer__header [aria-pressed=true]{background:#ffffff26}.patio-photo-viewer__header [data-photo-count]{font-size:.85rem}
.patio-photo-viewer__stage{min-height:0;display:grid;grid-template-columns:70px minmax(0,1fr) 70px;align-items:center;gap:20px;padding:12px 24px}
.patio-photo-viewer__stage>button{border:1px solid #ffffff66;border-radius:50%;background:transparent;color:white;width:48px;height:48px;justify-self:center;font:36px/1 var(--font-body);cursor:pointer}.patio-photo-viewer__stage figure{margin:0;height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}.patio-photo-viewer__canvas{display:flex;align-items:center;justify-content:center;min-height:0;overflow:auto}.patio-photo-viewer__canvas img{width:100%;height:100%;object-fit:contain;max-height:100%}.patio-photo-viewer__canvas.is-zoomed{display:block;cursor:zoom-out}.patio-photo-viewer__canvas.is-zoomed img{width:150%;height:auto;max-width:none;max-height:none;object-fit:initial}.patio-photo-viewer__stage figcaption{padding:20px 0 8px;text-align:center;font-size:.85rem}
.patio-photo-viewer__thumbs{display:flex;gap:8px;overflow:auto;max-width:min(90vw,850px);margin:12px auto 24px;padding:4px}.patio-photo-viewer__thumbs[hidden]{display:none}.patio-photo-viewer__thumbs button{flex:0 0 72px;width:72px;padding:3px;border:1px solid transparent;background:transparent;border-radius:6px;opacity:.5;cursor:pointer}.patio-photo-viewer__thumbs img{width:64px;height:48px;object-fit:cover;border-radius:3px}.patio-photo-viewer__thumbs [aria-current=true]{border-color:#fff;opacity:1}
.patio-gallery--cinema .patio-gallery__preview,.patio-gallery--strip .patio-gallery__preview{display:flex}.patio-gallery--cinema .patio-preview-photo{flex:0 0 84%}.patio-gallery--strip .patio-preview-photo{flex:1}.patio-gallery--strip .patio-gallery__preview{height:340px}
@media(max-width:700px){.patio-gallery__preview{height:320px;grid-template-columns:2fr 1fr}.patio-preview-photo:first-child{grid-column:1;grid-row:1/span 2}.patio-preview-photo:nth-of-type(n+4){display:none}.patio-gallery__preview--4 .patio-preview-photo:last-of-type{grid-column:auto}.patio-gallery__preview--2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.patio-gallery__preview--2 .patio-preview-photo:first-child{grid-row:auto}.patio-gallery__preview--1{grid-template-columns:1fr}.patio-gallery__all-button{right:12px;bottom:12px;padding:10px 12px;font-size:.75rem}.patio-gallery__heading .patio-eyebrow{font-size:.62rem}.patio-photo-overview__header{gap:8px;padding:12px 16px;grid-template-columns:auto 1fr auto}.patio-photo-overview__header h2{font-size:1rem;text-align:center}.patio-photo-overview__header button span{display:none}.patio-photo-overview__header>span{font-size:.7rem}.patio-photo-overview__body{padding:24px 16px 48px}.patio-room-nav{gap:12px}.patio-room-nav a{flex-basis:112px}.patio-room-nav img{width:112px;height:84px}.patio-room-grid{gap:10px}.patio-room-grid>button:first-child img{aspect-ratio:4/3}.patio-room-grid>button img{aspect-ratio:1/1}.patio-room-section{scroll-margin-top:88px;margin-bottom:36px}.patio-room-section h3{font-size:1.3rem;margin-bottom:16px}.patio-photo-viewer__header{padding:12px 8px;gap:6px;grid-template-columns:1fr auto}.patio-photo-viewer__header>div{grid-column:1/-1;grid-row:2;justify-self:end}.patio-photo-viewer__stage{grid-template-columns:40px minmax(0,1fr) 40px;gap:4px;padding:8px}.patio-photo-viewer__stage>button{width:36px;height:36px;font-size:28px}.patio-photo-viewer__stage figcaption{font-size:.75rem}.patio-photo-viewer__thumbs{margin-bottom:16px}.patio-gallery--strip .patio-preview-photo{flex:1}}
.patio-photo-viewer--single .patio-photo-viewer__stage{grid-template-columns:minmax(0,1fr)}.patio-photo-viewer__stage>button[hidden]{display:none}
