.cd-single { padding-block: var(--cd-space-6); }
.cd-single .woocommerce-breadcrumb { color: var(--cd-color-muted); font-size: var(--cd-font-sm); margin-bottom: var(--cd-space-6); }
.woocommerce .cd-single div.product { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--cd-space-6); align-items: start; }
.woocommerce .cd-single div.product::before, .woocommerce .cd-single div.product::after { display: none; }
.woocommerce .cd-single div.product div.images,
.woocommerce .cd-single div.product div.summary {
	float: none; width: auto; min-width: 0; margin: 0;
	border: 1px solid var(--cd-color-surface); border-radius: var(--cd-radius-card);
	background: var(--cd-color-surface); box-shadow: var(--cd-shadow-raised);
}
.woocommerce .cd-single div.product div.images { padding: var(--cd-space-3); }
.cd-single .woocommerce-product-gallery__wrapper { margin: 0; }
.cd-single .woocommerce-product-gallery__image,
.cd-single .woocommerce-product-gallery__image--placeholder { border-radius: calc(var(--cd-radius-card) - var(--cd-space-3)); overflow: hidden; }
.woocommerce .cd-single div.product div.images .woocommerce-product-gallery__image a { display: grid; place-items: center; aspect-ratio: 1; }
.woocommerce .cd-single div.product div.images .woocommerce-product-gallery__image img:not(.zoomImg),
.woocommerce .cd-single div.product div.images .woocommerce-product-gallery__image--placeholder img { width: 100%; height: 100%; object-fit: contain; }
.woocommerce .cd-single div.product div.images .flex-control-thumbs { display: flex; gap: var(--cd-space-2); overflow-x: auto; padding: var(--cd-space-2); margin-top: var(--cd-space-3); }
.woocommerce .cd-single div.product div.images .flex-control-thumbs li { float: none; flex: 0 0 calc(var(--cd-control-size) * 1.5); width: auto; }
.woocommerce .cd-single div.product div.images .flex-control-thumbs img { aspect-ratio: 1; object-fit: contain; border-radius: var(--cd-radius-sm); border: 1px solid var(--cd-color-border); }
.cd-single .flex-control-thumbs img.flex-active { outline: 2px solid var(--cd-color-accent); outline-offset: 1px; }
.woocommerce .cd-single div.product div.summary { padding: var(--cd-space-6); }
.cd-single .summary > .cd-badge { margin-bottom: var(--cd-space-3); }
.cd-single .product_title { font-size: clamp(var(--cd-font-lg), 2.5vw, var(--cd-font-xl)); margin-bottom: var(--cd-space-3); }
.cd-single__stock { margin-bottom: var(--cd-space-4); }
.cd-single .woocommerce-product-details__short-description { color: var(--cd-color-muted); font-size: var(--cd-font-md); max-height: 12em; overflow-y: auto; margin-bottom: var(--cd-space-4); }
.cd-single__attributes { display: flex; flex-wrap: wrap; gap: var(--cd-space-2); list-style: none; padding: 0; margin: 0 0 var(--cd-space-6); }
.cd-single__attributes .cd-pill { padding: var(--cd-space-1) var(--cd-space-3); }
.woocommerce .cd-single div.product p.price, .woocommerce .cd-single div.product span.price { color: var(--cd-color-text); font-size: var(--cd-font-xl); font-weight: var(--cd-weight-bold); }
.woocommerce .cd-single div.product .price del { font-size: var(--cd-font-md); color: var(--cd-color-muted); font-weight: var(--cd-weight-normal); }
.woocommerce .cd-single div.product .price ins { text-decoration: none; }
/* The summary status replaces simple-product's duplicate; variation stock stays native. */
.cd-single .summary > p.stock { display: none; }
.woocommerce .cd-single div.product form.cart { margin-bottom: var(--cd-space-6); }
.cd-single form.cart:not(.variations_form):not(.grouped_form), .cd-single .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cd-space-3); }
.woocommerce .cd-single div.product form.cart div.quantity { float: none; margin: 0; }
.cd-single .quantity .qty, .cd-single .variations select { min-height: var(--cd-control-size); padding: var(--cd-space-2) var(--cd-space-3); color: var(--cd-color-text); background: var(--cd-color-background); border: 1px solid var(--cd-color-border); border-radius: var(--cd-radius-md); box-shadow: var(--cd-shadow-inset); }
.cd-single .quantity .qty { width: calc(var(--cd-control-size) * 1.75); }
.cd-single .variations select { width: 100%; }
.woocommerce .cd-single div.product form.cart .variations th { text-align: start; }
.woocommerce .cd-single div.product form.cart .single_add_to_cart_button {
	float: none; flex: 1; min-height: var(--cd-control-size); padding: var(--cd-space-4) var(--cd-space-6);
	border: 1px solid var(--cd-color-primary-border); border-radius: var(--cd-radius-md);
	background: var(--cd-gradient-primary); color: var(--cd-color-surface); box-shadow: var(--cd-shadow-primary);
	font-family: var(--cd-font-family); font-size: var(--cd-font-md); font-weight: var(--cd-weight-semibold); line-height: var(--cd-line-height-heading);
	transition: box-shadow var(--cd-transition), transform var(--cd-transition);
}
.woocommerce .cd-single div.product form.cart .single_add_to_cart_button:hover { background: var(--cd-gradient-primary-hover); box-shadow: var(--cd-shadow-primary-hover); }
.woocommerce .cd-single div.product form.cart .single_add_to_cart_button:active { transform: translateY(var(--cd-press-offset)); box-shadow: var(--cd-shadow-primary-inset); }
.woocommerce .cd-single div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce .cd-single div.product form.cart .single_add_to_cart_button:disabled { background: var(--cd-color-background); color: var(--cd-color-muted); box-shadow: none; transform: none; }
.cd-single .product_meta { display: flex; flex-direction: column; gap: var(--cd-space-2); padding-top: var(--cd-space-4); border-top: 1px solid var(--cd-color-border); font-size: var(--cd-font-sm); color: var(--cd-color-muted); }
.cd-single .product_meta .tagged_as { display: none; }
@media (min-width: 1000px) { .woocommerce .cd-single div.product { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: var(--cd-space-8); } }
@media (max-width: 40rem) {
	.woocommerce .cd-single div.product div.summary { padding: var(--cd-space-4); }
	.woocommerce .cd-single div.product form.cart .single_add_to_cart_button { flex-basis: 100%; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .woocommerce .cd-single div.product form.cart .single_add_to_cart_button { transition: none; transform: none; } }

/* Native float clearfix must not become extra items in the simple flex row. */
.woocommerce .cd-single div.product.product-type-simple form.cart { width: 100%; }
.woocommerce .cd-single div.product.product-type-simple form.cart::before,
.woocommerce .cd-single div.product.product-type-simple form.cart::after { display: none; content: none; }
.woocommerce .cd-single div.product.product-type-simple form.cart .quantity { flex: 0 0 auto; }
.woocommerce .cd-single div.product.product-type-simple form.cart .quantity:has(input.qty[type="hidden"]),
.woocommerce .cd-single div.product.product-type-simple form.cart .quantity:has(input.qty[hidden]) { display: none; }

/* Keep native quantity values/variation updates, hide only the single purchase UI. */
.woocommerce .cd-single div.product form.cart:not(.grouped_form) .quantity { display: none !important; }
.woocommerce .cd-single div.product .woocommerce-variation-add-to-cart::before,
.woocommerce .cd-single div.product .woocommerce-variation-add-to-cart::after { display: none; content: none; }
.cd-single-information { grid-column: 1 / -1; min-width: 0; }
.cd-single-information__nav {
	--cd-tabs-padding: var(--cd-space-3);
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cd-space-2));
	z-index: 3;
	display: flex;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	flex-wrap: nowrap;
	gap: var(--cd-space-2);
	padding: var(--cd-tabs-padding);
	margin-bottom: var(--cd-space-8);
	border-radius: var(--cd-radius-card);
	background: var(--cd-surface-inset);
	box-shadow: var(--cd-shadow-inset);
	overflow-x: auto;
	scrollbar-width: thin;
}
.cd-single-information__nav .cd-pill {
	--cd-radius-inner: calc(var(--cd-radius-card) - var(--cd-tabs-padding));
	flex-shrink: 0;
	white-space: nowrap;
	border-radius: var(--cd-radius-inner);
	background: var(--cd-color-surface);
	box-shadow: var(--cd-shadow-raised-soft);
}
.cd-single-information__nav .cd-pill[aria-selected="true"] { color: var(--cd-color-text); background: var(--cd-gradient-pill-active); box-shadow: var(--cd-shadow-inset); transform: none; }
.cd-single-information--tabs .cd-single-information__section { margin: 0; padding: 0; border: 0; }
.cd-single-information--tabs .cd-single-information__section[hidden] { display: none; }
.cd-single-information__section { scroll-margin-top: var(--cd-space-6); }
.cd-single-information__section + .cd-single-information__section { margin-top: var(--cd-space-8); padding-top: var(--cd-space-8); border-top: 1px solid var(--cd-color-border); }
.cd-single-information__prose, .cd-single-information__specs { max-width: var(--cd-container-narrow); }
.cd-single-information__prose { line-height: var(--cd-line-height); }
.cd-single-information__prose > :last-child { margin-bottom: 0; }
.cd-single-information__prose :is(ul, ol) { padding-inline-start: var(--cd-space-6); }
.cd-single-information__prose :is(.alignwide, .alignfull) { width: 100%; max-width: 100%; margin-inline: 0; }
.cd-single-information__specs { margin: 0; }
.cd-single-information__specs > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--cd-space-4); padding-block: var(--cd-space-2); }
.cd-single-information__specs > div + div { border-top: 1px solid var(--cd-color-border); }
.cd-single-information__specs dt { color: var(--cd-color-muted); }
.cd-single-information__specs dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.cd-single-information__prose img { max-width: 100%; height: auto; border-radius: var(--cd-radius-media); }
@media (max-width: 40rem) {
	.cd-single-information { padding: var(--cd-space-4); }
	.cd-single-information__nav .cd-pill { padding: var(--cd-space-2) var(--cd-space-3); }
	.cd-single-information__nav { --cd-tabs-padding: var(--cd-space-2); gap: var(--cd-space-2); margin-bottom: var(--cd-space-6); }
	.cd-single-information__specs > div { grid-template-columns: minmax(0, 0.44fr) minmax(0, 0.56fr); gap: var(--cd-space-3); }
	.cd-single-information__section + .cd-single-information__section { margin-top: var(--cd-space-6); padding-top: var(--cd-space-6); }
}

