/*
 * Front page hero.
 */

.front-page-shell {
	overflow: hidden;
	background: var(--color-bg);
}

.front-page-shell .page-content > :last-child {
	margin-bottom: 0;
}

.front-page-shell .page-content > p:empty:last-child {
	display: none;
}

.front-hero {
	position: relative;
	display: flex;
	align-items: flex-start;
	min-height: clamp(34rem, 72vh, 47rem);
	overflow: hidden;
	padding-block: clamp(2.75rem, 6vh, 4.25rem) clamp(4rem, 8vh, 6rem);
	background: var(--color-bg);
	color: var(--color-on-dark);
}

.front-hero__carousel,
.front-hero__shade {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.front-hero__carousel {
	z-index: 0;
	overflow: hidden;
}

.front-hero__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	transition: opacity 1.1s ease;
}

.front-hero__slide.is-active {
	opacity: 1;
}

.front-hero__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.front-hero__shade {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(2, 34, 56, 0.9) 0%, rgba(2, 34, 56, 0.74) 38%, rgba(2, 34, 56, 0.36) 70%, rgba(2, 34, 56, 0.58) 100%),
		linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.08) 48%, rgba(0, 0, 0, 0.34) 100%);
}

.front-hero__inner {
	position: relative;
	z-index: 2;
	width: min(calc(100% - 2rem), var(--site-max-width));
}

.front-hero__content {
	max-width: 39rem;
	padding-top: clamp(0.25rem, 2vh, 1.25rem);
}

.front-hero__eyebrow {
	margin-bottom: 0.85rem;
	font-size: 0.8rem;
}

.front-hero__title {
	max-width: 11ch;
	margin-bottom: 1.25rem;
	color: var(--color-white);
	font-size: clamp(3rem, 9vw, 5.75rem);
	line-height: 0.98;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.22);
}

.front-hero__text {
	max-width: 35rem;
	margin-bottom: 1.75rem;
	color: var(--color-on-dark-muted);
	font-size: clamp(1.18rem, 1.55vw, 1.35rem);
	line-height: 1.58;
	text-shadow: 0 1px 14px rgba(0, 0, 0, 0.24);
}

.front-hero__actions {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0.85rem;
	margin-top: clamp(0.45rem, 1.25vw, 1rem);
}

.front-hero__actions .btn {
	flex: 1 1 0;
	min-width: 0;
	max-width: 14.5rem;
	min-height: 3.15rem;
	padding: 0.72rem 1rem;
	font-size: clamp(0.95rem, 1.05vw, 1.05rem);
	font-weight: var(--font-weight-bold);
	line-height: 1.1;
	white-space: normal;
	text-wrap: balance;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

.front-page-shell .case-study__body,
.front-page-shell .feature-showcase-card__text,
.front-page-shell .review-card__content blockquote p {
	font-size: clamp(1rem, 1.2vw, 1.08rem);
}

.front-hero__actions .btn:not(.btn--front-secondary):hover,
.front-hero__actions .btn:not(.btn--front-secondary):focus-visible {
	background: var(--color-white);
	border-color: var(--color-white);
	color: var(--color-blue-dark);
}

.btn--front-secondary {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.5);
	color: var(--color-white);
}

.btn--front-secondary:hover,
.btn--front-secondary:focus-visible {
	background: var(--color-white);
	border-color: var(--color-white);
	color: var(--color-blue-dark);
}

@media (min-width: 48rem) {
	.front-hero {
		min-height: clamp(37rem, 74vh, 50rem);
		padding-block-start: clamp(3rem, 7vh, 4.75rem);
	}
}

@media (min-width: 64rem) {
	.front-hero {
		min-height: clamp(40rem, 76vh, 54rem);
		padding-block-start: clamp(3.25rem, 7vh, 5rem);
	}
}

@media (max-width: 47.9375rem) {
	.front-hero {
		min-height: 38rem;
		padding-block: 2.75rem 4.5rem;
	}

	.front-hero__slide img {
		object-position: 58% center;
	}

	.front-hero__shade {
		background:
			linear-gradient(90deg, rgba(2, 34, 56, 0.94) 0%, rgba(2, 34, 56, 0.86) 54%, rgba(2, 34, 56, 0.72) 100%),
			linear-gradient(180deg, rgba(0, 0, 0, 0.24) 0%, rgba(0, 0, 0, 0.44) 100%);
	}

	.front-hero__title {
		font-size: 2.72rem;
	}

	.front-hero__actions {
		max-width: 26rem;
	}

	.front-hero__actions .btn {
		max-width: none;
		min-height: 2.95rem;
		font-size: 0.9rem;
		padding: 0.62rem 0.75rem;
	}
}
