
		/* Mega-menu. li.has-megamenu keeps position:relative (inherited from
		   the existing nav li styles), so each megamenu positions relative
		   to its own trigger. */

		header .megamenu {
			position: absolute;
			top: 100%;
			left: 50%;
			-webkit-transform: translateX(-50%);
			transform: translateX(-50%);
			width: 55rem;
			background: #fff;
			border-top: 3px solid #809F26;
			border-left: 1px solid rgba(0, 0, 0, .06);
			border-right: 1px solid rgba(0, 0, 0, .06);
			border-bottom: 1px solid rgba(0, 0, 0, .06);
			opacity: 0;
			visibility: hidden;
			z-index: 50;
			white-space: normal;
			-webkit-transition: opacity .3s ease-in-out, visibility .3s ease-in-out;
			transition: opacity .3s ease-in-out, visibility .3s ease-in-out;
		}

		header .megamenu.narrow {
			width: 37.5rem;
		}

		header nav ul li.has-megamenu:hover .megamenu {
			opacity: 1;
			visibility: visible;
		}

		/* Override: don't apply the existing blue-bg hover style to mega-menu links */
		header .megamenu li:hover a,
		header .megamenu a:hover {
			background: transparent;
		}

		.megamenu-inner {
			padding: 0;
		}

		.megamenu-grid {
			display: grid;
			grid-template-columns: minmax(0, 1fr) minmax(0, 22rem);
			gap: 0;
			text-align: left;
		}

		.megamenu.narrow .megamenu-grid {
			grid-template-columns: minmax(0, 1fr) minmax(0, 16rem);
		}

		.megamenu-content {
			padding: 2rem;
			display: flex;
			flex-direction: column;
		}

		/* Small "Get in touch" CTA sits at the bottom-left of the content column.
		   Three variants to compare side-by-side: ghost / green / blue. */
		.megamenu-cta-wrap {
			margin-top: auto;
			padding-top: 1.5rem;
		}

		.megamenu-cta {
			display: inline-block;
			padding: .55rem 1.25rem;
			font-family: 'Montserrat', sans-serif;
			font-size: .875rem;
			font-weight: 700;
			text-transform: uppercase;
			letter-spacing: .04em;
			border-radius: 999px;
			text-decoration: none;
			-webkit-transition: all .3s ease-in-out;
			transition: all .3s ease-in-out;
		}

		/* Ghost outline — colour matches the spotlight on the same dropdown */
		header nav ul li.has-megamenu:hover .megamenu .megamenu-cta--ghost,
		header .megamenu .megamenu-cta--ghost {
			border: 1.5px solid #1D71A4;
			background: transparent;
			color: #1D71A4;
		}

		header nav ul li.has-megamenu:hover .megamenu .megamenu-cta--ghost:hover,
		header .megamenu .megamenu-cta--ghost:hover {
			background: #1D71A4;
			color: #fff;
		}

		header nav ul li.has-megamenu:hover .megamenu .megamenu-cta--ghost-green,
		header .megamenu .megamenu-cta--ghost-green {
			border: 1.5px solid #809F26;
			background: transparent;
			color: #809F26;
		}

		header nav ul li.has-megamenu:hover .megamenu .megamenu-cta--ghost-green:hover,
		header .megamenu .megamenu-cta--ghost-green:hover {
			background: #809F26;
			color: #fff;
		}

		.megamenu-section {
			margin-bottom: 2rem;
		}

		.megamenu-section:last-child {
			margin-bottom: 0;
		}

		.megamenu-section-title {
			font-family: 'Montserrat', sans-serif;
			font-size: 1rem;
			font-weight: 700;
			text-transform: uppercase;
			letter-spacing: .04em;
			color: #809F26;
			margin: 0 0 1rem;
			line-height: 110%;
		}

		.megamenu-links {
			list-style: none !important;
			padding: 0 !important;
			margin: 0;
			display: grid;
			grid-template-columns: 1fr;
			gap: 0;
		}

		.megamenu-links.cols-2 {
			grid-template-columns: 1fr 1fr;
			gap: 0 2rem;
		}

		.megamenu-links.cols-3 {
			display: block;
			column-count: 3;
			column-gap: 2rem;
		}

		.megamenu-links.cols-3 li {
			-webkit-column-break-inside: avoid;
			page-break-inside: avoid;
			break-inside: avoid;
		}

		.megamenu-links li {
			padding: 0 !important;
			margin: 0 !important;
			display: block !important;
			width: auto !important;
		}

		header .megamenu .megamenu-links li a {
			display: block;
			padding: .5rem 0;
			font-family: 'Lato', sans-serif;
			font-size: 1rem;
			font-weight: 400;
			text-transform: none;
			color: #444;
			letter-spacing: 0;
			background: transparent !important;
		}

		header .megamenu .megamenu-links li a:hover {
			color: #1D71A4;
			background: transparent !important;
		}

		/* Bolded "category" links (Products & Hardware dropdown) */
		header .megamenu .megamenu-links.categories li a {
			font-family: 'Montserrat', sans-serif;
			font-size: 1rem;
			font-weight: 700;
			padding: .75rem 0;
		}

		header .megamenu .megamenu-links li a.sublink {
			font-family: 'Lato', sans-serif;
			font-size: .9375rem;
			font-weight: 400;
			padding: .25rem 0 .5rem 1.25rem;
			color: #666;
			border-left: 2px solid #e5e5e5;
			margin-left: .25rem;
		}

		header .megamenu .megamenu-links li a.sublink:hover {
			color: #1D71A4;
			border-left-color: #1D71A4;
		}

		.megamenu-divider {
			height: 1px;
			background: #e5e5e5;
			margin: 1rem 0;
		}

		/* SPOTLIGHT panel — flat rectangle in DTC brand colour, no rounded corners */
		.megamenu-spotlight {
			background: #1D71A4;
			color: #fff;
			padding: 1.75rem;
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-orient: vertical;
			-webkit-box-direction: normal;
			-ms-flex-direction: column;
			flex-direction: column;
		}

		.megamenu-spotlight.green {
			background: #809F26;
		}

		.megamenu-spotlight-image {
			height: 8rem;
			background: rgba(255, 255, 255, .12);
			margin-bottom: 1rem;
			position: relative;
		}

		.megamenu-spotlight-image::after {
			content: "[ PHOTO ]";
			position: absolute;
			top: 50%;
			left: 50%;
			-webkit-transform: translate(-50%, -50%);
			transform: translate(-50%, -50%);
			font-family: 'Montserrat', sans-serif;
			font-size: .75rem;
			color: rgba(255, 255, 255, .5);
			letter-spacing: .15em;
		}

		.megamenu-spotlight-eyebrow {
			font-family: 'Montserrat', sans-serif;
			font-size: .75rem;
			font-weight: 700;
			text-transform: uppercase;
			letter-spacing: .12em;
			color: rgba(255, 255, 255, .8);
			margin: 0 0 .5rem;
			padding: 0;
			line-height: 110%;
		}

		.megamenu-spotlight-title {
			font-family: 'Montserrat', sans-serif;
			font-size: 1.25rem;
			font-weight: 700;
			line-height: 110%;
			color: #fff;
			margin: 0 0 .75rem;
		}

		.megamenu-spotlight-body {
			font-family: 'Lato', sans-serif;
			font-size: .9375rem;
			line-height: 140%;
			color: rgba(255, 255, 255, .95);
			margin: 0 0 1.25rem;
			padding: 0;
			-webkit-box-flex: 1;
			-ms-flex: 1;
			flex: 1;
		}

		.megamenu-spotlight-cta {
			display: inline-block;
			padding: .75rem 1.5rem;
			font-family: 'Montserrat', sans-serif;
			font-size: .9375rem;
			font-weight: 700;
			text-transform: uppercase;
			letter-spacing: .03em;
			text-align: center;
			align-self: flex-start;
			border-radius: 999px;
			-webkit-transition: all .3s ease-in-out;
			transition: all .3s ease-in-out;
		}

		/* High-specificity colour rules — needed because the existing site CSS
		   has `header nav ul li:hover a { background:#1D71A4; color:#fff }`,
		   which fires when the dropdown opens (li is being hovered) and
		   would otherwise paint over the spotlight CTA. */
		header nav ul li.has-megamenu:hover .megamenu .megamenu-spotlight-cta,
		header .megamenu .megamenu-spotlight-cta {
			background: #fff;
			color: #1D71A4;
		}

		header nav ul li.has-megamenu:hover .megamenu .megamenu-spotlight.green .megamenu-spotlight-cta,
		header .megamenu .megamenu-spotlight.green .megamenu-spotlight-cta {
			background: #fff;
			color: #809F26;
		}

		header nav ul li.has-megamenu:hover .megamenu .megamenu-spotlight-cta:hover,
		header .megamenu .megamenu-spotlight-cta:hover {
			background: rgba(255, 255, 255, .92);
		}

		/* Pill-shape the existing DTC .btn — applies to the header Contact button too */
		.btn {
			border-radius: 999px;
		}

		/* ========================================================================
		   SINGLE-ROW HEADER MODERNIZATION
		   Overrides the existing two-row header layout from default.css. The new
		   layout: logo (left) | nav (middle, flex-grow) | search + contact pill (right)
		   plus a sticky-compact-on-scroll behaviour and animated underline on nav.
		   ======================================================================== */

		header {
			position: -webkit-sticky;
			position: sticky;
			top: 0;
			background: #fff;
			-webkit-transition: padding .25s ease;
			transition: padding .25s ease;
		}

		/* Promo bar — sits above the main header row, hides when compact */
		.header-promo {
			background: #1D71A4;
			color: #fff;
			text-align: center;
			padding: .65rem 0;
			font-family: 'Lato', sans-serif;
			font-size: .9rem;
			overflow: hidden;
			max-height: 3rem;
			-webkit-transition: max-height .25s ease, padding .25s ease;
			transition: max-height .25s ease, padding .25s ease;
		}

		.header-promo a {
			color: #fff;
			font-weight: 700;
			margin-left: .25rem;
		}

		.header-promo a:hover {
			color: rgba(255, 255, 255, .85);
		}

		header.is-compact .header-promo {
			max-height: 0;
			padding-top: 0;
			padding-bottom: 0;
		}

		header .header-row {
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: stretch;
			-ms-flex-align: stretch;
			align-items: stretch;
			-ms-flex-wrap: nowrap;
			flex-wrap: nowrap;
			gap: 1rem;
			padding-top: 0;
			padding-bottom: 0;
			-webkit-transition: padding .25s ease;
			transition: padding .25s ease;
		}

		/* Kill the .row clearfix pseudo-elements — they become phantom
		   flex items in our flex header row and force wrapping at narrow widths. */
		header .header-row::before,
		header .header-row::after {
			content: none;
			display: none;
		}

		/* Logo — clear existing float / fixed heights, vertically centre */
		header a.logo {
			float: none !important;
			height: auto !important;
			margin: 0 !important;
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: center;
			-ms-flex-align: center;
			align-items: center;
			padding: 1rem 0;
			-ms-flex-negative: 0;
			flex-shrink: 0;
		}

		/* Nav — stretches to full header height so li bottom = header bottom.
		   Also serves as the positioning context for the megamenu so dropdowns
		   centre on the nav (page middle) instead of on individual triggers. */
		header nav {
			float: none !important;
			padding-top: 0 !important;
			-webkit-box-flex: 1;
			-ms-flex: 1;
			flex: 1;
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: stretch;
			-ms-flex-align: stretch;
			align-items: stretch;
			text-align: center;
			position: relative;
		}

		/* Override the existing position:relative on nav li.has-megamenu so
		   the megamenu's absolute positioning resolves against the nav. */
		header nav ul li.has-megamenu {
			position: static !important;
		}

		/* Force nav items onto a single line, tighten gaps, full-height items */
		header nav ul {
			white-space: nowrap;
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-pack: center;
			-ms-flex-pack: center;
			justify-content: center;
			-ms-flex-wrap: nowrap;
			flex-wrap: nowrap;
			width: 100%;
		}

		header nav ul li {
			padding: 0 .25rem !important;
			-ms-flex-negative: 0;
			flex-shrink: 0;
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: center;
			-ms-flex-align: center;
			align-items: center;
		}

		/* Override existing UPPERCASE nav typography — use title case as written in HTML */
		header nav ul li > a {
			text-transform: none;
		}

		/* The Contact-utils column also vertically centres */
		.header-utils {
			-webkit-box-align: center;
			-ms-flex-align: center;
			align-items: center;
		}

		/* Header utilities (search icon + Contact pill) */
		.header-utils {
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: center;
			-ms-flex-align: center;
			align-items: center;
			gap: 1rem;
			-ms-flex-negative: 0;
			flex-shrink: 0;
		}

		/* SEARCH — icon toggles a full-width slide-down panel below the header.
		   Doesn't push the header layout around. */
		.header-search-toggle {
			background: transparent;
			border: 0;
			cursor: pointer;
			display: -webkit-inline-box;
			display: -ms-inline-flexbox;
			display: inline-flex;
			-webkit-box-align: center;
			-ms-flex-align: center;
			align-items: center;
			-webkit-box-pack: center;
			-ms-flex-pack: center;
			justify-content: center;
			color: #1D71A4;
			font-size: 1.25rem;
			padding: .5rem;
			-webkit-transition: color .3s ease-in-out;
			transition: color .3s ease-in-out;
		}

		.header-search-toggle:hover {
			color: #809F26;
		}

		.header-search-toggle .icon-close {
			display: none;
		}

		header.is-searching .header-search-toggle .icon-search {
			display: none;
		}

		header.is-searching .header-search-toggle .icon-close {
			display: inline-block;
		}

		.header-search-panel {
			max-height: 0;
			overflow: hidden;
			background: #f5f5f5;
			border-top: 1px solid rgba(0, 0, 0, .06);
			-webkit-transition: max-height .3s ease;
			transition: max-height .3s ease;
		}

		header.is-searching .header-search-panel {
			max-height: 6rem;
		}

		.header-search-panel .container {
			padding-top: 1rem;
			padding-bottom: 1rem;
		}

		.header-search-panel input {
			width: 100%;
			height: 3rem;
			padding: 0 1.5rem;
			border: 1px solid #cfcfcf;
			background: #fff;
			color: #333;
			font-family: 'Lato', sans-serif;
			font-size: 1rem;
			border-radius: 999px;
			outline: none;
			-webkit-transition: border-color .2s ease;
			transition: border-color .2s ease;
		}

		.header-search-panel input:focus {
			border-color: #1D71A4;
		}

		.header-search-panel input::-webkit-input-placeholder { color: #888; opacity: 1; font-style: italic; }
		.header-search-panel input::-moz-placeholder { color: #888; opacity: 1; font-style: italic; }
		.header-search-panel input:-ms-input-placeholder { color: #888; opacity: 1; font-style: italic; }
		.header-search-panel input::placeholder { color: #888; opacity: 1; font-style: italic; }

		/* Compact Contact pill — autosize to content, smaller text */
		.header-utils .btn,
		.header-utils .btn.green {
			width: auto !important;
			float: none !important;
			margin: 0 !important;
			height: auto;
			padding: .65rem 1.5rem;
			font-size: 1rem;
			letter-spacing: .03em;
		}

		/* Hamburger — hide on desktop, show on mobile */
		header #menu_btn {
			display: none;
		}

		/* ANIMATED UNDERLINE on nav hover — replaces the existing solid blue-fill */
		header nav ul li:hover > a,
		header nav ul li.has-megamenu:hover > a,
		header nav ul li.current-menu-item > a {
			background: transparent !important;
			color: #1D71A4 !important;
		}

		header nav ul li > a {
			position: relative;
		}

		header nav ul li > a::after {
			content: '';
			position: absolute;
			left: 0;
			bottom: -2px;
			width: 0;
			height: 2px;
			background: #1D71A4;
			-webkit-transition: width .3s ease;
			transition: width .3s ease;
		}

		header nav ul li:hover > a::after,
		header nav ul li.has-megamenu:hover > a::after,
		header nav ul li.current-menu-item > a::after {
			width: 100%;
		}

		/* STICKY COMPACT on scroll — shrink the logo's vertical padding,
		   which drives the whole header's height (since nav + utils stretch
		   to match the logo's height). */
		header.is-compact a.logo {
			padding: .25rem 0;
			-webkit-transition: padding .25s ease;
			transition: padding .25s ease;
		}

		header a.logo {
			-webkit-transition: padding .25s ease;
			transition: padding .25s ease;
		}

		/* Mobile breakpoint — below 1200px the DTC nav (5 UPPERCASE
		   Montserrat items + logo + utils) genuinely can't fit, so flip
		   to a hamburger. We restyle #menu_btn ourselves rather than
		   depend on the live theme's body.tablet pattern. */
		header #menu_btn {
			display: none;
			position: relative !important;
			top: auto !important;
			right: auto !important;
			left: auto !important;
			float: none !important;
			width: 2.5rem;
			height: 2.5rem;
			background: transparent;
			cursor: pointer;
			-ms-flex-negative: 0;
			flex-shrink: 0;
			-ms-flex-item-align: center;
			align-self: center;
		}

		header #menu_btn span {
			display: block;
			position: absolute;
			height: 2px;
			width: 1.5rem;
			background: #1D71A4;
			border-radius: 2px;
			left: .5rem;
			-webkit-transition: .25s ease-in-out;
			transition: .25s ease-in-out;
		}

		header #menu_btn span:nth-child(1) { top: .65rem; }
		header #menu_btn span:nth-child(2),
		header #menu_btn span:nth-child(3) { top: 1.15rem; }
		header #menu_btn span:nth-child(4) { top: 1.65rem; }

		@media (max-width: 1200px) {
			header nav {
				display: none;
			}

			/* push utils + hamburger to the right edge */
			header .header-utils {
				margin-left: auto;
			}

			header #menu_btn {
				display: block;
			}

			header .header-search-toggle {
				display: none;
			}
		}

		/* Body placeholder so the page isn't blank below the menu */
		.proto-body {
			padding: 4rem 2rem;
			max-width: 60rem;
			margin: 0 auto;
			text-align: center;
			color: #888;
		}

		.proto-body h1 {
			font-family: 'Montserrat', sans-serif;
			font-size: 2rem;
			font-weight: 400;
			color: #555;
			margin: 0 0 1rem;
		}

		.proto-body p {
			font-size: 1rem;
			line-height: 150%;
			color: #888;
		}

		.proto-body code {
			background: #f3f3f3;
			padding: .125rem .5rem;
			color: #555;
			font-size: .875rem;
		}


