/*
 * Urbanstory WooCommerce styles
 * -----------------------------
 * Loaded on every page, because product cards appear on the homepage,
 * shop, collections and related products.
 * Sections: 1. Product grid  2. Product card  3. Breadcrumb
 * 4. Archive header (incl. collection banner)  5. Side filter, chips,
 * toolbar  6. Pagination  7. Nothing found  8. Size and Color chips
 * 9. Quick-add sheet  10. Swipe rail  11. Product page  12. Cart page
 * 13. Messages + header mini-cart  14. Checkout  15. My account
 * 16. Empty cart
 *
 * Colors use role tokens (--us-heading, --us-price …), so cards also
 * read correctly inside the light zone (cart cross-sells).
 */

/* ========== 1. Product grid ========== */
/* Phones and tablets: 2 columns. Desktop: the column count WooCommerce
   asks for (e.g. [products columns="4"]). */

.woocommerce ul.products:not(.elementor-grid),
.woocommerce-page ul.products:not(.elementor-grid) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--us-space-4);
	row-gap: var(--us-space-8);
	margin: 0;
	padding: 0;
}

@media (min-width: 922px) {
	.woocommerce ul.products.columns-3:not(.elementor-grid) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: var(--us-space-6);
	}
	.woocommerce ul.products.columns-4:not(.elementor-grid) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		column-gap: var(--us-space-6);
	}
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none; /* old float clearfix, not needed with grid */
}

/* ========== 2. Product card ========== */
/* Markup: Astra's card + inc/product-card.php (photo slider, badge,
   rating, price row with cart icon). */

.woocommerce ul.products li.product {
	display: flex;
	flex-direction: column;
	width: auto;
	margin: 0;
	padding: 0;
	text-align: left;
	background: none;
}

/* Photo area: 4:5 portrait on asphalt, rounded */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
	position: relative;
	margin-bottom: var(--us-space-3);
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--us-radius);
	background: var(--us-surface);
	transition: box-shadow var(--us-duration-fast) var(--us-ease);
}

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a {
	display: block;
	height: 100%;
}

.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap {
	box-shadow: 0 0 0 2px var(--us-accent);
}

/* Photos sit side by side and snap one at a time; swipe on phones */
.us-card-slides {
	display: flex;
	height: 100%;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.us-card-slides::-webkit-scrollbar {
	display: none;
}

@media (hover: hover) and (pointer: fine) {
	.us-card-slides {
		overflow-x: hidden;
	}
}

.woocommerce ul.products li.product .us-card-slides img,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a > img {
	display: block;
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	scroll-snap-align: start;
	transition: transform var(--us-duration-base) var(--us-ease);
}

.woocommerce ul.products li.product:hover .us-card-slides img {
	transform: scale(1.03);
}

/* Arrows: shown on hover (mouse) or keyboard focus */
.us-card-nav {
	position: absolute;
	z-index: 2;
	top: 50%;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin-top: -18px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgb(17 19 23 / 0.78);
	color: var(--us-headlight);
	opacity: 0;
	cursor: pointer;
	transition: opacity var(--us-duration-fast) var(--us-ease), background-color var(--us-duration-fast) var(--us-ease);
}

/* A bigger invisible tap area around the 36px circle */
.us-card-nav::before {
	content: "";
	position: absolute;
	inset: -4px;
}

.us-card-nav[hidden] {
	display: none;
}

.us-card-nav--prev {
	left: var(--us-space-2);
}

.us-card-nav--next {
	right: var(--us-space-2);
}

.us-card-nav:hover {
	background: var(--us-accent);
	color: var(--us-on-accent);
}

li.product:hover .us-card-nav,
.us-card-nav:focus-visible {
	opacity: 1;
}

/* Touch screens: swipe instead of arrows */
@media (hover: none) {
	.us-card-nav {
		display: none;
	}
}

/* Dots: which photo is showing */
.us-card-dots {
	position: absolute;
	z-index: 1;
	bottom: var(--us-space-3);
	left: 50%;
	display: flex;
	gap: 6px;
	padding: 5px 7px;
	border-radius: var(--us-radius-pill);
	background: rgb(17 19 23 / 0.55);
	transform: translateX(-50%);
	pointer-events: none;
}

.us-card-dots span {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgb(244 242 234 / 0.5);
	transition: background-color var(--us-duration-fast) var(--us-ease), width var(--us-duration-fast) var(--us-ease);
}

.us-card-dots span.is-active {
	width: 14px;
	border-radius: 3px;
	background: var(--us-headlight);
}

/* Discount badge, e.g. "−20%" (worked out from the real prices) */
.woocommerce ul.products li.product .onsale.us-badge,
.woocommerce span.onsale.us-badge {
	position: absolute;
	z-index: 2;
	top: var(--us-space-3);
	right: auto;
	left: var(--us-space-3);
	display: inline-flex;
	align-items: center;
	width: auto;
	min-width: 0;
	height: auto;
	min-height: 0;
	margin: 0;
	padding: 5px 10px;
	border-radius: var(--us-radius-pill);
	background: var(--us-accent);
	color: var(--us-on-accent);
	font-family: var(--us-font-label);
	font-weight: 600;
	font-size: 0.875rem;
	line-height: 1;
	letter-spacing: 0.02em;
}

/* Text */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--us-space-1);
	padding: 0;
}

.woocommerce ul.products li.product .ast-woo-product-category {
	margin: 0;
	color: var(--us-muted);
	font-family: var(--us-font-label);
	font-weight: 600;
	font-size: var(--us-text-label);
	letter-spacing: var(--us-tracking-label);
	text-transform: uppercase;
	opacity: 1;
}

.woocommerce ul.products li.product .ast-loop-product__link {
	text-decoration: none;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0;
	padding: 0;
	color: var(--us-heading);
	font-family: var(--us-font-body);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
}

.woocommerce ul.products li.product .ast-loop-product__link:hover .woocommerce-loop-product__title {
	color: var(--us-link);
}

/* Rating: only printed when the product has real reviews */
.us-rating {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin: 0;
	color: var(--us-heading);
	font-size: var(--us-text-small);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.us-rating svg {
	color: var(--us-accent);
}

.us-rating__count {
	color: var(--us-muted);
	font-weight: 400;
}

/* Bottom row: price on the left, cart icon on the right. margin-top:auto
   keeps rows lined up when a title wraps to two lines. */
.us-card-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--us-space-2);
	width: 100%;
	margin-top: auto;
	padding-top: var(--us-space-2);
}

.woocommerce ul.products li.product .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 var(--us-space-2);
	margin: 0;
	color: var(--us-price);
	font-family: var(--us-font-body);
	font-weight: 600;
	font-size: 1rem;
	font-variant-numeric: tabular-nums;
}

/* Sale: new price first in yellow, old price struck through in grey */
.woocommerce ul.products li.product .price ins {
	order: -1;
	color: var(--us-price);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce ul.products li.product .price del {
	color: var(--us-muted);
	font-size: var(--us-text-small);
	font-weight: 400;
	opacity: 1;
}

/* Round cart icon */
.us-card-cart,
.woocommerce ul.products li.product a.us-card-cart {
	flex: none;
	display: inline-grid;
	place-items: center;
	width: var(--us-tap);
	height: var(--us-tap);
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--us-accent);
	color: var(--us-on-accent);
	transition: background-color var(--us-duration-fast) var(--us-ease), transform var(--us-duration-fast) var(--us-ease);
}

.us-card-cart:hover,
.us-card-cart:focus-visible,
.woocommerce ul.products li.product a.us-card-cart:hover {
	background: var(--us-yellow-hover);
	color: var(--us-on-accent);
}

.us-card-cart:active {
	transform: scale(0.94);
}

/* Sold out: a quiet outline arrow to the product page */
.us-card-cart--view,
.woocommerce ul.products li.product a.us-card-cart--view {
	background: transparent;
	color: var(--us-heading);
	box-shadow: inset 0 0 0 1.5px var(--us-field-border);
}

/* Simple products use WooCommerce's own add to cart, which adds a
   "View cart" link after the icon; the header cart count is enough. */
.us-card-foot .added_to_cart {
	display: none;
}

.us-card-cart.loading {
	opacity: 0.6;
}

.us-card-cart.loading::after,
.us-card-cart.added::after {
	display: none;
}

/* ==========================================================================
   Shop and collection pages (Phase 3). Markup comes from inc/shop.php.
   ========================================================================== */

/* ========== 3. Breadcrumb ========== */

.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 var(--us-space-4);
	color: var(--us-muted);
	font-size: var(--us-text-small);
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--us-text);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--us-link);
}

/* ========== 4. Archive header ========== */

.us-archive-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--us-space-6);
	align-items: center;
	margin-bottom: var(--us-space-8);
}

.us-archive-header--has-art {
	grid-template-columns: minmax(0, 1fr) 96px;
}

@media (min-width: 768px) {
	.us-archive-header--has-art {
		grid-template-columns: minmax(0, 1fr) clamp(200px, 26vw, 320px);
		gap: var(--us-space-12);
	}
}

.us-archive-header__text {
	display: grid;
	gap: var(--us-space-3);
	justify-items: start;
}

.us-archive-header__title.page-title {
	margin: 0;
	font-size: var(--us-text-display);
	line-height: 1.02;
	text-transform: uppercase;
	overflow-wrap: break-word;
}

.us-archive-header__intro:empty {
	display: none;
}

.us-archive-header__intro,
.us-archive-header__intro p {
	max-width: 56ch;
	margin: 0;
	color: var(--us-text);
	font-size: 1.0625rem;
}

.us-archive-header__art {
	margin: 0;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--us-radius);
	background: var(--us-surface);
}

.us-archive-header__art img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 40%;
}

/* Collection banner (collections only; inc/shop.php
   urbanstory_collection_header). Phone: square art on top, text below.
   768px+: text left, wide art right. --us-collection is the collection's
   accent (inc/collections.php), used only for the small bar. */
.us-collection-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--us-space-6);
	align-items: center;
	margin-bottom: var(--us-space-8);
}

