@charset "UTF-8";
/* ==========================================================================
   Shreeja Unique Fashion — shop stylesheet

   Loaded only on WooCommerce pages and on pages that print a product grid.
   Colours come from the tokens in main.css, so never hard code a colour here.

   1. Notices
   2. Product grid + product card
   3. Shop layout, toolbar, sorting
   4. Filters (sidebar on desktop, drawer on phones)
   5. Single product
   6. Tabs, related, sticky add to cart
   7. Cart
   8. Mini cart
   9. Checkout
  10. Order received
  11. My account + login / register
  12. Responsive
  13. RTL
   ========================================================================== */

/* ==========================================================================
   1. NOTICES
   ========================================================================== */

.woocommerce-notices-wrapper:empty { display: none; }

.suf-notice,
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0 0 1.25rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--border);
	border-inline-start: 3px solid var(--secondary);
	border-radius: var(--radius-sm);
	background: var(--white);
	color: var(--heading);
	font-size: var(--fs-sm);
	list-style: none;
}

.suf-notice > svg { flex: none; margin-top: 0.15rem; color: var(--secondary); }
.suf-notice__body { flex: 1; }
.suf-notice p { margin: 0; }

.suf-notice a:not(.btn) {
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.suf-notice .button,
.suf-notice .btn {
	flex: none;
	align-self: center;
}

.suf-notice--success { border-inline-start-color: var(--secondary); background: var(--background-blush); }
.suf-notice--success > svg { color: var(--primary); }

.suf-notice--error {
	border-inline-start-color: var(--primary);
	background: var(--background-blush);
	color: var(--primary-dark);
}

.suf-notice--error > svg { color: var(--primary); }
.suf-notice--error ul { margin: 0; padding-inline-start: 1.1rem; }

.suf-notice--info { border-inline-start-color: var(--primary-light); background: var(--background-soft); }

/* ==========================================================================
   2. PRODUCT GRID + PRODUCT CARD
   ========================================================================== */

.products,
.product-grid {
	display: grid;
	gap: clamp(1rem, 2.4vw, 1.85rem) clamp(0.8rem, 1.8vw, 1.5rem);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.products--cols-1 { grid-template-columns: 1fr; }

.product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	margin: 0;
	list-style: none;
}

.product-card__media {
	position: relative;
	border-radius: var(--radius);
	overflow: hidden;
	background: var(--background-soft);
	aspect-ratio: 3 / 4;
}

.product-card__link {
	display: block;
	width: 100%;
	height: 100%;
}

.product-card__img,
.product-card .attachment-woocommerce_thumbnail,
.product-card .wp-post-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--t-slow) var(--ease-out), opacity var(--t) var(--ease);
}

.product-card__img--hover {
	position: absolute;
	inset: 0;
	opacity: 0;
}

.product-card:hover .product-card__img--hover { opacity: 1; }
.product-card:hover .product-card__img:not(.product-card__img--hover) { transform: scale(1.05); }
.product-card:hover .product-card__img--hover { transform: scale(1.03); }

.product-card__actions {
	position: absolute;
	inset-block-end: 0.7rem;
	inset-inline: 0.7rem;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity var(--t) var(--ease), transform var(--t) var(--ease);
}

.product-card:hover .product-card__actions,
.product-card:focus-within .product-card__actions {
	opacity: 1;
	transform: translateY(0);
}

.product-card__actions .button,
.product-card__atc {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.72rem 1rem;
	border: 0;
	border-radius: var(--radius-pill);
	background: var(--white);
	color: var(--heading);
	font-family: var(--font-body);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: center;
	cursor: pointer;
	box-shadow: var(--shadow-sm);
	transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.product-card__actions .button:hover,
.product-card__atc:hover { background: var(--primary); color: var(--white); }

.product-card__actions .added_to_cart { display: none; }

.product-card__actions .button.loading {
	color: transparent;
	pointer-events: none;
}

.product-card__actions .button.loading::after {
	content: "";
	position: absolute;
	inset-block-start: 50%;
	inset-inline-start: 50%;
	width: 16px;
	height: 16px;
	margin: -8px 0 0 -8px;
	border: 2px solid rgba(var(--heading-rgb), 0.25);
	border-top-color: var(--primary);
	border-radius: 50%;
	animation: suf-spin 0.7s linear infinite;
}

.product-card__actions .button.added::before {
	content: "✓";
	margin-inline-end: 0.25rem;
}

.product-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.3rem;
}

.product-card__cat {
	color: var(--text-muted);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.product-card__title {
	margin: 0;
	font-size: 1.08rem;
	font-weight: 500;
	line-height: 1.3;
}

.product-card__title a { color: var(--heading); }
.product-card__title a:hover { color: var(--primary); }

.product-card__rating {
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.product-card__reviews { color: var(--text-muted); font-size: var(--fs-xs); }

.product-card__price {
	margin-top: 0.15rem;
	color: var(--primary);
	font-size: 1rem;
	font-weight: 600;
}

.product-card__price del,
.product-price del,
.woocommerce-Price-amount del {
	margin-inline-end: 0.4rem;
	color: var(--text-muted);
	font-weight: 400;
	opacity: 0.8;
}

.product-card__price ins,
.product-price ins { text-decoration: none; }

/* Colour dots under the card */
.swatch-dots {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	margin: 0.35rem 0 0;
	padding: 0;
	list-style: none;
}

.swatch-dots__dot {
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: var(--dot, var(--secondary-light));
	box-shadow: 0 0 0 1px var(--border), inset 0 0 0 1px rgba(var(--white-rgb), 0.55);
}

.swatch-dots__more { color: var(--text-muted); font-size: 0.7rem; }

/* ==========================================================================
   3. SHOP LAYOUT, TOOLBAR, SORTING
   ========================================================================== */

.shop-layout {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.75rem);
	align-items: start;
}

.shop-content { min-width: 0; }

.shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: clamp(1.15rem, 2.4vw, 1.85rem);
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--border);
}

.shop-toolbar__filter { position: relative; }

.shop-toolbar__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--primary);
	box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.18);
}

.woocommerce-result-count,
.shop-count {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-xs);
	letter-spacing: 0.04em;
}

.shop-sort,
.woocommerce-ordering {
	margin: 0 0 0 auto;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.shop-sort__label {
	color: var(--text-muted);
	font-size: var(--fs-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.shop-sort__field select,
.woocommerce-ordering select {
	width: auto;
	min-width: 190px;
	padding-block: 0.6rem;
	border-radius: var(--radius-pill);
	font-size: var(--fs-xs);
}

.term-description {
	color: var(--text);
	font-size: var(--fs-sm);
}

/* Category strip on shop archives */
.cat-strip { margin-bottom: 0; }

/* ==========================================================================
   4. FILTERS
   ========================================================================== */

.shop-filters__panel {
	display: grid;
	gap: 0.35rem;
	align-content: start;
	padding: clamp(1.1rem, 2vw, 1.5rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--white);
}

.shop-filters__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding-bottom: 0.85rem;
	border-bottom: 1px solid var(--border);
}

.shop-filters__title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--heading);
}

