/* =========================================================================
   SXX Bearing — catalogue & product detail
   Loaded only on the catalogue archive, bearing taxonomies and product pages.
   ========================================================================= */

/* ------------------------------------------------- Catalogue header */
.catalogue__head {
	position: relative;
	overflow: hidden;
	padding-block: 1.75rem;
	background:
		radial-gradient(ellipse 30% 140% at 100% 0%, rgba(232, 137, 26, 0.2), transparent 60%),
		radial-gradient(ellipse 40% 120% at 70% 100%, rgba(12, 91, 214, 0.28), transparent 65%),
		linear-gradient(120deg, #061220 0%, #0d243a 60%, #12304d 100%);
	color: #d5e2ef;
	isolation: isolate;
}

.catalogue__head::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
	background-size: 32px 32px;
	mask-image: linear-gradient(90deg, transparent 0%, #000 45%, #000 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 45%, #000 100%);
}

.catalogue__head::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background: linear-gradient(90deg, var(--c-signal), rgba(232, 137, 26, 0.25) 30%, rgba(255, 255, 255, 0.06) 70%);
}

.catalogue__art {
	position: absolute;
	top: 50%;
	right: -60px;
	z-index: -1;
	width: 340px;
	height: 340px;
	transform: translateY(-50%);
	fill: none;
	stroke: rgba(255, 255, 255, 0.07);
	stroke-width: 1.5;
	animation: catalogue-spin 120s linear infinite;
}

.catalogue__art-ball {
	fill: rgba(255, 255, 255, 0.025);
}

@keyframes catalogue-spin {
	to {
		transform: translateY(-50%) rotate(360deg);
	}
}

.catalogue__head-inner {
	display: grid;
	gap: var(--s-5);
	align-items: center;
}

.catalogue__heading {
	min-width: 0;
}

.catalogue__head .eyebrow {
	margin-bottom: var(--s-2);
	color: #f6d7a8;
}

.catalogue__title {
	margin: 0;
	color: #fff;
	font-family: var(--f-display);
	font-size: clamp(1.65rem, 3vw, 2.4rem);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.015em;
}

.catalogue__intro {
	display: -webkit-box;
	max-width: 68ch;
	margin: var(--s-2) 0 0;
	overflow: hidden;
	color: #a9bdd1;
	font-size: var(--t-sm);
	line-height: 1.6;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.catalogue__intro--rich > * {
	margin: 0;
}

.catalogue__count {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35em;
	margin: var(--s-3) 0 0;
	color: #8fa7bf;
	font-size: var(--t-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.catalogue__count::before {
	content: "";
	width: 7px;
	height: 7px;
	margin-right: 0.35em;
	border-radius: 50%;
	background: #34d399;
	box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.18);
}

.catalogue__count strong {
	color: #fff;
	font-variant-numeric: tabular-nums;
}

.catalogue__count-sep {
	width: 3px;
	height: 3px;
	margin: 0 0.45em;
	border-radius: 50%;
	background: var(--c-signal);
}

/* "Can't find it?" help card */
.catalogue__assist {
	display: flex;
	gap: var(--s-4);
	padding: var(--s-4) var(--s-5);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 18px;
	background: linear-gradient(150deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03));
	box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.catalogue__assist-icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: linear-gradient(145deg, #ffb04a, var(--c-signal));
	box-shadow: 0 8px 18px rgba(232, 137, 26, 0.35);
	color: #241301;
}

.catalogue__assist-body {
	min-width: 0;
}

.catalogue__assist-title {
	margin: 0;
	color: #fff;
	font-size: var(--t-base);
	font-weight: 650;
	line-height: 1.3;
}

.catalogue__assist-text {
	margin: 4px 0 0;
	color: #a9bdd1;
	font-size: var(--t-sm);
	line-height: 1.5;
}

.catalogue__assist-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
	margin-top: var(--s-3);
}

.catalogue__assist-actions .btn {
	border-radius: 10px;
}

@media (min-width: 900px) {
	.catalogue__head {
		padding-block: 2rem;
	}

	.catalogue__head-inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 430px);
		gap: var(--s-7);
	}

	.catalogue__art {
		right: 2%;
		width: 420px;
		height: 420px;
	}
}

@media (max-width: 599.98px) {
	.catalogue__head {
		padding-block: 1.5rem;
	}

	.catalogue__assist {
		align-items: center;
		gap: var(--s-3);
		padding: var(--s-3);
		border-radius: 14px;
	}

	.catalogue__assist-icon {
		width: 36px;
		height: 36px;
		border-radius: 10px;
	}

	.catalogue__assist-body {
		display: flex;
		flex: 1;
		align-items: center;
		justify-content: space-between;
		gap: var(--s-2);
	}

	.catalogue__assist-title {
		font-size: var(--t-sm);
	}

	.catalogue__assist-text,
	.catalogue__assist-actions .btn--ghost {
		display: none;
	}

	.catalogue__assist-actions {
		flex: none;
		margin: 0;
	}

	.catalogue__assist-actions .btn {
		padding: 0.55em 0.8em;
	}
}

@media (prefers-reduced-motion: reduce) {
	.catalogue__art {
		animation: none;
	}
}

/* ------------------------------------------------- Sub-category directory */
.subcats {
	padding-block: var(--s-6);
	border-bottom: 1px solid var(--c-line-soft);
	scroll-margin-top: var(--masthead-h);
}

.subcats__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-3);
	margin-bottom: var(--s-4);
}

.subcats__title {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	margin: 0;
	font-size: var(--t-lg);
}

.subcats__count {
	padding: 0.1em 0.6em;
	border-radius: var(--r-pill);
	background: var(--c-mist);
	color: var(--c-steel);
	font-family: var(--f-mono);
	font-size: var(--t-xs);
	font-weight: 500;
}

.subcats__filter {
	position: relative;
	display: flex;
	align-items: center;
	width: min(100%, 320px);
}

.subcats__filter > .icon {
	position: absolute;
	z-index: 1;
	left: 14px;
	color: var(--c-steel);
	pointer-events: none;
}

.subcats__input[type="search"] {
	height: 40px;
	padding: 0 14px 0 38px;
	border-radius: var(--r-pill);
	background: #fff;
}

