/* ==========================================================================
   Gallery page: filter chips, masonry-style grid and lightbox
   ========================================================================== */

/* ---------- Filter chips ---------- */
.page-gallery .gallery-filters {
  display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2);
  margin-bottom: var(--space-6);
}
.page-gallery .gallery-filters[hidden] { display: none; }
.page-gallery .gallery-chip {
  padding: 0.55em 1.2em;
  border: 2px solid var(--green-100); border-radius: var(--radius-pill);
  background: var(--white); color: var(--green-800);
  font: inherit; font-weight: 800; font-size: var(--fs-sm);
  cursor: pointer;
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.page-gallery .gallery-chip:hover { border-color: var(--green-600); }
.page-gallery .gallery-chip[aria-pressed="true"] {
  background: var(--green-700); border-color: var(--green-700); color: var(--white);
}
.page-gallery .gallery-chip:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }

/* ---------- Masonry-style grid (CSS columns) ---------- */
.page-gallery .gallery-grid { columns: 2; column-gap: var(--space-3); }
@media (min-width: 560px) { .page-gallery .gallery-grid { column-gap: var(--space-5); } }
@media (min-width: 960px) { .page-gallery .gallery-grid { columns: 3; } }

.page-gallery .gallery-item {
  break-inside: avoid;
  margin: 0 0 var(--space-5);
  display: flex; flex-direction: column; gap: var(--space-2);
}
.page-gallery .gallery-item[hidden] { display: none; }
.page-gallery .gallery-item figcaption {
  padding-inline: var(--space-1);
  font-size: var(--fs-sm); font-weight: 700; color: var(--ink-700);
}
.page-gallery .gallery-item--placeholder figcaption { color: var(--color-muted); font-weight: 600; }

.page-gallery .gallery-item__link {
  position: relative; display: block; overflow: hidden;
  border-radius: var(--radius-lg); box-shadow: var(--shadow);
  background: var(--cream-200);
}
.page-gallery .gallery-item__link img {
  display: block; width: 100%; height: auto;
  transition: transform 0.5s var(--ease);
}
.page-gallery .gallery-item__link::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgb(6 51 31 / 0.35), transparent 45%);
  opacity: 0; transition: opacity var(--dur) var(--ease);
}
.page-gallery .gallery-item__link:hover img,
.page-gallery .gallery-item__link:focus-visible img { transform: scale(1.04); }
.page-gallery .gallery-item__link:hover::after,
.page-gallery .gallery-item__link:focus-visible::after { opacity: 1; }
.page-gallery .gallery-item__link:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }

.page-gallery .gallery-item .placeholder { min-height: 140px; }
.page-gallery .gallery-item .placeholder--tall { min-height: 220px; }
@media (max-width: 559px) {
  .page-gallery .gallery-item { margin-bottom: var(--space-4); }
  .page-gallery .gallery-item .placeholder { padding: var(--space-3); font-size: var(--fs-sm); }
  .page-gallery .gallery-item figcaption { font-size: var(--fs-xs); }
}
@media (min-width: 560px) {
  .page-gallery .gallery-item .placeholder { min-height: 200px; }
  .page-gallery .gallery-item .placeholder--tall { min-height: 320px; }
}

.page-gallery .gallery-grid[hidden] { display: none; }
.page-gallery .gallery-item__link picture { display: block; }

/* ---------- Videos (click-to-play YouTube cards, outside the photo lightbox) ---------- */
.page-gallery .gallery-videos { margin-top: var(--space-6); }
.page-gallery .gallery-videos[hidden] { display: none; }
.page-gallery .gallery-videos__title {
  display: flex; align-items: center; gap: var(--space-3);
  margin-bottom: var(--space-5); font-size: var(--fs-xl);
}
.page-gallery .gallery-videos__title::after { content: ""; flex: 1; height: 2px; background: var(--green-100); }
.page-gallery .gallery-videos__grid {
  display: grid; gap: var(--space-5);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
}
.page-gallery .gallery-item--video { margin: 0; display: block; }
.page-gallery .gallery-item--video .video__caption { font-size: var(--fs-sm); }

