/* S45 only. The custom page deliberately has its own visual vocabulary. */
.s45-structured-cabling {
	--s45-ink: #0b141b;
	--s45-ink-soft: #13232d;
	--s45-paper: #f0f0eb;
	--s45-paper-deep: #e5e6e0;
	--s45-white: #f7f8f4;
	--s45-muted: #8d9ca3;
	--s45-muted-dark: #58666d;
	--s45-line: rgba(14, 32, 42, .18);
	--s45-line-dark: rgba(238, 242, 237, .18);
	--s45-amber: #d6a756;
	--s45-blue: #5d9fca;
	--s45-red: #d77c5e;
	--s45-radius: 0;
	background: var(--s45-paper);
	color: var(--s45-ink);
	overflow: clip;
}

.s45-structured-cabling,
.s45-structured-cabling * {
	box-sizing: border-box;
}

.s45-structured-cabling .container {
	width: min(1280px, calc(100% - 64px));
	max-width: none;
	margin-inline: auto;
}

.s45-structured-cabling :where(h1, h2, h3, p, figure) {
	margin: 0;
}

.s45-structured-cabling :where(a, button) {
	-webkit-tap-highlight-color: transparent;
}

.s45-structured-cabling a:focus-visible {
	outline: 2px solid var(--s45-amber);
	outline-offset: 4px;
}

.s45-hero {
	position: relative;
	min-height: min(820px, calc(100svh - 72px));
	background: var(--s45-ink);
	color: var(--s45-white);
	isolation: isolate;
	overflow: hidden;
}

.s45-hero-media,
.s45-hero-media::after,
.s45-hero-grid {
	position: absolute;
	inset: 0;
}

.s45-hero-media {
	z-index: -3;
}

.s45-hero-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 64% 50%;
	filter: saturate(.78) contrast(1.08);
	opacity: .84;
}

.s45-hero-media::after {
	content: '';
	z-index: 1;
	background: linear-gradient(90deg, rgba(7, 15, 21, .98) 0%, rgba(7, 15, 21, .86) 33%, rgba(7, 15, 21, .36) 67%, rgba(7, 15, 21, .42) 100%), linear-gradient(0deg, rgba(7, 15, 21, .92), transparent 35%, rgba(7, 15, 21, .18));
}

.s45-hero-grid {
	z-index: -1;
	opacity: .23;
	background-image: linear-gradient(rgba(222, 231, 224, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(222, 231, 224, .12) 1px, transparent 1px);
	background-size: 80px 80px;
	mask-image: linear-gradient(90deg, black, transparent 78%);
}

.s45-hero-inner {
	position: relative;
	min-height: min(820px, calc(100svh - 72px));
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 48px;
	padding-top: 132px;
	padding-bottom: 148px;
}

.s45-hero-copy {
	max-width: 770px;
}

.s45-kicker {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.s45-kicker span {
	color: var(--s45-amber);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	letter-spacing: .04em;
}

.s45-hero .s45-kicker {
	color: #d7e0dc;
}

.s45-hero h1 {
	max-width: 8em;
	margin-top: 24px;
	font-size: clamp(74px, 11vw, 164px);
	font-weight: 650;
	line-height: .94;
	letter-spacing: -.09em;
	text-wrap: balance;
}

.s45-hero-lead {
	max-width: 620px;
	margin-top: 32px !important;
	color: #d1dbd8;
	font-size: clamp(20px, 2.2vw, 30px);
	font-weight: 450;
	line-height: 1.55;
	letter-spacing: -.025em;
	text-wrap: balance;
}

.s45-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 38px;
}

.s45-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	min-height: 52px;
	padding: 0 20px;
	border: 1px solid transparent;
	border-radius: 0;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
}

.s45-button span {
	font-size: 18px;
	font-weight: 400;
}

.s45-button:hover {
	transform: translateY(-2px);
}

.s45-button--solid {
	background: var(--s45-amber);
	color: #1b1c19;
}