.subcats__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr));
	gap: var(--s-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.subcats__grid.is-collapsed:not(.is-filtering) .subcat:nth-child(n + 9),
.subcat[hidden] {
	display: none;
}

.subcat__link {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	height: 100%;
	padding: var(--s-2) var(--s-3) var(--s-2) var(--s-2);
	border: 1px solid var(--c-line);
	border-radius: 14px;
	background: #fff;
	color: var(--c-ink);
	text-decoration: none;
	transition: border-color 0.18s var(--ease), box-shadow 0.18s var(--ease), transform 0.18s var(--ease);
}

.subcat__link:hover {
	border-color: var(--c-accent);
	box-shadow: var(--shadow-md);
	transform: translateY(-1px);
}

.subcat__thumb {
	display: grid;
	flex: none;
	place-items: center;
	width: 56px;
	height: 56px;
	overflow: hidden;
	border-radius: 10px;
	background: var(--c-mist);
	color: var(--c-accent);
}

.subcat__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.subcat__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.subcat__name {
	display: -webkit-box;
	overflow: hidden;
	font-size: var(--t-sm);
	font-weight: 650;
	line-height: 1.35;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.subcat__meta {
	margin-top: 2px;
	color: var(--c-steel);
	font-family: var(--f-mono);
	font-size: 11px;
}

.subcat__link > .icon {
	flex: none;
	color: var(--c-steel);
	transition: transform 0.18s var(--ease), color 0.18s var(--ease);
}

.subcat__link:hover > .icon {
	color: var(--c-accent);
	transform: translateX(2px);
}

.subcats__empty {
	margin: 0;
	color: var(--c-steel);
	font-size: var(--t-sm);
}

.subcats__more {
	margin-top: var(--s-4);
}

@media (min-width: 601px) {
	.subcats__more--phone {
		display: none;
	}
}

@media (max-width: 600px) {
	.subcats {
		padding-block: var(--s-5);
	}

	.subcats__grid {
		gap: var(--s-2);
	}

	.subcats__grid.is-collapsed:not(.is-filtering) .subcat:nth-child(n + 5) {
		display: none;
	}

	.subcat__thumb {
		width: 44px;
		height: 44px;
	}

	.subcats__filter {
		width: 100%;
	}
}

/* --------------------------------------------------------- Layout */
.catalogue__layout {
	display: grid;
	gap: var(--s-6);
	padding-block: var(--s-6) var(--s-8);
	align-items: start;
}

@media (min-width: 1000px) {
	.catalogue__layout {
		grid-template-columns: 304px minmax(0, 1fr);
		gap: var(--s-7);
	}
}

/* --------------------------------------------------- Filter rail */

/*
 * Desktop: a sticky panel with a fixed header and footer and a scrolling
 * body. Small screens: a drawer from the left — but only where the toggle
 * that reopens it works. Without JavaScript the rail stays in the flow.
 */
.filters {
	--filters-top: var(--sticky-top);
	min-width: 0;
}

.admin-bar .filters {
	--filters-top: calc(var(--sticky-top) + 32px);
}

.filters__form {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--c-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 30px 60px -40px rgba(7, 20, 34, 0.45);
}

@media (min-width: 1000px) {
	.filters {
		position: sticky;
		top: var(--filters-top);
	}

	.filters__form {
		max-height: calc(100vh - var(--filters-top) - var(--s-5));
	}

	.filters .filters__close,
	.filters-scrim {
		display: none;
	}
}

@media (max-width: 999.98px) {
	.has-js .filters {
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		z-index: 400;
		width: min(92vw, 400px);
		visibility: hidden;
		transform: translateX(-105%);
		transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.34s;
	}

	.has-js .filters.is-open {
		visibility: visible;
		transform: none;
		transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s;
	}

	.has-js .filters__form {
		height: 100%;
		border: 0;
		border-radius: 0 20px 20px 0;
		box-shadow: 24px 0 60px rgba(7, 20, 34, 0.25);
	}

	.has-js .filters-scrim {
		position: fixed;
		inset: 0;
		z-index: 399;
		background: rgba(7, 20, 34, 0.5);
		backdrop-filter: blur(3px);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s var(--ease), visibility 0s linear 0.3s;
	}

	.has-filters-open .filters-scrim {
		opacity: 1;
		visibility: visible;
		transition: opacity 0.3s var(--ease), visibility 0s;
	}

	.has-js .admin-bar .filters {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.has-js .admin-bar .filters {
		top: 0;
	}
}

/* Head */
.filters__head {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--s-3);
	flex: 0 0 auto;
	padding: var(--s-4) var(--s-5);
	background:
		radial-gradient(circle at 100% 0%, rgba(232, 137, 26, 0.35), transparent 55%),
		linear-gradient(150deg, #0d2238, #071422);
	color: #fff;
}

.filters__head-main {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	flex: 1 1 auto;
	min-width: 0;
}

.filters__icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.1);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
	color: var(--c-signal);
}

.filters__title {
	margin: 0;
	color: #fff;
	font-family: var(--f-display);
	font-size: var(--t-base);
	font-weight: 650;
	letter-spacing: -0.01em;
}

.filters__status {
	margin: 2px 0 0;
	color: rgba(255, 255, 255, 0.62);
	font-size: var(--t-xs);
}

.filters__reset {
	flex: 0 0 auto;
	padding: 0.3em 0.75em;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--r-pill);
	color: #fff;
	font-size: var(--t-xs);
	font-weight: 650;
	text-decoration: none;
	transition: background-color 0.16s var(--ease);
}

.filters__reset:hover {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
}

.filters__close {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	background: transparent;
	color: #fff;
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}

