/**
 * Lubiwood — product page UX (purchase row, reviews, FAQ).
 * Shared design tokens + components scoped to body.lubiwood-product-page.
 */

/* ── Design tokens ─────────────────────────────────────────────────────────── */
body.lubiwood-product-page {
	--lwd-green: var(--wd-primary-color, #3d6b47);
	--lwd-green-dark: color-mix(in srgb, var(--lwd-green) 88%, #000);
	--lwd-green-soft: color-mix(in srgb, var(--lwd-green) 12%, #fff);
	--lwd-green-line: color-mix(in srgb, var(--lwd-green) 38%, #fff);
	--lwd-brd: var(--brdcolor-gray-300, #e3e6e4);
	--lwd-radius: 12px;
	--lwd-radius-sm: 10px;
	--lwd-btn-height: 48px;
	--lwd-text: var(--color-gray-900, #1f2421);
	--lwd-text-muted: var(--color-gray-700, #3a3f3c);
	--lwd-shadow: 0 1px 3px rgba(15, 23, 18, 0.05);
}

/* ── Primary buttons (add to cart, sticky CTA) ─────────────────────────────── */
body.lubiwood-product-page .product-image-summary button.single_add_to_cart_button,
body.lubiwood-product-page .wd-sticky-btn .single_add_to_cart_button,
body.lubiwood-product-page .wd-sticky-btn .wd-sticky-add-to-cart {
	min-height: var(--lwd-btn-height) !important;
	padding: 12px 20px !important;
	border: none !important;
	border-radius: var(--lwd-radius) !important;
	background: var(--lwd-green) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: 0.01em;
	box-shadow: none !important;
	transition: background 0.2s ease, opacity 0.2s ease;
}

body.lubiwood-product-page .product-image-summary button.single_add_to_cart_button:hover:not(:disabled),
body.lubiwood-product-page .wd-sticky-btn .single_add_to_cart_button:hover,
body.lubiwood-product-page .wd-sticky-btn .wd-sticky-add-to-cart:hover {
	background: var(--lwd-green-dark) !important;
	color: #fff !important;
}

body.lubiwood-product-page .product-image-summary button.single_add_to_cart_button.disabled,
body.lubiwood-product-page .product-image-summary button.single_add_to_cart_button.wc-variation-selection-needed,
body.lubiwood-product-page .product-image-summary button.single_add_to_cart_button.wc-variation-is-unavailable {
	background: color-mix(in srgb, var(--lwd-green) 55%, #fff) !important;
	color: #fff !important;
	opacity: 1 !important;
	cursor: not-allowed;
}

/* Sticky bar: match button shape on mobile (WoodMart defaults to square) */
body.lubiwood-product-page.wd-sticky-btn-on-mb .wd-sticky-btn {
	padding: 8px 12px;
	background: #fff;
	box-shadow: 0 -2px 12px rgba(15, 23, 18, 0.08);
}

body.lubiwood-product-page.wd-sticky-btn-on-mb .wd-sticky-btn .wd-sticky-btn-cart {
	margin-inline: 0;
}

body.lubiwood-product-page.wd-sticky-btn-on-mb .wd-sticky-btn .wd-sticky-add-to-cart {
	width: 100%;
	border-radius: var(--lwd-radius) !important;
}

/* ── Info surfaces (delivery, watching) ────────────────────────────────────── */
body.lubiwood-product-page .product-image-summary .wd-product-info.wd-est-del,
body.lubiwood-product-page .product-image-summary .wd-product-info.wd-visits-count {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
	padding: 11px 16px;
	border: 1.5px solid var(--lwd-green-line);
	border-radius: var(--lwd-radius);
	background: var(--lwd-green-soft);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--lwd-text-muted);
	box-shadow: none;
}

body.lubiwood-product-page .product-image-summary .wd-product-info.wd-visits-count::before,
body.lubiwood-product-page .product-image-summary .wd-product-info.wd-est-del::before {
	display: none;
}

body.lubiwood-product-page .product-image-summary .wd-product-info .wd-info-icon {
	flex-shrink: 0;
	font-size: 1.35rem;
	color: var(--lwd-green);
	line-height: 1;
	margin-inline-end: 0;
	/* Base nudge tuned for the delivery (truck) glyph, which sits a touch low in
	   its box; lift it so it reads centred against the (often 2-line) label. The
	   eye glyph has different metrics and is re-tuned in its own rule below. */
	display: inline-flex;
	align-items: center;
	position: relative;
	top: -0.06em;
}

/* Watching-now eye (\f11a) renders HIGH in its box — the shared lift above makes
   it sit clearly above the count/label. Push it down to optically centre the eye
   with the number and the 2-line "People watching…" text. */
body.lubiwood-product-page .product-image-summary .wd-product-info.wd-visits-count .wd-info-icon {
	top: 0.12em;
}

body.lubiwood-product-page .product-image-summary .wd-product-info .wd-info-number {
	font-weight: 700;
	color: var(--lwd-text);
	margin-inline-end: 4px;
}

body.lubiwood-product-page .product-image-summary .wd-product-info .wd-info-msg,
body.lubiwood-product-page .product-image-summary .wd-product-info.wd-est-del strong {
	font-weight: 600;
	color: var(--lwd-text);
}

/* Long localized delivery dates (e.g. HU "27. június – 12. július") wrap to two
   lines in the narrow summary column. Balance the lines so no single word is
   orphaned on the last line, and keep them tight. */
body.lubiwood-product-page .product-image-summary .wd-product-info.wd-est-del .wd-info-msg {
	text-wrap: balance;
	line-height: 1.3;
}

/* ── Text action links (compare, size guide) ──────────────────────────────── */
body.lubiwood-product-page .product-image-summary .wd-action-btn.wd-style-text,
body.lubiwood-product-page .product-image-summary a.wd-open-size-guide {
	color: var(--lwd-text-muted) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	transition: color 0.15s ease;
}

body.lubiwood-product-page .product-image-summary .wd-action-btn.wd-style-text:hover,
body.lubiwood-product-page .product-image-summary a.wd-open-size-guide:hover {
	color: var(--lwd-green) !important;
}

/* ── Size guide: promote to a prominent outlined pill ─────────────────────────
 * The shared text-action-link rule above renders both Compare and Size guide as
 * a small muted 14px link. Compare is disabled in WoodMart, and on these puzzles
 * the size guide is a key pre-purchase aid, so give it real weight: an outlined
 * brand-green pill that fills on hover. Overrides the rule above for the size-
 * guide button only. */
body.lubiwood-product-page .product-image-summary .wd-sizeguide-btn.wd-action-btn > a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 11px 24px;
	border: 2px solid var(--lwd-green);
	border-radius: 999px;
	background: transparent;
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
body.lubiwood-product-page .product-image-summary .wd-sizeguide-btn.wd-action-btn .wd-action-text {
	color: var(--lwd-green) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	letter-spacing: 0.2px;
}
body.lubiwood-product-page .product-image-summary .wd-sizeguide-btn.wd-action-btn .wd-action-icon::before {
	color: var(--lwd-green) !important;
	font-size: 1.2em !important;
}
body.lubiwood-product-page .product-image-summary .wd-sizeguide-btn.wd-action-btn > a:hover {
	background: var(--lwd-green);
	box-shadow: 0 6px 16px color-mix(in srgb, var(--lwd-green) 35%, transparent);
	transform: translateY(-1px);
}
body.lubiwood-product-page .product-image-summary .wd-sizeguide-btn.wd-action-btn > a:hover .wd-action-text,
body.lubiwood-product-page .product-image-summary .wd-sizeguide-btn.wd-action-btn > a:hover .wd-action-icon::before {
	color: #fff !important;
}

/* ── Short description: larger, more readable body copy ───────────────────────
 * WoodMart leaves the short description at the inherited base size (~15px),
 * which reads small/cramped under the title. Bump it for readability. The class
 * is shared by the classic summary and the Elementor "Product short description"
 * widget, so Elementor-built product pages are covered too; nested strong/em
 * scale along with it. */
body.lubiwood-product-page .woocommerce-product-details__short-description {
	font-size: 16px;
	line-height: 1.65;
}

/* ── Form controls (quantity stepper) ──────────────────────────────────────── */
body.lubiwood-product-page .product-image-summary div.quantity {
	min-height: var(--lwd-btn-height);
	border: 1px solid var(--lwd-brd) !important;
	border-radius: var(--lwd-radius) !important;
	background: #fff;
	/* Clip the inner cells to the rounded corners so the −/+ cells never poke
	   past the pill (their square corners otherwise show at the four corners). */
	overflow: hidden;
}

/* WoodMart renders the steppers as <button class="minus btn"> / <button class="plus btn">
   (NOT <input type="button">), and its .btn default paints a 2px square-cornered border.
   Target the .minus/.plus classes (element-agnostic) so we strip that border — otherwise
   the thick square border gets sliced by the container's overflow:hidden and reads as
   "cut off" corners. Cell dividers come from the number input's side borders below. */
body.lubiwood-product-page .product-image-summary div.quantity .minus,
body.lubiwood-product-page .product-image-summary div.quantity .plus {
	min-width: 42px;
	width: 42px;
	background: #fff !important;
	color: var(--lwd-text) !important;
	font-weight: 600;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.lubiwood-product-page .product-image-summary div.quantity input[type="number"],
body.lubiwood-product-page .product-image-summary div.quantity input[type="text"] {
	font-size: 15px;
	font-weight: 700;
	color: var(--lwd-text);
	border: none !important;
	border-left: 1px solid var(--lwd-brd) !important;
	border-right: 1px solid var(--lwd-brd) !important;
	border-radius: 0 !important;
}

/* Collapse the oversized gap between the size swatches and the delivery box.
   WoodMart spaces the variations table and .single_variation_wrap with
   --wd-var-table-mb (a large value), leaving a big void above the
   "Várható szállítási" box. Shrink it for the chooser layout only. */
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active {
	--wd-var-table-mb: 8px;
}

/* Only the main product form — never sticky bar, loops, or related products */
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .single_variation_wrap {
	margin-top: 4px;
	padding-top: 0;
	border-top: none;
}

/* Hide per-variation stock count (e.g. "34 in stock") — redundant on chooser pages */
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .woocommerce-variation-availability,
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .single_variation_wrap p.stock {
	display: none !important;
}

/* "You chose …" confirmation — disabled for now */
body.lubiwood-product-page .product-image-summary .lubiwood-chooser-confirm {
	display: none !important;
}

/* Quantity + Add to cart on one row; payment (G Pay) full width below.
   WoodMart puts Stripe wrapper + hidden inputs inside the same container. */
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .woocommerce-variation-add-to-cart {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 8px;
	width: 100%;
	margin-bottom: 0;
	position: relative;
	align-items: stretch;
}

body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .woocommerce-variation-add-to-cart > input[type="hidden"],
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .woocommerce-variation-add-to-cart > input.variation_id {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
	overflow: hidden;
}

body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .woocommerce-variation-add-to-cart div.quantity {
	grid-column: 1;
	grid-row: 1;
}

body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .woocommerce-variation-add-to-cart button.single_add_to_cart_button {
	grid-column: 2;
	grid-row: 1;
}

body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .woocommerce-variation-add-to-cart .fkwcs_stripe_smart_button_wrapper,
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .woocommerce-variation-add-to-cart > :not(.quantity):not(.single_add_to_cart_button):not(input) {
	grid-column: 1 / -1;
	width: 100%;
	margin: 0;
}

body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active div.quantity {
	display: inline-flex !important;
	flex: 0 0 auto;
	align-items: stretch;
	margin: 0 !important;
	overflow: hidden;
}

/* Narrower stepper than the base rule above — frees horizontal room in the
   qty + Add-to-cart row, which is tight when the price is a long localized
   amount (e.g. HU HUF "19 100,00 Ft"). */
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active div.quantity .minus,
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active div.quantity .plus {
	width: 28px !important;
	min-width: 28px !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active div.quantity input[type="number"],
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active div.quantity input[type="text"] {
	width: 30px !important;
	min-width: 30px;
	max-width: 30px;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-left: 1px solid var(--lwd-brd) !important;
	border-right: 1px solid var(--lwd-brd) !important;
	border-radius: 0 !important;
	text-align: center;
	box-shadow: none !important;
	-moz-appearance: textfield;
}

body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active div.quantity input[type="number"]::-webkit-outer-spin-button,
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active div.quantity input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active button.single_add_to_cart_button {
	width: 100%;
	min-width: 0;
	margin: 0 !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active button.single_add_to_cart_button.wc-variation-selection-needed,
body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active button.single_add_to_cart_button.wc-variation-is-unavailable {
	white-space: normal;
	font-size: 12px;
	line-height: 1.25;
	padding-top: 8px;
	padding-bottom: 8px;
}

/* Hide Woodmart “Buy now” on chooser product pages */
body.lubiwood-swatch-chooser-page .wd-buy-now-btn,
body.lubiwood-swatch-chooser-page .wd-sticky-btn .wd-buy-now-btn {
	display: none !important;
}

/* Sticky bar layout */
body.lubiwood-product-page .wd-sticky-btn-container {
	align-items: center;
}

body.lubiwood-product-page .wd-sticky-btn-cart {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 12px;
}

/* Hide the price in the sticky bar (WoodMart already hides it on mobile).
   NOTE: do NOT `display: none` the whole .price span. WoodMart's *own* mobile CSS
   sets `.wd-sticky-btn-cart .price { display:none }`, and on translated (e.g. HU)
   pages WoodMart's variation JS relocates the CTA button to be a *child* of .price.
   So on mobile the relocated button gets hidden along with the price and the whole
   sticky bar collapses (≈16px, no visible CTA) — while EN keeps the button as a
   sibling and renders fine. Use `display: contents` so .price generates no box of
   its own: its monetary children stay hidden via the rules below, but a relocated
   button rejoins the .wd-sticky-btn-cart flex row as the full-width CTA, matching
   EN. Language-neutral — fixes every translated variant. */
body.lubiwood-product-page .wd-sticky-btn .wd-sticky-btn-cart .price {
	display: contents !important;
}

body.lubiwood-product-page .wd-sticky-btn .wd-sticky-btn-cart .price > .woocommerce-Price-amount,
body.lubiwood-product-page .wd-sticky-btn .wd-sticky-btn-cart .price > span[aria-hidden="true"],
body.lubiwood-product-page .wd-sticky-btn .wd-sticky-btn-cart .price > .screen-reader-text,
body.lubiwood-product-page .wd-sticky-btn .wd-sticky-btn-cart .price > del,
body.lubiwood-product-page .wd-sticky-btn .wd-sticky-btn-cart .price > ins {
	display: none !important;
}

/* Hide the compare/action icon that hangs off the CTA in the sticky bar. */
body.lubiwood-product-page .wd-sticky-btn .wd-sticky-btn-cart .wd-action-btn {
	display: none !important;
}

body.lubiwood-product-page .wd-sticky-add-to-cart {
	flex-shrink: 0;
	white-space: nowrap;
}

@media (max-width: 767px) {
	body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active .woocommerce-variation-add-to-cart {
		gap: 8px;
	}

	body.lubiwood-product-page .product-image-summary .variations_form.lubiwood-chooser-active button.single_add_to_cart_button {
		font-size: 14px;
		padding-left: 12px;
		padding-right: 12px;
	}
}

/* ────────────────────────────────────────────────────────────────────────────
   REVIEWS — Trustpilot-style summary card + modern review cards.
   Scoped to single product pages; only restyles existing markup (no template
   overrides). Works with both WoodMart's built-in summary (.wd-rating-summary)
   and CusRev's optional summary (.cr-summaryBox-wrap), and with CusRev's
   per-review modern template (.cr-comment-text / .crstar-rating-svg).
   ──────────────────────────────────────────────────────────────────────────── */

/* Shared tokens (scoped — same values brand-green elsewhere in the file). */
body.lubiwood-product-page #reviews {
	--lwd-green-strong: var(--lwd-green-dark);
	--lwd-card-bg: #fff;
	--lwd-card-brd: var(--lwd-brd);
	--lwd-card-shadow: var(--lwd-shadow);
	--lwd-text-strong: var(--lwd-text);
	--lwd-text-muted: var(--color-gray-500, #6b726e);
}

/* ── Section layout: stack summary → heading → cards (full width) ────────────
 * WoodMart's `.wd-layout-two-column` puts the summary and #comments side-by-side
 * at ~50% each, which crushes our 3-col card grid into unreadable slivers. */
body.lubiwood-product-page .wd-single-reviews.wd-layout-two-column .woocommerce-Reviews,
body.lubiwood-product-page #reviews.woocommerce-Reviews {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	row-gap: 0;
	margin-inline: 0;
}

body.lubiwood-product-page .wd-single-reviews.wd-layout-two-column .woocommerce-Reviews > :is(div, p),
body.lubiwood-product-page #reviews.woocommerce-Reviews > :is(div, p) {
	flex: 1 1 100% !important;
	max-width: 100% !important;
	width: 100% !important;
	padding-inline: 0;
	order: unset;
}

body.lubiwood-product-page #reviews .wd-rating-summary-wrap {
	order: 1;
	margin-bottom: 28px;
}

body.lubiwood-product-page #reviews #comments {
	order: 2;
	width: 100%;
}

body.lubiwood-product-page #reviews #review_form_wrapper {
	order: 3;
	width: 100%;
	margin-top: 32px;
}

body.lubiwood-product-page #reviews .wd-reviews-content {
	width: 100%;
}

/* Re-skin all WoodMart icon-font stars inside the reviews tab to brand green.
   Used by the WoodMart summary block (.wd-rating-summary). */
body.lubiwood-product-page #reviews .star-rating {
	color: var(--lwd-green);
	letter-spacing: 3px;
}

body.lubiwood-product-page #reviews .star-rating:before {
	color: color-mix(in srgb, var(--lwd-green) 18%, #e8ece9);
}

/* ── Heading row ───────────────────────────────────────────────────────────── */
body.lubiwood-product-page #reviews h2.woocommerce-Reviews-title {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--lwd-text-strong);
	margin: 0;
}

body.lubiwood-product-page #reviews h2.woocommerce-Reviews-title span {
	color: inherit;
	font-weight: inherit;
}

body.lubiwood-product-page #reviews .wd-reviews-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 20px;
	margin-bottom: 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--lwd-card-brd);
}

