/*
 * WP Definitivo: store presentation.
 *
 * Loaded only while WooCommerce is active, right after style.css. Store page
 * styles (cart, checkout, account, product) load after this file.
 */

/* WooCommerce's block-theme stylesheet fixes these selects at height: 3em
   while padding them by .9em top and bottom, which leaves 1.2em for a line
   that needs about 1.33em and clips descenders. Letting the control size
   itself keeps the label whole; min-height above still guards the target. */
.wp-site-blocks .woocommerce table.variations tr td select {
	height: auto;
}

.wpdef-product-card {
	border: 1px solid var(--wp--preset--color--content-border);
	border-radius: 0.75rem;
	box-shadow: 0 0.625rem 1.75rem color-mix(in srgb, var(--wp--preset--color--foreground) 7%, transparent);
	overflow: hidden;
}

.woocommerce span.onsale {
	background-color: var(--wp--preset--color--error);
	border-radius: 0.375rem;
	color: var(--wp--preset--color--white);
	font-weight: 700;
	line-height: 1.25;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.625rem;
}

/* Columns stretch their children by default, which left the filter panel
   drawn down the whole height of the results grid. */
.wpdef-store-layout > .wpdef-store-sidebar {
	align-self: start;
}

.wpdef-store-sidebar .wc-block-product-filters {
	gap: var(--wp--preset--spacing--50);
	width: 100%;
}

.wpdef-store-sidebar .wc-block-product-filters__open-overlay {
	background-color: var(--wp--preset--color--accent);
	border-radius: 0.5rem;
	color: var(--wp--preset--color--white);
	font-weight: 600;
	justify-content: center;
	min-height: 3rem;
	padding: 0.625rem 1rem;
	width: 100%;
}

.wpdef-store-sidebar .wc-block-product-filters__close-overlay {
	min-height: 2.75rem;
}

/* Off-screen transforms alone leave the closed WooCommerce drawer tabbable.
 * Keep the desktop filters and blocks without a drawer available. */

@media (max-width: 600px) {
	.wc-block-product-filters:not(.is-overlay-opened) .wc-block-product-filters__overlay {
		visibility: hidden;
	}
}

/* The theme's generic fieldset rule is written for forms. WooCommerce renders
   each filter group as a fieldset, so that frame followed it into the sidebar,
   where the titles and spacing already separate the groups. */
.wpdef-store-sidebar fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

/* Each filter group already carries its own name in a legend, localised and
   correct for whichever taxonomy or attribute the store has, but WooCommerce
   marks it screen-reader-only. Revealing it beats hard-coding titles that
   could not know an attribute's name. The utility pins itself with an
   important declaration, so undoing it needs one too. */
.wpdef-store-sidebar legend.screen-reader-text:not(.wpdef-store-categories legend) {
	clip: auto;
	clip-path: none;
	height: auto;
	margin: 0;
	overflow: visible;
	position: static !important;
	white-space: normal;
	width: auto;
}

.wpdef-store-sidebar .wc-block-product-filter-checkbox-list__items {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* The whole row is the target, so it carries the theme's 44-pixel height. */
.wpdef-store-sidebar .wc-block-product-filter-checkbox-list__label {
	align-items: center;
	cursor: pointer;
	display: flex;
	gap: 0.625rem;
	min-height: 2.75rem;
	padding: 0.25rem 0.5rem;
	border-radius: 0.25rem;
}

/* WooCommerce derives the box colour from the palette at runtime, which lands
   almost white against this panel. The theme states the colours instead. */
.wpdef-store-sidebar input.wc-block-product-filter-checkbox-list__input {
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.3125rem;
	flex-shrink: 0;
	height: 1.25rem;
	margin: 0;
	min-height: 0;
	padding: 0;
	width: 1.25rem;
}

.wpdef-store-sidebar input.wc-block-product-filter-checkbox-list__input:checked {
	background-color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
}

.wpdef-store-sidebar .wc-block-product-filter-checkbox-list__label:hover input.wc-block-product-filter-checkbox-list__input:not(:checked) {
	border-color: var(--wp--preset--color--accent);
}

.wpdef-store-sidebar .wc-block-product-filter-checkbox-list__mark {
	color: var(--wp--preset--color--white);
}

.wpdef-store-sidebar .wc-block-product-filter-checkbox-list__text {
	color: var(--wp--preset--color--foreground);
	overflow-wrap: anywhere;
}

/* The selected span of the slider defaults to currentColor, which takes the
   body text colour, and outside it the track is transparent. Naming the
   accent and adding a track gives the control a start and an end. */
.wpdef-store-sidebar .wc-block-product-filter-price-slider__range {
	--range-color: var(--wp--preset--color--accent);

	background-color: var(--wp--preset--color--border-subtle);
	border-radius: 999px;
}

/* WooCommerce caps the price fields at 60px beside an empty middle column,
   which cut values from four digits. Each field takes half the row instead,
   with the text size and spacing of the other fields. */
.wpdef-store-sidebar .wc-block-product-filter-price-slider__content:not(.wc-block-product-filter-price-slider__content--inline) {
	grid-template-areas: "price-slider price-slider" "left-input right-input";
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wpdef-store-sidebar .wc-block-product-filter-price-slider .text input[type="text"] {
	font-size: 0.875rem;
	max-width: none;
	padding: 0.625rem;
	width: 100%;
}

/* The two range inputs have no height and WooCommerce removes their outline,
   so the theme's focus shadow drew a thick band over the track and the handle
   only changed colour. The focused handle gets the store's 2px outline, with
   its white border as the gap. */
:is(.wp-site-blocks) .wc-block-product-filter-price-slider__range input[type="range"]:focus-visible {
	box-shadow: none;
}

:is(.wp-site-blocks) .wc-block-product-filter-price-slider__range input[type="range"]:focus-visible::-webkit-slider-thumb {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--white);
	box-shadow: 0 0 0 2px var(--wp--preset--color--secondary);
}

:is(.wp-site-blocks) .wc-block-product-filter-price-slider__range input[type="range"]:focus-visible::-moz-range-thumb {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--white);
	box-shadow: 0 0 0 2px var(--wp--preset--color--secondary);
}