/* WordPress makes its admin bar non-fixed on narrow screens. Header is in normal flow. */
@media (max-width: 600px) { .cd-single-information__nav { top: var(--cd-space-2); } }
.cd-single-information--tabs .cd-single-information__section + .cd-single-information__section { margin: 0; padding: 0; border: 0; }

/* Mobile single-product context: omit current product and its preceding separator. */
@media (max-width: 40rem) {
	.cd-single .woocommerce-breadcrumb > .cd-single-crumb:last-child,
	.cd-single .woocommerce-breadcrumb > .cd-single-crumb-separator:nth-last-child(2),
	.cd-single .summary > .product_meta { display: none; }
	/* Remove only the spacing that previously separated purchase from meta. */
	.woocommerce .cd-single div.product .summary > form.cart:has(+ .product_meta) { margin-bottom: 0; }
}

/* Store benefits stay inside the summary; they are informational, not controls. */
.cd-single .summary .cd-single-benefits {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cd-space-2);
	list-style: none;
	padding: 0;
	margin: var(--cd-space-3) 0 0;
}
.cd-single-benefits__item {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: var(--cd-space-2);
	align-content: center;
	min-width: 0;
	padding: var(--cd-space-2);
	border-radius: var(--cd-radius-md);
	background: var(--cd-gradient-raised);
	box-shadow: var(--cd-shadow-raised-soft);
	color: var(--cd-color-text);
	text-align: left;
	overflow-wrap: anywhere;
}
.cd-single-benefits__item svg {
	grid-column: 1;
	grid-row: 1 / 3;
	align-self: center;
	display: block;
	width: calc(var(--cd-icon-size) + var(--cd-space-3));
	height: calc(var(--cd-icon-size) + var(--cd-space-3));
	padding: var(--cd-space-1);
	border-radius: calc(var(--cd-radius-md) - var(--cd-space-2));
	background: var(--cd-color-accent-soft);
	box-shadow: var(--cd-shadow-pressed);
	color: var(--cd-color-accent);
}
.cd-single-benefits__title,
.cd-single-benefits__subtitle {
	grid-column: 2;
	min-width: 0;
	display: block;
	line-height: var(--cd-line-height-heading);
}
.cd-single-benefits__title { font-size: var(--cd-font-sm); font-weight: var(--cd-weight-semibold); }
.cd-single-benefits__subtitle {
	margin-top: var(--cd-space-1);
	font-size: calc(var(--cd-font-sm) - var(--cd-space-1) / 2);
	color: var(--cd-color-muted);
}
/* Preserve the existing meta spacing without leaving trailing space on mobile. */
@media (min-width: 40.001rem) {
	.cd-single .summary .cd-single-benefits { margin-bottom: var(--cd-space-4); }
}
@media (max-width: 40rem) {
	.cd-single .summary .cd-single-benefits { grid-template-columns: minmax(0, 1fr); }
	.cd-single-benefits__item {
		padding: var(--cd-space-2) var(--cd-space-3);
		column-gap: var(--cd-space-3);
	}
}