/* Body: scrolls inside the panel with soft edges instead of a hard bar */
.filters__body {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: transparent transparent;
	transition: scrollbar-color 0.2s;
	--fade-top: 0px;
	--fade-bottom: 0px;
	mask-image: linear-gradient(180deg, transparent 0, #000 var(--fade-top), #000 calc(100% - var(--fade-bottom)), transparent 100%);
}

.filters__body:hover,
.filters__body:focus-within {
	scrollbar-color: #c9d4e1 transparent;
}

.filters__body.can-up {
	--fade-top: 28px;
}

.filters__body.can-down {
	--fade-bottom: 36px;
}

.filters__body::-webkit-scrollbar {
	width: 6px;
}

.filters__body::-webkit-scrollbar-thumb {
	border-radius: 6px;
	background: transparent;
}

.filters__body:hover::-webkit-scrollbar-thumb {
	background: #c9d4e1;
}

.facet {
	margin: 0;
	padding: var(--s-4) var(--s-5);
	border: 0;
	border-bottom: 1px solid var(--c-line-soft);
	min-width: 0;
}

.facet__label {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	width: 100%;
	padding: 0;
	margin-bottom: var(--s-3);
	color: var(--c-ink);
	font-size: var(--t-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.facet__unit {
	color: var(--c-steel);
	font-family: var(--f-mono);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

/* Part-number search */
.facet__search {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	padding: 0 var(--s-3);
	border: 1px solid var(--c-line);
	border-radius: 12px;
	background: var(--c-mist);
	color: var(--c-steel);
	transition: border-color 0.16s var(--ease), background-color 0.16s var(--ease), box-shadow 0.16s var(--ease);
}

.facet__search:focus-within {
	border-color: var(--c-accent);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(12, 91, 214, 0.12);
	color: var(--c-accent);
}

.facet__search input {
	flex: 1;
	min-width: 0;
	padding: 0.7em 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	font-family: var(--f-mono);
	font-size: var(--t-sm);
}

.facet__search input:focus {
	outline: none;
}

/* Dimension diagram */
.dims-figure {
	margin: 0 0 var(--s-3);
	padding: var(--s-3);
	border-radius: 14px;
	background:
		radial-gradient(circle at 30% 50%, #fff, transparent 70%),
		var(--c-mist);
}

.dims-svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.dims-svg__ring {
	fill: #dfe6ee;
	stroke: #9fb0c3;
	stroke-width: 1.2;
}

.dims-svg__track {
	fill: #f3f6f9;
	stroke: #b8c5d3;
	stroke-width: 1;
}

.dims-svg__bore {
	fill: #fff;
	stroke: #9fb0c3;
	stroke-width: 1.2;
}

.dims-svg__ball {
	fill: #7c8fa4;
}

.dims-svg__dim line {
	stroke: var(--c-steel);
	stroke-width: 1.4;
	marker-start: none;
	transition: stroke 0.2s var(--ease), stroke-width 0.2s var(--ease);
}

.dims-svg__ext {
	stroke-dasharray: 2 3;
	stroke-width: 1 !important;
	opacity: 0.6;
}

.dims-svg__dim text {
	fill: var(--c-ink);
	font-family: var(--f-mono);
	font-size: 13px;
	font-weight: 700;
	text-anchor: middle;
	transition: fill 0.2s var(--ease);
}

/* Focusing a row lights up its dimension on the drawing. */
.facet--dims:has(.dim-row--d:focus-within) .dims-svg__dim--d line,
.facet--dims:has(.dim-row--D:focus-within) .dims-svg__dim--D line:not(.dims-svg__ext),
.facet--dims:has(.dim-row--B:focus-within) .dims-svg__dim--B line {
	stroke: var(--c-signal);
	stroke-width: 2.4;
}

.facet--dims:has(.dim-row--d:focus-within) .dims-svg__dim--d text,
.facet--dims:has(.dim-row--D:focus-within) .dims-svg__dim--D text,
.facet--dims:has(.dim-row--B:focus-within) .dims-svg__dim--B text {
	fill: var(--c-signal);
}

.facet--dims:has(.dim-row--d:focus-within) .dims-svg__face .dims-svg__bore,
.facet--dims:has(.dim-row--B:focus-within) .dims-svg__side .dims-svg__ring {
	stroke: var(--c-signal);
}

/* Dimension rows */
.dims-rows {
	display: grid;
	gap: var(--s-2);
}

.dim-row {
	display: grid;
	grid-template-columns: 28px 1fr;
	align-items: center;
	gap: 4px var(--s-3);
}

.dim-row__key {
	display: grid;
	place-items: center;
	grid-row: span 2;
	width: 28px;
	height: 28px;
	border-radius: 8px;
	background: var(--c-ink);
	color: var(--c-signal);
	font-family: var(--f-mono);
	font-size: var(--t-sm);
	font-weight: 700;
	transition: background-color 0.2s var(--ease), transform 0.2s var(--ease);
}

.dim-row:focus-within .dim-row__key {
	background: var(--c-signal);
	color: #fff;
	transform: scale(1.06);
}

.dim-row__name {
	color: var(--c-steel);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.range-pair {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	min-width: 0;
}

.range-pair__input {
	flex: 1;
	width: 100%;
	min-width: 0;
	padding: 0.55em 0.7em;
	border: 1px solid var(--c-line);
	border-radius: 10px;
	background: var(--c-mist);
	font-family: var(--f-mono);
	font-size: var(--t-sm);
	-moz-appearance: textfield;
	appearance: textfield;
	transition: border-color 0.16s var(--ease), background-color 0.16s var(--ease), box-shadow 0.16s var(--ease);
}

.range-pair__input::-webkit-outer-spin-button,
.range-pair__input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.range-pair__input:focus {
	outline: none;
	border-color: var(--c-accent);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(12, 91, 214, 0.12);
}

.range-pair__input:not(:placeholder-shown) {
	border-color: #b9c9dc;
	background: #fff;
	color: var(--c-ink);
	font-weight: 600;
}

.range-pair__dash {
	color: var(--c-steel);
}

.range-pair.is-swapped .range-pair__input {
	animation: range-swap 0.6s var(--ease);
}

@keyframes range-swap {
	30% {
		border-color: var(--c-signal);
		box-shadow: 0 0 0 3px rgba(232, 137, 26, 0.2);
	}
}

/* Quick picks */
.quick-picks {
	margin-top: var(--s-4);
}

.quick-picks__label {
	margin: 0 0 var(--s-2);
	color: var(--c-steel);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.quick-picks__list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.quick-pick {
	display: inline-flex;
	align-items: baseline;
	gap: 2px;
	padding: 0.35em 0.7em;
	border: 1px solid var(--c-line);
	border-radius: var(--r-pill);
	background: #fff;
	color: var(--c-ink);
	font-family: var(--f-mono);
	font-size: var(--t-xs);
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.16s var(--ease), background-color 0.16s var(--ease), color 0.16s var(--ease), transform 0.16s var(--ease);
}

.quick-pick::before {
	content: "Ø";
	color: var(--c-steel);
	font-weight: 500;
}

.quick-pick:hover {
	border-color: var(--c-ink);
	color: var(--c-ink);
	transform: translateY(-1px);
}

.quick-pick.is-on {
	border-color: var(--c-ink);
	background: var(--c-ink);
	color: #fff;
}

.quick-pick.is-on::before {
	color: var(--c-signal);
}

.range-pair--wide {
	display: flex;
}

/* Accordion facets */
.facet--list {
	padding: 0;
}

.facet__summary {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-4) var(--s-5);
	color: var(--c-ink);
	cursor: pointer;
	list-style: none;
	transition: background-color 0.16s var(--ease);
}

.facet__summary:hover {
	background: var(--c-mist);
}

.facet__summary::-webkit-details-marker {
	display: none;
}

.facet__summary-label {
	flex: 1 1 auto;
	font-size: var(--t-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.facet__tally {
	min-width: 22px;
	padding: 1px 7px;
	border-radius: var(--r-pill);
	background: var(--c-line-soft);
	color: var(--c-steel);
	font-family: var(--f-mono);
	font-size: 11px;
	font-weight: 600;
	text-align: center;
}

.facet__summary-label {
	white-space: nowrap;
}

.facet__picked {
	overflow: hidden;
	max-width: 46%;
	padding: 2px 9px;
	border-radius: var(--r-pill);
	background: rgba(12, 91, 214, 0.1);
	color: var(--c-accent);
	font-size: 11px;
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.facet__chev {
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--c-steel);
	border-bottom: 2px solid var(--c-steel);
	transform: rotate(45deg) translate(-2px, -2px);
	transition: transform 0.2s var(--ease);
}

.facet--list[open] .facet__chev {
	transform: rotate(-135deg);
}

.facet--list[open] > .facet__summary {
	padding-bottom: var(--s-3);
}

/* Option pills */
.pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0 var(--s-5) var(--s-4);
	list-style: none;
	animation: pills-in 0.25s var(--ease);
}

@keyframes pills-in {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}
}

.pill {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0.42em 0.8em;
	border: 1px solid var(--c-line);
	border-radius: var(--r-pill);
	background: #fff;
	color: var(--c-graphite);
	font-size: var(--t-xs);
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.16s var(--ease), background-color 0.16s var(--ease), color 0.16s var(--ease);
}

.pill__input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.pill:hover {
	border-color: var(--c-ink);
	color: var(--c-ink);
}

.pill:has(.pill__input:focus-visible) {
	outline: 2px solid var(--c-accent);
	outline-offset: 2px;
}

.pill:has(.pill__input:checked) {
	border-color: var(--c-ink);
	background: var(--c-ink);
	color: #fff;
}

.pill:has(.pill__input:checked)::before {
	content: "";
	width: 8px;
	height: 5px;
	margin-right: 1px;
	border-bottom: 2px solid var(--c-signal);
	border-left: 2px solid var(--c-signal);
	transform: translateY(-1px) rotate(-45deg);
}

.pill__count {
	color: var(--c-steel);
	font-family: var(--f-mono);
	font-size: 10px;
	font-weight: 600;
}

.pill:has(.pill__input:checked) .pill__count {
	color: rgba(255, 255, 255, 0.6);
}

.pill--any {
	border-style: dashed;
	color: var(--c-steel);
}

.pill.is-empty {
	border-style: dashed;
	background: transparent;
	color: #a3afbd;
	cursor: not-allowed;
}

.pill.is-empty:hover {
	border-color: var(--c-line);
	color: #a3afbd;
}

.pill.is-empty .pill__count {
	color: inherit;
}

.facet__picked[hidden],
.facet__tally[hidden],
.filters__reset[hidden] {
	display: none;
}

/* Live results: the column dims while the next set loads */
[data-sxx-results] {
	transition: opacity 0.2s var(--ease);
}

[data-sxx-results].is-loading {
	opacity: 0.45;
	pointer-events: none;
}

.catalogue__results-anchor {
	scroll-margin-top: calc(var(--sticky-top, 72px) + var(--s-4));
}

/* Browse pages: the category grid sits where the results will appear */
.toolbar--browse {
	padding-bottom: var(--s-4);
	border-bottom: 1px solid var(--c-line);
}

.toolbar__lead {
	margin: 0;
	color: var(--c-steel);
	font-size: var(--t-sm);
	font-weight: 600;
}

.catalogue__layout--browse .subdir {
	padding-top: 0;
}

.catalogue__layout--browse .subdir__head {
	margin-bottom: var(--s-5);
}

/* Help card at the end of the body */
.filters__help {
	margin: var(--s-4) var(--s-5) var(--s-5);
	padding: var(--s-4);
	border: 1px dashed #c9d4e1;
	border-radius: 14px;
	background: var(--c-mist);
}

.filters__help-title {
	margin: 0 0 var(--s-1);
	color: var(--c-ink);
	font-size: var(--t-sm);
	font-weight: 650;
}

.filters__help-text {
	margin: 0 0 var(--s-2);
	color: var(--c-steel);
	font-size: var(--t-xs);
}

/* Foot: always-visible action with the live result count */
.filters__foot {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	flex: 0 0 auto;
	padding: var(--s-4) var(--s-5);
	border-top: 1px solid var(--c-line);
	background: rgba(255, 255, 255, 0.96);
}

.filters__apply {
	position: relative;
	flex: 1 1 auto;
	justify-content: center;
	gap: var(--s-2);
	min-height: 46px;
	border-radius: 12px;
	font-variant-numeric: tabular-nums;
	box-shadow: 0 12px 24px -14px rgba(12, 91, 214, 0.9);
}

.filters__form.is-empty .filters__apply {
	background: var(--c-graphite);
	box-shadow: none;
}

.filters__spinner {
	display: none;
	width: 14px;
	height: 14px;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: filters-spin 0.7s linear infinite;
}

.filters__form.is-loading .filters__spinner {
	display: inline-block;
}

@keyframes filters-spin {
	to {
		transform: rotate(360deg);
	}
}

.filters__reset-link {
	flex: 0 0 auto;
	color: var(--c-steel);
	font-size: var(--t-sm);
	font-weight: 600;
	text-decoration: none;
}

.filters__reset-link:hover {
	color: var(--c-ink);
	text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
	.has-js .filters,
	.has-js .filters.is-open,
	.pills,
	.filters__spinner {
		animation: none;
		transition: none;
	}
}

/* ------------------------------------------------------- Toolbar */
.toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-4);
	margin-bottom: var(--s-5);
}

.toolbar__filter-toggle {
	display: inline-flex;
}

.toolbar__badge {
	display: grid;
	place-items: center;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: var(--r-pill);
	background: var(--c-accent);
	color: #fff;
	font-family: var(--f-mono);
	font-size: 10px;
	font-weight: 700;
}

.toolbar__sort {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	margin-left: auto;
}

.toolbar__sort label {
	color: var(--c-steel);
	font-size: var(--t-xs);
	font-weight: 650;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.toolbar__sort select {
	width: auto;
	min-width: 220px;
}

@media (min-width: 1000px) {
	.toolbar__filter-toggle {
		display: none;
	}
}

/* Active filter chips */
.active-filters {
	margin-bottom: var(--s-5);
}

.active-filters__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-2);
	list-style: none;
	margin: 0;
	padding: 0;
}

.chip--removable {
	background: var(--c-mist);
	border-color: var(--c-line);
}

.chip--removable:hover {
	border-color: var(--c-bad);
	background: #fdf0ee;
}

.chip__key {
	color: var(--c-steel);
	font-weight: 500;
}

.chip__x {
	color: var(--c-steel);
	font-size: 1.1em;
	line-height: 1;
}

.active-filters__clear {
	color: var(--c-steel);
	font-size: var(--t-xs);
	text-decoration: underline;
}

/* -------------------------------------------------- Product grid */
.product-grid {
	display: grid;
	gap: var(--s-4);
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 540px) {
	.product-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1140px) {
	.product-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.product-grid--4 {
		grid-template-columns: repeat(4, 1fr);
	}
}

.pcard {
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid var(--c-line);
	border-radius: 18px;
	background: #fff;
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	transition: border-color 0.18s var(--ease), box-shadow 0.18s var(--ease), transform 0.18s var(--ease);
}

.pcard:hover {
	border-color: #d7e2f2;
	box-shadow: var(--shadow-md);
	transform: translateY(-4px);
}

.pcard__media {
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 3;
	background:
		radial-gradient(circle at 50% 45%, #fff, #e7eef6 72%);
	border-bottom: 1px solid var(--c-line-soft);
	overflow: hidden;
}

.pcard__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s var(--ease);
}

.pcard:hover .pcard__img {
	transform: scale(1.03);
}

.product-ph {
	display: grid;
	place-items: center;
	color: #b9c6d6;
}

.pcard__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: var(--s-4);
}

.pcard__eyebrow {
	margin: 0 0 var(--s-2);
	color: var(--c-steel);
	font-size: 0.6875rem;
	font-weight: 650;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.pcard__title {
	margin: 0 0 var(--s-2);
	font-size: var(--t-base);
	line-height: 1.3;
}

.pcard__title a {
	color: var(--c-ink);
	text-decoration: none;
}

.pcard__title a:hover {
	color: var(--c-accent);
}

.pcard__part {
	margin: 0 0 var(--s-4);
}

.pcard__part code {
	padding: 0.15em 0.4em;
	border-radius: var(--r-sm);
	background: var(--c-mist);
	color: var(--c-graphite);
	font-size: var(--t-xs);
}

.pcard__specs {
	display: grid;
	gap: var(--s-2);
	margin: 0 0 var(--s-4);
	padding: var(--s-3) 0;
	border-top: 1px solid var(--c-line-soft);
	border-bottom: 1px solid var(--c-line-soft);
}

.pcard__spec {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--s-3);
	font-size: var(--t-xs);
}

.pcard__spec dt {
	color: var(--c-steel);
	font-weight: 600;
}

.pcard__spec dd {
	margin: 0;
	color: var(--c-ink);
	font-family: var(--f-mono);
	font-variant-numeric: tabular-nums;
}

.spec__unit {
	color: var(--c-steel);
	font-size: 0.9em;
}

.pcard__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-3);
	margin-top: auto;
}