/* Forced colours drop the gradient that draws the track and the shadow that
   marks the focused handle, so system colours draw both. */
@media (forced-colors: active) {
	.wpdef-store-sidebar .wc-block-product-filter-price-slider__range {
		--range-color: CanvasText;

		background-color: transparent;
		forced-color-adjust: none;
	}

	:is(.wp-site-blocks) .wc-block-product-filter-price-slider__range input[type="range"]:focus-visible::-webkit-slider-thumb {
		background: Highlight;
		border-color: Canvas;
		box-shadow: 0 0 0 2px Highlight;
	}

	:is(.wp-site-blocks) .wc-block-product-filter-price-slider__range input[type="range"]:focus-visible::-moz-range-thumb {
		background: Highlight;
		border-color: Canvas;
		box-shadow: 0 0 0 2px Highlight;
	}
}

.wpdef-store-toolbar {
	align-items: center;
	border: 1px solid var(--wp--preset--color--content-border);
	border-radius: 0.75rem;
	column-gap: var(--wp--preset--spacing--40);
	margin-block-end: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30);
	row-gap: var(--wp--preset--spacing--20);
}

/* A vertical list, not a pill row: a store with many long category names
   pushed the pills into four wrapped lines and buried the result count.
   The list item is the row, so the count stays beside the name instead of
   wrapping under it, and hover and current cover the whole row. */
.wpdef-store-categories .wc-block-product-categories-list {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0;
	padding: 0;
}

.wpdef-store-categories .wc-block-product-categories-list-item-count {
	color: var(--wp--preset--color--muted);
	flex-shrink: 0;
	font-size: var(--wp--preset--font-size--small);
}

/* The open archive is filled and bolder, so the state does not rest on colour
   alone, and aria-current states it for assistive technology. */
.wpdef-store-categories .wc-block-product-categories-list-item:has(> a[aria-current="page"]) {
	background-color: var(--wp--preset--color--accent);
	font-weight: 600;
}

.wpdef-store-categories__all {
	background-color: var(--wp--preset--color--soft);
	border: 1px solid var(--wp--preset--color--content-border);
	font-weight: 600;
	margin-block-end: var(--wp--preset--spacing--20);
}

.wpdef-store-categories .wc-block-product-categories-list-item > a {
	align-content: center;
	min-height: 2.75rem;
	overflow-wrap: anywhere;
}

.wpdef-store-toolbar__meta {
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	max-width: 100%;
	min-width: 0;
}

.wpdef-store-toolbar__meta .woocommerce-result-count {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	margin: 0;
}

/* The theme adds a visible label before the sorting select. */
.woocommerce-ordering:has(.wpdef-catalog-sorting__label) {
	align-items: center;
	column-gap: 0.5rem;
	display: flex;
	flex-wrap: wrap;
}

.wpdef-catalog-sorting__label {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	white-space: nowrap;
}

.wpdef-product-card {
	--wpdef-icon-cart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 3a1 1 0 0 1 1-1h1.5a2 2 0 0 1 1.94 1.5L6.7 5H21a1 1 0 0 1 .97 1.24l-1.8 7.2A2.5 2.5 0 0 1 17.75 15H9.1a2.5 2.5 0 0 1-2.42-1.9L4.44 4H3a1 1 0 0 1-1-1Z'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.8'/%3E%3Ccircle cx='17.5' cy='19.5' r='1.8'/%3E%3C/svg%3E");
	--wpdef-icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.3 4.3a1 1 0 0 1 1.4 0l7 7a1 1 0 0 1 0 1.4l-7 7a1 1 0 0 1-1.4-1.4l5.3-5.3H4a1 1 0 1 1 0-2h13.6l-5.3-5.3a1 1 0 0 1 0-1.4Z'/%3E%3C/svg%3E");

	display: flex;
	flex-direction: column;
	height: 100%;
}

.wpdef-product-card:focus-within {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 3px var(--wp--preset--color--soft);
}

/* The media sits flush against the card edges; the rounded corners come from
   the card's own overflow, so the image itself carries no radius. */
.wpdef-product-card__media {
	margin: 0;
	position: relative;
}

.wpdef-product-card__media img {
	aspect-ratio: 1 / 1;
	border-radius: 0;
	display: block;
	object-fit: cover;
	width: 100%;
}

/* The outer badge carries the pill, because its own background would
   otherwise clip a radius set on the inner label. */
.wpdef-product-card__media .wc-block-components-product-sale-badge {
	background-color: var(--wp--preset--color--error);
	border-radius: 999px;
	inset-block-start: var(--wp--preset--spacing--20);
	inset-inline-start: var(--wp--preset--spacing--20);
	margin: 0;
	padding: 0.25rem 0.75rem;
	position: absolute;
}

.wpdef-product-card__media .wc-block-components-product-sale-badge__text {
	color: var(--wp--preset--color--white);
	display: block;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.3;
	text-transform: uppercase;
}

.wpdef-product-card__body {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	gap: var(--wp--preset--spacing--10);
	padding: var(--wp--preset--spacing--30);
}