.page-gallery .gallery-empty {
  text-align: center; color: var(--color-muted); font-weight: 700;
  padding: var(--space-6) 0;
}

/* ---------- Facebook call-out ---------- */
.page-gallery .gallery-social {
  display: grid; gap: var(--space-4); align-items: center; justify-items: start;
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  background: var(--green-50); border: 2px solid var(--green-100);
}
.page-gallery .gallery-social h2 { font-size: var(--fs-xl); margin-bottom: var(--space-1); }
.page-gallery .gallery-social p { margin: 0; color: var(--ink-700); }
.page-gallery .gallery-social__icon {
  display: grid; place-items: center; width: 56px; height: 56px;
  border-radius: 50%; background: var(--green-700); color: var(--white);
}
.page-gallery .gallery-social__icon .icon { width: 26px; height: 26px; }
@media (min-width: 768px) {
  .page-gallery .gallery-social { grid-template-columns: auto 1fr auto; gap: var(--space-5); }
}

/* ---------- Lightbox (native <dialog>) ---------- */
.page-gallery .lightbox {
  width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh;
  margin: 0; padding: 0; border: 0;
  background: rgb(6 51 31 / 0.96); color: var(--white);
  overscroll-behavior: contain;
  --color-focus: var(--color-focus-dark);
  --color-focus-halo: transparent;
}
.page-gallery .lightbox::backdrop { background: rgb(6 51 31 / 0.6); }
.page-gallery .lightbox[open] { display: grid; grid-template-rows: auto 1fr auto; animation: gallery-fade var(--dur) var(--ease); }

.page-gallery .lightbox__bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--space-3) var(--space-4);
}
.page-gallery .lightbox__counter { font-weight: 800; font-size: var(--fs-sm); color: var(--gold-400); }

.page-gallery .lightbox__stage {
  position: relative; display: grid; place-items: center; min-height: 0;
  padding: 0 var(--space-4); touch-action: pan-y;
}
.page-gallery .lightbox__img {
  max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain;
  border-radius: var(--radius); box-shadow: var(--shadow-lg);
}
.page-gallery .lightbox__caption {
  margin: 0; padding: var(--space-3) var(--space-4) var(--space-5);
  text-align: center; font-weight: 700; color: var(--green-50);
}

.page-gallery .lightbox__btn {
  display: grid; place-items: center; width: 48px; height: 48px;
  border: 2px solid rgb(255 255 255 / 0.4); border-radius: 50%;
  background: rgb(6 51 31 / 0.6); color: var(--white);
  cursor: pointer;
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.page-gallery .lightbox__btn:hover { background: var(--green-600); border-color: var(--white); }
.page-gallery .lightbox__btn:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.page-gallery .lightbox__btn svg { width: 22px; height: 22px; }
.page-gallery .lightbox__btn--prev,
.page-gallery .lightbox__btn--next { position: absolute; top: 50%; transform: translateY(-50%); }
.page-gallery .lightbox__btn--prev { left: var(--space-3); }
.page-gallery .lightbox__btn--next { right: var(--space-3); }
.page-gallery .lightbox__btn--prev svg { transform: rotate(180deg); }
.page-gallery .lightbox__btn[hidden] { display: none; }

@media (min-width: 768px) {
  .page-gallery .lightbox__stage { padding: 0 calc(48px + var(--space-6)); }
  .page-gallery .lightbox__btn--prev { left: var(--space-5); }
  .page-gallery .lightbox__btn--next { right: var(--space-5); }
}

body.page-gallery.lightbox-open { overflow: hidden; }

@keyframes gallery-fade { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  .page-gallery .gallery-item__link img,
  .page-gallery .gallery-chip,
  .page-gallery .lightbox__btn { transition: none; }
  .page-gallery .gallery-item__link:hover img,
  .page-gallery .gallery-item__link:focus-visible img { transform: none; }
  .page-gallery .lightbox[open] { animation: none; }
}
