/* Pantesk — WooCommerce surfaces.
   Loaded after style.css. Everything here restyles Woo's markup rather than
   fighting it; the theme dequeues wc-blocks-style so specificity stays sane. */

/* =========================================================================
   1. Product card
   ========================================================================= */

.woocommerce ul.products,
ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: 10px;
	row-gap: 28px;
}
/* Woo's clearfix pseudo-elements become phantom grid cells. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after { content: none !important; display: none !important; }

@media (min-width: 768px)  { .woocommerce ul.products, ul.products { grid-template-columns: repeat(3, 1fr); column-gap: 16px; row-gap: 36px; } }
@media (min-width: 1024px) { .woocommerce ul.products, ul.products { grid-template-columns: repeat(4, 1fr); column-gap: 20px; row-gap: 44px; } }

.woocommerce ul.products li.product,
ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	padding: 0;
	text-align: left;
}
/* Rails reuse the card without the grid. */
.rail__track ul.products { display: contents; }

.card { display: flex; flex-direction: column; height: 100%; }

.card__media {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	background: var(--surface-2);
	border-radius: var(--r-xs);
	overflow: hidden;
	contain: paint;
	margin-bottom: var(--s3);
}
.card__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	backface-visibility: hidden;
	transition: transform 900ms var(--ease-smooth), opacity var(--t-mid) var(--ease-smooth);
}
.card__img--back { opacity: 0; transform: scale(1.045); }

@media (hover: hover) {
	.card__media.has-hover:hover .card__img--front { transform: scale(1.035); }
	.card__media.has-hover:hover .card__img--back  { opacity: 1; transform: scale(1); }
	li.product:focus-within .card__media.has-hover .card__img--back { opacity: 1; transform: scale(1); }
	.card__media:not(.has-hover):hover .card__img--front { transform: scale(1.035); }
}

.card__badges {
	position: absolute;
	top: 10px; left: 10px;
	display: grid;
	gap: 4px;
	justify-items: start;
	z-index: 2;
}
.badge {
	font-family: var(--font-display);
	font-size: 10px;
	font-weight: 500;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: .1em;
	padding: 5px 8px;
	border-radius: var(--r-xs);
	border: 1px solid transparent;
}
.badge--new  { background: var(--ink);  color: var(--bg); }
.badge--sale { background: var(--sale); color: #fff; font-variant-numeric: tabular-nums; }
.badge--out  { background: rgba(255,255,255,.94); color: var(--ink); border-color: var(--border); }
.badge--low  { background: transparent; border-color: var(--sale); color: var(--sale); }

.card__swatches {
	position: absolute;
	left: 10px; bottom: 10px;
	z-index: 2;
	list-style: none;
	margin: 0; padding: 0;
	display: flex;
	align-items: center;
	gap: 5px;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out);
}
@media (hover: hover) { .card__media:hover .card__swatches, li.product:focus-within .card__swatches { opacity: 1; transform: none; } }
@media (hover: none)  { .card__swatches { opacity: 1; transform: none; } }

