/*
 * Armeria 3S — woocommerce.css
 * Shop toolbar, product grid + card, badges, subcategory tiles, single product, cart (classic + block),
 * checkout (classic + block), order received, WooCommerce notices/buttons, Price History line.
 * (Mini cart inside the header drawer: header.css. Account area + auth card + order tracking: account.css.)
 *
 * WooCommerce's own stylesheets stay loaded (stars, select2, blockUI, password meter, Elementor Pro widgets
 * rely on them); rules here match WooCommerce's selector weight and load later, so they win.
 * Elementor Pro widget style controls are more specific and still win. Grids carrying Elementor's own
 * .elementor-grid class are left alone.
 * Breakpoints: 576 / 768 / 992 / 1200. Tokens: base.css.
 */

/* ==========================================================================
   1. WooCommerce globals: buttons, notices, prices, stars, tables, select2
   ========================================================================== */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	padding: 8px 20px;
	border: 1px solid var(--a3s-color-primary);
	border-radius: var(--a3s-radius);
	background: var(--a3s-color-primary);
	color: var(--a3s-color-primary-contrast);
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	transition: background-color var(--a3s-transition), border-color var(--a3s-transition), color var(--a3s-transition), box-shadow var(--a3s-transition);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	border-color: var(--a3s-color-secondary);
	background: var(--a3s-color-secondary);
	color: #fff;
}

.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible {
	outline: 0;
	box-shadow: var(--a3s-focus-ring);
}

.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt:disabled,
.woocommerce button.button.alt.disabled:hover,
.woocommerce button.button.alt:disabled:hover,
.woocommerce button.button.alt:disabled[disabled],
.woocommerce button.button.alt:disabled[disabled]:hover,
.woocommerce input.button:disabled {
	border-color: var(--a3s-color-border);
	background: var(--a3s-color-surface);
	color: var(--a3s-color-muted);
	opacity: 1;
	cursor: not-allowed;
}

/* Secondary / outline button (theme helper class). */
.woocommerce a.button.a3s-btn-outline,
.a3s-btn-outline {
	border-color: var(--a3s-color-secondary);
	background: transparent;
	color: var(--a3s-color-secondary);
}

/* Notices: base.css colours, WooCommerce weight. */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	margin: 0 0 20px;
	padding: 14px 16px 14px 48px;
	border: 1px solid var(--a3s-alert-info-border);
	border-radius: var(--a3s-radius);
	background: var(--a3s-alert-info-bg);
	color: var(--a3s-alert-info-text);
	line-height: 1.5;
}

.woocommerce-message {
	border-color: var(--a3s-alert-success-border);
	background: var(--a3s-alert-success-bg);
	color: var(--a3s-alert-success-text);
}

.woocommerce-error {
	border-color: var(--a3s-alert-error-border);
	background: var(--a3s-alert-error-bg);
	color: var(--a3s-alert-error-text);
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	top: 14px;
	left: 18px;
	color: inherit;
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button,
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-error .button {
	float: right;
	min-height: 32px;
	margin: -4px 0 0 16px;
	padding: 4px 14px;
}

.woocommerce-error li + li {
	margin-top: 4px;
}

/* Prices. */
.woocommerce .price,
.woocommerce-Price-amount {
	font-variant-numeric: tabular-nums;
}

.woocommerce .price ins,
.wc-block-components-product-price ins {
	background: none;
	text-decoration: none;
}

.woocommerce .price del {
	color: var(--a3s-color-old-price);
	opacity: 1;
}

/* WooCommerce breadcrumb: beat WooCommerce's .92em / grey / no padding; "/" spacing. */
.woocommerce .woocommerce-breadcrumb,
.woocommerce-breadcrumb {
	margin: 0;
	padding: 8px 0;
	color: var(--a3s-color-text);
	font-size: .875rem;
}

.a3s-breadcrumb__sep {
	margin: 0 8px;
	color: var(--a3s-color-muted);
}

/* Omnibus line from "WC Price History" (lowest price in the last 30 days). */
.wc-price-history {
	display: block;
	flex-basis: 100%;
	margin-top: 4px;
	color: var(--a3s-color-muted);
	font-size: .8125rem;
	font-weight: 400;
	line-height: 1.35;
}

.wc-price-history .woocommerce-Price-amount {
	font-weight: 500;
}

/* Stars. */
.woocommerce .star-rating span::before,
.woocommerce p.stars a,
.woocommerce p.stars a::before {
	color: var(--a3s-color-primary);
}

.woocommerce .star-rating::before {
	color: var(--a3s-color-border);
}

/* Tables (cart, order review, order details, account). */
.woocommerce table.shop_table {
	width: 100%;
	margin: 0 0 24px;
	border: 1px solid var(--a3s-color-divider);
	border-collapse: collapse;
	border-radius: 0;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 14px 12px;
	border-width: 1px 0 0;
	border-style: solid;
	border-color: var(--a3s-color-divider);
	background: transparent;
	line-height: 1.4;
	text-align: left;
	vertical-align: middle;
}

.woocommerce table.shop_table thead th {
	background: var(--a3s-color-surface);
	font-weight: 700;
}

.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td {
	font-weight: 500;
}

.woocommerce table.shop_table .order-total th,
.woocommerce table.shop_table .order-total td {
	font-size: 1.125rem;
	font-weight: 700;
}

.woocommerce table.shop_table dl.variation,
.woocommerce .wc-item-meta {
	margin: 4px 0 0;
	padding: 0;
	color: var(--a3s-color-muted);
	font-size: .8rem;
	text-transform: uppercase;
	list-style: none;
}

.woocommerce table.shop_table dl.variation dt,
.woocommerce table.shop_table dl.variation dd,
.woocommerce table.shop_table dl.variation p {
	display: inline;
	margin: 0;
}

/* select2 (country / state) like the native inputs. */
.select2-container--default .select2-selection--single {
	height: 48px;
	border: 1px solid var(--a3s-color-border);
	border-radius: var(--a3s-radius-sm);
	background: #fff;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 40px 0 12px;
	color: var(--a3s-color-text);
	line-height: 46px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 1px;
	right: 8px;
	height: 46px;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--a3s-color-primary);
	box-shadow: var(--a3s-focus-ring);
}

.select2-dropdown {
	border-color: var(--a3s-color-border);
	border-radius: 0;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--a3s-color-secondary);
	color: #fff;
}

.woocommerce .blockUI.blockOverlay {
	background: rgba(255, 255, 255, .6) !important;
}

/* ==========================================================================
   2. Archive header, toolbar, ordering, sidebar layout, empty states
   ========================================================================== */
.woocommerce-products-header {
	margin: 0;
}

.woocommerce-products-header__title.page-title {
	margin: 0 0 17.6px;
	padding-bottom: 11px;
	color: var(--a3s-color-heading);
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 1.2;
}

.woocommerce-products-header .term-description,
.woocommerce-products-header .page-description {
	max-width: 960px;
	margin: -6px 0 16px;
	color: var(--a3s-color-text);
}

.woocommerce-products-header .term-description > :last-child {
	margin-bottom: 0;
}

.a3s-shop-toolbar {
	position: relative;
	z-index: 10;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	min-height: 50px;
	margin: 16px 0;
	padding: 10px 12px;
	background: var(--a3s-color-surface);
}

.woocommerce .a3s-shop-toolbar .woocommerce-result-count {
	order: 0;
	float: none;
	margin: 0;
	font-size: 1rem;
	line-height: 1.2;
	white-space: nowrap;
}

