/* ==========================================================================
   SAP Hero Landing template
   --------------------------------------------------------------------------
   Tweak these three variables if your header/footer heights differ:
   --sap-header-h : clearance for a transparent header that overlays the hero.
                    Set to 0 if your header sits above the hero (not overlaid).
   --sap-footer-h : height reserved so the footer shows on the first screen.
   --sap-container: max width of the hero content.
   ========================================================================== */

.sap-hero {
	--sap-header-h: 110px;
	--sap-footer-h: 40px;
	--sap-container: 1290px;
	--sap-gutter: clamp(20px, 4vw, 48px);
	--sap-ink: #fff;
	--sap-dot-active: #1f1b5c;

	position: relative;
	isolation: isolate;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	min-height: calc(100vh - var(--sap-footer-h));
	min-height: calc(100svh - var(--sap-footer-h));
	padding: var(--sap-header-h) var(--sap-gutter);
	overflow: hidden;
	color: var(--sap-ink);

	/* Uploaded background image, or a gradient that matches the design. */
	background-color: #0a2463;
	background-image: var(--sap-hero-bg, linear-gradient(100deg, #081d52 0%, #0f3f8f 30%, #3d78b4 52%, #e59a33 80%, #d9501f 100%));
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.sap-hero *,
.sap-hero *::before,
.sap-hero *::after {
	box-sizing: border-box;
}

.sap-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(24px, 4vw, 64px);
	width: 100%;
	max-width: var(--sap-container);
	margin-inline: auto;
}

/* ---- Section image ----------------------------------------------------- */

.sap-hero__media {
	margin: 0;
}

.sap-hero__img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 72vh;
	object-fit: contain;
	object-position: left center;
}

/* ---- Copy -------------------------------------------------------------- */

.sap-hero__copy {
	padding-right: 48px; /* keeps text clear of the dots */
}

/*
 * HEADING: size, font and color come from Elementor.
 *
 * 1. Elementor > Site Settings > Typography > H1 (and its color) is applied by
 *    Elementor's own `.elementor-kit-N h1` rule. That rule is more specific than
 *    the selector below, so it wins automatically and I set nothing against it.
 * 2. If H1 is not styled there, Elementor's Global Font "Primary" is used
 *    through its --e-global-typography-primary-* variables.
 * 3. If neither exists (e.g. Elementor is not active), the plain fallbacks apply.
 */
.sap-hero__title {
	margin: 0;
	font-family: var(--e-global-typography-primary-font-family, inherit);
	font-weight: var(--e-global-typography-primary-font-weight, 700);
	font-size: var(--e-global-typography-primary-font-size, clamp(3rem, 6.4vw, 6.25rem));
	line-height: var(--e-global-typography-primary-line-height, 0.95);
	color: #fff;
}

.sap-hero__line {
	display: block;
}

.sap-hero .sap-hero__text {
	margin: clamp(14px, 1.8vw, 26px) 0 0;
	font-size: clamp(1.125rem, 1.7vw, 1.75rem);
	font-weight: 300;
	line-height: 1.3;
	color: var(--sap-ink);
}

.sap-hero .sap-hero__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: clamp(20px, 2.4vw, 36px);
	padding: 0.8em 2.7em;
	border: 1px solid rgba(255, 255, 255, 0.75);
	border-radius: 999px;
	background: transparent;
	color: var(--sap-ink);
	font-size: 1.0625rem;
	font-weight: 300;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.sap-hero .sap-hero__btn:hover,
.sap-hero .sap-hero__btn:focus-visible {
	background: #fff;
	border-color: #fff;
	color: #0b2a66;
}

.sap-hero .sap-hero__btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

/* ---- Slider dots (right edge) ------------------------------------------ */

.sap-hero__dots {
	position: absolute;
	top: 50%;
	right: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 43px;
	margin: 0;
	padding: 0;
	list-style: none;
	transform: translateY(-50%);
}

.sap-hero__dots::before {
	content: "";
	position: absolute;
	top: -70px;
	bottom: -70px;
	left: 50%;
	width: 1px;
	background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.35) 25%, rgba(255, 255, 255, 0.35) 75%, transparent);
	transform: translateX(-50%);
	z-index: -1;
}

.sap-hero__dots li {
	width: 16px;
	height: 16px;
	margin: 0;
	border-radius: 50%;
	background: #fff;
}

.sap-hero__dots li.is-active {
	background: var(--sap-dot-active);
}

/* ---- Tablet / mobile --------------------------------------------------- */

@media (max-width: 900px) {
	.sap-hero {
		--sap-header-h: 90px;
		align-items: flex-start;
	}

	.sap-hero__inner {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.sap-hero__img {
		max-height: 48vh;
		margin-inline: auto;
		object-position: center;
	}

	.sap-hero__copy {
		padding-right: 0;
	}

	.sap-hero__dots {
		position: static;
		flex-direction: row;
		justify-content: center;
		gap: 20px;
		transform: none;
	}

	.sap-hero__dots::before {
		display: none;
	}
}