.shop-filters__title svg { color: var(--primary); }
.shop-filters__close { display: none; }

.shop-filters__active {
	display: grid;
	gap: 0.6rem;
	padding-block: 0.9rem;
	border-bottom: 1px solid var(--border);
}

.shop-filters__clear {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--text-muted);
	font-size: var(--fs-xs);
	font-weight: 500;
}

.shop-filters__clear:hover { color: var(--primary); }
.shop-filters__foot { display: none; }

.filter-group {
	padding-block: 1rem;
	border-bottom: 1px solid var(--border);
}

.filter-group:last-of-type { border-bottom: 0; }

.filter-group__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	color: var(--heading);
	font-size: var(--fs-sm);
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.filter-group__head::-webkit-details-marker { display: none; }
.filter-group__chevron { color: var(--text-muted); transition: transform var(--t-fast) var(--ease); }
.filter-group[open] .filter-group__chevron { transform: rotate(180deg); }
.filter-group[open] .filter-group__head { margin-bottom: 0.85rem; }
.filter-group--single { padding-block: 1rem; }

.filter-list {
	display: grid;
	gap: 0.1rem;
	margin: 0;
	padding: 0;
	list-style: none;
	max-height: 260px;
	overflow-y: auto;
}

.filter-list li { margin: 0; }

.filter-list__link {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.45rem 0.5rem;
	border-radius: var(--radius-sm);
	color: var(--text);
	font-size: var(--fs-sm);
	transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.filter-list__link:hover { background: var(--background-blush); color: var(--primary); }
.filter-list__link.is-active { color: var(--primary); font-weight: 600; }

.filter-list__box {
	display: grid;
	place-items: center;
	flex: none;
	width: 20px;
	height: 20px;
	border: 1.5px solid var(--border);
	border-radius: var(--radius-xs);
	color: transparent;
	transition: background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.filter-list__link:hover .filter-list__box { border-color: var(--primary-light); }

.filter-list__link.is-active .filter-list__box {
	border-color: var(--primary);
	background: var(--primary);
	color: var(--white);
}

.filter-list__count {
	margin-inline-start: auto;
	color: var(--text-muted);
	font-size: 0.72rem;
	font-variant-numeric: tabular-nums;
}

/* Size pills */
.filter-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.filter-pills li { margin: 0; }

.filter-pill {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	color: var(--heading);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease),
		color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}

.filter-pill:hover { border-color: var(--primary); color: var(--primary); transform: translateY(-1px); }

.filter-pill.is-active {
	background: var(--primary);
	border-color: var(--primary);
	color: var(--white);
}

/* Colour swatches */
.filter-swatches {
	display: grid;
	gap: 0.1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.filter-swatches li { margin: 0; }

.filter-swatch {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.4rem 0.5rem;
	border-radius: var(--radius-sm);
	color: var(--text);
	font-size: var(--fs-sm);
	transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.filter-swatch:hover { background: var(--background-blush); }

.filter-swatch__dot {
	display: grid;
	place-items: center;
	flex: none;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--dot, var(--secondary-light));
	box-shadow: 0 0 0 1px var(--border);
	color: transparent;
	transition: box-shadow var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.filter-swatch.is-active { color: var(--primary); font-weight: 600; }

.filter-swatch.is-active .filter-swatch__dot {
	box-shadow: 0 0 0 2px var(--white), 0 0 0 4px var(--primary);
	color: var(--white);
}

.filter-swatch__name { flex: 1; }

/* Price */
.filter-price { display: grid; gap: 0.7rem; }

.filter-price__row {
	display: flex;
	align-items: center;
	gap: 0.45rem;
}

.filter-price__field {
	position: relative;
	flex: 1;
	margin: 0;
}

.filter-price__field input {
	padding-inline-start: 1.9rem;
	padding-block: 0.6rem;
	font-size: var(--fs-sm);
}

.filter-price__symbol {
	position: absolute;
	inset-block-start: 50%;
	inset-inline-start: 0.7rem;
	transform: translateY(-50%);
	color: var(--text-muted);
	font-size: var(--fs-xs);
	pointer-events: none;
}

.filter-price__sep {
	width: 10px;
	height: 1px;
	background: var(--border);
}

.filter-price__submit { justify-self: start; }

/* ==========================================================================
   5. SINGLE PRODUCT
   ========================================================================== */

.product-page { padding-bottom: clamp(2.5rem, 6vw, 5rem); }
.product-page__crumbs { padding-top: clamp(1rem, 2.5vw, 1.75rem); }
.product-page__crumbs .breadcrumbs { margin: 0; }
.product-page__crumbs .breadcrumbs__inner { justify-content: flex-start; }

.product-single__top {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

/* Gallery */
.product-single__gallery { position: relative; }

.product-single__badges {
	position: absolute;
	inset-block-start: 0.9rem;
	inset-inline-start: 0.9rem;
	z-index: 3;
}

.product-single__badges .badges { position: static; }

.woocommerce-product-gallery {
	position: relative;
	margin: 0;
}

.woocommerce-product-gallery__wrapper { margin: 0; }

.woocommerce-product-gallery__image,
.woocommerce-product-gallery .flex-viewport {
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--background-soft);
}

.woocommerce-product-gallery__image a { display: block; }

.woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	display: block;
}

.woocommerce-product-gallery__trigger {
	position: absolute;
	inset-block-start: 0.9rem;
	inset-inline-end: 0.9rem;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: var(--radius-pill);
	background: rgba(var(--white-rgb), 0.92);
	color: var(--heading);
	font-size: 0;
	box-shadow: var(--shadow-sm);
	transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.woocommerce-product-gallery__trigger::after {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.woocommerce-product-gallery__trigger:hover { background: var(--primary); color: var(--white); }
.woocommerce-product-gallery img.zoomImg { background: var(--white); }

.flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.55rem;
	margin: 0.65rem 0 0;
	padding: 0;
	list-style: none;
}

.flex-control-thumbs li { margin: 0; }

.flex-control-thumbs img {
	width: 100%;
	height: auto;
	border-radius: var(--radius-sm);
	cursor: pointer;
	opacity: 0.7;
	transition: opacity var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}

.flex-control-thumbs img:hover,
.flex-control-thumbs img.flex-active,
.flex-control-thumbs li.is-active img {
	opacity: 1;
	box-shadow: 0 0 0 2px var(--primary);
}

/* Summary */
.product-single__summary { display: grid; gap: 0.9rem; }

.product-single__summary .product_title {
	margin: 0;
	font-size: clamp(1.7rem, 3.4vw, 2.6rem);
}

.product-highlight {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0.4rem 0.85rem;
	border-radius: var(--radius-pill);
	background: var(--background-blush);
	color: var(--primary-dark);
	font-size: var(--fs-xs);
	font-weight: 500;
	justify-self: start;
}

.product-highlight svg { color: var(--secondary); }

.woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	font-size: var(--fs-xs);
}

.woocommerce-product-rating .woocommerce-review-link { color: var(--text-muted); }
.woocommerce-product-rating .woocommerce-review-link:hover { color: var(--primary); }

.product-single__summary .price,
.product-single__summary .woocommerce-Price-amount {
	color: var(--primary);
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 2.8vw, 2rem);
	font-weight: 600;
}

.product-single__summary .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.6rem;
	margin: 0;
}

