.vr-photo-gallery { padding-block: clamp(2rem, 5vw, 4rem); }
.vr-gallery-intro { max-width: 52rem; margin: 0 auto 2.5rem; text-align: center; }
.vr-gallery-intro h1, .vr-gallery-collection > h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; color: var(--vr-wine); }
.vr-gallery-intro h1 { font-size: clamp(2.1rem, 4.6vw, 4rem); line-height: 1.12; text-wrap: balance; margin-block: .7rem 1.2rem; }
.vr-gallery-intro > p:last-child { max-width: 43rem; margin-inline: auto; }
.vr-gallery-eyebrow { color: #76283e; text-transform: uppercase; letter-spacing: .16em; font-size: .78rem; font-weight: 700; }
.vr-gallery-carousel { border: 1px solid #d9c8b6; border-radius: 1.2rem; overflow: hidden; background: #f0e8dd; }
.vr-gallery-stage { touch-action: pan-y pinch-zoom; }
.vr-gallery-slide { margin: 0; position: relative; animation: vr-gallery-reveal .45s ease-out; }
.vr-gallery-slide > a { display: flex; height: clamp(22rem, 47vw, 37rem); justify-content: center; background: #292521; }
.vr-gallery-slide img { width: 100%; height: 100%; object-fit: contain; user-select: none; }
.vr-gallery-slide figcaption { padding: .9rem 1.25rem; color: #382c27; font-weight: 600; text-align: center; }
.vr-gallery-controls, .vr-gallery-dots, .vr-lightbox-controls { display: flex; align-items: center; justify-content: center; gap: .65rem; flex-wrap: wrap; }
.vr-gallery-controls { padding: .2rem 1rem 1rem; }
.vr-photo-gallery button { min-width: 44px; min-height: 44px; border: 1px solid #76283e; border-radius: 999px; padding: .55rem .85rem; font: inherit; color: #76283e; background: #fffcf6; cursor: pointer; }
.vr-photo-gallery button:hover, .vr-gallery-dots [aria-current="true"], .vr-gallery-filters [aria-current="true"] { background: #76283e; color: #fff; }
.vr-photo-gallery :is(a, button, [tabindex]):focus-visible { outline: 3px solid #9b4b14; outline-offset: 4px; }
.vr-gallery-collection { margin-block: 3.5rem; }
.vr-gallery-collection > h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); text-align: center; }
.vr-gallery-filters { display: flex; gap: .65rem; flex-wrap: wrap; justify-content: center; margin-block: 1.4rem .8rem; }
.vr-gallery-filters a { padding: .6rem 1.1rem; border: 1px solid #bfa997; border-radius: 999px; color: #76283e; text-decoration: none; min-height: 44px; }
.vr-gallery-count { text-align: center; font-size: .88rem; color: #5b5048; }
.vr-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; align-items: start; }
.vr-gallery-grid figure { min-width: 0; margin: 0; background: #f0e8dd; border: 1px solid #ddcebe; border-radius: .9rem; overflow: hidden; }
.vr-gallery-grid a { display: flex; aspect-ratio: 3 / 4; align-items: center; background: #e8dfd2; }
.vr-gallery-grid img { width: 100%; height: 100%; object-fit: contain; transition: filter .2s; }
.vr-gallery-grid a:hover img { filter: brightness(1.04); }
.vr-gallery-grid figcaption { padding: 1rem; font-size: .95rem; font-weight: 600; }
.vr-photo-gallery [hidden] { display: none !important; }
.vr-gallery-dialog { width: min(72rem, calc(100vw - 2rem)); max-width: none; height: min(58rem, calc(100dvh - 2rem)); max-height: calc(100dvh - 2rem); padding: 1rem; border: 0; border-radius: .8rem; color: #fff9ee; background: #25211e; }
.vr-gallery-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto; gap: .6rem; }
.vr-gallery-dialog::backdrop { background: rgb(0 0 0 / 82%); }
.vr-lightbox-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.vr-lightbox-toolbar h2 { font-size: clamp(1.1rem, 2.5vw, 1.5rem); color: inherit; margin: 0; }
.vr-lightbox-toolbar button { flex-shrink: 0; }
.vr-lightbox-image { min-height: 0; display: flex; align-items: center; justify-content: center; }
.vr-lightbox-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.vr-gallery-dialog p { margin: 0; font-size: .85rem; text-align: center; }
.vr-gallery-modal-open { overflow: hidden; }
@keyframes vr-gallery-reveal { from { opacity: .4; transform: translateY(.3rem); } to { opacity: 1; transform: none; } }
@media (max-width: 63.99rem) { .vr-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 39.99rem) { .vr-gallery-grid { grid-template-columns: minmax(0, 1fr); } .vr-gallery-dialog { padding: .7rem; width: calc(100vw - 1rem); height: calc(100dvh - 1rem); max-height: calc(100dvh - 1rem); } .vr-lightbox-toolbar { align-items: start; } .vr-lightbox-controls { gap: .4rem; } .vr-photo-gallery .vr-lightbox-controls button { padding-inline: .65rem; } }
@media (prefers-reduced-motion: reduce) { .vr-gallery-slide { animation: none; } .vr-gallery-grid img { transition: none; } }