body.lubiwood-product-page #reviews .wd-reviews-tools {
	flex: 1 1 auto;
	min-width: 0;
}

body.lubiwood-product-page #reviews .wd-reviews-filters {
	flex: 0 0 auto;
	margin: 0;
}

body.lubiwood-product-page #reviews .wd-reviews-sorting-select {
	min-height: 40px;
	padding: 6px 36px 6px 16px;
	border: 1px solid var(--lwd-card-brd);
	border-radius: 999px;
	background-color: #fff;
	font-size: 14px;
	font-weight: 500;
	color: var(--lwd-text-strong);
	box-shadow: none;
}

body.lubiwood-product-page #reviews .wd-reviews-sorting-clear {
	font-size: 14px;
	color: var(--lwd-green);
}

/* ── Summary card (WoodMart Rating_Summary block) ──────────────────────────── */
body.lubiwood-product-page #reviews .wd-rating-summary-wrap {
	margin-bottom: 0;
}

body.lubiwood-product-page #reviews .wd-rating-summary {
	display: grid;
	grid-template-columns: minmax(180px, 220px) minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 32px;
	row-gap: 20px;
	padding: 28px 32px;
	background: var(--lwd-card-bg);
	border: 1px solid var(--lwd-card-brd);
	border-radius: var(--lwd-radius);
	box-shadow: var(--lwd-card-shadow);
}

