/**
 * ESTYMA WooCommerce overrides
 *
 * Makes the WooCommerce frontend consistent with the ESTYMA homepage.
 */

.woocommerce-section .woocommerce {
	color: var(--text);
}

.woocommerce-section .woocommerce-breadcrumb {
	font-size: 0.875rem;
	color: var(--muted);
	margin-bottom: 1.5rem;
}

.woocommerce-section .woocommerce-breadcrumb a {
	color: var(--accent);
	text-decoration: none;
	font-weight: 700;
}

.woocommerce-section .woocommerce-breadcrumb a:hover {
	text-decoration: underline;
}

.woocommerce-section .woocommerce-products-header__title {
	font-size: 40px;
	font-weight: 820;
	line-height: 1.15;
	color: var(--text);
	margin-bottom: 2rem;
}

.woocommerce-section .woocommerce-loop-product__title,
.woocommerce-section .product .product_title {
	font-family: inherit;
	font-weight: 820;
	color: var(--text);
	line-height: 1.2;
}

.woocommerce-section .woocommerce-loop-product__title {
	font-size: 20px;
	margin: 0 0 0.5rem;
}

.woocommerce-section .product .product_title {
	font-size: 2.25rem;
	margin-bottom: 1rem;
}

.woocommerce-section .price,
.woocommerce-section .woocommerce-Price-amount {
	font-weight: 760;
	color: var(--accent);
}

/* Cena netto i brutto */
.woocommerce-section .price .woocommerce-price-suffix,
.woocommerce-section .tiered-pricing-dynamic-price-wrapper .woocommerce-price-suffix {
	display: block;
	margin-top: 0.125rem;
	color: var(--muted);
	font-size: 0.5em;
	font-weight: 600;
	line-height: 1.3;
}

.woocommerce-section .woocommerce-price-suffix .woocommerce-Price-amount {
	color: inherit;
	font-weight: 700;
}

.woocommerce-section .price del {
	color: var(--muted);
	font-weight: 500;
	margin-right: 0.5rem;
}

.woocommerce-section .price ins {
	text-decoration: none;
}

.woocommerce-section .product .button,
.woocommerce-section .woocommerce-button,
.woocommerce-section .button,
.woocommerce-section .checkout-button,
.woocommerce-section .woocommerce-mini-cart__buttons .button,
.woocommerce-section ul.products li.product .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 46px;
	padding: 13px 24px;
	border: 1px solid transparent;
	border-radius: 3px;
	background: var(--accent);
	color: var(--white);
	font-family: inherit;
	font-size: 14px;
	font-weight: 750;
	line-height: 1;
	text-align: center;
	cursor: pointer;
	text-decoration: none;
	transition: transform 180ms ease, background 180ms ease, border-color 180ms ease, color 180ms ease;
}

.woocommerce-section .product .button:hover,
.woocommerce-section .woocommerce-button:hover,
.woocommerce-section .button:hover,
.woocommerce-section .checkout-button:hover,
.woocommerce-section ul.products li.product .button:hover {
	background: var(--accent-dark);
	color: var(--white);
	transform: translateY(-1px);
}

.woocommerce-section .button.alt,
.woocommerce-section .checkout-button {
	background: var(--graphite);
	color: var(--white);
}

.woocommerce-section .button.alt:hover,
.woocommerce-section .checkout-button:hover {
	background: #000;
}

.woocommerce-section .woocommerce-form-login .woocommerce-form-login__submit,
.woocommerce-section .woocommerce-form-register .woocommerce-form-register__submit,
.woocommerce-section .woocommerce-Button {
	background: var(--accent);
	color: var(--white);
	border-color: var(--accent);
}

.woocommerce-section .woocommerce-form-login .woocommerce-form-login__submit:hover,
.woocommerce-section .woocommerce-form-register .woocommerce-form-register__submit:hover,
.woocommerce-section .woocommerce-Button:hover {
	background: var(--accent-dark);
	border-color: var(--accent-dark);
}

/* Customer account: one clear navigation rail and a calm content panel. */
.woocommerce-section .woocommerce-MyAccount-navigation {
	float: none;
	width: 240px;
	margin: 0;
	border: 1px solid var(--line);
	background: #f6f7f8;
}

.woocommerce-section .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-section .woocommerce-MyAccount-navigation li {
	margin: 0;
	border-bottom: 1px solid var(--line);
}

.woocommerce-section .woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 58px;
	padding: 13px 18px 13px 15px;
	border-left: 3px solid transparent;
	color: var(--text);
	font-size: 15px;
	font-weight: 760;
	text-decoration: none;
	transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.woocommerce-section .woocommerce-MyAccount-navigation a:hover,
.woocommerce-section .woocommerce-MyAccount-navigation .is-active a {
	border-left-color: var(--accent);
	background: var(--white);
	color: var(--accent);
}

.woocommerce-section .woocommerce-MyAccount-content {
	min-height: 340px;
	overflow-x: auto;
	padding: clamp(28px, 4vw, 44px);
	border: 1px solid var(--line);
	background: var(--white);
}

.woocommerce-section .woocommerce-MyAccount-content > :first-child {
	margin-top: 0;
}

.woocommerce-section .woocommerce-MyAccount-content a:not(.button) {
	color: var(--accent);
	font-weight: 720;
}

.woocommerce-section .woocommerce-MyAccount-content a:not(.button):hover {
	color: var(--accent-dark);
}

.woocommerce-section .woocommerce-ResetPassword {
	max-width: 700px;
	margin: 0 auto;
	padding: clamp(28px, 4vw, 48px);
	border: 1px solid var(--line);
	background: var(--white);
}

.woocommerce-section .woocommerce-ResetPassword h1 {
	margin: 0 0 20px;
	font-size: clamp(30px, 4vw, 42px);
	line-height: 1.15;
}

.woocommerce-section .woocommerce-ResetPassword > p:first-child {
	margin: 0 0 28px;
	font-size: 18px;
	line-height: 1.65;
}

