/* Shared Vegas Sidekick room seating map */
.vs-room-guide{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:24px;align-items:start}
.vs-room-map{background:#0b0613;border-radius:28px;padding:16px;box-shadow:0 22px 55px rgba(28,10,46,.18)}
.vs-room-map svg{display:block;width:100%;height:auto}
.vs-room-zone{cursor:pointer;stroke:rgba(255,255,255,.58);stroke-width:.62;transition:filter .18s,opacity .18s,stroke-width .18s;fill-opacity:.42;filter:saturate(1.28) brightness(1.08)}
.vs-room-zone:hover,.vs-room-zone.is-active{filter:saturate(1.38) brightness(1.2) drop-shadow(0 0 1.4px rgba(255,255,255,.34));stroke:#fff;stroke-width:1.2;fill-opacity:.56}
.vs-room-image-hit{fill-opacity:0;stroke-opacity:0}
.vs-room-image-hit:hover,.vs-room-image-hit.is-active{fill-opacity:.10;stroke-opacity:.72;stroke-width:6;filter:drop-shadow(0 0 8px rgba(255,255,255,.28))}
.vs-room-row{fill:none;stroke:rgba(255,255,255,.28);stroke-width:.3;pointer-events:none}
.vs-room-label{fill:#fff;font:800 3.25px Inter,sans-serif;pointer-events:none;paint-order:stroke;stroke:#0b0613;stroke-width:.72;stroke-opacity:.68}
.vs-room-label.dark{fill:#171225;stroke:#fff;stroke-opacity:.38}
.vs-room-table{cursor:pointer;transition:filter .18s,opacity .18s,transform .18s;transform-box:fill-box;transform-origin:center;filter:saturate(1.24) brightness(1.08)}
.vs-room-table .table-top{stroke:rgba(255,255,255,.9);stroke-width:.45}
.vs-room-table .chair{fill:#fffaff;stroke:#25163a;stroke-width:.24}
.vs-room-table:hover,.vs-room-table.is-active{filter:saturate(1.36) brightness(1.18) drop-shadow(0 0 1.5px rgba(255,255,255,.72));transform:scale(1.05)}
.vs-room-table.is-active .table-top{stroke:#fff;stroke-width:.8}
.vs-room-stage{fill:#17121e;stroke:#ffb000;stroke-width:.85}
.vs-room-stage-label{fill:#fff;font:900 4px Inter,sans-serif;letter-spacing:.8px}
.vs-room-structure{fill:#3a1d62;stroke:#cfadff;stroke-width:.62}
.vs-room-structure-label{fill:#efe4ff;font:800 3px Inter,sans-serif}
.vs-room-cards{display:grid;gap:9px}.vs-room-card{width:100%;text-align:left;border:1px solid #ded4ea;border-radius:14px;background:#fff;padding:12px 14px;color:#24143b}.vs-room-card.is-pick{border-color:#ffb000;box-shadow:0 0 0 2px rgba(255,176,0,.18)}.vs-room-card.is-active{outline:3px solid rgba(123,53,234,.22)}.vs-room-card strong{display:block;font-size:.95rem}.vs-room-card span{display:block;margin-top:3px;font-size:.77rem;color:#74677f}.vs-room-detail{margin-top:14px;border-radius:18px;background:#fff;padding:18px;border:1px solid #e4d9ee}.vs-room-detail .tag{display:inline-block;border-radius:999px;padding:5px 9px;background:#f3e9ff;color:#5b22b7;font-size:.72rem;font-weight:900;text-transform:uppercase}.vs-room-detail h3{margin:9px 0 7px}.vs-room-detail p{margin:0 0 14px;color:#5f5568}.vs-room-mobile{display:none}.vs-chart-gallery{background:#0b0613!important;overflow:hidden}.vs-chart-gallery img{object-fit:contain!important;background:#0b0613!important;width:100%;height:100%;display:block}.vs-lb-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:8;width:54px;height:54px;border:0;border-radius:50%;background:#fff;color:#25133f;font-size:2.2rem;box-shadow:0 8px 30px rgba(0,0,0,.25)}.vs-lb-prev{left:18px}.vs-lb-next{right:18px}.vs-lb-count{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:8;color:#fff;background:rgba(14,8,22,.72);padding:7px 12px;border-radius:999px;font-weight:800}

/* Approved-image seating guides: preserve the supplied chart exactly and keep the interaction in the UI around it. */
.vs-room-summary{max-width:780px;margin:0 0 20px;color:#5f5568;font-size:1rem;line-height:1.55}
.vs-room-image-layout .vs-room-guide{grid-template-columns:minmax(0,1.18fr) minmax(280px,.82fr);gap:22px}
.vs-room-image-layout .vs-room-map{padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 60px rgba(13,4,24,.24)}
.vs-room-image-layout .vs-room-image-hit,.vs-room-image-layout .vs-room-image-hit:hover,.vs-room-image-layout .vs-room-image-hit.is-active{fill-opacity:0;stroke-opacity:0;filter:none;pointer-events:all;cursor:pointer}
.vs-room-image-layout .vs-room-cards{gap:12px}
.vs-room-image-layout .vs-room-card{padding:18px;border-radius:20px;border:1px solid color-mix(in srgb,var(--zone-color) 72%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--zone-color) 10%,#110b18),#100a17);color:#ece8f1;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.vs-room-image-layout .vs-room-card:hover,.vs-room-image-layout .vs-room-card:focus-visible{transform:translateY(-2px);outline:none}
.vs-room-image-layout .vs-room-card.is-active{outline:none;border-color:#ffb000;box-shadow:0 0 0 2px rgba(255,176,0,.16),0 12px 30px rgba(17,4,28,.16)}
.vs-room-image-layout .vs-room-card.is-pick{border-color:#ffb000}
.vs-room-image-layout .vs-room-card strong{font-size:1.05rem;color:var(--zone-color)}
.vs-room-image-layout .vs-room-card span{margin-top:6px;color:#d8d2dd;font-size:.82rem;line-height:1.4}
.vs-room-image-layout .vs-room-detail{margin-top:14px;padding:19px;border-radius:20px;border:1px solid #e8e2ed;color:#21182a}
.vs-room-image-layout .vs-room-detail .tag{background:#f3e9ff;color:#5b22b7}
.vs-room-image-layout .vs-room-detail h3{font-size:1.35rem}
.vs-room-image-layout .vs-room-detail p{line-height:1.55}
.vs-room-image-layout .vs-room-detail .cta{width:100%;justify-content:center;text-align:center}

/* Precise-image highlight mode: the hit paths trace the approved artwork, so selected outlines can be visible. */
.vs-room-image-layout.vs-room-precise-highlight .vs-room-image-hit{fill-opacity:0;stroke:#ffb000;stroke-opacity:0;stroke-width:4;filter:none;transition:fill-opacity .16s ease,stroke-opacity .16s ease,filter .16s ease}
.vs-room-image-layout.vs-room-precise-highlight .vs-room-image-hit:hover{fill-opacity:.05;stroke-opacity:.58;filter:drop-shadow(0 0 5px rgba(255,176,0,.35))}
.vs-room-image-layout.vs-room-precise-highlight .vs-room-image-hit:focus{outline:none}
.vs-room-image-layout.vs-room-precise-highlight .vs-room-image-hit:focus-visible{stroke-opacity:1;filter:drop-shadow(0 0 7px rgba(255,176,0,.5))}
.vs-room-image-layout.vs-room-precise-highlight .vs-room-image-hit.is-active{fill-opacity:.08;stroke-opacity:1;stroke-width:5;filter:drop-shadow(0 0 7px rgba(255,176,0,.5))}
.vs-room-image-layout.vs-room-precise-highlight .vs-room-highlight-fill,.vs-room-image-layout.vs-room-precise-highlight .vs-room-highlight-fill:hover,.vs-room-image-layout.vs-room-precise-highlight .vs-room-highlight-fill:focus-visible,.vs-room-image-layout.vs-room-precise-highlight .vs-room-highlight-fill.is-active{stroke-opacity:0;stroke-width:0;outline:none}
.vs-room-image-layout.vs-room-precise-highlight .vs-room-highlight-fill:hover{fill-opacity:.12;filter:drop-shadow(0 0 5px rgba(255,176,0,.28))}
.vs-room-image-layout.vs-room-precise-highlight .vs-room-highlight-fill:focus-visible,.vs-room-image-layout.vs-room-precise-highlight .vs-room-highlight-fill.is-active{fill-opacity:.26;filter:drop-shadow(0 0 7px rgba(255,176,0,.42))}
.vs-room-image-layout.vs-room-precise-highlight .vs-room-cards{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Keep gallery navigation centered when a show page styles every lightbox button. */
.lightbox .vs-lb-nav{top:50%;right:auto;width:54px;height:54px;transform:translateY(-50%)}
.lightbox .vs-lb-prev{left:18px}
.lightbox .vs-lb-next{left:auto;right:18px}

/* Four-item galleries should remain a balanced 2x2 grid even on pages that still carry the older gallery-3 class. */
#photos .gallery.gallery-3:has(>button:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));height:560px}
#photos .gallery.gallery-3:has(>button:nth-child(4)) button:first-child{grid-row:auto}
#photos .gallery.gallery-3:has(>button:nth-child(4)) button{min-width:0;min-height:0}
#photos .gallery.gallery-3:has(>button:nth-child(4)) img{width:100%;height:100%;object-fit:cover}
#photos .gallery.gallery-3:has(>button:nth-child(4)) .vs-chart-gallery img{object-fit:contain!important}

@media(max-width:820px){.vs-room-guide{grid-template-columns:1fr}.vs-room-cards{grid-template-columns:repeat(2,1fr)}.vs-room-map{padding:0;border-radius:22px;overflow:hidden}.vs-room-detail{display:none}.vs-room-mobile{position:relative;display:none;margin:10px 0 4px;background:#f8f4fc;color:#24143b;border:1px solid #ded4ea;border-radius:14px;padding:12px 38px 12px 14px;box-shadow:none}.vs-room-mobile.is-open{display:block}.vs-room-mobile strong{font-size:.9rem}.vs-room-mobile p{margin:4px 0 0;font-size:.82rem;line-height:1.45;color:#665970}.vs-room-mobile button{position:absolute;right:8px;top:6px;border:0;background:transparent;color:#6d5b7d;font-size:1.35rem}.vs-room-image-hit:hover,.vs-room-image-hit.is-active{fill-opacity:0;stroke-opacity:0}.vs-room-image-layout.vs-room-precise-highlight .vs-room-image-hit:hover{fill-opacity:0;stroke-opacity:0}.vs-room-image-layout.vs-room-precise-highlight .vs-room-image-hit.is-active{fill-opacity:.08;stroke-opacity:1;stroke-width:4.5;filter:drop-shadow(0 0 6px rgba(255,176,0,.5))}.vs-room-image-layout .vs-room-guide{grid-template-columns:1fr}.vs-room-image-layout .vs-room-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vs-room-image-layout .vs-room-card{padding:15px}.vs-lb-nav{width:48px;height:48px}.vs-lb-prev{left:10px}.vs-lb-next{right:10px}#photos .gallery.gallery-3:has(>button:nth-child(4)){height:auto;grid-template-columns:1fr;grid-template-rows:auto}#photos .gallery.gallery-3:has(>button:nth-child(4)) img{aspect-ratio:4/3}#photos .gallery.gallery-3:has(>button:nth-child(4)) .vs-chart-gallery img{object-fit:contain!important;aspect-ratio:4/3}}
@media(max-width:820px){[data-mobile-popup="fixed"] .vs-room-mobile.is-open{position:fixed;z-index:1100;left:14px;right:14px;bottom:calc(78px + env(safe-area-inset-bottom));max-height:min(45dvh,280px);overflow:auto;margin:0;background:#170c27;color:#fff;border:1px solid #ffb000;box-shadow:0 14px 38px #0006}[data-mobile-popup="fixed"] .vs-room-mobile p{color:#eee}[data-mobile-popup="fixed"] .vs-room-mobile button{color:#fff}}
@media(max-width:820px){.lightbox .vs-lb-nav{width:48px;height:48px}.lightbox .vs-lb-prev{left:10px}.lightbox .vs-lb-next{right:10px}}
