/*
 * Prevent the right product column from overflowing.
 */
body.single-product div.product .summary {
	min-width: 0;
}

/*
 * Product category and tags area.
 */
body.single-product div.product .product_meta {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 8px 12px;
	min-width: 0;
	max-width: 100%;
}

body.single-product div.product .product_meta > span {
	min-width: 0;
	max-width: 100%;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: normal;
}

/*
 * Technical tags duplicate the visible specification table
 * and can overflow the product column.
 *
 * Tags remain stored in WooCommerce and can still be used
 * internally for product organization.
 */
body.single-product div.product
.product_meta .tagged_as {
	display: none !important;
}

/*
 * Keep the category on its own clean row.
 */
body.single-product div.product
.product_meta .posted_in {
	display: block;
	width: 100%;
	margin: 0;
}

/*
 * Refine the optional installation information block.
 */
body.single-product
.mx-product-installation-info {
	gap: 12px;
	margin: 16px 0 18px;
	padding: 16px 18px;
	border-radius: 7px;
}

body.single-product
.mx-product-installation-info__icon {
	flex: 0 0 36px;
	width: 36px;
	height: 36px;
}

body.single-product
.mx-product-installation-info__icon svg {
	width: 20px;
	height: 20px;
}

body.single-product
.mx-product-installation-info__heading {
	gap: 7px;
	margin-bottom: 7px;
}

body.single-product
.mx-product-installation-info__heading h2 {
	font-size: 16px;
	line-height: 1.35;
}

body.single-product
.mx-product-installation-info__badge {
	min-height: 20px;
	padding: 2px 7px;
	font-size: 10px;
}

body.single-product
.mx-product-installation-info p {
	font-size: 13px;
	line-height: 1.55;
}

body.single-product
.mx-product-installation-info ul {
	gap: 5px;
	margin: 10px 0;
}

body.single-product
.mx-product-installation-info li {
	padding-left: 21px;
	font-size: 13px;
	line-height: 1.5;
}

body.single-product
.mx-product-installation-info
.mx-product-installation-info__confirmation {
	padding-top: 9px;
	font-size: 12px;
}

/*
 * Product tabs no longer need such a large separation
 * after removing the duplicate information tab.
 */
body.single-product
.woocommerce-tabs.wc-tabs-wrapper {
	margin-top: 28px;
}

@media (max-width: 767px) {
	body.single-product
	.mx-product-installation-info {
		gap: 10px;
		margin: 14px 0 16px;
		padding: 14px;
	}

	body.single-product
	.mx-product-installation-info__icon {
		flex-basis: 32px;
		width: 32px;
		height: 32px;
	}

	body.single-product
	.mx-product-installation-info__heading {
		align-items: flex-start;
		flex-direction: row;
		gap: 6px;
	}

	body.single-product
	.mx-product-installation-info__heading h2 {
		font-size: 15px;
	}

	body.single-product
	.woocommerce-tabs.wc-tabs-wrapper {
		margin-top: 20px;
	}
}


/* =====================================================
 * MX PARTDO PRODUCT META FIX
 *
 * Partdo renders tags as:
 * div.product-tags
 *
 * This is different from the standard WooCommerce
 * span.tagged_as markup.
 * ===================================================== */

/*
 * Do not force the Partdo bottom metadata container
 * into a horizontal flex row.
 */
body.single-product div.product
.product-meta.bottom.product_meta {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin-top: 28px;
	overflow: hidden;
}

/*
 * Product tags duplicate the visible specification table.
 *
 * Keep the tags stored in WordPress, but do not display
 * them on windshield product pages.
 */
body.single-product div.product
.product-meta.bottom.product_meta
.product-tags {
	display: none !important;
}

/*
 * Keep the product category as one clean row.
 */
body.single-product div.product
.product-meta.bottom.product_meta
.product-categories {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 14px 0 0 !important;
	white-space: normal !important;
	overflow-wrap: anywhere;
}

/*
 * Prevent category links from inheriting unwanted
 * nowrap rules from the theme.
 */
body.single-product div.product
.product-meta.bottom.product_meta
.product-categories a {
	display: inline;
	white-space: normal !important;
}

/*
 * Compact spacing before the remaining Reviews tab.
 */
body.single-product
.woocommerce-tabs.wc-tabs-wrapper {
	margin-top: 24px !important;
}