.swatch--dot {
	width: 12px; height: 12px;
	border-radius: var(--r-pill);
	background: var(--sw, #ccc);
	box-shadow: inset 0 0 0 1px rgba(23,22,20,.16), 0 0 0 1.5px rgba(255,255,255,.9);
}
.card__swatches-more {
	font-size: 10px;
	font-weight: 500;
	color: var(--ink);
	background: rgba(255,255,255,.9);
	padding: 1px 5px;
	border-radius: var(--r-pill);
	line-height: 1.4;
}

.card__cat {
	font-size: var(--fs-xs);
	color: var(--meta);
	margin: 0 0 2px;
	letter-spacing: .01em;
}
.card__title {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -.005em;
	margin: 0 0 var(--s2);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.card__title a { transition: color var(--t-fast) var(--ease-out); }
.card__title a:hover { color: var(--accent); }

.card__foot { margin-top: auto; }
.card__price {
	font-size: 14px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	color: var(--ink);
}
.card__price .woocommerce-Price-amount { font-weight: 500; }
.card__price del { color: var(--meta); font-size: 12px; margin-right: 6px; text-decoration: line-through; opacity: 1; }
.card__price ins { color: var(--sale); text-decoration: none; font-weight: 500; }
.card__sizes {
	font-size: var(--fs-xs);
	color: var(--meta);
	margin: 4px 0 0;
	letter-spacing: .02em;
}
.card__cta { margin-top: var(--s3); width: 100%; }
@media (hover: hover) and (min-width: 1024px) {
	.card__cta {
		opacity: 0;
		transform: translateY(4px);
		transition: opacity var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out), background-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
	}
	li.product:hover .card__cta, li.product:focus-within .card__cta { opacity: 1; transform: none; }
}

/* Woo's own price markup outside the card */
.price { font-variant-numeric: tabular-nums; }

/* =========================================================================
   2. Catalog toolbar
   ========================================================================= */

.catbar {
	position: sticky;
	top: var(--head-h);
	z-index: var(--z-bar);
	background: var(--bg);
	border-block: 1px solid var(--border);
	margin-bottom: var(--s7);
}
.catbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s4);
	height: 56px;
}
.catbar__left, .catbar__right { display: flex; align-items: center; gap: var(--s3); }
.catbar__count { font-size: var(--fs-xs); color: var(--meta); font-variant-numeric: tabular-nums; }
.catbar__filter {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 38px;
	padding: 0 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-pill);
	font-family: var(--font-display);
	font-size: var(--fs-xs);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .08em;
	transition: border-color var(--t-fast) var(--ease-out);
}
.catbar__filter:hover { border-color: var(--ink); }
.catbar select, .woocommerce-ordering select {
	height: 38px;
	padding: 0 38px 0 14px;
	border-radius: var(--r-pill);
	background-color: transparent;
	font-size: var(--fs-xs);
	background-position: right 13px center;
}
.woocommerce-ordering { margin: 0; }

@media (max-width: 767px) { .catbar__count { display: none; } }

.catintro { max-width: 640px; margin-bottom: var(--s7); }
.catintro p { color: var(--muted); }

.subcats { list-style: none; margin: 0 0 var(--s7); padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.subcats a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 36px;
	padding: 0 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-pill);
	font-size: var(--fs-sm);
	color: var(--muted);
	transition: border-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out), background-color var(--t-fast) var(--ease-out);
}
.subcats a:hover, .subcats a.is-on { border-color: var(--ink); color: var(--ink); }
.subcats a.is-on { background: var(--ink); color: var(--bg); }
.subcats .n { font-size: var(--fs-xs); opacity: .6; font-variant-numeric: tabular-nums; }

/* Filter drawer widgets */
.drawer .widget { padding: var(--s5); border-bottom: 1px solid var(--border); }
.drawer .widget__title {
	font-family: var(--font-display);
	font-size: var(--fs-micro);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--meta);
	margin: 0 0 var(--s4);
}
.drawer .widget ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.drawer .widget ul a { font-size: var(--fs-sm); color: var(--muted); }
.drawer .widget ul a:hover { color: var(--ink); }
.drawer .widget .count { color: var(--meta); font-size: var(--fs-xs); }

/* =========================================================================
   3. Single product
   ========================================================================= */

.pdp { padding-block: var(--s7) var(--section-y); }

.woocommerce div.product { display: grid; gap: var(--s7); }
@media (min-width: 1024px) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		column-gap: clamp(40px, 4.5vw, 72px);
		align-items: start;
	}
	.woocommerce div.product .woocommerce-product-gallery { grid-column: 1; grid-row: 1; }
	.woocommerce div.product .summary { grid-column: 2; grid-row: 1; position: sticky; top: calc(var(--head-h) + 24px); }
	.woocommerce div.product .woocommerce-tabs,
	.woocommerce div.product .related,
	.woocommerce div.product .up-sells { grid-column: 1 / -1; }
}

/* Gallery */
.gal { display: grid; gap: 8px; }
.gal__stage {
	position: relative;
	aspect-ratio: 3 / 4;
	background: var(--surface-2);
	border-radius: var(--r-xs);
	overflow: hidden;
}
.gal__img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: opacity 320ms var(--ease-smooth);
	cursor: zoom-in;
}
.gal__img.is-swapping { opacity: .35; }
.gal__thumbs {
	list-style: none; margin: 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
}
.gal__thumb {
	aspect-ratio: 3 / 4;
	border-radius: var(--r-xs);
	overflow: hidden;
	background: var(--surface-2);
	box-shadow: inset 0 0 0 1px var(--border);
	transition: box-shadow var(--t-base) var(--ease-out);
	cursor: pointer;
	padding: 0;
}
.gal__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gal__thumb:hover  { box-shadow: inset 0 0 0 1px var(--border-strong); }
.gal__thumb.is-active { box-shadow: inset 0 0 0 2px var(--ink); }