.s45-button--solid:hover {
	background: #e7bd70;
	color: #111714;
}

.s45-button--line {
	border-color: rgba(232, 240, 234, .48);
	color: var(--s45-white);
}

.s45-button--line:hover {
	border-color: var(--s45-white);
	background: rgba(247, 248, 244, .12);
}

.s45-button--light {
	background: var(--s45-white);
	color: var(--s45-ink);
}

.s45-button--light:hover {
	background: #fff;
	color: #111;
}

.s45-hero-footnote {
	margin-top: 24px !important;
	color: #9bacb0;
	font-size: 12px;
	letter-spacing: .05em;
}

.s45-hero-index {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	align-self: center;
	min-width: 168px;
	padding-left: 20px;
	border-left: 1px solid rgba(240, 243, 238, .38);
	color: #d6dfdb;
}

.s45-index-line {
	display: block;
	width: 42px;
	height: 3px;
	margin-bottom: 16px;
	background: var(--s45-amber);
}

.s45-index-label {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
	line-height: 1.5;
	letter-spacing: .12em;
}

.s45-hero-index strong {
	margin-top: 34px;
	font-size: 13px;
	font-weight: 650;
	line-height: 2.2;
	letter-spacing: .15em;
}

.s45-hero-index em {
	color: var(--s45-amber);
	font-style: normal;
}

.s45-hero-baseline {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: grid;
	grid-template-columns: 1fr 1fr auto;
	align-items: center;
	gap: 18px;
	min-height: 64px;
	border-top: 1px solid rgba(232, 240, 234, .22);
	color: #9fafaf;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.s45-hero-baseline a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--s45-white);
	font-family: inherit;
	font-size: 10px;
	text-decoration: none;
}

.s45-scroll-mark {
	display: inline-block;
	width: 22px;
	height: 1px;
	background: var(--s45-amber);
}

.s45-section-rail {
	position: sticky;
	top: 0;
	z-index: 10;
	background: rgba(10, 21, 28, .97);
	color: #c5d0ce;
	box-shadow: 0 1px 0 rgba(225, 231, 224, .13);
}

.s45-section-rail .container {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: 62px;
	overflow-x: auto;
	scrollbar-width: none;
}

.s45-section-rail .container::-webkit-scrollbar {
	display: none;
}

.s45-section-rail a {
	position: relative;
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	gap: 9px;
	min-height: 44px;
	color: inherit;
	font-size: 12px;
	text-decoration: none;
	white-space: nowrap;
}

.s45-section-rail a::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 2px;
	background: var(--s45-amber);
	content: '';
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .22s ease;
}

.s45-section-rail a:hover::after,
.s45-section-rail a:focus-visible::after {
	transform: scaleX(1);
}

.s45-section-rail a span {
	color: var(--s45-amber);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
}

.s45-section-rail .s45-rail-back {
	margin-left: auto;
	color: #f2f3ef;
}

.s45-rail-back span {
	font-size: 16px !important;
	font-weight: 400;
}

.s45-main {
	background: var(--s45-paper);
}

.s45-section {
	padding: 132px 0;
}

.s45-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(260px, .7fr);
	align-items: end;
	gap: 76px;
	margin-bottom: 58px;
}

.s45-section-heading--wide {
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, .6fr);
}

.s45-section-heading h2,
.s45-scope-statement h2,
.s45-handover-layout h2,
.s45-cta-inner h2 {
	max-width: 850px;
	margin-top: 20px;
	font-size: clamp(36px, 5.3vw, 76px);
	font-weight: 620;
	line-height: 1.08;
	letter-spacing: -.065em;
	text-wrap: balance;
}

.s45-section-heading > p,
.s45-scope-statement > p,
.s45-handover-layout > div > p:not(.s45-kicker),
.s45-cta-inner > div > p:not(.s45-kicker) {
	color: var(--s45-muted-dark);
	font-size: 17px;
	line-height: 1.85;
}

.s45-system-section {
	background: var(--s45-paper);
}

