/* Frontend Reference V1: canonical Product Routes owner. */
body.ef-precision-industrial-campaign .ef-demo01-scene--products.ef-demo01-scene--integrated-product-routes { display: block; inline-size: 100%; max-inline-size: none; margin: 0; padding: 0; }
body.ef-precision-industrial-campaign .ef-demo01-scene--products > .ef-v1-product-routes > .ef-v1-container { inline-size: min(calc(100% - (2 * clamp(var(--ef-primitive-space-5), 4vw, var(--ef-primitive-space-20)))), var(--ef-primitive-layout-presentation-wide)); margin-inline: auto; }
.ef-v1-product-routes { padding-block: var(--ef-primitive-space-24); background: var(--ef-semantic-color-surface-alt); }
.ef-v1-product-routes__shell { min-block-size: 41.25rem; display: grid; grid-template-columns: 17.5rem minmax(0, 1fr); background: var(--ef-semantic-color-surface); border: 1px solid var(--ef-semantic-color-border); box-shadow: var(--ef-semantic-shadow-elevated); }
.ef-v1-route-nav { min-inline-size: 0; padding: var(--ef-primitive-space-10) 0 var(--ef-primitive-space-8); display: flex; flex-direction: column; border-inline-end: 1px solid var(--ef-semantic-color-border); }
.ef-v1-route-nav__label,
.ef-v1-product-stage__label,
.ef-v1-product-dossier__ref { margin: 0; font-family: var(--ef-semantic-typography-family-technical); font-size: var(--ef-semantic-typography-size-caption); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.ef-v1-route-nav__label { padding: 0 var(--ef-primitive-space-8) var(--ef-primitive-space-6); }
.ef-v1-route-nav__desktop { display: flex; flex-direction: column; }
.ef-v1-route-tab { inline-size: 100%; min-block-size: var(--ef-primitive-space-16); padding: 0 var(--ef-primitive-space-6) 0 var(--ef-primitive-space-8); display: flex; align-items: center; justify-content: space-between; color: var(--ef-semantic-color-text-muted); background: transparent; border: 0; border-inline-start: 3px solid transparent; font-weight: 600; text-align: start; cursor: pointer; transition: color var(--ef-semantic-motion-duration-normal) var(--ef-semantic-motion-easing-enter), background-color var(--ef-semantic-motion-duration-normal) var(--ef-semantic-motion-easing-enter), border-color var(--ef-semantic-motion-duration-normal) var(--ef-semantic-motion-easing-enter); }
.ef-v1-route-tab.is-active { color: var(--ef-semantic-color-action-text-foreground); background: var(--ef-semantic-color-action-text-hover); border-inline-start-color: var(--ef-semantic-color-focus-ring); }
.ef-v1-route-nav__all { margin: auto var(--ef-primitive-space-8) 0; color: var(--ef-semantic-color-action-text-foreground); font-weight: 700; text-decoration: none; }
.ef-v1-route-nav__mobile,
.ef-v1-route-nav__mobile-label { display: none; }
.ef-v1-product-stage { min-inline-size: 0; padding: var(--ef-primitive-space-10); }
.ef-v1-product-state[hidden] { display: none; }
.ef-v1-product-stage__layout { margin-block-start: var(--ef-primitive-space-8); display: grid; grid-template-columns: minmax(20.625rem, 1.42fr) minmax(17.5rem, .86fr); gap: var(--ef-primitive-space-8); align-items: start; }
.ef-v1-product-media { min-inline-size: 0; margin: 0; }
.ef-v1-product-media__frame { aspect-ratio: 1.12 / 1; overflow: hidden; background: var(--ef-semantic-color-surface-alt); border: 1px solid var(--ef-semantic-color-border); }
.ef-v1-product-media__frame img { inline-size: 100%; block-size: 100%; display: block; object-fit: cover; transition: opacity var(--ef-primitive-motion-duration-content) var(--ef-primitive-motion-easing-enter); }
.ef-v1-product-media__frame.is-switching img { opacity: .28; }
.ef-v1-product-media__thumbs { margin-block-start: var(--ef-primitive-space-3); display: flex; flex-wrap: wrap; gap: var(--ef-primitive-space-2); }
.ef-v1-product-thumb { inline-size: 3.5rem; block-size: 2.75rem; padding: 0; overflow: hidden; background: var(--ef-semantic-color-surface-alt); border: 1px solid var(--ef-semantic-color-border); cursor: pointer; }
.ef-v1-product-thumb img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.ef-v1-product-thumb.is-active { border-color: var(--ef-semantic-color-focus-ring); box-shadow: inset 0 0 0 1px var(--ef-semantic-color-focus-ring); }
.ef-v1-product-dossier { min-inline-size: 0; padding-block-start: var(--ef-primitive-space-2); }
.ef-v1-product-dossier__ref { padding-inline-start: var(--ef-primitive-space-3); color: var(--ef-semantic-color-action-text-foreground); border-inline-start: 2px solid var(--ef-semantic-color-focus-ring); overflow-wrap: anywhere; }
.ef-v1-product-dossier h3 { margin: var(--ef-primitive-space-3) 0 var(--ef-primitive-space-4); max-inline-size: 16ch; font-size: clamp(1.75rem, 2.6vw, 2.375rem); line-height: 1.06; letter-spacing: -.04em; overflow-wrap: anywhere; }
.ef-v1-product-dossier__summary { margin: 0; color: var(--ef-semantic-color-text-muted); line-height: 1.58; }
.ef-v1-product-specs { margin: var(--ef-primitive-space-6) 0 var(--ef-primitive-space-8); border-block-start: 1px solid var(--ef-semantic-color-border); }
.ef-v1-product-specs > div { min-block-size: 2.625rem; display: grid; grid-template-columns: 5.75rem minmax(0, 1fr); align-items: center; gap: var(--ef-primitive-space-3); border-block-end: 1px solid var(--ef-semantic-color-border); font-size: var(--ef-semantic-typography-size-caption); }
.ef-v1-product-specs dt { color: var(--ef-semantic-color-text-muted); }
.ef-v1-product-specs dd { margin: 0; font-family: var(--ef-semantic-typography-family-technical); font-weight: 600; overflow-wrap: anywhere; }
.ef-v1-product-dossier__actions { display: flex; flex-wrap: wrap; gap: var(--ef-primitive-space-3); }

@media (hover: hover) and (pointer: fine) {
	.ef-v1-route-tab:hover { color: var(--ef-semantic-color-action-text-foreground); background: var(--ef-semantic-color-action-text-hover); }
	.ef-v1-product-thumb:hover { border-color: var(--ef-semantic-color-focus-ring); }
}

@media (max-width: 900px) {
	.ef-v1-product-routes__shell { min-block-size: 31.25rem; grid-template-columns: 12.5rem minmax(0, 1fr); }
	.ef-v1-route-nav { padding-block-start: var(--ef-primitive-space-8); }
	.ef-v1-route-tab { min-block-size: 3.25rem; padding-inline: var(--ef-primitive-space-5) var(--ef-primitive-space-4); }
	.ef-v1-product-stage { padding: var(--ef-primitive-space-8) var(--ef-primitive-space-6); }
	.ef-v1-product-stage__layout { margin-block-start: var(--ef-primitive-space-5); grid-template-columns: minmax(13.125rem, 1.05fr) minmax(11.875rem, .95fr); gap: var(--ef-primitive-space-5); }
	.ef-v1-product-dossier h3 { font-size: var(--ef-primitive-font-size-h3); }
}

@media (max-width: 640px) {
	.ef-v1-product-routes { padding-block: var(--ef-primitive-space-16); }
	.ef-v1-product-routes__shell { min-block-size: 0; display: block; }
	.ef-v1-route-nav { padding: var(--ef-primitive-space-4); border-inline-end: 0; border-block-end: 1px solid var(--ef-semantic-color-border); }
	.ef-v1-route-nav__label,
	.ef-v1-route-nav__desktop,
	.ef-v1-route-nav__all { display: none; }
	.ef-v1-route-nav__mobile-label { display: block; margin-block-end: var(--ef-primitive-space-2); font-family: var(--ef-semantic-typography-family-technical); font-size: var(--ef-semantic-typography-size-caption); font-weight: 600; text-transform: uppercase; }
	.ef-v1-route-nav__mobile { inline-size: 100%; min-block-size: 2.75rem; display: block; padding-inline: var(--ef-primitive-space-3) var(--ef-primitive-space-10); color: var(--ef-semantic-color-text-default); background: var(--ef-semantic-color-surface); border: 1px solid var(--ef-semantic-color-border); border-radius: var(--ef-semantic-radius-input); }
	.ef-v1-product-stage { padding: var(--ef-primitive-space-6) var(--ef-primitive-space-4) var(--ef-primitive-space-8); }
	.ef-v1-product-stage__label { display: none; }
	.ef-v1-product-stage__layout { margin-block-start: 0; display: flex; flex-direction: column; gap: var(--ef-primitive-space-6); }
	.ef-v1-product-media__frame { aspect-ratio: 1.15 / 1; }
	.ef-v1-product-media__thumbs { justify-content: center; }
	.ef-v1-product-dossier h3 { max-inline-size: none; font-size: 1.625rem; }
	.ef-v1-product-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--ef-primitive-space-4); }
	.ef-v1-product-specs > div { min-block-size: 3rem; padding-block: var(--ef-primitive-space-2); display: block; }
	.ef-v1-product-dossier__actions .ef-button { flex: 1 1 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.ef-v1-route-tab,
	.ef-v1-product-media__frame img { transition-duration: var(--ef-semantic-motion-reduced-duration); }
}

