/*
 * Occasion landing composition.
 * Shared component styling lives in components.css; this file owns only the
 * route-specific hero and product rhythm.
 */

.oc-occasion {
	background: var(--pg-bone);
}

.oc-occasion-hero {
	min-height: min(760px, calc(100svh - var(--topbar-height) - var(--nav-height)));
	display: grid;
	grid-template-columns: .82fr 1.18fr;
	background: #06141f;
	color: var(--pg-bone);
}

.oc-occasion-hero__copy {
	align-self: center;
	padding: clamp(72px, 9vw, 145px) clamp(40px, 7vw, 120px);
}

.oc-occasion-hero h1 {
	max-width: 700px;
	margin: 0;
	color: var(--pg-bone);
	font-size: clamp(4rem, 6.1vw, 7rem);
	font-weight: 390;
	line-height: .86;
	letter-spacing: -.065em;
	text-wrap: balance;
}

.oc-occasion-hero h1 em {
	color: var(--pg-brass-glow);
	font-weight: 350;
}

.oc-occasion-hero__copy > p {
	max-width: 520px;
	margin: 32px 0;
	color: #b4bdbf;
	font-size: 1rem;
	line-height: 1.7;
}

.oc-occasion-hero__media {
	position: relative;
	min-width: 0;
	overflow: hidden;
}

.oc-occasion-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #06141f 0, transparent 30%),
		linear-gradient(0deg, rgba(3, 16, 26, .38), transparent 42%);
	pointer-events: none;
}

.oc-occasion-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.oc-occasion-products {
	padding: clamp(88px, 9vw, 138px) 0;
	background: var(--pg-paper);
}

.oc-occasion-products__header {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 32px;
	margin-bottom: 46px;
}

.oc-occasion-products__header h2 {
	max-width: 800px;
	margin: 9px 0 0;
	font-size: clamp(3.1rem, 5vw, 5.2rem);
	font-weight: 390;
	line-height: .94;
	letter-spacing: -.055em;
}

.oc-occasion-products__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px 20px;
	align-items: start;
}

.oc-occasion-products__grid .oc-product-card {
	min-width: 0;
}

.oc-occasion-products__grid .oc-product-card--featured {
	grid-column: span 2;
	grid-row: span 2;
}

.oc-occasion-products__grid .oc-product-card__media {
	aspect-ratio: 4 / 5;
}

.oc-occasion-products__grid .oc-product-card--featured .oc-product-card__media {
	aspect-ratio: 1 / 1.05;
}

.oc-occasion-products__grid .oc-product-card__body {
	padding: 17px 0 0;
}

.oc-occasion-products__grid .oc-product-card__meta {
	display: none;
}

.oc-occasion-memory {
	background: var(--pg-bone);
}

.oc-occasion-quality .oc-quality-split__copy::after {
	content: "";
	display: block;
	width: 54px;
	height: 1px;
	margin-top: 34px;
	background: var(--pg-brass-glow);
}

.oc-occasion-faq {
	background: var(--pg-bone);
}

@media (max-width: 900px) {
	.oc-occasion-hero {
		min-height: 0;
		grid-template-columns: 1fr;
	}

	.oc-occasion-hero__copy {
		padding: 78px var(--container-gutter) 62px;
	}

	.oc-occasion-hero__media {
		height: min(68vw, 560px);
	}

	.oc-occasion-hero__media::after {
		background: linear-gradient(180deg, #06141f 0, transparent 30%);
	}

	.oc-occasion-products__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.oc-occasion-hero h1 {
		font-size: clamp(3.55rem, 16vw, 5rem);
	}

	.oc-occasion-hero__copy > p {
		margin: 25px 0 28px;
	}

	.oc-occasion-hero__media {
		height: 90vw;
	}

	.oc-occasion-products {
		padding-block: 76px;
	}

	.oc-occasion-products__header {
		display: block;
		margin-bottom: 32px;
	}

	.oc-occasion-products__header .oc-button {
		margin-top: 19px;
	}

	.oc-occasion-products__header h2 {
		font-size: 3.25rem;
	}

	.oc-occasion-products__grid {
		gap: 25px 12px;
	}

	.oc-occasion-products__grid .oc-product-card--featured {
		grid-column: 1 / -1;
		grid-row: auto;
	}
}