/* When the spotlight image div has an actual image, hide the [ PHOTO ] placeholder text */
.megamenu-spotlight-image.has-image::after { display: none; }

/* When the spotlight image has a real photo, extend edge-to-edge and make it taller */
.megamenu-spotlight-image.has-image {
	margin: -1.75rem -1.75rem 1.25rem -1.75rem;
	height: 12rem;
	border-radius: 0;
}

/* ========================================================================
   SERVICE LANDING — Hero banner (banner--service)
   Overrides the existing .banner styles for fixed-height illustrated
   heroes; this variant is photographic, taller, with text on left + photo
   on right and a stats strip below.
   ======================================================================== */

.banner.banner--service {
	height: auto;
	overflow: hidden;
	position: relative;
	background: #f7f8fa;
	margin-bottom: 0;
	padding: 0;
	box-shadow: none;
}

.banner.banner--service .container {
	padding: 0 2rem;
	position: relative;
	z-index: 1;
}

.banner--service .banner__inner {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	-webkit-box-align: stretch;
	-ms-flex-align: stretch;
	align-items: stretch;
	gap: 3.5rem;
	min-height: 22rem;
	padding: 0;
}

.banner--service .banner__text {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	text-align: left;
	min-width: 0;
	padding: 3.5rem 0;
}

