/**
 * Inner-page header banner — matches Employee Directory.
 */

body.sln-page-banner-active #masthead,
body.sln-page-banner-active #wrapper-navbar {
	max-width: 100%;
	width: 100%;
}

body.sln-page-banner-active .custom-header-media.large-format,
body.sln-page-banner-active .custom-header-media.sln-page-banner-media {
	display: block;
	height: auto;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-height: none !important;
	overflow: hidden;
	position: relative;
	width: 100vw;
	max-width: 100vw;
}

body.sln-page-banner-active .custom-header-media.large-format::before,
body.sln-page-banner-active .custom-header-media.sln-page-banner-media::before {
	background: linear-gradient(
		180deg,
		rgba(18, 35, 68, 0.55) 0%,
		rgba(18, 35, 68, 0.08) 50%,
		rgba(18, 35, 68, 0.35) 100%
	) !important;
	content: "";
	display: block;
	height: 100% !important;
	left: 0;
	opacity: 1 !important;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 2;
}

body.sln-page-banner-active #wp-custom-header,
body.sln-page-banner-active:not(.home) #wp-custom-header {
	background: #0a1628;
	height: 80vh !important;
	max-height: 900px !important;
	min-height: 420px !important;
	overflow: hidden !important;
	position: relative;
	width: 100%;
}

body.sln-page-banner-active #wp-custom-header img,
body.sln-page-banner-active:not(.home) #wp-custom-header img,
body.sln-page-banner-active .sln-page-banner__video,
body.sln-page-banner-active .sln-page-banner__video-wrap,
body.sln-page-banner-active .sln-page-banner__video-wrap iframe {
	border: 0;
	height: 56.25vw;
	left: 50%;
	max-width: none;
	min-height: 100%;
	min-width: 177.78vh;
	object-fit: cover;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	transform-origin: center center;
	width: 100vw;
}

body.sln-page-banner-active .sln-page-banner__video-wrap {
	height: 100%;
	min-height: 100%;
	overflow: hidden;
	width: 100%;
}

body.sln-page-banner-active .custom-header-media .sln-page-banner__caption {
	align-items: center;
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 6.5rem 1.25rem 2rem;
	pointer-events: none;
	position: absolute;
	text-align: center;
	z-index: 4;
}

body.sln-page-banner-active .sln-page-banner__title-box {
	background: rgb(18 35 70 / 70%) !important;
	color: #fff;
	left: auto !important;
	line-height: 1.35;
	margin: 0 !important;
	max-width: 920px;
	padding: 2rem !important;
	position: static !important;
	top: auto !important;
	width: 100%;
}

body.sln-page-banner-active .sln-page-banner__title-box::before {
	display: none !important;
}

body.sln-page-banner-active .sln-page-banner__title {
	color: #fff !important;
	font-family: "Montserrat", sans-serif !important;
	font-size: clamp(2rem, 5vw, 3.25rem) !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em;
	line-height: 1.08 !important;
	margin: 0 !important;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.65);
	text-transform: uppercase !important;
}

body.sln-page-banner-active .sln-page-banner__subtitle {
	color: #fff !important;
	display: block !important;
	font-family: "Montserrat", sans-serif !important;
	font-size: clamp(1rem, 2.2vw, 1.25rem) !important;
	font-weight: 400 !important;
	letter-spacing: 0.02em;
	line-height: 1.45 !important;
	margin: 0 !important;
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.55);
	text-transform: none !important;
	visibility: visible !important;
}

body.sln-page-banner-active .sln-page-banner__title + .sln-page-banner__subtitle {
	margin-top: 0.75rem !important;
}

body.sln-page-banner-active .sln-page-banner__subtitle + .sln-page-banner__subtitle {
	margin-top: 0.35rem !important;
}

body.sln-page-banner-active .entry-header,
body.sln-page-banner-active .entry-header .entry-title,
body.sln-page-banner-active #text-block-0.sln-page-banner-heading-moved {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	padding: 0 !important;
}

body.sln-page-banner-active #primary,
body.sln-page-banner-active #content,
body.sln-page-banner-active .site-main {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

@media (max-width: 991px) {
	body.sln-page-banner-active #wp-custom-header,
	body.sln-page-banner-active:not(.home) #wp-custom-header {
		height: 300px !important;
		max-height: 300px !important;
		min-height: 300px !important;
	}

	body.sln-page-banner-active #wp-custom-header img,
	body.sln-page-banner-active:not(.home) #wp-custom-header img,
	body.sln-page-banner-active .sln-page-banner__video,
	body.sln-page-banner-active .sln-page-banner__video-wrap iframe {
		height: 100%;
		min-height: 100%;
		min-width: 100%;
		width: 100%;
	}

	body.sln-page-banner-active .custom-header-media .sln-page-banner__caption {
		align-items: flex-end;
		justify-content: center;
		padding: 5rem 1rem 1.1rem;
	}

	body.sln-page-banner-active .sln-page-banner__title-box {
		max-width: calc(100% - 0.5rem);
		padding: 0.7rem 1rem !important;
	}

	body.sln-page-banner-active .sln-page-banner__title {
		font-size: 1.35rem !important;
		letter-spacing: 0.05em;
		line-height: 1.15 !important;
	}

	body.sln-page-banner-active .sln-page-banner__subtitle {
		font-size: 0.95rem !important;
	}
}