.wpdef-product-card__category {
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.wpdef-product-card__category a {
	color: inherit;
	text-decoration: none;
}

/* The card title is a heading that names the whole card rather than a link
   inside running text, so it carries no resting underline. */
.wpdef-product-card__title {
	margin-block: 0;
}

.wpdef-product-card__title a {
	color: var(--wp--preset--color--foreground);
	text-decoration: none;
}

.wpdef-product-card__title a:visited {
	color: var(--wp--preset--color--foreground);
}

/* One step above the card title. The large preset jumps straight to 2rem,
   which would make the price outshout the product it belongs to. The single
   product page keeps its own larger size. */
.wpdef-product-card__price ins {
	font-size: 1.375rem;
}

.wpdef-product-card .wpdef-product-card__body > .wpdef-product-card__action {
	align-self: stretch;
	margin-block-start: auto;
	width: 100%;
}

.wpdef-product-card__action {
	padding-block-start: var(--wp--preset--spacing--20);
}

/* Product actions turn a lighter blue on hover, with no movement or shadow.
   The lighter tone keeps white text at 5:1. Keyboard focus keeps the button
   colour and shows the theme's two-colour ring. */
:is(.wp-site-blocks, .editor-styles-wrapper) .wpdef-product-card .wpdef-product-card__action :is(.wp-block-button__link, .wc-block-components-product-button__button):hover {
	background-color: color-mix(in srgb, var(--wp--preset--color--secondary) 85%, var(--wp--preset--color--white));
	border-color: color-mix(in srgb, var(--wp--preset--color--secondary) 85%, var(--wp--preset--color--white));
	color: var(--wp--preset--color--white);
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wpdef-product-card .wpdef-product-card__action :is(.wp-block-button__link, .wc-block-components-product-button__button):focus-visible {
	box-shadow: 0 0 0 6px var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}

.wp-site-blocks .wpdef-product-card__action button::before {
	-webkit-mask: var(--wpdef-icon-cart) center / contain no-repeat;
	mask: var(--wpdef-icon-cart) center / contain no-repeat;
}

.wp-site-blocks .wpdef-product-card__action a::after {
	-webkit-mask: var(--wpdef-icon-arrow) center / contain no-repeat;
	mask: var(--wpdef-icon-arrow) center / contain no-repeat;
}

.wp-site-blocks .wpdef-product-card__action .added_to_cart.wc_forward {
	align-items: center;
	background-color: var(--wp--preset--color--soft);
	border: 1px solid var(--wp--preset--color--content-border);
	border-radius: 0.5rem;
	box-sizing: border-box;
	color: var(--wp--preset--color--accent);
	display: flex;
	font-size: 0.8125rem;
	font-weight: 600;
	gap: 0.45rem;
	justify-content: center;
	line-height: 1.25;
	margin: 0.375rem 0 0;
	min-height: 2.5rem;
	padding: 0.5rem 0.75rem;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
	width: 100%;
}

.wp-site-blocks .wpdef-product-card__action .added_to_cart.wc_forward:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* Grouped products: make each selectable product a clear, scannable row. */
.wp-block-woocommerce-add-to-cart-form form.cart.grouped_form {
	max-width: 100%;
	width: 100%;
}

.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list {
	border-collapse: separate;
	border-spacing: 0;
	margin-block: var(--wp--preset--spacing--30);
	width: 100%;
}

.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list td {
	border-block-end: 1px solid var(--wp--preset--color--content-border);
	padding-block: var(--wp--preset--spacing--30);
	vertical-align: middle;
}

.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list tr:first-child td {
	border-block-start: 1px solid var(--wp--preset--color--content-border);
}

.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list-item__quantity {
	padding-inline-end: var(--wp--preset--spacing--30);
	width: 5.5rem;
}

.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list-item__quantity .quantity {
	margin: 0;
}

.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list-item__label {
	padding-inline-end: var(--wp--preset--spacing--30);
}

.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list-item__label a {
	font-weight: 700;
}

.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list-item__price {
	min-width: 8.5rem;
	text-align: end;
	white-space: nowrap;
}

.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list-item__price .stock {
	margin-block: var(--wp--preset--spacing--10) 0;
	white-space: normal;
}

.wp-block-woocommerce-add-to-cart-form .grouped_form > .single_add_to_cart_button {
	margin-block-start: var(--wp--preset--spacing--20);
}

@media (max-width: 40rem) {

	.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list tr {
		border-block-start: 1px solid var(--wp--preset--color--content-border);
		padding-block: var(--wp--preset--spacing--30);
	}

	.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list tr:last-child {
		border-block-end: 1px solid var(--wp--preset--color--content-border);
	}

	.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list-item__quantity {
		margin-block-end: var(--wp--preset--spacing--20);
		width: auto;
	}

	.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list-item__label {
		padding-inline-end: 0;
	}

	.wp-block-woocommerce-add-to-cart-form .woocommerce-grouped-product-list-item__price {
		margin-block-start: var(--wp--preset--spacing--10);
		min-width: 0;
		text-align: start;
	}
}

/* Keep a closed WooCommerce drawer from enlarging the page canvas. */
:where(.wc-block-components-drawer__screen-overlay--is-hidden) .wc-block-mini-cart__drawer {
	display: none;
}

/* Catalog layout: a light editorial banner, category shortcuts and compact cards. */
.wpdef-main--store {
	background-color: var(--wp--preset--color--white);
}

.wpdef-store-banner {
	background-color: var(--wp--preset--color--soft);
	background-image: linear-gradient(110deg, var(--wp--preset--color--background) 0%, var(--wp--custom--color--surface-3) 55%, var(--wp--custom--color--line-2) 100%);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin-block: 0 2rem;
}

.wpdef-store-banner__inner {
	align-content: center;
	min-height: clamp(17rem, 23vw, 22rem);
	padding-block: 2.5rem;
}

.wpdef-store-banner__copy {
	max-width: 42rem;
}

.wpdef-store-banner__eyebrow {
	background: var(--wp--custom--color--line-1);
	border-radius: 999px;
	color: var(--wp--preset--color--accent);
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	margin: 0 0 0.75rem;
	padding: 0.25rem 0.75rem;
	text-transform: uppercase;
}

.wpdef-store-banner .wpdef-store-banner__title {
	color: var(--wp--preset--color--foreground);
	font-size: clamp(1.875rem, 3.3vw, 3rem);
	letter-spacing: -0.045em;
	line-height: 1.12;
	margin: 0;
	overflow-wrap: anywhere;
}

.wpdef-store-banner__lead {
	color: var(--wp--custom--color--ink);
	font-size: 1rem;
	line-height: 1.6;
	margin-block: 1rem 0;
	max-width: 26rem;
}

.wpdef-store-banner .wc-block-breadcrumbs {
	font-size: 0.8125rem;
	margin-block: 0 1rem;
}

.wpdef-store-explore {
	margin-block: 2rem;
	scroll-margin-top: 1rem;
}

.wpdef-store-explore__title {
	font-size: 1.25rem;
	margin: 0 0 1rem;
}

.wpdef-store-category-tiles {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
}

.wpdef-store-category-tiles .wc-block-product-categories-list-item > a::after {
	content: "";
	inset: 0;
	position: absolute;
}

.wpdef-store-category-tiles .wc-block-product-categories-list-item-count {
	align-items: center;
	background: var(--wp--custom--color--surface-2);
	border-radius: 999px;
	color: var(--wp--preset--color--accent);
	display: inline-flex;
	font-size: 0.75rem;
	font-weight: 700;
	justify-content: center;
	line-height: 1;
	min-width: 1.5rem;
	padding: 0.25rem 0.375rem;
}

.wpdef-store-category-tiles__count {
	display: none;
}

.wpdef-store-category-tiles .wc-block-product-categories-list-item:has([aria-current="page"]) .wc-block-product-categories-list-item-count {
	background: color-mix(in srgb, var(--wp--preset--color--white) 20%, transparent);
	color: inherit;
}

.wpdef-main--store .wpdef-store-layout {
	align-items: flex-start;
	margin-block-start: 2rem;
}

/* The 15rem sidebar grows with the text, and from 782px core keeps columns on
   one line, so with text-only zoom the results shrank to a sliver beside it.
   The results now wrap below the sidebar when they cannot keep 20rem. */
@media (min-width: 782px) {
	.wpdef-main--store .wp-block-columns.wpdef-store-layout {
		flex-wrap: wrap !important;
	}

	.wpdef-main--store .wp-block-columns.wpdef-store-layout > .wp-block-column.wpdef-store-results {
		flex: 1 1 20rem;
	}
}

.wpdef-main--store .wpdef-store-results {
	min-width: 0;
}

.wpdef-main--store .wpdef-store-toolbar {
	background: transparent;
	border: 0;
	border-radius: 0;
	gap: 0.75rem;
	margin: 0 0 1rem;
	min-height: 2.75rem;
	padding: 0;
}

.wpdef-store-toolbar .woocommerce-result-count {
	color: var(--wp--preset--color--muted);
	font-size: 0.8125rem;
	margin: 0;
}

.wpdef-store-toolbar :is(.wc-block-catalog-sorting, .woocommerce-ordering, select) {
	font-size: 0.8125rem;
	margin: 0;
	max-width: 100%;
	min-width: 0;
}

.wpdef-store-toolbar select {
	border-color: var(--wp--preset--color--content-border);
	padding-block: 0.5rem;
}

.wpdef-main--store .wpdef-store-sidebar {
	font-size: 0.875rem;
}

.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filters__overlay-content {
	gap: 1.25rem;
}

.wpdef-store-filter-title {
	font-size: 1.0625rem;
	margin: 0;
}

.wpdef-store-price-filter > .wp-block-woocommerce-product-filter-price {
	margin-block-start: 1rem;
}

.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filter-checkbox-list__label {
	border: 1px solid transparent;
	border-radius: 0.5rem;
	font-weight: 400;
	gap: 0.625rem;
	padding: 0.5rem 0.625rem;
}

.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filter-checkbox-list__items {
	gap: 0.25rem;
}

.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filter-checkbox-list__label:hover {
	background: var(--wp--preset--color--background);
}

.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filter-checkbox-list__label:has(input:checked) {
	background: var(--wp--preset--color--soft);
	border-color: var(--wp--custom--color--line-2);
	font-weight: 600;
}

.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filter-checkbox-list__label:has(input:checked) .wc-block-product-filter-checkbox-list__text {
	color: var(--wp--preset--color--accent);
}

.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filter-checkbox-list__count {
	color: var(--wp--preset--color--muted);
	font-size: 0.75rem;
	font-weight: 400;
}

.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filter-checkbox-list__input-wrapper {
	flex: 0 0 1.125rem;
	height: 1.125rem;
	width: 1.125rem;
}

/* Remove WooCommerce's translucent square underneath the styled input. */
.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filter-checkbox-list__input-wrapper::before {
	display: none;
}

.wpdef-main--store .wpdef-store-sidebar input.wc-block-product-filter-checkbox-list__input {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.3125rem;
	box-shadow: 0 1px 2px color-mix(in srgb, var(--wp--preset--color--accent) 5%, transparent);
	height: 1.125rem;
	width: 1.125rem;
}

.wpdef-main--store .wpdef-store-sidebar input.wc-block-product-filter-checkbox-list__input:checked {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 1px 3px color-mix(in srgb, var(--wp--preset--color--accent) 16%, transparent);
}

.wpdef-main--store .wpdef-store-sidebar .wc-block-product-filter-checkbox-list__mark {
	color: var(--wp--preset--color--white);
	height: 1.125rem;
	padding: 0.1875rem;
	width: 1.125rem;
}

.wpdef-main--store .wpdef-store-sidebar input.wc-block-product-filter-checkbox-list__input:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary);
	outline-offset: 3px;
}