@media (max-width: 767px) {
	body.single-product div.product
	.product-meta.bottom.product_meta {
		margin-top: 22px;
	}

	body.single-product
	.woocommerce-tabs.wc-tabs-wrapper {
		margin-top: 18px !important;
	}
}


/* =====================================================
 * MX FINAL PARTDO DOM FIX
 * Exact selectors based on actual Partdo markup.
 * ===================================================== */

/*
 * Partdo product tags.
 *
 * Actual markup:
 * .single-product-wrapper
 * .product-detail
 * .product-meta.bottom.product_meta
 * .product-tags
 */
body.single-product
.single-product-wrapper
.product-detail
.product-meta.bottom.product_meta
.product-tags {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/*
 * Alternative selectors in case Partdo changes one wrapper.
 */
body.single-product
.product-detail
.product-meta.product_meta
.product-tags,
body.single-product
.product-meta.bottom.product_meta
.product-tags,
body.single-product
div.product-tags {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	max-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
}

/*
 * Restore a simple vertical product-meta layout.
 */
body.single-product
.single-product-wrapper
.product-detail
.product-meta.bottom.product_meta {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin-top: 26px !important;
	overflow: visible !important;
}

/*
 * Keep only the product category.
 */
body.single-product
.single-product-wrapper
.product-detail
.product-meta.bottom.product_meta
.product-categories {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 15px 0 0 !important;
	border-top: 1px solid #e5e7eb;
	white-space: normal !important;
	overflow-wrap: anywhere;
}


/* =====================================================
 * BACKORDER NOTICE TYPOGRAPHY
 * ===================================================== */

body.single-product
.mx-tuulilasi-backorder-extra {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

body.single-product
.mx-tuulilasi-backorder-extra__title {
	display: block !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
	font-weight: 700 !important;
	line-height: 1.45 !important;
}

body.single-product
.mx-tuulilasi-backorder-extra__text {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.55 !important;
}

body.single-product
.mx-tuulilasi-backorder-extra__text strong {
	font-weight: 700 !important;
}


/* =====================================================
 * CUSTOMER REVIEWS FORM FIX
 *
 * SVG Support converts the button graphic into:
 * svg.style-svg.replaced-svg
 * width="120" height="30"
 * ===================================================== */

body.single-product
#review_form
.cr-review-form-buttons {
	display: block !important;
	width: 100% !important;
}

body.single-product
#review_form
.cr-review-form-buttons
.cr-review-form-submit {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 44px !important;
	padding: 10px 18px !important;
	border: 0 !important;
	border-radius: 6px !important;
	overflow: hidden !important;
	line-height: 1.4 !important;
	text-align: center !important;
}

body.single-product
#review_form
.cr-review-form-buttons
.cr-review-form-submit > span {
	position: relative !important;
	z-index: 2 !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
}

/*
 * Remove the oversized converted SVG from the review submit button.
 */
body.single-product
#review_form
.cr-review-form-buttons
.cr-review-form-submit
svg.style-svg.replaced-svg,
body.single-product
#review_form
.cr-review-form-buttons
.cr-review-form-submit
svg[id^="svg-replaced-"] {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	min-width: 0 !important;
	max-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/*
 * Normalize review fields.
 */
body.single-product
#review_form
.cr-review-form-item {
	max-width: 100% !important;
	box-sizing: border-box !important;
}

body.single-product
#review_form
textarea,
body.single-product
#review_form
input[type="text"],
body.single-product
#review_form
input[type="email"] {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

@media (max-width: 767px) {
	body.single-product
	.single-product-wrapper
	.product-detail
	.product-meta.bottom.product_meta {
		margin-top: 20px !important;
	}

	body.single-product
	.single-product-wrapper
	.product-detail
	.product-meta.bottom.product_meta
	.product-categories {
		padding-top: 12px !important;
	}

	body.single-product
	.mx-tuulilasi-backorder-extra__title {
		margin-bottom: 5px !important;
	}
}


/* =====================================================
 * MX BACKORDER GUARANTEED GAP
 * Guaranteed spacing between title and description.
 * ===================================================== */

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 9px !important;
	width: 100% !important;
	margin: 10px 0 0 !important;
	padding: 12px 14px !important;
	box-sizing: border-box !important;
}

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra__title {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.4 !important;
}

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra__text {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.55 !important;
}

@media (max-width: 767px) {
	body.single-product
	.product-stock
	.mx-tuulilasi-backorder-extra {
		gap: 8px !important;
		padding: 11px 12px !important;
	}
}


/* =====================================================
 * MX PRODUCT TAGS RESTORE AND WRAP
 * Restore Partdo product tags and keep them inside column.
 * ===================================================== */

body.single-product
.single-product-wrapper
.product-detail
.product-meta.bottom.product_meta
.product-tags,
body.single-product
.product-detail
.product-meta.product_meta
.product-tags,
body.single-product
.product-meta.bottom.product_meta
.product-tags,
body.single-product
div.product-tags {
	display: flex !important;
	visibility: visible !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 6px !important;

	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: none !important;
	min-width: 0 !important;

	margin: 14px 0 0 !important;
	padding: 14px 0 0 !important;

	border-top: 1px solid #e5e7eb !important;
	overflow: visible !important;
	box-sizing: border-box !important;
}

/*
 * Put the Tunnisteet label on its own line.
 */
body.single-product
.product-meta.bottom.product_meta
.product-tags > span {
	display: block !important;
	flex: 0 0 100% !important;
	width: 100% !important;
	margin: 0 0 2px !important;
	padding: 0 !important;

	color: #8b95a5 !important;
	font-size: 12px !important;
	line-height: 1.4 !important;
	white-space: normal !important;
}

/*
 * Individual tag buttons.
 */
body.single-product
.product-meta.bottom.product_meta
.product-tags > a {
	display: inline-flex !important;
	align-items: center !important;

	flex: 0 1 auto !important;
	max-width: 100% !important;
	min-height: 28px !important;

	margin: 0 !important;
	padding: 5px 9px !important;

	border: 1px solid #d9dee7 !important;
	border-radius: 5px !important;
	background: #ffffff !important;

	color: #253247 !important;
	font-size: 12px !important;
	line-height: 1.35 !important;
	text-decoration: none !important;

	white-space: normal !important;
	overflow-wrap: anywhere !important;
	word-break: normal !important;
	box-sizing: border-box !important;
}

body.single-product
.product-meta.bottom.product_meta
.product-tags > a:hover {
	border-color: #10b981 !important;
	color: #087f5b !important;
}


/* =====================================================
 * MX BACKORDER VISIBLE TEXT SEPARATION
 * Make the title/body spacing visually obvious.
 * ===================================================== */

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra {
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;

	width: 100% !important;
	margin: 10px 0 0 !important;
	padding: 12px 14px !important;

	box-sizing: border-box !important;
}

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra__title {
	display: block !important;
	margin: 0 !important;
	padding: 0 0 9px !important;

	font-weight: 700 !important;
	line-height: 1.45 !important;
}

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra__text {
	display: block !important;
	margin: 0 !important;
	padding: 9px 0 0 !important;

	border-top: 1px solid rgba(159, 112, 0, 0.18) !important;

	line-height: 1.55 !important;
}

@media (max-width: 767px) {
	body.single-product
	.product-meta.bottom.product_meta
	.product-tags {
		gap: 5px !important;
		margin-top: 12px !important;
		padding-top: 12px !important;
	}

	body.single-product
	.product-meta.bottom.product_meta
	.product-tags > a {
		padding: 5px 8px !important;
		font-size: 11px !important;
	}

	body.single-product
	.product-stock
	.mx-tuulilasi-backorder-extra {
		padding: 11px 12px !important;
	}

	body.single-product
	.product-stock
	.mx-tuulilasi-backorder-extra__title {
		padding-bottom: 8px !important;
	}

	body.single-product
	.product-stock
	.mx-tuulilasi-backorder-extra__text {
		padding-top: 8px !important;
	}
}


/* =====================================================
 * MX BACKORDER FINAL VISIBLE SPACING
 * ===================================================== */

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra {
	gap: 0 !important;
}

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra__title {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra__text {
	display: block !important;
	margin: 16px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	line-height: 1.6 !important;
}

@media (max-width: 767px) {
	body.single-product
	.product-stock
	.mx-tuulilasi-backorder-extra__text {
		margin-top: 14px !important;
	}
}


/* =====================================================
 * MX BACKORDER TITLE MARGIN FINAL
 * Final spacing based on the actual Partdo markup.
 * ===================================================== */

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra {
	gap: 0 !important;
}

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra__title {
	display: block !important;
	margin: 0 0 10px !important;
	padding: 0 !important;
	border: 0 !important;
	line-height: 1.45 !important;
}

body.single-product
.product-stock
.mx-tuulilasi-backorder-extra__text {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	line-height: 1.55 !important;
}