.us-collection-header__text {
	display: grid;
	gap: var(--us-space-3);
	justify-items: start;
}

.us-collection-header__label {
	display: flex;
	align-items: center;
	gap: var(--us-space-3);
	margin: 0;
	color: var(--us-muted);
	font-family: var(--us-font-label);
	font-weight: 600;
	font-size: var(--us-text-label);
	letter-spacing: var(--us-tracking-label);
	line-height: 1.2;
	text-transform: uppercase;
}

.us-collection-header__label::before {
	content: "";
	flex: none;
	width: 28px;
	height: 4px;
	border-radius: 2px;
	background: var(--us-collection, var(--us-accent));
}

.us-collection-header__facts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--us-space-1) var(--us-space-3);
	margin: var(--us-space-1) 0 0;
	color: var(--us-muted);
	font-size: var(--us-text-small);
	font-weight: 600;
}

.us-collection-header__facts > span + span::before {
	content: "·";
	margin-right: var(--us-space-3);
}

.us-collection-header__facts .amount {
	color: var(--us-heading);
}

.us-collection-header__art,
.us-collection-header__plate {
	order: -1;
	margin: 0;
	border-radius: var(--us-radius);
}

.us-collection-header__art {
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--us-surface);
}

.us-collection-header__art img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* No art yet: a licence plate, like the logo */
.us-collection-header__plate {
	display: grid;
	align-content: center;
	justify-items: center;
	gap: var(--us-space-2);
	box-sizing: border-box;
	aspect-ratio: 2 / 1;
	padding: var(--us-space-6);
	background: var(--us-yellow);
	box-shadow: inset 0 0 0 8px var(--us-yellow), inset 0 0 0 11px var(--us-ink);
	color: var(--us-ink);
	text-align: center;
}

.us-collection-header__plate-name {
	font-family: var(--us-font-display);
	font-weight: 800;
	font-size: clamp(1.375rem, 1rem + 1.6vw, 2.25rem);
	line-height: 1.05;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.us-collection-header__plate-line {
	font-family: var(--us-font-label);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
}

@media (min-width: 768px) {
	.us-collection-header {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: var(--us-space-12);
	}

	.us-collection-header__art,
	.us-collection-header__plate {
		order: 0;
		aspect-ratio: 15 / 8;
	}
}

/* ========== 5. Side filter, chips, toolbar ========== */
/* Markup: inc/shop.php. Desktop (1024px+): filter sidebar beside the
   grid. Under 1024px: category chips + a Filter button that opens the
   sidebar as a drawer (assets/js/shop.js). */

/* Category chips: phones and tablets only (desktop has them in the sidebar) */
.us-cat-chips {
	min-width: 0;
	margin-bottom: var(--us-space-4);
}

.us-cat-chips ul {
	display: flex;
	gap: var(--us-space-2);
	margin: 0;
	padding: 0 0 var(--us-space-1);
	list-style: none;
	overflow-x: auto;
	scrollbar-width: thin;
}

.us-cat-chips li {
	flex: none;
	margin: 0;
}

@media (min-width: 1024px) {
	.us-cat-chips {
		display: none;
	}

	/* Collections' Type chips stay on every screen size */
	.us-cat-chips.us-cat-chips--types {
		display: block;
	}
}

/* Phones: chips run to the screen edge so it's clear the row scrolls */
@media (max-width: 599px) {
	.us-cat-chips ul {
		margin-inline: calc(var(--us-edge) * -1);
		padding-inline: var(--us-edge);
	}
}

.us-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--us-space-2);
	min-height: var(--us-tap);
	padding: 0 18px;
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius-pill);
	color: var(--us-heading);
	font-family: var(--us-font-body);
	font-weight: 600;
	font-size: var(--us-text-small);
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--us-duration-fast) var(--us-ease),
		border-color var(--us-duration-fast) var(--us-ease),
		color var(--us-duration-fast) var(--us-ease);
}

.us-chip:hover {
	border-color: var(--us-accent);
	color: var(--us-heading);
}

.us-chip.is-active,
.us-chip.is-active:hover {
	background: var(--us-accent);
	border-color: var(--us-accent);
	color: var(--us-on-accent);
}

.us-chip--size {
	min-width: var(--us-tap);
	justify-content: center;
	padding: 0 14px;
}

.us-swatch {
	flex: none;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--us-swatch);
	box-shadow: 0 0 0 1.5px var(--us-field-border);
}

/* Two columns: filter | products */
.us-shop-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--us-space-8);
	align-items: start;
}

.us-shop-layout > *,
.us-shop-main {
	min-width: 0;
}

@media (min-width: 1024px) {
	.us-shop-layout {
		grid-template-columns: 240px minmax(0, 1fr);
		gap: var(--us-space-12);
	}
}

/* The filter panel */
.us-filters {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	color: var(--us-text);
}

.us-filters__head {
	display: flex;
	align-items: center;
	gap: var(--us-space-3);
	padding-bottom: var(--us-space-4);
	border-bottom: 1px solid var(--us-border);
}

.us-filters__title {
	margin: 0;
	margin-right: auto;
	font-size: var(--us-text-h3);
	text-transform: uppercase;
}

.us-filters__clear {
	display: inline-flex;
	align-items: center;
	min-height: var(--us-tap);
	color: var(--us-link);
	font-size: var(--us-text-small);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.us-filters__close {
	display: none;
	place-items: center;
	width: var(--us-tap);
	height: var(--us-tap);
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--us-heading);
	cursor: pointer;
}

.us-filters__close:hover {
	background: var(--us-line);
	color: var(--us-heading);
}

.us-filters__body {
	display: grid;
	align-content: start;
	gap: 0;
}

.us-filters__group {
	display: grid;
	gap: var(--us-space-3);
	padding: var(--us-space-6) 0;
	border-bottom: 1px solid var(--us-border);
}

.us-filters__group:last-child {
	border-bottom: 0;
}

.us-filter__label {
	margin: 0;
	color: var(--us-muted);
	font-family: var(--us-font-label);
	font-weight: 600;
	font-size: var(--us-text-label);
	letter-spacing: var(--us-tracking-label);
	line-height: 1.2;
	text-transform: uppercase;
}

.us-filter__options {
	display: flex;
	flex-wrap: wrap;
	gap: var(--us-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.us-filter__options li {
	margin: 0;
}

/* Category: a plain list of links; the current one is yellow */
.us-filters__cats {
	display: grid;
	margin: 0 0 0 calc(var(--us-space-3) * -1);
	padding: 0;
	list-style: none;
}

.us-filters__cats li {
	margin: 0;
}

.us-filters__cats a {
	display: flex;
	align-items: center;
	min-height: 40px;
	padding: 0 var(--us-space-3);
	border-radius: var(--us-radius-sm);
	color: var(--us-text);
	font-weight: 600;
	font-size: var(--us-text-small);
	text-decoration: none;
}

.us-filters__cats a:hover {
	background: var(--us-surface);
	color: var(--us-heading);
}

.us-filters__cats a.is-active {
	color: var(--us-accent);
}

.us-filters__cats a.is-active::before {
	content: "";
	width: 6px;
	height: 6px;
	margin-right: var(--us-space-2);
	border-radius: 50%;
	background: currentColor;
}

/* "Show results" only appears in the drawer */
.us-filters__foot {
	display: none;
}

/* Desktop: the panel stays in view while the grid scrolls */
@media (min-width: 1024px) {
	.us-filters {
		position: sticky;
		top: var(--us-space-6);
		max-height: calc(100vh - var(--us-space-12));
		overflow-y: auto;
		scrollbar-width: thin;
	}
	.admin-bar .us-filters {
		top: calc(32px + var(--us-space-6));
		max-height: calc(100vh - 32px - var(--us-space-12));
	}
}

/* Phones and tablets: a drawer from the left */
@media (max-width: 1023px) {
	.us-filters {
		position: fixed;
		z-index: 1000;
		inset: 0 auto 0 0;
		width: min(380px, 88vw);
		padding: var(--us-space-4) var(--us-gutter) 0;
		background: var(--us-night);
		box-shadow: 16px 0 48px rgb(0 0 0 / 0.5);
		visibility: hidden;
		transform: translateX(-100%);
		transition: transform var(--us-duration-base) var(--us-ease), visibility 0s linear var(--us-duration-base);
	}

	/* Logged-in admins: start below the WordPress toolbar */
	.admin-bar .us-filters {
		top: 46px;
	}

	.us-filters.is-open {
		visibility: visible;
		transform: none;
		transition: transform var(--us-duration-base) var(--us-ease);
	}

	.us-filters__close {
		display: grid;
	}

	.us-filters__body {
		flex: 1;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.us-filters__foot {
		display: block;
		margin: 0 calc(var(--us-gutter) * -1);
		padding: var(--us-space-4) var(--us-gutter) calc(var(--us-space-4) + env(safe-area-inset-bottom));
		border-top: 1px solid var(--us-border);
		background: var(--us-night);
	}

	.us-filters__apply.button {
		justify-content: center;
		width: 100%;
	}

	/* The category list is already the chip row above the grid */
	.us-filters__group--cats {
		display: none;
	}

	/* Collections show Type chips instead, so the drawer lists categories */
	.us-shop-layout--collection .us-filters__group--cats {
		display: grid;
	}
}

.us-filters-backdrop {
	position: fixed;
	z-index: 999;
	inset: 0;
	background: rgb(0 0 0 / 0.62);
}

@media (min-width: 783px) and (max-width: 1023px) {
	.admin-bar .us-filters {
		top: 32px;
	}
}

.us-filters-backdrop[hidden] {
	display: none;
}

html.us-drawer-open {
	overflow: hidden;
}

/* Toolbar above the grid: (Filter) · count · sort */
.us-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--us-space-3) var(--us-space-4);
	margin-bottom: var(--us-space-6);
}

.us-shop-toolbar .woocommerce-result-count {
	margin: 0 auto 0 0;
	color: var(--us-muted);
	font-size: var(--us-text-small);
}

.us-filter-toggle {
	display: inline-flex;
	align-items: center;
	gap: var(--us-space-2);
	min-height: var(--us-tap);
	padding: 0 18px;
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius-pill);
	background: transparent;
	color: var(--us-heading);
	font-family: var(--us-font-body);
	font-weight: 600;
	font-size: var(--us-text-small);
	line-height: 1;
	cursor: pointer;
}