/* UPPERCASE blue title tag — DTC signature */
.banner--service .banner__title {
	display: inline-block;
	background: #1D71A4;
	color: #fff;
	padding: .7rem 1.4rem;
	font-family: 'Montserrat', sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .015em;
	line-height: 1;
	margin: 0 0 1.5rem;
	width: auto;
	max-width: max-content;
}

.banner--service .banner__subhead {
	font-family: 'Lato', sans-serif;
	font-size: 1.0625rem;
	font-weight: 400;
	color: #555;
	line-height: 1.55;
	margin: 0 0 2rem;
	max-width: 32rem;
	padding-bottom: 0;
}

.banner--service .banner__ctas {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: 1rem;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

/* Primary green pill */
.banner--service .btn.green {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	height: auto;
	padding: .7rem 1.6rem;
	font-size: .9375rem;
}

/* Secondary ghost-outline pill */
.banner--service .btn-ghost {
	display: inline-block;
	padding: .7rem 1.6rem;
	font-family: 'Montserrat', sans-serif;
	font-size: .9375rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: #1D71A4;
	background: transparent;
	border: 1.5px solid #1D71A4;
	border-radius: 999px;
	text-align: center;
	text-decoration: none;
	-webkit-transition: all .3s ease-in-out;
	transition: all .3s ease-in-out;
}

.banner--service .btn-ghost:hover {
	background: #1D71A4;
	color: #fff;
}

/* Photo — fills full hero height (no top/bottom gaps), extends to viewport edge on right */
.banner--service .banner__photo {
	position: relative;
	height: auto;
	overflow: hidden;
	/* boxed — no viewport-edge bleed, stays within container */
}

.banner--service .banner__photo img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: center 25%;
	object-position: center 25%;
	display: block;
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
}