.woocommerce-section .woocommerce-ResetPassword .form-row {
	margin-bottom: 20px;
}

.woocommerce-section .woocommerce-ResetPassword .form-row-first {
	float: none;
	width: 100%;
}

.woocommerce-section .woocommerce-ResetPassword button.woocommerce-Button {
	background: var(--accent) !important;
	border-color: var(--accent) !important;
	color: var(--white) !important;
}

.woocommerce-section .woocommerce-ResetPassword button.woocommerce-Button:hover {
	background: var(--accent-dark) !important;
	border-color: var(--accent-dark) !important;
}

.woocommerce-section .woocommerce-form-login,
.woocommerce-section .woocommerce-form-register {
	max-width: 560px;
	margin-inline: auto;
	padding: clamp(28px, 4vw, 48px);
}

/* Public account forms share one balanced two-panel layout. */
.woocommerce-account .woocommerce-section .woocommerce {
	width: 100%;
	max-width: none;
}

.wp-block-estyma-woocommerce-account.is-logged-in > .woocommerce {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}
.wp-block-estyma-woocommerce-account.is-logged-in > .woocommerce::before,
.wp-block-estyma-woocommerce-account.is-logged-in > .woocommerce::after {
	display: none;
	content: none;
}
.wp-block-estyma-woocommerce-account.is-logged-in .woocommerce-MyAccount-navigation {
	grid-column: 1;
	grid-row: 1;
}
.wp-block-estyma-woocommerce-account.is-logged-in .woocommerce-MyAccount-content {
	grid-column: 2;
	grid-row: 1;
	width: auto !important;
	min-width: 0;
}

.woocommerce-account .woocommerce-section .estyma-account-header {
	max-width: 760px;
	margin: 0 0 36px;
}
.woocommerce-account .woocommerce-section .estyma-account-header .eyebrow { margin: 0 0 10px; }
.woocommerce-account .woocommerce-section .estyma-account-header h1 { margin: 0; font-size: clamp(36px, 5vw, 52px); line-height: 1.08; }
.woocommerce-account .woocommerce-section .estyma-account-header p:last-child { margin: 14px 0 0; color: var(--muted); font-size: 17px; }

.woocommerce-account .woocommerce-section .estyma-account-intro {
	max-width: 700px;
	margin: 0 auto 44px;
	text-align: center;
}

.woocommerce-account .woocommerce-section .estyma-account-intro .eyebrow { margin-bottom: 12px; }
.woocommerce-account .woocommerce-section .estyma-account-intro h1 { margin: 0; font-size: clamp(36px, 5vw, 52px); line-height: 1.08; }
.woocommerce-account .woocommerce-section .estyma-account-intro p:last-child { margin: 16px 0 0; color: var(--muted); font-size: 17px; }

.woocommerce-account .woocommerce-section .u-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 0; }
.woocommerce-account .woocommerce-section .u-columns::before,
.woocommerce-account .woocommerce-section .u-columns::after { display: none; }
.woocommerce-account .woocommerce-section .u-column1,
.woocommerce-account .woocommerce-section .u-column2,
.woocommerce-account .woocommerce-section .col-1,
.woocommerce-account .woocommerce-section .col-2 { float: none; width: auto; margin: 0; }

.woocommerce-account .woocommerce-section .u-columns h2 { margin: 0; padding: 28px 34px 0; font-size: 26px; line-height: 1.2; }
.woocommerce-account .woocommerce-section .u-columns form.login,
.woocommerce-account .woocommerce-section .u-columns form.register { max-width: none; min-height: 355px; margin: 0; padding: 28px 34px 34px; border: 1px solid var(--line); border-top: 0; background: var(--white); }
.woocommerce-account .woocommerce-section .u-columns .form-row { margin-bottom: 20px; }
.woocommerce-account .woocommerce-section .u-columns .woocommerce-privacy-policy-text { margin: 24px 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.woocommerce-account .woocommerce-section .u-columns .woocommerce-LostPassword { margin: 20px 0 0; }
.woocommerce-account .woocommerce-section .u-columns .woocommerce-form-login__rememberme { margin: 0 16px 0 0; }
.woocommerce-account .woocommerce-section .u-columns .woocommerce-button { margin-top: 0; }

@media (max-width: 760px) {
	.woocommerce-account .woocommerce-section .u-columns { grid-template-columns: 1fr; gap: 20px; }
	.woocommerce-account .woocommerce-section .u-columns h2 { padding: 24px 24px 0; }
	.woocommerce-account .woocommerce-section .u-columns form.login,
	.woocommerce-account .woocommerce-section .u-columns form.register { min-height: 0; padding: 24px; }
	.woocommerce-section .woocommerce-MyAccount-navigation {
		float: none;
		width: auto;
		margin: 0 0 28px;
	}

	.wp-block-estyma-woocommerce-account.is-logged-in > .woocommerce {
		display: block;
	}

	.woocommerce-section .woocommerce-MyAccount-navigation ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		border-left: 1px solid var(--line);
	}

	.woocommerce-section .woocommerce-MyAccount-navigation li {
		border-left: 0;
		border-right: 1px solid var(--line);
	}

	.woocommerce-section .woocommerce-MyAccount-navigation a {
		min-height: 64px;
		padding: 12px 14px 12px 11px;
	}

	.woocommerce-section .woocommerce-MyAccount-content {
		min-height: 0;
		padding: 24px;
	}
}

.woocommerce-section .wc-block-cart__submit-button,
.woocommerce-section .wc-block-components-checkout-place-order-button {
	background: var(--accent) !important;
	color: var(--white) !important;
	border-color: var(--accent) !important;
}

.woocommerce-section .wc-block-cart__submit-button:hover,
.woocommerce-section .wc-block-components-checkout-place-order-button:hover {
	background: var(--accent-dark) !important;
	border-color: var(--accent-dark) !important;
}

.woocommerce-section button.single_add_to_cart_button.button.alt {
	background: var(--accent);
	color: var(--white);
	border-color: var(--accent);
	flex: 1;
}