/* Availability indicator */
.avail {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	margin: 0;
	font-size: var(--t-xs);
	font-weight: 650;
}

.avail__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--c-steel);
	flex: none;
}

.avail--good {
	color: var(--c-good);
}

.avail--good .avail__dot {
	background: var(--c-good);
	box-shadow: 0 0 0 3px rgba(15, 138, 95, 0.15);
}

.avail--warn {
	color: var(--c-warn);
}

.avail--warn .avail__dot {
	background: var(--c-warn);
}

.avail--info {
	color: var(--c-info);
}

.avail--info .avail__dot {
	background: var(--c-info);
}

.avail--bad {
	color: var(--c-bad);
}

.avail--bad .avail__dot {
	background: var(--c-bad);
}

.avail--lg {
	font-size: var(--t-sm);
}

/* ============================================ Product detail page */

/* Identification band */
.product-id {
	border-bottom: 1px solid var(--c-line);
	background:
		radial-gradient(700px 420px at 100% 0%, rgba(232, 137, 26, 0.1), transparent 65%),
		linear-gradient(180deg, #fff 0%, var(--c-canvas) 100%);
	color: var(--c-graphite);
}

.product-id__inner {
	display: grid;
	gap: var(--s-6);
	padding-block: var(--s-6) var(--s-7);
}

.product-id__body {
	display: flex;
	flex-direction: column;
	gap: var(--s-5);
	min-width: 0;
}

.product-id__heading {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-3);
}

