/**
 * 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: min(950px, 100%);
	overflow: visible;
	padding-left: 1rem;
	padding-right: 1rem;
	width: 100%;
}

body.sln-site-shell-enabled .image-grid .row {
	display: grid;
	gap: 0.55rem;
	grid-template-columns: 1fr;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 100%;
	width: 100%;
}

body.sln-site-shell-enabled .image-grid .row-4 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.sln-site-shell-enabled .image-grid [class*="col-"] {
	box-sizing: border-box;
	max-width: none;
	min-width: 0;
	padding: 0;
	width: 100%;
}

body.sln-site-shell-enabled .image-grid a {
	display: block;
	line-height: 0;
	max-width: 100%;
	width: 100%;
}

body.sln-site-shell-enabled .image-grid img {
	aspect-ratio: 1 / 1;
	background: #eef1f5;
	display: block;
	height: auto;
	max-width: 100%;
	object-fit: cover;
	width: 100%;
}

body.sln-site-shell-enabled .image-grid .flex-grow-0 img {
	aspect-ratio: 16 / 11;
}

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 > [class*="col-"] {
		flex: none !important;
		max-width: none !important;
		padding: 0 !important;
		width: 100% !important;
	}
}

@media (min-width: 576px) {
	body.sln-site-shell-enabled .image-grid .row:not(.row-4) {
		align-items: start;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	body.sln-site-shell-enabled .image-grid .row-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	body.sln-site-shell-enabled .image-grid img,
	body.sln-site-shell-enabled .image-grid .flex-grow-0 img {
		aspect-ratio: auto;
	}
}

@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 this file cannot stretch #page past the centered 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;
	}
}