/* Visual Production Batch 01 — Product Explorer. */
[data-ef-visual-grammar="product-explorer"] {
	min-inline-size: 0;
}

[data-ef-visual-grammar="product-explorer"] .ef-v1-section-heading {
	max-inline-size: var(--ef-primitive-layout-presentation-wide);
	margin-block-end: var(--ef-primitive-space-10);
}

[data-ef-visual-grammar="product-explorer"] .ef-v1-product-routes__shell {
	grid-template-columns: minmax(12rem, 0.56fr) minmax(0, 2fr);
	min-block-size: 0;
}

[data-ef-visual-grammar="product-explorer"] .ef-v1-product-stage__layout {
	grid-template-columns: minmax(20rem, 0.95fr) minmax(22rem, 1.05fr);
	gap: clamp(var(--ef-primitive-space-6), 2.4vw, var(--ef-primitive-space-10));
}

[data-ef-visual-grammar="product-explorer"] .ef-v1-route-nav__all {
	margin-block-start: var(--ef-primitive-space-8);
}

[data-ef-visual-grammar="product-explorer"] .ef-v1-product-dossier h3 {
	max-inline-size: 20ch;
	overflow-wrap: normal;
	word-break: normal;
}

[data-ef-visual-grammar="product-explorer"] .ef-v1-product-specs > div {
	grid-template-columns: minmax(6.5rem, 0.36fr) minmax(0, 1fr);
	gap: var(--ef-primitive-space-4);
	padding-block: var(--ef-primitive-space-2);
}

