.hero {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: end;
	color: #fff;
	overflow: hidden;
}

.hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.hero__media--mobile {
	display: none;
}

.hero__media--desktop {
	display: block;
}

@media (max-width: 1024px) {
	.hero__media--desktop {
		display: none;
	}

	.hero__media--mobile {
		display: block;
	}
}

.hero__media img,
.hero__media video,
.hero__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero__media img,
.hero__media video {
	transform: scale(1.08);
	transform-origin: 58% 42%;
	will-change: transform;
}

html.is-loaded .hero__media img,
html.is-loaded .hero__media video {
	animation: olv-hero-ken 32s var(--ease-standard) both;
}

.hero__placeholder {
	min-height: 100%;
	background:
		radial-gradient(ellipse at 30% 40%, #8a9a6e 0%, transparent 55%),
		linear-gradient(160deg, #3d4a32 0%, #1a1814 55%, #0c0b09 100%);
}

.hero__shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			105deg,
			rgba(12, 11, 9, 0.78) 0%,
			rgba(12, 11, 9, 0.52) 36%,
			rgba(12, 11, 9, 0.2) 62%,
			rgba(12, 11, 9, 0.32) 100%
		),
		linear-gradient(
			180deg,
			rgba(12, 11, 9, 0.42) 0%,
			rgba(12, 11, 9, 0.1) 40%,
			rgba(12, 11, 9, 0.55) 100%
		);
	pointer-events: none;
}

.hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	padding-top: calc(var(--header-h) + 1.5rem);
	padding-bottom: clamp(4rem, 9vw, 6.5rem);
}

.hero__content {
	max-width: 40rem;
	text-shadow: 0 2px 32px rgba(0, 0, 0, 0.4);
}

.hero__logo {
	width: clamp(5.75rem, 13vw, 8rem);
	height: auto;
	margin-bottom: var(--space-5);
	filter: drop-shadow(0 4px 20px rgba(0, 0, 0, 0.45));
}

.hero__eyebrow {
	font-size: var(--fs-eyebrow);
	letter-spacing: 0.28em;
	text-transform: uppercase;
	font-weight: 300;
	margin-bottom: var(--space-4);
	color: rgba(255, 255, 255, 0.78);
}

.hero__brand {
	font-family: var(--font-display);
	font-size: clamp(3.5rem, 10vw, 6.5rem);
	font-weight: 300;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 0.92;
	margin-bottom: var(--space-5);
	color: #fff;
}

.hero__rule {
	display: block;
	width: 3.25rem;
	height: 1px;
	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0.9),
		rgba(255, 255, 255, 0.15)
	);
	margin-bottom: var(--space-5);
	transform-origin: left center;
}

.hero__tagline {
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 3.2vw, 2.15rem);
	font-weight: 300;
	font-style: italic;
	line-height: 1.35;
	letter-spacing: 0.01em;
	color: rgba(255, 255, 255, 0.95);
	margin-bottom: var(--space-3);
	max-width: 22ch;
}

.hero__sub {
	font-size: var(--fs-small);
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.72);
	margin-bottom: var(--space-7);
	max-width: 28rem;
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-top: var(--space-7);
}

.hero__scroll {
	position: absolute;
	right: clamp(1.15rem, 3.5vw, 2.5rem);
	bottom: clamp(2rem, 5vw, 3rem);
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-3);
	font-size: 0.625rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.65);
	transition: color var(--duration-fast) var(--ease-standard);
}

.hero__scroll:hover {
	color: #fff;
}

.hero__scroll-track {
	display: block;
	width: 1px;
	height: 2.75rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.7), transparent);
	animation: olv-scroll-pulse 2.2s var(--ease-standard) infinite;
}

@keyframes olv-hero-ken {
	from {
		transform: scale(1.08);
	}
	to {
		transform: scale(1);
	}
}

@keyframes olv-scroll-pulse {
	0%,
	100% {
		opacity: 0.35;
		transform: scaleY(0.85);
		transform-origin: top;
	}
	50% {
		opacity: 1;
		transform: scaleY(1);
	}
}

@media (max-width: 640px) {
	.hero {
		align-items: flex-end;
	}

	.hero__inner {
		padding-bottom: clamp(3.25rem, 12vw, 4.75rem);
	}

	.hero__content {
		max-width: none;
	}

	.hero__tagline {
		max-width: none;
	}

	.hero__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.hero__actions .btn {
		width: 100%;
	}

	.hero__scroll {
		display: none;
	}

	.hero__shade {
		background:
			linear-gradient(
				180deg,
				rgba(12, 11, 9, 0.38) 0%,
				rgba(12, 11, 9, 0.18) 32%,
				rgba(12, 11, 9, 0.82) 100%
			);
	}
}

@media (prefers-reduced-motion: reduce) {
	.hero__media img,
	.hero__media video,
	html.is-loaded .hero__media img,
	html.is-loaded .hero__media video {
		animation: none;
		transform: none;
	}

	.hero__scroll-track {
		animation: none;
	}
}
