.gallery-section { padding: 0 0 clamp(4rem, 9vw, 8rem); }
.filter-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-bottom: clamp(2rem, 5vw, 4rem);
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--surface-border);
}
.filter-btn {
	min-height: 2.7rem;
	padding: .5rem 1rem;
	border: 1px solid transparent;
	border-radius: 0;
	color: var(--muted);
	background: transparent;
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.filter-btn:hover, .filter-btn:focus-visible { border-color: var(--gold); color: var(--rose-700); }
.filter-btn.is-active { border-color: var(--rose-600); color: #fff; background: var(--rose-600); }
.editorial-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1.2rem, 3vw, 2.4rem); align-items: start; }
.memory-item { grid-column: span 4; transition: opacity .25s ease, transform .25s ease; }
.memory-item:nth-child(6n + 1), .memory-item:nth-child(6n + 4) { grid-column: span 7; }
.memory-item:nth-child(6n + 2), .memory-item:nth-child(6n + 5) { grid-column: span 5; padding-top: clamp(2rem, 6vw, 6rem); }
.memory-item.is-hidden { opacity: 0; transform: scale(.97); pointer-events: none; }
.memory-card {
	width: 100%;
	min-height: 2.75rem;
	padding: 0;
	border: 0;
	color: inherit;
	background: transparent;
	text-align: left;
}
.memory-image-wrap { position: relative; display: block; overflow: hidden; background: var(--sand); }
.memory-thumb { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .65s ease, filter .35s ease; }
.memory-item:nth-child(6n + 1) .memory-thumb, .memory-item:nth-child(6n + 4) .memory-thumb { aspect-ratio: 7 / 5; }
.memory-card:hover .memory-thumb { transform: scale(1.025); filter: saturate(1.05); }
.memory-open {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	display: grid;
	place-items: center;
	width: 2.8rem;
	height: 2.8rem;
	border: 1px solid color-mix(in srgb, white 55%, transparent);
	border-radius: 50%;
	color: var(--rose-700);
	background: var(--pearl);
	opacity: 0;
	transform: translateY(.5rem);
	transition: opacity .25s ease, transform .25s ease;
}
.memory-card:hover .memory-open, .memory-card:focus-visible .memory-open { opacity: 1; transform: none; }
.memory-meta { display: flex; justify-content: space-between; gap: 1rem; align-items: end; padding: 1rem 0 0; }
.memory-meta > span { display: flex; min-width: 0; flex-direction: column; }
.memory-meta small { color: var(--rose-600); font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.memory-meta strong { overflow: hidden; font-family: 'Cormorant Garamond', serif; font-size: 1.55rem; font-weight: 600; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.memory-meta time { flex: 0 0 auto; color: var(--muted); font-size: .72rem; }
.gallery-empty { grid-column: 1 / -1; padding: 5rem 1rem; border: 1px solid var(--surface-border); text-align: center; }
.gallery-empty i { color: var(--gold); font-size: 2.5rem; }
.gallery-empty h2 { margin: 1rem 0 .3rem; font-family: 'Cormorant Garamond', serif; font-size: 2rem; }
.gallery-empty p { margin: 0; color: var(--muted); }
.memory-modal-content { border: 1px solid var(--surface-border); border-radius: 0; background: var(--surface-solid); box-shadow: var(--shadow-soft); overflow: hidden; }
.memory-modal-content .modal-header { align-items: center; padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--surface-border); }
.modal-eyebrow { display: block; margin-bottom: .1rem; }
.memory-modal-content .modal-title { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 600; }
.memory-modal-content .modal-body { padding: 1rem; }
.modal-memory-visual { width: 100%; max-height: 67vh; min-height: 18rem; object-fit: contain; background: var(--sand); }
.memory-modal-caption { display: flex; justify-content: space-between; gap: 2rem; padding: 1rem .5rem 0; }
.memory-modal-caption h3 { margin: 0 0 .25rem; font-family: 'Cormorant Garamond', serif; font-size: 1.65rem; }
.memory-modal-caption p { margin: 0; color: var(--muted); }
.memory-position { flex: 0 0 auto; color: var(--rose-700) !important; font-size: .75rem; font-weight: 700; letter-spacing: .12em; }
.memory-modal-content .modal-footer { justify-content: space-between; padding: .75rem 1.5rem 1.25rem; border-top: 0; }
@media (max-width: 767.98px) {
	.editorial-gallery { gap: 1.5rem 1rem; }
	.memory-item, .memory-item:nth-child(6n + 1), .memory-item:nth-child(6n + 2), .memory-item:nth-child(6n + 4), .memory-item:nth-child(6n + 5) { grid-column: span 6; padding-top: 0; }
	.memory-item:nth-child(3n + 1) { grid-column: 1 / -1; }
	.memory-item:nth-child(3n + 1) .memory-thumb { aspect-ratio: 4 / 3; }
}
@media (max-width: 575.98px) {
	.filter-wrap { flex-wrap: nowrap; overflow-x: auto; margin-right: -1.15rem; margin-left: -1.15rem; padding: 0 1.15rem .75rem; scrollbar-width: none; }
	.filter-wrap::-webkit-scrollbar { display: none; }
	.filter-btn { flex: 0 0 auto; }
	.editorial-gallery { grid-template-columns: 1fr; gap: 2rem; }
	.memory-item, .memory-item:nth-child(6n + 1), .memory-item:nth-child(6n + 2), .memory-item:nth-child(6n + 4), .memory-item:nth-child(6n + 5), .memory-item:nth-child(3n + 1) { grid-column: 1; }
	.memory-thumb, .memory-item:nth-child(6n + 1) .memory-thumb, .memory-item:nth-child(6n + 4) .memory-thumb, .memory-item:nth-child(3n + 1) .memory-thumb { aspect-ratio: 4 / 5; }
	.memory-open { opacity: 1; transform: none; }
	.modal-memory-visual { min-height: 12rem; }
	.memory-modal-caption { display: block; }
	.memory-position { margin-top: .75rem !important; }
}