/* Native WooCommerce reviews; keep their form, rating and moderation pipeline. */
.cd-single-reviews { min-width: 0; overflow-wrap: anywhere; }
.cd-single-reviews .woocommerce-Reviews-title,
.cd-single-reviews .comment-reply-title {
	display: block;
	margin: 0 0 var(--cd-space-4);
	color: var(--cd-color-text);
	font-size: var(--cd-font-lg);
	font-weight: var(--cd-weight-semibold);
	line-height: var(--cd-line-height-heading);
}
.woocommerce .cd-single-reviews #reviews #comments ol.commentlist { padding: 0; margin: 0; list-style: none; }
.woocommerce .cd-single-reviews #reviews #comments ol.commentlist li { margin: 0 0 var(--cd-space-4); }
.cd-single-reviews .comment_container {
	display: flex;
	align-items: flex-start;
	gap: var(--cd-space-3);
	padding: var(--cd-space-4);
	border-radius: var(--cd-radius-md);
	background: var(--cd-gradient-raised);
	box-shadow: var(--cd-shadow-raised-soft);
}
.woocommerce .cd-single-reviews #reviews #comments ol.commentlist li img.avatar {
	position: static; float: none; flex: 0 0 var(--cd-space-8);
	width: var(--cd-space-8); height: var(--cd-space-8);
	padding: 0; border: 0; border-radius: var(--cd-radius-pill);
}
.woocommerce .cd-single-reviews #reviews #comments ol.commentlist li .comment-text {
	flex: 1; min-width: 0; margin: 0; padding: 0; border: 0;
}
.woocommerce .cd-single-reviews #reviews #comments ol.commentlist li .comment-text p { margin: 0 0 var(--cd-space-2); }
.woocommerce .cd-single-reviews #reviews #comments ol.commentlist li .comment-text .description > :last-child { margin-bottom: 0; }
.cd-single-reviews .woocommerce-review__author { color: var(--cd-color-text); font-weight: var(--cd-weight-semibold); }
.cd-single-reviews .meta,
.cd-single-reviews .comment-notes,
.cd-single-reviews .woocommerce-noreviews,
.cd-single-reviews .woocommerce-verification-required { color: var(--cd-color-muted); font-size: var(--cd-font-sm); }
.woocommerce .cd-single-reviews .star-rating { float: none; margin-bottom: var(--cd-space-2); color: var(--cd-color-accent); font-size: var(--cd-font-sm); }
/* Visual order only: retain the native comments/form DOM and submission logic. */
.cd-single-reviews #reviews { display: flex; flex-direction: column; }
.cd-single-reviews #reviews > #review_form_wrapper { order: 1; margin: 0 0 var(--cd-space-6); }
.cd-single-reviews #reviews > .woocommerce-verification-required { order: 1; }
.cd-single-reviews #reviews > #comments { order: 2; min-width: 0; }
.cd-single-reviews #reviews > .clear { display: none; }
.woocommerce .cd-single-reviews #review_form #respond p { margin: 0 0 var(--cd-space-3); }
.cd-single-reviews .comment-form label:not(.cd-legal-choice) { display: block; margin-bottom: var(--cd-space-1); }
.cd-single-reviews .comment-form .comment-form-cookies-consent label { display: inline; }
.cd-single-reviews .comment-form :is(input[type="text"], input[type="email"], textarea, select) {
	box-sizing: border-box;
	width: 100%; max-width: 100%; min-height: var(--cd-control-size);
	padding: var(--cd-space-3);
	border: 0; border-radius: var(--cd-radius-md);
	background: var(--cd-color-background); box-shadow: var(--cd-shadow-inset);
	color: var(--cd-color-text); font: inherit;
}
.woocommerce .cd-single-reviews #review_form #respond textarea { height: auto; resize: vertical; }
.cd-single-reviews .comment-form .required { color: var(--cd-color-sale); }
.cd-single-reviews .comment-form :is(input, textarea, select):focus-visible,
.cd-single-reviews p.stars a:focus-visible {
	outline: var(--cd-focus-width) solid var(--cd-focus-color);
	outline-offset: var(--cd-focus-offset);
}
.cd-single-reviews p.stars { color: var(--cd-color-accent); }
/* Leave WooCommerce's star glyphs and selection rules intact. */
.woocommerce .cd-single-reviews #respond input#submit {
	min-height: var(--cd-control-size); max-width: 100%; white-space: normal;
	padding: var(--cd-space-3) var(--cd-space-6);
	border: 1px solid var(--cd-color-primary-border); border-radius: var(--cd-radius-md);
	background: var(--cd-gradient-primary); box-shadow: var(--cd-shadow-primary);
	color: var(--cd-color-surface); font: inherit; font-weight: var(--cd-weight-semibold);
	line-height: var(--cd-line-height-heading); cursor: pointer;
}
.woocommerce .cd-single-reviews #respond input#submit:hover { background: var(--cd-gradient-primary-hover); box-shadow: var(--cd-shadow-primary-hover); }
.woocommerce .cd-single-reviews #respond input#submit:active { background: var(--cd-gradient-primary-active); box-shadow: var(--cd-shadow-primary-inset); }
@media (max-width: 40rem) {
	.cd-single-reviews .comment_container { padding: var(--cd-space-3); gap: var(--cd-space-2); }
	.woocommerce .cd-single-reviews #respond input#submit { width: 100%; }
}