@media (min-width: 1024px) {
	.gal { gap: 8px; }
	.gal__thumbs { grid-template-columns: repeat(6, 1fr); }
}

/* Woo's default gallery, when our template is bypassed */
.woocommerce div.product .woocommerce-product-gallery { position: relative; float: none; width: auto; }
.woocommerce div.product .woocommerce-product-gallery__wrapper { display: grid; gap: 8px; margin: 0; }
.woocommerce div.product .woocommerce-product-gallery__image { border-radius: var(--r-xs); overflow: hidden; background: var(--surface-2); }
.woocommerce div.product .woocommerce-product-gallery__image img { width: 100%; }
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs { display: none; }

/* Summary */
.woocommerce div.product .summary { margin: 0 !important; width: auto !important; float: none !important; }

.pdp__eyebrow {
	font-family: var(--font-display);
	font-size: var(--fs-micro);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .16em;
	color: var(--meta);
	margin: 0 0 var(--s3);
}
.pdp__eyebrow a:hover { color: var(--ink); }

.woocommerce div.product .product_title {
	font-size: var(--fs-h1);
	line-height: 1.05;
	letter-spacing: -.03em;
	margin: 0 0 var(--s4);
	padding: 0;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--font-body);
	font-size: 1.375rem;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	color: var(--ink);
	margin: 0 0 var(--s5);
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}
.woocommerce div.product p.price del { color: var(--meta); font-size: 1rem; font-weight: 400; opacity: 1; }
.woocommerce div.product p.price ins { color: var(--sale); text-decoration: none; font-weight: 500; }
.woocommerce div.product .woocommerce-price-suffix { font-size: var(--fs-xs); color: var(--meta); font-weight: 400; }

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--muted);
	font-size: var(--fs-body);
	line-height: 1.7;
	max-width: 46ch;
	margin-bottom: var(--s6);
}
.woocommerce div.product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

.pdp__stock {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: var(--fs-xs);
	color: var(--success);
	margin-bottom: var(--s4);
}
.pdp__stock::before {
	content: "";
	width: 6px; height: 6px;
	border-radius: var(--r-pill);
	background: currentColor;
}
.pdp__stock.is-out { color: var(--sale); }

/* Variation form */
.woocommerce div.product form.cart { margin: 0 0 var(--s6); }
.woocommerce div.product form.cart .variations {
	width: 100%;
	margin: 0 0 var(--s5);
	border: 0;
	display: grid;
	gap: var(--s5);
}
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr { display: contents; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
	display: block;
	padding: 0;
	border: 0;
	background: none;
}
.woocommerce div.product form.cart .variations th.label { margin-bottom: var(--s3); }
.woocommerce div.product form.cart .variations label {
	font-family: var(--font-display);
	font-size: var(--fs-micro);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--meta);
}

/* Native selects stay in the DOM for form submission but are visually replaced. */
.woocommerce div.product form.cart .variations select.is-pilled {
	position: absolute;
	width: 1px; height: 1px;
	opacity: 0;
	pointer-events: none;
}

.pills { display: flex; flex-wrap: wrap; gap: 8px; }
.pill {
	display: inline-grid;
	place-items: center;
	min-width: 52px;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-pill);
	background: transparent;
	font-size: var(--fs-sm);
	font-weight: 500;
	color: var(--ink);
	transition: border-color 160ms var(--ease-out), background-color 160ms var(--ease-out), color 160ms var(--ease-out), transform 220ms var(--ease-pop);
}
.pill:hover { border-color: var(--ink); }
.pill.is-on {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--bg);
	transform: scale(1);
}
.pill.is-disabled {
	color: var(--meta);
	cursor: not-allowed;
	background-image: linear-gradient(to top left, transparent calc(50% - .5px), var(--border) 50%, transparent calc(50% + .5px));
}