.s45-system-visual {
	background: #101d25;
	color: var(--s45-white);
	box-shadow: 18px 18px 0 rgba(24, 53, 66, .11);
}

.s45-visual-topline {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 26px;
	border-bottom: 1px solid rgba(229, 235, 230, .2);
	color: #aab9b8;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.s45-system-visual--desktop svg {
	display: block;
	width: 100%;
	height: auto;
	min-height: 400px;
	padding: 24px 12px 0;
	overflow: visible;
}

.s45-svg-grid path {
	fill: none;
	stroke: rgba(226, 235, 230, .1);
	stroke-width: 1;
}

.s45-svg-route {
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-dasharray: 8 9;
}

.s45-svg-route--fiber {
	stroke: var(--s45-amber);
}

.s45-svg-route--copper {
	stroke: var(--s45-blue);
}

.s45-svg-route--endpoint {
	stroke: var(--s45-red);
}

.s45-system-section.is-visible .s45-svg-route {
	animation: s45-flow 4.2s linear infinite;
}

.s45-svg-labels text {
	fill: #aebdba;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
	letter-spacing: .13em;
}

.s45-svg-node-box {
	fill: #152832;
	stroke: rgba(231, 237, 231, .24);
	stroke-width: 1;
}

.s45-svg-node-accent {
	fill: var(--s45-blue);
	stroke: none;
}

.s45-svg-node-accent--amber {
	fill: var(--s45-amber);
}

.s45-svg-node-accent--blue {
	fill: var(--s45-blue);
}

.s45-svg-node-accent--red {
	fill: var(--s45-red);
}

.s45-svg-number {
	fill: #d6a756;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
	letter-spacing: .08em;
}

.s45-svg-title {
	fill: #f1f5f1;
	font-size: 15px;
	font-weight: 650;
}

.s45-svg-copy {
	fill: #91a5a8;
	font-size: 10px;
}

.s45-svg-building,
.s45-svg-rack,
.s45-svg-fiber-icon,
.s45-svg-copper-icon,
.s45-svg-port-line,
.s45-svg-endpoints {
	fill: none;
	stroke: #bed1cc;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

.s45-svg-rack {
	stroke: var(--s45-amber);
}

.s45-svg-fiber-icon {
	stroke: var(--s45-amber);
	stroke-width: 3;
}

.s45-svg-copper-icon {
	stroke: var(--s45-blue);
}

.s45-svg-port {
	fill: rgba(93, 159, 202, .16);
	stroke: var(--s45-blue);
	stroke-width: 2;
}

.s45-svg-endpoints {
	stroke: var(--s45-red);
}

.s45-visual-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	padding: 18px 26px 22px;
	border-top: 1px solid rgba(229, 235, 230, .16);
	color: #aab9b8;
	font-size: 11px;
}

.s45-visual-legend span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.s45-legend-line {
	display: inline-block;
	width: 26px;
	height: 2px;
	background: var(--s45-blue);
}

.s45-legend-line--fiber {
	background: var(--s45-amber);
}

.s45-legend-line--endpoint {
	background: var(--s45-red);
}

.s45-system-visual--mobile {
	display: none;
}

.s45-mobile-flow {
	margin: 0;
	padding: 22px 24px 24px;
	list-style: none;
}

.s45-mobile-flow li {
	position: relative;
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	gap: 16px;
	min-height: 72px;
	padding: 0 0 24px;
}

.s45-mobile-flow li:not(:last-child)::after {
	position: absolute;
	top: 28px;
	bottom: 0;
	left: 19px;
	width: 1px;
	background: rgba(219, 229, 224, .24);
	content: '';
}

.s45-mobile-flow-index {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(219, 229, 224, .35);
	background: #152832;
	color: var(--s45-amber);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
}

.s45-mobile-flow strong {
	display: block;
	padding-top: 5px;
	color: var(--s45-white);
	font-size: 17px;
	font-weight: 650;
}

