/* ==========================================================================
   PAMI — WooCommerce Product Catalogue
   --------------------------------------------------------------------------
   Premium archive styling for:

   - Main WooCommerce shop;
   - product category archives;
   - product tag archives.

   Architecture:
   - strictly scoped to commercial product archives;
   - no template overrides;
   - no JavaScript-dependent layout;
   - no influence on representative furniture-model pages;
   - keyboard and reduced-motion accessibility included.
   ========================================================================== */


/* ==========================
   LOCAL CATALOGUE TOKENS
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
) {
	--pami-shop-grid-columns: 4;

	--pami-shop-grid-column-gap:
		clamp(
			var(--space-6, 28px),
			2.8vw,
			var(--space-9, 56px)
		);

	--pami-shop-grid-row-gap:
		clamp(
			var(--space-8, 40px),
			5vw,
			var(--space-11, 80px)
		);

	--pami-shop-image-radius:
		var(--radius-md, 8px);

	--pami-shop-ease-luxury:
		var(--motion-easing-emphasized);

	--pami-shop-ease-standard:
		var(--motion-easing-standard);

	--pami-shop-transition-fast:
		var(--motion-duration-fast);
	--pami-shop-transition-base:
		var(--motion-duration-base);
	--pami-shop-transition-slow:
		var(--motion-duration-media);

	background-color:
		var(--color-background, #faf8f5);
}


/* ==========================
   PAGE ENVIRONMENT
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main {
	box-sizing: border-box;

	width: 100%;
	max-width: var(--container-width, 1320px);

	margin-inline: auto;

	padding-top:
		clamp(
			var(--space-7, 32px),
			5vw,
			var(--space-11, 80px)
		);

	padding-right:
		var(--container-padding, 20px);

	padding-bottom:
		clamp(
			var(--space-10, 64px),
			8vw,
			120px
		);

	padding-left:
		var(--container-padding, 20px);

	background: transparent;
}


/* ==========================
   BREADCRUMBS
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-breadcrumb {
	margin:
		0
		0
		var(--space-5, 24px);

	font-size:
		var(--font-size-caption, 13px);

	font-weight:
		var(--font-weight-regular, 400);

	line-height: 1.5;
	letter-spacing: 0.025em;

	color:
		var(--color-text-muted, #8d8378);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-breadcrumb
a {
	color:
		var(--color-text-light, #6a625c);

	text-decoration: none;

	transition:
		color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-breadcrumb
a:hover {
	color:
		var(--color-primary, #8f2727);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-breadcrumb
a:focus {
	outline: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-breadcrumb
a:focus-visible {
	outline:
		var(--focus-ring-width, 3px)
		solid
		var(
			--focus-ring-color,
			rgba(143, 39, 39, 0.55)
		);

	outline-offset:
		var(--focus-ring-offset, 4px);

	border-radius:
		var(--radius-xs, 2px);
}


/* ==========================
   ARCHIVE HEADER
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-products-header {
	margin:
		0
		0
		clamp(
			var(--space-7, 32px),
			5vw,
			var(--space-10, 64px)
		);

	padding: 0;

	text-align: left;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-products-header__title,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-products-header
.page-title {
	max-width: 920px;

	margin: 0;

	font-family:
		var(--font-family-heading, Arial, sans-serif);

	font-size:
		var(
			--font-size-page-title,
			clamp(2.125rem, 4.2vw, 3.5rem)
		);

	font-weight:
		var(--font-weight-semibold, 600);

	line-height:
		var(--line-height-page-title, 1.04);

	letter-spacing:
		var(--letter-spacing-page-title, -0.035em);

	color:
		var(--color-text, #2d2a28);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-products-header
.term-description {
	max-width: 760px;

	margin:
		var(--space-5, 24px)
		0
		0;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-products-header
.term-description
p {
	margin: 0;

	font-size:
		clamp(
			15px,
			1.4vw,
			17px
		);

	line-height: 1.75;

	color:
		var(--color-text-light, #6a625c);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-products-header
.term-description
p
+
p {
	margin-top:
		var(--space-4, 16px);
}


/* ==========================
   NOTICES POSITIONING
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-notices-wrapper {
	clear: both;

	width: 100%;

	margin:
		0
		0
		var(--space-6, 28px);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-notices-wrapper:empty {
	display: none;
}


/* ==========================
   RESULT COUNT
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-result-count {
	float: left;

	display: inline-flex;
	align-items: center;

	min-height: 48px;

	margin:
		0
		0
		var(--space-7, 32px);

	padding: 0;

	font-size:
		var(--font-size-small, 14px);

	font-weight:
		var(--font-weight-regular, 400);

	line-height: 1.45;
	letter-spacing: 0.015em;

	color:
		var(--color-text-muted, #8d8378);
}


/* ==========================
   CATALOGUE ORDERING
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-ordering {
	float: right;

	display: block;

	width: auto;

	margin:
		0
		0
		var(--space-7, 32px);

	padding: 0;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-ordering
select.orderby {
	width: auto;
	min-width: 250px;
	max-width: 100%;
	min-height: 48px;

	margin: 0;

	padding-top: 11px;
	padding-bottom: 11px;
	padding-left: 15px;

	font-size:
		var(--font-size-small, 14px);

	font-weight:
		var(--font-weight-medium, 500);

	line-height: 1.4;

	color:
		var(--color-text-light, #6a625c);

	background-color:
		rgba(253, 252, 251, 0.88);

	border-color:
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);

	border-radius:
		var(--radius-sm, 6px);

	box-shadow:
		0 8px 24px
		rgba(45, 42, 40, 0.025);

	cursor: pointer;

	transition:
		color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		background-color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		border-color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		box-shadow
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-ordering
select.orderby:hover {
	color:
		var(--color-text, #2d2a28);

	background-color:
		var(--color-surface-light, #fdfcfb);

	border-color:
		rgba(143, 39, 39, 0.28);

	box-shadow:
		0 10px 28px
		rgba(45, 42, 40, 0.045);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-ordering
select.orderby:focus {
	outline: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-ordering
select.orderby:focus-visible {
	color:
		var(--color-text, #2d2a28);

	background-color:
		var(--color-surface-light, #fdfcfb);

	border-color:
		var(--color-primary, #8f2727);

	outline:
		var(--focus-ring-width, 3px)
		solid
		var(
			--focus-ring-color,
			rgba(143, 39, 39, 0.55)
		);

	outline-offset: 1px;

	box-shadow:
		0 0 0 1px
		var(--color-primary, #8f2727);
}


/* ==========================
   PRODUCTS GRID
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products {
	clear: both;

	display: grid;

	grid-template-columns:
		repeat(
			var(--pami-shop-grid-columns),
			minmax(0, 1fr)
		);

	column-gap:
		var(--pami-shop-grid-column-gap);

	row-gap:
		var(--pami-shop-grid-row-gap);

	width: 100%;

	margin: 0;
	padding: 0;

	list-style: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products::before,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products::after {
	content: none;

	display: none;
}


/* ==========================
   PRODUCT CARD
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product {
	position: relative;

	display: flex;
	flex-direction: column;

	float: none;
	clear: none;

	width: auto;
	min-width: 0;

	margin: 0;
	padding:
		0
		0
		var(--space-6, 28px);

	color:
		var(--color-text, #2d2a28);

	background: transparent;

	border: 0;
	border-radius: 0;

	box-shadow: none;

	transition:
		transform
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product::after {
	content: "";

	position: absolute;
	bottom: 0;
	left: 0;

	width: 0;
	height: 1px;

	background:
		linear-gradient(
			90deg,
			var(--color-primary, #8f2727) 0%,
			var(--color-brand-gold-soft, #d1b8a1) 100%
		);

	opacity: 0;

	transition:
		width
		var(--pami-shop-transition-slow)
		var(--pami-shop-ease-luxury),
		opacity
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:hover,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:focus-within {
	z-index: 2;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:hover::after,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:focus-within::after {
	width: 48px;

	opacity: 1;
}


/* ==========================
   PRODUCT LINK
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-product__link,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-category__link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;

	min-width: 0;

	color:
		var(--color-text, #2d2a28);

	text-decoration: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-product__link:hover,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-category__link:hover {
	color:
		var(--color-text, #2d2a28);

	text-decoration: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-product__link:focus,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-category__link:focus {
	outline: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-product__link:focus-visible,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-category__link:focus-visible {
	outline:
		var(--focus-ring-width, 3px)
		solid
		var(
			--focus-ring-color,
			rgba(143, 39, 39, 0.55)
		);

	outline-offset:
		var(--focus-ring-offset, 4px);

	border-radius:
		var(--pami-shop-image-radius);
}


/* ==========================
   PRODUCT IMAGE
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-product__link
>
img,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.woocommerce-loop-category__link
>
img {
	display: block;

	width: 100%;
	height: auto;

	aspect-ratio: 4 / 3;

	margin:
		0
		0
		var(--space-5, 24px);

	padding: 0;

	object-fit: cover;
	object-position: center;

	background-color:
		var(--color-surface-muted, #f4f0eb);

	border:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);

	border-radius:
		var(--pami-shop-image-radius);

	box-shadow:
		0 14px 34px
		rgba(45, 42, 40, 0.035);

	backface-visibility: hidden;

	transform:
		translateZ(0)
		scale(1);

	transform-origin: center;

	transition:
		transform
		var(--pami-shop-transition-slow)
		var(--pami-shop-ease-luxury),
		border-color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		box-shadow
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		filter
		var(--pami-shop-transition-slow)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:hover
a.woocommerce-loop-product__link
>
img,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:focus-within
a.woocommerce-loop-product__link
>
img,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:hover
a.woocommerce-loop-category__link
>
img,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:focus-within
a.woocommerce-loop-category__link
>
img {
	border-color:
		rgba(143, 39, 39, 0.17);

	box-shadow:
		0 20px 46px
		rgba(45, 42, 40, 0.065);

	filter:
		saturate(1.02)
		contrast(1.012);

	transform:
		translateZ(0)
		scale(var(--motion-hover-scale));
}


/* ==========================
   PRODUCT TITLE
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.woocommerce-loop-product__title,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.woocommerce-loop-category__title {
	display: -webkit-box;

	min-height: 2.8em;

	margin: 0;
	padding: 0;

	overflow: hidden;

	font-family:
		var(--font-family-heading, Arial, sans-serif);

	font-size:
		var(
			--font-size-card-title,
			clamp(0.9375rem, 1vw, 1.0625rem)
		);

	font-weight:
		var(--font-weight-semibold, 600);

	line-height:
		var(--line-height-card-title, 1.4);

	letter-spacing:
		var(--letter-spacing-card-title, -0.012em);

	color:
		var(--color-text, #2d2a28);

	overflow-wrap: break-word;
	word-break: normal;
	hyphens: auto;

	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;

	transition:
		color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:hover
.woocommerce-loop-product__title,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product:focus-within
.woocommerce-loop-product__title {
	color:
		var(--color-primary, #8f2727);
}


/* ==========================
   CATEGORY COUNT
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
.woocommerce-loop-category__title
mark.count {
	font-size: 0.72em;

	font-weight:
		var(--font-weight-regular, 400);

	color:
		var(--color-text-muted, #8d8378);

	background: transparent;
}


/* ==========================
   PRODUCT PRICE
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 5px;

	min-height: 1.5em;

	margin:
		var(--space-3, 12px)
		0
		0;

	font-size:
		var(--font-size-small, 14px);

	font-weight:
		var(--font-weight-medium, 500);

	font-variant-numeric: tabular-nums;
	line-height: 1.45;
	letter-spacing: 0.005em;

	color:
		var(--color-text-light, #6a625c);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.price
.woocommerce-Price-amount {
	color: inherit;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.price
del {
	font-size: 0.88em;

	color:
		var(--color-text-muted, #8d8378);

	opacity: 0.68;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.price
ins {
	font-weight:
		var(--font-weight-semibold, 600);

	color:
		var(--color-primary, #8f2727);

	background: transparent;

	text-decoration: none;
}


/* ==========================
   STAR RATING
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.star-rating {
	margin:
		var(--space-3, 12px)
		0
		0;

	font-size: 12px;

	color:
		var(--color-brand-gold-soft, #d1b8a1);
}


/* ==========================
   SALE MARKER
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
span.onsale {
	top: 14px;
	right: auto;
	left: 14px;
	z-index: 3;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 0;
	min-height: 0;

	margin: 0;

	padding:
		7px
		9px;

	font-size: 9px;

	font-weight:
		var(--font-weight-semibold, 600);

	line-height: 1;
	letter-spacing: 0.14em;
	text-transform: uppercase;

	color:
		var(--color-primary-dark, #741818);

	background:
		rgba(250, 248, 245, 0.9);

	border:
		1px solid
		rgba(143, 39, 39, 0.16);

	border-radius:
		var(--radius-xs, 2px);

	box-shadow:
		0 7px 20px
		rgba(45, 42, 40, 0.055);

	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}


/* ==========================
   PURCHASE BUTTON
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button {
	position: relative;

	align-self: flex-start;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;

	width: auto;
	min-width: 0;
	min-height: 42px;

	margin:
		var(--space-5, 24px)
		0
		0;

	padding:
		12px
		18px;

	overflow: hidden;

	font-size: 11px;

	font-weight:
		var(--font-weight-semibold, 600);

	line-height: 1;
	letter-spacing: 0.085em;
	text-transform: uppercase;
	white-space: normal;

	color:
		var(--color-primary, #8f2727);

	background:
		rgba(255, 255, 255, 0.38);

	border:
		1px solid
		rgba(143, 39, 39, 0.24);

	border-radius:
		var(--radius-sm, 6px);

	box-shadow:
		0 7px 20px
		rgba(45, 42, 40, 0.025);

	overflow-wrap: anywhere;

	transform: translateY(0);

	transition:
		transform
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		color
		var(--pami-shop-transition-fast)
		var(--pami-shop-ease-standard),
		background
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		border-color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		box-shadow
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		opacity
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button::before {
	content: none;

	display: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button:hover {
	color:
		var(--color-text-inverse, #ffffff);

	background:
		linear-gradient(
			180deg,
			var(--color-primary-light, #a73a3a) 0%,
			var(--color-primary, #8f2727) 56%,
			var(--color-primary-dark, #741818) 100%
		);

	border-color:
		var(--color-primary, #8f2727);

	box-shadow:
		0 12px 28px
		rgba(116, 24, 24, 0.18);

	transform:
		translateY(-1px);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button:active {
	transform: translateY(0);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button:focus {
	outline: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button:focus-visible {
	outline:
		var(--focus-ring-width, 3px)
		solid
		var(
			--focus-ring-color,
			rgba(143, 39, 39, 0.55)
		);

	outline-offset:
		var(--focus-ring-offset, 4px);
}


/* ==========================
   DESKTOP BUTTON REVEAL
========================== */