/* Applied filters: compact cards with a separate, clearly targeted remove action. */
.wpdef-store-sidebar .wc-block-product-filter-removable-chips__items {
	display: flex;
	gap: 0.5rem;
	width: 100%;
}

.wpdef-store-sidebar .wc-block-product-filter-removable-chips__items .wc-block-product-filter-removable-chips__item {
	background: var(--wp--preset--color--soft);
	border: 1px solid var(--wp--custom--color--line-2);
	border-radius: 0.625rem;
	color: var(--wp--preset--color--accent);
	display: grid;
	font-size: 0.8125rem;
	gap: 0.5rem;
	grid-template-columns: minmax(0, 1fr) 2.25rem;
	min-width: 0;
	padding: 0.375rem 0.375rem 0.375rem 0.75rem;
	width: 100%;
}

.wpdef-store-sidebar .wc-block-product-filter-removable-chips__label {
	font-weight: 600;
	line-height: 1.5;
	min-width: 0;
	overflow-wrap: anywhere;
}

.wpdef-store-sidebar .wc-block-product-filter-removable-chips__items .wc-block-product-filter-removable-chips__item .wc-block-product-filter-removable-chips__remove {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--custom--color--line-1);
	border-radius: 50%;
	color: var(--wp--preset--color--accent);
	height: 2.25rem;
	justify-content: center;
	min-height: 2.25rem;
	min-width: 2.25rem;
	width: 2.25rem;
}

