/*
 * Premier Plasmotec Quality & Validation page module.
 *
 * The Gutenberg document and Core renderer remain authoritative. This file
 * only refines the /quality-validation/ route's composition, evidence
 * legibility, and motion timing.
 */

body.ppps-route-quality-validation {
	--pp-quality-accent: #a9bac0;
	--pp-quality-accent-strong: #d7e0e3;
	--pp-quality-ink: #07090a;
	--pp-quality-graphite: #121617;
	--pp-quality-line-dark: rgba(255, 255, 255, .18);
	--pp-quality-line-light: rgba(7, 9, 10, .18);
	--pp-quality-radius: 14px;
}

body.ppps-route-quality-validation .page-studio-content {
	overflow: clip;
}

body.ppps-route-quality-validation .pp-block__title,
body.ppps-route-quality-validation .pp-block__copy,
body.ppps-route-quality-validation .pp-equipment,
body.ppps-route-quality-validation .pp-technical-card,
body.ppps-route-quality-validation .pp-table-scroll {
	min-width: 0;
}

/*
 * Keep the standard Hero as a governed image composition. The page does not
 * have a distinct 1920 x 1080 Hero asset, so the approved CMM image is never
 * enlarged beyond the existing renderer's authority.
 */
body.ppps-route-quality-validation .pp-block--industrial-hero {
	isolation: isolate;
	border-bottom: 1px solid rgba(255, 255, 255, .2);
}

body.ppps-route-quality-validation .pp-block--industrial-hero .pp-hero__inner {
	align-content: end;
	padding-bottom: clamp(3.5rem, 7vw, 7rem);
}

body.ppps-route-quality-validation .pp-block--industrial-hero .pp-block__title {
	max-width: 12ch;
	font-size: clamp(3.9rem, 6.7vw, 7.9rem);
	line-height: .9;
	letter-spacing: -.064em;
	text-wrap: balance;
}

body.ppps-route-quality-validation .pp-block--industrial-hero .pp-block__copy {
	max-width: 43rem;
	font-size: clamp(1rem, 1.25vw, 1.22rem);
	line-height: 1.55;
}

body.ppps-route-quality-validation .pp-block--industrial-hero .pp-hero__interface i {
	height: 2px;
	background: var(--pp-quality-accent);
	box-shadow: 0 0 20px rgba(169, 186, 192, .42);
}

/*
 * The global scene entrance previously left evidence grey-on-grey for nearly
 * a second during rapid scrolling. Quality records use a shorter, bounded
 * entrance; the page observer supplies the local card movement below.
 */
body.ppps-route-quality-validation [data-pp-scene].is-motion-mounted >
	:where(.pp-block__inner, .pp-section__inner) {
	transition-duration: 280ms;
}

body.ppps-route-quality-validation [data-pp-scene="records"].is-motion-mounted
	:where([data-pp-record], .record-card, tr) {
	transition-duration: 280ms;
	transition-delay: calc(min(var(--pp-record-index, 0), 7) * 34ms);
}

body.ppps-route-quality-validation [data-pp-quality-record] {
	--pp-quality-record-direction: 1;
	opacity: 1;
	transform: none;
}

body.ppps-route-quality-validation [data-pp-quality-record]:nth-child(even) {
	--pp-quality-record-direction: -1;
}

body.ppps-route-quality-validation.ppps-capability-full.ppps-runtime-ready[data-pp-quality-enhanced="ready"]
	[data-pp-quality-record][data-pp-quality-state="waiting"] {
	opacity: .62;
	transform: translate3d(
		calc(var(--pp-quality-record-direction) * 26px),
		0,
		0
	);
}

body.ppps-route-quality-validation.ppps-capability-full.ppps-runtime-ready[data-pp-quality-enhanced="ready"]
	[data-pp-quality-record][data-pp-quality-state="visible"] {
	opacity: 1;
	transform: none;
}

body.ppps-route-quality-validation.ppps-capability-full.ppps-runtime-ready[data-pp-quality-enhanced="ready"]
	[data-pp-quality-record] {
	transition:
		opacity 260ms ease,
		transform 520ms cubic-bezier(.22, 1, .36, 1);
	transition-delay: calc(min(var(--pp-quality-index, 0), 3) * 36ms);
}

/* -------------------------------------------------------------------------- */
/* Four-state validation carousel.                                             */
/* -------------------------------------------------------------------------- */