.woocommerce-section button.single_add_to_cart_button.button.alt:hover {
	background: var(--accent-dark);
	border-color: var(--accent-dark);
}

.woocommerce-section .woocommerce-loop-product__link {
	text-decoration: none;
	color: inherit;
	display: block;
}

/* Product grids (shop, related, upsells). The WooCommerce wrapper div with the
   .woocommerce class is not present inside .woocommerce-section, so the rules
   below target ul.products directly and override the core float layout. */
.woocommerce-section .woocommerce ul.products,
.woocommerce-section ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
	list-style: none;
	padding: 0;
	margin: 0;
	clear: both;
}

.woocommerce-section ul.products::before,
.woocommerce-section ul.products::after {
	display: none;
}

.woocommerce-section ul.products.columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.woocommerce-section .woocommerce ul.products li.product,
.woocommerce-section ul.products li.product,
.woocommerce-section ul.products[class*="columns-"] li.product {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(217, 221, 226, 0.78);
	border-radius: 0;
	background: var(--white);
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: none;
	margin: 0;
	float: none;
	clear: none;
	transition: box-shadow 180ms ease, transform 180ms ease, border-color 180ms ease;
}

.woocommerce-section ul.products li.product::before,
.woocommerce-section ul.products li.product::after {
	display: none;
}

.woocommerce-section ul.products li.product:hover {
	border-color: rgba(255, 102, 0, 0.35);
	box-shadow: 0 22px 55px rgba(17, 19, 24, 0.1);
	transform: translateY(-2px);
}

.woocommerce-section ul.products li.product > a:first-child {
	flex: 1 1 auto;
}

.woocommerce-section ul.products li.product img {
	width: 100%;
	height: 240px;
	object-fit: cover;
	background: var(--surface);
	display: block;
}

.woocommerce-section ul.products li.product .woocommerce-loop-product__title,
.woocommerce-section ul.products li.product .price {
	padding: 0 24px;
}

.woocommerce-section ul.products li.product .woocommerce-loop-product__title {
	margin-top: 24px;
	font-size: 1rem;
	font-weight: 760;
	line-height: 1.35;
}

.woocommerce-section ul.products li.product .price {
	margin: 0 0 1rem;
	font-size: 1.1rem;
}

.woocommerce-section ul.products li.product .button {
	margin: auto 24px 24px;
	width: calc(100% - 48px);
	position: relative;
}

/* Loading spinner on archive "Add to cart" buttons */
.woocommerce-section ul.products li.product .button.loading::after {
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	color: var(--white);
}

.woocommerce-section ul.products li.product .button.added {
	padding-right: 44px;
}

.woocommerce-section ul.products li.product .button.added::after {
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	color: var(--white);
}

/* "View cart" link shown after AJAX add-to-cart */
.woocommerce-section ul.products li.product .added_to_cart {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	padding: 10px 20px;
	border: 1px solid var(--accent);
	border-radius: 3px;
	background: var(--accent-soft);
	color: var(--accent);
	font-size: 13px;
	font-weight: 750;
	text-decoration: none;
	width: calc(100% - 48px);
	margin: -16px 24px 24px;
	transition: background 180ms ease, color 180ms ease;
}

.woocommerce-section ul.products li.product .added_to_cart:hover {
	background: var(--accent);
	color: var(--white);
}

.woocommerce-section .woocommerce-pagination {
	margin-top: 3rem;
	text-align: center;
}

.woocommerce-section .woocommerce-pagination ul.page-numbers,
.woocommerce-section nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: 0.5rem;
	list-style: none;
	padding: 0;
	margin: 0;
	border: 0;
}

.woocommerce-section .woocommerce-pagination ul li,
.woocommerce-section nav.woocommerce-pagination ul li {
	border: 0;
	display: block;
	float: none;
}

.woocommerce-section .woocommerce-pagination .page-numbers a,
.woocommerce-section .woocommerce-pagination .page-numbers span,
.woocommerce-section .woocommerce-pagination .page-numbers.current {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	min-height: 46px;
	padding: 0 16px;
	border: 1px solid var(--line);
	border-radius: 3px;
	text-decoration: none;
	font-weight: 750;
	font-size: 14px;
	color: var(--text);
	background: var(--white);
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
}

.woocommerce-section .woocommerce-pagination .page-numbers a:hover {
	border-color: var(--accent);
	color: var(--accent);
}

.woocommerce-section .woocommerce-pagination .page-numbers.current {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--white);
}

.woocommerce-section .woocommerce-info,
.woocommerce-section .woocommerce-message,
.woocommerce-section .woocommerce-error,
.woocommerce-section .woocommerce-notices-wrapper {
	border-radius: 0;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
}

.woocommerce-section .woocommerce-message {
	background: var(--accent-soft);
	border: 1px solid rgba(255, 102, 0, 0.25);
	color: var(--text);
}

.woocommerce-section .woocommerce-info {
	background: var(--surface);
	border: 1px solid var(--line);
	color: var(--text);
}

.woocommerce-section .woocommerce-error {
	background: #fdecea;
	border: 1px solid #c92a2a;
	color: #c92a2a;
}

.woocommerce-section form.checkout_coupon,
.woocommerce-section form.login,
.woocommerce-section form.register,
.woocommerce-section .woocommerce-form {
	border: 1px solid var(--line);
	border-radius: 0;
	padding: 1.5rem;
	margin-bottom: 1.5rem;
	background: var(--white);
}

.woocommerce-section input[type="text"],
.woocommerce-section input[type="email"],
.woocommerce-section input[type="tel"],
.woocommerce-section input[type="password"],
.woocommerce-section input[type="number"],
.woocommerce-section input[type="search"],
.woocommerce-section textarea,
.woocommerce-section select {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid var(--line);
	border-radius: 0;
	font: inherit;
	background: var(--white);
	color: var(--text);
}

.woocommerce-section input:focus,
.woocommerce-section textarea:focus,
.woocommerce-section select:focus {
	outline: none;
	border-color: var(--accent);
}