.us-filter-toggle:hover,
.us-filter-toggle:focus-visible {
	border-color: var(--us-accent);
	background: transparent;
	color: var(--us-heading);
}

@media (min-width: 1024px) {
	.us-filter-toggle {
		display: none;
	}
}

/* Phones: Filter and Sort side by side, count underneath */
@media (max-width: 599px) {
	.us-shop-toolbar {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
	}
	.us-shop-toolbar .woocommerce-ordering {
		justify-self: end;
		max-width: 100%;
	}
	.us-shop-toolbar .woocommerce-ordering select.orderby {
		max-width: 100%;
	}
	.us-shop-toolbar .woocommerce-result-count {
		grid-column: 1 / -1;
		order: 3;
	}
}

.us-filter__count {
	display: inline-grid;
	place-items: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: var(--us-radius-pill);
	background: var(--us-accent);
	color: var(--us-on-accent);
	font-size: 0.75rem;
}

/* Sort menu */
.us-shop-toolbar .woocommerce-ordering {
	margin: 0;
}

.us-shop-toolbar .woocommerce-ordering select.orderby {
	min-height: var(--us-tap);
	padding: 0 44px 0 18px;
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius-pill);
	background-color: var(--us-field-bg);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%239BA1AB' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	color: var(--us-field-fg);
	font-family: var(--us-font-body);
	font-weight: 600;
	font-size: var(--us-text-small);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

/* Active filters: removable pills */
.us-active-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--us-space-2) var(--us-space-3);
	margin-bottom: var(--us-space-6);
}

.us-pill {
	display: inline-flex;
	align-items: center;
	gap: var(--us-space-2);
	min-height: 36px;
	padding: 0 14px;
	border-radius: var(--us-radius-pill);
	background: var(--us-surface);
	color: var(--us-heading);
	font-size: var(--us-text-small);
	font-weight: 600;
	text-decoration: none;
}

.us-pill:hover {
	background: var(--us-accent);
	color: var(--us-on-accent);
}

.us-active-filters__clear {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	color: var(--us-link);
	font-size: var(--us-text-small);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* ========== 6. Pagination ========== */

.woocommerce nav.woocommerce-pagination {
	margin-top: var(--us-space-12);
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--us-space-2);
	margin: 0;
	padding: 0;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li {
	float: none;
	border: 0;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: var(--us-tap);
	min-height: var(--us-tap);
	padding: 0 12px;
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius-pill);
	background: transparent;
	color: var(--us-heading);
	font-weight: 600;
	line-height: 1;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover {
	border-color: var(--us-accent);
	background: transparent;
	color: var(--us-heading);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li span.current {
	border-color: var(--us-accent);
	background: var(--us-accent);
	color: var(--us-on-accent);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li span.dots {
	border-color: transparent;
}

/* ========== 7. Nothing found ========== */

.us-empty {
	display: grid;
	gap: var(--us-space-3);
	justify-items: start;
	max-width: 640px;
	padding: clamp(1.5rem, 1rem + 3vw, 3rem);
	border: 1px dashed var(--us-field-border);
	border-radius: var(--us-radius);
}

.us-empty > * {
	margin: 0;
}

.us-empty__title {
	font-size: var(--us-text-h2);
	text-transform: uppercase;
}

.us-empty__actions {
	margin-top: var(--us-space-3);
}

/* ========== 8. Size and Color chips ========== */
/* Used in the quick-add sheet and on the product page. Each chip is a
   real radio button (hidden, but focusable) with a styled face. */

.us-options {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.us-options__label {
	display: flex;
	gap: var(--us-space-2);
	margin: 0 0 var(--us-space-3);
	padding: 0;
	color: var(--us-muted);
	font-family: var(--us-font-label);
	font-weight: 600;
	font-size: var(--us-text-label);
	letter-spacing: var(--us-tracking-label);
	text-transform: uppercase;
}

.us-options__chosen {
	color: var(--us-heading);
}

.us-options__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--us-space-2);
}

.us-options__list[hidden] {
	display: none;
}

.us-option-chip {
	position: relative;
	margin: 0;
	cursor: pointer;
}

.us-option-chip input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.us-option-chip__face {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--us-space-2);
	min-width: var(--us-tap);
	min-height: var(--us-tap);
	padding: 0 14px;
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius-pill);
	color: var(--us-heading);
	font-family: var(--us-font-body);
	font-weight: 600;
	font-size: var(--us-text-small);
	line-height: 1;
	white-space: nowrap;
	transition: background-color var(--us-duration-fast) var(--us-ease),
		border-color var(--us-duration-fast) var(--us-ease),
		color var(--us-duration-fast) var(--us-ease);
}

.us-option-chip--swatch .us-option-chip__face {
	padding: 0 16px 0 12px;
}

.us-option-chip:hover .us-option-chip__face {
	border-color: var(--us-accent);
}

.us-option-chip input:checked + .us-option-chip__face {
	background: var(--us-accent);
	border-color: var(--us-accent);
	color: var(--us-on-accent);
}

.us-option-chip input:focus-visible + .us-option-chip__face {
	outline: 2px solid var(--us-focus);
	outline-offset: 2px;
}

/* Not available with what's picked: struck through and greyed out */
.us-option-chip.is-unavailable {
	cursor: not-allowed;
}

.us-option-chip.is-unavailable input {
	cursor: not-allowed;
}

.us-option-chip.is-unavailable .us-option-chip__face {
	border-style: dashed;
	color: var(--us-muted);
	text-decoration: line-through;
}

.us-option-chip.is-unavailable:hover .us-option-chip__face {
	border-color: var(--us-field-border);
}

/* Product page: hide WooCommerce's dropdown once the chips are on */
.variations_form.us-chips-on .us-variation-select {
	display: none;
}

.variations_form .variations td.value .us-options__list {
	margin-bottom: var(--us-space-2);
}

/* ========== 9. Quick-add sheet (and other pop-ups) ========== */
/* A native <dialog>: slides up from the bottom on phones, a centered box
   on larger screens. Filled in by assets/js/cards.js. The size guide
   (.us-dialog, inc/product-page.php) shares the same frame. */

html:has(.us-quick-add[open]),
html:has(.us-dialog[open]) {
	overflow: hidden;
}

.us-quick-add,
.us-dialog {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	max-height: min(88vh, 720px);
	margin: auto 0 0;
	padding: var(--us-space-6) var(--us-gutter) calc(var(--us-space-6) + env(safe-area-inset-bottom));
	overflow-y: auto;
	border: 1px solid var(--us-border);
	border-bottom: 0;
	border-radius: 18px 18px 0 0;
	background: var(--us-asphalt);
	color: var(--us-text);
	box-shadow: 0 -16px 48px rgb(0 0 0 / 0.5);
}

.us-quick-add::backdrop,
.us-dialog::backdrop {
	background: rgb(0 0 0 / 0.62);
}

.us-quick-add[open],
.us-dialog[open] {
	animation: us-sheet-up var(--us-duration-base) var(--us-ease);
}

@keyframes us-sheet-up {
	from {
		transform: translateY(24px);
		opacity: 0;
	}
}

@media (min-width: 600px) {
	.us-quick-add,
	.us-dialog {
		width: min(460px, calc(100vw - 2 * var(--us-gutter)));
		margin: auto;
		padding: var(--us-space-8);
		border-bottom: 1px solid var(--us-border);
		border-radius: var(--us-radius);
	}
}

.us-quick-add__close,
.us-dialog__close {
	position: absolute;
	top: var(--us-space-3);
	right: var(--us-space-3);
	display: grid;
	place-items: center;
	width: var(--us-tap);
	height: var(--us-tap);
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--us-heading);
	cursor: pointer;
}

.us-quick-add__close:hover,
.us-dialog__close:hover {
	background: var(--us-line);
	color: var(--us-heading);
}

.us-quick-add__head {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: var(--us-space-4);
	align-items: center;
	margin-bottom: var(--us-space-6);
	padding-right: var(--us-space-12);
}

.us-quick-add__img {
	display: block;
	width: 72px;
	height: 90px;
	border-radius: var(--us-radius-sm);
	background: var(--us-night);
	object-fit: cover;
}

.us-quick-add__img[hidden] {
	visibility: hidden;
}

.us-quick-add__title {
	margin: 0 0 var(--us-space-1);
	color: var(--us-heading);
	font-family: var(--us-font-body);
	font-weight: 600;
	font-size: 1.0625rem;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
}

.us-quick-add .us-quick-add__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 var(--us-space-2);
	margin: 0;
	color: var(--us-price);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.us-quick-add .us-quick-add__price ins {
	order: -1;
	text-decoration: none;
}

.us-quick-add .us-quick-add__price del {
	color: var(--us-muted);
	font-size: var(--us-text-small);
	font-weight: 400;
}

.us-quick-add__form,
.us-quick-add__options {
	display: grid;
	gap: var(--us-space-6);
}

.us-quick-add__form[hidden] {
	display: none;
}

.us-quick-add__guide {
	margin: calc(var(--us-space-2) * -1) 0 0;
	font-size: var(--us-text-small);
}

