@charset "UTF-8";

.homepage-gallery {
	max-width: var(--wp--style--global--content-size, 1280px);
	margin: 0 auto;
}

/* ---- Intro ---- */

.homepage-gallery__intro {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
}

.homepage-gallery__label {
	width: 100%;
	margin: 0 0 8px;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--primary);
}

.homepage-gallery__heading {
	margin: 0;
	font-size: clamp(1.8rem, 1.3rem + 2vw, 2.6rem);
	max-width: 640px;
}

.homepage-gallery__text {
	margin: 10px 0 0;
	max-width: 520px;
	color: var(--wp--preset--color--text);
	opacity: 0.85;
}

.homepage-gallery__link {
	flex-shrink: 0;
	font-weight: 600;
	text-decoration: none;
	color: var(--wp--preset--color--primary);
	white-space: nowrap;
	padding-bottom: 2px;
	border-bottom: 2px solid transparent;
	transition: border-color 0.25s ease, gap 0.25s ease;
}

.homepage-gallery__link:hover {
	border-color: var(--wp--preset--color--primary);
}

.homepage-gallery__link span {
	display: inline-block;
	transition: transform 0.25s ease;
}

.homepage-gallery__link:hover span {
	transform: translateX(4px);
}

/* ---- Shared photo item styling ---- */

.homepage-gallery__photos .media-gallery-item {
	position: relative;
	display: block;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
}

.homepage-gallery__photos .media-gallery-item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.homepage-gallery__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(4, 24, 15, 0.28);
	opacity: 0;
	transition: opacity 0.25s ease;
}

.homepage-gallery__icon {
	color: #ffffff;
	font-size: 1.6rem;
	transform: scale(0.85);
	transition: transform 0.25s ease;
}

.homepage-gallery__photos .media-gallery-item:hover img {
	transform: scale(1.05);
}

.homepage-gallery__photos .media-gallery-item:hover .homepage-gallery__overlay {
	opacity: 1;
}

.homepage-gallery__photos .media-gallery-item:hover .homepage-gallery__icon {
	transform: scale(1);
}

/* ---- Featured image ---- */

.homepage-gallery__featured {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 6.5;
	margin-bottom: 16px;
}

/* ---- Masonry grid ---- */

.homepage-gallery-grid {
	column-count: 4;
	column-gap: 16px;
}

.homepage-gallery-grid .media-gallery-item {
	margin: 0 0 16px;
	break-inside: avoid;
}

.homepage-gallery-grid .media-gallery-item:nth-child(3n+1) img {
	aspect-ratio: 3 / 4;
}

.homepage-gallery-grid .media-gallery-item:nth-child(3n+2) img {
	aspect-ratio: 1 / 1;
}

.homepage-gallery-grid .media-gallery-item:nth-child(3n) img {
	aspect-ratio: 4 / 5;
}

@media (max-width: 1024px) {
	.homepage-gallery-grid {
		column-count: 3;
	}

	.homepage-gallery__featured {
		aspect-ratio: 16 / 8;
	}
}

@media (max-width: 700px) {
	.homepage-gallery-grid {
		column-count: 2;
	}

	.homepage-gallery__featured {
		aspect-ratio: 4 / 3;
	}

	.homepage-gallery__intro {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ---- Fade-in on scroll ---- */

.homepage-gallery__photos .media-gallery-item {
	opacity: 0;
	transform: translateY(16px);
	animation: homepage-gallery-fade-in 0.6s ease forwards;
	animation-play-state: paused;
}

.homepage-gallery__photos .media-gallery-item.is-visible {
	animation-play-state: running;
}

@keyframes homepage-gallery-fade-in {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.homepage-gallery__photos .media-gallery-item {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ---- CTA ---- */

.homepage-gallery-cta {
	margin-top: var(--wp--preset--spacing--60);
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	text-align: center;
	background: var(--wp--preset--color--background-alt);
	border-radius: 20px;
}

.homepage-gallery-cta h3 {
	margin: 0 0 12px;
	font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem);
}

.homepage-gallery-cta p {
	max-width: 520px;
	margin: 0 auto;
	color: var(--wp--preset--color--text);
	opacity: 0.85;
}
