.foch-hero-slider {
	--foch-transition-ms: 1100ms;
	--foch-ken-burns: 1.06;
	--foch-nav-edge: max(22px, calc(5.5% - 38px));
	background: #0d0d0d;
	color: #fff;
	cursor: grab;
	height: 100vh;
	height: 100svh;
	min-height: 600px;
	overflow: hidden;
	position: relative;
	touch-action: pan-y;
	width: 100%;
}

.foch-hero-slider.is-dragging {
	cursor: grabbing;
}

.foch-hero-content,
.foch-hero-nav {
	user-select: none;
}

.foch-hero-stage,
.foch-hero-slide,
.foch-hero-media,
.foch-hero-media img,
.foch-hero-media video,
.foch-hero-youtube,
.foch-hero-youtube iframe,
.foch-hero-youtube-frame,
.foch-hero-vimeo,
.foch-hero-vimeo iframe,
.foch-hero-vimeo-frame,
.foch-hero-placeholder {
	height: 100%;
	inset: 0;
	position: absolute;
	width: 100%;
}

.foch-hero-slide {
	clip-path: inset(0 100% 0 0);
	opacity: 0;
	pointer-events: none;
	transform: translate3d(0, 0, 0);
	transition:
		clip-path var(--foch-transition-ms) cubic-bezier(.77, 0, .175, 1),
		opacity calc(var(--foch-transition-ms) * .65) ease;
	z-index: 1;
}

.foch-hero-slider.is-dragging .foch-hero-slide {
	transition: none;
}

.foch-hero-slide.is-active {
	clip-path: inset(0 0 0 0);
	opacity: 1;
	pointer-events: auto;
	z-index: 3;
}

.foch-hero-slide.is-leaving {
	clip-path: inset(0 0 0 100%);
	opacity: 1;
	z-index: 2;
}

.foch-hero-slide.is-drag-target {
	opacity: 1;
	z-index: 2;
}

.foch-hero-slide.is-drag-active {
	z-index: 3;
}

.foch-hero-media {
	overflow: hidden;
	pointer-events: none;
	z-index: 1;
}

.foch-hero-media img,
.foch-hero-media video {
	display: block;
	object-fit: cover;
	object-position: var(--foch-object-position, center center);
	transform: scale(1);
	transition: transform 6800ms linear;
}

.foch-hero-slide.is-active .foch-hero-media img,
.foch-hero-slide.is-active .foch-hero-media video {
	transform: scale(var(--foch-ken-burns));
}

.foch-hero-youtube {
	background: #0d0d0d;
	overflow: hidden;
}

.foch-hero-vimeo {
	background: #0d0d0d;
	overflow: hidden;
}

.foch-hero-youtube iframe,
.foch-hero-youtube-frame,
.foch-hero-vimeo iframe,
.foch-hero-vimeo-frame {
	border: 0;
	height: 56.25vw;
	left: 50%;
	min-height: 100vh;
	min-height: 100svh;
	min-width: 177.78vh;
	pointer-events: none;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 100vw;
}

.foch-hero-poster {
	opacity: 1;
	transition: opacity 450ms ease;
	z-index: 2;
}

.foch-hero-slide.is-youtube-ready .foch-hero-poster {
	opacity: 0;
}

.foch-hero-slide.is-vimeo-ready .foch-hero-poster {
	opacity: 0;
}