.us-quick-add__guide a,
.us-quick-add__details {
	color: var(--us-link);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.us-quick-add__status {
	margin: 0;
	color: var(--us-text);
	font-size: var(--us-text-small);
}

.us-quick-add__status:empty {
	display: none;
}

.us-quick-add__status a {
	color: var(--us-link);
}

.us-quick-add__submit.button {
	width: 100%;
	min-height: 52px;
}

.us-quick-add__submit.button:disabled {
	background: var(--us-line);
	border-color: var(--us-line);
	color: var(--us-muted);
	opacity: 1;
	cursor: not-allowed;
}

.us-quick-add__details {
	justify-self: center;
	display: inline-flex;
	align-items: center;
	min-height: var(--us-tap);
	font-size: var(--us-text-small);
}

.us-quick-add__done {
	display: grid;
	gap: var(--us-space-3);
}

.us-quick-add__done[hidden] {
	display: none;
}

.us-quick-add__done-title {
	display: flex;
	align-items: center;
	gap: var(--us-space-2);
	margin: 0;
	color: var(--us-heading);
	font-family: var(--us-font-display);
	font-weight: 800;
	font-size: var(--us-text-h3);
	text-transform: uppercase;
	outline: none;
}

.us-quick-add__done-title svg {
	color: var(--us-accent);
}

.us-quick-add__done-choice {
	margin: 0;
	color: var(--us-text);
}

.us-quick-add__done-actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--us-space-3);
	margin-top: var(--us-space-3);
}

.us-quick-add__done-actions .button,
.us-quick-add__keep {
	justify-content: center;
	min-height: 48px;
}

.us-quick-add__keep {
	display: inline-flex;
	align-items: center;
	padding: 0 18px;
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius-pill);
	background: transparent;
	color: var(--us-heading);
	font-family: var(--us-font-body);
	font-weight: 600;
	font-size: var(--us-text-small);
	cursor: pointer;
}

.us-quick-add__keep:hover {
	border-color: var(--us-accent);
	background: transparent;
	color: var(--us-heading);
}

/* ========== 10. Swipe rail ========== */
/* Markup: [urbanstory_rail] (inc/patterns.php). Phones and tablets: one
   row you swipe, with the next card peeking in so it's clear the row
   scrolls, ending in a "Shop all" tile. 922px+: the usual grid, first 4. */

.us-rail__more {
	display: none;
}

/* Rail cards show one photo; this keeps a swipe on the photo moving the row */
.us-rail .us-card-slides {
	overflow: hidden;
	overscroll-behavior: auto;
}

@media (max-width: 921px) {
	.us-rail .woocommerce ul.products:not(.elementor-grid) {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 44%;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--us-edge);
		margin-inline: calc(var(--us-edge) * -1);
		padding: 2px var(--us-edge) var(--us-space-2); /* room for the hover ring */
		scrollbar-width: none;
	}

	/* Homepage sections have their own (wider) side margin */
	.us-section .us-rail .woocommerce ul.products:not(.elementor-grid) {
		scroll-padding-inline: var(--us-gutter);
		margin-inline: calc(var(--us-gutter) * -1);
		padding-inline: var(--us-gutter);
	}

	.us-rail ul.products::-webkit-scrollbar {
		display: none;
	}

	.us-rail ul.products > li {
		scroll-snap-align: start;
	}

	.us-rail__more {
		display: block;
	}
}

@media (min-width: 600px) and (max-width: 921px) {
	.us-rail .woocommerce ul.products:not(.elementor-grid) {
		grid-auto-columns: 30%;
	}
}

@media (min-width: 922px) {
	.us-rail ul.products > li.product:nth-of-type(n+5) {
		display: none;
	}
}

.us-rail .us-rail__more a {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: var(--us-space-2);
	box-sizing: border-box;
	aspect-ratio: 4 / 5;
	padding: var(--us-space-4);
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius);
	background-color: var(--us-surface);
	background-image: radial-gradient(var(--us-halftone) 1.4px, transparent 1.5px);
	background-size: 14px 14px;
	color: var(--us-heading);
	text-decoration: none;
}

.us-rail .us-rail__more a:hover {
	border-color: var(--us-accent);
	color: var(--us-heading);
}

.us-rail__more-count {
	font-family: var(--us-font-display);
	font-size: var(--us-text-h3);
	line-height: 1.15;
	text-transform: uppercase;
}

.us-rail__more-cta {
	color: var(--us-link);
	font-weight: 600;
	font-size: var(--us-text-small);
}

/* ==========================================================================
   Product page and cart (Phase 4). Markup: inc/product-page.php,
   inc/cart.php; behaviour: assets/js/product-page.js, assets/js/cart.js.
   ========================================================================== */

/* ========== 11. Product page ========== */

/* Layout: photos left, details right (details stay in view on desktop) */
@media (min-width: 922px) {
	.single-product div.product {
		display: grid;
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
		column-gap: var(--us-space-12);
		align-items: start;
	}

	.single-product div.product > * {
		grid-column: 1 / -1;
	}

	/* Beats Astra's 50% / 46% column widths (which include #content) */
	.woocommerce.single-product #content div.product div.images,
	.woocommerce.single-product #content div.product div.summary,
	.woocommerce.single-product #content .ast-woocommerce-container div.product div.images,
	.woocommerce.single-product #content .ast-woocommerce-container div.product div.summary {
		float: none;
		width: auto;
		margin: 0;
	}

	.single-product div.product > .woocommerce-product-gallery {
		grid-column: 1;
	}

	.single-product div.product > .summary {
		grid-column: 2;
		position: sticky;
		top: var(--us-space-6);
	}

	.admin-bar.single-product div.product > .summary {
		top: calc(32px + var(--us-space-6));
	}
}

/* Gallery: 4:5 photo, 4:5 thumbnails, arrows */
.single-product .woocommerce-product-gallery {
	position: relative;
	container-type: inline-size; /* lets the arrows find the photo's middle */
	margin-bottom: var(--us-space-8);
}

.single-product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
	min-height: 125cqw; /* 4:5 of the gallery width */
}

/* Before the slider starts, WooCommerce shows the extra photos as small
   images under the main one, then turns them into the thumbnail row: the
   area grows, then shrinks. Hide them until then and keep the thumbnail
   row's exact height free instead (5 columns, 8px gaps, 4:5, 12px above). */
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:nth-child(n+2) {
	display: none;
}

.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
	height: 125cqw;
	margin: 0;
	overflow: hidden;
}

.woocommerce.single-product div.product div.images .flex-viewport {
	max-height: 125cqw; /* photos are 4:5; stops a brief stacked flash while the slider starts */
	margin-bottom: 0;
}

.single-product .woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(2)) > .woocommerce-product-gallery__wrapper {
	margin-bottom: calc(var(--us-space-3) + (100cqw - 4px - 4 * var(--us-space-2)) / 5 * 1.25 + 4px);
}

.single-product .woocommerce-product-gallery .flex-viewport {
	overflow: hidden;
	border-radius: var(--us-radius);
	background: var(--us-surface);
}

.single-product .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.woocommerce.single-product div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: var(--us-space-2);
	margin: var(--us-space-3) 0 0;
	padding: 2px;
}

.woocommerce.single-product div.product div.images .flex-control-thumbs li {
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce.single-product div.product div.images .flex-control-thumbs li img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--us-radius-sm);
	opacity: 0.55;
	transition: opacity var(--us-duration-fast) var(--us-ease);
}

.woocommerce.single-product div.product div.images .flex-control-thumbs li img:hover,
.woocommerce.single-product div.product div.images .flex-control-thumbs li img.flex-active {
	opacity: 1;
}

.woocommerce.single-product div.product div.images .flex-control-thumbs li img.flex-active {
	outline: 2px solid var(--us-accent);
	outline-offset: 2px;
}

/* Arrows: dark circles over the photo; the text stays for screen readers */
.single-product .flex-direction-nav {
	margin: 0;
	padding: 0;
	list-style: none;
}

.single-product .flex-direction-nav a {
	position: absolute;
	z-index: 3;
	top: calc(62.5cqw - 22px); /* middle of the 4:5 photo */
	display: block;
	width: 44px;
	height: 44px;
	overflow: hidden;
	border-radius: 50%;
	background: rgb(17 19 23 / 0.78);
	color: var(--us-headlight);
	white-space: nowrap;
	text-indent: 200%;
}

.single-product .flex-direction-nav a::after {
	content: "";
	position: absolute;
	inset: 0;
	width: 10px;
	height: 10px;
	margin: auto;
	border-top: 2.5px solid currentColor;
	border-right: 2.5px solid currentColor;
	transform: translateX(-2px) rotate(45deg);
}

.single-product .flex-direction-nav .flex-prev {
	left: var(--us-space-3);
}

.single-product .flex-direction-nav .flex-prev::after {
	transform: translateX(2px) rotate(-135deg);
}

.single-product .flex-direction-nav .flex-next {
	right: var(--us-space-3);
}

.single-product .flex-direction-nav a:hover {
	background: var(--us-night);
	color: var(--us-yellow);
}

.single-product .flex-direction-nav .flex-disabled {
	display: none;
}

.woocommerce.single-product div.product div.images .woocommerce-product-gallery__trigger {
	width: 44px;
	height: 44px;
}

/* Details column */
.single-product .summary .woocommerce-breadcrumb {
	margin-bottom: var(--us-space-4);
}

.us-product-collection {
	display: flex;
	align-items: center;
	gap: var(--us-space-3);
	margin: 0 0 var(--us-space-2);
	font-family: var(--us-font-label);
	font-weight: 600;
	font-size: var(--us-text-label);
	letter-spacing: var(--us-tracking-label);
	line-height: 1.2;
	text-transform: uppercase;
}

.us-product-collection::before {
	content: "";
	flex: none;
	width: 28px;
	height: 4px;
	border-radius: 2px;
	background: var(--us-collection, var(--us-accent));
}

.us-product-collection a {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	color: var(--us-muted);
	text-decoration: none;
}

.us-product-collection a:hover {
	color: var(--us-heading);
}

.single-product .summary .product_title {
	margin: 0 0 var(--us-space-3);
	font-size: var(--us-text-h1);
	line-height: 1.1;
	text-transform: uppercase;
}

.single-product .summary .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: var(--us-space-2);
	margin-bottom: var(--us-space-3);
}

.single-product .summary .star-rating,
.single-product .summary .star-rating span::before {
	color: var(--us-yellow);
}

.single-product .summary .woocommerce-review-link {
	color: var(--us-text);
	font-size: var(--us-text-small);
}

/* Price + "−20%" pill */
.us-price-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--us-space-2) var(--us-space-3);
	margin-bottom: var(--us-space-4);
}