.product-single__summary .price del {
	color: var(--text-muted);
	font-size: 0.62em;
	font-weight: 400;
}

.product-single__summary .price ins { text-decoration: none; }
.product-single__summary .price small.woocommerce-price-suffix { font-size: var(--fs-xs); color: var(--text-muted); }

.woocommerce-product-details__short-description {
	color: var(--text);
	font-size: var(--fs-sm);
	line-height: 1.8;
}

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

.stock {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.03em;
}

.stock.in-stock { color: var(--primary); }
.stock.low-stock { color: var(--primary-dark); }
.stock.out-of-stock { color: var(--text-muted); }

.size-guide-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0;
	border: 0;
	background: none;
	color: var(--primary);
	font-family: var(--font-body);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	justify-self: start;
	transition: color var(--t-fast) var(--ease);
}

.size-guide-btn:hover { color: var(--primary-dark); }
.size-guide-btn svg { color: var(--secondary); }

/* Add to cart form */
.product-single__summary form.cart {
	display: grid;
	gap: 1rem;
	margin: 0.35rem 0 0;
}

.product-single__summary form.cart .variations {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}

.variations th,
.variations td {
	display: block;
	padding: 0;
	text-align: start;
	border: 0;
}

.variations tr + tr td:first-child,
.variations tr + tr th { padding-top: 0.85rem; }

.variations .label label {
	margin-bottom: 0.5rem;
	color: var(--heading);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.variations select.is-swatched {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.variations .reset_variations {
	display: inline-block;
	margin-top: 0.5rem;
	color: var(--text-muted);
	font-size: var(--fs-xs);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.swatch {
	display: inline-grid;
	place-items: center;
	min-width: 46px;
	padding: 0.6rem 0.85rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	background: var(--white);
	color: var(--heading);
	font-family: var(--font-body);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	cursor: pointer;
	transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease),
		background-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}

.swatch:hover { border-color: var(--primary); color: var(--primary); transform: translateY(-1px); }

.swatch.is-selected {
	background: var(--primary);
	border-color: var(--primary);
	color: var(--white);
}

.swatch--color {
	min-width: 0;
	width: 34px;
	height: 34px;
	padding: 0;
	border-radius: 50%;
	background: var(--swatch, var(--secondary-light));
	box-shadow: 0 0 0 1px var(--border);
	border: 2px solid var(--white);
}

.swatch--color:hover { transform: scale(1.08); }

.swatch--color.is-selected {
	background: var(--swatch, var(--secondary-light));
	box-shadow: 0 0 0 2px var(--primary);
}

.single_variation_wrap { display: grid; gap: 0.85rem; }

.woocommerce-variation-price .price { font-size: 1.4rem; }

.woocommerce-variation-availability p { margin: 0; }

/* Quantity + add to cart row */
.quantity {
	display: inline-flex;
	align-items: center;
	gap: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius-pill);
	background: var(--white);
	overflow: hidden;
}

.quantity__btn {
	display: grid;
	place-items: center;
	width: 42px;
	height: 46px;
	border: 0;
	background: none;
	color: var(--heading);
	cursor: pointer;
	transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.quantity__btn:hover { background: var(--background-soft); color: var(--primary); }

.quantity input.qty {
	width: 46px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--heading);
	font-size: var(--fs-sm);
	font-weight: 600;
	text-align: center;
	appearance: textfield;
	-moz-appearance: textfield;
}

.quantity input.qty:focus { box-shadow: none; }
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button { appearance: none; margin: 0; }

.quantity--readonly {
	border-color: transparent;
	background: none;
}

.product-single__summary form.cart:not(.variations_form),
.product-single__summary .single_variation_wrap .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
}

.single_add_to_cart_button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	flex: 1;
	min-width: 200px;
	padding: 1.05rem 2rem;
	border: 0;
	border-radius: var(--radius-pill);
	background: var(--primary);
	color: var(--white);
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--t) var(--ease), transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}

.single_add_to_cart_button:hover {
	background: var(--primary-dark);
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(var(--primary-rgb), 0.3);
}

.single_add_to_cart_button.disabled,
.single_add_to_cart_button.wc-variation-selection-needed {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

.woocommerce-variation-add-to-cart--disabled .quantity { opacity: 0.55; }

/* Trust points */
.product-trust {
	display: grid;
	gap: 0.7rem;
	margin: 0.5rem 0 0;
	padding: clamp(1rem, 2vw, 1.35rem);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--background-blush);
	list-style: none;
}

.product-trust__item {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	margin: 0;
	font-size: var(--fs-sm);
}

.product-trust__icon { flex: none; margin-top: 0.15rem; color: var(--primary); }
.product-trust__item strong { display: block; color: var(--heading); font-weight: 600; }
.product-trust__item em { color: var(--text-muted); font-size: var(--fs-xs); font-style: normal; }

.product_meta {
	display: grid;
	gap: 0.3rem;
	padding-top: 1rem;
	border-top: 1px solid var(--border);
	color: var(--text-muted);
	font-size: var(--fs-xs);
}

.product_meta > span { display: block; }
.product_meta a { color: var(--text-muted); text-decoration: underline; text-underline-offset: 3px; }
.product_meta a:hover { color: var(--primary); }

/* ==========================================================================
   6. TABS, RELATED, STICKY ADD TO CART
   ========================================================================== */

.product-tabs {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	padding-top: clamp(1.75rem, 3.5vw, 2.75rem);
	border-top: 1px solid var(--border);
}

.product-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--border);
}

.product-tabs__nav li { margin: 0; }

.product-tabs__nav a {
	display: inline-block;
	padding: 0.8rem 1.15rem;
	border-bottom: 2px solid transparent;
	color: var(--text-muted);
	font-size: var(--fs-sm);
	font-weight: 600;
	letter-spacing: 0.04em;
	transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}