.a3s-shop-toolbar__slot {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 4px 8px;
	min-width: 0;
}

.a3s-shop-toolbar__slot:empty {
	visibility: hidden;
}

.a3s-shop-toolbar--empty .a3s-shop-toolbar__slot:empty {
	display: none;
}

.a3s-shop-toolbar--empty:not(:has(.a3s-shop-toolbar__slot)) {
	display: none;
}

.a3s-ordering-label {
	color: var(--a3s-color-muted);
	font-size: 1rem;
	white-space: nowrap;
}

.woocommerce .a3s-shop-toolbar .woocommerce-ordering {
	float: none;
	margin: 0 0 0 -10px;
}

.woocommerce .a3s-shop-toolbar .woocommerce-ordering select.orderby {
	width: auto;
	max-width: 230px;
	min-height: 30px;
	padding: 2px 26px 2px 6px;
	border: 0;
	background-color: transparent;
	background-position: right 6px center;
	color: var(--a3s-color-text);
	font-size: 1rem;
	font-weight: 600;
	text-transform: uppercase;
	cursor: pointer;
}

@supports (field-sizing: content) {
	.woocommerce .a3s-shop-toolbar .woocommerce-ordering select.orderby {
		field-sizing: content;
	}
}

/* Desktop: one bar — count | facets (wrap inside) | sort. */
@media (min-width: 992px) {
	.a3s-shop-toolbar {
		flex-wrap: nowrap;
	}
}

.woocommerce .a3s-shop-toolbar .woocommerce-ordering select.orderby:focus-visible {
	box-shadow: var(--a3s-focus-ring);
}

@media (max-width: 767.98px) {
	.woocommerce .a3s-shop-toolbar .woocommerce-result-count {
		display: none;
	}

	.a3s-shop-toolbar {
		padding: 6px 8px;
	}

	.a3s-shop-toolbar__slot {
		justify-content: flex-start;
	}

	.a3s-ordering-label,
	.woocommerce .a3s-shop-toolbar .woocommerce-ordering select.orderby {
		font-size: .875rem;
	}
}

/* Layout with sidebar (filters layout "sidebar" or widgets in "Shop sidebar"). */
.a3s-shop-layout--sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
}

@media (min-width: 992px) {
	.a3s-shop-layout--sidebar {
		grid-template-columns: minmax(220px, 25%) minmax(0, 1fr);
		align-items: start;
	}
}

@media (max-width: 991.98px) {
	.a3s-shop-sidebar {
		order: 2;
	}
}

.a3s-shop-sidebar .widget {
	margin: 0 0 24px;
}

.a3s-shop-sidebar .widget-title {
	margin: 0 0 12px;
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
}

.a3s-products {
	min-width: 0;
	transition: opacity var(--a3s-transition-base);
}

.a3s-products[aria-busy="true"] {
	opacity: .3;
}

/* Empty states. */
.woocommerce .a3s-products > .woocommerce-info,
.woocommerce-no-products-found .woocommerce-info {
	margin-top: 16px;
}

.a3s-empty-actions {
	margin: 0 0 40px;
}

.a3s-empty-search {
	max-width: 720px;
	margin: 0 0 40px;
}

.a3s-empty-search .woocommerce-product-search {
	display: flex;
	gap: 8px;
	margin: 16px 0 24px;
}

.a3s-empty-search .woocommerce-product-search input[type="search"] {
	flex: 1;
}

.a3s-empty-search__cats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.a3s-empty-search__cats a {
	display: inline-block;
	padding: 7px 12px;
	background: var(--a3s-color-chip);
	color: var(--a3s-color-text);
	text-decoration: none;
	transition: background-color var(--a3s-transition-base);
}

.a3s-empty-search__cats a:hover {
	background: var(--a3s-color-chip-clear);
}

/* ==========================================================================
   3. Product grid: 4 / 3 / 2 columns, 20 px gutter
   ========================================================================== */