.woocommerce.single-product div.product .us-price-row p.price {
	display: flex;
	flex-direction: row-reverse;
	align-items: baseline;
	gap: var(--us-space-3);
	margin: 0;
	color: var(--us-price);
	font-family: var(--us-font-display);
	font-weight: 700;
	font-size: 1.625rem;
	line-height: 1.2;
}

.woocommerce.single-product div.product .us-price-row p.price ins {
	text-decoration: none;
}

.woocommerce.single-product div.product .us-price-row p.price del {
	color: var(--us-muted);
	font-family: var(--us-font-body);
	font-weight: 500;
	font-size: 1rem;
	opacity: 1;
}

.us-price-pill {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 0 10px;
	border-radius: var(--us-radius-pill);
	background: var(--us-yellow);
	color: var(--us-ink);
	font-family: var(--us-font-label);
	font-weight: 600;
	font-size: 0.875rem;
	line-height: 1;
}

.single-product .summary .woocommerce-product-details__short-description {
	margin-bottom: var(--us-space-6);
	color: var(--us-text);
}

.single-product .summary .woocommerce-product-details__short-description p:last-child {
	margin-bottom: 0;
}

/* Size and Color rows: label line ("Size: M" … Size guide), then chips */
.woocommerce.single-product div.product form.cart .variations {
	display: block;
	margin: 0 0 var(--us-space-2);
	border: 0;
}

.woocommerce.single-product div.product form.cart .variations tbody,
.woocommerce.single-product div.product form.cart .variations tr {
	display: block;
}

.woocommerce.single-product div.product form.cart .variations tr {
	margin-bottom: var(--us-space-4);
}

.woocommerce.single-product div.product form.cart .variations th,
.woocommerce.single-product div.product form.cart .variations td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	line-height: 1.4;
}

.woocommerce.single-product div.product form.cart .variations th.label {
	display: flex;
	align-items: center;
	gap: var(--us-space-3);
	margin-bottom: var(--us-space-2);
}

.woocommerce.single-product div.product form.cart .variations th.label label {
	margin: 0;
	color: var(--us-muted);
	font-family: var(--us-font-label);
	font-weight: 600;
	font-size: var(--us-text-label);
	letter-spacing: var(--us-tracking-label);
	text-transform: uppercase;
}

.us-chosen {
	color: var(--us-heading);
}

.us-size-guide-link {
	display: inline-flex;
	align-items: center;
	min-height: var(--us-tap);
	margin-left: auto;
	color: var(--us-link);
	font-family: var(--us-font-body);
	font-size: var(--us-text-small);
	font-weight: 600;
	letter-spacing: 0;
	text-decoration: underline;
	text-transform: none;
	text-underline-offset: 0.2em;
}

.woocommerce.single-product div.product form.cart .reset_variations {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	margin: 0;
	color: var(--us-muted);
	font-size: var(--us-text-small);
	text-decoration: underline;
}

.single-product .single_variation_wrap .woocommerce-variation-price .price {
	margin-bottom: var(--us-space-3);
	color: var(--us-price);
	font-weight: 700;
}

.single-product .woocommerce-variation-availability p.stock {
	margin: 0 0 var(--us-space-3);
	color: var(--us-text);
	font-size: var(--us-text-small);
}

/* Add to cart: full width; no quantity box */
.woocommerce.single-product div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce.single-product div.product form.cart:not(.variations_form) {
	display: block;
}

.woocommerce.single-product div.product form.cart .single_add_to_cart_button {
	float: none;
	width: 100%;
	min-height: 54px;
	margin: 0;
	font-size: 1.0625rem;
}

/* Until a size and color are picked: readable, clearly not ready */
.woocommerce.single-product div.product form.cart .single_add_to_cart_button.disabled {
	opacity: 1;
	border: 1.5px solid var(--us-field-border);
	background: transparent;
	color: var(--us-text);
	cursor: pointer;
}

.woocommerce.single-product div.product form.cart .single_add_to_cart_button.loading {
	opacity: 0.85;
}

.us-buy-status {
	min-height: 1.5em;
	margin: var(--us-space-3) 0 0;
	color: var(--us-text);
	font-size: var(--us-text-small);
	font-weight: 600;
}

.us-buy-status:empty {
	min-height: 0;
	margin-top: 0;
}

.us-buy-status.is-error {
	color: var(--us-error);
}

.us-buy-status a {
	color: var(--us-link);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Accordions (Description, Details, Reviews) */
.us-accordions {
	margin-top: var(--us-space-8);
	border-top: 1px solid var(--us-border);
}

.us-accordion {
	border-bottom: 1px solid var(--us-border);
}

.us-accordion__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--us-space-4);
	min-height: 56px;
	color: var(--us-heading);
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

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

/* Plus that turns into a minus */
.us-accordion__title::after {
	content: "";
	flex: none;
	width: 14px;
	height: 14px;
	background:
		linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat,
		linear-gradient(currentColor, currentColor) center / 2px 14px no-repeat;
}

.us-accordion[open] > .us-accordion__title::after {
	background: linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat;
}

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

.us-accordion__panel {
	padding-bottom: var(--us-space-6);
	color: var(--us-text);
}

.us-accordion__panel > :first-child {
	margin-top: 0;
}

.us-accordion__panel > :last-child,
.us-accordion__panel p:last-child {
	margin-bottom: 0;
}

/* Details table (Size, Color …) */
.us-accordion__panel .woocommerce-product-attributes {
	margin: 0;
	border: 0;
}

.us-accordion__panel .woocommerce-product-attributes th,
.us-accordion__panel .woocommerce-product-attributes td {
	padding: var(--us-space-2) 0;
	border: 0;
	border-bottom: 1px solid var(--us-border);
	background: none;
	color: var(--us-text);
	font-style: normal;
	text-align: left;
}

.us-accordion__panel .woocommerce-product-attributes th {
	width: 35%;
	color: var(--us-muted);
	font-weight: 600;
}

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

/* Reviews */
.us-accordion__panel #reviews h2,
.us-accordion__panel #reviews .comment-reply-title {
	font-size: var(--us-text-h3);
}

.us-accordion__panel #reviews .woocommerce-noreviews {
	margin-bottom: var(--us-space-4);
}

.single-product #review_form .stars a {
	color: var(--us-yellow);
}

/* "You might also like": swipe row on phones and tablets, 4 across on desktop */
.single-product section.related {
	margin-top: var(--us-space-16);
	padding-top: var(--us-space-12);
	border-top: 1px solid var(--us-border);
}

.single-product section.related > h2 {
	margin-bottom: var(--us-space-6);
	font-size: var(--us-text-h1);
	text-transform: uppercase;
}

.single-product .related .us-card-slides {
	overflow: hidden;
	overscroll-behavior: auto;
}

@media (max-width: 921px) {
	.woocommerce.single-product .related ul.products:not(.elementor-grid) {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 44%;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--us-edge);
		margin-inline: calc(var(--us-edge) * -1);
		padding: 2px var(--us-edge) var(--us-space-2);
		scrollbar-width: none;
	}

	.single-product .related ul.products::-webkit-scrollbar {
		display: none;
	}

	.single-product .related ul.products > li {
		scroll-snap-align: start;
	}
}

@media (min-width: 600px) and (max-width: 921px) {
	.woocommerce.single-product .related ul.products:not(.elementor-grid) {
		grid-auto-columns: 30%;
	}
}

/* Sticky Add to cart bar (phones and tablets) */
.us-buybar {
	position: fixed;
	z-index: 90;
	right: 0;
	bottom: 0;
	left: 0;
	padding: var(--us-space-3) var(--us-gutter) calc(var(--us-space-3) + env(safe-area-inset-bottom));
	border-top: 1px solid var(--us-border);
	background: var(--us-night);
	box-shadow: 0 -12px 32px rgb(0 0 0 / 0.45);
}

.us-buybar[hidden] {
	display: none;
}

.us-buybar__inner {
	display: flex;
	align-items: center;
	gap: var(--us-space-3);
	max-width: 720px;
	margin: 0 auto;
}

.us-buybar__img {
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: var(--us-radius-sm);
	object-fit: cover;
}

.us-buybar .us-buybar__price {
	flex: 1;
	min-width: 0;
	margin: 0;
	color: var(--us-price);
	font-weight: 700;
	line-height: 1.2;
}

.us-buybar .us-buybar__price del {
	display: block;
	color: var(--us-muted);
	font-weight: 500;
	font-size: 0.8125rem;
}

.us-buybar .us-buybar__price ins {
	text-decoration: none;
}

.us-buybar .us-buybar__button {
	flex: none;
	min-height: 48px;
	padding: 0 var(--us-space-6);
}

@media (max-width: 921px) {
	/* Room under the footer for the bar; lift the back-to-top button */
	.single-product .site-footer {
		padding-bottom: 76px;
	}

	.single-product #ast-scroll-top {
		bottom: 88px;
	}
}

@media (min-width: 922px) {
	.us-buybar {
		display: none;
	}
}

/* Size guide pop-up (frame shared with the quick-add sheet, section 9) */
@media (min-width: 600px) {
	.us-size-guide {
		width: min(640px, calc(100vw - 2 * var(--us-gutter)));
	}
}

.us-dialog__head {
	margin-bottom: var(--us-space-4);
	padding-right: var(--us-space-12);
}

.us-dialog__title {
	margin: 0;
	font-size: var(--us-text-h2);
	text-transform: uppercase;
}

.us-dialog__body {
	color: var(--us-text);
}

.us-dialog__body > :last-child {
	margin-bottom: 0;
}

/* ========== 12. Cart page ========== */
/* Light content area (tokens remapped by .us-light). Products left;
   coupon box, then totals, on the right (sticky) from 922px. */