.s45-mobile-flow small {
	display: block;
	margin-top: 8px;
	color: #9cafb0;
	font-size: 12px;
	line-height: 1.6;
}

.s45-mobile-flow--fiber .s45-mobile-flow-index {
	border-color: rgba(214, 167, 86, .65);
	color: var(--s45-amber);
}

.s45-mobile-flow--copper .s45-mobile-flow-index {
	border-color: rgba(93, 159, 202, .65);
	color: var(--s45-blue);
}

.s45-mobile-flow--endpoint .s45-mobile-flow-index {
	border-color: rgba(215, 124, 94, .7);
	color: var(--s45-red);
}

.s45-scope-section {
	background: var(--s45-ink-soft);
	color: var(--s45-white);
}

.s45-scope-layout {
	display: grid;
	grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
	gap: clamp(64px, 10vw, 152px);
	align-items: start;
}

.s45-scope-statement .s45-kicker,
.s45-handover-layout .s45-kicker,
.s45-cta-inner .s45-kicker {
	color: #d2ddda;
}

.s45-scope-statement h2 {
	max-width: 680px;
	color: var(--s45-white);
	font-size: clamp(40px, 5.5vw, 78px);
}

.s45-scope-statement > p {
	margin-top: 28px !important;
	color: #b6c6c4;
}

.s45-scope-statement .s45-scope-aside {
	max-width: 430px;
	padding-top: 24px;
	border-top: 1px solid rgba(234, 241, 236, .25);
	color: var(--s45-amber);
	font-size: 14px;
	font-weight: 650;
	line-height: 1.65;
}

.s45-scope-rows {
	border-top: 1px solid rgba(234, 241, 236, .25);
}

.s45-scope-rows article {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) auto;
	gap: 24px;
	align-items: start;
	padding: 30px 0 34px;
	border-bottom: 1px solid rgba(234, 241, 236, .18);
}

.s45-row-index,
.s45-delivery-number {
	color: var(--s45-amber);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 11px;
	letter-spacing: .08em;
}

.s45-scope-rows h3 {
	color: var(--s45-white);
	font-size: 24px;
	font-weight: 600;
	letter-spacing: -.03em;
}

.s45-scope-rows p {
	max-width: 540px;
	margin-top: 12px !important;
	color: #b6c6c4;
	font-size: 15px;
	line-height: 1.75;
}

.s45-scope-rows strong {
	padding-top: 6px;
	color: #91a7a9;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .08em;
	white-space: nowrap;
}

.s45-evidence-section {
	background: var(--s45-paper);
}

.s45-evidence-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
	gap: 18px;
	align-items: stretch;
}

.s45-evidence-layout figure {
	position: relative;
	min-width: 0;
	overflow: hidden;
	background: #17242b;
}

.s45-evidence-layout img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 360px;
	object-fit: cover;
	filter: saturate(.86) contrast(1.04);
	transition: transform .8s cubic-bezier(.22, .61, .36, 1);
}

.s45-evidence-layout figure:hover img {
	transform: scale(1.03);
}

.s45-evidence-feature img {
	min-height: 590px;
	object-position: center;
}

.s45-evidence-layout figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 24px;
	background: linear-gradient(0deg, rgba(7, 14, 18, .94), rgba(7, 14, 18, .06));
	color: var(--s45-white);
}

.s45-evidence-layout figcaption span {
	color: var(--s45-amber);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.s45-evidence-layout figcaption strong {
	max-width: 470px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
}

.s45-evidence-side {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	gap: 18px;
}

.s45-evidence-side figure img {
	min-height: 330px;
}

.s45-evidence-note {
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr);
	gap: 16px;
	padding: 24px;
	border-top: 2px solid var(--s45-ink);
	background: var(--s45-paper-deep);
}

.s45-evidence-note-mark {
	color: var(--s45-red);
	font-size: 30px;
	line-height: 1;
}

.s45-evidence-note p {
	color: var(--s45-ink);
	font-size: 15px;
	line-height: 1.75;
}

.s45-delivery-section {
	background: #e5e6df;
}