.woocommerce ul.products:not(.elementor-grid) {
	--a3s-cols: 4;
	display: grid;
	grid-template-columns: repeat(var(--a3s-cols), minmax(0, 1fr));
	gap: var(--a3s-gutter);
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products.columns-1 { --a3s-cols: 1; }
.woocommerce ul.products.columns-2 { --a3s-cols: 2; }
.woocommerce ul.products.columns-3 { --a3s-cols: 3; }
.woocommerce ul.products.columns-5 { --a3s-cols: 5; }
.woocommerce ul.products.columns-6 { --a3s-cols: 6; }

@media (max-width: 991.98px) {
	.woocommerce ul.products:is(.columns-4, .columns-5, .columns-6) {
		--a3s-cols: 3;
	}
}

@media (max-width: 767.98px) {
	.woocommerce ul.products:is(.columns-3, .columns-4, .columns-5, .columns-6) {
		--a3s-cols: 2;
	}

	.woocommerce ul.products:not(.elementor-grid) {
		gap: 10px;
	}
}

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

.woocommerce ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product,
.woocommerce ul.products[class*="columns-"] li.product-category,
.woocommerce-page ul.products[class*="columns-"] li.product-category {
	float: none;
	width: auto;
	margin: 0;
	clear: none;
}

/* ==========================================================================
   4. Product card (synthesis C2): border → primary on hover, near-square image,
      badges top-left, uppercase 3-line title, price + old price, full-width button
   ========================================================================== */
.woocommerce ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 10px;
	border: 1px solid var(--a3s-color-border);
	background: #fff;
	text-align: left;
	transition: border-color .3s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus-within {
	z-index: 2;
	border-color: var(--a3s-color-primary);
}

.woocommerce ul.products li.product .woocommerce-loop-product__link,
.woocommerce ul.products li.product > a:first-child {
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	color: var(--a3s-color-text);
	text-decoration: none;
}

.a3s-card__media {
	position: relative;
	margin: 0 0 12px;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .a3s-card__media img {
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: contain;
	box-shadow: none;
}

.a3s-card__media--swap .a3s-card__hover {
	position: absolute;
	inset: 0;
	background: #fff;
	opacity: 0;
	transition: opacity var(--a3s-transition-base);
}

@media (hover: hover) {
	.woocommerce ul.products li.product:hover .a3s-card__media--swap .a3s-card__hover {
		opacity: 1;
	}
}

.a3s-card__brand {
	display: block;
	margin: 0 0 4px;
	color: var(--a3s-color-muted);
	font-size: .8125rem;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	display: -webkit-box;
	height: calc(3 * 1.2em);
	margin: 0 0 6.4px;
	padding: 0;
	overflow: hidden;
	color: var(--a3s-color-text);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.2;
	text-transform: uppercase;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

.woocommerce ul.products li.product .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 8px;
	margin: auto 0 0;
	color: var(--a3s-color-price);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.3;
}

.woocommerce ul.products li.product .price ins {
	order: -1;
	font-weight: 600;
}

.woocommerce ul.products li.product .price del {
	color: var(--a3s-color-old-price);
	font-size: .75rem;
	font-weight: 500;
	opacity: 1;
}

.woocommerce ul.products li.product .price .wc-price-history {
	font-size: .75rem;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .a3s-instore-link {
	display: flex;
	width: 100%;
	min-height: 42px;
	margin: 12px 0 0;
	padding: 7px 15px;
	border-color: var(--a3s-color-secondary);
	background: var(--a3s-color-secondary);
	color: #fff;
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.5;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .a3s-instore-link:hover {
	border-color: var(--a3s-color-primary);
	background: var(--a3s-color-primary);
	color: var(--a3s-color-primary-contrast);
}

.woocommerce ul.products li.product .button.loading {
	opacity: .6;
}

.woocommerce ul.products li.product .added_to_cart {
	display: block;
	margin-top: 6px;
	color: var(--a3s-color-link-hover);
	font-size: .875rem;
	text-align: center;
}

@media (max-width: 991.98px) {
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: .75rem;
	}

	.woocommerce ul.products li.product .price {
		font-size: .875rem;
	}

	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .a3s-instore-link {
		min-height: 32px;
		padding: 5px 8px;
		font-size: .75rem;
	}
}

@media (max-width: 767.98px) {
	.woocommerce ul.products li.product {
		padding: 8px;
	}

	/* 14 px root on phones: 12 / 14 / 12 px like the reference. */
	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product .price del,
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .a3s-instore-link {
		font-size: .857rem;
	}

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

/* ==========================================================================
   5. Badges (sale "-N%", "New", "In store only" from the toolkit)
   ========================================================================== */
.a3s-card__badges {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	pointer-events: none;
}

.a3s-badge,
.woocommerce span.onsale.a3s-badge {
	position: static;
	display: inline-block;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 5px 7px;
	border-radius: 0;
	background: var(--a3s-color-secondary);
	color: #fff;
	font-size: .75rem;
	font-weight: 500;
	line-height: 1.1;
	text-align: left;
}

.a3s-badge--sale,
.woocommerce span.onsale.a3s-badge {
	background: var(--a3s-color-sale);
	color: #fff;
}

/* 14 px phone root: keep badges at 12 px (.75rem would give 10.5 px). */
@media (max-width: 767.98px) {
	.a3s-badge,
	.woocommerce span.onsale.a3s-badge {
		font-size: .857rem;
	}
}

.a3s-badge--new {
	background: var(--a3s-color-accent);
	color: var(--a3s-color-secondary);
}

.a3s-badge--instore {
	background: var(--a3s-color-secondary);
	color: var(--a3s-color-accent);
}

/* Sale flash printed outside our badge container (Elementor Pro images widget, blocks). */
.woocommerce span.onsale.a3s-badge,
.woocommerce ul.products li.product .onsale.a3s-badge {
	position: absolute;
	top: 0;
	right: auto;
	left: 0;
	z-index: 3;
	margin: 0;
}

.a3s-card__badges .onsale.a3s-badge {
	position: static;
}

/* ==========================================================================
   6. Subcategory tiles (parent categories): 3 per row, 2 on phones
   ========================================================================== */
.woocommerce ul.products:not(.elementor-grid):not(:has(> li.product:not(.product-category))) {
	--a3s-cols: 3;
	gap: 30px;
}

@media (max-width: 767.98px) {
	.woocommerce ul.products:not(.elementor-grid):not(:has(> li.product:not(.product-category))) {
		--a3s-cols: 2;
		gap: 10px;
	}
}

.woocommerce ul.products li.product-category {
	padding: 0;
	border: 1px solid var(--a3s-color-secondary);
}

.woocommerce ul.products li.product-category > a {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: #fff;
	text-decoration: none;
}

.woocommerce ul.products li.product-category a img {
	width: 100%;
	height: auto;
	margin: 0;
	aspect-ratio: 1.43 / 1;
	object-fit: cover;
	transition: opacity var(--a3s-transition-base);
}

.woocommerce ul.products li.product-category a:hover img {
	opacity: .8;
}

.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
	display: block;
	flex: 1;
	margin: 0;
	padding: 5px 8px;
	background: var(--a3s-color-secondary);
	color: #fff;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.5;
	text-align: center;
	text-transform: uppercase;
}

.woocommerce ul.products li.product-category a:hover .woocommerce-loop-category__title {
	background: var(--a3s-color-primary);
	color: var(--a3s-color-primary-contrast);
}

@media (max-width: 767.98px) {
	.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
		font-size: .875rem;
	}
}

/* ==========================================================================
   7. Single product (theme template only: #content = the theme's main wrapper)
   ========================================================================== */
.woocommerce #content div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	align-items: start;
	margin-top: 8px;
}

.woocommerce #content div.product > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.woocommerce #content div.product > .a3s-single-badges,
.woocommerce #content div.product > div.images {
	grid-row: 1;
	grid-column: 1;
}

.woocommerce #content div.product > div.summary {
	grid-row: 2;
	grid-column: 1;
}

@media (min-width: 768px) {
	.woocommerce #content div.product {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.woocommerce #content div.product > div.summary {
		grid-row: 1;
		grid-column: 2;
	}
}

.woocommerce #content div.product div.images,
.woocommerce #content div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
}

/* Gallery: square cover with border, thumbnails as a vertical strip on desktop. */
.woocommerce #content div.product div.images {
	position: relative;
}

.woocommerce #content div.product .a3s-single-badges {
	position: relative;
	z-index: 3;
	align-self: start;
	justify-self: start;
	margin: 1px;
}

.woocommerce #content div.product div.images .woocommerce-product-gallery__image {
	border: 1px solid var(--a3s-color-border);
	background: #fff;
}

.woocommerce #content div.product div.images .woocommerce-product-gallery__image > a > img,
.woocommerce #content div.product div.images .woocommerce-product-gallery__image--placeholder img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}

.woocommerce #content div.product div.images .woocommerce-product-gallery__trigger {
	top: 10px;
	right: 10px;
	width: 40px;
	height: 40px;
	border-radius: var(--a3s-radius);
	background: var(--a3s-color-secondary);
}

.woocommerce #content div.product div.images .woocommerce-product-gallery__trigger::before {
	top: 10px;
	left: 11px;
	border-color: #fff;
}

.woocommerce #content div.product div.images .woocommerce-product-gallery__trigger::after {
	top: 23px;
	left: 24px;
	background: #fff;
}

.woocommerce #content div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin: 10px 0 0;
	padding: 0;
	overflow-x: auto;
	scrollbar-width: thin;
	list-style: none;
}

.woocommerce #content div.product div.images .flex-control-thumbs li {
	flex: 0 0 72px;
	width: 72px;
	margin: 0;
	float: none;
}

.woocommerce #content div.product div.images .flex-control-thumbs li img {
	border: 1px solid var(--a3s-color-border);
	aspect-ratio: 1 / 1;
	object-fit: contain;
	opacity: .6;
	transition: opacity var(--a3s-transition-base), border-color var(--a3s-transition-base);
}

.woocommerce #content div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce #content div.product div.images .flex-control-thumbs li img:hover {
	border-color: var(--a3s-color-primary);
	opacity: 1;
}

@media (min-width: 992px) {
	.woocommerce #content div.product div.images.woocommerce-product-gallery:has(.flex-control-thumbs) {
		display: grid;
		grid-template-columns: 90px minmax(0, 1fr);
		gap: 12px;
		align-items: start;
	}

	.woocommerce #content div.product div.images:has(.flex-control-thumbs) .flex-viewport {
		grid-row: 1;
		grid-column: 2;
	}

	.woocommerce #content div.product div.images .flex-control-thumbs {
		grid-row: 1;
		grid-column: 1;
		flex-direction: column;
		max-height: 640px;
		margin: 0;
		overflow-x: hidden;
		overflow-y: auto;
	}

	.woocommerce #content div.product div.images .flex-control-thumbs li {
		flex: 0 0 auto;
		width: 100%;
	}

	.woocommerce #content div.product:has(.flex-control-thumbs) > .a3s-single-badges {
		margin-left: 103px;
	}
}