.woocommerce-section table.shop_table,
.woocommerce-section .woocommerce-checkout-review-order-table,
.woocommerce-section .woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5rem;
	border: 1px solid var(--line);
}

.woocommerce-section table.shop_table th,
.woocommerce-section table.shop_table td {
	border-bottom: 1px solid var(--line);
	padding: 0.75rem;
	text-align: left;
}

.woocommerce-section .woocommerce-cart-form__contents img,
.woocommerce-section .wc-block-cart-items img {
	width: 80px;
	height: 80px;
	object-fit: contain;
	background: var(--surface);
	display: block;
}

/* The cart block has no terms block of its own, so the note under the checkout button
   is a plain paragraph; it should read as fine print, not as body copy. */
.woocommerce-section .cart-terms-note {
	margin: 0.75rem 0 0;
	color: var(--muted);
	font-size: 0.8125rem;
	line-height: 1.5;
	text-align: center;
}

/* Touch targets in the cart. WooCommerce gives the quantity buttons 30 px of width and
   the remove button 24 x 24 px, too small to hit with a finger. The container wraps
   because at a 320 px window the product column is 159 px wide and the enlarged
   controls no longer fit side by side on one line. */
.woocommerce-section .wc-block-cart-item__quantity {
	flex-wrap: wrap;
	row-gap: 0.5rem;
}

/* The plugin pins the quantity frame to `width: 107px`, a figure worked out for 30 px
   buttons. Without releasing that width the enlarged buttons overflow the frame and
   slide underneath the remove button. */
.woocommerce-section .wc-block-components-quantity-selector {
	width: auto;
}

.woocommerce-section .wc-block-components-quantity-selector__button {
	width: 44px;
	min-width: 44px;
}

/* The selector matches the depth of the plugin's own rule
   (`table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity
   .wc-block-cart-item__remove-link`) so there is no need to reach for `!important`. */
.woocommerce-section table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
}

.woocommerce-section .woocommerce-mini-cart__buttons {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.woocommerce-section .woocommerce-mini-cart__buttons .button {
	width: 100%;
}

/* Product tabs */
.woocommerce-section .woocommerce-tabs {
	clear: both;
}

.woocommerce-section .woocommerce-tabs ul.tabs {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	border-bottom: 1px solid var(--line);
}

.woocommerce-section .woocommerce-tabs ul.tabs::before,
.woocommerce-section .woocommerce-tabs ul.tabs::after {
	display: none;
}

.woocommerce-section .woocommerce-tabs ul.tabs li,
.woocommerce .woocommerce-section .woocommerce-tabs ul.tabs li,
.woocommerce-section div.product .woocommerce-tabs ul.tabs li {
	margin: 0 0 -1px;
	padding: 0;
	border: 0;
	background-color: transparent;
	border-radius: 0;
	box-shadow: none;
}

.woocommerce-section .woocommerce-tabs ul.tabs li::before,
.woocommerce-section .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce-section .woocommerce-tabs ul.tabs li a,
.woocommerce .woocommerce-section .woocommerce-tabs ul.tabs li a,
.woocommerce-section div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.875rem 1.5rem;
	border: 0;
	border-bottom: 2px solid transparent;
	text-decoration: none;
	font-weight: 760;
	font-size: 0.95rem;
	color: var(--muted);
	background-color: transparent;
	transition: color 180ms ease, border-color 180ms ease;
}

.woocommerce-section .woocommerce-tabs ul.tabs li a:hover {
	color: var(--text);
	border-bottom-color: var(--accent);
}

.woocommerce-section .woocommerce-tabs ul.tabs li.active a,
.woocommerce .woocommerce-section .woocommerce-tabs ul.tabs li.active a,
.woocommerce-section div.product .woocommerce-tabs ul.tabs li.active a {
	background-color: transparent;
	color: var(--text);
	border-bottom-color: var(--accent);
}

.woocommerce-section .woocommerce-tabs .panel {
	padding: 1.75rem 0 0.5rem;
	color: var(--text);
}

.woocommerce-section .woocommerce-tabs .panel > h2:first-child {
	font-size: 1.375rem;
	font-weight: 820;
	margin: 0 0 1rem;
}

.woocommerce-section .woocommerce-tabs .panel p {
	margin: 0 0 0.75rem;
	line-height: 1.65;
}

/* Additional information table */
.woocommerce-section .woocommerce-tabs table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--line);
	margin: 0;
}

.woocommerce-section .woocommerce-tabs table.shop_attributes th,
.woocommerce-section .woocommerce-tabs table.shop_attributes td {
	border-bottom: 1px solid var(--line);
	padding: 0.75rem 1rem;
	text-align: left;
	vertical-align: top;
}

.woocommerce-section .woocommerce-tabs table.shop_attributes th {
	width: 220px;
	background: var(--surface);
	font-weight: 760;
	color: var(--text);
}

.woocommerce-section .woocommerce-tabs table.shop_attributes td p {
	margin: 0;
}

/* Reviews */
.woocommerce-section .woocommerce-tabs #reviews .commentlist {
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
}

.woocommerce-section .woocommerce-tabs #reviews .commentlist li {
	border: 1px solid var(--line);
	padding: 1rem 1.25rem;
	margin-bottom: 1rem;
	background: var(--white);
}

.woocommerce-section .woocommerce-tabs #reviews .comment_container {
	display: flex;
	gap: 1rem;
}

.woocommerce-section .woocommerce-tabs #reviews .comment_container img {
	width: 48px;
	height: 48px;
	border-radius: 50%;
}

.woocommerce-section .woocommerce-tabs #review_form_wrapper {
	border: 1px solid var(--line);
	background: var(--surface);
	padding: 1.5rem;
}

.woocommerce-section .woocommerce-tabs #review_form .comment-reply-title {
	font-weight: 820;
	font-size: 1.125rem;
}

.single-product .woocommerce-section .product.type-product {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	gap: clamp(32px, 4vw, 56px);
	align-items: start;
}