.product-tabs__nav a:hover { color: var(--primary); }

.product-tabs__nav .active a,
.product-tabs__nav li.active > a {
	color: var(--primary);
	border-bottom-color: var(--primary);
}

.woocommerce-Tabs-panel {
	color: var(--text);
	font-size: var(--fs-sm);
	line-height: 1.85;
}

.woocommerce-Tabs-panel > h2:first-child { display: none; }

.product-tabs__panel-title {
	display: none;
	width: 100%;
	padding: 1rem 0;
	border: 0;
	border-top: 1px solid var(--border);
	background: none;
	color: var(--heading);
	font-family: var(--font-heading);
	font-size: 1.15rem;
	text-align: start;
	cursor: pointer;
}

.product-details-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-sm);
}

.product-details-table th,
.product-details-table td {
	padding: 0.8rem 0.9rem;
	border-bottom: 1px solid var(--border);
	text-align: start;
	vertical-align: top;
}

.product-details-table th {
	width: 34%;
	color: var(--heading);
	font-weight: 600;
	background: var(--background-blush);
}

.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-sm);
}

.shop_attributes th,
.shop_attributes td {
	padding: 0.75rem 0.9rem;
	border-bottom: 1px solid var(--border);
	text-align: start;
}

.shop_attributes th { color: var(--heading); background: var(--background-blush); }
.shop_attributes p { margin: 0; }

/* Reviews */
#reviews .commentlist {
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

#reviews .comment_container {
	display: flex;
	gap: 1rem;
	padding: 1.15rem;
	margin-bottom: 1rem;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--white);
}

#reviews .comment_container img.avatar {
	flex: none;
	width: 48px;
	height: 48px;
	border-radius: var(--radius-pill);
}

#reviews .comment-text { flex: 1; }
#reviews .meta { margin-bottom: 0.35rem; font-size: var(--fs-xs); color: var(--text-muted); }
#reviews .woocommerce-review__author { color: var(--heading); font-weight: 600; }

#review_form_wrapper {
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--white);
}

.comment-form-rating { margin-bottom: 1rem; }

.comment-form-rating .stars a {
	color: var(--secondary);
	font-size: 1.1rem;
}

/* Related + cross sells + upsells. The wrappers carry WooCommerce's own
   .products class, so reset the grid on the section itself. */
.related,
.up-sells,
.cross-sells {
	display: block;
	margin-top: clamp(2.5rem, 5vw, 4rem);
}

/* Sticky add to cart bar (phones) */
.sticky-atc {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: var(--z-drawer);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.7rem clamp(0.9rem, 4vw, 1.5rem);
	border-top: 1px solid var(--border);
	background: rgba(var(--white-rgb), 0.96);
	backdrop-filter: blur(10px);
	box-shadow: 0 -8px 26px rgba(var(--heading-rgb), 0.1);
	transform: translateY(100%);
	transition: transform var(--t) var(--ease-out);
}

.sticky-atc.is-visible { transform: translateY(0); }
.sticky-atc[hidden] { display: none; }

.sticky-atc__info {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	min-width: 0;
}

.sticky-atc__info img {
	width: 44px;
	height: 44px;
	border-radius: var(--radius-sm);
	object-fit: cover;
}

.sticky-atc__title {
	display: block;
	color: var(--heading);
	font-size: var(--fs-sm);
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 40vw;
}

.sticky-atc__price { color: var(--primary); font-size: var(--fs-xs); font-weight: 600; }
.sticky-atc__price del { display: none; }
.sticky-atc__btn { flex: none; padding-inline: 1.35rem; }

/* ==========================================================================
   7. CART
   ========================================================================== */

/* Cart, checkout and account pages are ordinary pages holding a shortcode. */
.woocommerce-page-content { min-width: 0; }

.cart-page {
	display: grid;
	gap: clamp(1.5rem, 3.5vw, 3rem);
	align-items: start;
}

.cart-page__main { min-width: 0; }

/* Free shipping progress */
.ship-progress {
	display: grid;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
	padding: 0.95rem 1.15rem;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--background-blush);
}

.ship-progress__text {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	color: var(--heading);
	font-size: var(--fs-xs);
	font-weight: 500;
}

.ship-progress__text svg { color: var(--primary); }
.ship-progress__text .woocommerce-Price-amount { color: var(--primary); font-weight: 700; }

.ship-progress__track {
	display: block;
	height: 6px;
	border-radius: var(--radius-pill);
	background: rgba(var(--primary-rgb), 0.14);
	overflow: hidden;
}

.ship-progress__bar {
	display: block;
	width: var(--progress, 0%);
	height: 100%;
	border-radius: var(--radius-pill);
	background: linear-gradient(to right, var(--secondary), var(--primary));
	transition: width var(--t-slow) var(--ease-out);
}

.ship-progress.is-complete .ship-progress__bar { background: var(--primary); }

/* Cart items */
.cart-items { display: grid; gap: 0.85rem; }

.cart-item {
	display: grid;
	grid-template-columns: 84px 1fr auto;
	gap: 0.85rem 1rem;
	align-items: center;
	padding: 0.9rem;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--white);
	transition: border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}

.cart-item:hover { border-color: var(--secondary-light); box-shadow: var(--shadow-sm); }

.cart-item__media {
	grid-row: span 2;
	border-radius: var(--radius-sm);
	overflow: hidden;
	background: var(--background-soft);
}

.cart-item__media img {
	display: block;
	width: 84px;
	height: 104px;
	object-fit: cover;
}

.cart-item__info { min-width: 0; }

.cart-item__name {
	margin: 0 0 0.2rem;
	font-size: 1.05rem;
	line-height: 1.3;
}

.cart-item__name a { color: var(--heading); }
.cart-item__name a:hover { color: var(--primary); }

.cart-item__meta {
	color: var(--text-muted);
	font-size: var(--fs-xs);
}

.cart-item__meta dl,
.cart-item__meta p { margin: 0; }
.cart-item__meta dt { display: inline; font-weight: 600; }
.cart-item__meta dd { display: inline; margin: 0 0.5rem 0 0.15rem; }
.cart-item__meta dd p { display: inline; }

.cart-item__price {
	color: var(--text-muted);
	font-size: var(--fs-xs);
}

.cart-item__each { margin-inline-start: 0.2rem; }

.cart-item__qty { grid-column: 2; }

.cart-item__subtotal {
	grid-column: 3;
	grid-row: 2;
	color: var(--primary);
	font-size: 1.05rem;
	font-weight: 600;
	text-align: end;
	white-space: nowrap;
}

.cart-item__remove {
	grid-column: 3;
	grid-row: 1;
	justify-self: end;
}

