.glass-gallery { padding:0 0 var(--section-space); }
.gallery-intro { position:relative; isolation:isolate; padding:clamp(64px,8vw,120px) var(--gutter) 120px; text-align:center; color:var(--white); }
.gallery-intro::before {
  content:"";
  position:absolute;
  inset:0 0 -120px;
  z-index:-1;
  background:linear-gradient(rgba(12,20,15,.62),rgba(12,20,15,.55)),url("assets/gallery/gallery-showroom.jpg") center 54% / cover no-repeat;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 55%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 55%,transparent 100%);
}
.gallery-intro .eyebrow { color:#f0c77f; }
.gallery-intro h1 { font-family:Georgia,serif; font-size:clamp(2.6rem,6vw,5rem); line-height:1.05; margin:16px 0 24px; font-weight:500; }
.gallery-intro>p:not(.eyebrow) { color:#fff; font-size:1.1rem; line-height:1.7; max-width:760px; margin-left:auto; margin-right:auto; text-shadow:0 1px 8px #172018; }
.gallery-intro>a { display:inline-block; margin-top:12px; color:#fff; text-underline-offset:5px; text-shadow:0 1px 8px #172018; }
.gallery-shop-cta { display:flex; justify-content:center; margin-top:22px; }
.gallery-shop-cta .btn { min-width:190px; }
.gallery-visit { margin:24px auto 0; max-width:760px; color:#fff; font-size:1rem; text-shadow:0 1px 8px #172018; }
.gallery-visit p { margin:8px 0; }
.gallery-visit a { text-decoration:underline; text-underline-offset:4px; }
.gallery-grid { position:relative; max-width:var(--content-width); margin:0 auto; padding:0 var(--gutter); columns:3; column-gap:24px; }
.gallery-item { margin:0 0 30px; break-inside:avoid; }
.gallery-photo { position:relative; display:block; width:100%; padding:0; border:0; border-radius:16px; overflow:hidden; background:#e5e8df; cursor:zoom-in; }
.gallery-photo img { display:block; width:100%; height:auto; }
.gallery-photo span { position:absolute; bottom:14px; right:14px; background:#fff; color:#18231a; padding:9px 13px; border-radius:30px; font-size:.75rem; font-weight:700; }
.gallery-item figcaption { padding:16px 4px 0; }
.gallery-item h2 { font-size:1rem; margin:0 0 7px; }
.gallery-item figcaption a { color:#5b6759; font-size:.8rem; text-underline-offset:3px; }
.gallery-bottom { max-width:var(--content-width); margin:45px auto 0; padding:40px var(--gutter) 0; border-top:1px solid #d8ddcf; text-align:center; }
.gallery-bottom p { font-family:Georgia,serif; font-size:1.7rem; }
.gallery-viewer { width:min(1100px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:18px; border:0; border-radius:18px; background:#151b16; color:#fff; overflow:auto; }
.gallery-viewer::backdrop { background:#09100bea; }
.gallery-full-image { display:block; width:100%; height:calc(100dvh - 180px); min-height:160px; object-fit:contain; }
.gallery-close { position:absolute; right:16px; top:16px; width:44px; height:44px; border:0; border-radius:50%; background:#fff; color:#151b16; font-size:28px; cursor:pointer; }
.gallery-viewer-footer { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 6px 0; text-align:center; }
.gallery-caption { margin:0 0 6px; font-weight:700; }
.gallery-source { color:#c4d6bf; font-size:.85rem; }
.gallery-prev,.gallery-next { flex-shrink:0; border:1px solid #65715f; background:none; color:#fff; width:44px; height:44px; border-radius:50%; font-size:22px; cursor:pointer; }
.gallery-photo:focus-visible,.gallery-viewer button:focus-visible { outline:3px solid #a8c58a; outline-offset:4px; }
@media(max-width:900px) { .gallery-grid { columns:2; } }
@media(max-width:550px) { .gallery-grid { columns:1; padding:0 18px; } .gallery-intro { padding:64px 18px 100px; } .gallery-viewer { padding:10px; } .gallery-caption { font-size:.85rem; } }

.gallery-empty { column-span:all; padding:48px 24px; text-align:center; color:#626a5e; }

.gallery-phone { display:inline-flex; align-items:center; gap:6px; vertical-align:middle; }
.gallery-phone svg { flex-shrink:0; }