@media
	(min-width: 992px)
	and
	(hover: hover)
	and
	(pointer: fine) {

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.button:not(.loading):not(.added) {
		opacity: 0;

		pointer-events: none;

		transform:
			translateY(10px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product:hover
	.button:not(.loading):not(.added),
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product:focus-within
	.button:not(.loading):not(.added) {
		opacity: 1;

		pointer-events: auto;

		transform:
			translateY(0);
	}
}


/* ==========================
   AJAX LOADING STATE
========================== */

@keyframes pami-shop-button-spinner {
	to {
		transform: rotate(360deg);
	}
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button.loading {
	padding-right: 42px;

	opacity: 0.84;

	pointer-events: none;

	cursor: progress;

	transform: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button.loading::after {
	content: "";

	position: absolute;
	top: 50%;
	right: 15px;

	display: block;

	width: 14px;
	height: 14px;

	margin:
		-7px
		0
		0;

	background: transparent;

	border:
		1.5px solid
		rgba(143, 39, 39, 0.2);

	border-top-color:
		currentColor;

	border-radius: 50%;

	font-family: inherit;
	line-height: 1;

	animation:
		pami-shop-button-spinner
		700ms
		linear
		infinite;
}


/* ==========================
   AJAX ADDED STATE
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button.added {
	padding-right: 18px;

	color:
		var(--color-text-inverse, #ffffff);

	background:
		linear-gradient(
			180deg,
			var(--color-primary-light, #a73a3a) 0%,
			var(--color-primary, #8f2727) 56%,
			var(--color-primary-dark, #741818) 100%
		);

	border-color:
		var(--color-primary, #8f2727);

	opacity: 1;

	pointer-events: auto;

	transform: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.button.added::after {
	content: "✓";

	position: static;

	display: inline-block;

	width: auto;
	height: auto;

	margin:
		0
		0
		0
		2px;

	background: none;

	border: 0;
	border-radius: 0;

	font-family: inherit;
	font-size: 12px;
	font-weight:
		var(--font-weight-semibold, 600);

	line-height: 1;

	color: currentColor;

	animation: none;

	transform: none;
}


/* ==========================
   VIEW CART LINK
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.added_to_cart {
	display: inline-flex;
	align-items: center;
	gap: 7px;

	align-self: flex-start;

	margin:
		var(--space-3, 12px)
		0
		0;

	padding: 0;

	font-size: 10px;

	font-weight:
		var(--font-weight-semibold, 600);

	line-height: 1.5;
	letter-spacing: 0.085em;
	text-transform: uppercase;

	color:
		var(--color-primary, #8f2727);

	background: transparent;

	text-decoration:
		underline
		rgba(143, 39, 39, 0.28);

	text-decoration-thickness: 1px;
	text-underline-offset: 0.28em;

	opacity: 1;

	transform: none;

	transition:
		color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		text-decoration-color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.added_to_cart::after {
	content: "→";

	display: inline-block;

	font-size: 13px;
	line-height: 1;

	transition:
		transform
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.added_to_cart:hover {
	color:
		var(--color-primary-dark, #741818);

	text-decoration-color:
		currentColor;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.added_to_cart:hover::after {
	transform:
		translateX(3px);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.added_to_cart:focus {
	outline: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
a.added_to_cart:focus-visible {
	outline:
		var(--focus-ring-width, 3px)
		solid
		var(
			--focus-ring-color,
			rgba(143, 39, 39, 0.55)
		);

	outline-offset:
		var(--focus-ring-offset, 4px);

	border-radius:
		var(--radius-xs, 2px);
}


/* ==========================
   OUT OF STOCK
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.site-main
ul.products
li.product
.out-of-stock {
	margin:
		var(--space-4, 16px)
		0
		0;

	font-size: 10px;

	font-weight:
		var(--font-weight-semibold, 600);

	line-height: 1.4;
	letter-spacing: 0.1em;
	text-transform: uppercase;

	color:
		var(--color-text-muted, #8d8378);
}


/* ==========================
   PAGINATION
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination {
	clear: both;

	width: 100%;

	margin:
		clamp(
			var(--space-9, 48px),
			7vw,
			var(--space-12, 96px)
		)
		0
		0;

	text-align: center;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
ul.page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 4px;

	margin: 0;
	padding: 0;

	background: transparent;

	border: 0;

	list-style: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
ul.page-numbers
li {
	float: none;

	margin: 0;
	padding: 0;

	background: transparent;

	border: 0;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
a,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
span {
	position: relative;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 36px;
	height: 40px;

	margin: 0;

	padding:
		0
		8px;

	font-size:
		var(--font-size-caption, 13px);

	font-weight:
		var(--font-weight-medium, 500);

	font-variant-numeric: tabular-nums;
	line-height: 1;

	color:
		var(--color-text-muted, #8d8378);

	background: transparent;

	border: 0;
	border-radius: 0;

	box-shadow: none;

	text-decoration: none;

	transition:
		color
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		transform
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
a::after,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
span::after {
	content: "";

	position: absolute;
	bottom: 4px;
	left: 50%;

	width: 0;
	height: 1px;

	background:
		var(--color-primary, #8f2727);

	opacity: 0;

	transform:
		translateX(-50%);

	transition:
		width
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury),
		opacity
		var(--pami-shop-transition-base)
		var(--pami-shop-ease-luxury);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
a:hover {
	color:
		var(--color-primary, #8f2727);

	background: transparent;

	transform:
		translateY(-1px);
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
a:hover::after {
	width: 16px;

	opacity: 1;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
span.current {
	font-weight:
		var(--font-weight-semibold, 600);

	color:
		var(--color-primary, #8f2727);

	background: transparent;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
span.current::after {
	width: 20px;

	opacity: 1;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
a.prev,
:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
a.next {
	width: auto;
	min-width: 0;

	padding-inline: 12px;

	font-size: 11px;

	font-weight:
		var(--font-weight-semibold, 600);

	letter-spacing: 0.07em;
	text-transform: uppercase;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
a:focus {
	outline: none;
}

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-pagination
.page-numbers
li
>
a:focus-visible {
	outline:
		var(--focus-ring-width, 3px)
		solid
		var(
			--focus-ring-color,
			rgba(143, 39, 39, 0.55)
		);

	outline-offset: 1px;

	border-radius:
		var(--radius-xs, 2px);
}


/* ==========================
   EMPTY ARCHIVE
========================== */

:is(
	body.woocommerce-shop,
	body.archive.tax-product_cat,
	body.archive.tax-product_tag
)
.woocommerce-info {
	clear: both;
}


/* ==========================================================================
   MEDIUM DESKTOP
   ========================================================================== */

@media (max-width: 1279px) {
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	) {
		--pami-shop-grid-columns: 3;
	}
}


/* ==========================================================================
   TABLET
   ========================================================================== */

@media (max-width: 991px) {
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	) {
		--pami-shop-grid-columns: 2;

		--pami-shop-grid-column-gap:
			clamp(
				var(--space-4, 16px),
				3.5vw,
				var(--space-7, 32px)
			);

		--pami-shop-grid-row-gap:
			clamp(
				var(--space-7, 32px),
				6vw,
				var(--space-9, 48px)
			);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main {
		padding-top:
			var(--space-7, 32px);

		padding-bottom:
			var(--space-10, 64px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-products-header {
		margin-bottom:
			var(--space-8, 40px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-result-count {
		float: none;

		display: flex;

		width: 100%;
		min-height: 0;

		margin:
			0
			0
			var(--space-3, 12px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-ordering {
		float: none;

		width: 100%;

		margin:
			0
			0
			var(--space-7, 32px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-ordering
	select.orderby {
		width: 100%;
		min-width: 0;
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.button {
		opacity: 1;

		pointer-events: auto;

		transform: none;
	}
}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 640px) {
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	) {
		--pami-shop-grid-columns: 1;

		--pami-shop-grid-row-gap:
			var(--space-8, 40px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main {
		padding-top:
			var(--space-6, 28px);

		padding-right:
			var(--container-padding, 18px);

		padding-bottom:
			var(--space-9, 48px);

		padding-left:
			var(--container-padding, 18px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-breadcrumb {
		margin-bottom:
			var(--space-4, 16px);

		font-size: 12px;
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-products-header {
		margin-bottom:
			var(--space-7, 32px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-products-header
	.term-description
	p {
		font-size: 15px;
		line-height: 1.7;
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-result-count {
		font-size: 13px;
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product {
		padding-bottom:
			var(--space-5, 24px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	a.woocommerce-loop-product__link
	>
	img,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	a.woocommerce-loop-category__link
	>
	img {
		margin-bottom:
			var(--space-4, 16px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.woocommerce-loop-product__title,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.woocommerce-loop-category__title {
		min-height: 0;
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.button {
		width: 100%;
		min-height: 46px;

		margin-top:
			var(--space-4, 16px);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	a.added_to_cart {
		align-self: center;
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-pagination {
		margin-top:
			var(--space-9, 48px);
	}
}


/* ==========================
   TOUCH DEVICES
========================== */

@media (hover: none) {
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product:hover
	a.woocommerce-loop-product__link
	>
	img,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product:hover
	a.woocommerce-loop-category__link
	>
	img {
		filter: none;

		transform:
			translateZ(0)
			scale(1);
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.button {
		opacity: 1;

		pointer-events: auto;

		transform: none;
	}
}


/* ==========================
   REDUCED MOTION
========================== */

@media (prefers-reduced-motion: reduce) {
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.button.loading::after {
		animation: none;
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-breadcrumb
	a,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-ordering
	select.orderby,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product::after,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	a
	>
	img,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.woocommerce-loop-product__title,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.button,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	a.added_to_cart,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-pagination
	.page-numbers
	li
	>
	a,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-pagination
	.page-numbers
	li
	>
	a::after,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-pagination
	.page-numbers
	li
	>
	span::after {
		transition: none;
	}

	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product:hover
	a
	>
	img,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product:focus-within
	a
	>
	img,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.site-main
	ul.products
	li.product
	.button,
	:is(
		body.woocommerce-shop,
		body.archive.tax-product_cat,
		body.archive.tax-product_tag
	)
	.woocommerce-pagination
	.page-numbers
	li
	>
	a:hover {
		transform: none;
	}
}