body.ppps-route-quality-validation .pp-block--process-chain {
	overflow: visible;
	background:
		linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px),
		var(--pp-quality-graphite);
	background-size: 72px 72px;
}

body.ppps-route-quality-validation .pp-process-story__header {
	margin-bottom: clamp(2.75rem, 5vw, 5rem);
}

body.ppps-route-quality-validation .pp-process-story__header .pp-block__title {
	max-width: 13ch;
	font-size: clamp(3.75rem, 6.8vw, 7.8rem);
	line-height: .91;
	letter-spacing: -.064em;
}

body.ppps-route-quality-validation .pp-process__media-stack {
	border: 1px solid var(--pp-quality-line-dark);
	border-radius: var(--pp-quality-radius);
	background:
		linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px),
		#0b0e0f;
	background-size: 46px 46px;
	box-shadow: 0 32px 90px rgba(0, 0, 0, .3);
}

body.ppps-route-quality-validation .pp-process__media {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: scale(1.012);
	transition:
		opacity 220ms ease,
		transform 360ms cubic-bezier(.22, 1, .36, 1),
		visibility 0s linear 0s;
}

body.ppps-route-quality-validation .pp-process__media.is-active,
body.ppps-route-quality-validation .pp-process__media[aria-hidden="false"] {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition:
		opacity 260ms ease,
		transform 420ms cubic-bezier(.22, 1, .36, 1),
		visibility 0s linear 0s;
}

body.ppps-route-quality-validation .pp-process__media :is(img, video),
body.ppps-route-quality-validation .pp-process__stage-media :is(img, video) {
	object-fit: cover;
	filter: saturate(.78) contrast(1.04);
}

body.ppps-route-quality-validation .pp-process__media figcaption,
body.ppps-route-quality-validation .pp-process__stage-media figcaption {
	right: 1rem;
	bottom: 1rem;
	left: 1rem;
	padding-top: 2.5rem;
	color: rgba(255, 255, 255, .82);
	font-size: .64rem;
	line-height: 1.45;
	background: linear-gradient(transparent, rgba(5, 7, 8, .8));
}

body.ppps-route-quality-validation .pp-process__counter {
	grid-template-columns: auto minmax(0, 1fr) auto;
	margin-top: 1rem;
	font-size: .72rem;
	letter-spacing: .12em;
	opacity: .82;
}

body.ppps-route-quality-validation .pp-process__counter i {
	height: 3px;
	background: rgba(255, 255, 255, .2);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04);
}

body.ppps-route-quality-validation .pp-process__stage {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
	transition:
		opacity 180ms ease,
		transform 300ms cubic-bezier(.22, 1, .36, 1),
		visibility 0s linear 0s;
}

body.ppps-route-quality-validation .pp-process__stage.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
	transition:
		opacity 240ms ease,
		transform 380ms cubic-bezier(.22, 1, .36, 1),
		visibility 0s linear 0s;
}

body.ppps-route-quality-validation .pp-process__number {
	color: var(--pp-quality-accent);
}

body.ppps-route-quality-validation .pp-process__stage h3 {
	max-width: 13ch;
	font-size: clamp(2.2rem, 3vw, 3.5rem);
	line-height: .98;
	letter-spacing: -.05em;
}

body.ppps-route-quality-validation .pp-process__stage > p {
	max-width: 30rem;
	font-size: clamp(.98rem, 1.18vw, 1.08rem);
	line-height: 1.58;
}