@media (min-width: 922px) {
	.woocommerce-cart .entry-content .woocommerce {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 360px;
		column-gap: var(--us-space-12);
		align-items: start;
	}

	.woocommerce-cart .entry-content .woocommerce > * {
		grid-column: 1 / -1;
	}

	.woocommerce-cart .entry-content .woocommerce > .woocommerce-cart-form {
		grid-column: 1;
	}

	.woocommerce-cart .entry-content .woocommerce > .cart-collaterals {
		grid-column: 2;
		position: sticky;
		top: var(--us-space-6);
	}

	.admin-bar.woocommerce-cart .entry-content .woocommerce > .cart-collaterals {
		top: calc(32px + var(--us-space-6));
	}
}

.woocommerce-cart .cart-collaterals {
	display: grid;
	gap: var(--us-space-4);
	width: 100%;
}

.woocommerce-cart .cart-collaterals::before,
.woocommerce-cart .cart-collaterals::after {
	display: none;
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cart-collaterals .us-coupon {
	box-sizing: border-box;
	float: none;
	width: 100%;
	margin: 0;
	padding: var(--us-space-6);
	border: 1px solid var(--us-border);
	border-radius: var(--us-radius);
	background: var(--us-surface);
}

/* Coupon box */
.us-coupon__label {
	display: block;
	margin-bottom: var(--us-space-3);
	color: var(--us-heading);
	font-weight: 600;
}

.us-coupon__row {
	display: flex;
	gap: var(--us-space-2);
}

.us-coupon .us-coupon__row input.input-text {
	flex: 1;
	padding-inline: 18px;
	border-radius: var(--us-radius-pill);
	min-width: 0;
	min-height: 48px;
}

.us-coupon__row .button {
	flex: none;
	padding-inline: var(--us-space-6);
}

.us-coupon__status {
	margin: var(--us-space-2) 0 0;
	color: var(--us-error);
	font-size: var(--us-text-small);
	font-weight: 600;
}

.us-coupon__status:empty {
	display: none;
}

.us-coupon.is-busy {
	opacity: 0.6;
	pointer-events: none;
}

/* Totals */
.woocommerce-cart .cart-collaterals .cart_totals > h2 {
	margin: 0 0 var(--us-space-4);
	padding: 0;
	border: 0;
	background: none;
	font-size: var(--us-text-h3);
	text-transform: uppercase;
}

.woocommerce-cart .cart_totals table.shop_table {
	margin: 0;
	border: 0;
}

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
	padding: var(--us-space-3) 0;
	border: 0;
	border-bottom: 1px solid var(--us-border);
	background: none;
	color: var(--us-heading);
}

.woocommerce-cart .cart_totals table.shop_table td {
	text-align: right;
}

.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	border-bottom: 0;
	font-size: 1.125rem;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
	padding: var(--us-space-4) 0 0;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout .checkout-button {
	width: 100%;
	min-height: 54px;
	margin: 0;
	font-size: 1.0625rem;
}

/* Product list: each item a row (photo | name, price | qty | total, ×) */
.woocommerce-cart table.shop_table.cart {
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

.woocommerce-cart table.shop_table.cart thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.woocommerce-cart table.shop_table.cart tbody {
	display: block;
}

.woocommerce-cart table.shop_table.cart tr.cart_item {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) auto auto;
	grid-template-areas:
		"thumb name name remove"
		"thumb price qty total";
	gap: var(--us-space-2) var(--us-space-4);
	align-items: center;
	padding: var(--us-space-4) 0;
	border-bottom: 1px solid var(--us-border);
}

.woocommerce-cart .woocommerce table.shop_table.cart tr.cart_item td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	text-align: left !important; /* WooCommerce's phone layout forces right with !important */
}

.woocommerce-cart .woocommerce table.shop_table.cart tr.cart_item td::before {
	display: none;
}

.woocommerce-cart table.cart td.product-thumbnail {
	grid-area: thumb;
	align-self: start;
}

.woocommerce-cart table.cart td.product-thumbnail img {
	display: block;
	width: 96px;
	max-width: none;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--us-radius-sm);
}

.woocommerce-cart table.cart td.product-name {
	grid-area: name;
	align-self: end;
	font-weight: 600;
}

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

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

.woocommerce-cart table.cart td.product-name dl.variation {
	margin: var(--us-space-1) 0 0;
	color: var(--us-muted);
	font-weight: 400;
	font-size: var(--us-text-small);
}

.woocommerce-cart table.cart td.product-name dl.variation dt,
.woocommerce-cart table.cart td.product-name dl.variation dd,
.woocommerce-cart table.cart td.product-name dl.variation p {
	display: inline;
	margin: 0;
	padding: 0;
}

.woocommerce-cart table.cart td.product-price {
	grid-area: price;
	color: var(--us-muted);
	font-size: var(--us-text-small);
}

.woocommerce-cart table.cart td.product-quantity {
	grid-area: qty;
}

.woocommerce-cart .woocommerce table.cart tr.cart_item td.product-subtotal {
	grid-area: total;
	min-width: 5.5em;
	color: var(--us-heading);
	font-weight: 700;
	text-align: right !important;
}

.woocommerce-cart table.cart td.product-remove {
	grid-area: remove;
	justify-self: end;
	align-self: start;
}

.woocommerce-cart table.cart td.product-remove a.remove {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: var(--us-muted) !important; /* WooCommerce sets a red !important */
	font-size: 1.5rem;
	line-height: 1;
}

.woocommerce-cart table.cart td.product-remove a.remove:hover {
	background: var(--us-surface);
	color: var(--us-heading) !important;
}

/* The "Update cart" row: hidden while cart.js updates by itself */
.us-cart-auto .woocommerce-cart-form tr:not(.cart_item) {
	display: none;
}

@media (max-width: 599px) {
	.woocommerce-cart table.shop_table.cart tr.cart_item {
		grid-template-columns: 72px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb name remove"
			"thumb price price"
			"thumb qty total";
		column-gap: var(--us-space-3);
	}

	.woocommerce-cart table.cart td.product-thumbnail img {
		width: 72px;
	}
}

/* − 1 + stepper */
.us-stepper.quantity {
	display: inline-flex;
	align-items: center;
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius-pill);
	background: var(--us-field-bg);
}

.us-stepper__btn {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--us-heading);
	cursor: pointer;
}

.us-stepper__btn:hover,
.us-stepper__btn:focus-visible {
	background: var(--us-surface);
	color: var(--us-heading);
}

.woocommerce .us-stepper.quantity input.qty {
	width: 2.5em;
	min-height: 40px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--us-heading);
	font-weight: 700;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.us-stepper input.qty::-webkit-inner-spin-button,
.us-stepper input.qty::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

/* Cross-sells: full width under the cart */
.woocommerce-cart .cross-sells {
	margin-top: var(--us-space-12);
}

.woocommerce-cart .cross-sells > h2 {
	font-size: var(--us-text-h2);
	text-transform: uppercase;
}

/* ========== 13. Messages and the header mini-cart ========== */
/* WooCommerce's notices ("added to your cart", errors) and the header cart
   dropdown: dark on dark pages; the light zone flips the tokens. */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--us-space-3) var(--us-space-4);
	margin: 0 0 var(--us-space-6);
	padding: var(--us-space-4) var(--us-space-6);
	border: 1px solid var(--us-border);
	border-left: 4px solid var(--us-accent);
	border-radius: var(--us-radius);
	background: var(--us-surface);
	color: var(--us-heading);
	list-style: none;
	outline: none;
}

.woocommerce-error {
	flex-direction: column;
	align-items: flex-start;
	border-left-color: var(--us-error);
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	display: none;
}

.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	float: none;
	min-height: 44px;
	margin-left: auto;
}

.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a:not(.button) {
	color: var(--us-link);
}

.woocommerce-error li {
	margin: 0;
}

/* Header cart dropdown */
.ast-site-header-cart .widget_shopping_cart {
	border: 1px solid var(--us-border);
	border-radius: var(--us-radius);
	background: var(--us-night);
	color: var(--us-text);
	box-shadow: 0 16px 40px rgb(0 0 0 / 0.5);
}

.ast-site-header-cart .widget_shopping_cart .woocommerce-mini-cart__total {
	border-color: var(--us-border);
	color: var(--us-text);
}

.ast-site-header-cart .widget_shopping_cart::before,
.ast-site-header-cart .widget_shopping_cart::after {
	border-bottom-color: var(--us-night);
}

.ast-site-header-cart .widget_shopping_cart .mini_cart_item a:not(.remove),
.ast-site-header-cart .widget_shopping_cart .woocommerce-mini-cart__total strong {
	color: var(--us-heading);
}

.ast-site-header-cart .widget_shopping_cart .mini_cart_item .quantity,
.ast-site-header-cart .widget_shopping_cart .variation {
	color: var(--us-muted);
}

.ast-site-header-cart .widget_shopping_cart .woocommerce-mini-cart__buttons {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--us-space-2);
}

.ast-site-header-cart .widget_shopping_cart .woocommerce-mini-cart__buttons .button {
	width: 100%;
	min-height: 44px;
	margin: 0;
}

.ast-site-header-cart .widget_shopping_cart .woocommerce-mini-cart__buttons .button:not(.checkout) {
	border: 1.5px solid var(--us-field-border);
	background: transparent;
	color: var(--us-heading);
}

.ast-site-header-cart .widget_shopping_cart .woocommerce-mini-cart__buttons .button:not(.checkout):hover {
	border-color: var(--us-accent);
	color: var(--us-heading);
}

/* ==========================================================================
   Checkout, account and empty cart (Phase 5). Markup: inc/checkout.php,
   inc/account.php, inc/cart.php. All inside the light content area.
   ========================================================================== */

/* ========== 14. Checkout ========== */

/* Form fields (checkout, account, address forms) */
.woocommerce form .form-row {
	margin: 0 0 var(--us-space-4);
	padding: 0;
}

.woocommerce form .form-row label {
	margin-bottom: var(--us-space-1);
	color: var(--us-heading);
	font-weight: 600;
	font-size: var(--us-text-small);
	line-height: 1.4;
}

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

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius-sm);
	background: var(--us-field-bg);
	color: var(--us-field-fg);
	font-size: 1rem;
	line-height: 1.4;
}

.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--us-focus);
	outline: 2px solid var(--us-focus);
	outline-offset: 1px;
}

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