/* Photo overlay accent — slim brand-coloured slash on the left edge */
.banner--service .banner__photo::after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: .25rem;
	background: linear-gradient(180deg, #1D71A4 0%, #1D71A4 50%, #809F26 50%, #809F26 100%);
	z-index: 2;
}

/* Stats strip — quieter, brand-blue but contained */
.banner--service .banner__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	padding: 1.5rem 0;
	background: #fff;
	border-top: 1px solid rgba(0, 0, 0, .08);
	margin: 0;
}

.banner--service .banner__stats .stat {
	padding: 0 1.5rem;
	border-right: 1px solid rgba(0, 0, 0, .06);
}

.banner--service .banner__stats .stat:last-child {
	border-right: none;
}

.banner--service .banner__stats .num {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 1.375rem;
	font-weight: 700;
	color: #1D71A4;
	line-height: 1.15;
	margin-bottom: .25rem;
	letter-spacing: -.01em;
}

.banner--service .banner__stats .lbl {
	display: block;
	font-family: 'Lato', sans-serif;
	font-size: .875rem;
	color: #666;
	line-height: 1.4;
	text-transform: none;
}

/* Mobile */
@media (max-width: 900px) {
	.banner--service .banner__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding: 2rem 0;
		min-height: 0;
	}
	.banner--service .banner__photo {
		margin-right: -2rem;
		margin-left: -2rem;
		order: -1;
	}
	.banner--service .banner__photo img {
		min-height: 14rem;
		height: 14rem;
	}
	.banner--service .banner__title {
		font-size: 1.5rem;
		padding: .75rem 1.25rem;
	}
	.banner--service .banner__subhead {
		font-size: 1rem;
	}
	.banner--service .banner__stats {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.5rem 0;
		padding: 1.5rem 0;
	}
	.banner--service .banner__stats .stat:nth-child(2) {
		border-right: none;
	}
	.banner--service .banner__stats .num {
		font-size: 1.75rem;
	}
	.banner.banner--service::before {
		display: none;
	}
}