/* Summary. */
.woocommerce #content div.product .product_title {
	margin: 0 0 12.8px;
	color: var(--a3s-color-heading);
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.2;
	text-transform: uppercase;
}

.woocommerce #content div.product .woocommerce-product-rating {
	margin: 0 0 12px;
}

.woocommerce #content div.product .woocommerce-product-details__short-description {
	margin: 0 0 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--a3s-color-divider);
}

.woocommerce #content div.product .woocommerce-product-details__short-description > :last-child {
	margin-bottom: 0;
}

.a3s-single-ref {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	margin: 0 0 8px;
	font-size: .875rem;
}

.a3s-single-ref__label {
	font-weight: 500;
}

/* Our reference row replaces WooCommerce's SKU line in the product meta below. */
.woocommerce #content div.product .summary .product_meta:not(.a3s-single-ref) .sku_wrapper {
	display: none;
}

.woocommerce #content div.product .summary .product_meta:not(.a3s-single-ref) {
	margin: 20px 0 0;
	color: var(--a3s-color-muted);
	font-size: .875rem;
}

.woocommerce #content div.product .summary .product_meta:not(.a3s-single-ref) > span {
	display: block;
	margin-bottom: 4px;
}

.woocommerce #content div.product .summary .product_meta a {
	color: var(--a3s-color-muted);
}

/* Stock badge: icon + text (green / red / orange backorder). */
.woocommerce div.product p.stock,
.woocommerce div.product .woocommerce-variation-availability p.stock {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	padding: 6px 0;
	color: var(--a3s-color-success);
	font-size: 1.125rem;
	line-height: 1.2;
}

.woocommerce div.product p.stock::before {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

.woocommerce div.product p.stock.out-of-stock {
	color: var(--a3s-color-error);
}

.woocommerce div.product p.stock.out-of-stock::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m5.7 5.7 12.6 12.6'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m5.7 5.7 12.6 12.6'/%3E%3C/svg%3E");
}

.woocommerce div.product p.stock.available-on-backorder {
	color: var(--a3s-color-warning);
}

.woocommerce div.product p.stock.available-on-backorder::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.2 2'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.2 2'/%3E%3C/svg%3E");
}

/* Price row: current 28/700 + struck regular 16 + "-N%" chip. */
.a3s-single-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 12px;
	margin: 0 0 16px;
}

.woocommerce div.product .a3s-single-price p.price,
.woocommerce div.product .woocommerce-variation-price .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	margin: 0;
	color: var(--a3s-color-price);
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.1;
}

.woocommerce div.product .a3s-single-price p.price ins,
.woocommerce div.product .woocommerce-variation-price .price ins {
	order: -1;
	font-weight: 700;
}

.woocommerce div.product .a3s-single-price p.price del,
.woocommerce div.product .woocommerce-variation-price .price del {
	color: var(--a3s-color-text);
	font-size: 1rem;
	font-weight: 400;
}

.woocommerce div.product .a3s-single-price .woocommerce-price-suffix {
	color: var(--a3s-color-muted);
	font-size: .875rem;
	font-weight: 400;
}

.a3s-price-chip {
	padding: 4px 8px;
	border: 1px solid currentColor;
	background: #fff;
	color: var(--a3s-color-sale);
	font-size: .75rem;
	font-weight: 700;
	line-height: 1.1;
}

/* Add to cart row: qty stepper + big button. */
.woocommerce div.product form.cart {
	margin: 0 0 20px;
}

.woocommerce div.product form.cart:not(.variations_form, .grouped_form),
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
}

.woocommerce div.product form.cart:not(.variations_form, .grouped_form) > :not(.quantity, .single_add_to_cart_button),
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart > :not(.quantity, .single_add_to_cart_button) {
	flex-basis: 100%;
}

.woocommerce div.product form.cart div.quantity {
	float: none;
	margin: 0;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button {
	flex: 1 1 240px;
	float: none;
	min-height: 59px;
	border-radius: var(--a3s-radius-sm);
	font-size: 1.375rem;
	font-weight: 500;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button.loading {
	opacity: .7;
	cursor: progress;
}

.woocommerce div.product form.cart .quantity.a3s-qty {
	height: 59px;
}

@media (max-width: 767.98px) {
	.woocommerce div.product form.cart .button.single_add_to_cart_button {
		min-height: 50px;
		font-size: 1rem;
	}

	.woocommerce div.product form.cart .quantity.a3s-qty {
		height: 50px;
	}

	.woocommerce #content div.product .product_title {
		font-size: 1.5714rem;
	}

	.woocommerce div.product .a3s-single-price p.price {
		font-size: 1.75rem;
	}
}

/* Quantity stepper (woocommerce.js wraps every .quantity). */
.woocommerce .quantity.a3s-qty,
.quantity.a3s-qty {
	display: inline-flex;
	flex: 0 0 auto; /* never shrink inside flex forms (Elementor Pro loop Add To Cart). */
	align-items: stretch;
	width: 100px;
	height: 45px;
	border: 1px solid var(--a3s-color-border);
	border-radius: var(--a3s-radius-sm);
	background: #fff;
	overflow: hidden;
}

.woocommerce .quantity.a3s-qty .qty,
.quantity.a3s-qty .qty {
	flex: 1;
	width: 100%;
	min-width: 32px;
	min-height: 0;
	height: auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--a3s-color-muted);
	font-size: .9375rem;
	font-weight: 500;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.quantity.a3s-qty .qty::-webkit-outer-spin-button,
.quantity.a3s-qty .qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.quantity.a3s-qty .qty:focus {
	box-shadow: none;
}

.quantity.a3s-qty:focus-within {
	border-color: var(--a3s-color-primary);
	box-shadow: var(--a3s-focus-ring);
}

.a3s-qty__btn {
	flex: 0 0 30px;
	min-width: 30px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--a3s-color-text);
	font-size: 1.125rem;
	line-height: 1;
	cursor: pointer;
}

.a3s-qty__btn:hover {
	background: var(--a3s-color-surface);
}

.a3s-qty__btn:focus-visible {
	outline: 2px solid var(--a3s-color-primary);
	outline-offset: -2px;
}

/* Variations: one group per attribute, radio pills over the native select. */
.woocommerce div.product form.cart table.variations {
	display: block;
	margin: 0 0 8px;
	border: 0;
}

.woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations tr,
.woocommerce div.product form.cart table.variations th,
.woocommerce div.product form.cart table.variations td {
	position: relative;
	display: block;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
}

.woocommerce div.product form.cart table.variations tr {
	margin: 8px 0;
}

.woocommerce div.product form.cart table.variations th.label {
	padding: 0 0 8px;
	line-height: 1.4;
}

.woocommerce div.product form.cart table.variations th.label label {
	margin: 0;
	font-size: 1rem;
	font-weight: 500;
	text-transform: uppercase;
}

.woocommerce div.product form.cart table.variations select {
	max-width: 320px;
	margin: 0;
}

.woocommerce div.product form.cart table.variations select.a3s-pills-source {
	position: absolute !important;
	top: 0;
	left: 0;
	width: 1px !important;
	min-width: 0 !important;
	max-width: 1px !important;
	height: 1px !important;
	min-height: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.a3s-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.a3s-pill {
	position: relative;
	margin: 0;
	border-radius: var(--a3s-radius-sm);
	cursor: pointer;
}

.a3s-pill input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
}