.product-id__heading .product-id__title {
	margin: 0;
}

.product-id__heading .copyable {
	font-family: var(--f-mono);
	font-size: var(--t-sm);
	font-weight: 600;
	color: var(--c-ink);
}

.product-id__lede {
	max-width: 52ch;
	margin: 0;
	color: var(--c-graphite);
	font-size: var(--t-md);
	line-height: 1.55;
}

.product-id__figures {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--c-line);
	border-radius: 18px;
	background: var(--c-line);
}

.product-id__figure {
	padding: var(--s-4);
	background: #fff;
}

.product-id__figure dt {
	color: var(--c-steel);
	font-size: 0.6875rem;
	font-weight: 650;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.product-id__figure dd {
	margin: var(--s-2) 0 0;
	color: var(--c-ink);
	font-family: var(--f-display);
	font-size: clamp(1.25rem, 1.8vw, 1.6rem);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.02em;
	line-height: 1;
}

.product-id__figure .spec__unit {
	color: var(--c-steel);
	font-family: var(--f-sans);
	font-size: var(--t-xs);
	font-weight: 600;
	letter-spacing: 0;
}

.product-id__order {
	display: grid;
	gap: var(--s-4);
	padding: var(--s-5);
	border-radius: 18px;
	background:
		radial-gradient(360px 160px at 100% 0%, rgba(232, 137, 26, 0.22), transparent 70%),
		linear-gradient(160deg, var(--c-ink) 0%, #123049 100%);
	color: #c6d3e2;
}

.product-id__facts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2) var(--s-5);
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: var(--t-sm);
	font-weight: 600;
}

.product-id__facts li {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	margin: 0;
}

.product-id__facts .icon {
	color: var(--c-signal);
}

.product-id__facts .avail--good {
	color: #5fd6a6;
}

.product-id__facts .avail--info {
	color: #8fc0ff;
}

.product-id__facts .avail--warn {
	color: #f3c26b;
}

.product-id__order .btn--outline {
	border-color: rgba(255, 255, 255, 0.35);
	background: transparent;
	color: #fff;
}

.product-id__order .btn--outline:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
}

.product-id__assure {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2) var(--s-5);
	list-style: none;
	margin: 0;
	padding: 0;
	color: var(--c-graphite);
	font-size: var(--t-sm);
}

.product-id__assure li {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	margin: 0;
}

.product-id__assure .icon {
	color: var(--c-accent);
}

/* Product gallery */
.pgallery {
	display: grid;
	gap: var(--s-3);
	margin: 0;
	min-width: 0;
}