.cart-item__remove .remove {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: var(--radius-pill);
	color: var(--text-muted);
	transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.cart-item__remove .remove:hover { background: var(--background-blush); color: var(--primary); }

.backorder_notification {
	margin: 0.25rem 0 0;
	color: var(--primary);
	font-size: var(--fs-xs);
}

/* Cart actions */
.cart-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-top: 0.5rem;
	padding-top: 1.15rem;
	border-top: 1px solid var(--border);
}

.cart-coupon {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.cart-coupon__field {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.cart-coupon__icon {
	position: absolute;
	inset-inline-start: 0.8rem;
	color: var(--text-muted);
	pointer-events: none;
}

.cart-coupon__field input {
	width: 190px;
	padding-inline-start: 2.4rem;
	padding-block: 0.72rem;
	border-radius: var(--radius-pill);
}

.cart-actions__right {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem;
	margin-inline-start: auto;
}

.cart-actions__continue {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--text-muted);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cart-actions__continue:hover { color: var(--primary); }
.cart-actions__update[disabled] { opacity: 0.45; }

/* Cart totals */
.cart-page__side { display: grid; gap: 1rem; }

.cart_totals {
	padding: clamp(1.15rem, 2.4vw, 1.75rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--white);
	box-shadow: var(--shadow-sm);
}

.cart_totals h2,
.order-summary__title {
	margin: 0 0 1rem;
	font-size: 1.3rem;
}

.cart_totals table,
.order-summary__table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: var(--fs-sm);
}

.cart_totals th,
.cart_totals td,
.order-summary__table th,
.order-summary__table td {
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--border);
	text-align: start;
	vertical-align: top;
}

.cart_totals th,
.order-summary__table th {
	color: var(--text-muted);
	font-weight: 500;
}

.cart_totals td,
.order-summary__table td { text-align: end; color: var(--heading); }

.cart_totals .order-total th,
.cart_totals .order-total td,
.order-summary__table .order-total th,
.order-summary__table .order-total td {
	border-bottom: 0;
	padding-top: 1rem;
	color: var(--heading);
	font-size: 1.05rem;
	font-weight: 700;
}

.cart_totals .order-total .woocommerce-Price-amount { color: var(--primary); font-size: 1.25rem; }

.cart-discount td { color: var(--primary); }

.woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: start;
}

.woocommerce-shipping-methods li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 0.35rem;
	font-size: var(--fs-xs);
}

.woocommerce-shipping-methods label { margin: 0; font-weight: 400; }

.woocommerce-shipping-destination { margin: 0.5rem 0 0; color: var(--text-muted); font-size: var(--fs-xs); }
.shipping-calculator-button { font-size: var(--fs-xs); text-decoration: underline; text-underline-offset: 3px; }
.shipping-calculator-form { margin-top: 0.75rem; display: grid; gap: 0.6rem; }

.wc-proceed-to-checkout { margin-top: 1.25rem; }

.wc-proceed-to-checkout .checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	padding: 1.05rem 1.5rem;
	border: 0;
	border-radius: var(--radius-pill);
	background: var(--primary);
	color: var(--white);
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: background-color var(--t) var(--ease), transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}

.wc-proceed-to-checkout .checkout-button:hover {
	background: var(--primary-dark);
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(var(--primary-rgb), 0.3);
}

.order-summary__trust,
.product-trust--compact {
	display: grid;
	gap: 0.5rem;
	margin: 1.1rem 0 0;
	padding: 0;
	list-style: none;
}

.order-summary__trust li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-xs);
}

.order-summary__trust svg { flex: none; color: var(--primary); }

.empty-state--cart .empty-state__note,
.empty-state__note {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-xs);
}

/* ==========================================================================
   8. MINI CART (drawer contents; the drawer shell lives in main.css)
   ========================================================================== */

.mini-cart__body { display: grid; }

.woocommerce-mini-cart {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-mini-cart-item {
	display: grid;
	grid-template-columns: 62px 1fr auto;
	gap: 0.75rem;
	align-items: center;
	margin: 0;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--border);
}

.woocommerce-mini-cart-item:last-child { border-bottom: 0; padding-bottom: 0; }

.mini-cart__thumb {
	display: block;
	border-radius: var(--radius-sm);
	overflow: hidden;
	background: var(--background-soft);
}

.mini-cart__thumb img {
	display: block;
	width: 62px;
	height: 76px;
	object-fit: cover;
}

.mini-cart__info { min-width: 0; }

.mini-cart__name {
	display: block;
	color: var(--heading);
	font-size: var(--fs-sm);
	font-weight: 500;
	line-height: 1.35;
}

.mini-cart__name:hover { color: var(--primary); }

.woocommerce-mini-cart-item .quantity {
	border: 0;
	background: none;
	color: var(--text-muted);
	font-size: var(--fs-xs);
}

.woocommerce-mini-cart-item .variation {
	margin: 0.15rem 0 0;
	color: var(--text-muted);
	font-size: 0.72rem;
}

.woocommerce-mini-cart-item .variation dt,
.woocommerce-mini-cart-item .variation dd { display: inline; margin: 0 0.25rem 0 0; }

.mini-cart__remove {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: var(--radius-pill);
	color: var(--text-muted);
	font-size: 0;
	transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.mini-cart__remove::after {
	content: "";
	width: 15px;
	height: 15px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat;
}

.mini-cart__remove:hover { background: var(--background-blush); color: var(--primary); }

.mini-cart__foot {
	display: grid;
	gap: 0.85rem;
	margin-top: 1.15rem;
	padding-top: 1.15rem;
	border-top: 1px solid var(--border);
}

.mini-cart__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem;
	margin: 0;
	color: var(--heading);
	font-size: var(--fs-sm);
}

.mini-cart__total strong { font-weight: 500; }
.mini-cart__total .woocommerce-Price-amount { color: var(--primary); font-size: 1.2rem; font-weight: 700; }

.mini-cart__buttons { display: grid; gap: 0.5rem; }

.mini-cart__note {
	margin: 0;
	color: var(--text-muted);
	font-size: 0.72rem;
	text-align: center;
}

.mini-cart__empty {
	display: grid;
	justify-items: center;
	gap: 0.6rem;
	padding-block: clamp(2rem, 6vw, 3.5rem);
	text-align: center;
}

.mini-cart__empty-icon {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border-radius: var(--radius-pill);
	background: var(--background-blush);
	color: var(--primary);
}

.woocommerce-mini-cart__empty-message {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

/* ==========================================================================
   9. CHECKOUT
   ========================================================================== */

.checkout-page {
	display: grid;
	gap: clamp(1.5rem, 3.5vw, 3rem);
	align-items: start;
}

.checkout-page__main { min-width: 0; }

.checkout-details h3,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
	margin: 0 0 1rem;
	font-size: 1.35rem;
}

