.johnn-quality-page {
	--quality-ink: #152126;
	--quality-muted: #65747a;
	--quality-line: #dce3e5;
	color: var(--quality-ink);
	background: #fff;
}

.johnn-quality-page .farady-shell:not(.johnn-about-poster-content) {
	width: min(1440px, 88%);
}

.johnn-quality-kicker,
.johnn-quality-section-heading > p {
	margin: 0;
	color: #f36b20;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.johnn-quality-page h2,
.johnn-quality-page h3 {
	margin: 0;
	font-family: var(--farady-font);
	font-weight: 700;
}

.johnn-quality-stages,
.johnn-quality-roles {
	position: relative;
	padding: 132px 0;
}

.johnn-quality-overview {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 108px 0 124px;
	background: #f7f8f8;
}

.johnn-quality-overview::before,
.johnn-quality-overview::after {
	position: absolute;
	inset: 0;
	content: "";
	pointer-events: none;
}

.johnn-quality-overview::before {
	z-index: -2;
	background: url("../images/transformer-production-hero-clean-floor.webp") center 48% / cover no-repeat;
	filter: blur(2px);
	transform: scale(1.025);
}

.johnn-quality-overview::after {
	z-index: -1;
	background: rgba(255, 255, 255, .95);
}

.johnn-quality-overview .farady-shell {
	position: relative;
	z-index: 1;
}

.johnn-quality-overview .johnn-quality-section-heading {
	display: block;
	margin: 0 0 52px;
	text-align: center;
}

.johnn-quality-overview .johnn-quality-section-heading > p {
	margin-bottom: 16px;
}

.johnn-quality-overview-grid {
	display: grid;
	grid-template-columns: 1fr 1.14fr 1fr;
	gap: 20px;
	align-items: start;
}

.johnn-quality-overview-grid article {
	position: relative;
	min-height: 330px;
	padding: 34px 32px;
	border: 1px solid rgba(220, 227, 229, .9);
	border-left: 4px solid #f36b20;
	border-radius: 10px;
	background: rgba(255, 255, 255, .9);
	box-shadow: 0 18px 44px rgba(21, 33, 38, .1);
	backdrop-filter: blur(6px);
}

.johnn-quality-overview-grid article::after {
	position: absolute;
	inset: 0;
	border: 1px solid rgba(243, 107, 32, .45);
	border-radius: inherit;
	content: "";
	opacity: 0;
	pointer-events: none;
}

.johnn-quality-overview-grid article:nth-child(2) {
	min-height: 350px;
}

.johnn-quality-overview-grid article:nth-child(1),
.johnn-quality-overview-grid article:nth-child(3) {
	margin-top: 26px;
}

.johnn-quality-overview-icon {
	display: block;
	width: 46px;
	height: 46px;
	margin-bottom: 24px;
	color: #65747a;
}

.johnn-quality-overview-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

@media (hover: hover) and (pointer: fine) {
	.johnn-quality-overview-grid article:hover::after {
		opacity: 1;
	}

	.johnn-quality-overview-grid article:hover .johnn-quality-overview-icon {
		color: #f36b20;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.johnn-quality-overview-grid article::after {
		transition: opacity 160ms ease;
	}
}

.johnn-quality-overview-grid h3 {
	padding-bottom: 16px;
	border-bottom: 1px solid rgba(220, 227, 229, .9);
	font-size: 26px;
	line-height: 1.22;
}

.johnn-quality-overview-grid p {
	margin: 15px 0 0;
	color: var(--quality-muted);
	font-size: 18px;
	line-height: 1.62;
}

.johnn-quality-stages {
	overflow: hidden;
	background-color: #fff;
	background-image: linear-gradient(rgba(220, 227, 229, .38) 1px, transparent 1px), linear-gradient(90deg, rgba(220, 227, 229, .38) 1px, transparent 1px);
	background-position: right -1px top -1px;
	background-size: 44px 44px;
}

.johnn-quality-stages::after {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(14vw, 240px);
	background: linear-gradient(90deg, transparent, #fff 76%);
	pointer-events: none;
	content: "";
}

.johnn-quality-stages .farady-shell,
.johnn-quality-roles .farady-shell {
	position: relative;
	z-index: 1;
}

.johnn-quality-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, .92fr);
	gap: 26px 11%;
	align-items: end;
	margin-bottom: 64px;
}

.johnn-quality-section-heading > p {
	grid-column: 1 / -1;
}

.johnn-quality-section-heading h2,
.johnn-quality-page .johnn-about-certificates-heading h2 {
	font-size: clamp(38px, 4.1vw, 60px);
	line-height: 1.02;
	letter-spacing: -.055em;
}