.s45-delivery-track {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	padding-top: 40px;
	border-top: 1px solid var(--s45-line);
}

.s45-delivery-track::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, var(--s45-amber), var(--s45-blue), var(--s45-red));
	content: '';
}

.s45-delivery-track article {
	min-height: 220px;
	padding: 0 24px 0 0;
	border-right: 1px solid var(--s45-line);
}

.s45-delivery-track article:last-child {
	border-right: 0;
}

.s45-delivery-track h3 {
	margin-top: 44px;
	font-size: 30px;
	font-weight: 620;
	letter-spacing: -.04em;
}

.s45-delivery-track p {
	max-width: 230px;
	margin-top: 16px !important;
	color: var(--s45-muted-dark);
	font-size: 15px;
	line-height: 1.75;
}

.s45-handover-section {
	padding: 110px 0;
	background: var(--s45-ink);
	color: var(--s45-white);
}

.s45-handover-layout {
	display: grid;
	grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr);
	gap: clamp(56px, 10vw, 148px);
	align-items: start;
}

.s45-handover-layout h2 {
	color: var(--s45-white);
	font-size: clamp(38px, 5vw, 70px);
}

.s45-handover-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 30px;
	border-top: 1px solid var(--s45-line-dark);
}

.s45-handover-list > div {
	padding: 23px 0 26px;
	border-bottom: 1px solid var(--s45-line-dark);
}

.s45-handover-list span {
	display: block;
	margin-bottom: 22px;
	color: var(--s45-amber);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 10px;
}

.s45-handover-list strong {
	display: block;
	font-size: 17px;
	font-weight: 600;
}

.s45-handover-list p {
	margin-top: 9px !important;
	color: #aebdbd;
	font-size: 13px;
	line-height: 1.7;
}

.s45-cta-section {
	background: #b9664f;
	color: #171513;
}

.s45-cta-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 48px;
	padding-top: 106px;
	padding-bottom: 106px;
}

.s45-cta-inner .s45-kicker {
	color: rgba(23, 21, 19, .7);
}

.s45-cta-inner .s45-kicker span {
	color: #3f2720;
}

.s45-cta-inner h2 {
	max-width: 780px;
	color: #171513;
	font-size: clamp(42px, 5.5vw, 82px);
}

.s45-cta-inner > div > p:not(.s45-kicker) {
	max-width: 660px;
	margin-top: 22px !important;
	color: rgba(23, 21, 19, .75);
}

.s45-cta-inner .s45-button {
	margin-bottom: 5px;
}

[data-s45-reveal] {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .7s ease, transform .7s cubic-bezier(.22, .61, .36, 1);
}

[data-s45-reveal].is-visible {
	opacity: 1;
	transform: none;
}

@keyframes s45-flow {
	to { stroke-dashoffset: -68; }
}

@media (max-width: 1100px) {
	.s45-hero-inner {
		padding-top: 116px;
	}

	.s45-hero-index {
		align-self: flex-end;
	}

	.s45-section-heading {
		gap: 44px;
	}

	.s45-scope-layout,
	.s45-handover-layout {
		gap: 70px;
	}
}