/* Aggregate rating is an information row, not a surface or control. */
.cd-single-rating {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--cd-space-2);
	margin-bottom: var(--cd-space-4);
	font-size: var(--cd-font-sm);
	color: var(--cd-color-muted);
}
.woocommerce .cd-single-rating .star-rating {
	float: none;
	flex-shrink: 0;
	margin: 0;
	font-size: var(--cd-font-sm);
	color: var(--cd-color-hit);
}
.cd-single-rating__details { min-width: 0; overflow-wrap: anywhere; }
.cd-single-rating__details strong { color: var(--cd-color-text); font-weight: var(--cd-weight-semibold); }
.cd-single-rating a { color: var(--cd-color-accent); text-decoration: none; }
.cd-single-rating a:hover,
.cd-single-rating a:focus-visible { text-decoration: underline; }
.cd-single-rating a:focus-visible { outline: var(--cd-focus-width) solid var(--cd-focus-color); outline-offset: var(--cd-focus-offset); }

/* Native related loop spans the existing cd-container beneath information. */
.cd-single .up-sells.products,
.cd-single .related.products { grid-column: 1 / -1; min-width: 0; margin-top: var(--cd-space-6); }
.cd-single .up-sells.products > h2,
.cd-single .related.products > h2 { margin: 0 0 var(--cd-space-6); }
.woocommerce .cd-single .up-sells ul.products,
.woocommerce .cd-single .related ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cd-space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce .cd-single .up-sells ul.products::before,
.woocommerce .cd-single .related ul.products::before,
.woocommerce .cd-single .up-sells ul.products::after,
.woocommerce .cd-single .related ul.products::after { display: none; }
.woocommerce .cd-single .up-sells ul.products li.product,
.woocommerce .cd-single .related ul.products li.product {
	float: none; clear: none; width: auto; min-width: 0; margin: 0;
}
/* Content-driven cards: avoid stretching the purchase area to fill empty space. */
.cd-single .up-sells .cd-product-card--catalog,
.cd-single .related .cd-product-card--catalog { height: auto; }
.cd-single .up-sells .cd-product-card__purchase,
.cd-single .related .cd-product-card__purchase { margin-top: 0; }
@media (min-width: 1100px) {
	.woocommerce .cd-single .up-sells ul.products,
	.woocommerce .cd-single .related ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 40rem) {
	.woocommerce .cd-single .up-sells ul.products,
	.woocommerce .cd-single .related ul.products { gap: var(--cd-space-3); }
}
.woocommerce .cd-single .up-sells ul.products li.product a img,
.woocommerce .cd-single .related ul.products li.product a img {
	width: auto; height: auto; max-width: 100%; max-height: 100%; margin: 0;
}

