/* WooCommerce integration */
.mec-main--woocommerce { padding-block: clamp(34px, 5vw, 74px); background: #fff; }
.mec-shop-shell { display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; }
.mec-shop-shell.has-sidebar { grid-template-columns: 280px minmax(0, 1fr); }
.mec-shop-content { min-width: 0; }
.mec-shop-sidebar { min-width: 0; }
.mec-filter-close, .mec-filter-overlay { display: none; }

.woocommerce .woocommerce-breadcrumb { margin: 0 0 22px; color: var(--mec-muted); font-size: .82rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--mec-text); text-decoration: none; }
.woocommerce-products-header { margin-bottom: 30px; }
.woocommerce-products-header__title.page-title { margin-bottom: 12px; font-size: clamp(2.2rem, 4vw, 4rem); }
.term-description { max-width: 900px; color: var(--mec-muted); }
.woocommerce .woocommerce-result-count { margin: 10px 0 24px; color: var(--mec-muted); font-size: .88rem; }
.woocommerce .woocommerce-ordering { margin: 0 0 24px; }
.woocommerce .woocommerce-ordering select { min-width: 220px; min-height: 44px; background: #fff; }
.mec-filter-toggle { float: left; display: inline-flex; align-items: center; gap: 7px; min-height: 44px; margin: 0 12px 24px 0; border: 1px solid var(--mec-border); border-radius: var(--mec-radius-sm); background: #fff; color: var(--mec-navy); padding: 9px 14px; font-family: var(--mec-font-heading); font-weight: 700; }

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(var(--mec-shop-columns, 4), minmax(0, 1fr));
	gap: clamp(16px, 2.2vw, 28px);
	margin: 0;
	padding: 0;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products.columns-2 { --mec-shop-columns: 2; }
.woocommerce ul.products.columns-3 { --mec-shop-columns: 3; }
.woocommerce ul.products.columns-4 { --mec-shop-columns: 4; }
.woocommerce ul.products.columns-5 { --mec-shop-columns: 5; }
.woocommerce ul.products li.product {
	position: relative;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--mec-border);
	border-radius: var(--mec-radius);
	background: #fff;
	box-shadow: var(--mec-shadow-sm);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.woocommerce ul.products li.product:hover { transform: translateY(-5px); border-color: color-mix(in srgb, var(--mec-primary) 30%, var(--mec-border)); box-shadow: var(--mec-shadow); }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; color: var(--mec-text); text-decoration: none; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 1 / 1; margin: 0; object-fit: contain; background: linear-gradient(145deg, #fff, #f8fafc); padding: clamp(10px, 1.6vw, 20px); transition: transform .4s ease; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.025); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 3em; margin: 0; padding: 18px 18px 6px; color: var(--mec-navy); font-family: var(--mec-font-heading); font-size: 1rem; font-weight: 750; line-height: 1.35; letter-spacing: -.02em; }
.woocommerce ul.products li.product .price { margin: 0; padding: 6px 18px 0; color: var(--mec-primary); font-family: var(--mec-font-body) !important; font-size: 1.06rem; font-weight: 800; }
.woocommerce ul.products li.product .price del { color: var(--mec-muted); font-size: .85rem; font-weight: 500; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .star-rating { margin: 4px 18px 0; }
.woocommerce ul.products li.product .button { margin: 14px 18px 18px; border-radius: var(--mec-radius-sm); background: var(--mec-primary); color: #fff; padding: 13px 16px; font-family: var(--mec-font-heading); font-size: .84rem; font-weight: 750; text-align: center; }
.woocommerce ul.products li.product .button:hover { background: var(--mec-primary-dark); }
.woocommerce ul.products li.product .added_to_cart { margin: -8px 18px 16px; color: var(--mec-primary); font-size: .82rem; font-weight: 700; }
.woocommerce ul.products li.product .onsale { top: 12px; right: 12px; left: auto; min-width: 0; min-height: 0; margin: 0; border-radius: 999px; background: var(--mec-accent); padding: 6px 10px; font-family: var(--mec-font-heading); font-size: .7rem; line-height: 1; }
.mec-loop-excerpt { margin: 7px 18px 0 !important; color: var(--mec-muted); font-size: .8rem; line-height: 1.45; }
.mec-product-cta { display: flex; align-items: center; gap: 7px; margin: 0 18px 18px; color: var(--mec-primary); font-family: var(--mec-font-heading); font-size: .79rem; font-weight: 750; }
.mec-product-cta .mec-icon { width: 16px; height: 16px; }

/* Product page */
.woocommerce div.product { display: flow-root; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { margin-bottom: 60px; }
.woocommerce div.product div.images { width: min(56%, 760px); }
.woocommerce div.product div.summary { width: calc(44% - 46px); }
body.mec-product-summary-sticky .woocommerce div.product div.summary { position: sticky; top: calc(var(--mec-admin-bar) + 102px); }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { overflow: hidden; border: 1px solid var(--mec-border); border-radius: var(--mec-radius); background: #fff; }
.woocommerce div.product div.images .woocommerce-product-gallery__image a { display: grid; place-items: center; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { width: 100%; max-height: 760px; object-fit: contain; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.woocommerce div.product div.images .flex-control-thumbs li { float: none; width: auto; }
.woocommerce div.product div.images .flex-control-thumbs img { border: 1px solid var(--mec-border); border-radius: 8px; background: #fff; opacity: .72; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { border-color: var(--mec-primary); opacity: 1; }
.woocommerce div.product .product_title { margin: 0 0 14px; font-size: clamp(2rem, 3.2vw, 3.5rem); }
.woocommerce div.product .woocommerce-product-rating { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.woocommerce div.product p.price, .woocommerce div.product span.price,
.woocommerce div.product [class*="net-price"], .woocommerce div.product [class*="gross-price"],
.woocommerce div.product [class*="price-net"], .woocommerce div.product [class*="price-gross"],
.woocommerce div.product [class*="netto"], .woocommerce div.product [class*="brutto"],
.woocommerce div.product [class*="vat"], .woocommerce div.product [class*="tax"] {
	font-family: var(--mec-font-body) !important;
}
.woocommerce div.product p.price, .woocommerce div.product span.price { margin: 16px 0; color: var(--mec-primary); font-size: clamp(1.5rem, 2.4vw, 2.15rem); font-weight: 800; }
.woocommerce div.product .woocommerce-product-details__short-description { margin: 20px 0; color: #445065; }
.woocommerce div.product form.cart { margin: 26px 0 18px; padding: 22px; border: 1px solid var(--mec-border); border-radius: var(--mec-radius); background: var(--mec-soft); }
.woocommerce div.product form.cart::after { content: ""; display: table; clear: both; }
.woocommerce div.product form.cart .variations { margin-bottom: 18px; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; border: 0; padding: 0; text-align: left; }
.woocommerce div.product form.cart .variations th { margin: 12px 0 6px; color: var(--mec-navy); font-family: var(--mec-font-heading); font-size: .86rem; }
.woocommerce div.product form.cart .variations select { max-width: none; }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: 8px; font-size: .78rem; }
.woocommerce .quantity .qty { width: 72px; min-height: 48px; }
.woocommerce div.product form.cart .button { min-height: 48px; border-radius: var(--mec-radius-sm); background: var(--mec-primary); padding: 14px 24px; font-family: var(--mec-font-heading); font-weight: 800; }
.woocommerce div.product form.cart .button:hover { background: var(--mec-primary-dark); }
.woocommerce div.product .single_variation_wrap .woocommerce-variation-price { margin: 14px 0; }
.woocommerce div.product .product_meta { display: grid; gap: 5px; border-top: 1px solid var(--mec-border); padding-top: 18px; color: var(--mec-muted); font-size: .8rem; }
.woocommerce div.product .product_meta a { color: var(--mec-text); text-decoration: none; }
.mec-product-trust { display: grid; gap: 8px; margin-top: 16px; }
.mec-product-trust > div { display: flex; align-items: center; gap: 9px; color: var(--mec-muted); font-size: .82rem; }
.mec-product-trust .mec-icon { width: 18px; color: var(--mec-accent); }

.woocommerce div.product .woocommerce-tabs { clear: both; margin-top: 30px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 8px; margin: 0 0 0; padding: 0; overflow-x: auto; border-bottom: 1px solid var(--mec-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; border: 0; border-radius: 0; background: transparent; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 14px 18px; color: var(--mec-muted); font-family: var(--mec-font-heading); font-size: .86rem; font-weight: 750; white-space: nowrap; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--mec-primary); box-shadow: inset 0 -3px var(--mec-primary); }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 34px 0 20px; color: var(--mec-text); }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { font-size: 1.8rem; }
.woocommerce .related.products, .woocommerce .upsells.products { clear: both; padding-top: 60px; }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { margin-bottom: 28px; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border: 1px solid var(--mec-border); border-top: 4px solid var(--mec-primary); border-radius: var(--mec-radius-sm); background: #fff; box-shadow: var(--mec-shadow-sm); color: var(--mec-text); padding: 18px 20px 18px 48px; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--mec-primary); }
.woocommerce-error { border-top-color: #dc2626; }
.woocommerce-error::before { color: #dc2626; }

/* Cart and checkout */
.woocommerce table.shop_table { border: 1px solid var(--mec-border); border-radius: var(--mec-radius); background: #fff; overflow: hidden; }
.woocommerce table.shop_table th { color: var(--mec-navy); font-family: var(--mec-font-heading); }
.woocommerce table.shop_table td { border-top: 1px solid var(--mec-border); }
.woocommerce-cart table.cart img { width: 84px; border-radius: 9px; }
.woocommerce-cart table.cart .product-name a { color: var(--mec-navy); font-family: var(--mec-font-heading); font-weight: 700; text-decoration: none; }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: min(100%, 520px); margin-left: auto; border: 1px solid var(--mec-border); border-radius: var(--mec-radius); padding: 24px; box-shadow: var(--mec-shadow-sm); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit { border-radius: var(--mec-radius-sm); background: var(--mec-primary); color: #fff; font-family: var(--mec-font-heading); font-weight: 750; padding: 13px 18px; }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce #respond input#submit:hover { background: var(--mec-primary-dark); color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt { background: var(--mec-primary); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover { background: var(--mec-primary-dark); }
.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; width: 100%; }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { float: none; width: auto; }
.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { width: min(100%, 720px); margin-left: auto; }
.woocommerce-checkout #order_review { border: 1px solid var(--mec-border); border-radius: var(--mec-radius); background: #fff; padding: 22px; box-shadow: var(--mec-shadow-sm); }
.woocommerce-checkout #payment { border-radius: var(--mec-radius); background: var(--mec-soft); }
.woocommerce-checkout #payment div.payment_box { background: #fff; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }

/* Account */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 34px; }
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 10px; list-style: none; border: 1px solid var(--mec-border); border-radius: var(--mec-radius); background: #fff; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 10px 12px; border-radius: 8px; color: var(--mec-text); font-weight: 650; text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: var(--mec-soft); color: var(--mec-primary); }
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }

/* Widgets */
.widget_price_filter .price_slider_wrapper .ui-widget-content { background: #d9e2ef; }
.widget_price_filter .ui-slider .ui-slider-range, .widget_price_filter .ui-slider .ui-slider-handle { background: var(--mec-primary); }
.woocommerce-widget-layered-nav-list__item { display: flex; justify-content: space-between; gap: 8px; }

@media (max-width: 1180px) {
	.woocommerce ul.products { --mec-shop-columns: 3 !important; }
	.mec-shop-shell.has-sidebar { grid-template-columns: 240px minmax(0, 1fr); }
}
@media (max-width: 960px) {
	.mec-shop-shell.has-sidebar { grid-template-columns: 1fr; }
	.mec-shop-sidebar { position: fixed; z-index: 1100; top: 0; left: 0; width: min(88vw, 360px); height: 100%; overflow: auto; background: #fff; padding: 56px 18px 20px; transform: translateX(-105%); transition: transform .25s ease; }
	body.mec-filter-open .mec-shop-sidebar { transform: translateX(0); }
	.mec-filter-close { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--mec-border); border-radius: 9px; background: #fff; }
	.mec-filter-overlay { position: fixed; z-index: 1090; inset: 0; display: block; background: rgba(11,23,57,.56); }
	body:not(.mec-filter-open) .mec-filter-overlay { display: none; }
	.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100%; }
	body.mec-product-summary-sticky .woocommerce div.product div.summary { position: static; }
	.woocommerce-checkout .col2-set { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	.woocommerce ul.products { --mec-shop-columns: 2 !important; gap: 12px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 0; padding: 13px 12px 4px; font-size: .88rem; }
	.woocommerce ul.products li.product .price { padding-inline: 12px; font-size: .92rem; }
	.woocommerce ul.products li.product .button { margin: 11px 12px 12px; padding: 11px 10px; font-size: .75rem; }
	.mec-product-cta { margin-inline: 12px; font-size: .72rem; }
	.mec-loop-excerpt { display: none; }
	.woocommerce div.product form.cart { padding: 16px; }
	.woocommerce div.product .product_title { font-size: 2rem; }
	.woocommerce div.product .woocommerce-tabs ul.tabs { display: block; border: 0; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li { display: block; border-bottom: 1px solid var(--mec-border); }
	.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding-inline: 4px; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { box-shadow: none; color: var(--mec-primary); }
	.woocommerce table.shop_table_responsive tr, .woocommerce-page table.shop_table_responsive tr { margin-bottom: 12px; border: 1px solid var(--mec-border); border-radius: 10px; padding: 8px; }
}


/* 1.1.7: protect single-product pages from archive-only Store Builder markup
   left in a page cache by an earlier plugin version. */
body.single-product :where(
	.mxsb-shop-hero,
	.mxsb-shop-categories,
	.mxsb-shop-products,
	.mxsb-archive-b2b,
	.mxsb-archive-seo,
	.mxsb-shop-filter-drawer,
	.mxsb-shop-filter-overlay
) {
	display: none !important;
}

body.single-product .mec-shop-content,
body.single-product .woocommerce div.product {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}
