/* ==========================================================================
   Combine harvester SINGLE PRODUCT — "Part Dossier" v2.
   Layered on top of combine-family.css (shared Assembly Dossier atoms:
   hero, stage, kicker, buttons, CTA band). This file owns the product-
   specific sections: model configurator chips, engineering spec sheet
   and the assembly context + sibling parts rail.
   Scoped to body.tt-asm-scope.tt-asm-product-root.
   ========================================================================== */

body.tt-asm-product-root #main {
	background: var(--tt-asm-paper);
}

body.tt-asm-product-root .shop-container {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

body.tt-asm-product-root .shop-container > .container {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 26px;
}

body.tt-asm-product-root .shop-container > .container .woocommerce-notices-wrapper:not(:empty) {
	padding-top: 18px;
}

/* --------------------------------------------------------------------------
   Product hero — model configurator
   -------------------------------------------------------------------------- */

.tt-asm-hero--product .tt-asm-hero__shell {
	grid-template-columns: minmax(420px, 1.04fr) minmax(440px, .96fr);
}

.tt-asm-hero--product .tt-asm-hero__title {
	font-size: clamp(38px, 4.6vw, 64px);
}

.tt-asm-hero__models {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 20px;
}

.tt-asm-model-chip {
	display: inline-flex;
	align-items: center;
	padding: 9px 14px;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 8px;
	background: rgba(255, 255, 255, .05);
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1;
	color: rgba(255, 255, 255, .86);
	cursor: pointer;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .35s var(--tt-asm-ease), box-shadow .35s var(--tt-asm-ease);
}

button.tt-asm-model-chip:hover,
button.tt-asm-model-chip:focus-visible {
	border-color: rgba(255, 255, 255, .5);
	border-color: color-mix(in srgb, var(--tt-asm-accent, #f2b13f) 65%, transparent);
	color: #fff;
	transform: translateY(-2px);
}

button.tt-asm-model-chip.is-active,
button.tt-asm-model-chip[aria-pressed="true"] {
	background: var(--tt-asm-accent, #f2b13f);
	border-color: var(--tt-asm-accent, #f2b13f);
	color: var(--tt-asm-accent-ink, #231703);
	box-shadow: 0 10px 24px -10px rgba(5, 12, 20, .5);
	box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--tt-asm-accent, #f2b13f) 70%, transparent);
}

.tt-asm-model-chip--static {
	cursor: default;
}

.tt-asm-model-chip--more {
	border-style: dashed;
	background: transparent;
	color: rgba(255, 255, 255, .55);
}

.tt-asm-stage--product .tt-asm-stage__figure {
	width: min(88%, 480px);
}

.tt-asm-stage--product .tt-asm-stage__figure img {
	transition: opacity .35s ease, transform .5s var(--tt-asm-ease);
}

.tt-asm-stage--product .tt-asm-stage__figure.is-swapping img {
	opacity: 0;
	transform: translateY(10px) scale(.97);
}

/* Seamless light bloom — a soft studio glow spills from behind the part
   and dissolves into the dark blueprint hero, no panel edges. The bloom
   runs wider than the stage so the halo reads as ambient light; the hero
   clips the overspill (overflow: hidden). */

.tt-asm-hero--product .tt-asm-stage--product::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 168%;
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	background:
		radial-gradient(circle, rgba(255, 255, 255, .34) 0%, rgba(255, 255, 255, 0) 32%),
		radial-gradient(
			circle,
			rgba(240, 245, 250, .95) 0%,
			rgba(231, 237, 245, .88) 16%,
			rgba(210, 221, 234, .70) 30%,
			rgba(173, 190, 211, .46) 46%,
			rgba(119, 140, 170, .24) 62%,
			rgba(62, 82, 112, .09) 78%,
			rgba(10, 21, 34, 0) 100%
		);
	pointer-events: none;
}

/* Keep the orbit and cross marks legible on the bright bloom. */

.tt-asm-hero--product .tt-asm-stage--product .tt-asm-stage__orbit {
	border-color: rgba(15, 28, 41, .3);
	border-color: color-mix(in srgb, var(--tt-asm-accent, #f2b13f) 55%, transparent);
}

.tt-asm-hero--product .tt-asm-stage--product .tt-asm-stage__cross {
	opacity: .8;
}

@media (max-width: 849px) {
	.tt-asm-hero--product .tt-asm-stage--product::before {
		width: 152%;
	}
}

/* --------------------------------------------------------------------------
   Spec sheet — engineering data rows
   -------------------------------------------------------------------------- */

.tt-asm-specs {
	background: var(--tt-asm-paper);
	padding: clamp(52px, 6vw, 84px) 0 clamp(30px, 3.4vw, 48px);
}

.tt-asm-specs__shell {
	display: grid;
	grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr);
	gap: clamp(28px, 4vw, 64px);
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 26px;
}

.tt-asm-specs__head h2 {
	margin: 0;
	font-size: clamp(26px, 2.6vw, 38px);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.1;
	color: var(--tt-asm-text);
}

.tt-asm-specs__rows {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--tt-asm-line);
}

.tt-asm-specs__row {
	display: grid;
	grid-template-columns: minmax(140px, 200px) 1fr;
	gap: 18px;
	align-items: start;
	padding: 18px 4px;
	border-bottom: 1px solid var(--tt-asm-line);
}

.tt-asm-specs__row dt {
	margin: 0;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: .18em;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--tt-asm-muted);
}

.tt-asm-specs__row dd {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--tt-asm-text);
}

.tt-asm-specs__family {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--tt-asm-text);
	text-decoration: none;
	transition: color .2s ease;
}

.tt-asm-inline-arrow,
.tt-asm-btn__arrow {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

.tt-asm-inline-arrow svg,
.tt-asm-btn__arrow svg {
	display: block;
	width: 12px;
	height: 12px;
}

.tt-asm-specs__family:hover,
.tt-asm-specs__family:focus-visible {
	color: var(--tt-asm-cobalt);
}

.tt-asm-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tt-asm-chips li {
	padding: 7px 11px;
	border: 1px solid var(--tt-asm-line);
	border-radius: 7px;
	background: var(--tt-asm-plate);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1;
	color: var(--tt-asm-text);
}

.tt-asm-chips .tt-asm-chips__more {
	border-style: dashed;
	background: transparent;
	color: var(--tt-asm-muted);
}

.tt-asm-specs__made {
	display: inline-flex;
	align-items: center;
	gap: 9px;
}

/* --------------------------------------------------------------------------
   Assembly context + sibling parts rail
   -------------------------------------------------------------------------- */

.tt-asm-assembly {
	background: var(--tt-asm-paper);
	padding: clamp(28px, 3.4vw, 48px) 0 clamp(30px, 4vw, 56px);
}

/* The assembly already owns the handoff space; avoid stacking the shared CTA margin. */
.tt-asm-assembly + .tt-asm-cta {
	margin-top: 0;
}

.tt-asm-assembly__shell {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 26px;
}

.tt-asm-assembly__lead {
	display: grid;
	grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
	gap: clamp(28px, 4vw, 64px);
	align-items: center;
	margin-bottom: clamp(34px, 4vw, 54px);
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid var(--tt-asm-line);
	border-radius: 22px;
	background:
		linear-gradient(150deg, #0e2036 0%, var(--tt-asm-ink-900) 60%, var(--tt-asm-ink-950) 100%);
	background:
		radial-gradient(60% 80% at 18% 30%, color-mix(in srgb, var(--tt-asm-accent, #f2b13f) 9%, transparent) 0%, transparent 70%),
		linear-gradient(150deg, #0e2036 0%, var(--tt-asm-ink-900) 60%, var(--tt-asm-ink-950) 100%);
	color: #f2f7fb;
	overflow: hidden;
}

.tt-asm-assembly__art {
	position: relative;
	margin: 0;
}

.tt-asm-assembly__art img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 320px;
	object-fit: contain;
	filter: drop-shadow(0 24px 30px rgba(0, 0, 0, .5));
}

.tt-asm-assembly__copy h2 {
	margin: 0 0 12px;
	font-size: clamp(24px, 2.4vw, 36px);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.12;
	color: #f7fafc;
}

.tt-asm-assembly__copy p {
	max-width: 52ch;
	margin: 0 0 22px;
	font-size: 14.5px;
	line-height: 1.65;
	color: rgba(226, 236, 245, .74);
}

.tt-asm-assembly__copy .tt-asm-btn--outline {
	border-color: rgba(255, 255, 255, .3);
	color: #fff;
}

.tt-asm-assembly__copy .tt-asm-btn--outline:hover,
.tt-asm-assembly__copy .tt-asm-btn--outline:focus-visible {
	border-color: #fff;
	background: rgba(255, 255, 255, .06);
}

.tt-asm-siblings__title {
	margin: 0 0 18px;
	font-size: clamp(19px, 1.8vw, 24px);
	font-weight: 800;
	letter-spacing: -.015em;
	color: var(--tt-asm-text);
}

.tt-asm-siblings__rail {
	margin: 0 -26px;
	padding: 0 26px;
	overflow-x: auto;
	scrollbar-width: thin;
	scrollbar-color: rgba(15, 28, 41, .3) transparent;
	scrollbar-color: color-mix(in srgb, var(--tt-asm-text) 24%, transparent) transparent;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
}

.tt-asm-siblings__rail ol {
	display: flex;
	gap: 14px;
	margin: 0;
	padding: 4px 0 20px;
	list-style: none;
}

.tt-asm-siblings__rail li {
	flex: none;
	scroll-snap-align: start;
}

.tt-asm-siblings__item {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 244px;
	padding: 0;
	border: 1px solid var(--tt-asm-line);
	border-radius: 18px;
	background: var(--tt-asm-plate);
	overflow: hidden;
	text-decoration: none;
	transition: transform .5s var(--tt-asm-ease), border-color .3s ease, box-shadow .5s var(--tt-asm-ease);
}

/* Accent top bar, same hover signature as the catalog cards. */

.tt-asm-siblings__item::before {
	content: "";
	position: absolute;
	z-index: 2;
	top: 0;
	right: 24px;
	left: 24px;
	height: 3px;
	border-radius: 0 0 4px 4px;
	background: var(--tt-asm-accent, #f2b13f);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .5s var(--tt-asm-ease);
}

.tt-asm-siblings__item:hover,
.tt-asm-siblings__item:focus-visible {
	transform: translateY(-5px);
	border-color: var(--tt-asm-accent, #f2b13f);
	border-color: color-mix(in srgb, var(--tt-asm-accent, #f2b13f) 50%, var(--tt-asm-line));
	box-shadow: 0 26px 48px -26px rgba(15, 28, 41, .3);
}

.tt-asm-siblings__item:hover::before,
.tt-asm-siblings__item:focus-visible::before {
	transform: scaleX(1);
}

.tt-asm-siblings__plate {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px 20px 6px;
	background: linear-gradient(165deg, #f6f8fb 0%, #e9edf3 100%);
	overflow: hidden;
}

.tt-asm-siblings__plate img {
	width: 100%;
	height: 148px;
	object-fit: contain;
	filter: drop-shadow(0 16px 18px rgba(15, 28, 41, .2));
	transition: transform .55s var(--tt-asm-ease);
}

.tt-asm-siblings__item:hover .tt-asm-siblings__plate img,
.tt-asm-siblings__item:focus-visible .tt-asm-siblings__plate img {
	transform: scale(1.06) rotate(-1.2deg) translateY(-4px);
}

.tt-asm-siblings__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 12px;
	padding: 14px 18px 16px;
}

.tt-asm-siblings__name {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(2 * 1.3em); /* one-line names keep the same rhythm */
	font-size: 13.5px;
	font-weight: 800;
	letter-spacing: -.01em;
	line-height: 1.3;
	color: var(--tt-asm-text);
}

.tt-asm-siblings__chips {
	display: flex;
	flex-wrap: nowrap;
	gap: 6px;
	overflow: hidden;
}

.tt-asm-siblings__chip {
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 0 9px;
	border: 1px solid #e3e9f0;
	border-radius: 6px;
	background: #f4f6f9;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1;
	white-space: nowrap;
	color: #4b5a68;
}

.tt-asm-siblings__chip--more {
	border-style: dashed;
	background: transparent;
	color: var(--tt-asm-muted);
}

.tt-asm-siblings__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 18px 14px;
	border-top: 1px solid #e7ecf2;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: .14em;
	line-height: 1;
	text-transform: uppercase;
	color: var(--tt-asm-text);
	transition: color .25s ease;
}

.tt-asm-siblings__footer-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: rgba(15, 28, 41, .06);
	line-height: 0;
	transition: background-color .3s ease, color .3s ease, transform .4s var(--tt-asm-ease);
}

.tt-asm-siblings__footer-arrow svg {
	display: block;
}

.tt-asm-siblings__item:hover .tt-asm-siblings__footer,
.tt-asm-siblings__item:focus-visible .tt-asm-siblings__footer {
	color: var(--tt-asm-cobalt);
}

.tt-asm-siblings__item:hover .tt-asm-siblings__footer-arrow,
.tt-asm-siblings__item:focus-visible .tt-asm-siblings__footer-arrow {
	background: var(--tt-asm-accent, #f2b13f);
	color: var(--tt-asm-accent-ink, #231703);
	transform: translate(2px, -2px);
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1023px) {
	.tt-asm-hero--product .tt-asm-hero__shell {
		grid-template-columns: 1fr;
	}

	.tt-asm-specs__shell,
	.tt-asm-assembly__lead {
		grid-template-columns: 1fr;
	}

	.tt-asm-assembly__art img {
		max-height: 260px;
	}
}

@media (max-width: 639px) {
	body.tt-asm-product-root .shop-container > .container,
	.tt-asm-specs__shell,
	.tt-asm-assembly__shell {
		padding-right: 20px;
		padding-left: 20px;
	}

	.tt-asm-siblings__rail {
		margin: 0 -20px;
		padding: 0 20px;
	}

	.tt-asm-specs__row {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 15px 2px;
	}

	.tt-asm-assembly__lead {
		padding: 22px 18px;
		border-radius: 18px;
	}
}