.johnn-quality-section-heading div p {
	margin: 0;
	color: var(--quality-muted);
	font-size: 17px;
	line-height: 1.68;
}

.johnn-quality-stage-list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1px;
	margin: 0;
	padding: 1px;
	background: var(--quality-line);
	list-style: none;
}

.johnn-quality-stage-list > li {
	position: relative;
	min-height: 246px;
	padding: 34px 25px 30px;
	background: #fff;
}

.johnn-quality-stage-list > li::after {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 3px;
	background: #f36b20;
	opacity: 0;
	transform: scaleX(.28);
	transform-origin: left center;
	transition: transform 180ms ease, opacity 180ms ease;
	content: "";
}

.johnn-quality-stage-number {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 46px;
}

.johnn-quality-stage-number span {
	color: #f36b20;
	font-family: var(--farady-font);
	font-size: 34px;
	font-weight: 700;
	letter-spacing: -.04em;
	line-height: 1;
}

.johnn-quality-stage-number small {
	color: var(--quality-muted);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.johnn-quality-stage-list h3 {
	font-size: 21px;
	line-height: 1.12;
}

.johnn-quality-stage-list p {
	margin: 16px 0 0;
	color: var(--quality-muted);
	font-size: 14px;
	line-height: 1.62;
}

@media (hover: hover) and (pointer: fine) {
	.johnn-quality-stage-list > li:hover::after {
		opacity: 1;
		transform: scaleX(1);
	}
}

.johnn-quality-roles {
	padding: 80px 0;
	background: #f7f7f7;
}

.johnn-quality-roles .johnn-quality-section-heading {
	display: block;
	margin: 0 0 22px;
}

.johnn-quality-roles .johnn-quality-section-heading > p {
	margin-bottom: 20px;
}

.johnn-quality-role-layout {
	display: grid;
	grid-template-columns: minmax(360px, 1.18fr) repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.johnn-quality-role-card {
	display: flex;
	min-height: 180px;
	padding: 22px 28px;
	flex-direction: column;
	justify-content: center;
	border: 1px solid #e3e8ea;
	border-top: 3px solid #f36b20;
	border-radius: 10px;
	background: #fff;
	transition: transform 180ms cubic-bezier(0.23, 1, 0.32, 1), border-color 180ms ease;
}

.johnn-quality-role-card--featured {
	position: relative;
	grid-row: span 2;
	padding: 28px;
	justify-content: flex-end;
	border: 1px solid #e3e8ea;
	border-top: 3px solid #f36b20;
	overflow: hidden;
	background: #152126;
	color: #fff;
}

.johnn-quality-role-card--featured::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(21, 33, 38, .08) 18%, rgba(21, 33, 38, .9) 100%);
	transition: opacity 180ms ease;
	pointer-events: none;
	content: "";
}

.johnn-quality-role-card--featured img {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1);
}

.johnn-quality-role-card--featured > :not(img) {
	position: relative;
	z-index: 2;
}

.johnn-quality-role-card span {
	display: block;
	margin-bottom: 12px;
	color: #f36b20;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
}

.johnn-quality-role-card--featured span {
	align-self: flex-start;
	display: inline-block;
	margin-bottom: 12px;
	padding: 8px 10px;
	border-radius: 6px;
	background: #f36b20;
	color: #fff;
}

.johnn-quality-role-card h3 {
	font-size: 22px;
	line-height: 1.22;
}

.johnn-quality-role-card p {
	margin: 12px 0 0;
	color: var(--quality-muted);
	font-size: 17px;
	line-height: 1.58;
}

.johnn-quality-role-card--featured h3 {
	font-size: 25px;
}

.johnn-quality-role-card--featured p {
	color: rgba(255, 255, 255, .88);
	font-size: 18px;
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.johnn-quality-role-card:hover {
		transform: translateY(-4px);
		border-color: #f36b20;
	}

	.johnn-quality-role-card--featured:hover::before {
		opacity: .86;
	}

	.johnn-quality-role-card--featured:hover img {
		transform: scale(1.035);
	}
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
	.johnn-quality-role-card:hover {
		border-color: #f36b20;
	}

	.johnn-quality-role-card--featured:hover::before {
		opacity: .86;
	}
}

.johnn-quality-traceability {
	position: relative;
	padding: 112px 0;
	color: var(--quality-ink);
	background: #fff;
}