@media (max-width: 820px) {
	.s45-structured-cabling .container {
		width: min(100% - 44px, 680px);
	}

	.s45-hero,
	.s45-hero-inner {
		min-height: 760px;
	}

	.s45-hero-inner {
		align-items: flex-end;
		padding-top: 96px;
		padding-bottom: 126px;
	}

	.s45-hero-index {
		display: none;
	}

	.s45-hero-baseline {
		grid-template-columns: 1fr auto;
		padding-inline: 22px;
	}

	.s45-hero-baseline span:nth-child(2) {
		display: none;
	}

	.s45-section {
		padding: 96px 0;
	}

	.s45-section-heading,
	.s45-section-heading--wide,
	.s45-scope-layout,
	.s45-handover-layout {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.s45-section-heading {
		margin-bottom: 42px;
	}

	.s45-scope-rows article {
		grid-template-columns: 44px minmax(0, 1fr);
	}

	.s45-scope-rows strong {
		grid-column: 2;
		padding-top: 0;
	}

	.s45-evidence-layout {
		grid-template-columns: 1fr;
	}

	.s45-evidence-feature img,
	.s45-evidence-side figure img {
		min-height: 420px;
	}

	.s45-evidence-side {
		grid-template-columns: minmax(0, 1fr) minmax(230px, .7fr);
		grid-template-rows: 1fr;
	}

	.s45-delivery-track {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 18px;
	}

	.s45-delivery-track article {
		min-height: 190px;
		border-right: 0;
		border-bottom: 1px solid var(--s45-line);
	}

	.s45-cta-inner {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-top: 84px;
		padding-bottom: 84px;
	}
}

@media (max-width: 560px) {
	.s45-structured-cabling .container {
		width: calc(100% - 32px);
	}

	.s45-hero,
	.s45-hero-inner {
		min-height: 730px;
	}

	.s45-hero-media img {
		object-position: 68% 50%;
	}

	.s45-hero-media::after {
		background: linear-gradient(90deg, rgba(7, 15, 21, .97), rgba(7, 15, 21, .55)), linear-gradient(0deg, rgba(7, 15, 21, .98), transparent 52%, rgba(7, 15, 21, .16));
	}

	.s45-hero-inner {
		padding-top: 82px;
		padding-bottom: 130px;
	}

	.s45-hero h1 {
		margin-top: 18px;
		font-size: clamp(66px, 19vw, 94px);
	}

	.s45-hero-lead {
		margin-top: 24px !important;
		font-size: 21px;
		line-height: 1.55;
	}

	.s45-actions {
		display: grid;
		margin-top: 30px;
	}

	.s45-button {
		width: 100%;
	}

	.s45-hero-footnote {
		max-width: 280px;
		margin-top: 20px !important;
		font-size: 10px;
		line-height: 1.7;
	}

	.s45-hero-baseline {
		grid-template-columns: 1fr;
		gap: 7px;
		align-content: center;
		padding-inline: 16px;
		font-size: 9px;
	}

	.s45-hero-baseline a {
		font-size: 9px;
	}

	.s45-section-rail .container {
		gap: 22px;
		min-height: 58px;
	}

	.s45-section-rail a {
		font-size: 11px;
	}

	.s45-section-rail .s45-rail-back {
		margin-left: 4px;
	}

	.s45-section {
		padding: 76px 0;
	}

	.s45-section-heading h2,
	.s45-scope-statement h2,
	.s45-handover-layout h2,
	.s45-cta-inner h2 {
		font-size: clamp(36px, 12vw, 54px);
		line-height: 1.12;
	}

	.s45-section-heading > p,
	.s45-scope-statement > p,
	.s45-handover-layout > div > p:not(.s45-kicker),
	.s45-cta-inner > div > p:not(.s45-kicker) {
		font-size: 15px;
		line-height: 1.78;
	}

	.s45-system-visual--desktop {
		display: none;
	}

	.s45-system-visual--mobile {
		display: block;
	}

	.s45-visual-topline {
		padding: 17px 18px;
		font-size: 9px;
	}

	.s45-mobile-flow {
		padding: 22px 18px 18px;
	}

	.s45-mobile-flow li {
		grid-template-columns: 36px minmax(0, 1fr);
		gap: 13px;
		padding-bottom: 22px;
	}

	.s45-mobile-flow li:not(:last-child)::after {
		left: 17px;
	}

	.s45-mobile-flow-index {
		width: 36px;
		height: 36px;
	}

	.s45-mobile-flow strong {
		padding-top: 3px;
		font-size: 16px;
	}

	.s45-mobile-flow small {
		font-size: 11px;
	}

	.s45-scope-layout {
		gap: 52px;
	}

	.s45-scope-rows article {
		grid-template-columns: 38px minmax(0, 1fr);
		gap: 14px;
		padding: 24px 0 28px;
	}

	.s45-scope-rows h3 {
		font-size: 21px;
	}

	.s45-scope-rows p {
		font-size: 14px;
		line-height: 1.7;
	}

	.s45-scope-rows strong {
		font-size: 9px;
	}

	.s45-evidence-layout {
		gap: 14px;
	}

	.s45-evidence-feature img,
	.s45-evidence-side figure img {
		min-height: 280px;
	}

	.s45-evidence-layout figcaption {
		padding: 18px;
	}

	.s45-evidence-layout figcaption strong {
		font-size: 14px;
	}

	.s45-evidence-side {
		display: block;
	}

	.s45-evidence-note {
		margin-top: 14px;
		padding: 20px;
	}

	.s45-evidence-note p {
		font-size: 14px;
	}

	.s45-delivery-track {
		display: block;
		padding-left: 22px;
		border-top: 0;
		border-left: 1px solid var(--s45-line);
	}

	.s45-delivery-track::before {
		top: 0;
		right: auto;
		bottom: 0;
		left: -2px;
		width: 2px;
		height: auto;
		background: linear-gradient(180deg, var(--s45-amber), var(--s45-blue), var(--s45-red));
	}

	.s45-delivery-track article,
	.s45-delivery-track article:last-child {
		min-height: 0;
		padding: 0 0 28px;
		margin-bottom: 28px;
		border-right: 0;
		border-bottom: 1px solid var(--s45-line);
	}

	.s45-delivery-track article:last-child {
		margin-bottom: 0;
		border-bottom: 0;
	}

	.s45-delivery-track h3 {
		margin-top: 18px;
		font-size: 27px;
	}

	.s45-delivery-track p {
		max-width: none;
		font-size: 14px;
	}

	.s45-handover-section {
		padding: 76px 0;
	}

	.s45-handover-layout {
		gap: 46px;
	}

	.s45-handover-list {
		grid-template-columns: 1fr;
	}

	.s45-handover-list > div {
		padding: 20px 0 22px;
	}

	.s45-handover-list span {
		margin-bottom: 15px;
	}

	.s45-cta-inner {
		padding-top: 72px;
		padding-bottom: 72px;
	}
}

/* English localization keeps the S45 identity while giving longer labels room. */
.s45-structured-cabling--en .s45-hero-copy {
	max-width: 720px;
}

.s45-structured-cabling--en .s45-hero h1 {
	max-width: 9.5em;
	letter-spacing: -.075em;
}

.s45-structured-cabling--en .s45-hero-lead {
	max-width: 680px;
}

.s45-structured-cabling--en .s45-button {
	white-space: nowrap;
}

.s45-structured-cabling--en .s45-svg-title {
	font-size: 11px;
	letter-spacing: -.025em;
}

.s45-structured-cabling--en .s45-svg-copy {
	font-size: 8.5px;
	letter-spacing: -.02em;
}

@media (max-width: 820px) {
	.s45-structured-cabling--en .s45-system-visual--desktop {
		display: none;
	}

	.s45-structured-cabling--en .s45-system-visual--mobile {
		display: block;
	}

	.s45-structured-cabling--en .s45-hero-lead {
		max-width: 620px;
	}
}

@media (min-width: 561px) and (max-width: 820px) {
	.s45-structured-cabling--en .s45-visual-topline {
		padding-inline: 22px;
	}

	.s45-structured-cabling--en .s45-mobile-flow {
		padding: 28px 22px 22px;
	}

	.s45-structured-cabling--en .s45-mobile-flow strong {
		font-size: 20px;
	}

	.s45-structured-cabling--en .s45-mobile-flow small {
		font-size: 13px;
	}
}

@media (max-width: 560px) {
	.s45-structured-cabling--en .s45-hero h1 {
		font-size: clamp(58px, 16vw, 88px);
		letter-spacing: -.07em;
	}

	.s45-structured-cabling--en .s45-hero-lead {
		font-size: 20px;
	}
}

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