/**
 * Boxed site chrome on ultrawide monitors.
 * 1440 and 1920 stay full-bleed. From 1921px the canvas is a centered box:
 * min(2560px, max(1920px, 100vw - 160px)) — usable on 2560/3440, never full-bleed 4K.
 */

@media (min-width: 1921px) {
	html {
		--sln-canvas: min(2560px, max(1920px, calc(100vw - 160px)));
		background: #122346;
	}

	body.sln-site-shell-enabled {
		background: #122346;
	}

	body.sln-site-shell-enabled #page,
	body.sln-site-shell-enabled #page.site {
		background: #fff;
		box-shadow: 0 0 48px rgba(0, 0, 0, 0.28);
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: var(--sln-canvas) !important;
		overflow-x: clip;
		width: 100%;
	}

	body.sln-site-shell-enabled.sln-home-hero-active #page {
		background: #0a1628;
	}

	/* Full-bleed heroes fill the boxed site, not the 3440px viewport. */
	body.sln-site-shell-enabled.sln-home-hero-active .custom-header-media.sln-home-hero-enhanced,
	body.sln-site-shell-enabled.sln-page-banner-active .custom-header-media.large-format,
	body.sln-site-shell-enabled.sln-page-banner-active .custom-header-media.sln-page-banner-media {
		margin-left: 0 !important;
		margin-right: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	body.sln-site-shell-enabled.sln-home-hero-active .custom-header-media.sln-home-hero-enhanced .hero-embed-container iframe,
	body.sln-site-shell-enabled.sln-home-hero-active .custom-header-media.sln-home-hero-enhanced iframe.sln-home-header-iframe,
	body.sln-site-shell-enabled.sln-page-banner-active #wp-custom-header img,
	body.sln-site-shell-enabled.sln-page-banner-active .sln-page-banner__video,
	body.sln-site-shell-enabled.sln-page-banner-active .sln-page-banner__video-wrap iframe {
		height: 180%;
		min-height: 100%;
		min-width: 100%;
		width: 180%;
	}

	/* Fixed sticky bar must match the boxed #page, without using transform. */
	body.sln-site-shell-enabled.sln-sticky-header-active #main-nav.navbar {
		left: max(0px, calc((100vw - var(--sln-canvas)) / 2));
		max-width: var(--sln-canvas);
		right: max(0px, calc((100vw - var(--sln-canvas)) / 2));
		width: auto;
	}
}

/* === sln-fluid-layout (appended for cache-safe load) === */
/**
 * Resize-proof layout: any viewport width from phone through ultrawide.
 * Does not restyle desktop brand compositions except to reflow / contain overflow.
 */

/* Clip page-level sideways scroll. Keep overflow off body so position:fixed header stays viewport-fixed. */
html {
	overflow-x: clip;
}

body.sln-site-shell-enabled #page {
	margin-left: auto;
	margin-right: auto;
	max-width: min(2560px, 100%);
	overflow-x: clip;
}

body.sln-site-shell-enabled .site,
body.sln-site-shell-enabled #content,
body.sln-site-shell-enabled #primary,
body.sln-site-shell-enabled .site-main,
body.sln-site-shell-enabled .entry-content,
body.sln-site-shell-enabled .entry-content.blocks {
	max-width: 100%;
}

body.sln-site-shell-enabled .container,
body.sln-site-shell-enabled .container-fluid,
body.sln-site-shell-enabled .container-1024,
body.sln-site-shell-enabled .layout-container {
	max-width: 100%;
}

body.sln-site-shell-enabled .row,
body.sln-site-shell-enabled [class*="col-"] {
	min-width: 0;
}

body.sln-site-shell-enabled .checklist-bg img {
	max-width: 100% !important;
}

body.sln-site-shell-enabled .sbi_error,
body.sln-site-shell-enabled #sb_instagram:empty,
body.sln-site-shell-enabled .sbi:empty {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
}

body.sln-site-shell-enabled:not(.sln-wwd-page) .entry-content img,
body.sln-site-shell-enabled:not(.sln-wwd-page) .entry-content video,
body.sln-site-shell-enabled:not(.sln-wwd-page) .entry-content svg,
body.sln-site-shell-enabled .image-grid img,
body.sln-site-shell-enabled:not(.sln-wwd-page) .text-block img,
body.sln-site-shell-enabled:not(.sln-wwd-page) .checklist-bg img,
body.sln-site-shell-enabled:not(.sln-wwd-page) .wp-block-image img {
	height: auto;
	max-width: 100%;
}