.pills--swatch { gap: 10px; }
.pill--swatch {
	min-width: 0;
	min-height: 0;
	width: 30px; height: 30px;
	padding: 0;
	border: 0;
	border-radius: var(--r-pill);
	background: none;
	display: grid;
	place-items: center;
	box-shadow: none;
}
.pill__dot {
	width: 26px; height: 26px;
	border-radius: var(--r-pill);
	background: var(--sw, #ccc);
	box-shadow: inset 0 0 0 1px rgba(23,22,20,.14), 0 0 0 0 var(--ink);
	transition: box-shadow 180ms var(--ease-out);
}
.pill--swatch:hover .pill__dot { box-shadow: inset 0 0 0 1px rgba(23,22,20,.14), 0 0 0 1px var(--border-strong); }
.pill--swatch.is-on { background: none; transform: none; }
.pill--swatch.is-on .pill__dot { box-shadow: inset 0 0 0 1px rgba(23,22,20,.14), 0 0 0 1.5px var(--ink); outline-offset: 3px; }
.pill--swatch.is-disabled { opacity: .45; }
.pill--swatch.is-disabled .pill__dot { background-image: linear-gradient(to top left, transparent calc(50% - .5px), var(--ink) 50%, transparent calc(50% + .5px)); }

.pdp__sizelink { margin: 0 0 var(--s3); text-align: right; }
.pdp__sizelink a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: var(--fs-xs);
	color: var(--meta);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.pdp__sizelink a:hover { color: var(--ink); }

.woocommerce div.product form.cart .woocommerce-variation-price { margin-bottom: var(--s4); }
.woocommerce div.product form.cart .woocommerce-variation-availability { margin-bottom: var(--s4); font-size: var(--fs-sm); }
.woocommerce div.product form.cart .woocommerce-variation-description { font-size: var(--fs-sm); color: var(--muted); }

/* Quantity + add to cart */
.woocommerce div.product form.cart .cart,
.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s3);
	align-items: stretch;
}
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .woocommerce-variation,
.woocommerce div.product form.cart .pdp__sizelink,
.woocommerce div.product form.cart .single_variation_wrap { flex: 1 1 100%; }

.qty, .woocommerce .quantity {
	display: inline-flex;
	align-items: center;
	height: 48px;
	border: 1px solid var(--border);
	border-radius: var(--r-pill);
	flex: none;
	overflow: hidden;
}
.qty__btn {
	display: grid; place-items: center;
	width: 44px; height: 100%;
	color: var(--ink);
	transition: background-color var(--t-fast) var(--ease-out);
}
.qty__btn:hover { background: var(--surface-2); }
.woocommerce .quantity input.qty,
.qty input.qty {
	width: 44px;
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 15px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	appearance: textfield;
	-moz-appearance: textfield;
}
.qty input.qty::-webkit-outer-spin-button,
.qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qty input.qty:focus { box-shadow: none; }

.woocommerce div.product form.cart button.single_add_to_cart_button {
	flex: 1 1 200px;
	height: 48px;
}

.pdp__assure {
	list-style: none;
	margin: 0 0 var(--s6);
	padding: var(--s5) 0 0;
	border-top: 1px solid var(--border);
	display: grid;
	gap: var(--s3);
}
.pdp__assure li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--s3);
	align-items: start;
	font-size: var(--fs-sm);
	color: var(--muted);
	line-height: 1.5;
}
.pdp__assure .ico { color: var(--ink); margin-top: 1px; }

.pdp__meta {
	margin: 0;
	padding-top: var(--s5);
	border-top: 1px solid var(--border);
	display: grid;
	gap: var(--s3);
	font-size: var(--fs-sm);
}
.pdp__meta > div { display: grid; grid-template-columns: 132px 1fr; gap: var(--s3); }
.pdp__meta dt { color: var(--meta); margin: 0; }
.pdp__meta dd { margin: 0; color: var(--ink); }

/* Sticky mobile add-to-cart */
.stickyatc {
	position: fixed;
	inset: auto 0 0 0;
	z-index: calc(var(--z-head) - 10);
	background: rgba(255,255,255,.94);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-top: 1px solid var(--border);
	padding: 10px var(--pad) calc(10px + env(safe-area-inset-bottom));
	display: flex;
	align-items: center;
	gap: var(--s3);
	transform: translateY(100%);
	opacity: 0;
	transition: transform 320ms var(--ease-smooth), opacity 320ms var(--ease-smooth);
}
.stickyatc.is-on { transform: none; opacity: 1; }
.stickyatc__img { width: 40px; height: 53px; object-fit: cover; border-radius: var(--r-xs); flex: none; }
.stickyatc__info { min-width: 0; flex: 1; }
.stickyatc__title {
	font-size: var(--fs-xs);
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--muted);
}
.stickyatc__price { font-size: 13px; font-weight: 500; margin: 0; font-variant-numeric: tabular-nums; }
@media (min-width: 1024px) { .stickyatc { display: none; } }

/* Tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: var(--s10); }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	margin: 0 0 var(--s7);
	padding: 0;
	border-bottom: 1px solid var(--border);
	display: flex;
	flex-wrap: wrap;
	gap: var(--s6);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0; padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0 0 var(--s4);
	font-family: var(--font-display);
	font-size: var(--fs-sm);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--meta);
	border-bottom: 1px solid transparent;
	margin-bottom: -1px;
	transition: color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); border-bottom-color: var(--ink); }
.woocommerce div.product .woocommerce-tabs .panel {
	max-width: 68ch;
	color: var(--muted);
	font-size: var(--fs-body-lg);
	line-height: 1.75;
	margin: 0;
	padding: 0;
	border: 0;
	box-shadow: none;
}
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 1.125rem; color: var(--ink); margin-top: var(--s6); }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { margin-top: 0; }

.woocommerce table.shop_attributes { border: 1px solid var(--border); border-radius: var(--r-sm); overflow: hidden; }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--border);
	font-style: normal;
	line-height: 1.5;
	background: none;
}
.woocommerce table.shop_attributes th {
	background: var(--surface-2);
	font-family: var(--font-display);
	font-size: var(--fs-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--ink);
	width: 200px;
}
.woocommerce table.shop_attributes tr:last-child th,
.woocommerce table.shop_attributes tr:last-child td { border-bottom: 0; }
.woocommerce table.shop_attributes td p { margin: 0; }

/* Related / upsells */
.woocommerce .related, .woocommerce .up-sells { margin-top: var(--s10); }
.woocommerce .related > h2, .woocommerce .up-sells > h2 {
	font-size: var(--fs-h2);
	margin-bottom: var(--s7);
}

/* Reviews */
.woocommerce #reviews #comments ol.commentlist { padding: 0; }
.woocommerce #reviews #comments ol.commentlist li { margin-bottom: var(--s6); }
.woocommerce #reviews #comments ol.commentlist li .comment-text {
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	padding: var(--s5);
	margin-left: 64px;
}
.woocommerce #reviews #comments ol.commentlist li img.avatar {
	width: 48px;
	border: 0;
	border-radius: var(--r-pill);
	padding: 0;
	background: var(--surface-2);
}
.woocommerce p.stars a { color: var(--ink); }
.woocommerce .star-rating { color: var(--ink); float: none; }

/* =========================================================================
   4. Cart
   ========================================================================= */

.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main { padding-block: var(--s7) var(--section-y); }

.shipbar { margin-bottom: var(--s6); }
.shipbar__msg {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: var(--fs-sm);
	color: var(--ink);
	margin: 0 0 10px;
}
.shipbar__msg .ico { color: var(--meta); }
.shipbar.is-complete .shipbar__msg .ico { color: var(--success); }
.shipbar__track { height: 4px; background: var(--surface-2); border-radius: var(--r-pill); overflow: hidden; }
.shipbar__fill {
	display: block;
	height: 100%;
	width: var(--pct, 0%);
	background: var(--success);
	border-radius: var(--r-pill);
	transform-origin: left;
	transition: width 600ms var(--ease-smooth);
}

.woocommerce table.shop_table {
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--surface);
	margin-bottom: var(--s7);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 16px;
	border-top: 0;
	border-bottom: 1px solid var(--border);
	vertical-align: middle;
}
.woocommerce table.shop_table thead th {
	background: var(--surface-2);
	font-family: var(--font-display);
	font-size: var(--fs-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--ink);
}
.woocommerce table.shop_table tbody tr:last-child td { border-bottom: 1px solid var(--border); }
.woocommerce table.shop_table tfoot tr:last-child th,
.woocommerce table.shop_table tfoot tr:last-child td { border-bottom: 0; }
.woocommerce table.shop_table td.product-name a { font-weight: 500; }
.woocommerce table.shop_table td.product-name dl.variation { margin: 4px 0 0; font-size: var(--fs-xs); color: var(--meta); }
.woocommerce table.shop_table td.product-name dl.variation dt,
.woocommerce table.shop_table td.product-name dl.variation dd { display: inline; margin: 0; float: none; }
.woocommerce table.shop_table td.product-name dl.variation dd { margin-right: 10px; }
.woocommerce table.shop_table td.product-name dl.variation p { display: inline; margin: 0; }
.woocommerce table.shop_table img { width: 64px; border-radius: var(--r-xs); }
.woocommerce a.remove {
	width: 26px; height: 26px;
	line-height: 24px;
	font-size: 18px;
	color: var(--meta) !important;
	border: 1px solid var(--border);
	border-radius: var(--r-pill);
	transition: color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out);
}
.woocommerce a.remove:hover { background: none !important; color: var(--sale) !important; border-color: var(--sale); }

