/* Gallery page: masonry layout, captions, closing CTA. Loaded after style.css. */
.gallery-grid { display: block; columns: 2; column-gap: .75rem; }
@media (min-width: 640px) { .gallery-grid { columns: 3; column-gap: 1rem; } }
@media (min-width: 960px) { .gallery-grid { columns: 4; } }
.gallery-grid .gallery-item {
  display: block; width: auto; aspect-ratio: auto; margin-bottom: .75rem;
  break-inside: avoid; color: var(--star); text-decoration: none;
  transition: border-color .2s, transform .2s var(--ease);
}
@media (min-width: 640px) { .gallery-grid .gallery-item { margin-bottom: 1rem; } }
.gallery-grid .gallery-item[hidden] { display: none; }
.gallery-grid .gallery-item img { height: auto; }
.gallery-item:hover { border-color: var(--line-strong); transform: translateY(-2px); }
.gallery-item__cap { display: grid; gap: .125rem; padding: .625rem .75rem .75rem; font-size: var(--fs-300); line-height: 1.4; }
.gallery-item__title { font-weight: 600; }
.gallery-item__city { color: var(--muted); }
.gallery-cta { display: grid; gap: 1.5rem; justify-items: start; padding: clamp(1.5rem, 1rem + 2.5vw, 3rem); }
@media (min-width: 760px) { .gallery-cta { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2.5rem; } }
@media (prefers-reduced-motion: reduce) { .gallery-grid .gallery-item { transition: none; } .gallery-item:hover { transform: none; } }