body.lubiwood-product-page #reviews .wd-rating-summary-heading {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding-inline-end: 24px;
	border-inline-end: 1px solid var(--lwd-card-brd);
}

body.lubiwood-product-page #reviews .wd-rating-summary-main {
	font-size: clamp(2.5rem, 1.5rem + 2vw, 3.5rem);
	font-weight: 700;
	line-height: 1;
	color: var(--lwd-text-strong);
	margin: 0;
}

body.lubiwood-product-page #reviews .wd-rating-summary-heading .star-rating {
	font-size: 18px;
}

body.lubiwood-product-page #reviews .wd-rating-summary-total {
	font-size: 13px;
	font-weight: 500;
	color: var(--lwd-text-muted);
}

/* Histogram column */
body.lubiwood-product-page #reviews .wd-rating-summary-cont {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	border-spacing: 0;
	max-width: 480px;
	width: 100%;
	justify-self: center;
}

body.lubiwood-product-page #reviews .wd-rating-summary-item {
	display: grid;
	grid-template-columns: minmax(64px, auto) 1fr auto;
	align-items: center;
	gap: 12px;
	padding: 4px 0;
	white-space: nowrap;
	transition: opacity .2s ease;
}

body.lubiwood-product-page #reviews .wd-rating-summary-item > div {
	display: block;
	padding: 0;
}

body.lubiwood-product-page #reviews .wd-rating-summary-item .wd-rating-label .star-rating {
	font-size: 14px;
}

body.lubiwood-product-page #reviews .wd-rating-summary-item .wd-rating-progress-bar,
body.lubiwood-product-page #reviews .wd-rating-summary-item .wd-progress-bar {
	width: 100%;
	margin: 0;
}

body.lubiwood-product-page #reviews .wd-rating-summary-item .progress-area {
	height: 10px;
	background: color-mix(in srgb, var(--lwd-green) 6%, #eef2ef);
	border-radius: 999px;
	overflow: hidden;
}

body.lubiwood-product-page #reviews .wd-rating-summary-item .progress-bar {
	height: 100%;
	background: var(--lwd-green);
	border-radius: 999px;
	transition: width .4s ease;
}

body.lubiwood-product-page #reviews .wd-rating-summary-item .wd-rating-count {
	min-width: 32px;
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--lwd-text-muted);
	text-align: end;
}

body.lubiwood-product-page #reviews .wd-rating-summary-item.wd-empty {
	opacity: .55;
}

/* Clickable filter rows: hover/active emphasis in brand green. */
body.lubiwood-product-page #reviews .wd-rating-summary.wd-with-filter .wd-rating-summary-item:not(.wd-empty):hover .progress-area,
body.lubiwood-product-page #reviews .wd-rating-summary.wd-with-filter .wd-rating-summary-item:not(.wd-empty).wd-active .progress-area {
	background: color-mix(in srgb, var(--lwd-green) 14%, #eef2ef);
}

body.lubiwood-product-page #reviews .wd-rating-summary.wd-with-filter .wd-rating-summary-item:not(.wd-empty).wd-active .wd-rating-count {
	color: var(--lwd-text-strong);
}

/* "Add a review" CTA injected via woodmart_after_rating_summary_content hook. */
body.lubiwood-product-page #reviews .lubiwood-reviews-add-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 28px;
	background: var(--lwd-green);
	color: #fff !important;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	border: 0;
	border-radius: 999px;
	box-shadow: 0 4px 12px color-mix(in srgb, var(--lwd-green) 30%, transparent);
	transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
	white-space: nowrap;
}

body.lubiwood-product-page #reviews .lubiwood-reviews-add-cta:hover,
body.lubiwood-product-page #reviews .lubiwood-reviews-add-cta:focus-visible {
	background: var(--lwd-green-strong);
	transform: translateY(-1px);
	box-shadow: 0 6px 16px color-mix(in srgb, var(--lwd-green) 38%, transparent);
	outline: none;
}

@media (max-width: 900px) {
	body.lubiwood-product-page #reviews .wd-rating-summary {
		grid-template-columns: 1fr;
		row-gap: 16px;
		padding: 24px;
	}

	body.lubiwood-product-page #reviews .wd-rating-summary-heading {
		flex-direction: row;
		align-items: baseline;
		gap: 14px;
		padding-inline-end: 0;
		padding-bottom: 16px;
		border-inline-end: 0;
		border-bottom: 1px solid var(--lwd-card-brd);
	}

	body.lubiwood-product-page #reviews .lubiwood-reviews-add-cta {
		width: 100%;
	}
}

/* ── Fallback: CusRev's own summary block (when ivole_reviews_histogram=yes). */
body.lubiwood-product-page #reviews .cr-summaryBox-wrap {
	margin: 0 0 32px;
	padding: 28px 32px;
	background: var(--lwd-card-bg);
	border: 1px solid var(--lwd-card-brd);
	border-radius: var(--lwd-radius);
	box-shadow: var(--lwd-card-shadow);
	display: flex;
	gap: 32px;
	align-items: center;
}

body.lubiwood-product-page #reviews .cr-summaryBox-wrap .cr-overall-rating-wrap {
	background: transparent;
	border: 0;
	padding: 0;
	flex: 0 0 auto;
	width: auto;
}

body.lubiwood-product-page #reviews .cr-summaryBox-wrap .cr-average-rating {
	font-size: clamp(2.5rem, 1.5rem + 2vw, 3.5rem);
	font-weight: 700;
	line-height: 1;
	color: var(--lwd-text-strong);
}

body.lubiwood-product-page #reviews .cr-summaryBox-wrap .cr-total-rating-count {
	font-size: 13px;
	color: var(--lwd-text-muted);
}

body.lubiwood-product-page #reviews .cr-summaryBox-wrap .ivole-summaryBox {
	flex: 1 1 auto;
	background: transparent;
	border: 0;
	padding: 0;
	width: auto;
}

body.lubiwood-product-page #reviews .cr-summaryBox-wrap .ivole-meter {
	background: color-mix(in srgb, var(--lwd-green) 6%, #eef2ef);
	box-shadow: none;
	height: 10px;
	border-radius: 999px;
}

body.lubiwood-product-page #reviews .cr-summaryBox-wrap .ivole-meter .ivole-meter-bar {
	background: var(--lwd-green);
	box-shadow: none;
	border-radius: 999px;
}

body.lubiwood-product-page #reviews .cr-summaryBox-wrap .ivole-meter .ivole-meter-bar:before {
	display: none;
}

body.lubiwood-product-page #reviews .cr-summaryBox-wrap .cr-ajax-reviews-add-review {
	min-height: 48px;
	padding: 12px 28px;
	background: var(--lwd-green);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	border: 0;
	border-radius: 999px;
	box-shadow: 0 4px 12px color-mix(in srgb, var(--lwd-green) 30%, transparent);
	cursor: pointer;
}

body.lubiwood-product-page #reviews .cr-summaryBox-wrap .cr-ajax-reviews-add-review:hover,
body.lubiwood-product-page #reviews .cr-summaryBox-wrap .cr-ajax-reviews-add-review:focus-visible {
	background: var(--lwd-green-strong);
	outline: none;
}

