/* Gallery: fixed-height cards, media never cropped (object-fit: contain) */
/* Every card has the same height; width follows the media's own aspect ratio,
   so nothing is cropped and there is no empty space inside a card. */
.gal-card {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: 12px;
  overflow: hidden;
  cursor: zoom-in;
  background: #e2e8f0;
}
.gal-card img,
.gal-card video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gal-card .gal-play {
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(0, 62, 117, .85);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  pointer-events: none;
}

/* Homepage marquee: one row, ~4 cards visible on desktop */
.gal-marquee {
  --gal-gap: 20px;
  overflow: hidden;
}
.gal-grid-flex { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 991px) { .gal-grid-flex { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .gal-grid-flex { grid-template-columns: 1fr; } }
.gal-track {
  display: flex;
  width: max-content;
  animation: gal-scroll var(--gal-dur, 40s) linear infinite;
}
.gal-marquee:hover .gal-track { animation-play-state: paused; }
.gal-track .gal-card { margin-right: var(--gal-gap); }
@keyframes gal-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .gal-marquee { overflow-x: auto; }
  .gal-track { animation: none; }
}

/* Lightbox video */
.gal-lightbox-video { max-width: 900px; margin: 0 auto; }
.gal-lightbox-video video { width: 100%; max-height: 85vh; background: #000; }
