/*
 * MAS Portfolio Core 2.0.2 (v1 runtime stylesheet retained)
 * All layout rules are scoped to .maspc-shell. The small native cleanup block
 * at the end is scoped by exact body classes emitted only on supported domains.
 */

:root {
	--maspc-focus: #0878ff;
	--maspc-max: 1200px;
}

body.maspc-rendered {
	margin: 0;
	background: #f7f7f4;
}

.maspc-shell,
.maspc-shell * {
	box-sizing: border-box;
}

.maspc-shell {
	--ink: #172028;
	--muted: #5c6871;
	--paper: #fff;
	--soft: #eef1ef;
	--accent: #ed6a32;
	--accent-ink: #111b22;
	--accent-text: #ad3a14;
	--accent-on-dark: #ff875b;
	--line: #d6ddd9;
	--dark: #132a3b;
	min-width: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

.maspc-shell img,
.maspc-shell svg {
	display: block;
	max-width: 100%;
}

.maspc-shell a,
.maspc-shell a:link,
.maspc-shell a:visited,
.maspc-shell a:hover,
.maspc-shell a:focus,
.maspc-shell a:active {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: .22em;
}

.maspc-shell a:focus-visible,
.maspc-shell button:focus-visible,
.maspc-shell input:focus-visible,
.maspc-shell textarea:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--maspc-focus);
}

.maspc-container {
	width: min(calc(100% - 48px), var(--maspc-max));
	margin-inline: auto;
}

.maspc-skip-link,
.maspc-skip-link:link,
.maspc-skip-link:visited,
.maspc-skip-link:hover,
.maspc-skip-link:focus,
.maspc-skip-link:active {
	position: fixed;
	z-index: 100000;
	top: 12px;
	left: 12px;
	transform: translateY(-150%);
	padding: 12px 18px;
	background: #fff;
	color: #111;
	font: 700 15px/1.2 system-ui, sans-serif;
	box-shadow: 0 8px 24px rgb(0 0 0 / 25%);
}

.maspc-skip-link:focus {
	transform: translateY(0);
}

.maspc-operator-bar {
	background: var(--dark);
	color: #fff;
	font-size: 12px;
	letter-spacing: .045em;
}

.maspc-operator-bar .maspc-container {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding-block: 9px;
}

.maspc-operator-bar a {
	font-weight: 750;
}

.maspc-header {
	position: relative;
	z-index: 50;
	background: var(--paper);
	border-bottom: 1px solid var(--line);
}

.maspc-header-row {
	display: grid;
	grid-template-columns: minmax(180px, 270px) 1fr auto;
	align-items: center;
	gap: clamp(18px, 3vw, 46px);
	min-height: 88px;
}

.maspc-logo {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	width: fit-content;
	text-decoration: none;
}

.maspc-logo img {
	width: auto;
	max-width: 245px;
	height: 58px;
	object-fit: contain;
	object-position: left center;
}