.a3s-pill span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 64px;
	min-height: 40px;
	padding: 5px 24px;
	border: 1px solid var(--a3s-color-text);
	border-radius: var(--a3s-radius-sm);
	background: transparent;
	color: var(--a3s-color-text);
	font-size: 1rem;
	font-weight: 400; /* the label inherits WooCommerce's bold .variations label */
	line-height: 1.75;
	transition: border-color var(--a3s-transition), box-shadow var(--a3s-transition);
}

.a3s-pill:hover span {
	border-color: var(--a3s-color-primary);
}

.a3s-pill input:checked + span {
	border-color: var(--a3s-color-primary);
	background: #fff;
	box-shadow: inset 0 0 0 1px var(--a3s-color-primary);
	font-weight: 600;
}

.a3s-pill input:focus-visible + span {
	box-shadow: var(--a3s-focus-ring);
}

.a3s-pill.is-disabled {
	cursor: not-allowed;
}

.a3s-pill.is-disabled span {
	border-color: var(--a3s-color-border);
	color: var(--a3s-color-muted);
	text-decoration: line-through;
	opacity: .55;
}

@media (max-width: 767.98px) {
	.a3s-pill span {
		min-height: 36px;
		padding: 4px 16px;
	}
}

.woocommerce div.product form.cart .reset_variations {
	display: inline-block;
	margin-top: 8px;
	color: var(--a3s-color-muted);
	font-size: .875rem;
	text-decoration: underline;
}

.woocommerce div.product form.cart .single_variation_wrap .woocommerce-variation {
	margin: 0 0 12px;
}

.woocommerce div.product form.cart .woocommerce-variation-description {
	margin-bottom: 8px;
	font-size: .875rem;
}

/* Grouped products. */
.woocommerce div.product form.cart.grouped_form table {
	width: 100%;
	margin-bottom: 16px;
	border-collapse: collapse;
}

.woocommerce div.product form.cart.grouped_form td {
	padding: 10px 8px 10px 0;
	border-bottom: 1px solid var(--a3s-color-divider);
	vertical-align: middle;
}

/* Highlights list (optional). */
.a3s-single-usp {
	display: grid;
	gap: 8px;
	margin: 20px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--a3s-color-divider);
	list-style: none;
}

.a3s-single-usp li {
	display: flex;
	align-items: center;
	gap: 10px;
}

.a3s-single-usp .a3s-icon {
	flex: none;
	color: var(--a3s-color-primary);
}

/* Accordion (description open, details, reviews) inside the summary. */
.a3s-accordion {
	margin: 24px 0 0;
	border-top: 1px solid var(--a3s-color-divider);
}

.a3s-accordion__item {
	border-bottom: 1px solid var(--a3s-color-divider);
}

.a3s-accordion__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 44px;
	padding: 10px 0;
	color: var(--a3s-color-text);
	font-size: 1rem;
	font-weight: 500;
	list-style: none;
	cursor: pointer;
}

.a3s-accordion__title::-webkit-details-marker {
	display: none;
}

.a3s-accordion__title:hover {
	color: var(--a3s-color-link-hover);
}

.a3s-accordion__title:focus-visible {
	outline: 2px solid var(--a3s-color-primary);
	outline-offset: 2px;
}

.a3s-accordion__icon {
	flex: none;
	transition: transform var(--a3s-transition-base);
}

.a3s-accordion__item[open] > .a3s-accordion__title .a3s-accordion__icon {
	transform: rotate(180deg);
}

.a3s-accordion__body {
	padding: 4px 0 16px;
	overflow-wrap: anywhere;
}

.a3s-accordion__body > :first-child {
	margin-top: 0;
}

.a3s-accordion__body table:not(.shop_table, .woocommerce-product-attributes) {
	display: block;
	max-width: 100%;
	overflow-x: auto;
}

.woocommerce table.woocommerce-product-attributes {
	display: table;
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

.woocommerce table.shop_attributes.woocommerce-product-attributes tr th,
.woocommerce table.shop_attributes.woocommerce-product-attributes tr td {
	padding: 8px 12px 8px 0;
	background: none;
	border: 0;
	border-bottom: 1px solid var(--a3s-color-divider);
	font-style: normal;
	text-align: left;
	vertical-align: top;
}

.woocommerce table.shop_attributes.woocommerce-product-attributes tr th {
	width: 40%;
	font-weight: 500;
}

.woocommerce table.woocommerce-product-attributes td p {
	margin: 0;
}

/* WooCommerce's smallscreen CSS stacks label over value below 768px. */
@media (max-width: 768px) {
	.woocommerce table.shop_attributes.woocommerce-product-attributes tr th {
		width: auto;
		padding-bottom: 0;
		border-bottom: 0;
	}
}

/* Reviews. */
.woocommerce #reviews #comments h2,
.woocommerce #reviews #reply-title {
	font-size: 1.125rem;
}

.woocommerce #reviews #comments ol.commentlist {
	padding: 0;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text {
	border-color: var(--a3s-color-divider);
	border-radius: 0;
}

/* Related / upsells / cross-sells: 4-up scroll-snap carousel (2 on phones). */
.woocommerce .related.products,
.woocommerce .upsells.products {
	position: relative;
	margin-top: 60px;
}

.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2,
.woocommerce .cross-sells > h2 {
	margin: 0 0 20px;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
}

.woocommerce .related.products ul.products:not(.elementor-grid),
.woocommerce .upsells.products ul.products:not(.elementor-grid),
.woocommerce .cross-sells ul.products:not(.elementor-grid) {
	--a3s-visible: 4;
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--a3s-visible) - 1) * var(--a3s-gutter)) / var(--a3s-visible));
	padding-bottom: 8px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}

.woocommerce .cross-sells ul.products:not(.elementor-grid) {
	--a3s-visible: 3;
}

.woocommerce .related.products ul.products li.product,
.woocommerce .upsells.products ul.products li.product,
.woocommerce .cross-sells ul.products li.product {
	scroll-snap-align: start;
}

@media (max-width: 991.98px) {
	.woocommerce .related.products ul.products:not(.elementor-grid),
	.woocommerce .upsells.products ul.products:not(.elementor-grid),
	.woocommerce .cross-sells ul.products:not(.elementor-grid) {
		--a3s-visible: 3;
	}

	.woocommerce .related.products > h2,
	.woocommerce .upsells.products > h2,
	.woocommerce .cross-sells > h2 {
		font-size: 1.25rem;
	}
}

@media (max-width: 767.98px) {
	.woocommerce .related.products ul.products:not(.elementor-grid),
	.woocommerce .upsells.products ul.products:not(.elementor-grid),
	.woocommerce .cross-sells ul.products:not(.elementor-grid) {
		--a3s-visible: 2;
		gap: 10px;
		grid-auto-columns: calc((100% - 10px) / 2);
	}
}

.a3s-carousel {
	position: relative;
}

.a3s-carousel__nav[hidden] {
	display: none;
}

.a3s-carousel__btn {
	position: absolute;
	top: 50%;
	z-index: 4;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--a3s-color-secondary);
	color: #fff;
	cursor: pointer;
	opacity: .9;
	transition: background-color var(--a3s-transition), opacity var(--a3s-transition);
}

.a3s-carousel__btn--prev {
	left: -22px;
}

.a3s-carousel__btn--next {
	right: -22px;
}