.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
	padding: clamp(1.15rem, 2.4vw, 1.85rem);
	margin-bottom: 1rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--white);
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	gap: 0.9rem;
}

.form-row {
	display: grid;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
}

.form-row label { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.04em; }
.form-row .required { color: var(--primary); text-decoration: none; }
.form-row .optional { color: var(--text-muted); font-weight: 400; }

.form-row-first,
.form-row-last { grid-column: span 1; }

.woocommerce-input-wrapper { display: block; }
.woocommerce-input-wrapper .description { font-size: var(--fs-xs); color: var(--text-muted); }

.form-row.woocommerce-invalid input,
.form-row.woocommerce-invalid select,
.form-row.woocommerce-invalid .select2-selection {
	border-color: var(--primary);
	box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.12);
}

.form-row.woocommerce-validated input { border-color: var(--secondary); }

/* select2 (WooCommerce country / state) */
.select2-container .select2-selection--single {
	height: auto;
	padding: 0.85rem 1.05rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	background: var(--white);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0;
	color: var(--text);
	font-size: var(--fs-sm);
	line-height: 1.5;
}

.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); inset-inline-end: 0.7rem; }
.select2-container--open .select2-selection--single { border-color: var(--primary); box-shadow: var(--ring); }

.select2-dropdown {
	border-color: var(--border);
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--primary); }
.select2-search--dropdown .select2-search__field { border-radius: var(--radius-xs); }

/* Coupon toggle */
.woocommerce-form-coupon-toggle { margin-bottom: 1rem; }

.checkout-coupon-toggle {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 1.15rem;
	border: 1px dashed var(--secondary);
	border-radius: var(--radius);
	background: var(--background-blush);
	color: var(--heading);
	font-size: var(--fs-sm);
}

.checkout-coupon-toggle svg { color: var(--primary); }

.checkout-coupon-toggle .showcoupon {
	margin-inline-start: auto;
	font-weight: 600;
	white-space: nowrap;
}

.checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.25rem;
	padding: 1rem;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--white);
}

.checkout_coupon .form-row { flex: 1; min-width: 180px; }
.checkout_coupon .form-row-last { flex: none; align-self: end; }

/* Order review */
.checkout-page__side { display: grid; gap: 1rem; }

.order-summary {
	padding: clamp(1.15rem, 2.4vw, 1.75rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--white);
	box-shadow: var(--shadow-sm);
}

.woocommerce-checkout-review-order-table {
	width: 100%;
	margin: 0 0 1rem;
	border-collapse: collapse;
	font-size: var(--fs-sm);
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--border);
	text-align: start;
	vertical-align: middle;
}

.woocommerce-checkout-review-order-table thead th { display: none; }
.woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout-review-order-table tfoot td { text-align: end; }

.woocommerce-checkout-review-order-table tfoot th { color: var(--text-muted); font-weight: 500; }

.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
	border-bottom: 0;
	color: var(--heading);
	font-size: 1.05rem;
	font-weight: 700;
}

.woocommerce-checkout-review-order-table tfoot .order-total .woocommerce-Price-amount { color: var(--primary); font-size: 1.25rem; }

.review-order__name {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.review-order__thumb {
	flex: none;
	width: 54px;
	height: 66px;
	border-radius: var(--radius-sm);
	overflow: hidden;
	background: var(--background-soft);
}

.review-order__thumb img { width: 100%; height: 100%; object-fit: cover; }
.review-order__info { min-width: 0; color: var(--heading); }

.review-order__info .product-quantity {
	display: block;
	color: var(--text-muted);
	font-size: var(--fs-xs);
}

.review-order__info dl.variation {
	margin: 0.15rem 0 0;
	color: var(--text-muted);
	font-size: 0.72rem;
}

.review-order__info dl.variation dt,
.review-order__info dl.variation dd { display: inline; margin: 0 0.25rem 0 0; }

/* Payment */
#payment { margin-top: 0.5rem; }

.wc_payment_methods {
	display: grid;
	gap: 0.5rem;
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
}

.wc_payment_method {
	margin: 0;
	padding: 0.9rem 1rem;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--white);
	transition: border-color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease);
}

.wc_payment_method:hover { border-color: var(--secondary); }

.wc_payment_method label {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0;
	font-size: var(--fs-sm);
	font-weight: 500;
	cursor: pointer;
}

.wc_payment_method label img { max-height: 26px; width: auto; }

.payment_box {
	margin-top: 0.7rem;
	padding: 0.85rem 1rem;
	border-radius: var(--radius-sm);
	background: var(--background-blush);
	color: var(--text);
	font-size: var(--fs-xs);
}

.payment_box p:last-child { margin: 0; }

.woocommerce-terms-and-conditions-wrapper { margin-bottom: 1rem; }

.woocommerce-privacy-policy-text {
	color: var(--text-muted);
	font-size: var(--fs-xs);
}

.validate-required.woocommerce-invalid label { color: var(--primary); }

#place_order {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	padding: 1.1rem 1.5rem;
	border: 0;
	border-radius: var(--radius-pill);
	background: var(--primary);
	color: var(--white);
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--t) var(--ease), transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}

#place_order:hover {
	background: var(--primary-dark);
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(var(--primary-rgb), 0.3);
}

.checkout-locked {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	margin: 0.85rem 0 0;
	color: var(--text-muted);
	font-size: var(--fs-xs);
}

.checkout-locked svg { color: var(--primary); }

.blockUI.blockOverlay { background: rgba(var(--white-rgb), 0.6) !important; }

/* ==========================================================================
   10. ORDER RECEIVED
   ========================================================================== */

.thankyou { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }

.thankyou__head {
	display: grid;
	justify-items: center;
	gap: 0.6rem;
	text-align: center;
}

.thankyou__icon {
	display: grid;
	place-items: center;
	width: 76px;
	height: 76px;
	border-radius: var(--radius-pill);
	background: var(--background-blush);
	color: var(--primary);
	animation: suf-pop 0.6s var(--ease-out) both;
}

.thankyou__icon--failed { background: var(--background-soft); }
.thankyou__title { margin: 0; font-size: clamp(1.7rem, 3.6vw, 2.6rem); }

.thankyou__head p {
	margin: 0;
	max-width: 52ch;
	color: var(--text-muted);
	font-size: var(--fs-lead);
}

