/* =========================================================================
 * BioCenter product page palette + component styles
 * Scoped to body.single-product so it does not leak to other pages.
 * Loaded by biocenter-product.php only on is_product() pages.
 * ====================================================================== */

body.single-product {
	--bc-green-dark:  #1a3d2e;
	--bc-green-mid:   #245c42;
	--bc-green-light: #2f7a58;
	--bc-green-pale:  #e8f5ef;
	--bc-orange:      #ff6c00;
	--bc-orange-lt:   #ff9f19;
	--bc-yellow:      #ffd200;
	--bc-bg-warm:     #fff9f2;
	--bc-bg-light:    #f6f6f4;
	--bc-text:        #1a1a1a;
	--bc-text-muted:  #6b7280;
	--bc-border:      #e5e7eb;
	--bc-success:     #1d9e75;
	--bc-r-sm: 8px;
	--bc-r-md: 12px;
	--bc-r-lg: 18px;
	--bc-shadow:    0 2px 12px rgba(0,0,0,0.08);
	--bc-shadow-lg: 0 8px 32px rgba(0,0,0,0.14);
}

/* ── Brand label — small orange uppercase text, no pill (matches mock) ── */
.single-product .bc-brand-chip {
	display: block;
	background: transparent;
	color: var(--bc-orange);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	padding: 0;
	border-radius: 0;
	margin: 0 0 6px;
	font-family: inherit;
	width: auto;
	max-width: 100%;
}
/* Safety net: if the chip's parent container is still row-direction, force
   column layout so the chip sits ABOVE the title and aligns to the start
   edge (right in RTL, left in LTR). Layout post 22875 is also flipped to
   direction:column — this :has() rule covers any cached/edited variant. */
.single-product .wp-block-wd-container:has(> .bc-brand-chip),
.single-product .wp-block-wd-container:has(> p > .bc-brand-chip) {
	flex-direction: column !important;
	align-items: flex-start !important;
	row-gap: 6px;
}

/* ── Trust chips strip ──────────────────────────────────────────────── */
.single-product .bc-trust-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 14px 0;
}
.single-product .bc-trust-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--bc-bg-warm);
	border: 1px solid var(--bc-border);
	color: var(--bc-text);
	font-size: 12px;
	font-weight: 600;
	padding: 6px 12px;
	border-radius: 999px;
	line-height: 1.4;
}
.single-product .bc-trust-chip-icon {
	font-size: 14px;
	line-height: 1;
}
.single-product .bc-trust-chip-text {
	white-space: nowrap;
}
@media (max-width: 480px) {
	.single-product .bc-trust-chip-text { white-space: normal; }
}

/* ── Ask on WhatsApp button ─────────────────────────────────────────── */
.single-product .bc-wa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: #25D366;
	color: #fff !important;
	font-weight: 700;
	font-size: 14px;
	padding: 10px 18px;
	border-radius: var(--bc-r-md);
	text-decoration: none !important;
	transition: background 0.15s ease, transform 0.15s ease;
	box-shadow: 0 2px 6px rgba(37,211,102,0.25);
	min-height: 42px;
	width: 100%;
	max-width: 360px;
	margin: 8px 0;
}
.single-product .bc-wa-btn:hover,
.single-product .bc-wa-btn:focus {
	background: #1ebe57;
	transform: translateY(-1px);
	color: #fff !important;
	text-decoration: none !important;
}
.single-product .bc-wa-icon {
	display: inline-block;
	flex-shrink: 0;
}
.single-product .bc-wa-label {
	line-height: 1;
}

/* RTL: nothing to flip — inline-flex inherits direction from <body> */

/* Price color is left to WoodMart's default (BioCenter orange). Only the
   strikethrough "del" gets muted grey so the discount stands out. */
.single-product div.product .price del {
	color: var(--bc-text-muted);
}

/* Primary CTA accent — apply BioCenter orange to add-to-cart in summary only */
.single-product div.product form.cart .single_add_to_cart_button.button.alt {
	background: var(--bc-orange);
	color: #fff;
	border-color: var(--bc-orange);
	font-weight: 700;
	border-radius: var(--bc-r-md);
}
.single-product div.product form.cart .single_add_to_cart_button.button.alt:hover {
	background: var(--bc-green-dark);
	border-color: var(--bc-green-dark);
}

/* ── Variation table layout — stack the label ABOVE the swatches on its
   own line (matches target mock: "Size: 2 kg selected" / pills row). ── */