/* Simple sale price: DOM and visual order both put the current price first. */
.cd-single-price {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--cd-space-3) var(--cd-space-4);
	margin-bottom: var(--cd-space-6);
}
.cd-single-price__current {
	min-width: 0;
	color: var(--cd-color-text);
	font-size: var(--cd-font-xl);
	font-weight: var(--cd-weight-bold);
	line-height: var(--cd-line-height-heading);
	overflow-wrap: anywhere;
}
.cd-single-price__current .woocommerce-price-suffix { font-size: var(--cd-font-sm); font-weight: var(--cd-weight-normal); }
.cd-single-price__secondary {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--cd-space-1);
	min-width: 0;
	overflow-wrap: anywhere;
}
.cd-single-price__regular { color: var(--cd-color-muted); font-size: var(--cd-font-sm); font-weight: var(--cd-weight-normal); }
.cd-single-price__saving {
	padding: var(--cd-space-1) var(--cd-space-2);
	border-radius: var(--cd-radius-sm);
	background: var(--cd-color-sale-soft);
	color: var(--cd-color-sale);
	font-size: var(--cd-font-sm);
	line-height: var(--cd-line-height-heading);
}
@media (max-width: 40rem) {
	.cd-single-price { column-gap: var(--cd-space-3); }
	.cd-single-price__current { font-size: clamp(calc(var(--cd-font-lg) + var(--cd-space-1)), 6vw, var(--cd-font-xl)); }
}