.pgallery__stage {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--c-line);
	border-radius: 24px;
	background:
		radial-gradient(circle at 50% 42%, #fff 0%, #f1f4f8 70%, #e6ebf1 100%);
	box-shadow: 0 30px 60px -30px rgba(7, 20, 34, 0.28);
}

.pgallery__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
}

.pgallery__open {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	cursor: zoom-in;
}

.pgallery__open .pgallery__img {
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.pgallery__open:hover .pgallery__img {
	transform: scale(1.04);
}

.pgallery__zoom {
	position: absolute;
	top: var(--s-4);
	right: var(--s-4);
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: var(--shadow-sm);
	color: var(--c-ink);
	backdrop-filter: blur(6px);
	transition: transform 0.2s var(--ease), background-color 0.2s var(--ease), color 0.2s var(--ease);
}

.pgallery__open:hover .pgallery__zoom,
.pgallery__open:focus-visible .pgallery__zoom {
	background: var(--c-ink);
	color: #fff;
	transform: scale(1.08);
}

/* Full-screen image viewer */
.lightbox {
	width: 100vw;
	max-width: none;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	overflow: hidden;
}

.lightbox::backdrop {
	background: rgba(5, 12, 22, 0.94);
	backdrop-filter: blur(8px);
}

.lightbox[open] {
	display: grid;
	grid-template-rows: auto 1fr auto;
	animation: lightbox-in 0.28s var(--ease);
}

.lightbox[open]::backdrop {
	animation: lightbox-fade 0.28s var(--ease);
}

@keyframes lightbox-in {
	from {
		opacity: 0;
		transform: scale(0.97);
	}
}

@keyframes lightbox-fade {
	from {
		opacity: 0;
	}
}

html.has-lightbox {
	overflow: hidden;
}

.lightbox__bar {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-4) var(--s-5);
}

.lightbox__title {
	overflow: hidden;
	font-family: var(--f-display);
	font-size: var(--t-base);
	font-weight: 600;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lightbox__count {
	margin-right: auto;
	color: rgba(255, 255, 255, 0.6);
	font-family: var(--f-mono);
	font-size: var(--t-sm);
}

.lightbox__btn,
.lightbox__nav {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s var(--ease), transform 0.2s var(--ease);
}

.lightbox__btn:hover,
.lightbox__nav:hover,
.lightbox__btn[aria-pressed="true"] {
	background: rgba(255, 255, 255, 0.2);
}

.lightbox__btn--close:hover {
	transform: rotate(90deg);
}

.lightbox__stage {
	position: relative;
	display: grid;
	grid-template: minmax(0, 1fr) / minmax(0, 1fr);
	place-items: center;
	min-height: 0;
	padding: 0 var(--s-5);
	overflow: hidden;
	touch-action: none;
	user-select: none;
}

.lightbox__img {
	max-width: min(100%, 1100px);
	max-height: 100%;
	width: auto;
	height: auto;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 40px 90px -30px rgba(0, 0, 0, 0.7);
	cursor: zoom-in;
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.lightbox.is-zoomed .lightbox__img {
	cursor: grab;
}

.lightbox.is-zoomed .lightbox__img:active {
	cursor: grabbing;
}

.lightbox__img.is-entering {
	animation: pgallery-in 0.32s var(--ease);
}

.lightbox__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 54px;
	height: 54px;
	margin-top: -27px;
	font-size: 2.2rem;
}

.lightbox__nav--prev {
	left: var(--s-4);
}

.lightbox__nav--next {
	right: var(--s-4);
}

.lightbox.is-zoomed .lightbox__nav,
.lightbox.is-zoomed .lightbox__hint {
	opacity: 0;
	pointer-events: none;
}

.lightbox__hint {
	margin: 0;
	padding: var(--s-4);
	color: rgba(255, 255, 255, 0.55);
	font-size: var(--t-xs);
	text-align: center;
	transition: opacity 0.2s var(--ease);
}

@media (max-width: 640px) {
	.lightbox__nav {
		top: auto;
		bottom: var(--s-4);
		margin-top: 0;
		width: 46px;
		height: 46px;
	}

	.lightbox__hint {
		padding-inline: 70px;
	}

	.lightbox__stage {
		padding: 0 var(--s-3);
	}
}

@media (prefers-reduced-motion: reduce) {
	.lightbox[open],
	.lightbox[open]::backdrop,
	.lightbox__img,
	.lightbox__img.is-entering,
	.pgallery__open .pgallery__img {
		animation: none;
		transition: none;
	}
}

.pgallery__img.is-swapping {
	animation: pgallery-in 0.32s var(--ease);
}

@keyframes pgallery-in {
	from {
		opacity: 0;
		transform: scale(0.985);
	}
}

.pgallery__ph {
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	color: #b9c6d6;
}

.pgallery__cap {
	position: absolute;
	left: var(--s-4);
	bottom: var(--s-4);
	padding: 0.4em 0.8em;
	border-radius: var(--r-pill);
	background: rgba(255, 255, 255, 0.9);
	box-shadow: var(--shadow-sm);
	color: var(--c-ink);
	font-family: var(--f-mono);
	font-size: var(--t-xs);
	font-weight: 600;
	backdrop-filter: blur(6px);
}

.pgallery__thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: var(--s-3);
	list-style: none;
	margin: 0;
	padding: 0;
}

.pgallery__thumb {
	display: block;
	width: 100%;
	padding: 0;
	border: 1px solid var(--c-line);
	border-radius: 14px;
	background: #fff;
	cursor: pointer;
	overflow: hidden;
	opacity: 0.65;
	transition: opacity 0.16s var(--ease), border-color 0.16s var(--ease), transform 0.16s var(--ease);
}

.pgallery__thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
}

.pgallery__thumb:hover {
	opacity: 1;
	transform: translateY(-2px);
}

.pgallery__thumb[aria-pressed="true"] {
	border-color: var(--c-ink);
	box-shadow: 0 0 0 1px var(--c-ink);
	opacity: 1;
}

.product-id__eyebrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-2);
	margin: 0 0 var(--s-3);
	font-size: var(--t-xs);
	font-weight: 650;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.product-id__eyebrow a {
	color: var(--c-accent);
	text-decoration: none;
}

.product-id__eyebrow a:hover {
	color: var(--c-ink);
	text-decoration: underline;
}

.product-id__title {
	margin: 0 0 var(--s-5);
	color: var(--c-ink);
	font-size: clamp(2.2rem, 5vw, 4rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.05;
}

.product-id__ids {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-5);
	margin: 0;
}