.single-product form.cart .variations,
.single-product form.cart table.variations {
	width: 100%;
	border: 0 !important;
	border-collapse: collapse;
	margin: 0 0 12px;
}
.single-product form.cart table.variations,
.single-product form.cart table.variations tbody,
.single-product form.cart table.variations tr,
.single-product form.cart table.variations th.label,
.single-product form.cart table.variations td.value {
	display: block !important;
	width: 100% !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
.single-product form.cart table.variations tr {
	margin: 0 0 10px !important;
}
.single-product form.cart table.variations th.label,
.single-product form.cart table.variations th.label label {
	font-weight: 700;
	color: var(--bc-text);
	font-size: 13px;
	padding: 0 0 2px !important;
	margin: 0 !important;
	text-align: start;
	line-height: 1.4;
}
/* Hide WoodMart's "reset selection" cross/link — target mock doesn't show it. */
.single-product form.cart .wd-reset-var,
.single-product form.cart .reset_variations {
	display: none !important;
}
/* Hide the native <select> WoodMart pairs alongside swatches */
.single-product form.cart table.variations td.value > select {
	display: none !important;
}

/* ── Variation swatch pills (size / flavor) ─────────────────────────── */
/* Strip every layer of inherited padding/margin so swatches start at the
   exact same start-edge as the label above and the price card. */
.single-product form.cart,
.single-product .wd-single-add-cart,
.single-product .wd-single-add-cart > *,
.single-product form.cart table.variations,
.single-product form.cart table.variations tbody,
.single-product form.cart table.variations tr,
.single-product form.cart table.variations th.label,
.single-product form.cart table.variations td.value,
.single-product form.cart .wd-swatches-attr,
.single-product form.cart .wd-swatches-product,
.single-product form.cart .wd-swatches-product > *:not(.wd-swatch) {
	padding-inline-start: 0 !important;
	padding-inline-end: 0 !important;
	margin-inline-start: 0 !important;
	margin-inline-end: 0 !important;
	text-indent: 0 !important;
}
.single-product form.cart table.variations td.value,
.single-product form.cart table.variations td.value > * {
	text-align: start !important;
}
body.single-product .wd-swatches-attr,
body.single-product .wd-swatches-product {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: flex-start !important;
	gap: 8px !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100%;
}
body.single-product .wd-swatches-attr .wd-swatch,
body.single-product .wd-swatches-product .wd-swatch {
	border-radius: 8px !important;
	border: 1px solid var(--bc-border) !important;
	background: #fff !important;
	color: var(--bc-text) !important;
	font-weight: 500 !important;
	font-size: 13px !important;
	padding: 6px 14px !important;
	min-width: 56px !important;
	text-align: center !important;
	box-shadow: none !important;
	line-height: 1.4 !important;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
body.single-product .wd-swatches-attr .wd-swatch:hover,
body.single-product .wd-swatches-product .wd-swatch:hover {
	border-color: var(--bc-orange) !important;
	color: var(--bc-orange) !important;
	background: #fff !important;
}
/* Active state — orange border + orange text on white. Same weight as
   inactive (NOT bold) to match the mockup's "2 kg" pill. */
body.single-product .wd-swatches-attr .wd-swatch.wd-active,
body.single-product .wd-swatches-attr .wd-swatch.selected,
body.single-product .wd-swatches-attr .wd-swatch[aria-checked="true"],
body.single-product .wd-swatches-product .wd-swatch.wd-active,
body.single-product .wd-swatches-product .wd-swatch.selected,
body.single-product .wd-swatches-product .wd-swatch[aria-checked="true"] {
	background: #fff !important;
	background-color: #fff !important;
	border: 1.5px solid var(--bc-orange) !important;
	border-color: var(--bc-orange) !important;
	color: var(--bc-orange) !important;
	font-weight: 500 !important;
	padding: 5.5px 13.5px !important;
	box-shadow: none !important;
}
body.single-product .wd-swatches-attr .wd-swatch.disabled,
body.single-product .wd-swatches-attr .wd-swatch.wd-disabled {
	opacity: 0.4 !important;
	cursor: not-allowed;
	text-decoration: line-through;
}

/* ── Price card — pale-green rounded box wrapping the price block.
   Contains: current price (orange, large) · old price (strikethrough, muted)
   · "Save XX%" orange pill (appended via filter when product is on sale). ── */
.single-product .wd-single-price {
	background: var(--bc-green-pale);
	border-radius: var(--bc-r-md);
	padding: 14px 18px;
	width: 100%;
	box-sizing: border-box;
	margin: 0 0 14px;
}
.single-product .wd-single-price .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: flex-start;
	gap: 0 8px;
	margin: 0;
	padding: 0;
	line-height: 1.15;
	text-align: start;
}
/* Each price piece flows inline within the flex row. ins/del use natural baseline alignment. */
.single-product .wd-single-price .price > .amount,
.single-product .wd-single-price .price > ins,
.single-product .wd-single-price .price > del,
.single-product .wd-single-price .price > .bc-save-badge {
	margin: 0;
}
/* Hide screen-reader range text — it was being treated as a flex item and creating gaps */
.single-product .wd-single-price .price .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
.single-product .wd-single-price .price > .amount,
.single-product .wd-single-price .price ins .amount,
.single-product div.product .price > .amount,
.single-product div.product .price ins .amount {
	font-size: 26px;
	line-height: 1.1;
	font-weight: 800;
}
.single-product .wd-single-price .price ins {
	background: transparent;
	text-decoration: none;
}
.single-product .wd-single-price .price del,
.single-product div.product .price del {
	opacity: 1;
	color: var(--bc-text-muted);
	font-size: 16px;
	text-decoration: line-through;
	margin-inline-start: 6px;
}
.single-product .wd-single-price .price del .amount,
.single-product div.product .price del .amount {
	color: var(--bc-text-muted);
	font-weight: 500;
}
/* Save XX% pill appended by woocommerce_get_price_html filter */
.single-product .price .bc-save-badge {
	display: inline-flex;
	align-items: center;
	background: var(--bc-orange);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2px;
	padding: 4px 10px;
	border-radius: 999px;
	line-height: 1;
	margin-inline-start: 6px;
	white-space: nowrap;
}
/* VAT label sits on its own line below the price (inside the green card).
   Override WoodMart's inherited price color with high-specificity grey. */
.single-product .wd-single-price .price .bc-vat-incl,
.single-product .wd-single-price p.price .bc-vat-incl,
.single-product .wd-single-price .price > .bc-vat-incl {
	display: block !important;
	flex: 0 0 100% !important;
	width: 100%;
	margin: 0 !important;
	padding: 0;
	font-size: 11px !important;
	font-weight: 500 !important;
	color: #6b7280 !important;
	text-decoration: none !important;
	letter-spacing: 0;
	line-height: 1.3;
	text-align: start;
}
.single-product .wd-single-price .price .bc-vat-incl *,
.single-product .wd-single-price .price .bc-vat-incl bdi,
.single-product .wd-single-price .price .bc-vat-incl span {
	color: #6b7280 !important;
	font-size: 11px !important;
	font-weight: 500 !important;
}

/* Sale flash badge — restyle WC's onsale label to BioCenter orange pill */
.single-product .product .onsale {
	background: var(--bc-orange);
	color: #fff;
	font-weight: 700;
	border-radius: 999px;
	padding: 4px 12px;
	border: none;
	box-shadow: var(--bc-shadow);
}

/* Buy Now (WoodMart native button) — give it the green pill style */
.single-product div.product form.cart .wd-buy-now-btn,
.single-product div.product form.cart .single_add_to_cart_button + .buy-now-button,
.single-product div.product form.cart .buy-now-button {
	background: var(--bc-green-dark);
	color: #fff;
	border-color: var(--bc-green-dark);
	font-weight: 700;
	border-radius: var(--bc-r-md);
	margin-top: 8px;
	width: 100%;
}
.single-product div.product form.cart .wd-buy-now-btn:hover,
.single-product div.product form.cart .buy-now-button:hover {
	background: var(--bc-green-mid);
	border-color: var(--bc-green-mid);
}

/* Trust chips strip — full row below summary actions */
.single-product div.product .bc-trust-chips {
	width: 100%;
	margin: 14px 0;
}

/* Hide the WoodMart additional-info table block (.wd-single-attrs) —
   variation swatches below already cover Size/Flavor; the table just
   duplicates them. */
.single-product .wd-single-attrs {
	display: none !important;
}

/* ── VAT-inclusive label (appended after price by woocommerce_get_price_html) ──
   Higher specificity + !important to override WoodMart's price color cascade. */
.single-product .price .bc-vat-incl,
.single-product p.price .bc-vat-incl,
.single-product .wd-single-price .price .bc-vat-incl {
	display: inline;
	margin-inline-start: 8px;
	color: var(--bc-text-muted) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 0;
	vertical-align: baseline;
	line-height: 1.4;
	white-space: nowrap;
	text-transform: none;
}
.single-product .price .bc-vat-incl .wp-block-wd-paragraph,
.single-product .price .bc-vat-incl * {
	color: inherit !important;
	font-size: inherit !important;
}

/* ── Cart form alignment — Add-to-Cart on the start edge (right in RTL),
   quantity stepper to its left, Buy Now full-width underneath.

   For variable products WooCommerce wraps the qty/buttons in
   .woocommerce-variation-add-to-cart. For simple products they sit
   directly in form.cart. Both layouts handled. ── */
.single-product .woocommerce-variation-add-to-cart,
.single-product form.cart:not(.variations_form) {
	display: grid !important;
	grid-template-columns: 1fr auto;
	grid-template-areas:
		"button qty"
		"buynow buynow";
	gap: 8px 10px;
	align-items: center;
	width: 100% !important;
	max-width: none !important;
}
/* Form + its WoodMart container must fill the column so Add-to-Cart row,
   Buy Now, and the WhatsApp button below all match width edge-to-edge. */
.single-product .wd-single-add-cart,
.single-product form.cart,
.single-product form.cart.variations_form,
.single-product .single_variation_wrap,
.single-product .woocommerce-variation-add-to-cart {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}
/* Hide stray empty notice paragraph + hidden inputs so they don't claim grid cells */
.single-product .woocommerce-variation-add-to-cart > .woope-variable-notice,
.single-product .woocommerce-variation-add-to-cart > input[type="hidden"],
.single-product form.cart:not(.variations_form) > input[type="hidden"] {
	display: none !important;
}
/* Cart row reads (matches target mock):
     [variations]
     [ qty ][ ──── Add to Cart ──── ]   ← row-reverse + source order qty,button
                                          places button at main-end which, after
                                          RTL writing-mode reversal, becomes the
                                          right edge — same visual as target.
     [ ───── Buy Now ────────────── ]   ← own full-width row beneath
   No `order` properties — flex-direction:row-reverse + source order is enough. */
/* Place each control into its grid cell. In RTL, grid-template-columns
   "1fr auto" auto-flips: 1fr (button) → RIGHT, auto (qty) → LEFT. ── */
.single-product .woocommerce-variation-add-to-cart > .single_add_to_cart_button,
.single-product .woocommerce-variation-add-to-cart > button.single_add_to_cart_button,
.single-product form.cart:not(.variations_form) > .single_add_to_cart_button,
.single-product form.cart:not(.variations_form) > button.single_add_to_cart_button {
	grid-area: button;
	width: 100%;
	max-width: none;
	margin: 0;
}
.single-product .woocommerce-variation-add-to-cart > .quantity,
.single-product form.cart:not(.variations_form) > .quantity {
	grid-area: qty;
	width: auto;
	margin: 0;
}
.single-product .woocommerce-variation-add-to-cart > .wd-buy-now-btn,
.single-product .woocommerce-variation-add-to-cart > #wd-add-to-cart,
.single-product .woocommerce-variation-add-to-cart > .buy-now-button,
.single-product form.cart:not(.variations_form) > .wd-buy-now-btn,
.single-product form.cart:not(.variations_form) > #wd-add-to-cart,
.single-product form.cart:not(.variations_form) > .buy-now-button {
	grid-area: buynow;
	width: 100%;
	max-width: none;
	margin: 0;
}

/* ── Unified action-button sizing ─────────────────────────────────────
   Add-to-Cart, Buy Now, and Ask on WhatsApp all share the same height,
   font size, padding, and border-radius for visual consistency. */
.single-product form.cart .single_add_to_cart_button,
.single-product form.cart .wd-buy-now-btn,
.single-product form.cart #wd-add-to-cart,
.single-product .bc-wa-btn {
	height: 48px !important;
	min-height: 48px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	padding: 0 20px !important;
	border-radius: 8px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
}
/* Quantity stepper — match button height so the row aligns cleanly */
.single-product form.cart .quantity {
	display: inline-flex !important;
	align-items: center;
	height: 48px;
	border-radius: 8px;
	overflow: hidden;
}
.single-product form.cart .quantity .qty,
.single-product form.cart .quantity input.qty {
	height: 48px;
	line-height: 48px;
	width: 44px;
	text-align: center;
	border: 1px solid var(--bc-border);
	background: #fff;
}
.single-product form.cart .quantity .minus,
.single-product form.cart .quantity .plus,
.single-product form.cart .quantity input.minus,
.single-product form.cart .quantity input.plus {
	height: 48px;
	width: 32px;
	border: 1px solid var(--bc-border);
	background: #fff;
	color: var(--bc-text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
}

/* Keep the column's natural row-gap (~20px) so title/price/BNPL/swatches
   stay properly spaced. Only the WhatsApp button needs to sit tight to
   Buy Now — pull it up so total gap = grid row-gap = 8px. */
.single-product form.cart {
	margin: 0 !important;
}
.single-product .bc-wa-btn {
	width: 100% !important;
	max-width: none !important;
	/* -12px absorbs the column's 20px row-gap so effective gap to Buy Now
	   above is 8px — same as the grid row-gap between Add-to-Cart and Buy Now. */
	margin: -12px 0 0 !important;
}

/* Hide WoodMart's action-button strip (compare/size-guide/wishlist row).
   The wishlist that lives here is moved to the gallery overlay by the JS
   in biocenter-product.php — wishlist still works, this row no longer
   contributes vertical space between Buy Now and WhatsApp.
   Both :has() (modern browsers) and an exact-ID fallback for safety. */
.single-product .wp-block-wd-container.wd-custom-width:has(.wd-single-action-btn),
.single-product .wp-block-wd-container:has(> .wd-single-compare-btn),
.single-product .wp-block-wd-container:has(> .wd-single-size-guide-btn),
.single-product #wd-c027b266,
.single-product .wd-single-compare-btn,
.single-product .wd-single-size-guide-btn {
	display: none !important;
}
/* Kill ALL margins/padding on the cart form + its WoodMart container so:
   (a) gap to WhatsApp below is just the 8px button margin, and
   (b) buttons reach the same start edge as the price card, label, and
       swatches above — no horizontal inset from #wd-d6cacb3f wrapper. */
.single-product .wd-single-add-cart,
.single-product [class*="wd-single-add-cart"],
.single-product #wd-d6cacb3f,
.single-product form.cart,
.single-product form.cart.variations_form,
.single-product .single_variation_wrap,
.single-product .single_variation,
.single-product .woocommerce-variation {
	padding: 0 !important;
	margin: 0 !important;
}
/* Empty notice paragraph from woope-style plugins — full-zero so it
   collapses to nothing instead of contributing 20px line-height. */
.single-product form.cart .woope-variable-notice,
.single-product form.cart p:empty {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ── Wishlist overlay on gallery image ───────────────────────────────── */
.single-product .bc-has-overlay {
	position: relative;
}
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay {
	position: absolute !important;
	top: 14px;
	/* Opposite corner from the -15% discount badge (badge sits at the
	   inline-end edge in WoodMart's product-labels, so we use start). */
	inset-inline-start: 14px;
	z-index: 5;
	background: #fff;
	border-radius: 50%;
	width: 44px;
	height: 44px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
	margin: 0;
	padding: 0;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
	background: #fff;
}
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay .wd-wishlist-btn {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
}
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--bc-text);
}
/* Hide the "Add to Wishlist" text label — overlay should only show the heart icon */
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay .wd-action-text {
	display: none !important;
}
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay .wd-action-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
}
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay .wd-check-icon,
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay i,
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay svg {
	font-size: 18px;
	color: var(--bc-text);
}
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay.added .wd-check-icon,
.single-product .wd-single-wishlist-btn.bc-wishlist-overlay .wd-wishlist-btn.added .wd-check-icon {
	color: var(--bc-orange);
}