.maspc-logo-image {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.maspc-logo-mark {
	display: inline-grid;
	place-items: center;
	width: 52px;
	height: 52px;
	flex: 0 0 52px;
	background: var(--accent);
	color: var(--accent-ink);
	font-size: 16px;
	font-weight: 900;
	letter-spacing: -.04em;
}

.maspc-logo-name {
	font-size: 22px;
	font-weight: 900;
	letter-spacing: -.05em;
}

.maspc-nav {
	justify-self: end;
}

.maspc-nav-list {
	display: flex;
	align-items: center;
	gap: clamp(17px, 2.2vw, 30px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.maspc-nav-list a {
	display: block;
	padding-block: 14px;
	font-size: 14px;
	font-weight: 720;
	text-decoration: none;
}

.maspc-nav-list a:hover,
.maspc-nav-list a[aria-current="page"] {
	color: var(--accent-text);
}

.maspc-nav-toggle {
	display: none;
	min-width: 46px;
	min-height: 46px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 1px solid var(--line);
	background: var(--paper);
	color: var(--ink);
	font: 750 14px/1 system-ui, sans-serif;
	cursor: pointer;
}

.maspc-nav-toggle i,
.maspc-nav-toggle i::before,
.maspc-nav-toggle i::after {
	display: block;
	width: 20px;
	height: 2px;
	background: currentColor;
}

.maspc-nav-toggle i {
	position: relative;
}

.maspc-nav-toggle i::before,
.maspc-nav-toggle i::after {
	position: absolute;
	left: 0;
	content: "";
}

.maspc-nav-toggle i::before { top: -6px; }
.maspc-nav-toggle i::after { top: 6px; }

.maspc-header-cta,
.maspc-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	min-height: 48px;
	padding: 12px 20px;
	border: 2px solid transparent;
	background: var(--accent);
	color: var(--accent-ink);
	font-size: 14px;
	font-weight: 850;
	line-height: 1.15;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.maspc-header-cta:hover,
.maspc-button-primary:hover {
	filter: brightness(.94);
	transform: translateY(-1px);
}

.maspc-modularaccesssystems .maspc-header-cta:hover,
.maspc-modularaccesssystems .maspc-button-primary:hover {
	filter: none;
}

.maspc-button-secondary {
	border-color: currentColor;
	background: transparent;
	color: inherit;
}

/* Legacy themes often apply high-level link colors on hover, focus, and
 * visited states. Keep button labels pinned to the verified brand pairings. */
.maspc-shell a.maspc-header-cta,
.maspc-shell a.maspc-header-cta:visited,
.maspc-shell a.maspc-header-cta:hover,
.maspc-shell a.maspc-header-cta:focus,
.maspc-shell a.maspc-header-cta:active,
.maspc-shell a.maspc-button-primary,
.maspc-shell a.maspc-button-primary:visited,
.maspc-shell a.maspc-button-primary:hover,
.maspc-shell a.maspc-button-primary:focus,
.maspc-shell a.maspc-button-primary:active {
	color: var(--accent-ink);
}

.maspc-shell a.maspc-button-secondary,
.maspc-shell a.maspc-button-secondary:visited,
.maspc-shell a.maspc-button-secondary:hover,
.maspc-shell a.maspc-button-secondary:focus,
.maspc-shell a.maspc-button-secondary:active {
	color: inherit;
}

.maspc-hero {
	position: relative;
	overflow: hidden;
	background: var(--soft);
}

.maspc-hero::before {
	position: absolute;
	top: -26vw;
	right: -16vw;
	width: 52vw;
	height: 52vw;
	border: 1px solid color-mix(in srgb, var(--accent), transparent 45%);
	border-radius: 50%;
	box-shadow: 0 0 0 7vw color-mix(in srgb, var(--accent), transparent 92%), 0 0 0 14vw color-mix(in srgb, var(--accent), transparent 95%);
	content: "";
}

.maspc-hero-grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
	align-items: center;
	gap: clamp(40px, 6vw, 90px);
	min-height: 650px;
	padding-block: clamp(70px, 9vw, 125px);
}

.maspc-inner-hero .maspc-hero-grid {
	min-height: 470px;
	padding-block: clamp(55px, 7vw, 90px);
}

.maspc-eyebrow,
.maspc-section-heading > p,
.maspc-dual-path article > p {
	margin: 0 0 18px;
	color: var(--accent-text);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.maspc-hero h1 {
	max-width: 810px;
	margin: 0;
	font-size: clamp(46px, 6vw, 88px);
	font-weight: 850;
	letter-spacing: -.07em;
	line-height: .98;
}

.maspc-inner-hero h1 {
	font-size: clamp(42px, 5vw, 70px);
}

.maspc-lede {
	max-width: 680px;
	margin: 28px 0 0;
	color: var(--muted);
	font-size: clamp(18px, 2vw, 22px);
	line-height: 1.55;
}

.maspc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 36px;
}

.maspc-disclosure {
	margin: 28px 0 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .035em;
}

.maspc-hero-visual {
	position: relative;
	min-width: 0;
	box-shadow: 0 30px 80px rgb(0 0 0 / 18%);
}

.maspc-hero-visual > img,
.maspc-hero-visual > svg {
	width: 100%;
	height: clamp(360px, 42vw, 550px);
	background: #fff;
	object-fit: cover;
}

.maspc-inner-hero .maspc-hero-visual > img,
.maspc-inner-hero .maspc-hero-visual > svg {
	height: clamp(300px, 34vw, 440px);
}

.maspc-hero-visual > span {
	position: absolute;
	right: 0;
	bottom: 0;
	max-width: 82%;
	padding: 13px 18px;
	background: var(--dark);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.maspc-section {
	padding-block: clamp(74px, 9vw, 130px);
	background: var(--paper);
}

.maspc-section:nth-of-type(even) {
	background: var(--soft);
}

.maspc-section-heading {
	max-width: 840px;
	margin-bottom: clamp(38px, 5vw, 66px);
}

.maspc-section-heading h2,
.maspc-dual-path h2,
.maspc-plain-content h2,
.maspc-cta-band h2 {
	margin: 0;
	font-size: clamp(34px, 4.2vw, 58px);
	font-weight: 820;
	letter-spacing: -.055em;
	line-height: 1.05;
}

.maspc-section-heading > span {
	display: block;
	max-width: 720px;
	margin-top: 20px;
	color: var(--muted);
	font-size: 18px;
}

.maspc-card-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.maspc-card-grid article {
	display: flex;
	min-width: 0;
	min-height: 300px;
	flex-direction: column;
	padding: clamp(24px, 3vw, 36px);
	border: 1px solid var(--line);
	background: var(--paper);
}

.maspc-card-grid article > b {
	display: inline-grid;
	width: fit-content;
	min-width: 46px;
	height: 34px;
	place-items: center;
	padding-inline: 8px;
	background: var(--accent);
	color: var(--accent-ink);
	font-size: 11px;
	letter-spacing: .08em;
}

.maspc-card-grid h3 {
	margin: 42px 0 12px;
	font-size: clamp(22px, 2.4vw, 30px);
	letter-spacing: -.04em;
	line-height: 1.1;
}

.maspc-card-grid p {
	margin: 0;
	color: var(--muted);
}

.maspc-card-grid article > a {
	margin-top: auto;
	padding-top: 26px;
	color: var(--ink);
	font-size: 13px;
	font-weight: 850;
}

.maspc-system-grid,
.maspc-resource-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.maspc-system-grid article,
.maspc-resource-grid article {
	min-height: 270px;
}

.maspc-process-grid {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.maspc-process-grid article {
	min-height: 260px;
}

.maspc-dark-section {
	background: var(--dark) !important;
	color: #fff;
}

.maspc-dark-section .maspc-card-grid article {
	border-color: rgb(255 255 255 / 20%);
	background: rgb(255 255 255 / 6%);
}

.maspc-dark-section .maspc-card-grid p,
.maspc-dark-section .maspc-section-heading > span {
	color: rgb(255 255 255 / 72%);
}

.maspc-dark-section .maspc-section-heading > p,
.maspc-project-map-section .maspc-section-heading > p,
.maspc-path-section .maspc-dual-path article:first-child > p {
	color: var(--accent-on-dark);
}

.maspc-project-map-section .maspc-section-heading > span,
.maspc-dark-section .maspc-qualifier {
	color: rgb(255 255 255 / 78%);
}

.maspc-qualifier,
.maspc-form-note {
	margin: 28px 0 0;
	color: var(--muted);
	font-size: 13px;
}

.maspc-split {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr);
	align-items: start;
	gap: clamp(45px, 7vw, 100px);
}

.maspc-split .maspc-section-heading {
	margin-bottom: 26px;
}

.maspc-panel {
	padding: clamp(28px, 4vw, 50px);
	border-top: 8px solid var(--accent);
	background: var(--paper);
	box-shadow: 0 22px 60px rgb(0 0 0 / 10%);
}

.maspc-panel > h2,
.maspc-panel > h3 {
	margin: 0 0 30px;
	font-size: clamp(26px, 3vw, 38px);
	letter-spacing: -.04em;
	line-height: 1.1;
}

.maspc-text-link {
	display: inline-flex;
	gap: 16px;
	font-weight: 850;
}

.maspc-path-section,
.maspc-project-map-section {
	background: var(--dark) !important;
	color: #fff;
}

.maspc-dual-path {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px;
}

.maspc-dual-path article {
	display: flex;
	min-height: 470px;
	flex-direction: column;
	align-items: flex-start;
	padding: clamp(34px, 5vw, 70px);
	background: rgb(255 255 255 / 8%);
}

.maspc-dual-path article:last-child {
	background: var(--accent);
	color: var(--accent-ink);
}

.maspc-dual-path article:last-child > p {
	color: currentColor;
}

.maspc-dual-path h2 {
	font-size: clamp(34px, 4vw, 54px);
}

.maspc-dual-path span {
	display: block;
	max-width: 560px;
	margin: 24px 0 36px;
	font-size: 18px;
}

.maspc-dual-path .maspc-button {
	margin-top: auto;
}

.maspc-process-map {
	margin: 0;
	padding: 0;
	list-style: none;
}

.maspc-process-map li {
	display: grid;
	grid-template-columns: 60px 1fr;
	align-items: center;
	gap: 18px;
	padding: 20px 0;
	border-bottom: 1px solid rgb(255 255 255 / 22%);
}

.maspc-process-map b {
	color: var(--accent-on-dark);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.maspc-process-map span {
	font-size: 19px;
	font-weight: 750;
}

.maspc-owned-image img {
	width: 100%;
	min-height: 420px;
	object-fit: cover;
}

.maspc-media-section {
	background: var(--dark) !important;
	color: #fff;
}

.maspc-media-section .maspc-qualifier {
	color: rgb(255 255 255 / 78%);
}

.maspc-media-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.maspc-media-grid.maspc-three-up {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.maspc-media-grid figure {
	position: relative;
	margin: 0;
	background: #fff;
}

.maspc-media-grid img {
	width: 100%;
	height: clamp(260px, 31vw, 440px);
	object-fit: cover;
}

.maspc-three-up img {
	height: clamp(270px, 28vw, 390px);
	object-fit: contain;
}

.maspc-media-grid figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	padding: 10px 14px;
	background: var(--accent);
	color: var(--accent-ink);
	font-size: 11px;
	font-weight: 850;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.maspc-center-action {
	margin: 42px 0 0;
	text-align: center;
}

.maspc-callout {
	margin-top: 38px;
	padding: 24px 28px;
	border-left: 6px solid var(--accent);
	background: var(--soft);
}

.maspc-callout strong {
	font-size: 18px;
}

.maspc-callout p {
	margin: 7px 0 0;
	color: var(--muted);
}

.maspc-cta-band {
	background: var(--dark) !important;
	color: #fff;
}

.maspc-cta-band .maspc-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
}

.maspc-cta-band p {
	margin: 0 0 10px;
	color: var(--accent-on-dark);
	font-weight: 800;
}

.maspc-cta-band h2 {
	max-width: 780px;
	font-size: clamp(32px, 4vw, 52px);
}

.maspc-narrow-section .maspc-container {
	max-width: 900px;
}

.maspc-plain-content {
	font-size: 18px;
}

.maspc-plain-content h2 {
	margin: 1.6em 0 .55em;
	font-size: clamp(28px, 3.5vw, 42px);
}

.maspc-plain-content h2:first-child {
	margin-top: 0;
}

.maspc-plain-content p,
.maspc-plain-content li {
	color: var(--muted);
}

.maspc-plain-content li + li {
	margin-top: 12px;
}

.maspc-checklist {
	margin: 0;
	padding: 0;
	list-style: none;
}

.maspc-checklist li {
	position: relative;
	min-height: 54px;
	padding: 14px 10px 14px 48px;
	border-bottom: 1px solid var(--line);
	font-weight: 700;
}

.maspc-checklist li::before {
	position: absolute;
	top: 14px;
	left: 3px;
	display: grid;
	width: 28px;
	height: 28px;
	place-items: center;
	background: var(--accent);
	color: var(--accent-ink);
	content: "✓";
	font-weight: 900;
}

.maspc-form-status {
	margin-bottom: 20px;
	padding: 16px 18px;
	border-left: 5px solid #167447;
	background: #eaf8f0;
}

.maspc-form-status.is-error {
	border-color: #a92c2c;
	background: #fff0f0;
}

.maspc-lead-form p {
	margin: 0 0 18px;
}

.maspc-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}

.maspc-lead-form label {
	display: block;
	margin-bottom: 7px;
	font-size: 13px;
	font-weight: 800;
}

.maspc-lead-form input[type="text"],
.maspc-lead-form input[type="email"],
.maspc-lead-form input[type="tel"],
.maspc-lead-form input[type="number"],
.maspc-lead-form select,
.maspc-lead-form textarea {
	display: block;
	width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid #748088;
	border-radius: 0;
	background: #fff;
	color: #172028;
	font: 16px/1.4 system-ui, sans-serif;
}

.maspc-structured-fields {
	margin: 8px 0 24px;
	padding: clamp(18px, 3vw, 28px);
	border: 1px solid var(--line);
	background: var(--soft);
}

.maspc-structured-fields legend {
	padding-inline: 8px;
	color: var(--ink);
	font-size: clamp(20px, 2.2vw, 27px);
	font-weight: 900;
	letter-spacing: -0.025em;
}

.maspc-structured-fields .maspc-structured-intro {
	max-width: 72ch;
	margin-bottom: 22px;
	color: var(--muted);
	font-size: 14px;
	line-height: 1.6;
}

.maspc-structured-grid {
	gap: 0 18px;
}

.maspc-structured-grid small {
	display: block;
	margin-top: 6px;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.45;
}

.maspc-lead-form textarea {
	min-height: 170px;
	resize: vertical;
}

.maspc-lead-form input::placeholder,
.maspc-lead-form textarea::placeholder {
	color: #5b6770;
	opacity: 1;
}

.maspc-consent label {
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: 10px;
	font-weight: 600;
}

.maspc-consent input {
	width: 20px;
	height: 20px;
	margin-top: 2px;
}

.maspc-honeypot {
	position: absolute !important;
	left: -10000px !important;
	overflow: hidden !important;
	width: 1px !important;
	height: 1px !important;
}

.maspc-footer {
	padding: 75px 0 0;
	background: #0d1820;
	color: #fff;
}

.maspc-footer-grid {
	display: grid;
	grid-template-columns: 1.25fr repeat(3, 1fr);
	gap: clamp(30px, 5vw, 72px);
}

.maspc-footer h2 {
	margin: 0 0 20px;
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.maspc-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.maspc-footer li + li {
	margin-top: 12px;
}

.maspc-footer li a {
	color: rgb(255 255 255 / 74%);
	font-size: 14px;
}

.maspc-footer-brand .maspc-logo {
	color: #fff;
}

.maspc-footer-brand .maspc-logo-image img {
	max-width: 220px;
	height: 60px;
	object-fit: contain;
	object-position: left center;
}

.maspc-footer-brand p {
	max-width: 270px;
	color: rgb(255 255 255 / 67%);
	font-size: 14px;
}

.maspc-footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 30px;
	margin-top: 64px;
	padding-block: 22px;
	border-top: 1px solid rgb(255 255 255 / 16%);
	color: rgb(255 255 255 / 62%);
	font-size: 12px;
}

.maspc-footer-bottom p {
	margin: 0;
}

/* SafetyGatePro: hard industrial geometry, condensed headlines, safety yellow. */
.maspc-safetygatepro {
	--ink: #161a1d;
	--muted: #586065;
	--paper: #f9f9f4;
	--soft: #eeeeea;
	--accent: #ffd600;
	--accent-ink: #15191c;
	--accent-text: #6b5700;
	--accent-on-dark: #ffd600;
	--line: #cfd1ca;
	--dark: #171b1e;
}

.maspc-safetygatepro .maspc-header {
	border-bottom: 5px solid var(--dark);
}

.maspc-safetygatepro .maspc-logo img {
	max-width: 235px;
}

.maspc-safetygatepro .maspc-footer-brand .maspc-logo-image,
.maspc-spillprotek .maspc-logo-image {
	padding: 6px 9px;
	border-radius: 8px;
	background: #fff;
}

.maspc-safetygatepro .maspc-footer-brand .maspc-logo-image img,
.maspc-spillprotek .maspc-footer-brand .maspc-logo-image img {
	height: 48px;
}

.maspc-safetygatepro .maspc-hero {
	background: linear-gradient(90deg, #f2f2ed 0 62%, #ffd600 62%);
}

.maspc-safetygatepro .maspc-hero h1,
.maspc-safetygatepro .maspc-section-heading h2 {
	font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
	font-weight: 900;
	letter-spacing: -.045em;
	text-transform: uppercase;
}

.maspc-safetygatepro .maspc-card-grid article {
	border-color: #1b2023;
	box-shadow: 8px 8px 0 #1b2023;
}

.maspc-safetygatepro .maspc-dark-section .maspc-card-grid article {
	box-shadow: 8px 8px 0 var(--accent);
}

/* SpillProTek: bright blue/lime, generous radii, clean containment shapes. */
.maspc-spillprotek {
	--ink: #102d55;
	--muted: #506783;
	--paper: #fafdff;
	--soft: #eaf4ff;
	--accent: #dafa3e;
	--accent-ink: #073e96;
	--accent-text: #315f00;
	--accent-on-dark: #dafa3e;
	--line: #bdd6f1;
	--dark: #084cb3;
}

.maspc-spillprotek .maspc-header,
.maspc-spillprotek .maspc-operator-bar {
	background: #074ba9;
	color: #fff;
}

.maspc-spillprotek .maspc-nav-list a:hover,
.maspc-spillprotek .maspc-nav-list a[aria-current="page"] {
	color: var(--accent-on-dark);
}

.maspc-spillprotek .maspc-hero {
	background: linear-gradient(118deg, #0752bf 0 58%, #dafa3e 58%);
	color: #fff;
}

.maspc-spillprotek .maspc-hero .maspc-lede {
	color: rgb(255 255 255 / 82%);
}

.maspc-spillprotek .maspc-hero .maspc-eyebrow {
	color: var(--accent-on-dark);
}

.maspc-spillprotek .maspc-card-grid article,
.maspc-spillprotek .maspc-panel,
.maspc-spillprotek .maspc-hero-visual,
.maspc-spillprotek .maspc-button {
	border-radius: 24px;
}

.maspc-spillprotek .maspc-card-grid article > b,
.maspc-spillprotek .maspc-checklist li::before {
	border-radius: 50%;
}

/* Modular Access Systems: quiet editorial green/clay corporate system. */
.maspc-modularaccesssystems {
	--ink: #173d39;
	--muted: #56645f;
	--paper: #f7f5ef;
	--soft: #e3e8df;
	--accent: #cf6c42;
	--accent-ink: #111b22;
	--accent-text: #963d1e;
	--accent-on-dark: #f39a73;
	--line: #c9d1c6;
	--dark: #173b39;
}

.maspc-modularaccesssystems .maspc-logo-image {
	width: 84px;
	height: 48px;
	overflow: hidden;
	align-items: flex-start;
	background: #173b39;
}

.maspc-modularaccesssystems .maspc-logo img {
	width: 84px;
	max-width: none;
	height: auto;
}

.maspc-modularaccesssystems .maspc-logo-name {
	max-width: 145px;
	font-size: 18px;
	letter-spacing: -.035em;
	line-height: 1;
}

.maspc-modularaccesssystems .maspc-hero {
	background: linear-gradient(108deg, #e7e9df 0 66%, #c8d3c7 66%);
}

.maspc-modularaccesssystems .maspc-hero h1,
.maspc-modularaccesssystems .maspc-section-heading h2,
.maspc-modularaccesssystems .maspc-dual-path h2,
.maspc-modularaccesssystems .maspc-plain-content h2 {
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 500;
	letter-spacing: -.06em;
}

.maspc-modularaccesssystems .maspc-card-grid article {
	border-width: 0 0 0 6px;
	border-color: var(--accent);
}

.maspc-brand-grid {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.maspc-brand-grid article {
	min-height: 330px;
}

/* RailYardSafety: dark operational canvas, orange task codes. */
.maspc-railyardsafety {
	--ink: #112431;
	--muted: #5e6b72;
	--paper: #f8f4ed;
	--soft: #e4ebe6;
	--accent: #f26b38;
	--accent-ink: #10212c;
	--accent-text: #a83c18;
	--accent-on-dark: #f26b38;
	--line: #ccd4cf;
	--dark: #10212c;
}

.maspc-railyardsafety .maspc-header,
.maspc-railyardsafety .maspc-operator-bar {
	background: #10212c;
	color: #fff;
}

.maspc-railyardsafety .maspc-hero {
	background: linear-gradient(120deg, #10212c 0 60%, #f26b38 60%);
	color: #fff;
}

.maspc-railyardsafety .maspc-hero .maspc-lede {
	color: rgb(255 255 255 / 76%);
}

.maspc-railyardsafety .maspc-header .maspc-nav-list a:hover,
.maspc-railyardsafety .maspc-header .maspc-nav-list a[aria-current="page"],
.maspc-railyardsafety .maspc-hero .maspc-eyebrow {
	color: var(--accent-on-dark);
}

.maspc-task-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.maspc-task-grid article {
	min-height: 290px;
	border-top: 8px solid var(--accent);
}

/* RackTek: established technical navy/orange direction. */
.maspc-racktek {
	--ink: #102b41;
	--muted: #5a6b78;
	--paper: #f8fafb;
	--soft: #e9f0f4;
	--accent: #ff6b35;
	--accent-ink: #10273a;
	--accent-text: #ad3a14;
	--accent-on-dark: #ff6b35;
	--line: #c7d4dc;
	--dark: #09243a;
}

.maspc-racktek .maspc-header,
.maspc-racktek .maspc-operator-bar {
	background: #081d31;
	color: #eef6fb;
}

.maspc-racktek .maspc-logo img {
	width: auto;
	max-width: 290px;
	height: 70px;
}

.maspc-racktek .maspc-hero {
	background: linear-gradient(105deg, #081d31 0 58%, #0e3556 58%);
	color: #eef6fb;
}

.maspc-racktek .maspc-hero .maspc-lede {
	color: #c7d7e2;
}

.maspc-racktek .maspc-header .maspc-nav-list a:hover,
.maspc-racktek .maspc-header .maspc-nav-list a[aria-current="page"],
.maspc-racktek .maspc-hero .maspc-eyebrow {
	color: var(--accent-on-dark);
}

.maspc-racktek .maspc-card-grid article {
	border-top: 7px solid var(--accent);
}

/* RailChocks: focused blue/orange store and fitment guide. */
.maspc-railchocks {
	--ink: #153a56;
	--muted: #5e7180;
	--paper: #f9fcfe;
	--soft: #edf4f7;
	--accent: #ff6a30;
	--accent-ink: #10283a;
	--accent-text: #ad3a14;
	--accent-on-dark: #ff8b62;
	--line: #c7d6de;
	--dark: #153a56;
}

.maspc-railchocks .maspc-logo-mark {
	border-radius: 50%;
}

.maspc-railchocks .maspc-hero {
	background: linear-gradient(106deg, #f6fafc 0 67%, #153a56 67%);
}

.maspc-railchocks .maspc-card-grid article {
	border-top: 6px solid var(--accent);
}

/* Defensive fallback for old Astra product-title chrome. The PHP integration
 * suppresses this duplicate node; Woo product_title remains untouched. */
body.maspc-supported.maspc-site-railchocks.single-product:not(.maspc-rendered) #primary > header.entry-header {
	display: none !important;
}

/* Hide only explicit retired-logo assets in legacy native chrome. Product and
 * project photography remains visible. */
body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) img[alt*="OIS Group" i],
body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) img[src*="ois-logo" i],
body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) img[src*="ois-group" i],
body.maspc-supported.maspc-site-racktek:not(.maspc-rendered) img[alt*="OIS Group" i],
body.maspc-supported.maspc-site-racktek:not(.maspc-rendered) img[src*="ois-logo" i],
body.maspc-supported.maspc-site-racktek:not(.maspc-rendered) img[src*="ois-group" i] {
	display: none !important;
}

body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) .site-header .site-branding:has(img[alt*="OIS Group" i], img[src*="ois-logo" i], img[src*="ois-group" i]) {
	display: inline-flex !important;
	align-items: center;
	gap: 11px;
	min-width: 215px;
}

body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) .site-header .site-branding:has(img[alt*="OIS Group" i], img[src*="ois-logo" i], img[src*="ois-group" i])::before {
	display: inline-grid;
	width: 46px;
	height: 46px;
	flex: 0 0 46px;
	place-items: center;
	border-radius: 50%;
	background: #ff6a30;
	color: #10283a;
	content: "RC";
	font: 900 14px/1 system-ui, sans-serif;
}

body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) .site-header .site-branding:has(img[alt*="OIS Group" i], img[src*="ois-logo" i], img[src*="ois-group" i])::after {
	color: #153a56;
	content: "RailChocks";
	font: 900 23px/1 system-ui, sans-serif;
	letter-spacing: -.05em;
}

body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) a[href*="ois.group" i],
body.maspc-supported.maspc-site-racktek:not(.maspc-rendered) a[href*="ois.group" i],
body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) a[href^="mailto:sales@ois.group" i],
body.maspc-supported.maspc-site-racktek:not(.maspc-rendered) a[href^="mailto:sales@ois.group" i] {
	display: none !important;
}

/* Owned text marks replace the three exact OIS-hosted brand images on the
 * preserved RailChocks homepage. The retired external card is converted to
 * the approved RailYardSafety path. Scope stays inside native brand cards. */
body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) .brand-card .maspc-native-brand-mark {
	display: grid;
	width: min(100%, 250px);
	min-height: 104px;
	margin-inline: auto;
	place-items: center;
	border-radius: 12px;
	background: #153a56;
	color: #fff;
	font: 900 clamp(1.4rem, 4vw, 2.2rem)/1 system-ui, sans-serif;
	letter-spacing: .08em;
}