.product-id__id dt {
	color: var(--c-steel);
	font-size: 0.6875rem;
	font-weight: 650;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.product-id__id dd {
	margin: var(--s-1) 0 0;
	color: var(--c-ink);
	font-size: var(--t-base);
	font-weight: 600;
}

.product-id__id code {
	font-family: var(--f-mono);
	letter-spacing: -0.01em;
}

.copyable {
	position: relative;
	padding: 0.15em 0.45em;
	border: 1px dashed #b9c6d6;
	border-radius: var(--r-sm);
	cursor: pointer;
}

.copyable:hover,
.copyable:focus-visible {
	border-style: solid;
	border-color: var(--c-signal);
	background: rgba(240, 140, 26, 0.12);
}

.copyable.is-copied::after {
	content: attr(data-copied-label);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 6px);
	transform: translateX(-50%);
	padding: 0.2em 0.5em;
	border-radius: var(--r-sm);
	background: var(--c-good);
	color: #fff;
	font-family: var(--f-sans);
	font-size: 11px;
	white-space: nowrap;
}

.product-id__status {
	display: grid;
	gap: var(--s-3);
	align-content: start;
	padding-top: var(--s-5);
	border-top: 1px solid var(--c-line);
}

.product-id__lead {
	margin: 0;
	color: var(--c-steel);
	font-size: var(--t-sm);
}

.product-id__lead strong {
	color: var(--c-ink);
}

.product-id__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-3);
	margin-top: var(--s-2);
}

@media (max-width: 520px) {
	.product-id__figures {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1000px) {
	.product-id__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: var(--s-7);
		align-items: start;
		padding-block: var(--s-6) var(--s-7);
	}

	.pgallery--thumbs {
		grid-template-columns: 76px minmax(0, 1fr);
		align-items: start;
	}

	.pgallery--thumbs .pgallery__thumbs {
		grid-row: 1;
		grid-column: 1;
		grid-template-columns: 1fr;
	}

	.pgallery--thumbs .pgallery__stage {
		grid-column: 2;
	}
}

/* Spec strip */
.spec-strip {
	border-bottom: 1px solid var(--c-line);
	background: var(--c-mist);
}

.spec-strip__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	margin: 0;
	background: var(--c-line);
}

.spec-strip__item {
	padding: var(--s-4) var(--s-4);
	background: var(--c-mist);
}

.spec-strip__label {
	color: var(--c-steel);
	font-size: 0.6875rem;
	font-weight: 650;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.3;
}

.spec-strip__value {
	margin: var(--s-2) 0 0;
	color: var(--c-ink);
	font-family: var(--f-mono);
	font-size: var(--t-md);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.02em;
}

@media (min-width: 760px) {
	.spec-strip__list {
		grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	}
}

/* Product layout */
.product__layout {
	display: grid;
	gap: var(--s-6);
	padding-block: var(--s-7) var(--s-8);
	align-items: start;
}

/*
 * Grid items default to min-width: auto, so the nowrap section nav would size
 * the single-column track to its own max-content and push the whole page wide
 * below 1000px. Zeroing the minimum lets the track follow the viewport and lets
 * the section nav's own overflow-x: auto scroll as intended.
 */
.product__layout > * {
	min-width: 0;
}

@media (min-width: 1000px) {
	.product__layout {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: var(--s-8);
	}

	.product__rail {
		align-self: stretch;
	}

	.rail-sticky {
		position: sticky;
		top: var(--sticky-top);
		display: grid;
		gap: var(--s-4);
	}

	.admin-bar .rail-sticky {
		top: calc(var(--sticky-top) + 32px);
	}
}

/* In-page section nav */
.section-nav {
	--section-nav-top: 72px;

	position: sticky;
	top: var(--section-nav-top);
	z-index: 20;
	margin-bottom: var(--s-6);
	border-bottom: 1px solid var(--c-line);
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(8px);
}

.admin-bar .section-nav {
	top: calc(var(--section-nav-top) + 46px);
}

@media (min-width: 783px) {
	.admin-bar .section-nav {
		top: calc(var(--section-nav-top) + 32px);
	}
}

@media screen and (max-width: 600px) {
	.admin-bar .section-nav {
		top: var(--section-nav-top);
	}
}

@media (min-width: 1060px) {
	.section-nav {
		--section-nav-top: calc(var(--masthead-h) + 1px);
	}
}

.section-nav__list {
	display: flex;
	gap: var(--s-1);
	list-style: none;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	scrollbar-width: none;
}

.section-nav__list::-webkit-scrollbar {
	display: none;
}

.section-nav__list a {
	display: block;
	padding: var(--s-3) var(--s-4);
	border-bottom: 2px solid transparent;
	color: var(--c-steel);
	font-size: var(--t-sm);
	font-weight: 650;
	text-decoration: none;
	white-space: nowrap;
}

.section-nav__list a:hover {
	color: var(--c-ink);
}

.section-nav__list a.is-current {
	color: var(--c-ink);
	border-bottom-color: var(--c-accent);
}

/* Product sections */
.product-section {
	padding-bottom: var(--s-7);
	margin-bottom: var(--s-7);
	border-bottom: 1px solid var(--c-line-soft);
	scroll-margin-top: 120px;
}

.product-section.is-tabpanel {
	margin-bottom: var(--s-7);
	scroll-margin-top: 0;
}

.product-section.is-tabpanel[hidden] {
	display: none;
}

.product-section:last-child {
	border-bottom: 0;
	margin-bottom: 0;
}

.product-section__title {
	font-size: var(--t-xl);
}

.product-section__subtitle {
	margin-top: var(--s-6);
	font-size: var(--t-base);
}

.product-section__note {
	max-width: 68ch;
	margin: 0 0 var(--s-5);
	color: var(--c-steel);
	font-size: var(--t-sm);
}

.product-section .prose {
	max-width: 70ch;
	margin-inline: 0;
	font-size: var(--t-base);
}

.product-cols {
	display: grid;
	gap: var(--s-6);
	margin-top: var(--s-6);
	padding-top: var(--s-6);
	border-top: 1px solid var(--c-line-soft);
}

.product-col__title {
	font-size: var(--t-base);
}

@media (min-width: 700px) {
	.product-cols {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--s-7);
	}
}

.product-section--quote {
	border-bottom: 0;
}

/* Data tables */
.table-wrap {
	overflow-x: auto;
	border: 1px solid var(--c-line);
	border-radius: var(--r-lg);
}

.data-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--t-sm);
}

.data-table th,
.data-table td {
	padding: 0.78em var(--s-4);
	text-align: left;
	border-bottom: 1px solid var(--c-line-soft);
	vertical-align: top;
}

.data-table tr:last-child th,
.data-table tr:last-child td {
	border-bottom: 0;
}