/* ═══════════════════════════════════════════════════════════════════════
 * Product tabs (Description / Reviews / custom) — BioCenter target style.
 * Orange active tab + orange underline, grey inactive, full-width divider.
 * Targets WoodMart .wd-single-tabs > ul.wd-nav-tabs.wd-style-underline-reverse.
 * WoodMart draws the active underline on .nav-link-text::after and colors
 * the text via --nav-color* vars — both are overridden below.
 * ===================================================================== */
.single-product .wd-single-tabs {
	margin-top: 8px;
}
/* Thin full-width divider running under the whole tab row */
.single-product .wd-single-tabs .wd-nav-tabs-wrapper {
	border-bottom: 1px solid var(--bc-border);
	margin-bottom: 22px;
}
/* Tab row — even gap, strip stray borders/padding */
.single-product .wd-single-tabs ul.wd-nav-tabs {
	--nav-color: #4b5563;
	--nav-color-hover: var(--bc-orange);
	--nav-color-active: var(--bc-orange);
	gap: 0 30px;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	flex-wrap: wrap;
}
.single-product .wd-single-tabs ul.wd-nav-tabs > li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
/* Tab link — inactive grey, 15px medium */
.single-product .wd-single-tabs ul.wd-nav-tabs > li > a.wd-nav-link {
	padding: 12px 0 14px !important;
	color: #4b5563 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
.single-product .wd-single-tabs ul.wd-nav-tabs > li > a.wd-nav-link .nav-link-text {
	font-size: 15px;
	font-weight: 600;
	color: inherit !important;
}
/* Underline bar (WoodMart's .nav-link-text::after) — recolor + thin it.
   Only the active tab's bar is at width:100%; inactive stay collapsed. */
.single-product .wd-single-tabs ul.wd-nav-tabs > li > a.wd-nav-link .nav-link-text::after {
	height: 2px !important;
	background-color: var(--bc-orange) !important;
	border-radius: 2px;
}
/* Hover on an inactive tab → orange text */
.single-product .wd-single-tabs ul.wd-nav-tabs > li:not(.active) > a.wd-nav-link:hover .nav-link-text {
	color: var(--bc-orange) !important;
}
/* Active tab → orange text + (its underline already shows) */
.single-product .wd-single-tabs ul.wd-nav-tabs > li.active > a.wd-nav-link .nav-link-text,
.single-product .wd-single-tabs ul.wd-nav-tabs > li > a.wd-nav-link.wd-active .nav-link-text {
	color: var(--bc-orange) !important;
	font-weight: 700;
}

/* ── Tab panel content typography ───────────────────────────────────── */
.single-product .wd-single-tabs .woocommerce-Tabs-panel {
	font-size: 15px;
	line-height: 1.75;
	color: var(--bc-text-muted);
}
.single-product .wd-single-tabs .woocommerce-Tabs-panel > *:first-child {
	margin-top: 0;
}
/* Section headings ("About this Product", "Key Benefits") — bold + dark */
.single-product .wd-single-tabs .woocommerce-Tabs-panel h1,
.single-product .wd-single-tabs .woocommerce-Tabs-panel h2,
.single-product .wd-single-tabs .woocommerce-Tabs-panel h3,
.single-product .wd-single-tabs .woocommerce-Tabs-panel h4 {
	color: var(--bc-text);
	font-weight: 700;
	line-height: 1.4;
	margin: 22px 0 10px;
}
.single-product .wd-single-tabs .woocommerce-Tabs-panel h2 { font-size: 17px; }
.single-product .wd-single-tabs .woocommerce-Tabs-panel h3,
.single-product .wd-single-tabs .woocommerce-Tabs-panel h4 { font-size: 15px; }
/* Body paragraphs — muted grey */
.single-product .wd-single-tabs .woocommerce-Tabs-panel p {
	color: var(--bc-text-muted);
	margin: 0 0 14px;
}
/* Lists — disc bullets, comfortable spacing (RTL-aware indent) */
.single-product .wd-single-tabs .woocommerce-Tabs-panel ul,
.single-product .wd-single-tabs .woocommerce-Tabs-panel ol {
	margin: 0 0 16px;
	padding-inline-start: 20px;
}
.single-product .wd-single-tabs .woocommerce-Tabs-panel ul {
	list-style: disc;
}
.single-product .wd-single-tabs .woocommerce-Tabs-panel ol {
	list-style: decimal;
}
.single-product .wd-single-tabs .woocommerce-Tabs-panel li {
	color: var(--bc-text-muted);
	margin: 0 0 8px;
	padding-inline-start: 4px;
}
.single-product .wd-single-tabs .woocommerce-Tabs-panel li::marker {
	color: #9ca3af;
}

/* ═══════════════════════════════════════════════════════════════════════
 * Reviews tab — BioCenter target style.
 * Scoped to .wd-single-reviews (the reviews tab panel).
 *   • Summary: big average · gold stars · "N reviews" + breakdown bars
 *     (5★ gold / 4★ orange / 3★↓ grey) coloured by data-rating (:has()).
 *   • Cards: bordered rounded · circular Gravatar · name/date · right stars
 *     · muted text · green "Verified" badge bottom-start.
 * All WoodMart markup — pure CSS, no template/PHP changes.
 * ===================================================================== */

/* ── Gold review stars (filled = amber, empty = light grey) ──────────── */
.single-product .wd-single-reviews .star-rating::before {
	color: #d9d9d9;
}
.single-product .wd-single-reviews .star-rating span::before {
	color: #f5a623;
}

/* Hide WC's verbose reviews title ("مراجعة واحدة لـ …") — the tab already
   says "مراجعات (N)", matching the target which has no separate heading. */
.single-product .wd-single-reviews .woocommerce-Reviews-title {
	display: none !important;
}

/* ── Rating summary block ────────────────────────────────────────────── */
.single-product .wd-single-reviews .wd-rating-summary-wrap {
	margin: 0 0 26px;
}
.single-product .wd-single-reviews .wd-rating-summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 40px;
	/* Keep the average + bars a compact cluster instead of stretching the
	   full panel width (sits at the start edge — right in RTL). */
	max-width: 640px;
	margin: 0;
	padding: 0;
	border: 0;
}
.single-product .wd-single-reviews .wd-rating-summary-heading {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	flex: 0 0 auto;
	min-width: 92px;
}
.single-product .wd-single-reviews .wd-rating-summary-main {
	font-size: 54px;
	font-weight: 800;
	line-height: 1;
	color: var(--bc-text);
}
.single-product .wd-single-reviews .wd-rating-summary-heading .star-rating {
	margin: 8px 0 6px;
	font-size: 15px;
}
.single-product .wd-single-reviews .wd-rating-summary-total {
	font-size: 13px;
	color: var(--bc-text-muted);
}
/* breakdown column */
.single-product .wd-single-reviews .wd-rating-summary-cont {
	flex: 1 1 320px;
	min-width: 240px;
	display: flex;
	flex-direction: column;
	gap: 9px;
}
.single-product .wd-single-reviews .wd-rating-summary-item {
	display: flex;
	align-items: center;
	gap: 12px;
}
/* row label → render "5★" from data-rating, hide the inline star widget */
.single-product .wd-single-reviews .wd-rating-label {
	flex: 0 0 auto;
	min-width: 26px;
	font-size: 0;
}
.single-product .wd-single-reviews .wd-rating-label::before {
	content: attr(data-rating) "\2605";
	font-size: 13px;
	color: var(--bc-text-muted);
	white-space: nowrap;
}
.single-product .wd-single-reviews .wd-rating-label .star-rating {
	display: none;
}
/* track + fill */
.single-product .wd-single-reviews .wd-rating-progress-bar {
	flex: 1 1 auto;
}
.single-product .wd-single-reviews .wd-rating-progress-bar .progress-area {
	width: 100%;
	height: 6px;
	background: #ededed;
	border-radius: 999px;
	overflow: hidden;
}
.single-product .wd-single-reviews .wd-rating-progress-bar .progress-bar {
	height: 100%;
	border-radius: 999px;
	background: var(--bc-orange);
	transition: width 0.4s ease;
}
/* per-row colours, order-independent via the row's data-rating */
.single-product .wd-single-reviews .wd-rating-summary-item:has([data-rating="5"]) .progress-bar {
	background: var(--bc-yellow);
}
.single-product .wd-single-reviews .wd-rating-summary-item:has([data-rating="4"]) .progress-bar {
	background: var(--bc-orange);
}
.single-product .wd-single-reviews .wd-rating-summary-item:has([data-rating="3"]) .progress-bar,
.single-product .wd-single-reviews .wd-rating-summary-item:has([data-rating="2"]) .progress-bar,
.single-product .wd-single-reviews .wd-rating-summary-item:has([data-rating="1"]) .progress-bar {
	background: #c4c7cc;
}
/* count/percentage label at row end */
.single-product .wd-single-reviews .wd-rating-count {
	flex: 0 0 auto;
	min-width: 36px;
	font-size: 12px;
	color: var(--bc-text-muted);
	text-align: end;
}
.single-product .wd-single-reviews .wd-rating-count .star-rating {
	display: none;
}