/* Kit first in DOM/mobile; specs on the left only when both columns exist. */
.cd-single-specs-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--cd-space-8); }
.cd-single-kit, .cd-single-characteristics { min-width: 0; }
.cd-single-specs-layout h2 { margin: 0 0 var(--cd-space-4); font-size: var(--cd-font-lg); }
.cd-single-specs-layout .cd-single-information__specs { max-width: none; }
@media (min-width: 1000px) {
	.cd-single-specs-layout--both { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); grid-template-areas: "specs kit"; align-items: start; }
	.cd-single-specs-layout--both .cd-single-characteristics { grid-area: specs; }
	.cd-single-specs-layout--both .cd-single-kit { grid-area: kit; }
}
.cd-single-kit__items {
	--cd-kit-row-height: calc(var(--cd-space-8) * 2 + var(--cd-space-6));
	--cd-kit-gap: var(--cd-space-3);
	display: grid;
	gap: var(--cd-kit-gap);
	list-style: none;
	margin: 0;
	padding: var(--cd-space-2);
}
.cd-single-kit__items--scroll {
	/* Four normal rows + three gaps + room for soft shadows. Long text can grow. */
	max-height: calc(var(--cd-kit-row-height) * 4 + var(--cd-kit-gap) * 3 + var(--cd-space-2) * 2);
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-width: thin;
}
.cd-single-kit__items--scroll:focus-visible { outline: var(--cd-focus-width) solid var(--cd-focus-color); outline-offset: var(--cd-focus-offset); }
.cd-single-kit__item {
	display: grid;
	grid-template-columns: calc(var(--cd-control-size) + var(--cd-space-3)) minmax(0, 1fr);
	align-items: center;
	gap: var(--cd-space-3);
	min-height: var(--cd-kit-row-height);
	padding: var(--cd-space-2);
	border-radius: var(--cd-radius-md);
	background: var(--cd-gradient-raised);
	box-shadow: var(--cd-shadow-raised-soft);
}
.cd-single-kit__media {
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	overflow: hidden;
	border-radius: calc(var(--cd-radius-md) - var(--cd-space-2));
	background: var(--cd-color-background);
}
.cd-single-kit__media img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: inherit; }
.cd-single-kit__text { min-width: 0; overflow-wrap: anywhere; }
.cd-single-kit__text strong { display: block; color: var(--cd-color-text); font-weight: var(--cd-weight-semibold); line-height: var(--cd-line-height-heading); }
.cd-single-kit__text span { display: block; margin-top: var(--cd-space-1); color: var(--cd-color-muted); font-size: var(--cd-font-sm); }