.wpdef-store-sidebar .wc-block-product-filter-removable-chips__items .wc-block-product-filter-removable-chips__item .wc-block-product-filter-removable-chips__remove:hover {
	background: var(--wp--custom--color--line-1);
	border-color: var(--wp--custom--color--line-4);
}

.wpdef-store-sidebar .wc-block-product-filter-removable-chips__remove:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary);
	outline-offset: 3px;
}

.wpdef-store-sidebar .wc-block-product-filter-removable-chips__remove-icon {
	height: 1.25rem;
	width: 1.25rem;
}

@media (forced-colors: active) {
	.wpdef-main--store .wpdef-store-sidebar input.wc-block-product-filter-checkbox-list__input {
		appearance: auto;
		box-shadow: none;
	}
	.wpdef-main--store .wpdef-store-sidebar input.wc-block-product-filter-checkbox-list__input:checked + .wc-block-product-filter-checkbox-list__mark {
		display: none;
	}
}

@media (pointer: coarse) {
	.wpdef-store-sidebar .wc-block-product-filter-removable-chips__items .wc-block-product-filter-removable-chips__item {
		grid-template-columns: minmax(0, 1fr) 2.75rem;
	}
	.wpdef-store-sidebar .wc-block-product-filter-removable-chips__items .wc-block-product-filter-removable-chips__item .wc-block-product-filter-removable-chips__remove {
		height: 2.75rem;
		width: 2.75rem;
	}
}

.wpdef-main--store .wpdef-store-categories__all {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--accent);
	font-size: 0.8125rem;
	margin-block-end: 0;
	padding-inline: 0;
}

.wpdef-main--store .wpdef-store-categories > .wpdef-store-categories__all + * {
	margin-block-start: 0.25rem;
}

.wpdef-main--store .wp-block-woocommerce-product-filter-clear-button .wp-block-button__link {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--accent);
	font-size: 0.8125rem;
	padding: 0.5rem 0;
	text-decoration: underline;
}

/* Each breakpoint sets the most columns the grid may use, and a column never
   narrows below 10rem. Larger text, as with Firefox's text-only zoom, drops
   columns instead of squeezing names, prices and buttons; at the default
   size every breakpoint keeps its column count. The 1px keeps rounding from
   dropping a column. */
.wpdef-main--store .wp-block-woocommerce-product-collection > .wc-block-product-template {
	--wpdef-grid-columns: 4;
	--wpdef-grid-gap: 1.25rem;

	display: grid;
	gap: var(--wpdef-grid-gap);
	grid-template-columns: repeat(auto-fill, minmax(max(min(10rem, 100%), calc((100% - (var(--wpdef-grid-columns) - 1) * var(--wpdef-grid-gap)) / var(--wpdef-grid-columns) - 1px)), 1fr));
	margin: 0;
}

.wpdef-main--store .wpdef-related-products > .wc-block-product-template > li {
	box-sizing: border-box;
	max-width: none;
	min-width: 0;
	width: 100%;
}

.wpdef-main--store .wpdef-related-products__title {
	margin-block: 0 1rem;
}
.wpdef-main--store .wpdef-product-card {
	border: 1px solid var(--wp--custom--color--surface-2);
	border-radius: 0.5rem;
	box-shadow: 0 6px 18px color-mix(in srgb, var(--wp--custom--color--ink) 8%, transparent);
}

.wpdef-main--store .wpdef-product-card__media img {
	aspect-ratio: 4 / 3;
}

.wpdef-main--store .wpdef-product-card__body {
	gap: 0.5rem;
	margin-block-start: 0;
	padding: 0.75rem;
}

.wpdef-main--store .wpdef-product-card__category {
	font-size: 0.75rem;
	letter-spacing: 0.035em;
	line-height: 1.5;
	margin: 0;
}

.wpdef-main--store .wpdef-product-card__category a {
	background: var(--wp--preset--color--soft);
	border-radius: 0.25rem;
	color: var(--wp--preset--color--accent);
	display: inline-block;
	font-weight: 600;
	padding: 0.25rem 0.5rem;
}

.wpdef-main--store .wpdef-product-card__title {
	font-size: 0.9375rem;
	line-height: 1.4;
}

.wpdef-main--store .wpdef-product-card__price del{
	font-size: 0.75rem;
}

.wpdef-main--store .wpdef-product-card__action {
	padding-block-start: 0.375rem;
}

.wp-site-blocks .wpdef-main--store .wpdef-product-card__action .wp-block-button__link {
	border-radius: 0.375rem;
	font-size: 0.8125rem;
	line-height: 1.35;
	padding: 0.5rem;
}

.wpdef-main--store .wpdef-product-card__media .wc-block-components-product-sale-badge {
	inset-block-start: 0.625rem;
	inset-inline-start: 0.625rem;
	padding: 0.25rem 0.5rem;
}

.wpdef-main--store .wc-block-components-product-sale-badge__text {
	font-size: 0.75rem;
}

@media (max-width: 1100px) {
	.wpdef-main--store .wp-block-woocommerce-product-collection > .wc-block-product-template {
		--wpdef-grid-columns: 3;
	}
}

@media (min-width: 782px) and (max-width: 960px) {
	.wpdef-main--store .wp-block-woocommerce-product-collection > .wc-block-product-template {
		--wpdef-grid-columns: 2;
	}
}

@media (max-width: 600px) {
	.wpdef-store-banner__inner {
		min-height: 0;
		padding-block: 2rem;
	}

	.wpdef-store-banner__copy {
		max-width: none;
	}

	.wpdef-store-category-tiles {
		gap: 0.75rem;
	}

	.wpdef-main--store .wp-block-woocommerce-product-collection > .wc-block-product-template {
		--wpdef-grid-columns: 2;
	}
}

@media (max-width: 380px) {
	.wpdef-main--store .wp-block-woocommerce-product-collection > .wc-block-product-template {
		--wpdef-grid-columns: 1;
	}
}