/* ── Review cards ────────────────────────────────────────────────────── */
.single-product .wd-single-reviews ol.commentlist {
	margin: 0 !important;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 16px;
	/* WoodMart's review-style-1 clips 17px off the bottom (clip-path) to hide
	   its divider on the last row — that ate our card's bottom border + the
	   verified badge. Disable it; our cards are self-contained boxes. */
	clip-path: none !important;
}
.single-product .wd-single-reviews ol.commentlist li.review,
.single-product .wd-single-reviews ol.commentlist li.comment {
	position: relative;
	overflow: visible !important;   /* WoodMart's .wd-col clips the badge otherwise */
	list-style: none;
	margin: 0;
	padding: 16px 20px 40px;
	border: 1px solid var(--bc-border);
	border-radius: var(--bc-r-md);
	background: #fff;
}
/* Avatar + a width-capped content block, grouped at the start edge so short
   reviews don't sprawl across the full card width. */
.single-product .wd-single-reviews .comment_container {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 0 !important;   /* WoodMart adds 15px 0 here, inflating card height */
	overflow: visible;
}
/* circular Gravatar */
.single-product .wd-single-reviews .comment_container img.avatar {
	flex: 0 0 auto;
	float: none !important;
	width: 46px !important;
	height: 46px !important;
	border-radius: 50%;
	object-fit: cover;
	margin: 0;
	padding: 0;
	border: 0;
}
.single-product .wd-single-reviews .comment-text {
	flex: 1 1 auto;
	max-width: 680px;   /* keeps name⋯stars from flying to opposite page edges */
	margin: 0;
	padding: 0;
	border: 0;
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-areas:
		"meta  stars"
		"desc  desc";
	gap: 2px 12px;
	align-items: start;
}
.single-product .wd-single-reviews .comment-text > .star-rating {
	grid-area: stars;
	font-size: 13px;
	margin: 2px 0 0;
}
.single-product .wd-single-reviews .comment-text > .meta {
	grid-area: meta;
	margin: 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--bc-text-muted);
}
.single-product .wd-single-reviews .woocommerce-review__author {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: var(--bc-text);
}
.single-product .wd-single-reviews .woocommerce-review__dash {
	display: none;
}
.single-product .wd-single-reviews .woocommerce-review__published-date {
	display: block;
	font-size: 12px;
	color: var(--bc-text-muted);
	margin-top: 2px;
}
.single-product .wd-single-reviews .comment-text > .description,
.single-product .wd-single-reviews .comment-text > .description p {
	grid-area: desc;
	color: var(--bc-text-muted);
	font-size: 14px;
	line-height: 1.7;
	margin: 10px 0 0;
}