.woocommerce .cart-collaterals { display: grid; gap: var(--s7); }
@media (min-width: 1024px) {
	.woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--s8); align-items: start; }
	.woocommerce-cart form.woocommerce-cart-form { grid-column: 1; }
	.woocommerce .cart-collaterals { grid-column: 2; position: sticky; top: calc(var(--head-h) + 24px); }
	.woocommerce .cart-collaterals .cart_totals { width: 100% !important; float: none !important; }
}
.woocommerce .cart-collaterals .cross-sells { width: 100%; float: none; }
.woocommerce .cart_totals h2 { font-size: var(--fs-h3); margin-bottom: var(--s4); }
.woocommerce .cart_totals table.shop_table { margin-bottom: var(--s5); }
.woocommerce .cart_totals .order-total .amount { font-size: 1.125rem; font-weight: 600; }
.woocommerce .wc-proceed-to-checkout { padding: 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; margin: 0; font-size: var(--fs-sm); }

.woocommerce .cart .actions .coupon { display: flex; gap: var(--s3); margin-bottom: var(--s4); }
.woocommerce .cart .actions .coupon input#coupon_code { width: auto; flex: 1 1 auto; height: 48px; }
.woocommerce .cart .actions { padding: var(--s5) 0 0 !important; }

.woocommerce-cart .cart-empty,
.woocommerce-cart .return-to-shop { text-align: center; }
.woocommerce-cart .cart-empty { font-size: var(--fs-h3); font-family: var(--font-display); margin-bottom: var(--s5); }

/* =========================================================================
   5. Mini cart (drawer)
   ========================================================================= */

.drawer .widget_shopping_cart_content { display: flex; flex-direction: column; min-height: 100%; }
.woocommerce ul.cart_list, .woocommerce ul.product_list_widget {
	list-style: none;
	margin: 0;
	padding: var(--s5);
	display: grid;
	gap: var(--s5);
	flex: 1;
}
.woocommerce ul.cart_list li, .woocommerce ul.product_list_widget li {
	display: grid;
	grid-template-columns: 72px 1fr auto;
	gap: var(--s4);
	padding: 0;
	align-items: start;
}
.woocommerce ul.cart_list li img, .woocommerce ul.product_list_widget li img {
	grid-row: 1 / span 3;
	width: 72px;
	height: 96px;
	object-fit: cover;
	float: none;
	margin: 0;
	border-radius: var(--r-xs);
	background: var(--surface-2);
}
.woocommerce ul.cart_list li a, .woocommerce ul.product_list_widget li a {
	font-size: var(--fs-sm);
	font-weight: 500;
	line-height: 1.4;
	display: block;
	padding: 0;
}
.woocommerce ul.cart_list li dl, .woocommerce ul.product_list_widget li dl {
	margin: 4px 0 0;
	padding: 0;
	border: 0;
	font-size: var(--fs-xs);
	color: var(--meta);
}
.woocommerce ul.cart_list li dl dt, .woocommerce ul.cart_list li dl dd { display: inline; margin: 0; float: none; padding: 0; }
.woocommerce ul.cart_list li dl dd { margin-right: 8px; }
.woocommerce ul.cart_list li dl p, .woocommerce ul.product_list_widget li dl p { display: inline; margin: 0; }
.woocommerce ul.cart_list li .quantity, .woocommerce ul.product_list_widget li .quantity {
	font-size: var(--fs-sm);
	color: var(--muted);
	font-variant-numeric: tabular-nums;
	grid-column: 2;
	margin-top: 4px;
	border: 0;
	height: auto;
	display: block;
}
.woocommerce ul.cart_list li a.remove { grid-column: 3; grid-row: 1; }