.data-table thead th {
	background: var(--c-mist);
	color: var(--c-ink);
	font-size: var(--t-xs);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--c-line);
}

.data-table tbody tr:nth-child(even) {
	background: #fafcfe;
}

.data-table--specs th {
	width: 52%;
	color: var(--c-graphite);
	font-weight: 550;
}

.data-table--specs td {
	color: var(--c-ink);
	font-family: var(--f-mono);
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.data-table code {
	font-size: var(--t-sm);
}

.data-table code.is-ours {
	padding: 0.15em 0.45em;
	border-radius: var(--r-sm);
	background: #eef4ff;
	color: var(--c-accent);
	font-weight: 700;
}

/* Accordion */
.accordion {
	border: 1px solid var(--c-line);
	border-radius: var(--r-lg);
	overflow: hidden;
}

.accordion__item + .accordion__item {
	border-top: 1px solid var(--c-line-soft);
}

.accordion__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-4);
	padding: var(--s-4) var(--s-5);
	color: var(--c-ink);
	font-weight: 650;
	cursor: pointer;
	list-style: none;
}

.accordion__q::-webkit-details-marker {
	display: none;
}

.accordion__q:hover {
	background: var(--c-mist);
}

.accordion__chev {
	width: 9px;
	height: 9px;
	border-right: 2px solid var(--c-steel);
	border-bottom: 2px solid var(--c-steel);
	transform: rotate(45deg);
	transition: transform 0.2s var(--ease);
	flex: none;
}

.accordion__item[open] .accordion__chev {
	transform: rotate(-135deg);
}

.accordion__a {
	padding: 0 var(--s-5) var(--s-5);
	color: var(--c-graphite);
	font-size: var(--t-sm);
	max-width: 72ch;
}

/* Product rail */
/* Below the two-column layout the hero order box and mobile bar already cover this. */
@media (max-width: 999.98px) {
	.rail-card {
		display: none;
	}
}

.rail-card {
	padding: var(--s-5);
	border: 1px solid var(--c-line);
	border-radius: var(--r-lg);
	background: #fff;
	box-shadow: var(--shadow-sm);
}

.rail-card__title {
	margin: 0 0 var(--s-4);
	font-size: var(--t-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c-steel);
}

.rail-card__price {
	margin: 0 0 var(--s-4);
	padding-bottom: var(--s-4);
	border-bottom: 1px solid var(--c-line-soft);
}

.rail-card__from {
	display: block;
	color: var(--c-steel);
	font-size: var(--t-xs);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.rail-card__price strong {
	display: block;
	font-size: var(--t-lg);
	letter-spacing: -0.02em;
}

.rail-card__unit {
	display: block;
	color: var(--c-steel);
	font-size: var(--t-xs);
}

.rail-card__meta {
	display: grid;
	gap: var(--s-3);
	margin: 0 0 var(--s-5);
}

.rail-card__meta > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--s-3);
	font-size: var(--t-sm);
}

.rail-card__meta dt {
	color: var(--c-steel);
}

.rail-card__meta dd {
	margin: 0;
	color: var(--c-ink);
	font-weight: 600;
	text-align: right;
}

.rail-card__actions {
	display: grid;
	gap: var(--s-2);
}

.rail-card__contact {
	margin: var(--s-4) 0 0;
	color: var(--c-steel);
	font-size: var(--t-xs);
	text-align: center;
}

.rail-card__contact a {
	display: block;
	margin-top: var(--s-1);
	color: var(--c-ink);
	font-family: var(--f-mono);
	font-weight: 650;
	text-decoration: none;
}

.rail-docs {
	margin-top: var(--s-4);
	padding: var(--s-5);
	border: 1px solid var(--c-line);
	border-radius: var(--r-lg);
}

.rail-docs__title {
	margin: 0 0 var(--s-3);
	font-size: var(--t-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c-steel);
}

.rail-docs__list {
	display: grid;
	gap: var(--s-1);
	list-style: none;
	margin: 0;
	padding: 0;
}

.rail-docs__list a {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-2) 0;
	color: var(--c-ink);
	font-size: var(--t-sm);
	font-weight: 550;
	text-decoration: none;
}

.rail-docs__list a:hover {
	color: var(--c-accent);
}

.rail-docs__list .icon {
	color: var(--c-accent);
}

.rail-assurance {
	display: grid;
	gap: var(--s-3);
	list-style: none;
	margin: var(--s-4) 0 0;
	padding: 0;
	font-size: var(--t-xs);
	color: var(--c-steel);
}

.rail-assurance li {
	display: flex;
	align-items: flex-start;
	gap: var(--s-3);
}

.rail-assurance .icon {
	color: var(--c-good);
	margin-top: 1px;
}

.rail-widgets {
	margin-top: var(--s-5);
}

/* Mobile action bar */
.mobile-bar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 80;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-4);
	padding: var(--s-3) var(--s-4);
	border-top: 1px solid var(--c-line);
	background: rgba(255, 255, 255, 0.98);
	backdrop-filter: blur(10px);
	box-shadow: 0 -4px 20px rgba(11, 27, 43, 0.08);
	transform: translateY(110%);
	transition: transform 0.25s var(--ease);
}

.mobile-bar.is-visible {
	transform: translateY(0);
}

.mobile-bar__info {
	display: grid;
	min-width: 0;
	line-height: 1.3;
}

.mobile-bar__info strong {
	font-family: var(--f-mono);
	font-size: var(--t-sm);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.mobile-bar__info span {
	color: var(--c-steel);
	font-size: var(--t-xs);
}

@media (min-width: 1000px) {
	.mobile-bar {
		display: none;
	}
}

/* Industry landing header */
.industry-head {
	background: linear-gradient(150deg, var(--c-ink) 0%, var(--c-ink-2) 100%);
	color: #c6d3e2;
	overflow: hidden;
}

.industry-head__inner {
	position: relative;
	display: grid;
	gap: var(--s-5);
	padding-block: var(--s-8);
}

.industry-head__title {
	margin: 0 0 var(--s-4);
	color: #fff;
	font-size: clamp(2rem, 4.6vw, 3.2rem);
	letter-spacing: -0.03em;
}

.industry-head__intro {
	max-width: 58ch;
	font-size: var(--t-md);
}

.industry-head__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-3);
	margin-top: var(--s-6);
}

.industry-head__icon {
	display: none;
	color: rgba(143, 192, 255, 0.18);
}

@media (min-width: 900px) {
	.industry-head__inner {
		grid-template-columns: 1fr auto;
		align-items: center;
		gap: var(--s-8);
	}

	.industry-head__icon {
		display: block;
	}
}