/* ========================================================================
   SERVICE LANDING — Plexstar-inspired section refinements
   Apply consistent eyebrow tags, bigger section H2s, flatten the bordered
   cards in WhatWeDo, switch feature CTAs to ghost-outline, more whitespace.
   ======================================================================== */

/* Reusable section eyebrow pill tag */
.dtc-section-eyebrow {
	display: inline-block;
	background: rgba(29, 113, 164, .08);
	color: #1D71A4;
	padding: .4rem 1rem;
	font-family: 'Montserrat', sans-serif;
	font-size: .8125rem;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	border-radius: 999px;
	margin: 0 0 1.25rem;
	line-height: 1;
}

/* Bigger, bolder section H2s in DTC blue */
.dtc-sl-whatwedo .dtc-service-callouts-heading,
.dtc-sl-why h2,
.dtc-sl-faq h2,
.dtc-sl-industries h2,
.dtc-sl-closing h2,
.dtc-sl-picker .body h2,
.dtc-sl-feature .body h2 {
	font-family: 'Montserrat', sans-serif !important;
	font-size: 2rem !important;
	font-weight: 700 !important;
	color: #1D71A4 !important;
	line-height: 1.15 !important;
	margin: 0 0 1rem !important;
	letter-spacing: -.015em !important;
	text-transform: none !important;
}

/* Section padding — more breathing room */
.dtc-sl-whatwedo,
.dtc-sl-why,
.dtc-sl-faq,
.dtc-sl-industries,
.dtc-sl-closing {
	padding: 5rem 0 !important;
}

.dtc-sl-feature {
	padding: 4rem 0 !important;
}

