/* Event albums on /gallery. Built from data/gallery.json by scripts/build_gallery.py. */
.hec-albums-wrap { width: 100%; padding-top: 72px; }
.hec-albums-sub { text-align: center; }
.hec-albums { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; }
.hec-album { display: block; color: var(--hec-purple); text-decoration: none; }
.hec-album-cover { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; background: var(--beige); box-shadow: 0 2px 10px rgba(55, 44, 61, .08); }
.hec-album-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.hec-album:hover .hec-album-cover img { transform: scale(1.04); }
.hec-album:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; border-radius: 10px; }
.hec-album-count { position: absolute; right: 12px; bottom: 12px; padding: 4px 10px; border-radius: 20px; background: rgba(55, 44, 61, .82); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .5px; }
.hec-album-title { display: block; margin-top: 12px; font-family: Montserrat, sans-serif; font-size: 17px; font-weight: 600; line-height: 22px; }

.hec-albums-more { margin-top: 40px; text-align: center; }

.hec-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; flex-direction: column; background: rgba(20, 16, 23, .96); color: #fff; }
.hec-lightbox[hidden] { display: none; }
.hec-lb-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; font-family: Montserrat, sans-serif; }
.hec-lb-title { font-size: 16px; font-weight: 600; }
.hec-lb-count { margin-left: 10px; font-size: 13px; font-weight: 400; opacity: .7; }
.hec-lb-stage { position: relative; flex: 1; display: flex; align-items: center; justify-content: center; min-height: 0; padding: 0 72px 24px; }
.hec-lb-stage img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 4px; user-select: none; }
.hec-lb-btn { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; transition: background .2s; }
.hec-lb-btn:hover { background: var(--orange); }
.hec-lb-btn:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.hec-lb-prev, .hec-lb-next { position: absolute; top: 50%; margin-top: -36px; }
.hec-lb-prev { left: 16px; }
.hec-lb-next { right: 16px; }

@media screen and (max-width: 991px) {
  .hec-albums { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 479px) {
  .hec-albums { grid-template-columns: 1fr; }
  .hec-lb-stage { padding: 0 8px 16px; }
  .hec-lb-prev, .hec-lb-next { display: none; }
}