@media (max-width: 767px) {
	body.sln-page-banner-active #wp-custom-header,
	body.sln-page-banner-active:not(.home) #wp-custom-header {
		height: 240px !important;
		max-height: 240px !important;
		min-height: 240px !important;
	}

	body.sln-page-banner-active .custom-header-media .sln-page-banner__caption {
		padding: 4.5rem 0.85rem 0.9rem;
	}

	body.sln-page-banner-active .sln-page-banner__title {
		font-size: 1.15rem !important;
	}

	body.sln-page-banner-active .sln-page-banner__subtitle {
		font-size: 0.85rem !important;
	}
}

/**
 * What We Do children — Employee Directory / Contact Us header on ≤1024 only.
 * Desktop (>1024) keeps the existing magazine overlay hero untouched.
 */
@media (min-width: 1025px) {
	body.sln-page-banner-wwd-mobile .sln-page-banner__caption {
		display: none !important;
	}
}

@media (max-width: 1024px) {
	body.sln-page-banner-wwd-mobile #masthead,
	body.sln-page-banner-wwd-mobile #wrapper-navbar {
		max-width: 100%;
		width: 100%;
	}

	body.sln-page-banner-wwd-mobile .custom-header-media.large-format,
	body.sln-page-banner-wwd-mobile .custom-header-media.sln-page-banner-media {
		display: block;
		height: auto;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		max-height: none !important;
		overflow: hidden;
		position: relative;
		width: 100vw;
		max-width: 100vw;
	}

	body.sln-page-banner-wwd-mobile .custom-header-media.large-format::before,
	body.sln-page-banner-wwd-mobile .custom-header-media.sln-page-banner-media::before {
		background: linear-gradient(
			180deg,
			rgba(18, 35, 68, 0.55) 0%,
			rgba(18, 35, 68, 0.08) 50%,
			rgba(18, 35, 68, 0.35) 100%
		) !important;
		content: "";
		display: block;
		height: 100% !important;
		left: 0;
		opacity: 1 !important;
		position: absolute;
		right: 0;
		top: 0;
		z-index: 2;
	}

	body.sln-page-banner-wwd-mobile #wp-custom-header,
	body.sln-page-banner-wwd-mobile:not(.home) #wp-custom-header {
		background: #0a1628;
		height: 300px !important;
		max-height: 300px !important;
		min-height: 300px !important;
		overflow: hidden !important;
		position: relative;
		width: 100%;
	}

	body.sln-page-banner-wwd-mobile #wp-custom-header img,
	body.sln-page-banner-wwd-mobile:not(.home) #wp-custom-header img {
		border: 0;
		height: 100%;
		left: 50%;
		max-height: none !important;
		max-width: none;
		min-height: 100%;
		min-width: 100%;
		object-fit: cover;
		position: absolute;
		top: 50%;
		transform: translate(-50%, -50%);
		width: 100%;
	}

	body.sln-page-banner-wwd-mobile .custom-header-media .sln-page-banner__caption {
		align-items: flex-end;
		display: flex;
		inset: 0;
		justify-content: center;
		padding: 5rem 1rem 1.1rem;
		pointer-events: none;
		position: absolute;
		text-align: center;
		z-index: 4;
	}

	body.sln-page-banner-wwd-mobile .sln-page-banner__title-box {
		background: rgb(18 35 70 / 70%) !important;
		color: #fff;
		left: auto !important;
		line-height: 1.35;
		margin: 0 !important;
		max-width: calc(100% - 0.5rem);
		padding: 0.7rem 1rem !important;
		position: static !important;
		top: auto !important;
		width: 100%;
	}

	body.sln-page-banner-wwd-mobile .sln-page-banner__title-box::before {
		display: none !important;
	}

	body.sln-page-banner-wwd-mobile .sln-page-banner__title {
		color: #fff !important;
		font-family: "Montserrat", sans-serif !important;
		font-size: 1.35rem !important;
		font-weight: 700 !important;
		letter-spacing: 0.05em;
		line-height: 1.15 !important;
		margin: 0 !important;
		text-shadow: 0 2px 20px rgba(0, 0, 0, 0.65);
		text-transform: uppercase !important;
	}

	body.sln-page-banner-wwd-mobile .sln-page-banner__subtitle {
		color: #fff !important;
		display: block !important;
		font-family: "Montserrat", sans-serif !important;
		font-size: 0.95rem !important;
		font-weight: 400 !important;
		letter-spacing: 0.02em;
		line-height: 1.45 !important;
		margin: 0 !important;
		text-shadow: 0 2px 16px rgba(0, 0, 0, 0.55);
		text-transform: none !important;
		visibility: visible !important;
	}

	body.sln-page-banner-wwd-mobile .sln-page-banner__title + .sln-page-banner__subtitle {
		margin-top: 0.75rem !important;
	}

	body.sln-page-banner-wwd-mobile .tabbed-block,
	body.sln-page-banner-wwd-mobile .tabbed-block-wrap {
		margin-bottom: 0 !important;
		top: 0 !important;
	}

	body.sln-page-banner-wwd-mobile #primary,
	body.sln-page-banner-wwd-mobile #content,
	body.sln-page-banner-wwd-mobile .site-main {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}
}

@media (max-width: 767px) {
	body.sln-page-banner-wwd-mobile #wp-custom-header,
	body.sln-page-banner-wwd-mobile:not(.home) #wp-custom-header {
		height: 240px !important;
		max-height: 240px !important;
		min-height: 240px !important;
	}

	body.sln-page-banner-wwd-mobile .custom-header-media .sln-page-banner__caption {
		padding: 4.5rem 0.85rem 0.9rem;
	}

	body.sln-page-banner-wwd-mobile .sln-page-banner__title {
		font-size: 1.15rem !important;
	}

	body.sln-page-banner-wwd-mobile .sln-page-banner__subtitle {
		font-size: 0.85rem !important;
	}
}
