
.gallery-hero{min-height:490px;display:flex;align-items:center;position:relative;background:linear-gradient(90deg,rgba(18,34,25,.66),rgba(18,34,25,.12)),url('../images/gallery-33.webp') center 52%/cover no-repeat;color:#fff}.gallery-hero-content{position:relative;padding-top:90px;padding-bottom:90px;max-width:1200px}.gallery-hero h1{font-family:'Playfair Display',serif;font-size:clamp(3rem,6vw,5.6rem);font-weight:400;line-height:1.06;max-width:720px;margin:18px 0}.gallery-hero h1 em{font-weight:400}.gallery-hero-content>p:not(.eyebrow){max-width:570px;font-size:1.08rem;line-height:1.8;margin-bottom:28px}.gallery-intro-inner{max-width:760px;text-align:center;margin:auto}.gallery-intro h2,.gallery-toolbar h2,.gallery-cta h2{font-family:'Playfair Display',serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:400;line-height:1.15;margin:12px 0 18px}.gallery-intro-inner>p:last-child{color:#667168;line-height:1.8}.gallery-toolbar{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:34px}.gallery-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.gallery-filter{border:1px solid #d9ded7;background:transparent;color:#35483b;border-radius:30px;padding:10px 16px;font:500 .86rem 'DM Sans',sans-serif;cursor:pointer;transition:.2s}.gallery-filter:hover,.gallery-filter.is-active{background:#263d30;color:#fff;border-color:#263d30}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:205px;gap:14px}.gallery-card{position:relative;border:0;padding:0;overflow:hidden;border-radius:5px;background:#e9e6dc;cursor:zoom-in;min-width:0}.gallery-card:nth-child(7n+1),.gallery-card:nth-child(7n+5){grid-row:span 2}.gallery-card:nth-child(7n+3){grid-column:span 2}.gallery-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}.gallery-card:hover img{transform:scale(1.045)}.gallery-card-overlay{position:absolute;inset:auto 0 0;padding:34px 16px 15px;display:flex;justify-content:space-between;align-items:end;text-align:left;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.62));font-size:.9rem;opacity:0;transition:opacity .25s}.gallery-card:hover .gallery-card-overlay,.gallery-card:focus-visible .gallery-card-overlay{opacity:1}.gallery-count{color:#7b847d;font-size:.85rem;margin-top:18px}.gallery-cta{background:linear-gradient(90deg,rgba(25,47,34,.82),rgba(25,47,34,.55)),url('../images/gallery-18.webp') center 55%/cover no-repeat;color:#fff;padding:90px 0}.gallery-cta-inner{max-width:760px}.gallery-cta p:not(.eyebrow){line-height:1.8}
/* Accessible, responsive gallery lightbox */
.gallery-card[hidden] { display: none !important; }
.gallery-card { display: block; width: 100%; }
.gallery-card:focus-visible { outline: 3px solid #b88b52; outline-offset: 3px; }
.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 64px 76px;
  background: rgba(10, 15, 12, .96);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
}
.gallery-lightbox[hidden] { display: none !important; }
.gallery-lightbox.is-open {
  display: flex !important;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.gallery-lightbox figure {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(1100px, 88vw);
  max-width: 88vw;
  max-height: 100%;
  margin: 0;
  text-align: center;
}
.gallery-lightbox figure img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100vh - 130px);
  object-fit: contain;
  margin: 0 auto;
}
.gallery-lightbox figcaption {
  flex: 0 0 auto;
  color: #fff;
  padding: 14px 10px 0;
  text-align: center;
}
.gallery-lightbox .lightbox-close,
.gallery-lightbox .lightbox-prev,
.gallery-lightbox .lightbox-next {
  z-index: 2;
  position: absolute;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  background: rgba(255,255,255,.13);
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}
.gallery-lightbox .lightbox-close { top: 18px; right: 20px; }
.gallery-lightbox .lightbox-prev,
.gallery-lightbox .lightbox-next { top: 50%; transform: translateY(-50%); }
.gallery-lightbox .lightbox-prev { left: 20px; }
.gallery-lightbox .lightbox-next { right: 20px; }
.gallery-lightbox button:focus-visible { outline: 3px solid #d7b987; outline-offset: 3px; }
body.lightbox-open { overflow: hidden !important; }
@media (max-width: 600px) {
  .gallery-lightbox { padding: 60px 12px 30px; }
  .gallery-lightbox figure { width: 96vw; max-width: 96vw; }
  .gallery-lightbox figure img { max-width: 96vw; max-height: calc(100vh - 120px); }
  .gallery-lightbox .lightbox-close { top: 12px; right: 12px; width: 42px; height: 42px; }
  .gallery-lightbox .lightbox-prev { left: 8px; }
  .gallery-lightbox .lightbox-next { right: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-lightbox { transition: none; }
}

/* Gallery grid breakpoints */
@media (max-width: 900px) {
  .gallery-toolbar { display: block; }
  .gallery-filters { justify-content: flex-start; margin-top: 20px; }
  .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 180px; }
}
@media (max-width: 600px) {
  .gallery-hero { min-height: 420px; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 145px; gap: 9px; }
  .gallery-card:nth-child(7n+1), .gallery-card:nth-child(7n+5) { grid-row: span 1; }
  .gallery-card:nth-child(7n+3) { grid-column: span 1; }
  .gallery-card-overlay { opacity: 1; padding: 28px 10px 10px; font-size: .75rem; }
  .gallery-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 8px; }
  .gallery-filter { white-space: nowrap; }
}