/* ── Trustpilot-style green square stars (CusRev SVG stars in review cards) ── */
body.lubiwood-product-page #reviews .crstar-rating-svg {
	display: inline-block;
	line-height: 1;
	margin: 0;
}

body.lubiwood-product-page #reviews .crstar-rating-svg .cr-rating-icon-base,
body.lubiwood-product-page #reviews .crstar-rating-svg .cr-rating-icon-frnt {
	height: 18px;
	column-gap: 2px;
}

body.lubiwood-product-page #reviews .crstar-rating-svg .cr-rating-icon-base .cr-rating-icon-bg,
body.lubiwood-product-page #reviews .crstar-rating-svg .cr-rating-icon-frnt .cr-rating-icon {
	width: 18px;
	height: 18px;
	padding: 2px;
	border-radius: 2px;
}

body.lubiwood-product-page #reviews .crstar-rating-svg .cr-rating-icon-base .cr-rating-icon-bg {
	background: color-mix(in srgb, var(--lwd-green) 8%, #d8ddd9);
	fill: #fff;
	stroke: #fff;
	stroke-width: 0;
}

body.lubiwood-product-page #reviews .crstar-rating-svg .cr-rating-icon-frnt .cr-rating-icon {
	background: var(--lwd-green);
	fill: #fff;
}

/* Numeric "5/5" badge sometimes shown next to the star row — we don't render it
   server-side, but if a child theme adds it we make sure it lines up nicely. */
body.lubiwood-product-page #reviews .crstar-rating-svg + .lubiwood-rating-score {
	margin-inline-start: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--lwd-text-muted);
}

/* ── Review cards wall (li.comment) — masonry via CSS columns ────────────────
 * A CSS *grid* row is only as short as its tallest card, so a one-line review
 * next to a long one leaves a big vertical void below it (ragged, gappy look).
 * Flow the cards through CSS multi-columns instead: each card takes its natural
 * height and the next card packs directly beneath it, closing the gaps — the
 * standard "review wall" masonry. `column-width` keeps it responsive (≈3 cols on
 * desktop, 1 on mobile) the same way the old auto-fill grid did. Trade-off:
 * cards read top-to-bottom within a column rather than left-to-right by row. */
body.lubiwood-product-page #reviews .commentlist,
body.lubiwood-product-page #reviews .commentlist.wd-grid-g {
	display: block !important;
	column-width: 320px;
	column-gap: 20px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	clip-path: none !important;
}

/* Progressive "Load more reviews": product-page.js hides the cards past the first
 * batch (reviewsVisibleCount = 6) by adding this class, and reveals the next batch
 * on each click. Scoped to `> li` so nested review replies (.children > li) are
 * never hidden. All direct li children of .commentlist are review cards, which the
 * JS counts by class (:scope > li.comment, :scope > li.review). */
body.lubiwood-product-page #reviews .commentlist > li.lubiwood-review-hidden {
	display: none !important;
}

/* "Load more reviews" button (mirrors .lubiwood-gallery-show-more, but
 * flow-positioned below the review wall and visible on every breakpoint — a long
 * review list needs the control on mobile too). Injected by product-page.js;
 * each click reveals the next batch of reviews. */
body.lubiwood-product-page .lubiwood-reviews-load-more {
	display: block;
	margin: 8px auto 0;
	padding: 12px 32px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #fff;
	background: #7ab38b; /* page's primary button green, matches gallery pill */
	border: 0;
	border-radius: 100px;
	box-shadow: 0 6px 18px rgba(48, 107, 58, 0.28);
	cursor: pointer;
	transition: background-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

body.lubiwood-product-page .lubiwood-reviews-load-more:hover {
	background: #6aa67c;
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(48, 107, 58, 0.36);
}

body.lubiwood-product-page .lubiwood-reviews-load-more:focus-visible {
	outline: 2px solid #2f6b3a;
	outline-offset: 2px;
}

body.lubiwood-product-page #reviews .commentlist.wd-review-style-1 {
	margin-block: 0 !important;
}

body.lubiwood-product-page #reviews .commentlist > li.comment,
body.lubiwood-product-page #reviews .commentlist > li.review {
	/* Card spacing: column-gap handles the horizontal gutter; margin-bottom is
	   the vertical gutter between stacked cards. Keep both at 20px. */
	margin: 0 0 20px !important;
	padding: 18px 20px !important;
	background: var(--lwd-card-bg);
	border: 1px solid var(--lwd-card-brd) !important;
	border-radius: var(--lwd-radius);
	box-shadow: var(--lwd-card-shadow);
	transition: box-shadow .2s ease, border-color .2s ease;
	overflow: hidden;
	/* Keep a card whole — never let a column break split one across columns. */
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	/* `block` (not flex) is the most reliable column item; the inner
	   `.comment_container` / `.comment-text` keep their own flex-column +
	   `order` so meta→stars→body→media→votes stay in sequence. With natural
	   card height the footer's margin-top:auto simply collapses to 0. */
	display: block;
	height: auto;
}

body.lubiwood-product-page #reviews .commentlist > li.comment:hover,
body.lubiwood-product-page #reviews .commentlist > li.review:hover {
	box-shadow: 0 2px 4px rgba(15, 23, 18, 0.05), 0 8px 20px rgba(15, 23, 18, 0.07);
	border-color: color-mix(in srgb, var(--lwd-green) 25%, var(--lwd-card-brd));
}

body.lubiwood-product-page #reviews .commentlist > li.woocommerce-noreviews {
	grid-column: 1 / -1;
	column-span: all;
	padding: 24px !important;
	background: var(--bgcolor-gray-100, #fafcfb) !important;
	border-style: dashed !important;
	box-shadow: none;
	text-align: center;
	color: var(--lwd-text-muted);
}

/* Card interior — single column (no side avatar eating width). */
body.lubiwood-product-page #reviews .commentlist .comment_container {
	display: flex;
	flex-direction: column;
	gap: 0;
	align-items: stretch;
	position: relative;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	flex: 1 1 auto;
	min-height: 0;
}

/* Hide letter avatars in the grid — initials circle is nice but costs ~70px
   of horizontal space we can't spare even at 2 cols. Verified pill covers trust. */
body.lubiwood-product-page #reviews .commentlist .comment_container > .avatar,
body.lubiwood-product-page #reviews .commentlist .comment_container > .cr-std-avatar {
	display: none !important;
}

body.lubiwood-product-page #reviews .commentlist .comment_container .cr-avatar-check {
	display: none;
}

/* The two CusRev review templates have slightly different inner wrappers —
   .cr-comment-text (modern) and .comment-text (compat). Reset both. */
body.lubiwood-product-page #reviews .commentlist .cr-comment-text,
body.lubiwood-product-page #reviews .commentlist .comment-text {
	display: flex;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	gap: 8px;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	min-width: 0;
	width: 100%;
	flex: 1 1 auto;
	align-items: stretch;
}

/* WoodMart `.wd-review-style-1 .comment-text` switches to row+wrap ≥769px, which
   scrambles card order (votes/meta/text jump around) after interaction. */
body.lubiwood-product-page #reviews .commentlist.wd-review-style-1 .comment-text,
body.lubiwood-product-page #reviews .commentlist.wd-review-style-1 .cr-comment-text {
	flex-direction: column !important;
	flex-wrap: nowrap !important;
}

/* Consistent block order: name/date → stars → body → media → votes */
body.lubiwood-product-page #reviews .commentlist .comment-text > .meta,
body.lubiwood-product-page #reviews .commentlist .cr-comment-text > .meta,
body.lubiwood-product-page #reviews .commentlist .cr-comment-text > p.meta,
body.lubiwood-product-page #reviews .commentlist .comment-text > p.meta {
	order: 1;
}

body.lubiwood-product-page #reviews .commentlist .comment-text > .star-rating,
body.lubiwood-product-page #reviews .commentlist .cr-comment-text > .crstar-rating-svg,
body.lubiwood-product-page #reviews .commentlist .comment-text > .crstar-rating-svg {
	order: 2;
}

body.lubiwood-product-page #reviews .commentlist .comment-text .description,
body.lubiwood-product-page #reviews .commentlist .cr-comment-text .description {
	order: 3;
	flex: 1 1 auto;
}

body.lubiwood-product-page #reviews .commentlist .cr-comment-images,
body.lubiwood-product-page #reviews .commentlist .cr-comment-videos {
	order: 4;
}

/* CusRev voting row — always pinned to the card footer. */
body.lubiwood-product-page #reviews .commentlist .cr-voting-cont,
body.lubiwood-product-page #reviews .commentlist .cr-voting-cont-uni {
	order: 5;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 14px;
	width: 100%;
	margin-top: auto !important;
	padding-top: 10px;
	border-top: 1px solid color-mix(in srgb, var(--lwd-card-brd) 80%, transparent);
}

/* CusRev defaults each child span to display:block — keep thumbs inline. */
body.lubiwood-product-page #reviews .commentlist .cr-voting-cont-uni > span {
	display: inline-flex !important;
	align-items: center;
	gap: 4px;
	line-height: 1 !important;
	font-size: 13px;
	margin: 0 !important;
}