body.sln-site-shell-enabled .entry-content iframe,
body.sln-site-shell-enabled .sln-embed-wrap,
body.sln-site-shell-enabled .sln-page-banner__video-wrap,
body.sln-site-shell-enabled .hero-embed-container,
body.sln-site-shell-enabled .embed-responsive {
	max-width: 100%;
}

body.sln-site-shell-enabled .sln-embed-wrap,
body.sln-site-shell-enabled .sln-scroll-x {
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
}

body.sln-site-shell-enabled .sln-embed-wrap iframe {
	max-width: 100%;
}

body.sln-site-shell-enabled table {
	max-width: 100%;
}

body.sln-site-shell-enabled .owl-carousel,
body.sln-site-shell-enabled .owl-stage-outer {
	max-width: 100%;
}

/* -------------------------------------------------------------------------- */
/* Careers + SLN Cares photo / Instagram mosaic                               */
/* -------------------------------------------------------------------------- */

body.sln-site-shell-enabled .image-grid {
	box-sizing: border-box;
	max-width: 100%;
	overflow: hidden;
	padding-left: 1rem;
	padding-right: 1rem;
	width: 100%;
}

body.sln-site-shell-enabled .image-grid .row {
	margin-left: 0;
	margin-right: 0;
	max-width: 100%;
	width: 100%;
}

body.sln-site-shell-enabled .image-grid [class*="col-"] {
	max-width: 100%;
}

body.sln-site-shell-enabled .image-grid a {
	display: block;
	line-height: 0;
	max-width: 100%;
}

body.sln-site-shell-enabled .image-grid img {
	display: block;
	height: auto;
	max-width: 100%;
	width: 100%;
}

body.sln-site-shell-enabled .image-grid .d-flex.flex-grow-1 {
	flex-grow: 0 !important;
	min-height: 0 !important;
}

body.sln-site-shell-enabled .image-grid h2 {
	font-family: "Montserrat", sans-serif;
	line-height: 1.2;
	margin: 0 0 0.85rem;
}

body.sln-site-shell-enabled .image-grid .sln-fluid-empty-media,
body.sln-site-shell-enabled .sln-fluid-empty {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	padding: 0 !important;
}

@media (max-width: 991.98px) {
	body.sln-site-shell-enabled .image-grid {
		padding-bottom: 1.5rem !important;
		padding-top: 1.25rem !important;
	}

	body.sln-site-shell-enabled .image-grid h2 {
		font-size: clamp(1.55rem, 6vw, 2.15rem);
		text-align: center;
	}

	body.sln-site-shell-enabled .image-grid .row-4 {
		display: grid;
		gap: 0.5rem;
		grid-template-columns: 1fr 1fr;
		margin: 0.5rem 0 0;
	}

	body.sln-site-shell-enabled .image-grid .row-4 > [class*="col-"] {
		flex: none;
		max-width: none;
		padding: 0;
		width: auto;
	}
}

@media (max-width: 575.98px) {
	body.sln-site-shell-enabled .image-grid .row:first-child > [class*="col-"] {
		flex: 0 0 100%;
		max-width: 100%;
		padding-left: 0;
		padding-right: 0;
		width: 100%;
	}
}

@media (min-width: 576px) and (max-width: 991.98px) {
	body.sln-site-shell-enabled .image-grid .row:first-child {
		align-items: flex-start;
		display: flex;
		flex-wrap: nowrap;
		gap: 0.75rem;
	}

	body.sln-site-shell-enabled .image-grid .row:first-child > [class*="col-"] {
		flex: 1 1 50%;
		max-width: 50%;
		min-width: 0;
		padding: 0;
	}

	body.sln-site-shell-enabled .image-grid .row-4 {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (min-width: 992px) and (max-width: 1199.98px) {
	body.sln-site-shell-enabled .image-grid {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	body.sln-site-shell-enabled .image-grid .d-flex.flex-grow-1 {
		flex-grow: 0 !important;
	}
}

/* -------------------------------------------------------------------------- */
/* Restored Careers intro (text-block-0 is more than a page title)            */
/* -------------------------------------------------------------------------- */

body.sln-site-shell-enabled #text-block-0.sln-fluid-keep-intro {
	display: block !important;
	height: auto !important;
	margin: 0 !important;
	overflow: visible !important;
	padding: 0 !important;
}

body.sln-site-shell-enabled #text-block-0.sln-fluid-keep-intro .blue-background-block,
body.sln-site-shell-enabled #text-block-0.sln-fluid-keep-intro .blue-background-block.top-140 {
	box-sizing: border-box;
	left: auto;
	margin: 1.5rem auto 0;
	max-width: 56rem;
	padding: 2rem 1.5rem;
	position: relative !important;
	top: 0 !important;
	width: calc(100% - 2rem);
}

body.sln-site-shell-enabled #text-block-0.sln-fluid-keep-intro .blue-background-block h2 {
	font-size: clamp(1.65rem, 4vw, 2.75rem);
	line-height: 1.15;
	margin-bottom: 0.65rem;
}