@media (min-width: 901px) and (min-height: 640px) and (prefers-reduced-motion: no-preference) {
	body.ppps-route-quality-validation.ppps-capability-full:not(
		.ppps-presentation-page,
		.ppps-runtime-disabled,
		.ppps-readiness-failed,
		.ppps-motion-off,
		.ppps-motion-reduced
	) [data-pp-scene="indexed-story"].is-motion-mounted .pp-process-story__frame {
		z-index: 2;
		top: calc(
			var(--ppps-header-height) +
			var(--ppps-admin-offset) +
			clamp(.5rem, 2vh, 1.125rem)
		);
		height: calc(
			min(
				78svh,
				100svh -
				var(--ppps-header-height) -
				var(--ppps-admin-offset) -
				clamp(1rem, 4vh, 2.25rem)
			)
		);
		border-block: 1px solid rgba(255, 255, 255, .1);
		background:
			linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
			linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px),
			var(--pp-quality-graphite);
		background-size: 72px 72px;
		box-shadow: 0 -12rem 0 var(--pp-quality-graphite);
	}

	body.ppps-route-quality-validation.ppps-capability-full:not(
		.ppps-presentation-page,
		.ppps-runtime-disabled,
		.ppps-readiness-failed,
		.ppps-motion-off,
		.ppps-motion-reduced
	) [data-pp-scene="indexed-story"].is-motion-mounted .pp-process-story__layout {
		grid-template-columns: minmax(0, 1.12fr) minmax(20rem, .88fr);
		align-items: stretch;
		gap: clamp(2.5rem, 5vw, 6rem);
	}

	body.ppps-route-quality-validation.ppps-capability-full:not(
		.ppps-presentation-page,
		.ppps-runtime-disabled,
		.ppps-readiness-failed,
		.ppps-motion-off,
		.ppps-motion-reduced
	) [data-pp-scene="indexed-story"].is-motion-mounted .pp-process__sticky {
		padding-block: clamp(.875rem, 2vh, 1.5rem);
	}

	body.ppps-route-quality-validation.ppps-capability-full:not(
		.ppps-presentation-page,
		.ppps-runtime-disabled,
		.ppps-readiness-failed,
		.ppps-motion-off,
		.ppps-motion-reduced
	) [data-pp-scene="indexed-story"].is-motion-mounted .pp-process__stage {
		padding: clamp(1.5rem, 4vh, 3.5rem) 0;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translate3d(0, 18px, 0);
		transition:
			opacity 180ms ease,
			transform 300ms cubic-bezier(.22, 1, .36, 1),
			visibility 0s linear 0s;
	}

	body.ppps-route-quality-validation.ppps-capability-full:not(
		.ppps-presentation-page,
		.ppps-runtime-disabled,
		.ppps-readiness-failed,
		.ppps-motion-off,
		.ppps-motion-reduced
	) [data-pp-scene="indexed-story"].is-motion-mounted
		.pp-process__stage.is-active {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
		transition:
			opacity 240ms ease,
			transform 380ms cubic-bezier(.22, 1, .36, 1),
			visibility 0s linear 0s;
	}
}