.dtc-sl-seo {
	padding: 4rem 0 5rem !important;
}

/* WhatWeDo callouts — flatten, no card borders */
.dtc-sl-whatwedo .dtc-callout {
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	gap: 1.25rem !important;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start !important;
	transition: none !important;
}

.dtc-sl-whatwedo .dtc-callout:hover {
	background: transparent !important;
	transform: none !important;
	box-shadow: none !important;
}

.dtc-sl-whatwedo .dtc-callouts {
	gap: 3rem !important;
	margin-top: 2.5rem;
}

.dtc-sl-whatwedo .dtc-callout-icon {
	width: 56px !important;
	height: 56px !important;
	opacity: 1 !important;
}

.dtc-sl-whatwedo .dtc-callout strong {
	font-family: 'Montserrat', sans-serif !important;
	font-size: 1.1875rem !important;
	font-weight: 700 !important;
	color: #1D71A4 !important;
	display: block;
	margin-bottom: .5rem !important;
}

.dtc-sl-whatwedo .dtc-callout span {
	font-size: 1rem !important;
	color: #555 !important;
	line-height: 1.55 !important;
}

/* Why-DTC reasons — tighter typography, more punch */
.dtc-sl-why .dtc-sl-reason h3 {
	font-family: 'Montserrat', sans-serif !important;
	font-size: 1.1875rem !important;
	font-weight: 700 !important;
	color: #1D71A4 !important;
	margin: 0 0 .6rem !important;
	line-height: 1.25 !important;
}

.dtc-sl-why .dtc-sl-reason p {
	font-size: 1rem !important;
	color: #555 !important;
	line-height: 1.55 !important;
}

/* Feature row CTAs — switch from filled blue to ghost-outline */
.dtc-sl-feature .dtc-product-btn-blue {
	background: transparent !important;
	color: #1D71A4 !important;
	border: 1.5px solid #1D71A4 !important;
	padding: .7rem 1.6rem !important;
	font-family: 'Montserrat', sans-serif !important;
	font-size: .9375rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .03em !important;
	border-radius: 999px !important;
	display: inline-block;
	transition: all .3s ease-in-out !important;
}

.dtc-sl-feature .dtc-product-btn-blue:hover {
	background: #1D71A4 !important;
	color: #fff !important;
	border-color: #1D71A4 !important;
}

/* Feature row body — slightly bigger, more breathable typography */
.dtc-sl-feature .body {
	font-size: 1rem !important;
	line-height: 1.65 !important;
}

.dtc-sl-feature .body p {
	color: #555;
}

/* FAQ — tighter, more designed */
.dtc-sl-faq-list details {
	border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
	padding: 1.25rem 0 !important;
}

.dtc-sl-faq summary {
	font-family: 'Montserrat', sans-serif !important;
	font-weight: 700 !important;
	font-size: 1.0625rem !important;
	color: #1D71A4 !important;
}

.dtc-sl-faq summary::after {
	color: #1D71A4 !important;
	font-weight: 700 !important;
}

/* Industries — flatten cards */
.dtc-sl-industries .dtc-sl-industry-card {
	border: none !important;
	background: rgba(29, 113, 164, .04) !important;
	border-left: 3px solid #1D71A4 !important;
	border-radius: 0 !important;
	transition: background .2s ease !important;
}

.dtc-sl-industries .dtc-sl-industry-card:hover {
	background: rgba(29, 113, 164, .08) !important;
}

.dtc-sl-industries .dtc-sl-industry-card h3 {
	color: #1D71A4 !important;
	font-size: 1.0625rem !important;
}

/* Closing CTA — more punch */
.dtc-sl-closing {
	background: #f7f8fa !important;
}

.dtc-sl-closing p {
	color: #555 !important;
	font-size: 1.0625rem !important;
}

.dtc-sl-closing-cta-row {
	margin-top: 1.75rem;
}

/* ========================================================================
   Drop the alternating grey/white rhythm — everything on white
   ======================================================================== */
.dtc-sl-feature--grey,
.dtc-sl-feature--white,
.dtc-sl-faq,
.dtc-sl-why,
.dtc-sl-industries,
.dtc-sl-seo {
	background: #fff !important;
}

/* Closing CTA — full-bleed dark blue panel as page punctuation */
.dtc-sl-closing {
	background: #1D71A4 !important;
	text-align: center;
	color: #fff !important;
}

.dtc-sl-closing .dtc-section-eyebrow {
	background: rgba(255, 255, 255, .15) !important;
	color: #fff !important;
}

.dtc-sl-closing h2 {
	color: #fff !important;
}

.dtc-sl-closing p {
	color: rgba(255, 255, 255, .9) !important;
	max-width: 40rem;
	margin: 0 auto 1.75rem !important;
}

/* Closing CTA secondary — white ghost on dark blue */
.dtc-sl-closing .dtc-product-btn-secondary {
	color: #fff !important;
	border: 1.5px solid #fff !important;
	background: transparent !important;
}

.dtc-sl-closing .dtc-product-btn-secondary:hover {
	background: #fff !important;
	color: #1D71A4 !important;
	border-color: #fff !important;
}