[data-ef-visual-grammar="product-explorer"] .ef-v1-product-specs dd {
	font-family: inherit;
	font-weight: var(--ef-semantic-typography-weight-medium);
	line-height: var(--ef-semantic-typography-line-body);
	overflow-wrap: normal;
	word-break: normal;
}

[data-ef-visual-grammar="product-explorer"] :where(.ef-v1-product-stage, .ef-v1-product-dossier, .ef-v1-product-specs dd) {
	min-inline-size: 0;
}

[data-ef-visual-grammar="product-explorer"] .ef-v1-product-media__frame img {
	object-fit: contain;
}

@media (max-width: 900px) {
	[data-ef-visual-grammar="product-explorer"] .ef-v1-product-routes__shell {
		grid-template-columns: minmax(11rem, 0.44fr) minmax(0, 1.56fr);
	}

	[data-ef-visual-grammar="product-explorer"] .ef-v1-product-stage__layout {
		grid-template-columns: minmax(13rem, 0.9fr) minmax(14rem, 1.1fr);
	}
}

@media (max-width: 640px) {
	[data-ef-visual-grammar="product-explorer"] .ef-v1-product-routes__shell,
	[data-ef-visual-grammar="product-explorer"] .ef-v1-product-stage__layout {
		display: block;
	}

	[data-ef-visual-grammar="product-explorer"] .ef-v1-product-dossier {
		margin-block-start: var(--ef-primitive-space-6);
	}

	[data-ef-visual-grammar="product-explorer"] .ef-v1-product-specs {
		grid-template-columns: minmax(0, 1fr);
	}

	[data-ef-visual-grammar="product-explorer"] .ef-v1-product-specs > div {
		grid-template-columns: minmax(0, 1fr);
	}
}