.johnn-quality-traceability-layout {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.johnn-quality-traceability-heading {
	max-width: 920px;
	text-align: center;
}

.johnn-quality-traceability-heading h2 {
	font-size: clamp(40px, 4.1vw, 62px);
}

.johnn-quality-traceability-copy {
	max-width: 660px;
	margin: 20px auto 52px;
	text-align: center;
}

.johnn-quality-traceability-copy > p {
	margin: 0;
	color: var(--quality-muted);
}

.johnn-quality-traceability-list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.johnn-quality-traceability-list li {
	position: relative;
	display: flex;
	min-height: 320px;
	padding: 30px 22px 28px;
	flex-direction: column;
	align-items: center;
	border: 1px solid var(--quality-line);
	border-top: 3px solid #f36b20;
	background: #fff;
	text-align: center;
	transition: transform 180ms cubic-bezier(0.23, 1, 0.32, 1), filter 180ms ease;
}

.johnn-quality-traceability-list li > * {
	position: relative;
	z-index: 1;
}

.johnn-quality-traceability-icon {
	display: grid;
	width: 86px;
	height: 86px;
	margin-bottom: 28px;
	place-items: center;
	background: rgba(243, 107, 32, .1);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%);
	color: var(--quality-ink);
}

.johnn-quality-traceability-icon img {
	display: block;
	width: 46px;
	height: 46px;
	object-fit: contain;
}

.johnn-quality-traceability-list li h3 {
	font-size: clamp(19px, 1.42vw, 23px);
	line-height: 1.24;
}

.johnn-quality-traceability-list li p {
	margin: 18px 0 0;
	color: var(--quality-muted);
	font-size: 16px;
	line-height: 1.62;
}

.johnn-quality-traceability-action {
	display: inline-flex;
	gap: 10px;
	align-items: center;
	margin-top: 36px;
	color: #f36b20;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
}

.johnn-quality-traceability-action .johnn-icon-arrow {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	transition: transform 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
	.johnn-quality-traceability-list li:hover {
		filter: drop-shadow(0 12px 18px rgba(21, 33, 38, .12));
		transform: translateY(-5px);
	}

	.johnn-quality-traceability-action:hover .johnn-icon-arrow {
		transform: translateX(4px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.johnn-quality-traceability-list li,
	.johnn-quality-traceability-action .johnn-icon-arrow {
		transition: none;
	}

	.johnn-quality-traceability-list li:hover,
	.johnn-quality-traceability-action:hover .johnn-icon-arrow {
		transform: none;
	}
}

@media (max-width: 1180px) {
	.johnn-quality-traceability-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.johnn-quality-traceability-heading h2 {
		font-size: clamp(38px, 9vw, 52px);
	}

	.johnn-quality-traceability-copy {
		margin-bottom: 42px;
	}

	.johnn-quality-traceability-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.johnn-quality-traceability-list {
		grid-template-columns: 1fr;
	}

	.johnn-quality-traceability-list li {
		min-height: 0;
		padding: 30px 24px 32px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.johnn-quality-stage-list > li::after {
		transform: none;
		transition: opacity 180ms ease;
	}
}

@media (max-width: 1180px) {
	.johnn-quality-stage-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}


	.johnn-quality-role-layout {
		gap: 18px;
	}


}

@media (max-width: 820px) {
	.johnn-quality-page .farady-shell:not(.johnn-about-poster-content) {
		width: min(620px, 88%);
	}

	.johnn-quality-stages,
	.johnn-quality-overview,
	.johnn-quality-roles,
	.johnn-quality-traceability,

	.johnn-quality-section-heading,

	.johnn-quality-section-heading {
		margin-bottom: 46px;
	}

	.johnn-quality-stage-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.johnn-quality-overview-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.johnn-quality-overview-grid article {
		min-height: 0;
	}

	.johnn-quality-overview-grid article:nth-child(2) {
		min-height: 0;
	}

	.johnn-quality-overview-grid article:nth-child(1),
	.johnn-quality-overview-grid article:nth-child(3) {
		margin-top: 0;
	}

	.johnn-quality-stage-list > li {
		min-height: 220px;
	}



	.johnn-quality-roles .johnn-quality-section-heading {
		margin-bottom: 34px;
	}

	.johnn-quality-role-layout {
		grid-template-columns: 1fr;
		grid-template-rows: none;
		gap: 16px;
	}

	.johnn-quality-role-card--featured {
		grid-row: auto;
		min-height: 300px;
	}

}

@media (max-width: 520px) {
	.johnn-quality-overview {
		padding: 66px 0 78px;
	}

	.johnn-quality-overview .johnn-quality-section-heading {
		margin-bottom: 36px;
	}

	.johnn-quality-overview-grid article {
		min-height: 0;
		padding: 28px 24px;
	}

	.johnn-quality-stages {
		background-size: 34px 34px;
	}

	.johnn-quality-stages::after {
		width: 46px;
	}

	.johnn-quality-stage-list {
		grid-template-columns: 1fr;
	}

	.johnn-quality-stage-list > li {
		min-height: 0;
		padding: 28px 22px;
	}

	.johnn-quality-stage-number {
		margin-bottom: 24px;
	}




}