/* Industries — softer background since everything else is white */
.dtc-sl-industries .dtc-sl-industry-card {
	background: rgba(29, 113, 164, .04) !important;
}

/* ========================================================================
   Card-on-tray layout — body grey, each section a white card.
   Closing CTA stays full-bleed dark blue.
   ======================================================================== */

/* Page body background — same grey as hero */
body.page-template-template-service-landing {
	background: #f7f8fa;
}

/* Every section sits on the grey, becomes a white card */
body.page-template-template-service-landing .dtc-sl-whatwedo,
body.page-template-template-service-landing .dtc-sl-feature,
body.page-template-template-service-landing .dtc-sl-why,
body.page-template-template-service-landing .dtc-sl-seo,
body.page-template-template-service-landing .dtc-sl-faq,
body.page-template-template-service-landing .dtc-sl-industries {
	background: transparent !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-bottom: 1.5rem;
}

body.page-template-template-service-landing .dtc-sl-whatwedo > .container,
body.page-template-template-service-landing .dtc-sl-feature > .container,
body.page-template-template-service-landing .dtc-sl-why > .container,
body.page-template-template-service-landing .dtc-sl-seo > .container,
body.page-template-template-service-landing .dtc-sl-faq > .container,
body.page-template-template-service-landing .dtc-sl-industries > .container {
	background: #fff;
	border-radius: 6px;
	padding: 3.5rem 3rem !important;
	box-shadow: 0 1px 0 rgba(29, 113, 164, .04), 0 1px 3px rgba(0, 0, 0, .03);
}

/* First card (whatwedo) — top margin to separate from hero stats */
body.page-template-template-service-landing .dtc-sl-whatwedo {
	margin-top: 1.5rem;
}

/* Hero stats strip already has background:#fff — keep flush */
body.page-template-template-service-landing .banner--service .banner__stats {
	margin: 0;
}

/* Closing CTA — stays full-bleed dark blue, top spacing from last card */
body.page-template-template-service-landing .dtc-sl-closing {
	margin-top: 1.5rem;
	padding: 5rem 0 !important;
}

/* Feature rows in card-on-tray layout — image pinned to its side, full-bleed */
body.page-template-template-service-landing .dtc-sl-feature > .container {
	padding: 0 !important;
	overflow: hidden;
}

body.page-template-template-service-landing .dtc-sl-feature .dtc-sl-feature-grid {
	gap: 0 !important;
	align-items: stretch !important;
	min-height: 22rem;
}

body.page-template-template-service-landing .dtc-sl-feature .dtc-sl-feature-text {
	padding: 3.5rem 3rem !important;
	align-self: center;
}

body.page-template-template-service-landing .dtc-sl-feature .dtc-sl-feature-image {
	min-height: 22rem;
	height: 100%;
	overflow: hidden;
}

body.page-template-template-service-landing .dtc-sl-feature .dtc-sl-feature-image img {
	width: 100% !important;
	height: 100% !important;
	min-height: 22rem;
	object-fit: cover !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	display: block;
}

/* Push the stats strip down off the hero photo — show grey background between */
.banner--service .banner__stats {
	margin-top: 1.5rem !important;
}

body.page-template-template-service-landing .banner--service .banner__stats {
	margin-top: 1.5rem !important;
}

/* Megamenu: clip any internal overflow so spotlights flush against the right border */
header .megamenu {
	overflow: hidden;
}

/* Belt-and-braces — force spotlight to fill its grid cell horizontally */
header .megamenu .megamenu-spotlight {
	width: 100%;
}

/* Drop the megamenu right border entirely — was showing as a thin outline */
header .megamenu {
	border-right: 0 !important;
	border-left: 0 !important;
	border-bottom: 0 !important;
}

/* Ensure megamenu overlays chat widgets and other high-z UI */
header .megamenu {
	z-index: 100000 !important;
}

/* Chat widget escape — the whole header stacking context needs to be above high-z UI */
header {
	z-index: 100000 !important;
}

/* Industries card grid (3x2 desktop, 2x3 tablet, stacked mobile) */
.dtc-sl-industries-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-top: 1.5rem;
}
.dtc-sl-industries .dtc-sl-industry-card {
    padding: 1.25rem 1.5rem !important;
}
@media (max-width: 900px) {
    .dtc-sl-industries-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .dtc-sl-industries-grid { grid-template-columns: 1fr; }
}

/* Anchor variant of the industry card — inherit card styling, no default link chrome */
a.dtc-sl-industry-card {
    text-decoration: none !important;
    color: inherit !important;
    display: block;
    cursor: pointer;
}
a.dtc-sl-industry-card:hover {
    text-decoration: none !important;
}


/* ================================================================

/* ================================================================
   MOBILE MENU — slide-in drawer with chevron accordion
   Triggered by header.open at viewports <= 1200px
   ================================================================ */