.woocommerce .widget_shopping_cart .total,
.woocommerce.widget_shopping_cart .total {
	margin: 0;
	padding: var(--s5);
	border-top: 1px solid var(--border);
	border-bottom: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 15px;
	font-weight: 600;
}
.woocommerce .widget_shopping_cart .total strong { font-weight: 500; color: var(--muted); font-size: var(--fs-sm); }
.woocommerce .widget_shopping_cart .buttons,
.woocommerce.widget_shopping_cart .buttons {
	margin: 0;
	padding: 0 var(--s5) var(--s5);
	display: grid;
	gap: 10px;
}
.woocommerce .widget_shopping_cart .buttons a { width: 100%; margin: 0; }
.woocommerce .widget_shopping_cart .buttons a.checkout { order: -1; }
.woocommerce .widget_shopping_cart p.woocommerce-mini-cart__empty-message {
	padding: var(--s9) var(--s5);
	text-align: center;
	color: var(--meta);
}

/* =========================================================================
   6. Checkout
   ========================================================================= */

.woocommerce-checkout .woocommerce { display: grid; gap: var(--s8); }
@media (min-width: 1024px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: var(--s8); align-items: start; }
	.woocommerce-checkout form.checkout #customer_details { grid-column: 1; }
	.woocommerce-checkout form.checkout h3#order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 var(--s4); }
	.woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: calc(var(--head-h) + 24px); }
}
.woocommerce-checkout .col2-set, .woocommerce .col2-set { width: 100%; display: grid; gap: var(--s7); }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2,
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2 { width: 100%; float: none; }

.woocommerce form .form-row { padding: 0; margin: 0 0 var(--s4); }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; font-size: var(--fs-sm); }
.woocommerce form .form-row .required { color: var(--sale); text-decoration: none; border: 0; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; }
@media (min-width: 640px) {
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 8px); float: left; }
	.woocommerce form .form-row-last { float: right; }
}
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	padding: var(--s6);
	background: var(--surface);
}

.woocommerce-checkout #payment {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
}
.woocommerce-checkout #payment ul.payment_methods { padding: var(--s5); border-bottom: 1px solid var(--border); }
.woocommerce-checkout #payment ul.payment_methods li { margin-bottom: var(--s3); list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li:last-child { margin-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods label { font-weight: 500; }
.woocommerce-checkout #payment div.payment_box {
	background: var(--surface-2);
	border-radius: var(--r-sm);
	font-size: var(--fs-sm);
	color: var(--muted);
	margin-top: var(--s3);
	padding: var(--s4);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row { padding: var(--s5); }
.woocommerce-checkout #payment #place_order { width: 100%; height: 56px; }
.checkout__assure {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: var(--fs-xs);
	color: var(--meta);
	margin: 0 0 var(--s4);
}
.checkout__assure .ico { color: var(--success); }

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin-bottom: var(--s4); font-size: var(--fs-sm); }

/* Order received */
.woocommerce ul.order_details {
	list-style: none;
	margin: 0 0 var(--s7);
	padding: var(--s6);
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	display: grid;
	gap: var(--s5);
}
@media (min-width: 768px) { .woocommerce ul.order_details { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); } }
.woocommerce ul.order_details li {
	float: none;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: var(--fs-xs);
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--meta);
	white-space: normal;
	font-family: var(--font-display);
}
.woocommerce ul.order_details li strong {
	display: block;
	margin-top: 6px;
	font-family: var(--font-body);
	font-size: var(--fs-body);
	letter-spacing: -.005em;
	text-transform: none;
	color: var(--ink);
	word-break: break-word;
}

/* The vgcpayment receipt CSS forces nowrap + right-align on every cell,
   which overflows on mobile. Rebuild the table as rows below 600px. */
@media (max-width: 600px) {
	.woocommerce-order table.shop_table,
	.woocommerce-order table.shop_table tbody,
	.woocommerce-order table.shop_table tfoot,
	.woocommerce-order table.shop_table tr { display: block; width: 100%; }
	.woocommerce-order table.shop_table thead { display: none; }
	.woocommerce-order table.shop_table tr { padding: 12px 16px; border-bottom: 1px solid var(--border); }
	.woocommerce-order table.shop_table td,
	.woocommerce-order table.shop_table th {
		display: flex !important;
		justify-content: space-between !important;
		align-items: baseline;
		gap: 16px;
		padding: 4px 0 !important;
		border: 0 !important;
		text-align: left !important;
		white-space: normal !important;
	}
	.woocommerce-order table.shop_table td::before,
	.woocommerce-order table.shop_table th::before { color: var(--meta); }
}