.a3s-carousel__btn:hover {
	background: var(--a3s-color-primary);
	color: var(--a3s-color-primary-contrast);
}

.a3s-carousel__btn:disabled {
	opacity: 0;
	pointer-events: none;
}

.a3s-carousel__btn:focus-visible {
	outline: 0;
	box-shadow: var(--a3s-focus-ring);
}

@media (max-width: 1399.98px) {
	.a3s-carousel__btn--prev {
		left: 4px;
	}

	.a3s-carousel__btn--next {
		right: 4px;
	}
}

@media (hover: none) {
	.a3s-carousel__btn {
		display: none;
	}
}

/* ==========================================================================
   8. Cart page — classic (shortcode / Elementor Pro Cart widget markup)
   Desktop 8/4: items + cross-sells | totals card.
   ========================================================================== */
@media (min-width: 992px) {
	.woocommerce:has(> form.woocommerce-cart-form) {
		display: grid;
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
		column-gap: 24px;
		align-items: start;
	}

	.woocommerce:has(> form.woocommerce-cart-form) > * {
		grid-column: 1 / -1;
	}

	.woocommerce:has(> form.woocommerce-cart-form) > form.woocommerce-cart-form {
		grid-row: 2;
		grid-column: 1;
	}

	.woocommerce:has(> form.woocommerce-cart-form) > .cart-collaterals {
		display: contents;
	}

	.woocommerce:has(> form.woocommerce-cart-form) .cart-collaterals .cart_totals {
		grid-row: 2 / span 2;
		grid-column: 2;
	}

	.woocommerce:has(> form.woocommerce-cart-form) .cart-collaterals .cross-sells {
		grid-row: 3;
		grid-column: 1;
	}
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals,
.woocommerce .cart-collaterals .cross-sells,
.woocommerce-page .cart-collaterals .cross-sells {
	float: none;
	width: auto;
}

.woocommerce table.shop_table.cart {
	border-width: 1px 0;
}

.woocommerce table.shop_table.cart td {
	padding: 16px 8px;
}

.woocommerce table.cart .product-thumbnail {
	width: 96px;
}

.woocommerce table.cart img,
.woocommerce-page table.cart img {
	width: 80px;
	height: 80px;
	object-fit: contain;
	background: var(--a3s-color-surface);
}

.woocommerce table.cart .product-name a {
	color: var(--a3s-color-text);
	text-decoration: none;
}

.woocommerce table.cart .product-name a:hover {
	color: var(--a3s-color-link-hover);
}

.woocommerce table.cart .product-subtotal {
	color: var(--a3s-color-price);
	font-weight: 600;
}

.woocommerce table.cart td.product-remove a.remove,
.woocommerce a.remove {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 0;
	color: var(--a3s-color-muted) !important;
	font-size: 1.5rem;
	font-weight: 400;
}

.woocommerce a.remove:hover {
	background: var(--a3s-color-sale);
	color: #fff !important;
}

.woocommerce table.cart td.actions {
	padding: 16px 0;
}

.woocommerce table.cart td.actions .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 12px;
	background: var(--a3s-color-surface);
}

.woocommerce table.cart td.actions .coupon .input-text {
	width: 220px;
	min-height: 45px;
	margin: 0;
	padding: 8px 12px;
	border: 1px solid var(--a3s-color-border);
}

.woocommerce table.cart td.actions .coupon .button,
.woocommerce table.cart td.actions > .button {
	min-height: 45px;
	border-color: var(--a3s-color-secondary);
	background: transparent;
	color: var(--a3s-color-secondary);
}

.woocommerce table.cart td.actions .coupon .button:hover,
.woocommerce table.cart td.actions > .button:hover {
	background: var(--a3s-color-secondary);
	color: #fff;
}

.woocommerce table.cart td.actions > .button {
	float: right;
	margin-top: 12px;
}

.woocommerce .cart-collaterals .cart_totals {
	padding: 16px;
	border: 1px solid var(--a3s-color-divider);
	background: #fff;
}

.woocommerce .cart-collaterals .cart_totals > h2 {
	margin: 0 0 12px;
	font-size: 1.125rem;
	font-weight: 700;
}

.woocommerce .cart-collaterals .cart_totals table {
	margin: 0 0 16px;
	border-width: 1px 0 0;
}

.woocommerce .cart-collaterals .cart_totals table th {
	width: 40%;
	padding-left: 0;
	font-weight: 500;
}

.woocommerce .cart-collaterals .cart_totals table td {
	padding-right: 0;
	text-align: right;
}

.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce .wc-proceed-to-checkout a.checkout-button.button.alt {
	display: flex;
	width: 100%;
	min-height: 56px;
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	text-transform: uppercase;
}

/* "Continue shopping" (inc/woocommerce.php): under the classic cart table / after the cart block.
   The wrapper carries .woocommerce so the block cart page gets the button styles too. */
.a3s-continue-wrap {
	margin: 16px 0 0;
}

.woocommerce .cart-collaterals .cross-sells {
	margin-top: 40px;
}

.woocommerce .cart-empty.woocommerce-info,
.woocommerce .wc-empty-cart-message .cart-empty {
	margin-top: 8px;
}

.woocommerce .return-to-shop .button {
	border-color: var(--a3s-color-secondary);
	background: transparent;
	color: var(--a3s-color-secondary);
}

@media (max-width: 767.98px) {
	.woocommerce table.shop_table_responsive.cart tr td,
	.woocommerce-page table.shop_table_responsive.cart tr td {
		padding: 8px 4px;
	}

	.woocommerce table.cart td.actions .coupon .input-text {
		flex: 1;
		width: auto;
	}

	.woocommerce table.cart td.actions > .button {
		float: none;
		width: 100%;
	}
}

/* ==========================================================================
   9. Checkout — classic: "legend" boxes (title on the border); ≥ 992: 3 columns
   (billing | shipping + notes | order review + payment). Row 1 is left free for the
   error notices WooCommerce prepends to the form. Elementor Pro's Checkout widget keeps its layout.
   ========================================================================== */
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.woocommerce-page.woocommerce-checkout #customer_details .col-1,
.woocommerce-page.woocommerce-checkout #customer_details .col-2 {
	float: none;
	width: auto;
	max-width: none;
}

.woocommerce-checkout #customer_details .col-1 {
	margin-top: 24px;
}

.woocommerce-checkout #customer_details .col-2 {
	margin-top: 36px;
}

.woocommerce-checkout .col2-set::before,
.woocommerce-checkout .col2-set::after {
	content: none;
}

@media (min-width: 992px) {
	.woocommerce form.checkout:not(.elementor-widget-woocommerce-checkout-page form) {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-template-rows: auto auto 1fr;
		grid-template-areas: ". . ." "billing shipping heading" "billing shipping review";
		column-gap: 24px;
		row-gap: 0;
		align-items: start;
	}

	.woocommerce form.checkout:not(.elementor-widget-woocommerce-checkout-page form) > * {
		grid-column: 1 / -1;
		min-width: 0;
	}

	.woocommerce form.checkout:not(.elementor-widget-woocommerce-checkout-page form) > #customer_details {
		display: contents;
	}

	.woocommerce form.checkout:not(.elementor-widget-woocommerce-checkout-page form) #customer_details .col-1 {
		grid-area: billing;
		margin-top: 12px;
	}

	.woocommerce form.checkout:not(.elementor-widget-woocommerce-checkout-page form) #customer_details .col-2 {
		grid-area: shipping;
		margin-top: 12px;
	}

	.woocommerce form.checkout:not(.elementor-widget-woocommerce-checkout-page form) > #order_review_heading {
		grid-area: heading;
		justify-self: start;
		margin-top: 0;
	}

	.woocommerce form.checkout:not(.elementor-widget-woocommerce-checkout-page form) > #order_review {
		grid-area: review;
	}
}