.single-product .woocommerce-section .product.type-product .woocommerce-product-gallery,
.single-product .woocommerce-section .product.type-product .summary {
	width: 100%;
	float: none;
}

.single-product .woocommerce-section .product.type-product .summary {
	display: flex;
	flex-direction: column;
	gap: 0;
	min-width: 0;
	padding: clamp(24px, 2.5vw, 34px);
	border: 1px solid var(--line);
	border-radius: 6px;
	background: var(--white);
	box-shadow: 0 18px 50px rgba(17, 19, 24, 0.07);
}

.single-product .woocommerce-section .product.type-product .summary form.cart:not(.variations_form),
.single-product .woocommerce-section .product.type-product .summary .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}

.single-product .woocommerce-section .product.type-product .summary form.variations_form {
	display: block;
	width: 100%;
	margin: 0;
}

.single-product .woocommerce-section .product.type-product .product_title {
	margin: 0 0 1rem;
	font-size: clamp(1.875rem, 2vw, 2rem);
	line-height: 1.12;
	letter-spacing: -0.025em;
}

.single-product .woocommerce-section .product.type-product .summary > .price {
	margin: 0 0 1.5rem;
	font-size: clamp(1.75rem, 2.25vw, 2.125rem);
	line-height: 1.2;
}

.single-product .woocommerce-section .woocommerce-product-gallery {
	min-width: 0;
}

.single-product .woocommerce-section .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-section .woocommerce-product-gallery__wrapper {
	border: 1px solid var(--line);
	border-radius: 6px;
	background: var(--white);
	overflow: hidden;
}

.single-product .woocommerce-section .woocommerce-product-gallery__image a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: clamp(420px, 36vw, 520px);
	padding: 24px;
	box-sizing: border-box;
}

.single-product .woocommerce-section .woocommerce-product-gallery__image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
}

.single-product .woocommerce-section .woocommerce-product-gallery__image img[src*="estyma-stick"] {
	transform: scale(1.22);
}

.single-product .woocommerce-section .woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin-top: 12px;
	padding-bottom: 4px;
	overflow-x: auto;
	scrollbar-width: thin;
}

.single-product .woocommerce-section .woocommerce-product-gallery .flex-control-thumbs li {
	flex: 0 0 76px;
	width: 76px;
	margin: 0;
}

.single-product .woocommerce-section .woocommerce-product-gallery .flex-control-thumbs img {
	aspect-ratio: 1;
	border: 1px solid var(--line);
	border-radius: 3px;
	object-fit: contain;
	background: var(--white);
}

.single-product .woocommerce-section .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	border-color: var(--accent);
}

/* Variable product controls */
.single-product .woocommerce-section form.variations_form table.variations {
	width: 100%;
	margin: 0 0 0.5rem;
}

.single-product .woocommerce-section form.variations_form table.variations tbody {
	display: block;
	width: 100%;
}

.single-product .woocommerce-section form.variations_form table.variations tr {
	display: block;
	width: 100%;
	margin-bottom: 1.125rem;
}

.single-product .woocommerce-section form.variations_form table.variations th.label {
	display: block;
	width: auto;
	padding: 0 0 0.5rem;
	text-align: left;
}

.single-product .woocommerce-section form.variations_form table.variations th.label .woo-selected-variation-item-name {
	margin-left: 0.25rem;
	color: var(--muted);
	font-weight: 400;
}

.single-product .woocommerce-section form.variations_form table.variations td.value {
	display: block;
	width: auto;
	padding: 0;
	vertical-align: middle;
}

.single-product .woocommerce-section form.variations_form table.variations th.label label {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
}

.single-product .woocommerce-section form.variations_form table.variations td.value select {
	display: block;
	width: 100%;
	max-width: none;
	height: 52px;
	min-height: 52px;
	margin: 0;
	padding: 0 44px 0 16px;
	border: 1px solid var(--line);
	border-radius: 0;
	background-color: var(--white);
	color: var(--text);
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	line-height: normal;
	box-sizing: border-box;
	cursor: pointer;
}

.single-product .woocommerce-section form.variations_form table.variations td.value select:hover {
	border-color: var(--muted);
}

.single-product .woocommerce-section form.variations_form table.variations td.value select:focus {
	outline: 2px solid color-mix(in srgb, var(--accent) 30%, transparent);
	outline-offset: 2px;
	border-color: var(--accent);
}

/* Variation swatches - clickable colour samples and size buttons */
.single-product .woocommerce-section form.variations_form .variable-items-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.single-product .woocommerce-section form.variations_form .variable-item {
	margin: 0;
	padding: 0;
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--white);
	box-shadow: none;
	cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease;
}

.single-product .woocommerce-section form.variations_form .variable-item:hover {
	border-color: var(--muted);
}

.single-product .woocommerce-section form.variations_form .variable-item.selected {
	border-color: var(--accent);
	box-shadow: inset 0 0 0 1px var(--accent);
}

.single-product .woocommerce-section form.variations_form .variable-item:focus-visible {
	outline: 2px solid color-mix(in srgb, var(--accent) 30%, transparent);
	outline-offset: 2px;
}

.single-product .woocommerce-section form.variations_form .color-variable-item {
	width: 38px;
	height: 38px;
	padding: 3px;
}

.single-product .woocommerce-section form.variations_form .color-variable-item .variable-item-span-color {
	display: block;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(17, 19, 24, 0.12);
}

.single-product .woocommerce-section form.variations_form .button-variable-item {
	min-width: 0;
	height: auto;
}

.single-product .woocommerce-section form.variations_form .button-variable-item .variable-item-span-button {
	display: block;
	padding: 0.625rem 0.875rem;
	color: var(--text);
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.2;
	white-space: nowrap;
}

.single-product .woocommerce-section form.variations_form .button-variable-item.selected .variable-item-span-button {
	color: var(--accent);
}

.single-product .woocommerce-section form.variations_form .variable-item.disabled,
.single-product .woocommerce-section form.variations_form .variable-item.no-stock {
	cursor: not-allowed;
	opacity: 0.35;
}

