/* Product page: public classic Woo selectors, native gallery/forms/state. */
.single-product .bb-main { padding-block-start: var(--wp--preset--spacing--space-4); }
/* Retain Woo's complete breadcrumb data while the H1 supplies the current title. */
.single-product .woocommerce-breadcrumb { margin-block-end: var(--wp--preset--spacing--space-4); }
.single-product .bb-breadcrumb-item:last-child,
.single-product .bb-breadcrumb-separator:nth-last-child(2) { display: none; }
@media (max-width: 63.99rem) {
	.single-product .bb-breadcrumb-item:not(:nth-last-child(3)),
	.single-product .bb-breadcrumb-separator { display: none; }
	.single-product .bb-breadcrumb-item:nth-last-child(3) a { display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--space-2); min-block-size: var(--wp--custom--control--target-min); }
	.single-product .bb-breadcrumb-item:nth-last-child(3) a::before { content: '‹'; font-size: var(--wp--preset--font-size--lead); text-decoration: none; }
}
.single-product.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--space-6);
	align-items: start;
}
.single-product.woocommerce div.product::before,
.single-product.woocommerce div.product::after { display: none; }
.single-product.woocommerce div.product > * { min-inline-size: 0; }
.single-product.woocommerce div.product .bb-product-identity { grid-row: 1; }
.single-product.woocommerce div.product div.images {
	float: none; width: 100%; margin: 0; grid-row: 2;
}
.single-product.woocommerce div.product div.summary {
	float: none; width: 100%; margin: 0; grid-row: 3;
	padding: var(--wp--preset--spacing--space-6);
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--card);
	background: var(--wp--preset--color--surface);
	container: bb-purchase / inline-size;
}
.bb-product-pack { margin: 0; color: var(--wp--preset--color--text-secondary); font-size: var(--wp--preset--font-size--small); }
.single-product.woocommerce div.product .product_title {
	margin: 0 0 var(--wp--preset--spacing--space-2);
	font-size: var(--wp--preset--font-size--heading-medium);
	line-height: var(--wp--custom--line-height--heading);
}
.bb-product-identity .woocommerce-product-rating { margin-block: var(--wp--preset--spacing--space-2) 0; }
.single-product.woocommerce div.product .stock.in-stock { color: var(--wp--custom--color--success); }
.single-product.woocommerce div.product .stock.out-of-stock { color: var(--wp--custom--color--error); }
/* Width/height attributes never stretch a square photograph or landscape artwork. */
.single-product.woocommerce div.product .woocommerce-product-gallery__image img:not(.zoomImg) {
	width: 100%; height: auto; aspect-ratio: 1; object-fit: contain;
}
.single-product .woocommerce-product-gallery__wrapper { margin: 0; }
/* Keep native slides measurable while only the first image paints. FlexSlider
 * writes oversized track/slide widths before its start callback releases this state. */