/* Boxes. */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields:has(> h3),
.woocommerce-checkout .woocommerce-account-fields,
.woocommerce-checkout form.checkout #order_review {
	position: relative;
	padding: 34px 16px 16px;
	border: 1px solid var(--a3s-color-border);
	border-radius: 5px;
	background: #fff;
}

.woocommerce-checkout .woocommerce-shipping-fields + .woocommerce-additional-fields,
.woocommerce-checkout .woocommerce-billing-fields + .woocommerce-account-fields {
	margin-top: 36px;
}

.woocommerce-checkout .woocommerce-billing-fields > h3:first-child,
.woocommerce-checkout .woocommerce-additional-fields > h3:first-child,
.woocommerce-checkout form.checkout #order_review_heading {
	z-index: 1;
	max-width: calc(100% - 24px);
	margin: 0;
	padding: 0 7px;
	background: #fff;
	color: var(--a3s-color-heading);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.3;
}

.woocommerce-checkout .woocommerce-billing-fields > h3:first-child,
.woocommerce-checkout .woocommerce-additional-fields > h3:first-child {
	position: absolute;
	top: 0;
	left: 12px;
	transform: translateY(-50%);
}

/* The review heading sits outside its box: pull the box up under it. */
.woocommerce-checkout form.checkout #order_review_heading {
	position: relative;
	display: table;
	margin: 36px 0 -12px 12px;
}

.woocommerce-checkout .woocommerce-shipping-fields #ship-to-different-address {
	margin: 0;
	font-size: 1rem;
}

.woocommerce-checkout .woocommerce-shipping-fields #ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	margin: 0;
	font-weight: 700;
}

.woocommerce-checkout .woocommerce-shipping-fields .shipping_address {
	margin-top: 8px;
}

/* Fields: labels above, 48 px inputs. */
.woocommerce form .form-row {
	margin: 0 0 14px;
	padding: 0;
}

.woocommerce form .form-row label {
	margin-bottom: 4px;
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.4;
}

.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: flex-start;
	font-weight: 400;
}

.woocommerce form .form-row .required {
	color: var(--a3s-color-error);
	text-decoration: none;
}

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
	min-height: 48px;
	padding: 10px 12px;
	border: 1px solid var(--a3s-color-border);
	border-radius: var(--a3s-radius-sm);
	line-height: 1.4;
}

.woocommerce form .form-row textarea {
	min-height: 100px;
}

.woocommerce form .form-row.woocommerce-invalid label {
	color: var(--a3s-color-error);
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
	border-color: var(--a3s-color-error);
}

.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated select {
	border-color: var(--a3s-color-border);
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
	width: 48.5%;
}

@media (min-width: 992px) and (max-width: 1199.98px) {
	.woocommerce-checkout form.checkout .form-row-first,
	.woocommerce-checkout form.checkout .form-row-last {
		float: none;
		width: 100%;
	}
}

/* Order review + payment. */
.woocommerce-checkout #order_review table.shop_table {
	margin: 0 0 16px;
	border-width: 0 0 1px;
	font-size: .9375rem;
}

.woocommerce-checkout #order_review table.shop_table thead th {
	border-top: 0;
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
	padding: 10px 4px;
}

.woocommerce-checkout #order_review table.shop_table td:last-child,
.woocommerce-checkout #order_review table.shop_table th:last-child {
	text-align: right;
}

.woocommerce-checkout #order_review #shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.woocommerce-checkout #order_review #shipping_method li {
	margin: 0 0 6px;
}

.woocommerce-checkout #payment {
	border-radius: 0;
	background: transparent;
}

.woocommerce-checkout #payment ul.payment_methods {
	padding: 0 0 12px;
	border-bottom: 1px solid var(--a3s-color-divider);
}

.woocommerce-checkout #payment ul.payment_methods li {
	padding: 8px 0;
	line-height: 1.4;
}

.woocommerce-checkout #payment ul.payment_methods li label {
	display: inline;
	font-weight: 700;
}

.woocommerce-checkout #payment ul.payment_methods li img {
	display: inline-block;
	max-height: 24px;
	margin-left: 6px;
	vertical-align: middle;
}

.woocommerce-checkout #payment div.payment_box {
	margin: 8px 0 0;
	padding: 12px;
	border-radius: 0;
	background: var(--a3s-color-surface);
	color: var(--a3s-color-text);
	font-size: .875rem;
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--a3s-color-surface);
}

.woocommerce-checkout #payment div.form-row {
	padding: 16px 0 0;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 12px;
	font-size: .875rem;
}

.woocommerce-checkout .woocommerce-terms-and-conditions {
	max-height: 240px !important;
	border-color: var(--a3s-color-divider) !important;
	background: var(--a3s-color-surface-2) !important;
}

.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order {
	float: none;
	width: 100%;
	min-height: 56px;
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
}

/* Checkout notes / login / coupon toggles. */
.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info {
	border-color: var(--a3s-color-border);
	background: var(--a3s-color-surface);
	color: var(--a3s-color-text);
}

.woocommerce form.checkout_coupon,
.woocommerce form.woocommerce-form-login.login:not(.a3s-auth form) {
	margin: 0 0 20px;
	padding: 16px;
	border: 1px solid var(--a3s-color-border);
	border-radius: 5px;
}

.woocommerce form.checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.woocommerce form.checkout_coupon > p:not(.form-row) {
	flex-basis: 100%;
	margin: 0;
}

.woocommerce form.checkout_coupon .form-row {
	float: none;
	width: auto;
	margin: 0;
}

/* ==========================================================================
   10. Order received / order details (thank-you page, view order)
   ========================================================================== */
.woocommerce-order .woocommerce-thankyou-order-received,
.woocommerce-order .woocommerce-notice--success {
	margin: 8px 0 24px;
	padding: 16px 16px 16px 52px;
	border: 1px solid var(--a3s-alert-success-border);
	background: var(--a3s-alert-success-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a3622' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12.5 2.8 2.8L16.5 9'/%3E%3C/svg%3E") 16px center / 24px no-repeat;
	color: var(--a3s-alert-success-text);
	font-size: 1.125rem;
	font-weight: 500;
}

.woocommerce ul.order_details,
.woocommerce-order ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

.woocommerce ul.order_details::before,
.woocommerce ul.order_details::after {
	content: none;
}

.woocommerce ul.order_details li {
	float: none;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--a3s-color-divider);
	background: var(--a3s-color-surface-2);
	color: var(--a3s-color-muted);
	font-size: .75rem;
	line-height: 1.4;
	text-transform: uppercase;
}

.woocommerce ul.order_details li strong {
	display: block;
	margin-top: 4px;
	color: var(--a3s-color-text);
	font-size: 1rem;
	text-transform: none;
}

.woocommerce .woocommerce-order-details,
.woocommerce .woocommerce-customer-details {
	margin-bottom: 32px;
}

.woocommerce .woocommerce-order-details__title,
.woocommerce .woocommerce-column__title,
.woocommerce .woocommerce-order-downloads__title {
	margin: 0 0 12px;
	font-size: 1.25rem;
	font-weight: 700;
}

.woocommerce .woocommerce-customer-details .col2-set {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
}