.single-product .woocommerce-section form.variations_form table.variations .reset_variations {
	display: inline-block;
	margin-top: 0.625rem;
	font-size: 0.9375rem;
}

/* Tiered prices */
.single-product .woocommerce-section form.variations_form .single_variation_wrap,
.single-product .woocommerce-section form.variations_form .woocommerce-variation-add-to-cart,
.single-product .woocommerce-section form.variations_form .tpt__tiered-pricing,
.single-product .woocommerce-section form.variations_form .tiered-pricing-wrapper {
	width: 100%;
	max-width: 100%;
}

.single-product .woocommerce-section form.variations_form .single_variation_wrap {
	flex: 0 0 100%;
}

.single-product .woocommerce-section .single_variation {
	margin: 0;
}

.single-product .woocommerce-section .woocommerce-variation-description {
	margin: 0 0 0.75rem;
	padding: 0.625rem 0.875rem;
	border-left: 3px solid var(--accent);
	background: var(--surface);
}

.single-product .woocommerce-section .woocommerce-variation-description p {
	margin: 0 !important;
	font-size: 0.875rem;
	line-height: 1.45;
}

.single-product .woocommerce-section table.tiered-pricing-table {
	width: 100%;
	max-width: none;
	margin: 0 0 1rem;
	border: 1px solid var(--line);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 4px;
	background: var(--white);
	overflow: hidden;
}

.single-product .woocommerce-section table.tiered-pricing-table th,
.single-product .woocommerce-section table.tiered-pricing-table td {
	padding: 0.5rem 0.875rem !important;
	border: 0;
	text-align: left;
	vertical-align: middle;
}

.single-product .woocommerce-section table.tiered-pricing-table thead th {
	background: var(--surface);
	color: var(--text);
	font-size: 0.875rem;
	font-weight: 750;
	line-height: 1.35;
	letter-spacing: 0.01em;
}

.single-product .woocommerce-section table.tiered-pricing-table th:last-child,
.single-product .woocommerce-section table.tiered-pricing-table td:last-child {
	text-align: right;
}

.single-product .woocommerce-section table.tiered-pricing-table tbody td {
	border-top: 1px solid var(--line);
	background: var(--white);
	color: var(--text);
	font-size: 0.9375rem;
	line-height: 1.4;
}

.single-product .woocommerce-section table.tiered-pricing-table tbody td:last-child {
	font-weight: 750;
	color: var(--accent);
}

.single-product .woocommerce-section table.tiered-pricing-table tbody tr.tiered-pricing--active td {
	background: var(--accent) !important;
	color: var(--white) !important;
}

.single-product .woocommerce-section table.tiered-pricing-table tbody tr.tiered-pricing--active td:first-child {
	box-shadow: inset 4px 0 0 color-mix(in srgb, var(--text) 28%, transparent);
}

.single-product .woocommerce-section .woocommerce-variation-add-to-cart {
	display: grid !important;
	grid-template-columns: 104px minmax(0, 1fr);
	gap: 0.875rem 1rem !important;
	width: 100%;
}

.single-product .woocommerce-section .woocommerce-variation-add-to-cart > .tpt__tiered-pricing,
.single-product .woocommerce-section .woocommerce-variation-add-to-cart > .estyma-purchase-notes {
	grid-column: 1 / -1;
}

.single-product .woocommerce-section .woocommerce-variation-add-to-cart .quantity {
	width: 100%;
	margin: 0;
}

.single-product .woocommerce-section .woocommerce-variation-add-to-cart .quantity input.qty,
.single-product .woocommerce-section .woocommerce-variation-add-to-cart .single_add_to_cart_button {
	width: 100%;
	min-height: 54px;
	box-sizing: border-box;
}

.single-product .woocommerce-section .woocommerce-variation-add-to-cart .single_add_to_cart_button {
	margin: 0;
	font-size: 1rem;
}

.single-product .woocommerce-section .estyma-purchase-notes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.625rem 1rem;
	margin-top: 0.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--line);
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--muted);
}

.single-product .woocommerce-section .estyma-purchase-notes span,
.single-product .woocommerce-section .estyma-purchase-notes a {
	position: relative;
	padding-left: 1.25rem;
}

.single-product .woocommerce-section .estyma-purchase-notes span::before,
.single-product .woocommerce-section .estyma-purchase-notes a::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--accent);
	font-weight: 800;
}

.single-product .woocommerce-section .estyma-purchase-notes a {
	grid-column: 1 / -1;
	color: var(--text);
	font-weight: 700;
	text-decoration: none;
}

.single-product .woocommerce-section .estyma-purchase-notes a:hover {
	color: var(--accent);
}

@media (max-width: 600px) {
	.single-product .woocommerce-section table.tiered-pricing-table th,
	.single-product .woocommerce-section table.tiered-pricing-table td {
		padding: 0.75rem 0.875rem !important;
	}
}

.single-product .woocommerce-section .product.type-product .summary .cart .quantity input {
	width: 80px;
}

.single-product .woocommerce-section .product.type-product .woocommerce-tabs,
.single-product .woocommerce-section .product.type-product .related.products {
	grid-column: 1 / -1;
	width: 100%;
	float: none;
}

.single-product .woocommerce-section .product.type-product .woocommerce-tabs {
	margin-top: 3rem;
}

.single-product .woocommerce-section .product.type-product .related.products {
	margin-top: 3.5rem;
	clear: both;
}

.single-product .woocommerce-section .product.type-product .related.products > h2 {
	font-size: 1.75rem;
	font-weight: 820;
	margin: 0 0 1.75rem;
}

.single-product main.woocommerce-section {
	padding-top: clamp(28px, 3vw, 40px);
}

.single-product main.woocommerce-section .breadcrumbs {
	margin-bottom: clamp(24px, 3vw, 36px);
}

.estyma-mobile-buybar {
	display: none;
}

@media (min-width: 1025px) {
	.single-product .woocommerce-section .product.type-product .summary {
		position: sticky;
		top: 96px;
	}
}