.woocommerce form .form-row .description {
	margin-top: var(--us-space-1);
	color: var(--us-muted);
	font-size: 0.8125rem;
}

/* Dropdowns WooCommerce turns into search boxes (State) */
.woocommerce .select2-container .select2-selection--single {
	height: 48px;
	border: 1.5px solid var(--us-field-border);
	border-radius: var(--us-radius-sm);
	background: var(--us-field-bg);
}

.woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0 40px 0 14px;
	color: var(--us-field-fg);
	line-height: 45px;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	height: 45px;
	right: 8px;
}

/* Two columns: details left; coupon, summary, payment right */
@media (min-width: 922px) {
	.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 400px;
		column-gap: var(--us-space-12);
		align-items: start;
	}

	.woocommerce-checkout form.checkout > * {
		grid-column: 1 / -1;
	}

	.woocommerce-checkout form.checkout > #customer_details {
		grid-column: 1;
	}

	.woocommerce-checkout form.checkout > .us-checkout-side {
		grid-column: 2;
		position: sticky;
		top: var(--us-space-6);
	}

	.admin-bar.woocommerce-checkout form.checkout > .us-checkout-side {
		top: calc(32px + var(--us-space-6));
	}
}

.woocommerce-checkout #customer_details.col2-set {
	display: grid;
	gap: var(--us-space-4);
	width: 100%;
}

/* Astra gives these fixed widths (55% / 40%) and floats with ID selectors */
.woocommerce.woocommerce-checkout form #customer_details.col2-set,
.woocommerce-page.woocommerce-checkout form #customer_details.col2-set,
.woocommerce.woocommerce-checkout form #order_review,
.woocommerce.woocommerce-checkout form #order_review_heading,
.woocommerce-page.woocommerce-checkout form #order_review,
.woocommerce-page.woocommerce-checkout form #order_review_heading {
	float: none;
	width: auto;
}

/* …and draws its own box around "Your order" (needs two IDs to undo) */
.woocommerce-checkout form.checkout #order_review_heading#order_review_heading {
	margin: 0 0 calc(var(--us-space-4) * -1); /* joins the summary card below (cancels the column gap) */
	padding: var(--us-space-6) var(--us-space-6) 0;
	border: 1px solid var(--us-border);
	border-bottom: 0;
	border-radius: var(--us-radius) var(--us-radius) 0 0;
	background: var(--us-bg);
}

.woocommerce-checkout form.checkout #order_review#order_review {
	padding: var(--us-space-6);
	border: 1px solid var(--us-border);
	border-top: 0;
	border-radius: 0 0 var(--us-radius) var(--us-radius);
}

.woocommerce-checkout #customer_details.col2-set::before,
.woocommerce-checkout #customer_details.col2-set::after {
	display: none;
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
	float: none;
	width: 100%;
	margin: 0;
}

/* Sections as cards */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .us-checkout-side .us-coupon,
.woocommerce-checkout #order_review {
	box-sizing: border-box;
	padding: var(--us-space-6);
	border: 1px solid var(--us-border);
	border-radius: var(--us-radius);
	background: var(--us-bg);
}

.woocommerce-checkout .woocommerce-shipping-fields:not(:has(.shipping_address:not([style*="none"]))) {
	padding-block: var(--us-space-4);
}

.woocommerce-checkout .us-checkout-side {
	display: grid;
	gap: var(--us-space-4);
	margin-top: var(--us-space-6);
}

@media (min-width: 922px) {
	.woocommerce-checkout .us-checkout-side {
		margin-top: 0;
	}
}

.woocommerce-checkout .us-checkout-side .us-coupon {
	background: var(--us-surface);
}

.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-page.woocommerce-checkout form #customer_details h3,
.woocommerce-checkout #order_review_heading {
	margin: 0 0 var(--us-space-4);
	padding: 0;
	border: 0;
	font-size: var(--us-text-h3);
	text-transform: uppercase;
}

/* Country: India is the only choice (still sent with the form, just not shown) */
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #shipping_country_field {
	display: none !important; /* WooCommerce's address script shows it again inline */
}

/* Name fields side by side, everything else full width */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--us-space-4);
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row {
	grid-column: 1 / -1;
	float: none;
	width: auto;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first {
	grid-column: 1;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last {
	grid-column: 2;
}

/* "Deliver to a different address?" */
.woocommerce-checkout #ship-to-different-address {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--us-font-body);
	font-size: 1rem;
	text-transform: none;
}

.woocommerce-checkout #ship-to-different-address label {
	display: flex;
	align-items: center;
	gap: var(--us-space-2);
	min-height: var(--us-tap);
	margin: 0;
	font-weight: 600;
	cursor: pointer;
}

.woocommerce form .woocommerce-form__input-checkbox,
.woocommerce-checkout input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--us-heading);
}

/* MailPoet's "Email me when new designs drop." */
.woocommerce-checkout .woocommerce-billing-fields label.woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: center;
	gap: var(--us-space-2);
	min-height: var(--us-tap);
	margin: 0;
	color: var(--us-heading);
	font-size: var(--us-text-small);
	cursor: pointer;
}

.woocommerce-checkout #mailpoet_woocommerce_checkout_optin_present_field {
	display: none;
}

/* Order summary table */
.woocommerce-checkout #order_review table.shop_table {
	margin: 0 0 var(--us-space-4);
	border: 0;
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
	padding: var(--us-space-3) 0;
	border: 0;
	border-bottom: 1px solid var(--us-border);
	background: none;
	color: var(--us-heading);
	vertical-align: top;
}

.woocommerce-checkout #order_review table.shop_table thead {
	display: none;
}

.woocommerce-checkout #order_review table.shop_table td.product-total,
.woocommerce-checkout #order_review table.shop_table tfoot td {
	text-align: right;
	white-space: nowrap;
}

.woocommerce-checkout #order_review table.shop_table .product-name {
	font-weight: 600;
}

.woocommerce-checkout #order_review table.shop_table .product-name .variation,
.woocommerce-checkout #order_review table.shop_table .product-quantity {
	color: var(--us-muted);
	font-weight: 400;
	font-size: var(--us-text-small);
}

.woocommerce-checkout #order_review table.shop_table .product-name dl.variation dt,
.woocommerce-checkout #order_review table.shop_table .product-name dl.variation dd,
.woocommerce-checkout #order_review table.shop_table .product-name dl.variation p {
	display: inline;
	margin: 0;
	padding: 0;
}

.woocommerce-checkout #order_review table.shop_table tfoot .order-total th,
.woocommerce-checkout #order_review table.shop_table tfoot .order-total td {
	border-bottom: 0;
	font-size: 1.125rem;
}

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

.woocommerce-checkout #order_review ul#shipping_method li {
	margin: 0;
	text-indent: 0;
}

/* Payment: each method a selectable card */
.woocommerce-checkout #payment {
	border-radius: 0;
	background: none;
}

.woocommerce-checkout #payment ul.payment_methods {
	display: grid;
	gap: var(--us-space-2);
	margin: 0 0 var(--us-space-4);
	padding: 0;
	border: 0;
}

.woocommerce-checkout #payment ul.payment_methods::before,
.woocommerce-checkout #payment ul.payment_methods::after {
	display: none;
}

.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0;
	padding: var(--us-space-3) var(--us-space-4);
	border: 1.5px solid var(--us-border);
	border-radius: var(--us-radius-sm);
	line-height: 1.4;
}

.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) {
	border-color: var(--us-heading);
}

.woocommerce-checkout #payment ul.payment_methods li label {
	display: inline;
	color: var(--us-heading);
	font-weight: 600;
	cursor: pointer;
}

.woocommerce-checkout #payment ul.payment_methods li input {
	margin: 0 var(--us-space-2) 0 0;
	accent-color: var(--us-heading);
}

.woocommerce-page.woocommerce-checkout #payment div.payment_box,
.woocommerce.woocommerce-checkout #payment div.payment_box {
	margin: var(--us-space-2) 0 0;
	padding: 0;
	background: none;
	color: var(--us-muted);
	font-size: var(--us-text-small);
}

.woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

.woocommerce-checkout #payment div.form-row.place-order {
	margin: 0;
	padding: 0;
}

.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	color: var(--us-muted);
	font-size: var(--us-text-small);
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row {
	margin: var(--us-space-3) 0 var(--us-space-4);
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: center;
	gap: var(--us-space-2);
	color: var(--us-heading);
	font-weight: 600;
}

.woocommerce-checkout #payment #place_order {
	float: none;
	width: 100%;
	min-height: 54px;
	margin: 0;
	font-size: 1.0625rem;
}

/* "Returning customer? Log in" */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
	margin-bottom: var(--us-space-4);
}

.woocommerce-checkout form.woocommerce-form-login {
	margin: 0 0 var(--us-space-6);
	padding: var(--us-space-6);
	border: 1px solid var(--us-border);
	border-radius: var(--us-radius);
}

/* "Add ₹220 more for free delivery" (cart totals and checkout summary) */
.us-free-delivery {
	margin: 0 0 var(--us-space-4);
	padding: var(--us-space-3) var(--us-space-4);
	border-radius: var(--us-radius-sm);
	background: var(--us-surface);
}

.woocommerce-checkout #order_review table.shop_table tr.us-free-delivery-row td {
	padding: var(--us-space-3) 0 0;
	border-bottom: 0;
}

.woocommerce-checkout .us-free-delivery-row .us-free-delivery {
	margin: 0;
}

.us-free-delivery__text {
	margin: 0 0 var(--us-space-2);
	color: var(--us-heading);
	font-size: var(--us-text-small);
}

.us-free-delivery__bar {
	display: block;
	height: 6px;
	overflow: hidden;
	border-radius: 3px;
	background: var(--us-border);
}

.us-free-delivery__bar > span {
	display: block;
	height: 100%;
	border-radius: 3px;
	background: var(--us-yellow);
}

.us-free-delivery.is-done .us-free-delivery__bar > span {
	background: var(--us-heading);
}