.single-product .bb-gallery-initial .woocommerce-product-gallery__wrapper { display: grid; grid-template-columns: 100%; width: 100% !important; }
.single-product .bb-gallery-initial .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image { grid-area: 1 / 1; width: 100% !important; }
.single-product .bb-gallery-initial .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) { visibility: hidden; }
.single-product .bb-gallery-initial .flex-control-thumbs { pointer-events: none; }
/* Square photographs have a stable viewport throughout native slider transitions. */
.single-product .woocommerce-product-gallery .flex-viewport { aspect-ratio: 1; height: auto !important; }
.single-product .bb-gallery-cover { position: absolute; inset: 0 auto auto 0; z-index: 1; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; pointer-events: none; }
.single-product.woocommerce div.product div.images .flex-control-thumbs {
	display: flex; gap: var(--wp--preset--spacing--space-2);
	overflow-x: auto; padding: var(--wp--preset--spacing--space-1);
	margin-block-start: var(--wp--preset--spacing--space-3);
}
.single-product.woocommerce div.product div.images .flex-control-thumbs li { float: none; flex: 0 0 5rem; width: 5rem; }
.single-product.woocommerce div.product div.images .flex-control-thumbs li:first-child { position: sticky; inset-inline-start: 0; z-index: 1; background: var(--wp--preset--color--surface); }
.single-product.woocommerce div.product div.images .flex-control-thumbs li img {
	width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; opacity: 1;
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--control); background: var(--wp--preset--color--surface);
}
.single-product.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { border-color: var(--wp--preset--color--accent); outline: 2px solid var(--wp--preset--color--accent); outline-offset: -2px; }
.single-product.woocommerce div.product .woocommerce-product-gallery__trigger { width: var(--wp--custom--control--target-min); height: var(--wp--custom--control--target-min); }
.single-product.woocommerce div.product p.price,
.single-product.woocommerce div.product span.price {
	color: var(--wp--preset--color--text); font-size: var(--wp--preset--font-size--heading-small);
	font-weight: var(--wp--custom--font-weight--strong); margin: 0 0 var(--wp--preset--spacing--space-4);
}
.single-product .woocommerce-product-details__short-description { font-size: var(--wp--preset--font-size--body); color: var(--wp--preset--color--text-secondary); line-height: var(--wp--custom--line-height--body); overflow-wrap: anywhere; }
.single-product .woocommerce-product-details__short-description > * { margin-block: 0; }
.single-product .woocommerce-product-details__short-description > * + * { margin-block-start: var(--wp--preset--spacing--space-3); }
.single-product .woocommerce-product-details__short-description .bb-product-includes { font-size: var(--wp--preset--font-size--small); }
.bb-product-quick-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); gap: var(--wp--preset--spacing--space-3); }
.bb-product-quick-specs dt { color: var(--wp--preset--color--muted); }
.bb-product-quick-specs dd { margin: var(--wp--preset--spacing--space-1) 0 0; color: var(--wp--preset--color--text); font-weight: var(--wp--custom--font-weight--strong); }
.single-product .woocommerce-product-details__short-description .bb-product-size-specs { width: 100%; table-layout: fixed; border-collapse: collapse; border: 0; font-size: var(--wp--preset--font-size--small); }
.bb-product-size-specs th, .bb-product-size-specs td { text-align: start; vertical-align: top; padding: var(--wp--preset--spacing--space-2); border: 0; border-block-end: var(--wp--custom--border--width) solid var(--wp--preset--color--border); overflow-wrap: anywhere; }
.bb-product-size-specs th:first-child, .bb-product-size-specs td:first-child { padding-inline-start: 0; }
.bb-product-size-specs th:last-child, .bb-product-size-specs td:last-child { padding-inline-end: 0; }
.bb-product-size-specs thead th { color: var(--wp--preset--color--muted); font-weight: var(--wp--custom--font-weight--regular); }
.bb-product-size-specs tbody th, .bb-product-size-specs tbody td { color: var(--wp--preset--color--text); font-weight: var(--wp--custom--font-weight--strong); }
.single-product.woocommerce div.product form.cart { margin: var(--wp--preset--spacing--space-6) 0 0; }
.single-product.woocommerce div.product form.cart .variations { margin: 0 0 var(--wp--preset--spacing--space-4); }
.single-product.woocommerce div.product form.cart .variations :is(tr, th, td) { display: block; padding: 0; }
.single-product.woocommerce div.product form.cart .variations label { font-size: var(--wp--preset--font-size--small); }
.single-product.woocommerce div.product form.cart .variations select { width: 100%; max-width: 100%; margin-block-start: var(--wp--preset--spacing--space-2); }
.single-product [hidden], .single-product .bb-native-select-enhanced, .single-product .bb-native-select-pending { display: none !important; }
.bb-color-choices { border: 0; padding: 0; margin: var(--wp--preset--spacing--space-2) 0 0; min-inline-size: 0; }
.bb-color-choices__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wp--preset--spacing--space-2); }
.bb-color-choice {
	display: flex; flex-direction: column; align-items: center; gap: var(--wp--preset--spacing--space-1);
	min-inline-size: 0; min-block-size: var(--wp--custom--control--target-min);
	padding: var(--wp--preset--spacing--space-1); font: inherit;
	font-size: var(--wp--preset--font-size--small); line-height: var(--wp--custom--line-height--body);
	border: var(--wp--custom--border--width) solid var(--wp--custom--color--border-control);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--surface); color: var(--wp--preset--color--text); cursor: pointer;
}
.bb-color-choice img { width: 100%; height: auto; aspect-ratio: 1.6; object-fit: contain; }
.bb-color-choice span { overflow-wrap: anywhere; }
.bb-color-choice:hover { background: var(--wp--preset--color--canvas); }
.bb-color-choice[aria-pressed="true"] { border-color: var(--wp--preset--color--accent); box-shadow: inset 0 0 0 1px var(--wp--preset--color--accent); background: var(--wp--preset--color--canvas); }
.bb-color-choice:disabled { background: var(--wp--custom--color--disabled-surface); color: var(--wp--preset--color--muted); cursor: not-allowed; }
/* Waiting for Woo state is distinct from an unavailable product option. */
.bb-color-choices[data-bb-choice-pending] .bb-color-choice { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--text); cursor: wait; }
.single-product.woocommerce div.product form.cart .variations .bb-color-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--space-2); flex-wrap: wrap; text-align: start; }
.bb-color-heading label { flex: 1 1 auto; overflow-wrap: anywhere; }
.bb-color-heading__selection { font-weight: var(--wp--custom--font-weight--regular); }
.bb-color-heading .reset_variations { flex: 0 0 auto; font-size: var(--wp--preset--font-size--small); }
.bb-selected-preview { display: flex; align-items: center; gap: var(--wp--preset--spacing--space-3); min-block-size: var(--wp--custom--control--target-min); margin-block-start: var(--wp--preset--spacing--space-3); padding-block: var(--wp--preset--spacing--space-2); color: var(--wp--preset--color--accent); font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--strong); }
.bb-selected-preview img { flex: 0 0 var(--wp--preset--spacing--space-16); inline-size: var(--wp--preset--spacing--space-16); block-size: var(--wp--preset--spacing--space-16); object-fit: contain; border-radius: var(--wp--preset--border-radius--control); }
.bb-selected-preview__icon { flex: 0 0 1rem; inline-size: 1rem; block-size: 1rem; margin-inline-start: auto; position: relative; border: 2px solid currentColor; border-radius: 50%; transform: scale(0.75); }
.bb-selected-preview__icon::after { content: ''; position: absolute; inline-size: 0.5rem; block-size: 2px; inset-inline-start: 75%; inset-block-start: 100%; background: currentColor; transform: rotate(45deg); transform-origin: left center; }
.bb-selected-preview[aria-busy="true"] { cursor: progress; }
.bb-selected-preview-status { margin: var(--wp--preset--spacing--space-2) 0 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--custom--color--error); }
.single-product.woocommerce div.product form.cart .reset_variations { display: inline-flex; align-items: center; min-block-size: var(--wp--custom--control--target-min); }
.bb-product-quantity-label { margin: 0; font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--strong); }
.bb-product-quantity-help { margin: var(--wp--preset--spacing--space-1) 0 var(--wp--preset--spacing--space-2); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-secondary); }
.single-product.woocommerce div.product form.cart div.quantity {
	display: flex; float: none; width: fit-content; max-width: 100%; margin: var(--wp--preset--spacing--space-2) 0 var(--wp--preset--spacing--space-4);
}
.single-product .bb-quantity-step {
	min-width: var(--wp--custom--control--target-min); min-height: var(--wp--custom--control--min-height); padding: var(--wp--preset--spacing--space-2);
	border: var(--wp--custom--border--width) solid var(--wp--custom--color--border-control);
	background: var(--wp--preset--color--surface); color: var(--wp--preset--color--text); font: inherit; cursor: pointer;
}
/* Keep native numeric validation/keyboard input, with only our visible minus/plus controls. */
.single-product.woocommerce .quantity .qty { width: 4rem; min-height: var(--wp--custom--control--min-height); border-radius: 0; appearance: textfield; -moz-appearance: textfield; }
.single-product.woocommerce .quantity .qty::-webkit-inner-spin-button,
.single-product.woocommerce .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.bb-quantity-step:first-of-type { border-radius: var(--wp--preset--border-radius--control) 0 0 var(--wp--preset--border-radius--control); border-inline-end: 0; }
.bb-quantity-step:last-of-type { border-radius: 0 var(--wp--preset--border-radius--control) var(--wp--preset--border-radius--control) 0; border-inline-start: 0; }
.bb-quantity-step:disabled { color: var(--wp--preset--color--muted); background: var(--wp--custom--color--disabled-surface); cursor: not-allowed; }
.single-product.woocommerce div.product form.cart .button { float: none; width: 100%; }
.single-product .product_meta { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--space-1); margin-block-start: var(--wp--preset--spacing--space-4); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text-secondary); }
.single-product .product_meta .posted_in { display: none; }
.bb-product-help { margin-block: var(--wp--preset--spacing--space-6) 0; padding-block-start: var(--wp--preset--spacing--space-4); border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--small); }
.bb-product-help > p { margin: 0; color: var(--wp--preset--color--text-secondary); }
.bb-product-help__action { display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--space-2); min-block-size: var(--wp--custom--control--target-min); max-inline-size: 100%; color: var(--wp--preset--color--accent); font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--strong); }
.bb-product-help__action:hover { color: var(--wp--custom--color--accent-hover); }
.bb-product-help__icon { flex: 0 0 1.25rem; inline-size: 1.25rem; block-size: 1.25rem; background: currentColor; mask: url('../images/whatsapp.svg') center / contain no-repeat; -webkit-mask: url('../images/whatsapp.svg') center / contain no-repeat; }
.bb-product-information, .single-product .related, .single-product .up-sells { grid-column: 1 / -1; }
.bb-product-information { border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border); margin-block-start: var(--wp--preset--spacing--space-6); }
.bb-product-information h2 { font-size: var(--wp--preset--font-size--heading-small); }
.bb-product-specs { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); }
.bb-product-specs :is(th, td) { text-align: start; vertical-align: top; padding: var(--wp--preset--spacing--space-3) var(--wp--preset--spacing--space-2); border-block-end: var(--wp--custom--border--width) solid var(--wp--preset--color--border); }
.bb-product-specs th { font-weight: var(--wp--custom--font-weight--regular); color: var(--wp--preset--color--text-secondary); }
.bb-product-fit { padding: var(--wp--preset--spacing--space-3); border-inline-start: 2px solid var(--wp--preset--color--accent); background: var(--wp--preset--color--surface); font-size: var(--wp--preset--font-size--small); }
.bb-product-information .bb-product-disclosure { border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border); margin-block: var(--wp--preset--spacing--space-4) 0; }
.bb-product-disclosure summary { display: list-item; padding-block: var(--wp--preset--spacing--space-4); min-height: var(--wp--custom--control--min-height); font-weight: var(--wp--custom--font-weight--strong); cursor: pointer; }
.bb-product-disclosure__content { padding-block-end: var(--wp--preset--spacing--space-4); }
.bb-product-disclosure__content > :first-child { margin-block-start: 0; }
.bb-product-disclosure__hint { display: inline-block; margin-inline-start: var(--wp--preset--spacing--space-3); font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--regular); color: var(--wp--preset--color--text-secondary); }
.single-product.woocommerce .bb-packaging-information table.shop_attributes { width: 100%; border: 0; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); margin: 0; }
.single-product.woocommerce .bb-packaging-information table.shop_attributes :is(th, td) { padding: var(--wp--preset--spacing--space-3) var(--wp--preset--spacing--space-2); border: 0; border-block-end: var(--wp--custom--border--width) solid var(--wp--preset--color--border); text-align: start; vertical-align: top; font-style: normal; background: transparent; overflow-wrap: anywhere; }
.single-product.woocommerce .bb-packaging-information table.shop_attributes th { width: 40%; font-weight: var(--wp--custom--font-weight--regular); color: var(--wp--preset--color--text-secondary); }
.single-product.woocommerce .bb-packaging-information table.shop_attributes td p { padding: 0; margin: 0; }
/* The enclosing native-tab disclosure already names the review section. */
.bb-product-information .woocommerce-Reviews-title { display: none; }
.bb-review-compose > summary { width: fit-content; color: var(--wp--preset--color--accent); font-size: var(--wp--preset--font-size--body); }
/* Related product grid and cards now reuse catalog.css and the classic loop hooks. */
.bb-purchase-bar { position: fixed; inset: auto 0 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--space-3); padding: var(--wp--preset--spacing--space-3) var(--bb-gutter); padding-block-end: max(var(--wp--preset--spacing--space-3), env(safe-area-inset-bottom)); border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border); background: var(--wp--preset--color--surface); }
.bb-purchase-bar > div { min-width: 0; }
.bb-purchase-bar__price { display: block; font-weight: var(--wp--custom--font-weight--strong); }
.bb-purchase-bar__selection { display: block; color: var(--wp--preset--color--text-secondary); font-size: var(--wp--preset--font-size--small); overflow-wrap: anywhere; }
.bb-purchase-bar .bb-button { flex-shrink: 0; }
.bb-purchase-bar-visible { padding-block-end: 7rem; }
.single-product :is(.bb-color-choice, .bb-selected-preview, .bb-product-help__action, .bb-quantity-step, summary, .flex-control-thumbs img):focus-visible { outline: 2px solid var(--wp--custom--color--focus); outline-offset: 2px; }
@media (max-width: 39.99rem) {
	.single-product.woocommerce div.product div.summary { padding: var(--wp--preset--spacing--space-4); }
	.single-product.woocommerce div.product div.images .flex-control-thumbs li { flex-basis: 4.5rem; width: 4.5rem; }
}
@media (min-width: 64rem) {
	.single-product.woocommerce div.product { grid-template-columns: minmax(0, 12fr) minmax(0, 13fr); grid-template-rows: min-content auto; column-gap: var(--wp--preset--spacing--space-8); row-gap: var(--wp--preset--spacing--space-4); }
	.single-product.woocommerce div.product .bb-product-identity { grid-column: 2; grid-row: 1; }
	.single-product.woocommerce div.product div.images { grid-column: 1; grid-row: 1 / span 2; }
	.single-product.woocommerce div.product div.summary { grid-column: 2; grid-row: 2; }
	.bb-color-choices__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	/* Five ~100px choices plus four 8px gaps; narrower cards retain four columns. */
	@container bb-purchase (min-width: 33.25rem) {
		.bb-color-choices__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	}
	.bb-color-choice img { max-inline-size: var(--wp--preset--spacing--space-16); }
	.bb-selected-preview, .bb-selected-preview-status { display: none; }
	.bb-product-help { display: flex; align-items: center; flex-wrap: wrap; column-gap: var(--wp--preset--spacing--space-4); }
	.single-product.woocommerce div.product .woocommerce-variation-add-to-cart,
	.single-product.woocommerce div.product.product-type-simple form.cart { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: var(--wp--preset--spacing--space-3); align-items: end; }
	.single-product.woocommerce div.product.product-type-simple form.cart::before,
	.single-product.woocommerce div.product.product-type-simple form.cart::after { display: none; }
	.single-product .woocommerce-variation-add-to-cart > :is(.bb-product-quantity-label, .bb-product-quantity-help),
	.single-product .product-type-simple form.cart > :is(.bb-product-quantity-label, .bb-product-quantity-help) { grid-column: 1 / -1; }
	.single-product.woocommerce div.product form.cart .woocommerce-variation-add-to-cart div.quantity,
	.single-product.woocommerce div.product.product-type-simple form.cart div.quantity { margin: 0; }
	.bb-purchase-bar { display: none; }
	.bb-purchase-bar-visible { padding-block-end: 0; }
}
@media (max-height: 30rem) { .bb-purchase-bar { display: none; } .bb-purchase-bar-visible { padding-block-end: 0; } }
.bb-product-cart-error { margin-block: var(--wp--preset--spacing--space-4); padding: var(--wp--preset--spacing--space-3); border-inline-start: 2px solid var(--wp--custom--color--error); background: var(--wp--custom--color--error-surface); color: var(--wp--custom--color--error); font-size: var(--wp--preset--font-size--small); }
.single-product form.cart[aria-busy="true"] .single_add_to_cart_button { cursor: wait; }
/* One shared help row for every description layout; no promotional cards. */
.bb-product-resources { display: flex; flex-direction: column; align-items: flex-start; grid-column: 1 / -1; margin-block: var(--wp--preset--spacing--space-2); padding-block: var(--wp--preset--spacing--space-2); border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--small); }
.bb-product-resources__shopping { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--wp--preset--spacing--space-4); }
.bb-product-resources ul { list-style: none; padding: 0; margin: 0; }
.bb-product-resources a { display: inline-flex; align-items: center; min-block-size: var(--wp--custom--control--target-min); text-underline-offset: .2em; }
.bb-product-resources__tracking { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--wp--preset--spacing--space-2); margin: 0; color: var(--wp--preset--color--text-secondary); }
.bb-product-resources a:focus-visible { outline: 2px solid var(--wp--custom--color--focus); outline-offset: 2px; }
@media (min-width: 64rem) {
	.bb-product-resources { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; column-gap: var(--wp--preset--spacing--space-6); }
}