.thankyou__details {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: clamp(1.15rem, 2.4vw, 1.75rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--white);
	list-style: none;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.thankyou__details li {
	display: grid;
	gap: 0.15rem;
	margin: 0;
	font-size: var(--fs-sm);
	color: var(--heading);
	font-weight: 600;
}

.thankyou__details li > span:first-child,
.thankyou__details li .label {
	color: var(--text-muted);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.thankyou__next { display: grid; gap: 1rem; }
.thankyou__next-title { margin: 0; font-size: 1.35rem; text-align: center; }

.thankyou__steps {
	display: grid;
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: step;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.thankyou__steps li {
	position: relative;
	display: grid;
	gap: 0.6rem;
	margin: 0;
	padding: clamp(1.15rem, 2.2vw, 1.5rem);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--white);
	counter-increment: step;
	font-size: var(--fs-sm);
	color: var(--text-muted);
}

.thankyou__steps li svg {
	width: 40px;
	height: 40px;
	padding: 0.6rem;
	border-radius: var(--radius-pill);
	background: var(--background-blush);
	color: var(--primary);
}

.thankyou__steps li::after {
	content: counter(step, decimal-leading-zero);
	position: absolute;
	inset-block-start: clamp(1.15rem, 2.2vw, 1.5rem);
	inset-inline-end: clamp(1.15rem, 2.2vw, 1.5rem);
	color: var(--secondary-light);
	font-family: var(--font-heading);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1;
}

.thankyou__head--failed .woocommerce-thankyou-order-failed {
	max-width: 52ch;
	color: var(--primary-dark);
}

.thankyou__steps strong { color: var(--heading); font-weight: 600; }

.thankyou__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	justify-content: center;
}

.woocommerce-order-details,
.woocommerce-customer-details {
	margin-top: clamp(1.75rem, 3.5vw, 2.75rem);
}

.woocommerce-order-details__title,
.woocommerce-column__title { font-size: 1.3rem; }

.woocommerce-table--order-details,
.woocommerce-table--order-downloads {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-sm);
}

.woocommerce-table--order-details th,
.woocommerce-table--order-details td,
.woocommerce-table--order-downloads th,
.woocommerce-table--order-downloads td {
	padding: 0.8rem 0.6rem;
	border-bottom: 1px solid var(--border);
	text-align: start;
}

.woocommerce-table--order-details tfoot td,
.woocommerce-table--order-details td.woocommerce-table__product-total { text-align: end; }

.woocommerce-customer-details .woocommerce-columns {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.woocommerce-customer-details address {
	padding: 1.15rem;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--white);
	font-size: var(--fs-sm);
	font-style: normal;
	line-height: 1.8;
}

/* ==========================================================================
   11. MY ACCOUNT + LOGIN / REGISTER
   ========================================================================== */

.account-layout {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: start;
}

.account-content { min-width: 0; }

.account-nav {
	padding: clamp(1.15rem, 2.2vw, 1.6rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--white);
}

.account-nav__user {
	display: grid;
	justify-items: center;
	gap: 0.25rem;
	padding-bottom: 1rem;
	margin-bottom: 0.85rem;
	border-bottom: 1px solid var(--border);
	text-align: center;
}

.account-nav__user img {
	width: 62px;
	height: 62px;
	border-radius: var(--radius-pill);
}

.account-nav__hello {
	color: var(--text-muted);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.account-nav__name { color: var(--heading); font-weight: 600; }

.woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 0.15rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-MyAccount-navigation li { margin: 0; }

.woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.7rem 0.85rem;
	border-radius: var(--radius-sm);
	color: var(--text);
	font-size: var(--fs-sm);
	transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.woocommerce-MyAccount-navigation li a svg { flex: none; color: var(--text-muted); transition: color var(--t-fast) var(--ease); }
.woocommerce-MyAccount-navigation li a:hover { background: var(--background-blush); color: var(--primary); }
.woocommerce-MyAccount-navigation li a:hover svg { color: var(--primary); }

.woocommerce-MyAccount-navigation li.is-active a {
	background: var(--primary);
	color: var(--white);
}

.woocommerce-MyAccount-navigation li.is-active a svg { color: var(--white); }

.woocommerce-MyAccount-content {
	padding: clamp(1.25rem, 2.6vw, 2rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--white);
}

.woocommerce-MyAccount-content > p:first-child { margin-top: 0; }

.account-dash { display: grid; gap: 1.25rem; }
.account-dash__greeting { margin: 0; color: var(--text-muted); font-size: var(--fs-sm); }
.account-dash__greeting strong { color: var(--heading); }

.account-dash__tiles {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.account-tile {
	display: grid;
	gap: 0.35rem;
	padding: clamp(1.1rem, 2.2vw, 1.5rem);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--background-blush);
	transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease), border-color var(--t) var(--ease);
}

.account-tile:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow);
	border-color: var(--secondary-light);
}

.account-tile__icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: var(--radius-sm);
	background: var(--white);
	color: var(--primary);
}

.account-tile__title { margin: 0.35rem 0 0; color: var(--heading); font-family: var(--font-heading); font-size: 1.15rem; }
.account-tile__text { margin: 0; color: var(--text-muted); font-size: var(--fs-xs); }

.woocommerce-orders-table,
.woocommerce-table--order-downloads {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-sm);
}

.woocommerce-orders-table th,
.woocommerce-orders-table td {
	padding: 0.8rem 0.6rem;
	border-bottom: 1px solid var(--border);
	text-align: start;
}

.woocommerce-orders-table th { color: var(--text-muted); font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions { text-align: end; }

.woocommerce-Address {
	margin-bottom: 1.25rem;
}

.woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
}

.woocommerce-Address-title h2,
.woocommerce-Address-title h3 { margin: 0; font-size: 1.2rem; }

.woocommerce-Address address {
	margin-top: 0.6rem;
	padding: 1.15rem;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--background-blush);
	font-size: var(--fs-sm);
	font-style: normal;
	line-height: 1.8;
}

.woocommerce-EditAccountForm { display: grid; gap: 1rem; }

.woocommerce-EditAccountForm fieldset {
	margin: 0.5rem 0 0;
	padding: clamp(1.15rem, 2.2vw, 1.6rem);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--background-blush);
}

.woocommerce-EditAccountForm legend {
	padding-inline: 0.5rem;
	color: var(--heading);
	font-size: var(--fs-sm);
	font-weight: 600;
}

/* Login / register / reset */
.auth-layout {
	display: grid;
	gap: clamp(1.25rem, 3vw, 2.5rem);
	align-items: start;
}

.auth-layout--single {
	max-width: 520px;
	margin-inline: auto;
}

.auth-card {
	display: grid;
	gap: 0.75rem;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--white);
	box-shadow: var(--shadow-sm);
}

.auth-card--register { background: var(--background-blush); }

.auth-card__icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: var(--radius-pill);
	background: var(--background-blush);
	color: var(--primary);
}