.woocommerce-section .woocommerce-result-count {
	color: var(--muted);
	margin-bottom: 1.5rem;
}

.woocommerce-section .woocommerce-ordering {
	margin-bottom: 1.5rem;
}

.woocommerce-section .woocommerce-ordering select {
	width: auto;
	padding: 0.5rem 2rem 0.5rem 0.75rem;
}

/* Category description */
.woocommerce-section .term-description {
	max-width: none;
	margin-top: 3rem;
	margin-bottom: 3rem;
	padding-top: 2.5rem;
	border-top: 1px solid var(--line);
	color: var(--text);
}

.woocommerce-section .term-description > :first-child,
.woocommerce-section .term-description .lead {
	margin-top: 0;
}

.woocommerce-section .term-description .lead {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--text);
	margin-bottom: 0.75rem;
}

.woocommerce-section .term-description h2 {
	font-size: 1.375rem;
	font-weight: 820;
	color: var(--text);
	margin: 2.25rem 0 1rem;
}

.woocommerce-section .term-description h3 {
	font-size: 1rem;
	font-weight: 820;
	color: var(--text);
	margin: 1.5rem 0 0.75rem;
}

.woocommerce-section .term-description p {
	margin: 0 0 1rem;
	line-height: 1.65;
}

.woocommerce-section .term-description ul {
	list-style: none;
	padding: 0;
	margin: 0 0 1rem;
	display: grid;
	gap: 0.625rem;
}

.woocommerce-section .term-description ul li {
	position: relative;
	padding-left: 1.5rem;
	line-height: 1.6;
	color: var(--muted);
}

.woocommerce-section .term-description ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 8px;
	height: 8px;
	background: var(--accent);
}

.woocommerce-section .term-description ul li strong {
	color: var(--text);
	font-weight: 760;
}

.woocommerce-section .term-description ul.links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	padding: 1.5rem;
	background: var(--surface);
	border: 1px solid var(--line);
}

.woocommerce-section .term-description ul.links li {
	padding-left: 0;
}

.woocommerce-section .term-description ul.links li::before {
	display: none;
}

.woocommerce-section .term-description ul.links a {
	color: var(--accent);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce-section .term-description ul.links a:hover {
	text-decoration: underline;
}

/* display: block makes the table its own horizontal scroll container, which
   these descriptions need for their four- and five-column tables. max-content
   keeps the border box on the columns instead of stretching it to the text
   width, which left a wide empty strip on the right. */
.woocommerce-section .term-description .wp-block-table,
.woocommerce-section .term-description table,
.woocommerce-section .woocommerce-Tabs-panel--description table {
	display: block;
	width: max-content;
	max-width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	border: 1px solid var(--line);
	background: var(--white);
	margin-bottom: 1.5rem;
}

.woocommerce-section .term-description table th,
.woocommerce-section .term-description table td,
.woocommerce-section .woocommerce-Tabs-panel--description table th,
.woocommerce-section .woocommerce-Tabs-panel--description table td {
	padding: 0.75rem 1.25rem;
	text-align: left;
	border-bottom: 1px solid var(--line);
}

.woocommerce-section .term-description table thead th,
.woocommerce-section .woocommerce-Tabs-panel--description table thead th {
	background: var(--graphite);
	color: var(--white);
	font-weight: 760;
	font-size: 0.875rem;
	letter-spacing: 0.02em;
}

.woocommerce-section .term-description table tbody tr:nth-child(even),
.woocommerce-section .woocommerce-Tabs-panel--description table tbody tr:nth-child(even) {
	background: var(--surface);
}

.woocommerce-section .term-description table tbody tr:last-child td,
.woocommerce-section .woocommerce-Tabs-panel--description table tbody tr:last-child td {
	border-bottom: 0;
}

.woocommerce-section .term-description table td:first-child,
.woocommerce-section .woocommerce-Tabs-panel--description table td:first-child {
	font-weight: 760;
	color: var(--text);
	white-space: nowrap;
}

/* Profile drawings sit above the type columns. The bottom edge of every file is
   the wire line, so aligning to the bottom lines them up despite the images
   having different heights. */
.woocommerce-section .woocommerce-Tabs-panel--description table tr.hanger-profiles td {
	vertical-align: bottom;
	padding-top: 1.25rem;
}

/* max-width: none lifts the global `img { max-width: 100% }`, which on phones
   squeezed the drawings along with the columns instead of letting the table
   scroll inside its own container. */
.woocommerce-section .woocommerce-Tabs-panel--description table tr.hanger-profiles img {
	display: block;
	width: 170px;
	max-width: none;
	height: auto;
}

.woocommerce-section .term-description details {
	border: 1px solid var(--line);
	background: var(--white);
	margin-bottom: 0.5rem;
}

.woocommerce-section .term-description details summary {
	cursor: pointer;
	padding: 1rem 1.25rem;
	font-weight: 760;
	color: var(--text);
	list-style: none;
	position: relative;
	padding-right: 3rem;
}

.woocommerce-section .term-description details summary::-webkit-details-marker {
	display: none;
}

.woocommerce-section .term-description details summary::after {
	content: "+";
	position: absolute;
	right: 1.25rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--accent);
	transition: transform 180ms ease;
}

.woocommerce-section .term-description details[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}

.woocommerce-section .term-description details p {
	padding: 0 1.25rem 1.25rem;
	margin: 0;
	color: var(--muted);
	line-height: 1.65;
}

/* Single product summary */
.single-product .summary .price {
	font-size: 1.75rem;
	margin: 0.5rem 0 1rem;
}

.single-product .summary .woocommerce-product-details__short-description {
	color: var(--muted);
	margin-bottom: 1.5rem;
}

.single-product .summary .cart .quantity input {
	width: 80px;
	text-align: center;
}

.single-product .summary .cart .button {
	flex: 1;
}

.single-product .summary .product_meta {
	margin: 1rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--line);
	font-size: 0.875rem;
	color: var(--muted);
}