/* Match coupon controls in the native cart and checkout forms. */
/* The coupon toggle centres its label on the chevron, which WooCommerce centres absolutely, with a 44px target. */
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon .wc-block-components-panel__button { align-items: center; display: flex; min-height: 2.75rem; }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon .wc-block-components-totals-coupon__form { align-items: flex-end; gap: 8px; }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon__form .wc-block-components-text-input.wc-block-components-totals-coupon__input { display: flex; flex-direction: column; flex: 1 1 120px; min-width: 0; margin: 0; }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon .wc-block-components-totals-coupon__input label { position: static; order: -1; margin: 0 0 6px; transform: none; font-size: 12px; line-height: 1.4; color: var(--wp--preset--color--muted); }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon__form .wc-block-components-text-input.wc-block-components-totals-coupon__input input { height: 44px; min-height: 44px; padding: 10px 12px; margin: 0; border: 1px solid var(--wp--custom--color--line-3); border-radius: 7px; background: var(--wp--preset--color--white); font-size: 14px; line-height: 1.4; }
/* WooCommerce adds top padding on focus to make room for its floating label. The label sits above the field here, so the text keeps the same place while typing. */
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon__form .wc-block-components-text-input.wc-block-components-totals-coupon__input input:focus { padding: 10px 12px; }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon__form .wc-block-components-button.wc-block-components-totals-coupon__button { align-items: center; justify-content: center; flex: 0 0 auto; min-width: 88px; min-height: 44px; height: 44px; margin: 0; padding: 10px 18px; border: 1px solid var(--wp--preset--color--secondary); border-radius: 7px; background: var(--wp--preset--color--secondary); color: var(--wp--preset--color--white); box-shadow: none; font-size: 13px; font-weight: 650; line-height: 1.4; opacity: 1; }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__button:not(:disabled):not([aria-disabled="true"]):hover { background: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__button:is(:disabled, [aria-disabled="true"]) { background: var(--wp--custom--color--surface-2) !important; border-color: var(--wp--custom--color--line-1) !important; color: var(--wp--preset--color--border) !important; cursor: not-allowed; box-shadow: none; opacity: 1; }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-coupon__form :is(input, button):focus-visible { box-shadow: none; outline: 2px solid var(--wp--preset--color--secondary); outline-offset: 3px; }
/* WooCommerce marks focused checkboxes and radios with a 1px outline, below the 2px minimum. */
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"], .wc-block-components-radio-control .wc-block-components-radio-control__input[type="radio"]):focus-visible { box-shadow: none; outline: 2px solid var(--wp--preset--color--secondary); outline-offset: 2px; }
/* Toggles such as "Add apartment" and the coupon panel are elements with a button role; give them the store's outline too. */
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) [role="button"]:focus-visible { box-shadow: none; outline: 2px solid var(--wp--preset--color--secondary); outline-offset: 3px; }

/* Cart template. These rules never target the header, footer or mini-cart. */
.wpdef-main--cart {
	--wpdef-cart-border: var(--wp--custom--color--surface-3);
	--wpdef-cart-muted: var(--wp--preset--color--muted);
	background: linear-gradient(180deg, var(--wp--preset--color--white) 0%, var(--wp--preset--color--background) 100%);
	color: var(--wp--preset--color--foreground);
}

/* Wins over the small-screen padding that every .wpdef-main receives. */
.wp-site-blocks .wpdef-main--cart {
	padding-top: 0 !important;
}

.wpdef-cart-banner {
	background-color: var(--wp--preset--color--soft);
	background-image: linear-gradient(110deg, var(--wp--preset--color--background) 0%, var(--wp--custom--color--surface-3) 55%, var(--wp--custom--color--line-2) 100%);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin-block: 0 1.75rem;
}

.wpdef-cart-banner__inner {
	padding-block: clamp(1.5rem, 2.2vw, 2.25rem);
}

.wpdef-cart-banner .wpdef-cart-banner__eyebrow {
	align-items: center;
	color: var(--wp--preset--color--accent);
	display: flex;
	font-size: 0.75rem;
	font-weight: 750;
	gap: 1.25rem;
	letter-spacing: 0.1em;
	margin: 0 0 0.625rem;
	text-transform: uppercase;
}

.wpdef-cart-banner__eyebrow::after {
	background: var(--wp--custom--color--line-4);
	content: "";
	height: 1px;
	width: 3rem;
}

.wpdef-cart-banner .wpdef-cart-banner__title {
	color: var(--wp--custom--color--ink);
	font-size: clamp(1.75rem, 2.6vw, 2.5rem);
	letter-spacing: -0.035em;
	line-height: 1.12;
	margin: 0;
	max-width: 28rem;
}

.wpdef-cart-banner .wpdef-cart-banner__lead {
	color: var(--wp--preset--color--muted);
	font-size: 0.9375rem;
	line-height: 1.55;
	margin-block: 0.625rem 0;
	max-width: 29rem;
}

.wpdef-main--cart .wp-block-woocommerce-cart {
	margin-top: 0;
}

.wpdef-main--cart .wc-block-cart {
	--wc-separator-color: var(--wpdef-cart-border);
	align-items: start;
	display: grid;
	font-size: 0.875rem;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1.7fr) minmax(20rem, 1fr);
	margin-bottom: 0;
}

.wpdef-main--cart .wc-block-cart__main {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wpdef-cart-border);
	border-radius: 0.75rem;
	box-shadow: 0 5px 24px color-mix(in srgb, var(--wp--preset--color--accent) 3%, transparent);
}

.wpdef-main--cart .wpdef-cart-toolbar {
	align-items: center;
	border-bottom: 1px solid var(--wpdef-cart-border);
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	justify-content: space-between;
	margin: 0 1.25rem;
	padding-block: 1rem;
}

.wpdef-main--cart .wpdef-cart-toolbar__title {
	color: var(--wp--preset--color--accent);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.5;
	margin: 0;
}

.wpdef-main--cart .wc-block-cart table.wc-block-cart-items {
	border: 0;
	border-collapse: collapse;
	display: block;
	margin: 0;
	padding-inline: 1.25rem;
}