/* =========================================================================
   7. Account
   ========================================================================= */

.woocommerce-account .woocommerce { display: grid; gap: var(--s7); }
@media (min-width: 1024px) {
	.woocommerce-account .woocommerce { grid-template-columns: 240px minmax(0, 1fr); gap: var(--s8); align-items: start; }
}
.woocommerce-account .woocommerce-MyAccount-navigation { width: 100%; float: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 11px 16px;
	border-radius: var(--r-sm);
	font-size: var(--fs-sm);
	color: var(--muted);
	transition: background-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--surface-2); color: var(--ink); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ink); color: var(--bg); }
.woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; }

/* =========================================================================
   8. Notices
   ========================================================================= */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce div.message {
	background: var(--surface);
	border: 1px solid var(--border);
	border-left: 3px solid var(--accent);
	border-radius: var(--r-sm);
	padding: 16px 18px;
	margin: 0 0 var(--s6);
	font-size: var(--fs-body);
	color: var(--ink);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s4);
	list-style: none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }
.woocommerce-message { border-left-color: var(--success); background: rgba(31, 109, 75, .05); }
.woocommerce-error  { border-left-color: var(--sale); background: rgba(179, 38, 30, .05); }
.woocommerce-info   { border-left-color: var(--accent); background: rgba(30, 54, 200, .04); }
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button { margin-left: auto; }
.woocommerce-error li { list-style: none; }

.woocommerce .woocommerce-breadcrumb { display: none; }

/* =========================================================================
   9. Shop page header
   ========================================================================= */

.shophead { padding-block: var(--s8) var(--s6); }
.shophead__title { margin: 0 0 var(--s3); }
.shophead__sub { color: var(--muted); max-width: 56ch; margin: 0; font-size: var(--fs-body-lg); }
.woocommerce-products-header { display: none; }
.woocommerce-result-count { display: none; }

.shop-main { padding-bottom: var(--section-y); }

/* Sold-out card dimming */
li.product.outofstock .card__media { opacity: .72; }


/* An empty cart has no totals column to fill, so the two-column grid pushed
   the notice into the 380px track meant for the order summary. */
.woocommerce-cart .woocommerce:has(.wc-empty-cart-message) {
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	text-align: center;
	padding-block: var(--s8) var(--s10);
}
.woocommerce-cart .wc-empty-cart-message { max-width: 46ch; }
.woocommerce-cart .woocommerce:has(.wc-empty-cart-message) .woocommerce-info {
	background: none;
	border: 0;
	padding: 0;
	color: var(--muted);
}

/* --- Product gallery ------------------------------------------------------
   Supplier photography arrives at inconsistent source aspect ratios, so the
   thumbnails were different heights and the strip wrapped to a ragged orphan
   row. Fixing the ratio and letting the track scroll keeps it to one line. */
/* Wrapping column grid, NOT a fixed-width track: a grid item defaults to
   min-width:auto, so a fixed track would push its intrinsic width out to the
   document and scroll the whole page sideways on a phone. */
.gal__thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	min-width: 0;
}
@media (min-width: 768px) {
	.gal__thumbs { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
.gal__thumbs img,
.gal__thumb img {
	aspect-ratio: 3 / 4;
	object-fit: cover;
	width: 100%;
	height: auto;
	display: block;
	background: var(--surface-2);
}
.gal__thumb {
	border: 1px solid transparent;
	border-radius: var(--r-sm);
	overflow: hidden;
	transition: border-color 160ms var(--ease-out);
}
.gal__thumb:hover { border-color: var(--border-strong); }
.gal__thumb.is-active { border-color: var(--ink); }

/* The main stage keeps the same ratio so switching images never shifts the
   page under the buyer's cursor. */
.gal__stage img {
	aspect-ratio: 3 / 4;
	object-fit: cover;
	width: 100%;
	display: block;
	background: var(--surface-2);
}

/* A grid/flex child needs min-width:0 before it will agree to shrink below its
   content's intrinsic width. Without these a single wide element — a gallery
   track, a long SKU, a table — silently widens the whole page. */
.woocommerce div.product > * { min-width: 0; }
.gal, .gal__stage, .gal__thumbs { min-width: 0; max-width: 100%; }
.pdp__summary, .summary.entry-summary { min-width: 0; }