body.lubiwood-product-page #reviews .commentlist .cr-voting-cont-uni svg {
	width: 16px !important;
	height: 16px !important;
	margin: 0 !important;
	flex-shrink: 0;
}

body.lubiwood-product-page #reviews .commentlist .cr-voting-cont-uni .cr-voting-upvote-count {
	color: var(--lwd-green);
	margin-right: 0 !important;
}

body.lubiwood-product-page #reviews .commentlist .cr-voting-cont-uni .cr-voting-downvote-count {
	color: #c44;
}

/* WoodMart like/dislike row — pinned to the card footer. */
body.lubiwood-product-page #reviews .commentlist .comment-text > .wd-review-likes,
body.lubiwood-product-page #reviews .commentlist .cr-comment-text > .wd-review-likes {
	order: 6;
	margin-top: auto;
}

/*
 * WoodMart's vote AJAX runs `$('.wd-like span').text(count)`, which writes the
 * number into BOTH spans of the button — the text label AND the icon span — so a
 * stray digit appears next to the thumb ("1 1"). The icon glyph lives in the
 * ::before pseudo, so zero out the span's own text while keeping the icon sized.
 */
body.lubiwood-product-page #reviews .wd-review-likes .wd-action-icon {
	font-size: 0 !important;
}

body.lubiwood-product-page #reviews .wd-review-likes .wd-action-icon::before {
	font-size: 18px !important;
	line-height: 1 !important;
}

/* Meta row: author + date sit on a baseline; verified label tucks under name. */
body.lubiwood-product-page #reviews .commentlist .cr-comment-text > .meta,
body.lubiwood-product-page #reviews .commentlist .comment-text > .meta,
body.lubiwood-product-page #reviews .commentlist .cr-comment-text > p.meta {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 14px;
	color: var(--lwd-text-muted);
	flex-wrap: wrap;
}

body.lubiwood-product-page #reviews .commentlist .cr-meta-author-featured-date {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px 12px;
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
}

body.lubiwood-product-page #reviews .commentlist .cr-meta-author-title {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
}

body.lubiwood-product-page #reviews .commentlist .cr-meta-author-title > div {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

body.lubiwood-product-page #reviews .commentlist .woocommerce-review__author,
body.lubiwood-product-page #reviews .commentlist .comment-text .meta strong[itemprop="author"] {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--lwd-text-strong);
	display: inline;
}

body.lubiwood-product-page #reviews .commentlist .woocommerce-review__verified {
	display: none;
}

/* Compat template (review-compat.php): hide the trailing colon on meta line. */
body.lubiwood-product-page #reviews .commentlist .comment-text > .meta {
	display: block;
}

body.lubiwood-product-page #reviews .commentlist .comment-text .meta .woocommerce-review__dash,
body.lubiwood-product-page #reviews .commentlist .comment-text .meta .verified {
	display: none;
}

body.lubiwood-product-page #reviews .commentlist .comment-text .meta time {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	color: var(--lwd-text-muted);
}

/* Reviewer country flag is intentionally hidden site-wide by the
   lubiwood-hide-review-country-tag mu-plugin (noise for our audience). No inline
   flag styling here — see that plugin for the display:none rule. */

/* Date stays on the right of the meta row in the legacy compat template. In
   the modern template, the date is rendered inside its own <time> right of
   .cr-meta-author-featured-date — keep it muted and right-aligned. */
body.lubiwood-product-page #reviews .commentlist .woocommerce-review__published-date,
body.lubiwood-product-page #reviews .commentlist .comment-text .meta time {
	font-size: 13px;
	font-weight: 500;
	color: var(--lwd-text-muted);
	font-style: normal;
	white-space: nowrap;
	flex: 0 0 auto;
}

body.lubiwood-product-page #reviews .commentlist .comment-text > .star-rating {
	font-size: 14px;
	letter-spacing: 2px;
	margin: 0;
}

/* WoodMart style-1 list tweaks — neutralise theme defaults inside our cards. */
body.lubiwood-product-page #reviews .commentlist.wd-review-style-1 .comment_container {
	padding: 0;
	align-items: stretch;
}

body.lubiwood-product-page #reviews .commentlist .meta {
	margin: 0;
	width: 100%;
}

body.lubiwood-product-page #reviews .commentlist .cr-comment-text p,
body.lubiwood-product-page #reviews .commentlist .comment-text p,
body.lubiwood-product-page #reviews .commentlist .description p {
	margin: 0;
	color: var(--color-gray-700, #3a3f3c);
	font-size: 14px;
	line-height: 1.6;
	text-align: start;
	word-break: normal;
	overflow-wrap: anywhere;
	hyphens: auto;
}

body.lubiwood-product-page #reviews .commentlist .cr-comment-text .description {
	margin: 0;
}

/* Review images — prominent customer photos (larger than default CusRev thumbs). */
body.lubiwood-product-page #reviews .commentlist .cr-comment-images,
body.lubiwood-product-page #reviews .commentlist .cr-comment-videos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 10px;
	margin: 10px 0 0;
	width: 100%;
}

body.lubiwood-product-page #reviews .commentlist .iv-comment-image,
body.lubiwood-product-page #reviews .commentlist .cr-comment-video {
	float: none !important;
	margin: 0 !important;
	border-radius: var(--lwd-radius-sm);
	overflow: hidden;
	border: 1px solid var(--lwd-card-brd);
	aspect-ratio: 1;
	position: relative;
	background: color-mix(in srgb, var(--lwd-green) 4%, #f4f6f5);
}

body.lubiwood-product-page #reviews .commentlist .iv-comment-image a,
body.lubiwood-product-page #reviews .commentlist .iv-comment-image .cr-comment-a {
	display: block;
	width: 100%;
	height: 100%;
	line-height: 0;
}

body.lubiwood-product-page #reviews .commentlist .cr-comment-images img,
body.lubiwood-product-page #reviews .commentlist .iv-comment-image img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	min-height: 96px;
	border-radius: 0;
	object-fit: cover;
	display: block;
	transition: transform .25s ease;
}

body.lubiwood-product-page #reviews .commentlist .iv-comment-image:hover img {
	transform: scale(1.03);
}

/* One photo — span the card width with a taller crop. */
body.lubiwood-product-page #reviews .commentlist .cr-comment-images:has(.iv-comment-image:only-child) {
	grid-template-columns: 1fr;
}

body.lubiwood-product-page #reviews .commentlist .cr-comment-images:has(.iv-comment-image:only-child) .iv-comment-image {
	aspect-ratio: 4 / 3;
	max-height: 240px;
}

body.lubiwood-product-page #reviews .commentlist .cr-comment-images:has(.iv-comment-image:only-child) img {
	min-height: 180px;
}

/* Two photos — equal halves, still roomy. */
body.lubiwood-product-page #reviews .commentlist .cr-comment-images:has(.iv-comment-image:nth-child(2):last-child) {
	grid-template-columns: 1fr 1fr;
}

body.lubiwood-product-page #reviews .commentlist .cr-comment-images:has(.iv-comment-image:nth-child(2):last-child) .iv-comment-image {
	min-height: 120px;
}

/* Review videos — match image tile size. */
body.lubiwood-product-page #reviews .commentlist .cr-comment-video .cr-video-cont,
body.lubiwood-product-page #reviews .commentlist .cr-comment-video video.cr-video-a {
	width: 100% !important;
	height: 100% !important;
	min-height: 96px;
	object-fit: cover;
}

/* Featured review badge (CusRev cr-all-featured-badge) — pill, brand green. */
body.lubiwood-product-page #reviews .commentlist .cr-all-featured-badge {
	display: inline-flex;
	align-self: flex-start;
	padding: 3px 10px;
	background: var(--lwd-green-soft);
	color: var(--lwd-green-strong);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	border-radius: 999px;
}

body.lubiwood-product-page #reviews .commentlist .cr-all-featured-badge span {
	color: inherit;
}

/* Replies (.children li) — slightly inset, no double card. */
body.lubiwood-product-page #reviews .commentlist .children {
	margin: 12px 0 0;
	padding-inline-start: 16px;
	border-inline-start: 2px solid var(--lwd-green-line);
	list-style: none;
}

body.lubiwood-product-page #reviews .commentlist .children > li.comment {
	margin: 8px 0 0 !important;
	padding: 14px 16px !important;
	background: color-mix(in srgb, var(--lwd-green) 4%, #f8faf9);
	box-shadow: none;
}

/* ── Add-a-review form ─────────────────────────────────────────────────────── */
body.lubiwood-product-page #reviews #review_form_wrapper {
	margin-top: 40px;
	padding: 28px 32px;
	background: var(--lwd-card-bg);
	border: 1px solid var(--lwd-card-brd);
	border-radius: var(--lwd-radius);
	box-shadow: var(--lwd-card-shadow);
	scroll-margin-top: 100px;
}

body.lubiwood-product-page #reviews #review_form_wrapper #reply-title,
body.lubiwood-product-page #reviews #review_form_wrapper .comment-reply-title {
	display: block;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--lwd-text-strong);
	margin: 0 0 16px;
}