.auth-card--register .auth-card__icon { background: var(--white); }
.auth-card__title { margin: 0.25rem 0 0; font-size: clamp(1.4rem, 2.6vw, 1.85rem); }
.auth-card__text { margin: 0; color: var(--text-muted); font-size: var(--fs-sm); }

.auth-card form { display: grid; gap: 0.9rem; margin: 0.35rem 0 0; }
.auth-card form p { margin: 0; }

.auth-card__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.auth-card__link { font-size: var(--fs-xs); font-weight: 600; }
.auth-card__link:hover { text-decoration: underline; text-underline-offset: 3px; }

.auth-card__note {
	margin: 0;
	color: var(--text-muted);
	font-size: 0.72rem;
	line-height: 1.7;
}

.auth-card__back {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--text-muted);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.auth-card__back:hover { color: var(--primary); }

.woocommerce-form-login__submit,
.woocommerce-form-register__submit,
.woocommerce-ResetPassword button { width: 100%; }

.woocommerce-password-strength {
	padding: 0.5rem 0.75rem;
	border-radius: var(--radius-xs);
	font-size: var(--fs-xs);
	text-align: center;
}

.woocommerce-password-strength.short,
.woocommerce-password-strength.bad { background: var(--background-blush); color: var(--primary-dark); }
.woocommerce-password-strength.good { background: var(--background-soft); color: var(--heading); }
.woocommerce-password-strength.strong { background: var(--primary); color: var(--white); }
.woocommerce-password-hint { color: var(--text-muted); font-size: var(--fs-xs); }

/* ==========================================================================
   12. RESPONSIVE
   ========================================================================== */

@media (max-width: 1023px) {
	/* Filters become a drawer */
	.shop-filters {
		position: fixed;
		inset: 0;
		z-index: var(--z-drawer);
		pointer-events: none;
	}

	.shop-filters__backdrop {
		position: absolute;
		inset: 0;
		background: rgba(var(--heading-rgb), 0.45);
		opacity: 0;
		transition: opacity var(--t) var(--ease);
	}

	.shop-filters__panel {
		position: absolute;
		inset-block: 0;
		inset-inline-start: 0;
		width: min(370px, 88vw);
		max-height: 100%;
		overflow-y: auto;
		border: 0;
		border-radius: 0;
		box-shadow: var(--shadow-lg);
		transform: translateX(-102%);
		transition: transform var(--t) var(--ease-out);
	}

	.shop-filters.is-open { pointer-events: auto; }
	.shop-filters.is-open .shop-filters__backdrop { opacity: 1; }
	.shop-filters.is-open .shop-filters__panel { transform: translateX(0); }
	.shop-filters__backdrop[hidden] { display: block; }

	.shop-filters__close { display: grid; }

	.shop-filters__foot {
		display: grid;
		position: sticky;
		inset-block-end: 0;
		padding-top: 1rem;
		margin-top: auto;
		background: linear-gradient(to top, var(--white) 65%, transparent);
	}

	.shop-filters__foot .btn { width: 100%; }
}

@media (min-width: 480px) {
	.cart-item { grid-template-columns: 104px 1fr auto; }
	.cart-item__media img { width: 104px; height: 128px; }
}

@media (min-width: 640px) {
	.products,
	.product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	.products--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.products--cols-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	.form-row-first,
	.form-row-last {
		grid-column: span 1;
	}

	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

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

	.auth-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.auth-layout--single { grid-template-columns: 1fr; }
}

@media (min-width: 768px) {
	.product-single__top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.product-single__summary { position: sticky; inset-block-start: calc(var(--header-h) + 1.5rem); }

	.cart-page { grid-template-columns: 1fr 340px; }
	.checkout-page { grid-template-columns: 1fr 360px; }
	.cart-page__side,
	.checkout-page__side { position: sticky; inset-block-start: calc(var(--header-h) + 1.5rem); }

	.account-layout { grid-template-columns: 260px 1fr; }

	.sticky-atc { display: none; }
}

@media (min-width: 1024px) {
	.products,
	.product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.products--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.products--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.shop-layout { grid-template-columns: 280px 1fr; }
	.shop-layout--full { grid-template-columns: 1fr; }
	.shop-filters { position: sticky; inset-block-start: calc(var(--header-h) + 1.5rem); }
	.shop-toolbar__filter { display: none; }

	.product-tabs__nav { gap: 0.8rem; }
}

@media (min-width: 1280px) {
	.shop-layout { grid-template-columns: 300px 1fr; }
	.cart-page { grid-template-columns: 1fr 380px; }
	.checkout-page { grid-template-columns: 1fr 400px; }
}

/* Product tabs turn into an accordion on phones */
@media (max-width: 767px) {
	.product-tabs__nav { display: none; }

	.product-tabs__panel-title {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.5rem;
	}

	.product-tabs__panel-title::after {
		content: "";
		width: 16px;
		height: 16px;
		background: currentColor;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
		transition: transform var(--t-fast) var(--ease);
	}

	.product-tabs__panel.is-open .product-tabs__panel-title::after { transform: rotate(180deg); }
	.product-tabs__panel .woocommerce-Tabs-panel { padding-bottom: 1.25rem; }

	.cart-item {
		grid-template-columns: 84px 1fr;
	}

	.cart-item__media { grid-row: span 3; }
	.cart-item__qty { grid-column: 2; }
	.cart-item__subtotal { grid-column: 2; grid-row: 4; text-align: start; }
	.cart-item__remove { grid-column: 2; grid-row: 1; }
	.cart-actions { flex-direction: column; align-items: stretch; }
	.cart-actions__right { margin-inline-start: 0; justify-content: space-between; }
	.cart-coupon__field input { width: 100%; }
	.cart-coupon { display: grid; grid-template-columns: 1fr auto; }
	.shop-sort { width: 100%; margin-inline-start: 0; }
	.shop-sort__field { flex: 1; }
	.shop-sort__field select,
	.woocommerce-ordering select { width: 100%; min-width: 0; }
}

/* ==========================================================================
   13. RTL
   ========================================================================== */

.is-rtl .shop-filters__panel,
[dir="rtl"] .shop-filters__panel { transform: translateX(102%); }

.is-rtl .shop-filters.is-open .shop-filters__panel,
[dir="rtl"] .shop-filters.is-open .shop-filters__panel { transform: translateX(0); }

.is-rtl .cart-actions__continue svg,
[dir="rtl"] .cart-actions__continue svg,
.is-rtl .auth-card__back svg,
[dir="rtl"] .auth-card__back svg { transform: scaleX(-1); }

@media (max-width: 1023px) {
	.is-rtl .shop-filters__panel,
	[dir="rtl"] .shop-filters__panel {
		inset-inline-start: auto;
		inset-inline-end: 0;
	}
}