@media (max-width: 1200px) {

  /* Backdrop */
  header.open::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 99998;
    animation: dtcBackdrop .2s ease;
  }
  @keyframes dtcBackdrop { from { opacity: 0 } to { opacity: 1 } }

  /* Drawer — persistent fixed panel; slides via CSS transition (no slideToggle flash) */
  header nav {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(92vw, 380px) !important;
    max-width: 380px !important;
    background: #fff !important;
    z-index: 99999;
    overflow-y: auto;
    padding: 4rem 0 3rem !important;
    box-shadow: -12px 0 32px rgba(0,0,0,.15);
    transform: translateX(100%);
    transition: transform .28s ease;
  }
  header.open nav { transform: translateX(0); }

  /* Neutralise parent-theme slideToggle: keep the top-level UL always full-height */
  header nav > ul {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }

  /* Top-level list */
  header nav > ul {
    display: block !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
  }

  header nav > ul > li {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border-bottom: 1px solid rgba(0,0,0,.06);
    position: relative;
  }

  header nav > ul > li:last-child { border-bottom: none; }

  header nav > ul > li > a {
    display: block !important;
    padding: 1rem 3rem 1rem 1.5rem !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: .9375rem !important;
    font-weight: 700 !important;
    color: #1D71A4 !important;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: transparent !important;
    text-decoration: none !important;
    line-height: 1.3 !important;
  }

  header nav > ul > li:hover > a { background: transparent !important; color: #1D71A4 !important; }

  /* Force positioning context for injected chevron — beats parent theme */
  header nav > ul > li.has-megamenu { position: relative !important; }

  /* Injected chevron button */
  .dtc-mobile-chevron {
    position: absolute;
    top: 0;
    right: 0;
    width: 3rem;
    height: 3rem;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1D71A4;
    transition: transform .2s ease;
  }
  .dtc-mobile-chevron::before {
    content: '';
    width: .5rem;
    height: .5rem;
    border-right: 2px solid #1D71A4;
    border-bottom: 2px solid #1D71A4;
    transform: rotate(45deg);
    margin-top: -.2rem;
  }
  .dtc-mobile-chevron[aria-expanded="true"] { transform: rotate(180deg); }

  /* Mega-menu content — collapsed by default in mobile */
  header nav .megamenu {
    display: none !important;
    position: static !important;
    background: #f7f9fb !important;
    box-shadow: none !important;
    padding: .75rem 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: none !important;
    transform: none !important;
    border: none !important;
    left: auto !important;
    top: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  header nav > ul > li.dtc-mobile-expanded > .megamenu { display: block !important; }
  header nav > ul > li.dtc-mobile-expanded { background: rgba(29,113,164,.04) !important; }

  header nav .megamenu .row,
  header nav .megamenu-inner {
    display: block !important;
    flex-direction: column !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  header nav .megamenu-section {
    padding: .5rem 0 !important;
    margin: 0 !important;
    border: none !important;
  }

  header nav .megamenu-section-header {
    font-family: 'Lato', sans-serif !important;
    font-size: .6875rem !important;
    font-weight: 700 !important;
    color: #999 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    padding: .5rem 1.5rem .25rem !important;
    margin: 0 !important;
    background: transparent !important;
  }

  header nav .megamenu-section-child,
  header nav .megamenu li,
  header nav .sublink {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
  }

  header nav .megamenu-section-child a,
  header nav .megamenu li a,
  header nav a.sublink {
    display: block !important;
    padding: .625rem 1.5rem !important;
    color: #333 !important;
    background: transparent !important;
    text-decoration: none !important;
    font-family: 'Lato', sans-serif !important;
    font-size: .9375rem !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.4 !important;
  }

  /* Hide desktop-only bits */
  header nav .megamenu-spotlight,
  header nav .megamenu-get-in-touch { display: none !important; }

  /* Close (×) button — top-right of drawer */
  .dtc-mobile-close {
    position: fixed;
    top: .75rem;
    right: .75rem;
    width: 2.75rem;
    height: 2.75rem;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 2rem;
    font-weight: 300;
    line-height: 1;
    color: #1D71A4;
    z-index: 100000;
    display: none;
    padding: 0;
  }
  body.mobile-menu-open .dtc-mobile-close { display: block; }

  /* Body scroll lock */
  body.mobile-menu-open {
    overflow: hidden !important;
    height: 100vh !important;
  }
}

/* Mobile only — make the mega-menu grid single-column and reset section widths */
@media (max-width: 1200px) {
  header nav .megamenu-grid {
    display: block !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
  }
  header nav .megamenu-content {
    display: block !important;
    padding: 0 !important;
    width: 100% !important;
  }
  header nav .megamenu-section,
  header nav .megamenu-section-title,
  header nav .megamenu-links,
  header nav .megamenu-cta-wrap {
    display: block !important;
    width: 100% !important;
  }
  header nav .megamenu-links {
    grid-template-columns: 1fr !important;
  }
}

/* Mobile only — centre section titles + CTA button */
@media (max-width: 1200px) {
  header nav .megamenu-section-title,
  header nav .megamenu-section-header {
    text-align: center !important;
  }
  header nav .megamenu-cta-wrap {
    text-align: center !important;
  }
  header nav .megamenu-cta {
    display: inline-block !important;
    margin: 0 auto !important;
  }
}

/* Desktop safety: never render the mobile chevron on desktop */
@media (min-width: 1201px) {
  .dtc-mobile-chevron { display: none !important; }
}