.wpdef-main--cart .wc-block-cart-items thead {
	/* Retain column headings for assistive technology. */
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

.wpdef-main--cart .wc-block-cart-items tbody { display: block; }

.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row {
	align-items: start;
	border-bottom: 1px solid var(--wpdef-cart-border);
	display: grid;
	gap: 0.25rem 1rem;
	grid-template-columns: 6.5rem minmax(0, 1fr);
	padding: 1.125rem 0;
}

.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row > td {
	border: 0;
	min-width: 0;
	padding: 0;
	width: auto;
}

.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__image {
	grid-column: 1;
	grid-row: 1 / 3;
}

.wpdef-main--cart .wc-block-cart-item__image img {
	aspect-ratio: 4 / 3;
	border: 1px solid var(--wp--preset--color--soft);
	border-radius: 0.5rem;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__product {
	grid-column: 2;
	grid-row: 1;
}

.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__wrap {
	align-items: start;
	display: grid;
	gap: 0.25rem 1rem;
	grid-template-columns: minmax(0, 1fr) auto;
}

.wpdef-main--cart .wc-block-cart .wc-block-cart-items .wc-block-components-product-name {
	color: var(--wp--preset--color--accent);
	display: flex;
	flex-direction: column;
	font-size: 0.875rem;
	font-weight: 650;
	gap: 0.375rem;
	grid-column: 1;
	line-height: 1.4;
	text-decoration: none;
}

.wpdef-main--cart .wc-block-components-product-name:hover { text-decoration: underline; }

.wpdef-main--cart .wc-block-cart-item__prices { grid-column: 1; grid-row: 3; }
.wpdef-main--cart .wc-block-components-product-metadata { grid-column: 1; grid-row: 2; margin: 0; }
.wpdef-main--cart .wc-block-components-product-metadata__description { color: var(--wpdef-cart-muted); font-size: 0.75rem; line-height: 1.5; }
.wpdef-main--cart .wc-block-components-product-metadata__description p { margin: 0; }
.wpdef-main--cart .wc-block-components-product-price { color: var(--wp--custom--color--ink); font-size: 0.875rem; font-weight: 700; }
.wpdef-main--cart .wc-block-components-product-price del { color: var(--wpdef-cart-muted); font-size: 0.75rem; font-weight: 400; }
.wpdef-main--cart .wc-block-components-product-price ins { text-decoration: none; }

.wpdef-main--cart .wc-block-cart-item__prices ins {
	order: -1;
}

/* WooCommerce places the quantity on the second row with a rule of equal
   weight that loads later, which laid it over the description on phones.
   Naming the row outranks it. */
.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity {
	align-items: center;
	align-self: center;
	display: flex;
	gap: 0.75rem;
	grid-column: 2;
	grid-row: 1 / 4;
	padding: 0;
}

.wpdef-main--cart .wc-block-components-quantity-selector {
	border: 1px solid var(--wp--custom--color--line-3);
	border-radius: 0.375rem;
	box-sizing: border-box;
	color: var(--wp--preset--color--accent);
	margin: 0;
	min-height: 2.5rem;
	width: 6.5rem;
}

.wpdef-main--cart .wc-block-components-quantity-selector::after { border: 0; }
.wpdef-main--cart .wc-block-components-quantity-selector__input { font-size: 0.8125rem; font-weight: 650; min-height: 2.5rem; }
.wpdef-main--cart .wc-block-components-quantity-selector__button { color: var(--wp--preset--color--accent); min-height: 2.5rem; min-width: 2rem; }

/* WooCommerce marks focus in this control with a 1px inset line, below the
   2px minimum. The ring sits inside because the control's border hugs it; the
   transparent outline shows in forced-colours modes. */
.wpdef-main--cart .wc-block-components-quantity-selector :is(.wc-block-components-quantity-selector__input, .wc-block-components-quantity-selector__button):focus-visible {
	box-shadow: inset 0 0 0 3px var(--wp--preset--color--accent);
	outline: 2px solid transparent;
	outline-offset: -2px;
}

.wpdef-main--cart .wc-block-cart-item__remove-link { align-items: center; border-radius: 0.25rem; color: var(--wp--preset--color--muted); display: inline-flex; justify-content: center; min-height: 2.5rem; min-width: 2rem; }
.wpdef-main--cart .wc-block-cart-item__remove-link:hover { background: var(--wp--custom--color--error-surface); color: var(--wp--preset--color--error); }
.wpdef-main--cart .wc-block-cart-item__remove-link svg { height: 1.125rem; width: 1.125rem; }

/* Item totals and savings remain in the order summary, not beside quantity. */
.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__total {
	display: none;
}

.wpdef-main--cart .wpdef-cart-continue {
	margin: 0;
	padding: 0.875rem 1.25rem 1.25rem;
}

.wpdef-main--cart .wpdef-cart-continue a {
	align-items: center;
	background: var(--wp--preset--color--soft);
	border: 1px solid var(--wp--custom--color--line-4);
	border-radius: 0.625rem;
	color: var(--wp--preset--color--accent);
	display: inline-flex;
	font-size: 0.875rem;
	font-weight: 650;
	gap: 0.625rem;
	justify-content: center;
	line-height: 1.4;
	max-width: 100%;
	min-height: 2.75rem;
	padding: 0.625rem 1rem;
	text-align: center;
	text-decoration: none;
}

.wpdef-main--cart .wpdef-cart-continue a::before {
	content: "←";
	flex: 0 0 auto;
	font-size: 1.25rem;
	line-height: 1;
}

.wpdef-main--cart .wpdef-cart-continue a:hover {
	background: var(--wp--custom--color--surface-3);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

.wpdef-main--cart .wpdef-cart-continue a:active {
	background: var(--wp--custom--color--line-2);
}

@media (max-width: 480px) {
	.wpdef-main--cart .wpdef-cart-continue a { width: 100%; }
}

.wpdef-main--cart .wc-block-cart .wc-block-cart__sidebar {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wpdef-cart-border);
	border-radius: 0.75rem;
	box-shadow: 0 5px 24px color-mix(in srgb, var(--wp--preset--color--accent) 3%, transparent);
	padding: 1.5rem;
}

.wpdef-main--cart .wc-block-cart .wc-block-cart__totals-title {
	color: var(--wp--preset--color--accent);
	display: block;
	font-size: 1.125rem;
	font-weight: 750;
	line-height: 1.4;
	margin: 0 0 1rem;
	padding: 0;
	text-transform: none;
}

.wpdef-main--cart .wc-block-components-totals-wrapper { border-color: var(--wpdef-cart-border); padding-block: 0.875rem; }
.wpdef-main--cart .wc-block-components-totals-item { color: var(--wpdef-cart-muted); padding-inline: 0; }
.wpdef-main--cart .wc-block-components-totals-footer-item { color: var(--wp--custom--color--ink); font-size: 1.125rem; font-weight: 750; }
.wpdef-main--cart .wc-block-components-totals-shipping .wc-block-components-totals-item__value { color: var(--wp--preset--color--success); }
.wpdef-main--cart .wp-block-woocommerce-cart-order-summary-coupon-form-block {
	background: var(--wp--preset--color--soft);
	border: 0;
	border-radius: 0.5rem;
	margin-block: 0.5rem 1rem;
	padding: 0.75rem 1rem;
}
.wpdef-main--cart .wc-block-components-totals-coupon { padding: 0; }
.wpdef-main--cart .wc-block-components-panel__button { color: var(--wp--preset--color--accent); font-size: 0.8125rem; font-weight: 650; min-height: 2.25rem; }
.wpdef-main--cart .wc-block-components-totals-coupon__form { gap: 0.5rem; }
.wpdef-main--cart .wc-block-components-totals-coupon__input input { background: var(--wp--preset--color--white); border-color: var(--wp--custom--color--line-3); border-radius: 0.375rem; }
.wpdef-main--cart .wc-block-components-totals-coupon__button { border-radius: 0.375rem; font-size: 0.75rem; min-width: 5rem; padding: 0.5rem 0.75rem; }
.wpdef-main--cart .wc-block-cart__submit { margin: 0; padding: 0; }
.wpdef-main--cart .wc-block-cart__submit-container { background: transparent; padding: 0; }
.wpdef-main--cart .wc-block-cart__submit-container::before { display: none; }
.wpdef-main--cart .wc-block-cart__submit-button {
	background: linear-gradient(115deg, var(--wp--preset--color--secondary), var(--wp--preset--color--accent));
	border-radius: 0.5rem;
	color: var(--wp--preset--color--white);
	font-size: 0.875rem;
	font-weight: 700;
	gap: 0.75rem;
	min-height: 3rem;
	padding: 0.875rem 1rem;
	text-decoration: none;
}
.wpdef-main--cart .wc-block-cart__submit-button:hover { background: var(--wp--custom--color--ink); color: var(--wp--preset--color--white); }
.wpdef-main--cart .wc-block-cart__submit-button::after { content: "→"; }
.wpdef-main--cart .wc-block-cart__submit-button::before {
	background: currentColor;
	content: "";
	height: 1rem;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Crect x='5' y='10' width='14' height='11' rx='2'/%3E%3Cpath d='M8 10V6a4 4 0 0 1 8 0v4m-4 5v3'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 1rem;
}

.wpdef-main--cart .wpdef-cart-help {
	border-top: 1px solid var(--wpdef-cart-border);
	margin-top: 1.25rem;
	padding-top: 1.125rem;
}
.wpdef-main--cart .wpdef-cart-help p { color: var(--wpdef-cart-muted); font-size: 0.75rem; line-height: 1.5; margin: 0 0 0.875rem; padding-inline-start: 2.25rem; position: relative; }
.wpdef-main--cart .wpdef-cart-help p:last-child { margin-bottom: 0; }
.wpdef-main--cart .wpdef-cart-help strong { color: var(--wp--preset--color--accent); font-weight: 650; }
.wpdef-cart-help p::before { background: var(--wp--custom--color--surface-3); border: 1px solid var(--wp--custom--color--line-2); border-radius: 50%; color: var(--wp--preset--color--secondary); content: "✓"; display: grid; font-size: 0.875rem; height: 1.625rem; inset-inline-start: 0; place-items: center; position: absolute; top: 0.125rem; width: 1.625rem; }
.wpdef-cart-help .wpdef-cart-help__shipping::before { content: "↗"; }
.wpdef-cart-help .wpdef-cart-help__payment::before { content: "→"; }

.wpdef-main--cart .wp-block-woocommerce-empty-cart-block { background: var(--wp--preset--color--white); border: 1px solid var(--wpdef-cart-border); border-radius: 0.75rem; padding: clamp(1.5rem, 5vw, 4rem); }
.wpdef-main--cart :is(a, button, input):focus-visible { outline: 2px solid var(--wp--preset--color--secondary); outline-offset: 3px; }

@media (max-width: 1100px) {
	.wpdef-main--cart .wc-block-cart { grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 1fr); gap: 1rem; }
	.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 5rem minmax(0, 1fr); gap: 0.375rem 0.75rem; }
	.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__wrap { grid-template-columns: minmax(0, 1fr); }
	.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity { grid-column: 1; grid-row: 4; margin-top: 0.375rem; }
}