/* -------------------------------------------------------------------------- */
/* Published certificate dossier: two balanced records, then two balanced      */
/* records. Portrait evidence remains contained rather than being cropped.      */
/* -------------------------------------------------------------------------- */

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-card-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	border: 1px solid var(--pp-quality-line-light);
	background: var(--pp-quality-line-light);
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card {
	display: grid;
	min-width: 0;
	min-height: clamp(31rem, 38vw, 38rem);
	padding: clamp(1.25rem, 2.2vw, 2rem);
	grid-template-columns: minmax(10rem, .72fr) minmax(0, 1fr);
	grid-template-rows: auto auto auto 1fr auto;
	column-gap: clamp(1.25rem, 2.5vw, 2.5rem);
	border: 0;
	border-radius: 0;
	background: var(--ppps-paper);
	color: var(--pp-quality-ink);
	transform: none;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card__media-stack {
	display: grid;
	min-width: 0;
	height: 100%;
	grid-column: 1;
	grid-row: 1 / -1;
	align-items: stretch;
	background: #e4e7e8;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card__media {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 0;
	margin: 0;
	aspect-ratio: auto;
	background: #e4e7e8;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: none;
	transform: none;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card__media figcaption {
	padding: 4rem .75rem .75rem;
	font-size: .58rem;
	line-height: 1.35;
	background: linear-gradient(transparent 28%, rgba(5, 7, 8, .82));
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card > :not(.pp-technical-card__media-stack) {
	grid-column: 2;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card:not(:has(.pp-technical-card__media-stack)) {
	grid-template-columns: minmax(0, 1fr);
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card:not(:has(.pp-technical-card__media-stack)) >
	:not(.pp-technical-card__media-stack) {
	grid-column: 1;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card__number {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	color: #66777d;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card h3 {
	margin: .35rem 0 1rem;
	font-size: clamp(1.8rem, 2.15vw, 2.55rem);
	line-height: 1;
	letter-spacing: -.045em;
	overflow-wrap: anywhere;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card > p:not(.pp-block__eyebrow) {
	margin: 0;
	font-size: 1rem;
	line-height: 1.58;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card__actions {
	align-self: end;
	margin-top: 1.5rem;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card:is(:hover, :focus-within) {
	background: #e4e7e8;
	color: var(--pp-quality-ink);
	transform: none;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
	.pp-technical-card__media
) .pp-technical-card:is(:hover, :focus-within) h3 {
	color: var(--pp-quality-ink);
	transform: translate3d(0, -.25rem, 0);
}

/* Production checks have no governed imagery and remain explicitly text-only. */
body.ppps-route-quality-validation .pp-block--technical-card-grid:not(:has(
	.pp-technical-card__media
)) .pp-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	border: 1px solid var(--pp-quality-line-light);
	background: var(--pp-quality-line-light);
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:not(:has(
	.pp-technical-card__media
)) .pp-technical-card {
	min-height: clamp(18rem, 25vw, 24rem);
	padding: clamp(1.5rem, 3vw, 3rem);
	border-radius: 0;
	transform: none;
}

body.ppps-route-quality-validation .pp-block--technical-card-grid:not(:has(
	.pp-technical-card__media
)) .pp-technical-card h3 {
	font-size: clamp(1.8rem, 2.4vw, 2.8rem);
	line-height: 1;
	letter-spacing: -.045em;
}

/* -------------------------------------------------------------------------- */
/* Inspection-equipment lens: a compact 2 x 2 evidence field.                  */
/* -------------------------------------------------------------------------- */

body.ppps-route-quality-validation .pp-block--equipment-gallery {
	background:
		linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px),
		var(--pp-quality-graphite);
	background-size: 72px 72px;
}

body.ppps-route-quality-validation .pp-block--equipment-gallery .pp-block__header {
	max-width: 72rem;
	margin-bottom: clamp(3rem, 4vw, 3.5rem);
}

body.ppps-route-quality-validation .pp-block--equipment-gallery .pp-block__title {
	max-width: 13ch;
	font-size: clamp(3.7rem, 6.5vw, 7.4rem);
	line-height: .91;
	letter-spacing: -.06em;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment {
	display: grid;
	min-width: 0;
	min-height: 0;
	padding: clamp(1.25rem, 2.2vw, 2rem);
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto auto auto 1fr;
	align-content: start;
	column-gap: 0;
	border: 1px solid var(--pp-quality-line-dark);
	border-radius: var(--pp-quality-radius);
	overflow: clip;
	background: #15191a;
	color: #fff;
	transform: none;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment figure,
body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment:nth-child(even) figure {
	position: relative;
	width: calc(100% + (clamp(1.25rem, 2.2vw, 2rem) * 2));
	height: auto;
	min-height: 0;
	margin:
		calc(clamp(1.25rem, 2.2vw, 2rem) * -1)
		calc(clamp(1.25rem, 2.2vw, 2rem) * -1)
		clamp(1.5rem, 2.5vw, 2.5rem);
	grid-column: 1;
	grid-row: auto;
	aspect-ratio: 1586 / 992;
	border-bottom: 1px solid var(--pp-quality-line-dark);
	border-radius: 0;
	overflow: clip;
	background: #0b0e0f;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(.76) contrast(1.04);
	transform: scale(1.002);
	transition:
		filter 280ms ease,
		transform 620ms cubic-bezier(.22, 1, .36, 1);
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment :is(h3, dl, p),
body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment:nth-child(even) :is(h3, dl, p) {
	grid-column: 1;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment h3 {
	max-width: 14ch;
	margin: 0 0 1.25rem;
	font-size: clamp(2rem, 2.65vw, 3.2rem);
	line-height: .98;
	letter-spacing: -.045em;
	overflow-wrap: normal;
	word-break: normal;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment dl {
	margin: 0 0 1.25rem;
	border-color: var(--pp-quality-line-dark);
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment dl div {
	grid-template-columns: minmax(6.5rem, .38fr) minmax(0, 1fr);
	padding: .72rem 0;
	border-color: var(--pp-quality-line-dark);
	gap: 1rem;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment dt {
	font-size: .7rem;
	line-height: 1.4;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment dd {
	font-size: 1rem;
	line-height: 1.45;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment > p {
	align-self: end;
	margin: 0;
	font-size: 1rem;
	line-height: 1.58;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment:is(:hover, :focus-within) {
	z-index: 1;
	border-color: rgba(169, 186, 192, .72);
	background: #1b2021;
	color: #fff;
	transform: translate3d(0, -.35rem, 0);
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment:is(:hover, :focus-within) h3 {
	color: var(--pp-quality-accent-strong);
	transform: none;
}

body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
	.pp-equipment:is(:hover, :focus-within) figure img {
	filter: saturate(.9) contrast(1.06);
	transform: scale(1.025);
}

/* -------------------------------------------------------------------------- */
/* Approval table.                                                             */
/* -------------------------------------------------------------------------- */

body.ppps-route-quality-validation .pp-block--technical-table .pp-block__inner {
	grid-template-columns: minmax(18rem, .6fr) minmax(0, 1.4fr);
	gap: clamp(2rem, 5vw, 6rem);
}

body.ppps-route-quality-validation .pp-block--technical-table
	.pp-table-layout__intro {
	top: calc(var(--ppps-header-height) + var(--ppps-admin-offset) + 2rem);
}

body.ppps-route-quality-validation .pp-block--technical-table
	.pp-table-layout__intro .pp-block__title {
	max-width: 10ch;
	font-size: clamp(3rem, 4.4vw, 5.2rem);
	line-height: .96;
	letter-spacing: -.055em;
}

body.ppps-route-quality-validation .pp-block--technical-table .pp-table-scroll {
	border: 0;
	border-top: 2px solid currentColor;
	border-bottom: 1px solid currentColor;
}

body.ppps-route-quality-validation .pp-block--technical-table .pp-table-scroll table {
	font-size: 1rem;
}

body.ppps-route-quality-validation .pp-block--technical-table
	.pp-table-scroll caption {
	padding: 1.1rem 1rem;
	font-size: 1rem;
}

body.ppps-route-quality-validation .pp-block--technical-table
	.pp-table-scroll :is(th, td) {
	padding: clamp(1rem, 1.6vw, 1.4rem);
	font-size: 1rem;
	line-height: 1.5;
	border-color: rgba(7, 9, 10, .36);
}

body.ppps-route-quality-validation .pp-block--technical-table
	.pp-table-scroll thead th {
	font-size: 1rem;
	letter-spacing: .08em;
}

body.ppps-route-quality-validation .pp-block--technical-table
	.pp-table-scroll tbody tr {
	background: transparent;
	transition:
		background-color 220ms ease,
		transform 320ms cubic-bezier(.22, 1, .36, 1);
}

body.ppps-route-quality-validation .pp-block--technical-table
	.pp-table-scroll tbody tr:is(:hover, :focus-within) {
	background: rgba(169, 186, 192, .16);
	transform: translate3d(.35rem, 0, 0);
}

body.ppps-route-quality-validation .pp-block--enquiry-cta {
	border-top: 1px solid rgba(255, 255, 255, .16);
}

/* -------------------------------------------------------------------------- */
/* Tablet and phone layouts.                                                   */
/* -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment-grid {
		gap: .5rem;
	}

	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment h3 {
		font-size: clamp(1.8rem, 3.2vw, 2.5rem);
	}

	body.ppps-route-quality-validation .pp-block--technical-table
		.pp-table-layout__intro .pp-block__title {
		font-size: clamp(2.7rem, 4.6vw, 4.2rem);
	}
}

@media (max-width: 980px) {
	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-card-grid,
	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 900px) {
	body.ppps-route-quality-validation .pp-block--industrial-hero .pp-block__title {
		font-size: clamp(3.25rem, 9.8vw, 5.8rem);
	}

	body.ppps-route-quality-validation .pp-process-story__header {
		margin-bottom: 2.5rem;
	}

	body.ppps-route-quality-validation .pp-process-story__header .pp-block__title {
		max-width: 15ch;
		font-size: clamp(3rem, 9.5vw, 5.4rem);
		line-height: .94;
	}

	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process-story__runway,
	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process-story__frame {
		position: relative;
		top: auto;
		height: auto;
		min-height: 0;
		overflow: visible;
	}

	body.ppps-route-quality-validation .pp-block--process-chain .pp-process {
		display: grid;
		width: 100%;
		min-width: 0;
		grid-template-columns: minmax(0, 1fr);
		overflow: visible;
	}

	body.ppps-route-quality-validation .pp-block--process-chain .pp-process__stage {
		position: relative;
		inset: auto;
		display: block;
		width: 100%;
		height: auto;
		min-height: 0;
		padding: 2rem 0 2.75rem;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
	}

	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process__stage-media {
		display: block;
		width: 100%;
		margin-bottom: 1.5rem;
		aspect-ratio: 1586 / 992;
		border: 1px solid var(--pp-quality-line-dark);
		border-radius: .75rem;
	}

	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process__stage-media figcaption {
		right: min(1rem, 4vw);
		bottom: min(1rem, 4vw);
		left: min(1rem, 4vw);
		padding-top: min(2.5rem, 10vw);
		font-size: clamp(.45rem, calc(1vw + .38rem), .78rem);
		line-height: 1.4;
	}

	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process__stage h3 {
		font-size: clamp(2.15rem, 6vw, 3.2rem);
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-card-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-technical-card {
		min-height: 29rem;
		grid-template-columns: minmax(9.5rem, .56fr) minmax(0, 1fr);
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:not(:has(
		.pp-technical-card__media
	)) .pp-card-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:not(:has(
		.pp-technical-card__media
	)) .pp-technical-card {
		min-height: 0;
	}

	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
	}

	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment {
		display: grid;
	}

	body.ppps-route-quality-validation .pp-block--technical-table .pp-block__inner {
		display: block;
	}

	body.ppps-route-quality-validation .pp-block--technical-table
		.pp-table-layout__intro {
		position: relative;
		top: auto;
		margin-bottom: 2.5rem;
	}
}

@media (min-width: 621px) and (max-width: 900px) {
	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process__stage {
		display: grid;
		grid-template-columns: minmax(15rem, .9fr) minmax(0, 1.1fr);
		grid-template-rows: auto auto 1fr auto;
		column-gap: 2rem;
	}

	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process__stage-media {
		height: 100%;
		min-height: 22rem;
		margin: 0;
		grid-column: 1;
		grid-row: 1 / -1;
	}

	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process__stage > :not(.pp-process__stage-media) {
		grid-column: 2;
	}
}

@media (max-width: 620px) {
	body.ppps-route-quality-validation .page-studio-content {
		overflow: visible;
	}

	body.ppps-route-quality-validation .pp-block--industrial-hero .pp-hero__inner {
		padding-bottom: 2.75rem;
	}

	body.ppps-route-quality-validation .pp-block--industrial-hero .pp-block__title {
		max-width: none;
		font-size: clamp(1.75rem, calc(10vw + .4rem), 3.75rem);
		line-height: .96;
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-process-story__header .pp-block__title,
	body.ppps-route-quality-validation .pp-block--equipment-gallery .pp-block__title {
		max-width: none;
		font-size: clamp(1.5rem, calc(10vw + .4rem), 3.65rem);
		line-height: .96;
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid
		.pp-block__title,
	body.ppps-route-quality-validation .pp-block--technical-table
		.pp-table-layout__intro .pp-block__title {
		max-width: none;
		font-size: clamp(1.5rem, calc(8vw + .45rem), 3.5rem);
		line-height: .98;
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process__stage {
		padding: 1.75rem 0 2.4rem;
	}

	body.ppps-route-quality-validation .pp-block--process-chain
		.pp-process__stage h3 {
		max-width: none;
		font-size: clamp(1.25rem, calc(8vw + .4rem), 2.8rem);
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-technical-card {
		min-height: 0;
		padding: min(1rem, 4vw);
		grid-template-columns: minmax(104px, 124px) minmax(0, 1fr);
		column-gap: min(1rem, 4vw);
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-technical-card__number {
		margin-bottom: 1rem;
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-technical-card__media figcaption {
		padding:
			min(4rem, 18vw)
			min(.75rem, 3vw)
			min(.75rem, 3vw);
		font-size: clamp(.4rem, calc(.7vw + .35rem), .58rem);
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-technical-card .pp-block__eyebrow {
		font-size: clamp(.7rem, calc(1vw + .4rem), .92rem);
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-technical-card h3 {
		font-size: clamp(1rem, calc(5vw + .3rem), 2rem);
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-technical-card > p:not(.pp-block__eyebrow) {
		font-size: clamp(.875rem, calc(2vw + .5rem), 1rem);
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-technical-card__actions {
		display: grid;
		justify-items: start;
		gap: .75rem;
	}

	body.ppps-route-quality-validation .pp-block--technical-card-grid:has(
		.pp-technical-card__media
	) .pp-technical-card__actions .pp-text-link {
		font-size: clamp(.75rem, calc(2vw + .4rem), .95rem);
	}

	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment {
		--pp-quality-mobile-gutter: min(1rem, 4vw);
		padding: var(--pp-quality-mobile-gutter);
	}

	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment figure,
	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment:nth-child(even) figure {
		width: calc(100% + (var(--pp-quality-mobile-gutter) * 2));
		margin:
			calc(var(--pp-quality-mobile-gutter) * -1)
			calc(var(--pp-quality-mobile-gutter) * -1)
			1.5rem;
	}

	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment h3 {
		max-width: none;
		font-size: clamp(1.25rem, calc(8vw + .4rem), 2.35rem);
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment dl div {
		grid-template-columns: minmax(0, 1fr);
		gap: .35rem;
	}

	body.ppps-route-quality-validation .pp-equipment-presentation--evidence-lens
		.pp-equipment dd {
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	body.ppps-route-quality-validation .pp-block--technical-table
		.pp-table-scroll :is(th, td) {
		font-size: 1rem;
	}
}

/* -------------------------------------------------------------------------- */
/* Complete non-enhanced and reduced-motion fallbacks.                         */
/* -------------------------------------------------------------------------- */

:where(
	body.ppps-route-quality-validation.ppps-runtime-disabled,
	body.ppps-route-quality-validation.ppps-readiness-failed,
	body.ppps-route-quality-validation.ppps-capability-lite,
	body.ppps-route-quality-validation.ppps-capability-static,
	body.ppps-route-quality-validation.ppps-capability-reduced,
	body.ppps-route-quality-validation.ppps-capability-off,
	body.ppps-route-quality-validation.ppps-motion-off,
	body.ppps-route-quality-validation.ppps-motion-reduced
) [data-pp-quality-record] {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: none;
}

:where(
	body.ppps-route-quality-validation.ppps-runtime-disabled,
	body.ppps-route-quality-validation.ppps-readiness-failed,
	body.ppps-route-quality-validation.ppps-capability-lite,
	body.ppps-route-quality-validation.ppps-capability-static,
	body.ppps-route-quality-validation.ppps-capability-reduced,
	body.ppps-route-quality-validation.ppps-capability-off,
	body.ppps-route-quality-validation.ppps-motion-off,
	body.ppps-route-quality-validation.ppps-motion-reduced
) .pp-block--process-chain :is(.pp-process-story__runway, .pp-process-story__frame) {
	position: relative;
	top: auto;
	height: auto;
	min-height: 0;
	overflow: visible;
}

:where(
	body.ppps-route-quality-validation.ppps-runtime-disabled,
	body.ppps-route-quality-validation.ppps-readiness-failed,
	body.ppps-route-quality-validation.ppps-capability-lite,
	body.ppps-route-quality-validation.ppps-capability-static,
	body.ppps-route-quality-validation.ppps-capability-reduced,
	body.ppps-route-quality-validation.ppps-capability-off,
	body.ppps-route-quality-validation.ppps-motion-off,
	body.ppps-route-quality-validation.ppps-motion-reduced
) .pp-block--process-chain .pp-process__stage {
	position: relative;
	inset: auto;
	display: block;
	width: 100%;
	height: auto;
	min-height: 0;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
	transition: none;
}

:where(
	body.ppps-route-quality-validation.ppps-runtime-disabled,
	body.ppps-route-quality-validation.ppps-readiness-failed,
	body.ppps-route-quality-validation.ppps-capability-lite,
	body.ppps-route-quality-validation.ppps-capability-static,
	body.ppps-route-quality-validation.ppps-capability-reduced,
	body.ppps-route-quality-validation.ppps-capability-off,
	body.ppps-route-quality-validation.ppps-motion-off,
	body.ppps-route-quality-validation.ppps-motion-reduced
) .pp-block--process-chain .pp-process__stage-media {
	display: block;
}

@media (prefers-reduced-motion: reduce) {
	body.ppps-route-quality-validation [data-pp-quality-record],
	body.ppps-route-quality-validation .pp-process__media,
	body.ppps-route-quality-validation .pp-process__stage,
	body.ppps-route-quality-validation .pp-equipment figure img,
	body.ppps-route-quality-validation .pp-table-scroll tr {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