body.sln-site-shell-enabled #text-block-0.sln-fluid-keep-intro .blue-background-block p,
body.sln-site-shell-enabled #text-block-0.sln-fluid-keep-intro .blue-background-block h3,
body.sln-site-shell-enabled #text-block-0.sln-fluid-keep-intro .blue-background-block a {
	font-size: clamp(1rem, 2.2vw, 1.2rem);
	line-height: 1.45;
}

@media (max-width: 767.98px) {
	body.sln-site-shell-enabled #text-block-0.sln-fluid-keep-intro .blue-background-block,
	body.sln-site-shell-enabled #text-block-0.sln-fluid-keep-intro .blue-background-block.top-140 {
		margin-top: 1rem;
		padding: 1.35rem 1.15rem;
	}
}

/* -------------------------------------------------------------------------- */
/* Who We Are parent landing cards                                            */
/* -------------------------------------------------------------------------- */

body.sln-site-shell-enabled .sln-who-landing {
	background: #eef1f5;
	padding: 2.25rem 1.15rem 3rem;
}

body.sln-site-shell-enabled .sln-who-landing__inner {
	margin: 0 auto;
	max-width: 1100px;
}

body.sln-site-shell-enabled .sln-who-landing__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

body.sln-site-shell-enabled .sln-who-landing__card {
	background: #fff;
	border: 1px solid #d7deea;
	border-radius: 18px;
	box-shadow: 0 18px 36px rgba(18, 35, 68, 0.08);
	color: #122346;
	display: flex;
	flex-direction: column;
	min-height: 148px;
	padding: 1.4rem 1.25rem 1.25rem;
	text-decoration: none;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

body.sln-site-shell-enabled .sln-who-landing__card:hover,
body.sln-site-shell-enabled .sln-who-landing__card:focus {
	box-shadow: 0 24px 44px rgba(18, 35, 68, 0.14);
	color: #122346;
	text-decoration: none;
	transform: translateY(-2px);
}

body.sln-site-shell-enabled .sln-who-landing__card h2 {
	font-family: "Montserrat", sans-serif;
	font-size: 1.2rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	margin: 0 0 0.45rem;
}

body.sln-site-shell-enabled .sln-who-landing__card p {
	color: #3d4f66;
	font-size: 0.95rem;
	line-height: 1.45;
	margin: 0;
}

@media (min-width: 576px) and (max-width: 991.98px) {
	body.sln-site-shell-enabled .sln-who-landing__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (min-width: 992px) {
	body.sln-site-shell-enabled .sln-who-landing__grid {
		grid-template-columns: 1fr 1fr 1fr;
	}

	body.sln-site-shell-enabled .sln-who-landing {
		padding: 2.75rem 1.5rem 3.5rem;
	}
}

/* -------------------------------------------------------------------------- */
/* Mid-width stacking (resize / 1024 / laptop)                                */
/* -------------------------------------------------------------------------- */

@media (max-width: 1199.98px) {
	body.sln-site-shell-enabled .row {
		max-width: 100%;
	}

	body.sln-site-shell-enabled .text-block.skew .container-690 {
		max-width: 100%;
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	body.sln-site-shell-enabled .service-list ul {
		column-gap: 1.25rem;
	}
}

@media (max-width: 991.98px) {
	body.sln-site-shell-enabled .text-block .layout-container,
	body.sln-site-shell-enabled .text-block.benefits .layout-container,
	body.sln-site-shell-enabled .text-block.awards .layout-container {
		padding-left: 0;
		padding-right: 0;
	}

	body.sln-site-shell-enabled .text-block.benefits ul,
	body.sln-site-shell-enabled .service-list ul {
		column-count: 1;
	}

	body.sln-site-shell-enabled .blue-background-block.top-140 {
		left: auto;
		margin-left: auto;
		margin-right: auto;
		max-width: calc(100% - 1.5rem);
		position: relative;
		top: 0;
		width: auto;
	}

	body.sln-site-shell-enabled .portfolio-block .portfolio-bg {
		min-height: 0;
	}

	body.sln-site-shell-enabled .news-block .container {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	body.sln-site-shell-enabled .news-block .owl-carousel.owl-theme .owl-next,
	body.sln-site-shell-enabled .news-block .owl-carousel.owl-theme .owl-prev {
		right: 0;
		left: auto;
	}

	body.sln-site-shell-enabled .news-block .owl-carousel.owl-theme .owl-prev {
		left: 0;
		right: auto;
	}
}

@media (max-width: 767.98px) {
	body.sln-site-shell-enabled .text-block.skew .container-690 {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	body.sln-site-shell-enabled .checklist-bg {
		background-size: cover;
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

/* Hamburger vs mega menu: reinforce the 1024 split so a live resize cannot show both. */
@media (max-width: 1024px) {
	body.sln-mobile-nav-enabled.sln-site-shell-enabled #mega-menu-wrap-primary,
	body.sln-mobile-nav-enabled.sln-site-shell-enabled #mega-menu-wrap-primary .mega-menu-toggle,
	body.sln-mobile-nav-enabled.sln-site-shell-enabled #mega-menu-primary {
		display: none !important;
		pointer-events: none !important;
		visibility: hidden !important;
	}
}

@media (min-width: 1025px) {
	body.sln-mobile-nav-enabled.sln-site-shell-enabled .sln-mnav,
	body.sln-mobile-nav-enabled.sln-site-shell-enabled .sln-site-header__menu-btn {
		display: none !important;
		pointer-events: none !important;
		visibility: hidden !important;
	}
}

/* Ultrawide canvas — last so fluid-layout / fluid-shell cannot stretch #page past the box. */
@media (min-width: 1921px) {
	html {
		--sln-canvas: min(2560px, max(1920px, calc(100vw - 160px)));
		background: #122346;
	}

	body.sln-site-shell-enabled,
	body.sln-site-shell-enabled.sln-fluid-shell-enabled {
		background: #122346;
	}

	body.sln-site-shell-enabled #page,
	body.sln-site-shell-enabled #page.site {
		background: #fff;
		box-shadow: 0 0 48px rgba(0, 0, 0, 0.28);
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: var(--sln-canvas) !important;
		overflow-x: clip;
		width: 100%;
	}

	body.sln-site-shell-enabled.sln-home-hero-active #page,
	body.sln-site-shell-enabled.sln-home-hero-active #page.site {
		background: #0a1628;
	}

	body.sln-site-shell-enabled.sln-home-hero-active .custom-header-media.sln-home-hero-enhanced,
	body.sln-site-shell-enabled.sln-page-banner-active .custom-header-media.large-format,
	body.sln-site-shell-enabled.sln-page-banner-active .custom-header-media.sln-page-banner-media {
		margin-left: 0 !important;
		margin-right: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	body.sln-site-shell-enabled.sln-sticky-header-active #main-nav.navbar {
		left: max(0px, calc((100vw - var(--sln-canvas)) / 2));
		max-width: var(--sln-canvas);
		right: max(0px, calc((100vw - var(--sln-canvas)) / 2));
		width: auto;
	}

	/* Designed WWD containers keep theme widths. Do not stretch container-690 / overlay cards. */
	body.sln-site-shell-enabled .container-fluid,
	body.sln-site-shell-enabled .layout-container {
		max-width: 100%;
	}

	body.sln-site-shell-enabled.sln-page-banner-wwd-mobile .custom-header-media.large-format,
	body.sln-site-shell-enabled.sln-page-banner-wwd-mobile .custom-header-media.sln-page-banner-media {
		margin-left: 0 !important;
		margin-right: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	body.sln-site-shell-enabled .news-list-block .container.container-950 {
		max-width: min(92rem, calc(100% - 3rem)) !important;
	}

	body.sln-site-shell-enabled #footer-full-content,
	body.sln-site-shell-enabled #wrapper-footer,
	body.sln-site-shell-enabled #wrapper-footer .container {
		max-width: 100%;
	}
}

/* Readable type on the larger canvas — WWD only so Newsroom/Home designed sizes stay put. */
@media (min-width: 2081px) {
	body.sln-site-shell-enabled.sln-wwd-page .entry-content p,
	body.sln-site-shell-enabled.sln-wwd-page .tabbed-block p,
	body.sln-site-shell-enabled.sln-wwd-page .text-block p,
	body.sln-site-shell-enabled.sln-wwd-page .tabbed-block .div-links a {
		font-size: clamp(1rem, 0.28vw + 0.72rem, 1.2rem);
		line-height: 1.65;
	}

	body.sln-site-shell-enabled.sln-wwd-page .tabbed-block h2,
	body.sln-site-shell-enabled.sln-wwd-page .text-block .text-block-title,
	body.sln-site-shell-enabled.sln-wwd-page .text-block .entry-title {
		font-size: clamp(2.35rem, 1.35vw + 0.55rem, 3.15rem);
	}
}