/* ── Verified badge → single green "✓ عميل موثّق" pinned bottom-start ────
   Two indicators exist in the markup: WoodMart's .wd-review-icon (English
   "Verified owner", injected inside the author <strong>) AND WooCommerce's
   localised .woocommerce-review__verified em ("عميل موثّق"). Hide the WoodMart
   one; turn WC's Arabic em into the green badge so there's exactly one. */
.single-product .wd-single-reviews .wd-review-icon {
	display: none !important;
}
.single-product .wd-single-reviews .woocommerce-review__verified {
	position: absolute;
	bottom: 14px;
	inset-inline-start: 80px;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin: 0;
	font-style: normal;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	color: var(--bc-success);
}
.single-product .wd-single-reviews .woocommerce-review__verified::before {
	content: "\2713";
	font-weight: 700;
	color: var(--bc-success);
}

/* ── Review form heading / fields keep BioCenter accents ─────────────── */
.single-product .wd-single-reviews #respond input[type="submit"],
.single-product .wd-single-reviews #respond button[type="submit"] {
	background: var(--bc-orange) !important;
	border-color: var(--bc-orange) !important;
	color: #fff !important;
	border-radius: var(--bc-r-md);
	font-weight: 700;
}
.single-product .wd-single-reviews #respond input[type="submit"]:hover,
.single-product .wd-single-reviews #respond button[type="submit"]:hover {
	background: var(--bc-green-dark) !important;
	border-color: var(--bc-green-dark) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
 * Related products carousel cards — BioCenter target style.
 * The cards are a WoodMart loop-builder template (wd-bc-* classes). The
 * add-to-cart "+"/stepper/OOS control is the dm-cart-stepper plugin (its
 * own CSS) — left untouched here. We only style the card shell: cream image
 * area, orange brand, bold title, dark price, pill labels, border + hover.
 * ===================================================================== */