.foch-hero-placeholder {
	background:
		linear-gradient(120deg, rgba(255,255,255,.14), rgba(255,255,255,0) 42%),
		linear-gradient(135deg, #1c1d21, #3f494e 48%, #161819);
}

.foch-hero-slide-overlay {
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 2;
}

.foch-hero-reveal {
	background: #fff;
	bottom: 0;
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	transform: scaleX(0);
	transform-origin: left center;
	width: 100%;
	z-index: 7;
}

.foch-hero-slider.is-transitioning .foch-hero-reveal {
	animation: fochHeroReveal var(--foch-transition-ms) cubic-bezier(.77, 0, .175, 1);
}

.foch-hero-content {
	left: 5.5%;
	max-width: min(900px, 84vw);
	position: absolute;
	top: 50%;
	transform: translate(-2.2vw, -50%);
	z-index: 8;
}

.foch-hero-kicker,
.foch-hero-title,
.foch-hero-description {
	margin: 0;
	overflow-wrap: anywhere;
	text-shadow: 0 10px 30px rgba(0,0,0,.22);
}

.foch-hero-kicker {
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	line-height: 1.4;
	margin-bottom: 18px;
	text-transform: uppercase;
	transform: translateY(22px);
	opacity: 0;
}

.foch-hero-title {
	font-family: inherit;
	font-size: clamp(56px, 8.2vw, 150px);
	font-weight: 700;
	letter-spacing: 0;
	line-height: .92;
	max-width: 900px;
	transform: translateY(46px);
	opacity: 0;
}

.foch-hero-description {
	color: rgba(255,255,255,.72);
	font-family: inherit;
	font-size: clamp(16px, 1.2vw, 23px);
	font-weight: 400;
	line-height: 1.45;
	margin-top: 28px;
	max-width: 620px;
	opacity: 0;
	transform: translateY(26px);
}

.foch-hero-button {
	align-items: center;
	color: #fff;
	display: inline-flex;
	font-family: inherit;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.1;
	margin-top: 42px;
	overflow: hidden;
	padding: 0 0 9px;
	position: relative;
	text-decoration: none;
	transform: translateY(26px);
	opacity: 0;
	transition: opacity 220ms ease, transform 220ms ease;
}

.foch-hero-button::before,
.foch-hero-button::after {
	background: currentColor;
	bottom: 0;
	content: "";
	height: 3px;
	left: 0;
	position: absolute;
	transform-origin: right center;
	transition: transform 520ms cubic-bezier(.77, 0, .175, 1);
	width: 100%;
}

.foch-hero-button::after {
	transform: scaleX(0);
	transform-origin: left center;
	transition-delay: 90ms;
}

.foch-hero-button:hover::before,
.foch-hero-button:focus-visible::before,
.foch-hero-button:active::before {
	transform: translateX(100%) scaleX(.24);
}

.foch-hero-button:hover::after,
.foch-hero-button:focus-visible::after,
.foch-hero-button:active::after {
	transform: scaleX(1);
}

.foch-hero-button:hover,
.foch-hero-button:focus-visible,
.foch-hero-button:active {
	transform: translateY(-2px);
}

.foch-hero-button[aria-hidden="true"] {
	display: none;
}

.foch-hero-content.is-visible .foch-hero-kicker,
.foch-hero-content.is-visible .foch-hero-title,
.foch-hero-content.is-visible .foch-hero-description,
.foch-hero-content.is-visible .foch-hero-button {
	opacity: 1;
	transform: translateY(0);
	transition:
		opacity 720ms ease,
		transform 900ms cubic-bezier(.22, 1, .36, 1);
}

.foch-hero-content.is-visible .foch-hero-title {
	transition-delay: 90ms;
}

.foch-hero-content.is-visible .foch-hero-description {
	transition-delay: 160ms;
}

.foch-hero-content.is-visible .foch-hero-button {
	transition-delay: 230ms;
}

.foch-hero-nav {
	align-items: center;
	bottom: 8.8vh;
	display: flex;
	font-family: inherit;
	font-size: 22px;
	font-weight: 600;
	justify-content: space-between;
	left: 0;
	line-height: 1;
	padding: 0 var(--foch-nav-edge);
	position: absolute;
	right: 0;
	z-index: 9;
}

.foch-hero-arrow {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	display: inline-flex;
	height: 88px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: relative;
	transition: opacity 180ms ease, transform 180ms ease;
	width: 88px;
	z-index: 2;
}

.foch-hero-arrow::before {
	background: rgba(255,255,255,.10);
	border-radius: 50%;
	content: "";
	inset: 5px;
	opacity: 0;
	position: absolute;
	transform: scale(.58);
	transition:
		opacity 240ms ease,
		transform 320ms cubic-bezier(.22, 1, .36, 1);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

.foch-hero-arrow span {
	align-items: center;
	display: inline-flex;
	height: 100%;
	justify-content: center;
	position: relative;
	z-index: 1;
}

.foch-hero-arrow-icon {
	display: block;
	fill: none;
	height: 40px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 4;
	width: 72px;
}

.foch-hero-next .foch-hero-arrow-icon {
	transform: rotate(180deg);
}

.foch-hero-arrow:hover,
.foch-hero-arrow:focus-visible {
	opacity: 1;
	transform: translateX(2px);
}

.foch-hero-arrow:hover::before,
.foch-hero-arrow:focus-visible::before {
	opacity: 1;
	transform: scale(1);
}

.foch-hero-prev:hover,
.foch-hero-prev:focus-visible {
	transform: translateX(-2px);
}

.foch-hero-current,
.foch-hero-total {
	font-size: 22px;
	min-width: 34px;
	text-align: center;
}

.foch-hero-timeline {
	align-items: center;
	display: flex;
	gap: 22px;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: min(560px, 44vw);
}

.foch-hero-progress {
	height: 6px;
	flex: 1;
	overflow: hidden;
	position: relative;
	width: auto;
}

.foch-hero-progress-track,
.foch-hero-progress-fill {
	display: block;
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 100%;
}

.foch-hero-progress-track {
	height: 1px;
	opacity: .72;
}

.foch-hero-progress-fill {
	height: 3px;
	transform: translateY(-50%) scaleX(0);
	transform-origin: left center;
}

.foch-hero-progress-fill.is-finishing {
	animation: fochProgressExit 360ms cubic-bezier(.77, 0, .175, 1);
}

@keyframes fochHeroReveal {
	0% {
		transform: scaleX(0);
		transform-origin: left center;
	}
	44% {
		transform: scaleX(1);
		transform-origin: left center;
	}
	45% {
		transform: scaleX(1);
		transform-origin: right center;
	}
	100% {
		transform: scaleX(0);
		transform-origin: right center;
	}
}

@keyframes fochProgressExit {
	0% {
		transform: translateY(-50%) scaleX(1);
		transform-origin: left center;
	}
	45% {
		transform: translateY(-50%) scaleX(1);
		transform-origin: right center;
	}
	100% {
		transform: translateY(-50%) scaleX(0);
		transform-origin: right center;
	}
}

@media (max-width: 767px) {
	.foch-hero-slider {
		min-height: 560px;
	}

	.foch-hero-content {
		left: 24px;
		max-width: calc(100vw - 48px);
		top: 47%;
		transform: translateY(-50%);
	}

	.foch-hero-kicker {
		font-size: 11px;
		margin-bottom: 12px;
	}

	.foch-hero-title {
		font-size: clamp(42px, 15vw, 76px);
		line-height: .96;
	}

	.foch-hero-description {
		font-size: 16px;
		margin-top: 18px;
		max-width: calc(100vw - 56px);
	}

	.foch-hero-button {
		font-size: 18px;
		margin-top: 28px;
	}

	.foch-hero-nav {
		bottom: 7vh;
		font-size: 24px;
		padding: 0 14px;
	}

	.foch-hero-arrow {
		font-size: 42px;
		height: 58px;
		width: 58px;
	}

	.foch-hero-timeline {
		gap: 12px;
		width: min(58vw, 320px);
	}

	.foch-hero-current,
	.foch-hero-total {
		font-size: 15px;
		min-width: 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.foch-hero-slide,
	.foch-hero-media img,
	.foch-hero-media video,
	.foch-hero-youtube iframe,
	.foch-hero-youtube-frame,
	.foch-hero-vimeo iframe,
	.foch-hero-vimeo-frame,
	.foch-hero-content.is-visible .foch-hero-kicker,
	.foch-hero-content.is-visible .foch-hero-title,
	.foch-hero-content.is-visible .foch-hero-description,
	.foch-hero-content.is-visible .foch-hero-button {
		animation: none !important;
		transition-duration: 1ms !important;
	}
}