/* Order received */
.woocommerce-order .woocommerce-thankyou-order-received {
	display: grid;
	gap: var(--us-space-2);
	margin: 0 0 var(--us-space-8);
	padding: var(--us-space-6);
	border-left: 4px solid var(--us-yellow);
	border-radius: var(--us-radius);
	background: var(--us-surface);
	color: var(--us-heading);
}

.us-thanks__title {
	font-family: var(--us-font-display);
	font-size: var(--us-text-h2);
	line-height: 1.15;
	text-transform: uppercase;
}

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

.woocommerce-order ul.woocommerce-order-overview::before,
.woocommerce-order ul.woocommerce-order-overview::after {
	display: none;
}

.woocommerce-order ul.woocommerce-order-overview li {
	float: none;
	margin: 0;
	padding: var(--us-space-4);
	border: 1px solid var(--us-border);
	border-radius: var(--us-radius-sm);
	color: var(--us-muted);
	font-size: 0.8125rem;
	text-transform: uppercase;
}

.woocommerce-order ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: var(--us-space-1);
	color: var(--us-heading);
	font-size: 1rem;
	text-transform: none;
}

.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details {
	margin-bottom: var(--us-space-8);
}

.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title {
	font-size: var(--us-text-h3);
	text-transform: uppercase;
}

.woocommerce-order address {
	padding: var(--us-space-4);
	border: 1px solid var(--us-border);
	border-radius: var(--us-radius-sm);
}

.us-thanks__actions {
	margin: 0;
}

/* Section titles: no grey Astra strip */
.woocommerce-page.woocommerce-checkout .woocommerce-order h2.woocommerce-column__title,
.woocommerce-page.woocommerce-checkout .woocommerce-order h2.woocommerce-order-details__title,
.woocommerce-account .woocommerce-order-details h2,
.woocommerce-account .woocommerce-customer-details h2 {
	margin: 0 0 var(--us-space-3);
	padding: 0;
	border: 0;
	background: none;
}

.woocommerce-order ul.woocommerce-order-overview li:last-child {
	border: 1px solid var(--us-border);
}

/* Order tables (order received + My account → View order) */
.woocommerce table.woocommerce-table--order-details {
	border: 0;
}

.woocommerce table.woocommerce-table--order-details th,
.woocommerce table.woocommerce-table--order-details td {
	padding: var(--us-space-3) 0;
	border: 0;
	border-bottom: 1px solid var(--us-border);
	background: none;
}

.woocommerce table.woocommerce-table--order-details td:last-child,
.woocommerce table.woocommerce-table--order-details tfoot td {
	text-align: right;
}

/* ========== 15. My account ========== */

/* Logged out: Log in and Create account side by side */
.woocommerce-account #customer_login.col2-set {
	display: grid;
	gap: var(--us-space-6);
	width: 100%;
}

.woocommerce-account #customer_login.col2-set::before,
.woocommerce-account #customer_login.col2-set::after {
	display: none;
}

@media (min-width: 768px) {
	.woocommerce-account #customer_login.col2-set {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 {
	float: none;
	width: auto;
	margin: 0;
	padding: var(--us-space-6);
	border: 1px solid var(--us-border);
	border-radius: var(--us-radius);
}

.woocommerce-account #customer_login .u-column2 {
	background: var(--us-surface);
}

.woocommerce-account #customer_login h2 {
	margin: 0 0 var(--us-space-4);
	font-size: var(--us-text-h3);
	text-transform: uppercase;
}

.woocommerce-account #customer_login form.login,
.woocommerce-account #customer_login form.register {
	margin: 0;
	padding: 0;
	border: 0;
}

.woocommerce-account form .woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: var(--us-space-2);
	margin: 0 0 var(--us-space-4);
}

.woocommerce-account form .woocommerce-button {
	min-width: 140px;
}

.woocommerce-account .woocommerce-LostPassword {
	margin: var(--us-space-3) 0 0;
	font-size: var(--us-text-small);
}

/* Logged in: menu left, content right; a chip row on phones */
.woocommerce-account .woocommerce-MyAccount-navigation {
	margin-bottom: var(--us-space-6);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	gap: var(--us-space-2);
	margin: 0;
	padding: 0;
	overflow-x: auto;
	border: 0;
	list-style: none;
	scrollbar-width: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	flex: none;
	margin: 0;
	border: 0;
}

.woocommerce-account.us-light .site-content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link a {
	display: flex;
	align-items: center;
	min-height: var(--us-tap);
	padding: 0 var(--us-space-4);
	border: 1.5px solid var(--us-border);
	border-radius: var(--us-radius-pill);
	background: none;
	color: var(--us-heading);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.woocommerce-account.us-light .site-content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link a:hover {
	border-color: var(--us-heading);
	color: var(--us-heading);
}

.woocommerce-account.us-light .site-content .woocommerce-MyAccount-navigation ul li.is-active a {
	border-color: var(--us-heading);
	background: var(--us-heading);
	color: var(--us-bg);
}

@media (max-width: 767px) {
	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		margin-inline: calc(var(--us-edge) * -1);
		padding: 0 var(--us-edge) var(--us-space-1);
	}
}

@media (min-width: 768px) {
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 220px minmax(0, 1fr);
		column-gap: var(--us-space-12);
		align-items: start;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content {
		float: none;
		width: auto;
		margin: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		flex-direction: column;
		overflow: visible;
	}

	.woocommerce-account.us-light .site-content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link a {
		border-radius: var(--us-radius-sm);
	}

	/* Menu in the left column; messages and page content on the right */
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > * {
		grid-column: 2;
	}

	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-navigation {
		grid-column: 1;
		grid-row: 1 / span 2;
	}
}

/* Dashboard shortcut cards */
.woocommerce-account .woocommerce-MyAccount-content ul.us-account-cards {
	display: grid;
	gap: var(--us-space-3);
	margin: var(--us-space-6) 0 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 600px) {
	.woocommerce-account .woocommerce-MyAccount-content ul.us-account-cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.us-account-card {
	margin: 0;
}

.us-account-card a {
	display: grid;
	gap: var(--us-space-1);
	height: 100%;
	box-sizing: border-box;
	padding: var(--us-space-4);
	border: 1px solid var(--us-border);
	border-radius: var(--us-radius);
	background: var(--us-surface);
	text-decoration: none;
}

.woocommerce-account.us-light .site-content .us-account-card a,
.us-account-card__title {
	color: var(--us-heading);
}

.us-account-card__title {
	font-weight: 700;
}

.us-account-card__text {
	color: var(--us-muted);
	font-size: var(--us-text-small);
}

.us-account-card a:hover {
	border-color: var(--us-heading);
}

/* Orders list */
.woocommerce-account table.woocommerce-orders-table {
	border: 0;
}

.woocommerce-account table.woocommerce-orders-table th,
.woocommerce-account table.woocommerce-orders-table td {
	padding: var(--us-space-3) var(--us-space-2);
	border: 0;
	border-bottom: 1px solid var(--us-border);
	background: none;
	vertical-align: middle;
}

.woocommerce-account table.woocommerce-orders-table .button {
	min-height: 40px;
	margin: 0;
	padding: 0 var(--us-space-4);
}

/* Phones: WooCommerce hides the order number cell; show it as the row title */
.woocommerce-account .woocommerce table.woocommerce-orders-table tbody th.woocommerce-orders-table__cell-order-number {
	display: block;
	padding-top: var(--us-space-4);
	font-weight: 700;
	text-align: left;
}

/* Address cards */
.woocommerce-account .woocommerce-Addresses.col2-set {
	display: grid;
	gap: var(--us-space-4);
	width: 100%;
}

.woocommerce-account .woocommerce-Addresses.col2-set::before,
.woocommerce-account .woocommerce-Addresses.col2-set::after {
	display: none;
}

@media (min-width: 768px) {
	.woocommerce-account .woocommerce-Addresses.col2-set {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
	float: none;
	width: auto;
	margin: 0;
	padding: var(--us-space-4);
	border: 1px solid var(--us-border);
	border-radius: var(--us-radius);
}

/* ========== 16. Empty cart ========== */

.woocommerce-cart .us-empty-cart {
	display: grid;
	justify-items: center;
	gap: var(--us-space-3);
	margin: 0 0 var(--us-space-12);
	padding: var(--us-space-12) var(--us-space-6);
	border-radius: var(--us-radius);
	background: var(--us-surface);
	text-align: center;
}

.woocommerce-cart .us-empty-cart > * {
	margin: 0;
}

.us-empty-cart__title,
.us-empty-cart__rail-title {
	font-size: var(--us-text-h1);
	text-transform: uppercase;
}

.us-empty-cart__rail-title {
	margin-bottom: var(--us-space-6);
	font-size: var(--us-text-h2);
}

.woocommerce-cart .return-to-shop {
	display: none;
}

/* ========== 17. Accessibility fixes (QA, Phase 6) ========== */

/* Visible keyboard focus on WooCommerce/Astra buttons (they remove it) */
/* (Astra's `.button:focus { outline: 0 }` would otherwise win.) */
html body .button:focus-visible,
html body button:focus-visible,
html body input[type="submit"]:focus-visible,
html body #respond input#submit:focus-visible {
	outline: 3px solid var(--us-focus);
	outline-offset: 2px;
}

/* Links inside sentences: underlined (checkout/sign-up privacy text, terms) */
.woocommerce-privacy-policy-text a,
.woocommerce-terms-and-conditions-checkbox-text a,
.us-light .site-content a.woocommerce-privacy-policy-link,
.us-light .site-content .woocommerce p a:not(.button) {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Review form stars: 44px tap targets */
.woocommerce #review_form p.stars a {
	width: 44px;
	height: 44px;
	margin: 0;
	font-size: 26px;
	text-indent: -999em;
}

.woocommerce #review_form p.stars a::before {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-indent: 0;
}

/* Show-password eye button: 44px tap target */
.woocommerce form .password-input {
	position: relative;
	display: block;
}

.woocommerce form .show-password-input {
	top: 50%;
	right: 2px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	transform: translateY(-50%);
}