.single-product .summary .product_meta a {
	color: var(--accent);
	font-weight: 700;
}

/* WooCommerce block-based product grids (e.g. cart cross-sells, hand-picked products) */
.woocommerce-section .wc-block-grid__products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.woocommerce-section .wc-block-grid__product {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(217, 221, 226, 0.78);
	background: var(--white);
	display: flex;
	flex-direction: column;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	flex: none !important;
	transition: box-shadow 180ms ease, transform 180ms ease, border-color 180ms ease;
}

.woocommerce-section .wc-block-grid__product:hover {
	border-color: rgba(255, 102, 0, 0.35);
	box-shadow: 0 22px 55px rgba(17, 19, 24, 0.1);
	transform: translateY(-2px);
}

.woocommerce-section .wc-block-grid__product-link {
	text-decoration: none;
	color: inherit;
	display: block;
	flex: 1 1 auto;
}

.woocommerce-section .wc-block-grid__product-image {
	aspect-ratio: 1;
	padding: 16px;
	background: var(--surface);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.woocommerce-section .wc-block-grid__product-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.woocommerce-section .wc-block-grid__product-title {
	font-size: 20px;
	font-weight: 820;
	line-height: 1.2;
	color: var(--text);
	margin: 24px 24px 0.5rem;
	overflow-wrap: anywhere;
}

.woocommerce-section .wc-block-grid__product-price {
	font-size: 1.1rem;
	padding: 0 24px;
	margin-bottom: 1rem;
}

.woocommerce-section .wc-block-grid__product .wp-block-button {
	margin: auto 24px 24px;
	width: calc(100% - 48px);
}

.woocommerce-section .wc-block-grid__product .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 46px;
	padding: 13px 24px;
	border: 1px solid transparent;
	border-radius: 3px;
	background: var(--accent);
	color: var(--white);
	font-family: inherit;
	font-size: 14px;
	font-weight: 750;
	line-height: 1;
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	transition: transform 180ms ease, background 180ms ease, border-color 180ms ease;
	width: 100%;
}

.woocommerce-section .wc-block-grid__product .wp-block-button__link:hover {
	background: var(--accent-dark);
	transform: translateY(-1px);
}

.woocommerce-section .wc-block-cart__empty-state {
	padding-top: 2rem;
}

@media (max-width: 1024px) {
	.woocommerce-section ul.products,
	.woocommerce-section ul.products.columns-4,
	.woocommerce-section .wc-block-grid__products {
		grid-template-columns: repeat(2, 1fr);
	}

	.single-product .woocommerce-section .product.type-product {
		grid-template-columns: minmax(0, 1fr);
	}

	.single-product .woocommerce-section .product.type-product .summary {
		max-width: 720px;
		margin-inline: auto;
	}
}

@media (max-width: 640px) {
	.woocommerce-section ul.products,
	.woocommerce-section ul.products.columns-4,
	.woocommerce-section .wc-block-grid__products {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-section .wc-block-grid__product-title {
		font-size: 1rem;
		font-weight: 760;
		line-height: 1.35;
	}

	.single-product main.woocommerce-section {
		padding-top: 24px;
		padding-bottom: 56px;
	}

	.single-product main.woocommerce-section .breadcrumbs {
		margin-bottom: 20px;
	}

	.single-product .woocommerce-section .product.type-product {
		gap: 24px;
	}

	.single-product .woocommerce-section .woocommerce-product-gallery__image a {
		height: 320px;
		padding: 12px;
	}

	.single-product .woocommerce-section .product.type-product .summary {
		padding: 20px;
		border-radius: 4px;
	}

	.single-product .woocommerce-section .product.type-product .product_title {
		font-size: 1.75rem;
	}

	.single-product .woocommerce-section .woocommerce-variation-add-to-cart {
		grid-template-columns: 88px minmax(0, 1fr);
	}

	.single-product .woocommerce-section .estyma-purchase-notes {
		grid-template-columns: 1fr;
	}

	.single-product .woocommerce-section .estyma-purchase-notes a {
		grid-column: auto;
	}

	.woocommerce-section .woocommerce-tabs ul.tabs {
		flex-wrap: nowrap;
		gap: 0;
		overflow-x: auto;
		border-bottom: 1px solid var(--line);
		scrollbar-width: thin;
	}

	.woocommerce-section .woocommerce-tabs ul.tabs li a {
		white-space: nowrap;
		padding: 0.75rem 1rem;
		border: 0;
		border-bottom: 2px solid transparent;
	}

	.woocommerce-section .woocommerce-tabs ul.tabs li.active a {
		border-bottom-color: var(--accent);
		background: transparent;
	}

	.estyma-mobile-buybar:not([hidden]) {
		display: block;
		position: fixed;
		z-index: 90;
		left: 0;
		right: 0;
		bottom: 0;
		padding: 10px 16px max(10px, env(safe-area-inset-bottom));
		border-top: 1px solid var(--line);
		background: rgba(255, 255, 255, 0.96);
		box-shadow: 0 -10px 30px rgba(17, 19, 24, 0.12);
		backdrop-filter: blur(12px);
	}

	.estyma-mobile-buybar__inner {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		gap: 14px;
		max-width: 560px;
		margin: 0 auto;
	}

	.estyma-mobile-buybar__price {
		color: var(--accent);
		font-size: 1rem;
		font-weight: 800;
		white-space: nowrap;
	}

	.estyma-mobile-buybar__price .woocommerce-price-suffix {
		display: block;
		margin-top: 0;
		font-size: 0.6875rem;
		line-height: 1.2;
	}

	.estyma-mobile-buybar__button {
		min-height: 48px;
		padding: 10px 16px;
		border: 0;
		border-radius: 3px;
		background: var(--accent);
		color: var(--white);
		font: inherit;
		font-weight: 750;
	}

	body.has-mobile-buybar {
		padding-bottom: 76px;
	}

	.woocommerce-section .woocommerce-result-count,
	.woocommerce-section .woocommerce-ordering {
		float: none;
		width: 100%;
	}
}