body.lubiwood-product-page #reviews .comment-form .comment-form-rating label,
body.lubiwood-product-page #reviews .comment-form .comment-form-comment label,
body.lubiwood-product-page #reviews .comment-form .comment-form-author label,
body.lubiwood-product-page #reviews .comment-form .comment-form-email label {
	font-size: 13px;
	font-weight: 600;
	color: var(--lwd-text-strong);
	margin-bottom: 6px;
}

body.lubiwood-product-page #reviews .comment-form input[type="text"],
body.lubiwood-product-page #reviews .comment-form input[type="email"],
body.lubiwood-product-page #reviews .comment-form textarea {
	border-radius: var(--lwd-radius-sm);
	border: 1px solid var(--lwd-card-brd);
	background: #fff;
	padding: 10px 14px;
	font-size: 15px;
	color: var(--lwd-text-strong);
	box-shadow: none;
}

body.lubiwood-product-page #reviews .comment-form input[type="text"]:focus,
body.lubiwood-product-page #reviews .comment-form input[type="email"]:focus,
body.lubiwood-product-page #reviews .comment-form textarea:focus {
	border-color: var(--lwd-green);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--lwd-green) 18%, transparent);
	outline: none;
}

body.lubiwood-product-page #reviews .comment-form .form-submit input[type="submit"],
body.lubiwood-product-page #reviews .comment-form button[type="submit"],
body.lubiwood-product-page #reviews .comment-form .submit {
	min-height: 48px;
	padding: 12px 28px;
	border-radius: 999px;
	font-weight: 600;
	background: var(--lwd-green);
	border: 0;
	color: #fff;
	box-shadow: 0 4px 12px color-mix(in srgb, var(--lwd-green) 30%, transparent);
}

body.lubiwood-product-page #reviews .comment-form .form-submit input[type="submit"]:hover,
body.lubiwood-product-page #reviews .comment-form button[type="submit"]:hover {
	background: var(--lwd-green-strong);
}

/* ────────────────────────────────────────────────────────────────────────────
   FAQ — light card block matching reviews / product-page tokens.
   Elementor accordion in the product description layout (one per template).
   ──────────────────────────────────────────────────────────────────────────── */

body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) > .elementor-widget-wrap {
	--lwd-faq-green: var(--lwd-green);
	--lwd-faq-green-soft: var(--lwd-green-soft);
	--lwd-faq-brd: var(--lwd-brd);
	--lwd-faq-shadow: var(--lwd-shadow);
	--lwd-faq-title: var(--lwd-text);
	--lwd-faq-body: var(--lwd-text-muted);
	--lwd-faq-muted: var(--color-gray-500, #6b726e);
	margin-top: 16px;
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid var(--lwd-faq-brd);
	border-radius: var(--lwd-radius);
	background: #fff;
	box-shadow: var(--lwd-faq-shadow);
}

body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) > .elementor-widget-wrap > .elementor-widget {
	margin-block-end: 0;
}

/* Stack: eyebrow → title → accordion (natural DOM order) */
body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) .elementor-widget-heading:has(h6) {
	margin-bottom: 8px;
}

body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) .elementor-widget-heading:has(h2) {
	margin-bottom: 20px;
}

body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) .elementor-widget-heading h6 {
	margin: 0;
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lwd-faq-green) !important;
}

body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) .elementor-widget-heading h2 {
	margin: 0;
	font-family: inherit;
	font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.5rem);
	font-weight: 800;
	line-height: 1.3;
	color: var(--lwd-faq-title) !important;
}

body.lubiwood-product-page .elementor-widget-accordion {
	margin: 0;
}