body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) .brand-card .maspc-native-brand-mark--rc {
	background: #ff6a30;
	color: #10283a;
}

body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) .brand-card .maspc-native-brand-mark--rt {
	background: #10273a;
	color: #ff8b42;
}

body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) .brand-card .maspc-native-brand-mark--rys {
	background: #10212c;
	color: #efb52d;
}

/* The child theme's 92vw system grid overhangs the 1180px RackTek shell at
 * desktop widths. Keep the existing columns but size them to their real parent. */
body.maspc-supported.maspc-site-racktek .rt-system-grid {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

body.maspc-supported.maspc-site-racktek .rt-system-card {
	min-width: 0;
}

.maspc-native-operator {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 14px max(24px, calc((100vw - 1200px) / 2));
	background: #10273a;
	color: #fff;
	font: 700 13px/1.4 system-ui, sans-serif;
}

.maspc-native-operator a {
	color: #ff8b62;
	font-weight: 850;
}

.maspc-native-operator a:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px #0878ff;
}

.maspc-native-operator nav {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 18px;
}

.maspc-native-operator nav a {
	color: #fff;
}

.maspc-native-operator-company {
	white-space: nowrap;
}

@media (max-width: 1060px) {
	.maspc-header-row {
		grid-template-columns: 1fr auto auto;
	}

	.maspc-nav {
		position: relative;
		order: 2;
	}

	.maspc-nav-toggle {
		display: inline-flex;
	}

	.maspc-nav.maspc-enhanced .maspc-nav-list {
		display: none;
	}

	.maspc-nav.maspc-enhanced.is-open .maspc-nav-list {
		display: flex;
	}

	.maspc-nav-list {
		position: absolute;
		top: calc(100% + 12px);
		right: 0;
		z-index: 60;
		width: min(340px, calc(100vw - 48px));
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 10px;
		border: 1px solid var(--line);
		background: var(--paper);
		color: var(--ink);
		box-shadow: 0 22px 55px rgb(0 0 0 / 18%);
	}

	.maspc-nav-list a {
		padding: 13px 12px;
	}

	.maspc-spillprotek .maspc-nav-list a:hover,
	.maspc-spillprotek .maspc-nav-list a[aria-current="page"],
	.maspc-railyardsafety .maspc-header .maspc-nav-list a:hover,
	.maspc-railyardsafety .maspc-header .maspc-nav-list a[aria-current="page"],
	.maspc-racktek .maspc-header .maspc-nav-list a:hover,
	.maspc-racktek .maspc-header .maspc-nav-list a[aria-current="page"] {
		color: var(--accent-text);
	}

	.maspc-header-cta {
		order: 3;
	}

	.maspc-hero-grid {
		grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
		gap: 42px;
	}

	.maspc-card-grid,
	.maspc-brand-grid,
	.maspc-process-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.maspc-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.maspc-container {
		width: min(calc(100% - 32px), var(--maspc-max));
	}

	.maspc-operator-bar .maspc-container {
		flex-direction: column;
		gap: 3px;
	}

	.maspc-header-row {
		grid-template-columns: 1fr auto;
		gap: 12px;
		min-height: 76px;
	}

	.maspc-logo img {
		max-width: 195px;
		height: 48px;
	}

	.maspc-racktek .maspc-logo img {
		max-width: 185px;
		height: 52px;
	}

	.maspc-logo-mark {
		width: 44px;
		height: 44px;
		flex-basis: 44px;
	}

	.maspc-logo-name {
		font-size: 19px;
	}

	.maspc-header-cta {
		display: none;
	}

	.maspc-hero,
	.maspc-safetygatepro .maspc-hero,
	.maspc-spillprotek .maspc-hero,
	.maspc-modularaccesssystems .maspc-hero,
	.maspc-railyardsafety .maspc-hero,
	.maspc-racktek .maspc-hero,
	.maspc-railchocks .maspc-hero {
		background: var(--soft);
		color: var(--ink);
	}

	.maspc-railyardsafety .maspc-hero .maspc-lede,
	.maspc-racktek .maspc-hero .maspc-lede,
	.maspc-spillprotek .maspc-hero .maspc-lede {
		color: var(--muted);
	}

	.maspc-railyardsafety .maspc-hero .maspc-eyebrow,
	.maspc-racktek .maspc-hero .maspc-eyebrow,
	.maspc-spillprotek .maspc-hero .maspc-eyebrow {
		color: var(--accent-text);
	}

	.maspc-hero-grid,
	.maspc-inner-hero .maspc-hero-grid {
		grid-template-columns: 1fr;
		min-height: 0;
		padding-block: 55px;
	}

	.maspc-hero-visual > img,
	.maspc-hero-visual > svg,
	.maspc-inner-hero .maspc-hero-visual > img,
	.maspc-inner-hero .maspc-hero-visual > svg {
		height: min(86vw, 430px);
	}

	.maspc-hero h1 {
		font-size: clamp(40px, 13vw, 62px);
	}

	.maspc-section {
		padding-block: 70px;
	}

	.maspc-card-grid,
	.maspc-system-grid,
	.maspc-resource-grid,
	.maspc-task-grid,
	.maspc-brand-grid,
	.maspc-process-grid,
	.maspc-form-grid,
	.maspc-media-grid,
	.maspc-media-grid.maspc-three-up,
	.maspc-dual-path,
	.maspc-split,
	.maspc-footer-grid {
		grid-template-columns: 1fr;
	}

	.maspc-card-grid article {
		min-height: 250px;
	}

	.maspc-dual-path article {
		min-height: 400px;
	}

	.maspc-panel {
		padding: 26px 20px;
	}

	.maspc-owned-image img {
		min-height: 300px;
	}

	.maspc-cta-band .maspc-container,
	.maspc-footer-bottom {
		align-items: flex-start;
		flex-direction: column;
	}

	.maspc-footer-grid {
		gap: 38px;
	}

	body.maspc-supported.maspc-site-railchocks:not(.maspc-rendered) .site-header .site-branding:has(img[alt*="OIS Group" i], img[src*="ois-logo" i], img[src*="ois-group" i])::after {
		font-size: 19px;
	}

	.maspc-native-operator {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (prefers-reduced-motion: reduce) {
	.maspc-shell *,
	.maspc-shell *::before,
	.maspc-shell *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
