/* Cart block: quantity stepper, remove button, Proceed to Checkout (0.7.0) */
body .wc-block-components-quantity-selector.wc-block-components-quantity-selector {
	display: inline-flex !important;
	align-items: stretch !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	padding: 0 !important;
	border: 1px solid #e0e0e0 !important;
	border-radius: 6px !important;
	overflow: hidden !important;
	background: #fff !important;
}
body .wc-block-components-quantity-selector.wc-block-components-quantity-selector::after { display: none !important; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button.wc-block-components-quantity-selector__button {
	position: static !important;
	inset: auto !important;
	transform: none !important;
	flex: 0 0 36px !important;
	width: 36px !important;
	min-width: 36px !important;
	height: 36px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #000 !important;
	color: #fff !important;
	font-size: 18px !important;
	line-height: 1 !important;
	font-weight: 600 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	opacity: 1 !important;
	cursor: pointer !important;
	box-shadow: none !important;
	transition: background-color .15s ease, color .15s ease;
	/* the theme hides this text (text-indent) in favour of icon pseudo-elements */
	text-indent: 0 !important;
	-webkit-text-fill-color: currentColor !important;
	font-family: Arial, sans-serif !important;
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button.wc-block-components-quantity-selector__button::before,
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button.wc-block-components-quantity-selector__button::after { display: none !important; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--minus.wc-block-components-quantity-selector__button--minus { order: 1 !important; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input.wc-block-components-quantity-selector__input {
	order: 2 !important;
	position: static !important;
	flex: 0 0 48px !important;
	width: 48px !important;
	min-width: 48px !important;
	height: 36px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: #fff !important;
	color: #000 !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	text-align: center !important;
	-moz-appearance: textfield;
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--plus.wc-block-components-quantity-selector__button--plus { order: 3 !important; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button.wc-block-components-quantity-selector__button:not(:disabled):hover,
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button.wc-block-components-quantity-selector__button:not(:disabled):focus-visible,
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button.wc-block-components-quantity-selector__button:not(:disabled):active {
	background: #3eb2e6 !important;
	color: #000 !important;
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button.wc-block-components-quantity-selector__button:disabled {
	opacity: .35 !important;
	cursor: not-allowed !important;
}

body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	position: static !important;
	width: 32px !important;
	height: 32px !important;
	padding: 0 !important;
	margin: 8px 0 0 !important;
	border: 0 !important;
	border-radius: 6px !important;
	background: #000 !important;
	color: #fff !important;
	cursor: pointer !important;
	font-size: 0 !important;
	transition: background-color .15s ease;
}
body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link::before,
body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link::after { display: none !important; }
body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link svg { display: block !important; width: 18px !important; height: 18px !important; fill: #fff !important; color: #fff !important; }
body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link:hover,
body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link:focus-visible,
body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link:active { background: #3eb2e6 !important; }
body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link:hover svg,
body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link:focus-visible svg,
body .wc-block-cart-item__remove-link.wc-block-cart-item__remove-link:active svg { fill: #000 !important; color: #000 !important; }

body .wc-block-cart__submit-button.wc-block-cart__submit-button {
	background: #000 !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 6px !important;
	transition: background-color .15s ease, color .15s ease;
}
body .wc-block-cart__submit-button.wc-block-cart__submit-button .wc-block-components-button__text { color: inherit !important; }
body .wc-block-cart__submit-button.wc-block-cart__submit-button:hover,
body .wc-block-cart__submit-button.wc-block-cart__submit-button:focus-visible,
body .wc-block-cart__submit-button.wc-block-cart__submit-button:active {
	background: #3eb2e6 !important;
	color: #000 !important;
}

/* Shop / archive product cards (0.7.1): Add to cart, Select options, View cart.
   The theme draws these white with black text and only fills them on hover;
   match the site standard instead. Icons (cart, arrow) follow the text color.
   Covers both the list and grid card layouts. */
html body .products .product a.button.button[class*="product_type_"],
html body .products .product a.added_to_cart.wc-forward {
	background: #000 !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border: 0 !important;
	border-radius: 6px !important;
	transition: background-color .2s ease, color .2s ease !important;
}
html body .products .product a.button.button[class*="product_type_"]::before,
html body .products .product a.button.button[class*="product_type_"]::after {
	background-color: #fff !important;
}
html body .products .product a.button.button[class*="product_type_"]:hover,
html body .products .product a.button.button[class*="product_type_"]:focus-visible,
html body .products .product a.button.button[class*="product_type_"]:active,
html body .products .product a.added_to_cart.wc-forward:hover,
html body .products .product a.added_to_cart.wc-forward:focus-visible {
	background: #3eb2e6 !important;
	color: #000 !important;
	-webkit-text-fill-color: #000 !important;
}
html body .products .product a.button.button[class*="product_type_"]:hover::before,
html body .products .product a.button.button[class*="product_type_"]:hover::after,
html body .products .product a.button.button[class*="product_type_"]:focus-visible::before,
html body .products .product a.button.button[class*="product_type_"]:focus-visible::after,
html body .products .product a.button.button[class*="product_type_"]:active::before,
html body .products .product a.button.button[class*="product_type_"]:active::after {
	background-color: #000 !important;
}


/* Product page + shop quick-view pop-out (0.7.2; moved here from an inline
   product-page-only style so the quick view gets it too): Perfect Brands logo
   only, Add to cart / Buy now buttons, no express-checkout buttons. */
/* Brand logo: Perfect Brands' logo in the theme's box; theme's own logo
   and PWB's original lower block hidden (only when ours rendered) */
.single-title-wrapper:has(.swst-pwb-brand) > .product-brand:not(.swst-pwb-brand) { display: none !important; }
.summary:has(.swst-pwb-brand) .pwb-single-product-brands { display: none !important; }
/* 0.6.2: Perfect Brands' presentation (larger, no gray box), not the theme's 120x56 box */
.single-title-wrapper .product-brand.swst-pwb-brand {
	background: none !important; padding: 0 !important; width: auto !important; height: auto !important;
	max-width: none !important; max-height: none !important; overflow: visible !important;
	justify-content: flex-start; margin-bottom: 16px;
}
.swst-pwb-brand a { display: flex; align-items: center; }
.single-title-wrapper .swst-pwb-brand img { height: 96px !important; width: auto !important; max-width: 160px; max-height: none; object-fit: contain; margin: 0 !important; }

/* Add to cart + Buy now */
html body .summary form.cart .single_add_to_cart_button,
html body .summary form.cart .single_add_to_cart_button.buy-now-button {
	background-color: #000 !important;
	color: #fff !important;
	transition: background-color .2s ease, color .2s ease;
}
html body .summary form.cart .single_add_to_cart_button::before,
html body .summary form.cart .single_add_to_cart_button::after {
	background-color: #fff !important;
}
html body .summary form.cart .single_add_to_cart_button:hover,
html body .summary form.cart .single_add_to_cart_button:focus-visible,
html body .summary form.cart .single_add_to_cart_button.buy-now-button:hover,
html body .summary form.cart .single_add_to_cart_button.buy-now-button:focus-visible {
	background-color: #3eb2e6 !important;
	color: #000 !important;
}
html body .summary form.cart .single_add_to_cart_button:hover::before,
html body .summary form.cart .single_add_to_cart_button:hover::after,
html body .summary form.cart .single_add_to_cart_button:focus-visible::before,
html body .summary form.cart .single_add_to_cart_button:focus-visible::after {
	background-color: #000 !important;
}

/* Express checkout buttons */
.summary .wcpay-express-checkout-wrapper { display: none !important; }

/* Shop card counter (0.7.3): - / + greyed out at the 1 / stock limits */
.comp-counter .swst-off { opacity: .35; cursor: not-allowed !important; }

/* Quick-view pop-out gallery (0.7.4): the theme shifts the thumbnail strip up
   ~96px over the main photo; put it below the photo instead. */
.quick-view-wrapper .woocommerce-product-gallery .flex-control-thumbs {
	transform: none !important;
	margin-top: 12px !important;
	position: relative !important;
	z-index: 2;
}

/* Product gallery frame (0.7.5) -- product pages AND the quick-view pop-out.
   The gallery slider resizes itself to each photo's shape, so tall photos
   pushed the thumbnails down (out of reach in the pop-out). Fixed 4:3 frame
   instead; every photo is scaled to fit inside it (nothing cropped), on
   white. The hover magnifier still shows the full-size photo. */
.woocommerce-product-gallery .flex-viewport {
	height: auto !important;   /* beats the slider's own inline height */
	aspect-ratio: 4 / 3;
	background: #fff;
}
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image {
	height: 100% !important;
}
/* products with a single photo have no slider */
.woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image {
	aspect-ratio: 4 / 3;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image > a {
	display: block;
	height: 100% !important;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image > a > img,
.woocommerce-product-gallery .woocommerce-product-gallery__image > img:not(.zoomImg) {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	background: #fff;
}

/* 0.7.6: hover magnifier -- its full-size copy (img.zoomImg) must keep its
   natural size, not the frame's fit-to-box sizing above. */
.woocommerce-product-gallery .woocommerce-product-gallery__image > img.zoomImg {
	width: auto !important;
	height: auto !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: fill !important;
	background: #fff;
}
/* 0.7.6: full-screen button -- keep the theme's flat magnifier icon, hide
   WooCommerce's emoji one rendered on top of it. */
.woocommerce-product-gallery__trigger > span { display: none !important; }

/* Shop "Filter by brand" list (0.7.7): logos fill a white box instead of a
   small logo on grey, and room on the right so the scrollbar doesn't run
   into the product counts. */
.woocommerce-widget-layered-nav-list .term-image-wrapper {
	background: #fff !important;
	border-color: #e6e6e6 !important;
	padding: 0 !important;
	overflow: hidden;
}
.woocommerce-widget-layered-nav-list .term-image-wrapper img.term-image {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
}
.woocommerce-widget-layered-nav-list.scroll {
	padding-right: 16px !important;
	box-sizing: border-box;
}

/* Mobile sticky buy bar (0.8.1): when you scroll past the product form the
   theme pins it to the bottom of the screen, but kept it 300px wide and
   squeezed Add to cart into a small square (text wrapped). Full width:
   quantity + Add to cart on one row, Buy now underneath. */
html body form.cart.sticky {
	left: 0 !important;
	right: 0 !important;
	width: auto !important;
	max-width: none !important;
	box-sizing: border-box !important;
	grid-template-columns: 132px minmax(0, 1fr) !important;
	gap: 8px !important;
	padding: 8px 12px !important;
	align-items: stretch;
}
html body form.cart.sticky > .variation-calc {
	width: auto !important;
	min-width: 0 !important;
}
html body form.cart.sticky > .variation-calc .quantity { width: 100% !important; }
html body form.cart.sticky .single_add_to_cart_button {
	min-width: 0 !important;
	width: 100% !important;
	height: 48px !important;
	line-height: 48px !important;
	white-space: nowrap !important;
	font-size: 15px !important;
	padding: 0 12px !important;
	justify-content: center !important;
}
html body form.cart.sticky .single_add_to_cart_button.buy-now-button { grid-column: 1 / -1 !important; }


/* Product name links in the cart, mini-cart and checkout summary (0.8.4):
   the theme turned them white on hover, so they vanished on the white card.
   Hover/keyboard focus now shows a darker shade of the theme blue (readable
   on white) with an underline. */
html body a.wc-block-components-product-name {
	transition: color .15s ease, text-decoration-color .15s ease;
	text-decoration: underline transparent;
	text-underline-offset: 3px;
	text-decoration-thickness: 2px;
}
html body a.wc-block-components-product-name:hover,
html body a.wc-block-components-product-name:focus-visible,
html body .wc-block-cart-item__product a:hover,
html body .woocommerce-mini-cart-item a:not(.remove):hover {
	color: #1a7fb0 !important;
	-webkit-text-fill-color: #1a7fb0 !important;
	text-decoration: underline !important;
	text-decoration-color: #3eb2e6 !important;
	text-underline-offset: 3px;
	text-decoration-thickness: 2px;
}

/* 0.8.5 vehicle-aware category widget on first load (assets/cat-filter.js) */
.widget_product_categories li.cat-item.swst-cat-off { display: none !important; }
.widget_product_categories li.swst-cat-leaf > .cat-toggle { display: none !important; }
.widget_product_categories.swst-cat-pending ul.product-categories { opacity: .35; transition: opacity .2s; }

/* 0.8.6 cart totals: applied-coupon chip. The theme's generic button style
   made the remove button a 96x40 black block with a black (invisible) icon. */
body .wc-block-components-totals-discount__coupon-list .wc-block-components-chip.wc-block-components-chip {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	margin: 4px 6px 0 0 !important;
	padding: 3px 4px 3px 10px !important;
	background: #fff !important;
	border: 1px solid #d0d5da !important;
	border-radius: 999px !important;
	color: #111 !important;
	font: 600 12px/1.4 Poppins, sans-serif !important;
	letter-spacing: .04em;
	text-transform: uppercase;
}
body .wc-block-components-totals-discount__coupon-list .wc-block-components-chip__text { color: #111 !important; }
body .wc-block-components-totals-discount__coupon-list button.wc-block-components-chip__remove.wc-block-components-chip__remove {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 20px !important;
	height: 20px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: #111 !important;
	color: #fff !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
}
body .wc-block-components-totals-discount__coupon-list button.wc-block-components-chip__remove.wc-block-components-chip__remove::before,
body .wc-block-components-totals-discount__coupon-list button.wc-block-components-chip__remove.wc-block-components-chip__remove::after { display: none !important; }
body .wc-block-components-totals-discount__coupon-list button.wc-block-components-chip__remove svg {
	display: block !important;
	width: 16px !important;
	height: 16px !important;
	fill: #fff !important;
	color: #fff !important;
}
body .wc-block-components-totals-discount__coupon-list button.wc-block-components-chip__remove.wc-block-components-chip__remove:hover,
body .wc-block-components-totals-discount__coupon-list button.wc-block-components-chip__remove.wc-block-components-chip__remove:focus-visible { background: #3eb2e6 !important; }
body .wc-block-components-totals-discount__coupon-list button.wc-block-components-chip__remove:hover svg,
body .wc-block-components-totals-discount__coupon-list button.wc-block-components-chip__remove:focus-visible svg { fill: #000 !important; color: #000 !important; }