/* Clean divided list — no stacked box borders from Elementor defaults */
body.lubiwood-product-page .elementor-widget-accordion .elementor-accordion {
	border: 1px solid var(--lwd-faq-brd);
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-accordion-item {
	border: 0;
	border-radius: 0;
	background: #fff;
	box-shadow: none;
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-accordion-item + .elementor-accordion-item {
	border-block-start: 1px solid var(--lwd-faq-brd);
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-title {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px 18px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--lwd-faq-title) !important;
	background: #fff;
	transition: background 0.15s ease;
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-title:hover {
	background: var(--bgcolor-gray-100, #fafcfb);
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-title.elementor-active {
	color: var(--lwd-faq-title) !important;
	background: var(--lwd-faq-green-soft);
	box-shadow: inset 3px 0 0 var(--lwd-faq-green);
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-title.elementor-active .elementor-accordion-title {
	color: var(--lwd-faq-title) !important;
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-accordion-title {
	flex: 1 1 auto;
	min-width: 0;
	order: 1;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	text-decoration: none;
	color: inherit !important;
}

/* Chevron icons — theme green, readable on white */
body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-title .elementor-accordion-icon {
	float: none;
	flex: 0 0 auto;
	order: 2;
	margin-inline-start: auto;
	margin-top: 2px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	color: var(--lwd-faq-muted);
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-title .elementor-accordion-icon svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon {
	color: var(--lwd-faq-green);
}

/* Answer panel */
body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-content {
	border-block-start: 1px solid color-mix(in srgb, var(--lwd-faq-brd) 80%, transparent);
	padding: 12px 18px 16px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--lwd-faq-body) !important;
	background: #fff;
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-content p,
body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-content li {
	margin: 0 0 6px !important;
	font-size: inherit;
	font-weight: 500;
	line-height: inherit;
	color: var(--lwd-faq-body) !important;
}

body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-content p:last-child {
	margin-bottom: 0 !important;
}

/* Collapse the empty <p><br></p> Elementor inserts between paragraphs */
body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-content p:empty,
body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-content p:has(> br:only-child) {
	display: none !important;
	margin: 0 !important;
}

/* ── WoodMart wd_accordion widget (same visual treatment, different markup) ──
   Some product templates use WoodMart's own wd_accordion Elementor widget
   instead of the native Elementor accordion. Classes: .wd-accordion / .wd-active
   ──────────────────────────────────────────────────────────────────────────── */

body.lubiwood-product-page .elementor-widget-wd_accordion {
	--lwd-faq-green: var(--lwd-green);
	--lwd-faq-green-soft: var(--lwd-green-soft);
	--lwd-faq-brd: var(--lwd-brd);
	--lwd-faq-title: var(--lwd-text);
	--lwd-faq-body: var(--lwd-text-muted);
	--lwd-faq-muted: var(--color-gray-500, #6b726e);
}

body.lubiwood-product-page .e-con:has(.elementor-widget-wd_accordion) .elementor-widget-wd_title h4.woodmart-title-container {
	font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.5rem) !important;
	font-weight: 800 !important;
	line-height: 1.3 !important;
	color: var(--lwd-faq-title) !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion {
	border: 1px solid var(--lwd-faq-brd) !important;
	border-radius: 12px !important;
	overflow: hidden !important;
	background: #fff !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-item {
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	background: #fff !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-item + .wd-accordion-item {
	border-top: 1px solid var(--lwd-faq-brd) !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-title {
	padding: 18px 20px !important;
	background: #fff !important;
	transition: background 0.15s ease !important;
	border: 0 !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-title:hover {
	background: var(--bgcolor-gray-100, #f7faf8) !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-title.wd-active {
	background: var(--lwd-faq-green-soft) !important;
	box-shadow: inset 4px 0 0 var(--lwd-faq-green) !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-title-text {
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	color: var(--lwd-faq-title) !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-content {
	padding: 6px 20px 20px !important;
	border-top: 1px solid var(--lwd-faq-brd) !important;
	background: #fff !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-content p,
body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-content li {
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 1.6 !important;
	color: var(--lwd-faq-body) !important;
	margin: 0 0 6px !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-content p:last-child {
	margin-bottom: 0 !important;
}

body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-content p:empty,
body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-content p:has(> br:only-child) {
	display: none !important;
}

@media (max-width: 767px) {
	body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) > .elementor-widget-wrap {
		padding: 20px 20px;
	}

	body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) .elementor-widget-heading {
		padding-inline: 4px;
	}

	body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) .elementor-widget-heading:has(h2) {
		margin-bottom: 14px;
	}

	body.lubiwood-product-page .elementor-column:has(.elementor-widget-accordion) .elementor-widget-heading h2 {
		font-size: 1.125rem;
		line-height: 1.25;
	}

	/* Breathing room on phones: break the dense divided list into separated,
	   rounded cards with a gap between them instead of hairline-only dividers. */
	body.lubiwood-product-page .elementor-widget-accordion .elementor-accordion {
		border: 0;
		border-radius: 0;
		overflow: visible;
		background: transparent;
		display: flex;
		flex-direction: column;
		gap: 14px;
	}

	body.lubiwood-product-page .elementor-widget-accordion .elementor-accordion-item {
		border: 1px solid var(--lwd-faq-brd);
		border-radius: 12px;
		overflow: hidden;
	}

	/* Each item is its own card now — drop the inter-item divider. */
	body.lubiwood-product-page .elementor-widget-accordion .elementor-accordion-item + .elementor-accordion-item {
		border-block-start: 1px solid var(--lwd-faq-brd);
	}

	/* Questions stay bold and title-sized on mobile, with roomier tap targets */
	body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-title {
		padding: 24px 22px;
		font-size: 16px;
		font-weight: 700;
		line-height: 1.5;
	}

	body.lubiwood-product-page .elementor-widget-accordion .elementor-accordion-title {
		font-size: 16px;
		font-weight: 700;
		line-height: 1.5;
	}

	/* Answers: comfortable padding on mobile */
	body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-content {
		padding: 18px 22px 22px;
		font-size: 15px;
		font-weight: 500;
		line-height: 1.6;
		color: var(--lwd-faq-body) !important;
	}

	body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-content p,
	body.lubiwood-product-page .elementor-widget-accordion .elementor-tab-content li {
		margin-bottom: 6px !important;
		font-size: 15px;
		font-weight: 500;
		line-height: 1.6;
		color: var(--lwd-faq-body) !important;
	}

	/* WoodMart accordion variant: same spaced-card treatment on phones */
	body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion {
		border: 0 !important;
		border-radius: 0 !important;
		overflow: visible !important;
		background: transparent !important;
		display: flex;
		flex-direction: column;
		gap: 14px;
	}

	body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-item {
		border: 1px solid var(--lwd-faq-brd) !important;
		border-radius: 12px !important;
		overflow: hidden !important;
	}

	body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-title {
		padding: 24px 22px !important;
	}

	body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-title-text {
		font-size: 16px !important;
		font-weight: 700 !important;
	}

	body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-content {
		padding: 14px 22px 22px !important;
	}

	body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-content p,
	body.lubiwood-product-page .elementor-widget-wd_accordion .wd-accordion-content li {
		font-size: 15px !important;
		font-weight: 500 !important;
	}
}

/* ─── Single-size / Bundle info card (simple products) ───────────────────── */
/* The buy box on one-size product pages is centered, so center the card box too
   (margin: auto) instead of pinning it to the left edge of the summary. */
.lubiwood-info-card {
	max-width: 360px;
	margin: 0 auto 18px;
	padding: 14px 16px;
	border: 2px solid rgba(122, 179, 139, 0.45);
	border-radius: 12px;
	background: #f4faf6;
}

.lubiwood-info-card__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

/* Price-only cards (single-size book nooks with no piece-count label) have just
   the price in the head; space-between would shove it to the left edge, so center
   it within the card to match the centered buy box. */
.lubiwood-info-card__head:has(> .lubiwood-info-card__price:only-child) {
	justify-content: center;
}

.lubiwood-info-card__label {
	font-weight: 700;
	font-size: 16px;
	color: #222;
}

.lubiwood-info-card__price {
	font-weight: 700;
	color: #222;
	white-space: nowrap;
}

.lubiwood-info-card__price .price,
.lubiwood-info-card__price ins,
.lubiwood-info-card__price .amount {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
	text-decoration: none;
}

.lubiwood-info-card__price del {
	margin-right: 6px;
	font-weight: 500;
	opacity: 0.5;
}

.lubiwood-info-card__detail {
	margin-top: 6px;
	font-size: 13px;
	color: #5a5a5a;
}

/* Single-size products: center the price + finished-size (these one-card products
   read better centered than the label-left / price-right split). */
.lubiwood-info-card--single .lubiwood-info-card__head {
	justify-content: center;
}

.lubiwood-info-card--single .lubiwood-info-card__meta {
	display: flex;
	justify-content: center;
}

/* One-size products have only this single card (no S/M/L row), so give it more
   presence than a card in the multi-size grid: wider, roomier, larger price —
   on par with the swatch cards' price (swatch-prices.css ~1.3–1.56rem). */
.lubiwood-info-card--single {
	max-width: 400px;
	padding: 16px 20px;
}

.lubiwood-info-card--single .lubiwood-info-card__price {
	font-size: 21px;
}

.lubiwood-info-card--single .lubiwood-info-card__price del {
	font-size: 16px;
}

/* Out of stock: dim the card to match how multi-size size swatches dim when a
   size is sold out (swatch-prices.css "Out of stock", opacity 0.55), so the card
   no longer reads as available next to the "Out of stock" badge / waitlist. */
.lubiwood-info-card--oos {
	opacity: 0.55;
}

/* The card carries the price, so hide WooCommerce's default summary price.
   WoodMart renders it at .summary-inner > .price (not a direct child of
   .summary/.entry-summary), so that selector is required — same as the
   multi-size chooser hides it in swatch-prices.css. */
.lubiwood-one-size-page .entry-summary > .price,
.lubiwood-one-size-page .summary > .price,
.lubiwood-one-size-page .summary-inner > .price,
.lubiwood-one-size-page .wd-single-price {
	display: none;
}

/* Hide the "107 in stock" availability count in the buy box for one-size
   products (book nooks + bundles) to match the multi-size pages, which don't
   surface a stock count. Scoped to .summary-inner so the gallery's
   "Out of stock" corner labels (.out-of-stock.product-label) are untouched. */
.lubiwood-one-size-page .summary-inner p.stock {
	display: none;
}

/* Bundle (woosb) per-item availability — the green "150 in stock" line under each
   bundled item (.woosb-availability). Hide on the product page so the bundle list
   reads as a clean contents list, matching how the buy box hides the stock count. */
body.lubiwood-product-page .woosb-products .woosb-availability {
	display: none;
}

/* ──────────────────────────────────────────────────────────────────────────
 * Single-product gallery — desktop grid with "Show more images".
 * Layout is WoodMart's bottom_grid (forced via woodmart_option filter); the
 * carousel is already off on desktop (.wd-off-lg). We define the grid here so
 * it does not depend on WoodMart's cached CSS parts, and collapse to the first
 * 3 images until the button is clicked. Tablet/phone keep the swipe carousel.
 * ────────────────────────────────────────────────────────────────────────── */
@media (min-width: 1025px) {
	body.lubiwood-product-page .woocommerce-product-gallery.thumbs-grid-bottom_grid .wd-carousel-wrap {
		position: relative; /* anchor for the floating "Show more images" pill */
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	/* Collapsed: show only the first 3 images.
	 * The "3" (n+4 = hide the 4th onward) must match galleryVisibleCount,
	 * localized from lubiwood-product-page.php into product-page.js. */
	body.lubiwood-product-page .woocommerce-product-gallery.lubiwood-gallery-has-more:not(.lubiwood-gallery-expanded) .wd-carousel-wrap .wd-carousel-item:nth-child(n+4) {
		display: none;
	}

	/* Compact pill floating over the bottom of the grid (like the old-prod
	 * "VEČ SLIK"), in the page's primary button style: sage green, white,
	 * uppercase Karla. Shadow + hover lift make it inviting to click. */
	body.lubiwood-product-page .lubiwood-gallery-show-more {
		position: absolute;
		left: 50%;
		bottom: 14px;
		transform: translateX(-50%);
		display: inline-block;
		margin: 0;
		padding: 9px 24px;
		font-family: inherit;
		font-size: 12px;
		font-weight: 700;
		line-height: 1.2;
		text-transform: uppercase;
		letter-spacing: 0.4px;
		color: #fff;
		background: #7ab38b; /* matches the page's primary buttons (rgb(122,179,139)) */
		border: 0;
		border-radius: 100px;
		box-shadow: 0 6px 18px rgba(48, 107, 58, 0.28);
		cursor: pointer;
		transition: background-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
	}

	body.lubiwood-product-page .lubiwood-gallery-show-more:hover {
		background: #6aa67c;
		transform: translateX(-50%) translateY(-2px);
		box-shadow: 0 8px 22px rgba(48, 107, 58, 0.36);
	}

	body.lubiwood-product-page .lubiwood-gallery-show-more:focus-visible {
		outline: 2px solid #2f6b3a;
		outline-offset: 2px;
	}
}

/* Never show the injected button on tablet/phone (carousel mode). */
@media (max-width: 1024px) {
	body.lubiwood-product-page .lubiwood-gallery-show-more {
		display: none;
	}
}

/* ──────────────────────────────────────────────────────────────────────────
 * Tablet/phone gallery thumbnail strip (injected by product-page.js).
 * On ≤1024px WoodMart shows the gallery as a swipe carousel with only tiny
 * pagination dots, so it's not obvious there are several images. This strip
 * sits under the carousel: a horizontally-scrollable row of tappable thumbs
 * that drive Swiper and mark the active image. Desktop keeps the grid, so the
 * strip is hidden there.
 * ────────────────────────────────────────────────────────────────────────── */
body.lubiwood-product-page .lubiwood-gallery-thumbs {
	display: none; /* shown only on the carousel breakpoint below */
}

@media (max-width: 1024px) {
	body.lubiwood-product-page .lubiwood-gallery-thumbs {
		display: flex;
		gap: 8px;
		margin: 10px 0 0;
		padding: 2px 2px 6px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none; /* Firefox — keep the strip clean */
	}

	body.lubiwood-product-page .lubiwood-gallery-thumbs::-webkit-scrollbar {
		display: none; /* WebKit — hide the scrollbar, swipe to scroll */
	}

	body.lubiwood-product-page .lubiwood-gallery-thumb {
		flex: 0 0 auto;
		width: 64px;
		height: 64px;
		margin: 0;
		padding: 0;
		border: 2px solid transparent;
		border-radius: 8px;
		background: #fff;
		overflow: hidden;
		cursor: pointer;
		opacity: 0.6;
		transition: opacity 0.15s ease, border-color 0.15s ease;
	}

	body.lubiwood-product-page .lubiwood-gallery-thumb img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	body.lubiwood-product-page .lubiwood-gallery-thumb.is-active {
		border-color: #7ab38b; /* page's primary button green, matches gallery pill */
		opacity: 1;
	}

	body.lubiwood-product-page .lubiwood-gallery-thumb:focus-visible {
		outline: 2px solid #2f6b3a;
		outline-offset: 2px;
		opacity: 1;
	}
}

/* ──────────────────────────────────────────────────────────────────────────
 * Bigger discount ("-NN%") circle on tablet/phone.
 * WoodMart shrinks the round on-sale label on the product image to a ~40px
 * circle / 10px text at small breakpoints, which is hard to read on mobile.
 * Scale the gallery's on-sale label up so the discount reads at a glance.
 * Scoped to the gallery's round onsale label so other labels (out-of-stock,
 * attribute) are untouched.
 * ────────────────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	body.lubiwood-product-page .woocommerce-product-gallery .product-label.onsale.wd-shape-round {
		min-width: 48px;
		min-height: 48px;
		padding: 5px 6px;
		border-radius: 50%;
		font-size: 14px;
		font-weight: 700;
		line-height: 1.1;
	}
}

/* Finished-size chip on one-size / bundle info cards (simple products). */
body.lubiwood-product-page .lubiwood-info-card__meta {
	margin-top: 6px;
}

body.lubiwood-product-page .lubiwood-info-card .lubiwood-swatch-size {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	line-height: 1.3;
	color: var(--lwd-text);
}

body.lubiwood-product-page .lubiwood-info-card .lubiwood-swatch-size__icon {
	flex: 0 0 auto;
	color: #7a8a80;
}

body.lubiwood-product-page .lubiwood-info-card .lubiwood-swatch-size__dims {
	font-weight: 700;
}

body.lubiwood-product-page .lubiwood-info-card .lubiwood-swatch-size__cap {
	color: #7a8a80;
}

/* ── Short-description Read More clamp ─────────────────────────────────────── */
/* --lwd-desc-bg = the surface the description sits on (white summary), used for
   the fade behind the inline "Read More" so it sits at the end of the last line
   without colliding with the text underneath. */
body.lubiwood-product-page .product-image-summary .lubiwood-desc-wrap {
	position: relative;
	--lwd-desc-bg: #fff;
}

body.lubiwood-product-page .product-image-summary .lubiwood-desc {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	/* Collapsed: left-aligned. Justifying a 2-line clamp stretches the visible
	   (non-final) line into ugly word gaps, so justify only once expanded. */
	text-align: left;
	/* Drop the theme's bottom margin so Read More sits right under the text. */
	margin-bottom: 0;
}

/* Trim the trailing margin of the clamped paragraph too (it otherwise adds a
   gap below the copy before the Read More link). */
body.lubiwood-product-page .product-image-summary .lubiwood-desc > :last-child {
	margin-bottom: 0;
}

body.lubiwood-product-page .product-image-summary .lubiwood-desc.is-expanded {
	display: block;
	-webkit-line-clamp: unset;
	overflow: visible;
	text-align: justify; /* flush left + right across the full copy */
	text-align-last: left; /* natural last line, no stretch */
}

/* Read More / Read Less: a centred block beneath the copy (no overlay/fade). */
body.lubiwood-product-page .product-image-summary .lubiwood-desc-toggle {
	display: block;
	width: -moz-fit-content;
	width: fit-content;
	margin: 2px auto 0;
	padding: 0;
	border: none;
	background: none;
	color: var(--lwd-green-dark, #4c7a5b);
	font-size: 14px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	white-space: nowrap;
}

body.lubiwood-product-page .product-image-summary .lubiwood-desc-toggle:hover {
	color: var(--lwd-green, #7ab38b);
}

/* ── Product benefits accordion (native <details>, under the short description) ── */
body.lubiwood-product-page .product-image-summary .lubiwood-product-benefits {
	margin: 16px 0 24px;
	text-align: left;
}

body.lubiwood-product-page .lubiwood-benefit {
	border-bottom: 1px solid rgba(31, 36, 33, 0.1);
}

body.lubiwood-product-page .lubiwood-benefit:first-child {
	border-top: 1px solid rgba(31, 36, 33, 0.1);
}

body.lubiwood-product-page .lubiwood-benefit__head {
	display: flex; /* also removes the default disclosure marker */
	align-items: center;
	gap: 10px;
	padding: 13px 2px;
	cursor: pointer;
	list-style: none;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--lwd-text, #1f2421);
}

body.lubiwood-product-page .lubiwood-benefit__head::-webkit-details-marker {
	display: none;
}

body.lubiwood-product-page .lubiwood-benefit__icon {
	flex: 0 0 auto;
	display: inline-flex;
	color: var(--lwd-green-dark, #4c7a5b);
}

body.lubiwood-product-page .lubiwood-benefit__title {
	flex: 1 1 auto;
}

body.lubiwood-product-page .lubiwood-benefit__chevron {
	flex: 0 0 auto;
	color: var(--lwd-text-muted, #6a706c);
	transition: transform 0.2s ease;
}

body.lubiwood-product-page .lubiwood-benefit[open] .lubiwood-benefit__chevron {
	transform: rotate(180deg);
}

body.lubiwood-product-page .lubiwood-benefit__body {
	/* Left-align the expanded copy under the icon (was indented to the title). */
	padding: 0 2px 14px;
	font-size: 14px;
	line-height: 1.55;
	color: var(--lwd-text-muted, #5a5a5a);
}

/* ── Uniform purchase row: simple + woosb bundles match the variable chooser ── */
/* Non-variable add-to-cart forms (simple products, woosb bundles) get the same
   qty + full-width pill on one row, express button full width below. Bundled
   items (.woosb-wrap) and totals span the full width above the row. */
body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 8px;
	width: 100%;
	align-items: stretch;
}

body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > .woosb-wrap,
body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > .woosb-total,
body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > .woosb-alert,
body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > .woocommerce-variation-description,
body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > .price,
body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > .fkwcs_stripe_smart_button_wrapper {
	grid-column: 1 / -1;
	width: 100%;
	margin: 0;
}

/* Catch-all (mirrors the variable chooser): any OTHER direct child — e.g.
   WoodMart's "Buy now" button, which hooks woocommerce_after_add_to_cart_button
   as a direct child of form.cart — spans full width below the qty+button row
   instead of auto-flowing into an empty grid cell. Keeps the row intact even if
   that theme toggle is later enabled. */
body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > :not(.quantity):not(.single_add_to_cart_button):not(input) {
	grid-column: 1 / -1;
	width: 100%;
	margin: 0;
}

body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > div.quantity {
	grid-column: 1;
	grid-row: 1;
	display: inline-flex !important;
	flex: 0 0 auto;
	align-items: stretch;
	margin: 0 !important;
	overflow: hidden;
}

body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > div.quantity .minus,
body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > div.quantity .plus {
	width: 28px !important;
	min-width: 28px !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > div.quantity input[type="number"],
body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > div.quantity input[type="text"] {
	width: 34px !important;
	min-width: 34px;
	max-width: 34px;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-left: 1px solid var(--lwd-brd) !important;
	border-right: 1px solid var(--lwd-brd) !important;
	border-radius: 0 !important;
	text-align: center;
	box-shadow: none !important;
	-moz-appearance: textfield;
}

body.lubiwood-product-page .product-image-summary form.cart:not(.variations_form) > button.single_add_to_cart_button {
	grid-column: 2;
	grid-row: 1;
	width: 100%;
	min-width: 0;
	margin: 0 !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* ── Description tab: tighten the top gap + drop the timeline's grey "half dot" ──
   The description content is a WoodMart wd_timeline. Its wrapper adds 50px of
   top padding (a big empty gap under the "Description" heading) and the timeline
   line renders a small grey dot at the top (`.line-dot`, greyed via an inset
   box-shadow) that floats in that gap. Neither earns its space in this stacked
   narrative layout, so tighten the gap and hide the dots. */
body.lubiwood-product-page .woocommerce-Tabs-panel--description .wc-tab-inner {
	padding-top: 0;
}
body.lubiwood-product-page .woocommerce-Tabs-panel--description .wd-timeline-wrapper {
	padding-top: 6px;
}
body.lubiwood-product-page .woocommerce-Tabs-panel--description .woodmart-timeline-line .line-dot {
	display: none;
}