/* Mobile-only shortcut to the existing purchase form. */
.cd-single-sticky-cart { display: none; }
@media (max-width: 40rem) {
	.cd-single-sticky-cart {
		display: block;
		position: fixed;
		inset: auto 0 0;
		z-index: 30;
		padding-block: var(--cd-space-3) calc(var(--cd-space-3) + env(safe-area-inset-bottom, 0px));
		border-radius: var(--cd-radius-md) var(--cd-radius-md) 0 0;
		background: var(--cd-gradient-raised);
		box-shadow: var(--cd-shadow-raised-soft);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(100%);
		transition: opacity 200ms ease, transform 200ms ease, visibility 200ms;
	}
	.cd-single-sticky-cart.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
	.cd-single-sticky-cart__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--cd-space-3); }
	.cd-single-sticky-cart__price { min-width: 0; overflow-wrap: anywhere; color: var(--cd-color-text); font-size: var(--cd-font-lg); font-weight: var(--cd-weight-bold); }
	.cd-single-sticky-cart .cd-button { flex-shrink: 0; padding: var(--cd-space-3) var(--cd-space-4); }
	/* Add space after the footer, without moving any existing content. */
	body.cd-has-sticky-cart::after { content: ""; display: block; height: var(--cd-sticky-cart-height, 0px); }
}
@media (prefers-reduced-motion: reduce) {
	.cd-single-sticky-cart { transition: none; transform: none; }
}

/* Product facts: compact technical highlights, separate from the raised store benefits. */
.cd-single-features { min-width: 0; margin-bottom: var(--cd-space-4); }
.cd-single-features__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cd-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.cd-single-feature {
	display: flex;
	align-items: center;
	gap: var(--cd-space-1);
	min-width: 0;
	padding: var(--cd-space-2);
	border-radius: var(--cd-radius-md);
	background: var(--cd-gradient-raised);
	box-shadow: var(--cd-shadow-raised-soft);
}
.cd-single-feature__icon {
	display: grid;
	place-items: center;
	flex: 0 0 var(--cd-space-6);
	width: var(--cd-space-6);
	height: var(--cd-space-6);
	padding: var(--cd-space-1);
	border-radius: calc(var(--cd-radius-md) - var(--cd-space-2));
	background: var(--cd-color-accent-soft);
	color: var(--cd-color-accent);
}
.cd-single-feature__icon svg,
.cd-single-feature__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.cd-single-feature__content { min-width: 0; overflow-wrap: anywhere; }
.cd-single-feature__value {
	display: block;
	color: var(--cd-color-text);
	font-size: var(--cd-font-sm);
	font-weight: var(--cd-weight-semibold);
	line-height: var(--cd-line-height-heading);
}
.cd-single-feature__label {
	display: block;
	margin-top: 0;
	color: var(--cd-color-muted);
	font-size: calc(var(--cd-font-sm) * 0.9);
	line-height: var(--cd-line-height-heading);
}
.cd-single-feature__platforms {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cd-space-1);
	color: var(--cd-color-text);
	font-size: var(--cd-font-sm);
	line-height: var(--cd-line-height-heading);
}
.cd-single-feature__platforms span {
	min-width: 0;
	padding: var(--cd-space-1) var(--cd-space-2);
	border-radius: calc(var(--cd-radius-md) - var(--cd-space-3));
	background: var(--cd-color-accent-soft);
}
.cd-single-feature__platforms span + span { background: var(--cd-color-surface); }
@media (max-width: 40rem) {
	.cd-single-features__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Match the two-column gallery/summary desktop breakpoint. Mobile stays two. */
@media (min-width: 1000px) {
	.cd-single-features--four .cd-single-features__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