@media (max-width: 781px) {
	.wpdef-cart-banner { background-size: cover, auto 115%; }
	.wpdef-cart-banner__title, .wpdef-cart-banner__lead { width: 60%; }
	.wpdef-main--cart .wc-block-cart { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	.wpdef-main--cart .wc-block-cart .wc-block-cart__sidebar { padding: 1.25rem; }
	.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 6rem minmax(0, 1fr); }
	/* WooCommerce fixes this bar to the bottom with a rule of equal weight that loads later; it covered the focused control. */
	.wpdef-main--cart .wc-block-cart .wc-block-cart__submit-container--sticky { position: static; }
}

@media (max-width: 480px) {
	.wpdef-cart-banner { margin-bottom: 1.25rem; }
	.wpdef-cart-banner__title, .wpdef-cart-banner__lead { width: 100%; }
	.wpdef-cart-banner .wpdef-cart-banner__eyebrow { font-size: 0.75rem; gap: 0.75rem; }
	.wpdef-main--cart .wpdef-cart-toolbar { margin-inline: 1rem; }
	.wpdef-main--cart .wc-block-cart table.wc-block-cart-items { padding-inline: 1rem; }
	.wpdef-main--cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 4.5rem minmax(0, 1fr); gap: 0.375rem 0.75rem; }
	.wpdef-main--cart .wpdef-cart-toolbar__title { font-size: 0.8125rem; }
}