.woocommerce .woocommerce-customer-details .col2-set .col-1,
.woocommerce .woocommerce-customer-details .col2-set .col-2 {
	float: none;
	width: auto;
}

.woocommerce .woocommerce-customer-details address {
	padding: 16px;
	border: 1px solid var(--a3s-color-divider);
	border-radius: 0;
	font-style: normal;
	line-height: 1.6;
}

.woocommerce .woocommerce-customer-details address p {
	margin: 4px 0 0;
}

/* ==========================================================================
   11. Cart & Checkout blocks
   ========================================================================== */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	font-family: var(--a3s-font-body);
}

.wc-block-components-button:not(.is-link),
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link),
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link) {
	min-height: 48px;
	border: 1px solid var(--a3s-color-primary);
	border-radius: var(--a3s-radius);
	background: var(--a3s-color-primary);
	color: var(--a3s-color-primary-contrast);
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--a3s-transition), color var(--a3s-transition), border-color var(--a3s-transition);
}

.wc-block-components-button:not(.is-link):hover,
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link):hover,
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link):hover {
	border-color: var(--a3s-color-secondary);
	background: var(--a3s-color-secondary);
	color: #fff;
}

.wc-block-components-button:not(.is-link):focus-visible {
	box-shadow: var(--a3s-focus-ring);
}

/* :not(.is-link) = 0,4,0: beats WC Blocks' body:not(...) .wc-block-components-button:not(.is-link) {min-height:3em} (0,3,1). */
.wp-block-woocommerce-cart .wc-block-cart__submit-button.wc-block-components-button:not(.is-link),
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button.wc-block-components-button:not(.is-link) {
	min-height: 56px;
	text-transform: uppercase;
}

.wc-block-components-button.is-link,
.wc-block-components-totals-coupon-link,
.wc-block-components-checkout-return-to-cart-button {
	color: var(--a3s-color-link-hover);
}

.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-text-input textarea,
.wp-block-woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wp-block-woocommerce-cart .wc-block-components-text-input input,
.wc-block-components-totals-coupon .wc-block-components-text-input input {
	border: 1px solid var(--a3s-color-border);
	border-radius: var(--a3s-radius-sm);
	background-color: #fff;
	color: var(--a3s-color-text);
}

.wp-block-woocommerce-checkout .wc-block-components-text-input input:focus,
.wp-block-woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wp-block-woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus {
	border-color: var(--a3s-color-primary);
	box-shadow: var(--a3s-focus-ring);
}

.wp-block-woocommerce-checkout .wc-block-components-text-input.has-error input,
.wp-block-woocommerce-checkout .wc-block-components-validation-error {
	border-color: var(--a3s-color-error);
	color: var(--a3s-color-error);
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title,
.wc-block-components-title.wc-block-components-title {
	color: var(--a3s-color-heading);
	font-size: 1.2rem;
	font-weight: 700;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading-content {
	color: var(--a3s-color-muted);
}

.wc-block-components-sidebar .wc-block-components-panel,
.wp-block-woocommerce-cart .wc-block-cart__sidebar,
.wp-block-woocommerce-checkout .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	border-color: var(--a3s-color-divider);
}

/* Mobile grid row: WC's fixed 80px 132px + gaps pushed the line total past the edge with Rubik + steppers. */
.wc-block-cart.wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row {
	grid-template-columns: 80px minmax(0, 1fr);
}

.wp-block-woocommerce-cart .wc-block-cart__sidebar {
	padding: 16px;
	border: 1px solid var(--a3s-color-divider);
}

.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
	border: 1px solid var(--a3s-color-divider);
	border-radius: 0;
}

.wc-block-components-product-price,
.wc-block-cart-item__total .wc-block-components-product-price__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--a3s-color-price);
}

.wc-block-components-product-price del,
.wc-block-components-product-price__regular {
	color: var(--a3s-color-old-price);
	opacity: 1;
}

.wc-block-components-product-badge,
.wc-block-components-sale-badge {
	border: 0;
	border-radius: 0;
	background: var(--a3s-color-sale);
	color: #fff;
	font-weight: 500;
	text-transform: none;
}

.wc-block-components-product-name {
	color: var(--a3s-color-text);
	text-transform: uppercase;
}

.wc-block-components-quantity-selector {
	border-radius: var(--a3s-radius-sm);
}

.wc-block-components-quantity-selector::after {
	border-color: var(--a3s-color-border);
	border-radius: var(--a3s-radius-sm);
}

.wc-block-components-radio-control__input:checked,
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	border-color: var(--a3s-color-secondary);
	background-color: var(--a3s-color-secondary);
}

.wc-block-components-radio-control__input:checked::before {
	background: #fff;
}

.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked::after {
	border-radius: 0;
}

.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: inset 0 0 0 1.5px var(--a3s-color-primary);
}

.wc-block-components-notice-banner {
	border-radius: 0;
}

.wc-block-components-notice-banner.is-success {
	border-color: var(--a3s-alert-success-border);
	background: var(--a3s-alert-success-bg);
	color: var(--a3s-alert-success-text);
}

.wc-block-components-notice-banner.is-error {
	border-color: var(--a3s-alert-error-border);
	background: var(--a3s-alert-error-bg);
	color: var(--a3s-alert-error-text);
}

.wc-block-components-notice-banner.is-info {
	border-color: var(--a3s-alert-info-border);
	background: var(--a3s-alert-info-bg);
	color: var(--a3s-alert-info-text);
}

.wc-block-components-notice-banner.is-warning {
	border-color: var(--a3s-alert-warning-border);
	background: var(--a3s-alert-warning-bg);
	color: var(--a3s-alert-warning-text);
}

.wc-block-components-notice-banner > svg {
	background-color: currentColor;
	fill: #fff;
}

/* ==========================================================================
   12. Reduced motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.woocommerce ul.products li.product,
	.a3s-card__hover,
	.a3s-accordion__icon,
	.a3s-products,
	.a3s-carousel__btn {
		transition: none;
	}

	.woocommerce .related.products ul.products,
	.woocommerce .upsells.products ul.products {
		scroll-behavior: auto;
	}
}

/* WooCommerce core pagination CSS (min-width: 1em; display: block) beats base.css's :where() sizing. */
.woocommerce nav.woocommerce-pagination ul li .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 38px;
	min-height: 38px;
}

/* ==========================================================================
   Touch screens: 44 px targets (mouse / trackpad desktops unchanged).
   ========================================================================== */
@media (pointer: coarse) {
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .a3s-instore-link,
	.woocommerce .a3s-shop-toolbar .woocommerce-ordering select.orderby {
		min-height: 44px;
	}

	.woocommerce nav.woocommerce-pagination ul li .page-numbers {
		min-width: 44px;
		min-height: 44px;
	}

	/* 2 × 44 px buttons + 44 px input. */
	.woocommerce .quantity.a3s-qty,
	.quantity.a3s-qty {
		width: 132px;
	}

	.a3s-qty__btn {
		flex-basis: 44px;
		min-width: 44px;
	}

	/* Elementor Pro loop Add To Cart: let the wider stepper push the button to its own row in narrow cards. */
	form.cart.e-loop-add-to-cart-form {
		flex-wrap: wrap;
	}

	.woocommerce table.cart td.product-remove a.remove,
	.woocommerce a.remove {
		width: 44px;
		height: 44px;
	}

	.wc-block-cart .wc-block-cart-item__remove-link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
	}
}
