.gallery-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem 2rem;
  border-bottom: var(--border-rule);
  padding-bottom: 1rem;
  margin-bottom: 2rem;
}
.gallery-section-heading h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2rem); }
.gallery-section-heading p { margin: 0; color: var(--color-text-muted); }
.gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 1.5rem; }
.gallery-item { margin: 0; min-width: 0; }
.gallery-photo { display: block; position: relative; background: var(--color-bg-dark); }
.gallery-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: contain; }
.gallery-photo:hover { outline: 3px solid var(--color-primary); }
.gallery-photo:active { opacity: 0.85; }
.gallery-photo:focus-visible, .gallery-item video:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 5px; }
.gallery-expand { position: absolute; bottom: 0.75rem; right: 0.75rem; display: grid; place-items: center; width: 44px; height: 44px; background: var(--color-bg); color: var(--color-text); border: 2px solid var(--color-text); font-size: 1.5rem; }
.gallery-item figcaption { padding-top: 0.75rem; font-weight: 700; }
.gallery-videos { background: var(--color-surface-field); }
.gallery-videos .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 720px; margin-inline: auto; }
/* Keep the existing lightbox's controls inside every viewport, including mobile. */
.yg-lightbox .yg-lightbox-inner { width: 100%; height: 100%; max-width: none; max-height: none; }
.yg-lightbox .yg-lightbox-img { max-width: calc(100vw - 2rem); max-height: calc(100dvh - 12rem); }
.yg-lightbox .yg-lightbox-btn { position: fixed; width: 48px; height: 48px; padding: 0; background: #3e3124; border: 2px solid #dcd2c6; color: #fff; }
.yg-lightbox .yg-lightbox-close { top: 1rem; right: 1rem; }
.yg-lightbox .yg-lightbox-prev { left: 1rem; top: 50%; }
.yg-lightbox .yg-lightbox-next { right: 1rem; top: 50%; }
.yg-lightbox .yg-lightbox-caption { position: fixed; bottom: 1rem; left: 1rem; right: 1rem; margin: 0; color: #fff; }
.yg-lightbox .yg-lightbox-btn:hover { background: #9c2a1c; }
.yg-lightbox .yg-lightbox-btn:active { background: #6e1e14; }
.yg-lightbox .yg-lightbox-btn:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
@media (max-width: 800px) { .gallery-videos .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) {
  .gallery-grid, .gallery-videos .gallery-grid { grid-template-columns: minmax(0, 1fr); }
}
