.gallery { background: #15140f; color: var(--cream); padding: 120px 0; }

.gallery__header { margin-bottom: 56px; }
.gallery .section-header__eyebrow { color: var(--gold); }
.gallery .section-header__headline { color: #ffffff; }
.gallery .section-header__headline-accent { color: var(--gold); }
.gallery .section-header__copy { color: var(--cream-dim); }

.gallery__headline-row { display: inline-flex; align-items: center; gap: 12px; }
.gallery__dots { display: inline-flex; align-items: center; gap: 5px; }
.gallery__dots span { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); display: block; }

.gallery-mosaic {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(2, 240px);
	gap: 16px;
}
.gallery-cell {
	position: relative;
	overflow: hidden;
	display: block;
	text-align: left;
}
.gallery-cell--large { grid-row: span 2; grid-column: span 2; }
.gallery-cell img,
.gallery-cell__placeholder { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.gallery-cell__placeholder { background: linear-gradient(160deg, var(--dark-card), #1a1a18); }
.gallery-cell:hover img { transform: scale(1.05); }
.gallery-cell::after {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(0deg, rgba(0,0,0,0.65), transparent 50%);
}
.gallery-cell__label {
	position: absolute;
	left: 20px; bottom: 16px;
	z-index: 1;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: rgba(245, 241, 235, 0.85);
}

.gallery__view-all-wrap { display: flex; justify-content: center; margin-top: 40px; }

@media (max-width: 900px) {
	.gallery-mosaic { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(3, 200px); }
	.gallery-cell--large { grid-column: span 2; grid-row: span 1; }
}
@media (max-width: 480px) {
	.gallery-mosaic { grid-template-columns: 1fr; grid-template-rows: none; }
	.gallery-cell--large { grid-column: span 1; }
	.gallery-cell { height: 220px; }
}
@media (max-width: 640px) {
	.gallery { padding: 40px 0; }

	.gallery-mosaic {
		display: flex;
		grid-template-columns: none;
		grid-template-rows: none;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 16px;
		padding-bottom: 8px;
		scrollbar-width: none;
	}
	.gallery-mosaic::-webkit-scrollbar { display: none; }
	.gallery-cell, .gallery-cell--large {
		flex: 0 0 85%;
		scroll-snap-align: start;
		height: 280px;
	}
}
