/* Photo gallery: grid or mosaic. The mosaic pattern fills a 4x3 raster completely with six photos. */
.lmn-gallery { --lmn-gallery-gap: 0.75rem; }
.lmn-gallery__heading { text-align: center; margin-bottom: var(--lmn-gap); }
.lmn-gallery__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--lmn-gallery-gap); grid-template-columns: repeat(2, 1fr); }
.lmn-gallery__item { margin: 0; border-radius: var(--lmn-radius-sm); overflow: hidden; background: var(--lmn-cream-deep); aspect-ratio: 1; }
.lmn-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s var(--lmn-ease); }
.lmn-gallery__item:hover img { transform: scale(1.03); }
.lmn-gallery__actions { display: flex; justify-content: center; margin-top: var(--lmn-gap); }
@media (min-width: 640px) {
	.lmn-gallery { --lmn-gallery-gap: 1rem; }
	.lmn-gallery__grid { grid-template-columns: repeat(3, 1fr); }
	/* Mosaic: 4 columns; the grid's aspect ratio (4 : rows) makes every row as high as a column is wide, so spans line up. */
	.lmn-gallery--mosaic .lmn-gallery__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(0, 1fr); grid-auto-flow: dense; aspect-ratio: 4 / 3; }
	.lmn-gallery--mosaic .lmn-gallery__grid--rows-6 { aspect-ratio: 4 / 6; }
	.lmn-gallery--mosaic .lmn-gallery__grid--rows-9 { aspect-ratio: 4 / 9; }
	.lmn-gallery--mosaic .lmn-gallery__grid--rows-12 { aspect-ratio: 4 / 12; }
	.lmn-gallery--mosaic .lmn-gallery__item { aspect-ratio: auto; min-height: 0; }
	.lmn-gallery--mosaic .lmn-gallery__item:nth-child(6n + 1) { grid-column: span 2; grid-row: span 2; }
	.lmn-gallery--mosaic .lmn-gallery__item:nth-child(6n + 4), .lmn-gallery--mosaic .lmn-gallery__item:nth-child(6n + 5), .lmn-gallery--mosaic .lmn-gallery__item:nth-child(6n + 6) { grid-column: span 2; }
}
@media (min-width: 1000px) { .lmn-gallery { --lmn-gallery-gap: 1.25rem; } .lmn-gallery--grid .lmn-gallery__grid { grid-template-columns: repeat(3, 1fr); } }