/* Section panel — warm cream background behind the heading + cards. The
   whole related section is the .wd-products-element wrapper; its first child
   is the heading, so one bg covers everything (target's peach panel). */
.single-product .wd-products-element {
	background: var(--bc-bg-warm);
	border-radius: var(--bc-r-lg);
	padding: 30px 28px 38px;
	margin-top: 24px;
}
/* Heading → bold dark + injected "YOU MAY ALSO LIKE" eyebrow above it */
.single-product .wd-products-element > h2.wp-block-wd-title.title {
	color: var(--bc-text) !important;
	font-size: 30px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 18px;
}
.single-product .wd-products-element > h2.wp-block-wd-title.title::before {
	content: "YOU MAY ALSO LIKE";
	display: block;
	color: var(--bc-orange);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	margin-bottom: 6px;
}

.single-product .wd-products .wd-product {
	background: #fff;
	border: 1px solid var(--bc-border);
	border-radius: var(--bc-r-lg);
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.single-product .wd-products .wd-product:hover {
	box-shadow: var(--bc-shadow);
	transform: translateY(-2px);
}
.single-product .wd-products .wd-product .wd-product-wrapper {
	height: 100%;
	display: flex;
	flex-direction: column;
}
/* Footer content padding */
.single-product .wd-products .wd-bc-content {
	padding: 14px 16px 16px;
}
/* Brand — small orange uppercase */
.single-product .wd-products .wd-bc-brand,
.single-product .wd-products .wd-bc-brand a {
	color: var(--bc-orange) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	margin-bottom: 4px;
}
/* Title — bold dark */
.single-product .wd-products .wd-bc-title,
.single-product .wd-products .wd-bc-title a {
	color: var(--bc-text) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.4;
}
/* Price — bold dark (target shows dark price, not the theme orange) */
.single-product .wd-products .wd-loop-prod-price .price,
.single-product .wd-products .wd-loop-prod-price .price > .amount,
.single-product .wd-products .wd-loop-prod-price .price ins .amount {
	color: var(--bc-text) !important;
	font-weight: 800 !important;
	font-size: 17px;
}
.single-product .wd-products .wd-loop-prod-price del,
.single-product .wd-products .wd-loop-prod-price del .amount {
	color: var(--bc-text-muted) !important;
	font-weight: 500 !important;
	font-size: 13px;
}
/* Labels (sale / out-of-stock / new) → BioCenter pills */
.single-product .wd-products .product-labels .product-label {
	border-radius: 999px !important;
	padding: 3px 10px !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	line-height: 1.5;
	box-shadow: var(--bc-shadow);
}
.single-product .wd-products .product-labels .onsale {
	background: var(--bc-orange) !important;
	color: #fff !important;
}
.single-product .wd-products .product-labels .out-of-stock {
	background: #6b7280 !important;
	color: #fff !important;
}
.single-product .wd-products .product-labels .new,
.single-product .wd-products .product-labels .featured {
	background: var(--bc-success) !important;
	color: #fff !important;
}
