/* =============================================================
   Aurelia — WooCommerce styles
   The plugin's own stylesheets are dequeued (see inc/woocommerce/setup.php),
   so this file provides the full base + components + layout.
   ============================================================= */

/* ---------- 0. WooCommerce base (replaces the core stylesheet) ---------- */
.woocommerce, .woocommerce-page { }
.woocommerce .col2-set, .woocommerce-page .col2-set { width: 100%; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: 100%; float: none; }
.woocommerce a.remove { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--color-surface); color: var(--color-text) !important; font-size: 15px; line-height: 1; text-decoration: none; font-weight: 400; }
.woocommerce a.remove:hover { background: var(--color-error); color: #fff !important; }
.woocommerce .quantity, .quantity { display: inline-flex; }

/* price */
.woocommerce .price, .woocommerce-Price-amount { color: inherit; }
.woocommerce del, .woocommerce ins { background: transparent; }
.woocommerce del { opacity: .6; }
.woocommerce ins { text-decoration: none; font-weight: 600; }

/* buttons — beat the plugin's purple .button.alt */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce input.button.alt, .woocommerce #respond input#submit.alt,
.woocommerce .single_add_to_cart_button, .woocommerce .checkout-button,
.woocommerce #place_order, .wc-block-components-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	padding: .95em 1.7em;
	background: var(--color-primary); color: var(--color-on-primary);
	border: 1px solid var(--color-primary); border-radius: var(--radius-md);
	font-size: var(--fs-small); font-weight: 600; line-height: 1;
	letter-spacing: .03em; text-transform: uppercase; text-decoration: none;
	cursor: pointer; transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover, .woocommerce #place_order:hover {
	background: var(--color-accent); border-color: var(--color-accent); color: #fff; transform: translateY(-2px); box-shadow: var(--shadow-md);
}
.woocommerce .button.disabled, .woocommerce button.button:disabled, .woocommerce .button.loading { opacity: .55; pointer-events: none; }
/* Outline / light modifiers must beat the solid base above (same specificity, later wins) */
.woocommerce a.button--ghost, .woocommerce button.button--ghost, .woocommerce input.button--ghost,
.woocommerce a.button.alt.button--ghost, .button--ghost {
	background: transparent; color: var(--color-primary); border-color: var(--color-primary);
}
.woocommerce a.button--ghost:hover, .woocommerce button.button--ghost:hover, .button--ghost:hover {
	background: var(--color-primary); color: var(--color-on-primary); border-color: var(--color-primary);
}
.woocommerce a.button--light, .woocommerce button.button--light, .button--light {
	background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.75);
}
.woocommerce a.button--light:hover, .button--light:hover { background: #fff; color: var(--color-primary); border-color: #fff; }
.woocommerce a.added_to_cart { display: inline-flex; align-items: center; margin-left: .5em; font-size: var(--fs-caption); text-transform: uppercase; letter-spacing: .06em; border-bottom: 1px solid currentColor; padding: 0; background: none; color: var(--color-text); border-radius: 0; }
.woocommerce .button.loading::after { content: ""; width: 1em; height: 1em; margin-left: .5em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: aurelia-spin .7s linear infinite; }

/* forms */
.woocommerce form .form-row { display: flex; flex-direction: column; margin: 0 0 var(--space-sm); padding: 0; }
.woocommerce form .form-row label { font-size: var(--fs-small); font-weight: 500; margin-bottom: 4px; }
.woocommerce form .form-row .required { color: var(--color-error); border: 0; text-decoration: none; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container--default .select2-selection--single {
	width: 100%; padding: .8em 1em; background: var(--color-bg);
	border: 1px solid var(--color-border); border-radius: var(--radius-md); line-height: 1.4; min-height: 44px;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: var(--color-primary); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 12%, transparent); }
.woocommerce .select2-container--default .select2-selection--single { display: flex; align-items: center; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; right: 8px; }
.woocommerce .select2-dropdown { border-color: var(--color-border); }
/* two-up rows — float is the reliable pattern for WooCommerce's field markup */
.woocommerce form .form-row-first, .woocommerce form .form-row-last { float: left; width: calc(50% - 10px); }
.woocommerce form .form-row-last { float: right; }
.woocommerce form .form-row-wide, .woocommerce form .form-row.notes { clear: both; width: 100%; }
.woocommerce .woocommerce-billing-fields__field-wrapper,
.woocommerce .woocommerce-shipping-fields__field-wrapper,
.woocommerce .woocommerce-additional-fields__field-wrapper,
.woocommerce .woocommerce-address-fields__field-wrapper,
.woocommerce .create-account,
.woocommerce #customer_details .col-1,
.woocommerce #customer_details .col-2 { overflow: hidden; } /* clearfix for floated rows */
.woocommerce .woocommerce-form-row--first, .woocommerce .woocommerce-form-row--last { width: 100%; }
.woocommerce-form-login__rememberme, .woocommerce-form__label-for-checkbox { flex-direction: row; align-items: center; gap: 6px; }
.woocommerce-input-wrapper { display: block; }
.woocommerce .password-input { position: relative; display: block; }
.woocommerce .show-password-input { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); cursor: pointer; }

/* notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, .wc-block-components-notice-banner {
	list-style: none; margin: 0 0 var(--space-md); padding: var(--space-sm) var(--space-md);
	background: var(--color-surface); border-left: 3px solid var(--color-accent); border-radius: var(--radius-sm);
	font-size: var(--fs-small); display: flex; flex-wrap: wrap; align-items: center; gap: .5em;
}
.woocommerce-error { border-left-color: var(--color-error); }
.woocommerce-message { border-left-color: var(--color-success); }
/* empty-state block should not look like an inline notice */
.no-products.woocommerce-info { display: block; background: none; border: 0; padding: 0; }
.woocommerce-message .button, .woocommerce-error .button, .woocommerce-info .button { margin-left: auto; }
.woocommerce .woocommerce-error li { list-style: none; }

/* review stars (submission) */
.woocommerce #review_form #respond p.stars a { position: relative; height: 1.4em; width: 1.4em; text-indent: -999em; display: inline-block; text-decoration: none; }
.woocommerce #review_form #respond p.stars a::before { content: "\2605"; display: block; position: absolute; inset: 0; text-indent: 0; color: var(--color-border); font-size: 1.2em; }
.woocommerce #review_form #respond p.stars a:hover ~ a::before { color: var(--color-border); }
.woocommerce #review_form #respond p.stars:hover a::before { color: var(--color-accent); }
.woocommerce #review_form #respond p.stars a.active::before,
.woocommerce #review_form #respond p.stars a.active ~ a::before { color: var(--color-accent); }

/* comments / reviews list */
.woocommerce #reviews #comments ol.commentlist { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-sm); }
.woocommerce #reviews #comments ol.commentlist li { padding: var(--space-md); background: var(--color-surface); border-radius: var(--radius-md); }
.woocommerce #reviews #comments ol.commentlist li .comment_container { display: grid; grid-template-columns: 48px 1fr; gap: var(--space-sm); }
.woocommerce #reviews #comments ol.commentlist li img.avatar { width: 48px; height: 48px; border-radius: 50%; }
.woocommerce #reviews .comment-form-rating label { display: block; margin-bottom: 4px; }

/* product gallery / flexslider essentials */
.woocommerce-product-gallery { position: relative; overflow: hidden; max-width: 100%; }
.woocommerce-product-gallery .woocommerce-product-gallery__image { overflow: hidden; }
/* jQuery.zoom overlay — pointless (and overflows) without hover */
@media (hover: none), (pointer: coarse) {
	.woocommerce-product-gallery .zoomImg { display: none !important; }
}
.woocommerce-product-gallery figure { margin: 0; }
.flexslider { margin: 0; padding: 0; position: relative; }
.flexslider .slides { margin: 0; padding: 0; list-style: none; overflow: hidden; }
.flexslider .slides > li { position: relative; display: none; -webkit-backface-visibility: hidden; }
.flexslider .slides > li:first-child { display: block; }
.flexslider .slides .flex-active-slide { display: block; }
.flexslider .slides img { width: 100%; display: block; }
.flex-control-nav { margin: 0; padding: 0; list-style: none; }
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper { margin: 0; padding: 0; list-style: none; }
.woocommerce-product-gallery .woocommerce-product-gallery__image { min-width: 100%; }
.woocommerce-product-gallery.woocommerce-product-gallery--columns-1 .flex-control-thumbs { display: none; }
.woocommerce-product-gallery .woocommerce-product-gallery__image a { display: block; }
.woocommerce-product-gallery img { display: block; width: 100%; height: auto; border-radius: var(--radius-md); }
.woocommerce-product-gallery .flex-viewport { overflow: hidden; border-radius: var(--radius-md); }
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs { list-style: none; margin: var(--space-2xs) 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-2xs); }
.woocommerce-product-gallery .flex-control-thumbs li { margin: 0; }
.woocommerce-product-gallery .flex-control-thumbs img { opacity: .6; cursor: pointer; border-radius: var(--radius-sm); border: 2px solid transparent; transition: opacity var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease); }
.woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--color-primary); }
.woocommerce-product-gallery__trigger { position: absolute; top: var(--space-sm); right: var(--space-sm); z-index: 3; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--color-bg); box-shadow: var(--shadow-sm); font-size: 0; }
.woocommerce-product-gallery__trigger::before { content: "\26F6"; font-size: 16px; }
.pswp { z-index: 999999; }

/* ---------- Shop layout ---------- */
.shop-container { display: block; }
.shop-header { padding-block: var(--space-xl) var(--space-md); }
.shop-header__title { font-size: var(--fs-h1); }
.shop-header__count { display: inline-block; margin-top: var(--space-2xs); font-size: var(--fs-small); color: var(--color-muted); }
.shop-header .term-description, .shop-header .woocommerce-product-category .term-description { margin-top: var(--space-sm); color: var(--color-muted); max-width: 60ch; }
.shop-header--has-image .term-description { margin-inline: auto; }
.shop-header--has-image {
	position: relative; padding-block: var(--space-2xl); margin-bottom: var(--space-lg);
	background: var(--color-primary) var(--shop-header-image) center / cover no-repeat;
	color: #fff; text-align: center; border-radius: var(--radius-lg); overflow: hidden;
}
.shop-header--has-image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,.15) 60%); }
.shop-header--has-image .shop-header__inner { position: relative; z-index: 1; max-width: 640px; margin-inline: auto; }
.shop-header--has-image .shop-header__title { font-size: var(--fs-display); }
.shop-header--has-image .shop-header__count,
.shop-header--has-image .woocommerce-products-header__description { color: rgba(255,255,255,.85); }
@media (max-width: 560px) { .shop-header--has-image { padding-block: var(--space-xl); border-radius: var(--radius-md); } }

.shop-subcats { margin-bottom: var(--space-lg); }
.shop-subcats ul { display: flex; flex-wrap: wrap; gap: var(--space-2xs); }
.shop-subcats a { display: inline-flex; gap: 6px; align-items: center; padding: 0.5em 1em; border: 1px solid var(--color-border); border-radius: var(--radius-pill); font-size: var(--fs-small); transition: border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), transform var(--dur-1) var(--ease); }
.shop-subcats a span { color: var(--color-muted); font-size: var(--fs-caption); }
.shop-subcats a:hover { border-color: var(--color-primary); box-shadow: var(--shadow-sm); transform: translateY(-1px); }

.shop-layout { display: block; }
.shop-layout.has-sidebar { display: grid; grid-template-columns: 264px minmax(0, 1fr); gap: clamp(1.5rem, 1rem + 2vw, 3rem); align-items: start; }
.shop-content { min-width: 0; }
.shop-filter-toggle { display: none; }
/* sidebar as a sticky card — desktop only (on mobile it's an off-canvas drawer) */
@media (min-width: 901px) {
	.shop-layout.has-sidebar .shop-sidebar {
		position: sticky; top: calc(var(--header-h) + var(--space-md));
		border: 1px solid var(--color-border); border-radius: var(--radius-md);
		padding: var(--space-sm) var(--space-md); background: var(--color-bg);
		max-height: calc(100vh - var(--header-h) - var(--space-lg)); overflow-y: auto;
	}
}
.shop-filters .filter-group:first-of-type { padding-top: 0; }
.shop-filters .filter-group:last-of-type { border-bottom: 0; padding-bottom: 0; }
.price-range input { padding: 0.5em 0.6em; }
.filter-actions .button { padding: 0.7em 1.3em; }
.filter-actions .filter-clear { font-size: var(--fs-small); color: var(--color-muted); border-bottom: 1px solid currentColor; }
.shop-pagination { margin-top: var(--space-xl); }

.shop-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); padding-block: var(--space-sm); border-bottom: 1px solid var(--color-border); margin-bottom: var(--space-lg); }
.shop-toolbar__count { font-size: var(--fs-small); color: var(--color-muted); }
.shop-toolbar__right { display: flex; align-items: center; gap: var(--space-md); }
.shop-toolbar select { width: auto; padding: 0.5em 2em 0.5em 0.8em; border-radius: var(--radius-md); }
.shop-view-switch { display: flex; gap: 2px; }
.shop-view-switch button { padding: 0.4em; border: 1px solid var(--color-border); border-radius: var(--radius-xs); }
.shop-view-switch button.is-active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

/* ---------- Product grid ---------- */
.woocommerce ul.products, ul.products {
	--cols: var(--shop-cols, 4);
	display: grid;
	/* fixed column count — a short row keeps card size, it doesn't stretch to fill */
	grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
	gap: var(--space-lg) var(--space-md);
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products.carousel-track,
.products.carousel-track {
	display: grid;
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: clamp(220px, 24vw, 300px);
	gap: var(--space-md);
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products li.product, ul.products > li, .products > li {
	width: auto; float: none; margin: 0; padding: 0; list-style: none; clear: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.shop-results.view-list ul.products { grid-template-columns: 1fr; gap: var(--space-md); }
.shop-results.view-list .product-card { grid-template-columns: 200px 1fr; grid-template-areas: "media body"; display: grid; gap: var(--space-lg); align-items: center; }
.shop-results.view-list .product-card:hover, .shop-results.view-list .product-card:focus-within { transform: none; }
.shop-results.view-list .product-card__media { grid-area: media; }
.shop-results.view-list .product-card__body { grid-area: body; padding-top: 0; }
.shop-results[aria-busy="true"] { opacity: 0.5; pointer-events: none; }

/* ---------- Product card ---------- */
.woocommerce ul.products li.product.product-card,
.product-card { position: relative; display: flex; flex-direction: column; text-align: left; font-size: var(--fs-body); }
.product-card__media { position: relative; aspect-ratio: var(--product-media-ratio); overflow: hidden; background: var(--color-surface); border-radius: var(--radius-md); display: block; box-shadow: var(--shadow-card); transition: box-shadow var(--dur-2) var(--ease); }
.product-card:hover .product-card__media, .product-card:focus-within .product-card__media { box-shadow: var(--shadow-card-hover); }
.product-card__media > img,
.product-card__media .card-media,
.product-card__media .card-media img,
.product-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; border-radius: 0; max-width: none; }
.product-card { transition: transform var(--dur-2) var(--ease); }
.product-card:hover, .product-card:focus-within { transform: translateY(-4px); }
.card-media { position: absolute; inset: 0; }
.card-img--secondary { position: absolute; inset: 0; opacity: 0; transition: opacity var(--dur-2) var(--ease); }
.product-card:hover .card-img--secondary { opacity: 1; }
.product-card:hover .product-card__media img:not(.card-img--secondary) { transform: scale(1.04); }
.product-card__media img { transition: transform var(--dur-3) var(--ease); }
.product-card__link { position: absolute; inset: 0; z-index: 1; }

.product-badges { position: absolute; top: var(--space-2xs); left: var(--space-2xs); z-index: 2; display: grid; gap: 4px; }
.badge { font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; padding: 4px 9px; border-radius: var(--radius-pill); background: var(--color-primary); color: var(--color-on-primary); box-shadow: var(--shadow-sm); }
.badge--sale { background: var(--color-error); color: #fff; }
.badge--new { background: var(--color-accent); color: #fff; }
.badge--featured { background: #2c2c2c; color: #fff; }
.badge--low { background: var(--color-warning); color: #fff; }
.badge--oos { background: var(--color-muted); color: #fff; }
.woocommerce span.onsale { position: absolute; top: var(--space-2xs); left: var(--space-2xs); z-index: 2; min-height: 0; min-width: 0; margin: 0; padding: 4px 9px; background: var(--color-error); color: #fff; font-size: 0.62rem; font-weight: 700; border-radius: var(--radius-pill); line-height: 1.4; box-shadow: var(--shadow-sm); }

.card-actions { position: absolute; top: var(--space-2xs); right: var(--space-2xs); z-index: 2; display: grid; gap: 6px; opacity: 0; transform: translateX(6px); transition: opacity var(--dur-2) var(--ease), transform var(--dur-2) var(--ease); }
.product-card:hover .card-actions, .product-card:focus-within .card-actions { opacity: 1; transform: none; }
.card-action { width: 38px; height: 38px; display: grid; place-items: center; background: var(--color-bg); border-radius: 50%; box-shadow: var(--shadow-md); transition: background var(--dur-1) var(--ease), color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease); }
.card-action:hover { background: var(--color-primary); color: var(--color-on-primary); transform: scale(1.08); }
.wishlist-toggle.is-active { background: var(--color-accent); color: #fff; }
.wishlist-toggle.is-active svg { fill: currentColor; }

.product-card__quickadd { position: absolute; left: var(--space-2xs); right: var(--space-2xs); bottom: var(--space-2xs); z-index: 2; opacity: 0; transform: translateY(8px); transition: opacity var(--dur-2) var(--ease), transform var(--dur-2) var(--ease); }
.product-card:hover .product-card__quickadd, .product-card:focus-within .product-card__quickadd { opacity: 1; transform: none; }
.product-card__add { width: 100%; }
@media (hover: none) { .card-actions, .product-card__quickadd { opacity: 1; transform: none; position: static; display: flex; margin-top: var(--space-2xs); } .card-actions { justify-content: flex-end; } }

.product-card__body { padding-top: var(--space-xs); display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.product-card__cat { font-size: var(--fs-caption); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-muted); }
.product-card__title { font-size: var(--fs-small); font-weight: 500; line-height: 1.4; margin: 0; overflow-wrap: anywhere; }
.product-card__title a { position: relative; z-index: 2; }
.product-card__price { font-size: var(--fs-small); font-weight: 600; }
.product-card__price .amount, .product-card__price bdi { white-space: nowrap; }
.product-card__price del { color: var(--color-muted); font-weight: 400; margin-right: 4px; }
.product-card__price ins { text-decoration: none; }
.product-card__rating { font-size: var(--fs-caption); }

.card-swatches { display: flex; gap: 5px; margin-top: 4px; position: relative; z-index: 2; }
.card-swatch { width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--color-border); background: var(--swatch, var(--color-surface-2)); }

.star-rating { display: inline-block; position: relative; font-size: 0.85em; width: 5.4em; line-height: 1; letter-spacing: 0.1em; }
.star-rating::before { content: "★★★★★"; color: var(--color-border); }
.star-rating span { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; }
.star-rating span::before { content: "★★★★★"; color: var(--color-accent); }
.rating-count { color: var(--color-muted); font-size: var(--fs-caption); margin-left: 4px; }

/* card styles */
.card--luxury .product-card__body { align-items: center; text-align: center; }
.card--minimal .product-card__cat, .card--minimal .product-card__rating { display: none; }
.card--editorial .product-card__title { font-size: var(--fs-body); font-family: var(--font-heading); }
.card--overlay .product-card__body { position: absolute; inset: auto 0 0 0; z-index: 2; padding: var(--space-sm); background: linear-gradient(to top, rgba(0,0,0,0.7), transparent); color: #fff; }
.card--overlay .product-card__cat, .card--overlay .product-card__price { color: #fff; }

/* ---------- Filters ---------- */
.shop-sidebar__head { display: none; }
.shop-filters .filter-group { border: 0; padding: var(--space-md) 0; border-bottom: 1px solid var(--color-border); }
.shop-filters legend { font-weight: 600; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: var(--space-xs); }
.filter-options { display: grid; gap: var(--space-2xs); }
.filter-option { display: flex; align-items: center; gap: var(--space-2xs); font-size: var(--fs-small); font-weight: 400; cursor: pointer; }
.filter-attr.is-swatch .filter-options { grid-auto-flow: column; grid-template-columns: repeat(auto-fill, 28px); gap: var(--space-2xs); }
.filter-attr.is-swatch .filter-option { flex-direction: column; }
.filter-attr.is-swatch .filter-option input { position: absolute; opacity: 0; }
.filter-attr.is-swatch .filter-option span { width: 28px; height: 28px; border-radius: 50%; background: var(--swatch, var(--color-surface-2)); border: 1px solid var(--color-border); font-size: 0; }
.filter-attr.is-swatch .filter-option input:checked + span { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.price-range { display: flex; align-items: center; gap: var(--space-2xs); }
.filter-actions { display: flex; align-items: center; justify-content: space-between; padding-top: var(--space-md); }
.filter-clear { font-size: var(--fs-small); border-bottom: 1px solid currentColor; }

/* ---------- Single product ---------- */
.woocommerce div.product,
.single-product div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: clamp(2rem, 1rem + 3vw, 4.5rem);
	align-items: start;
}
/* Never let a wide child (jQuery-zoom overlay, long strings) blow out a track. */
.woocommerce div.product > * { min-width: 0; }
.woocommerce-product-gallery .zoomImg { max-width: 100%; }
/* WC prepends a bare <span class="onsale"> as a grid child — pull it out of flow */
.woocommerce div.product > .onsale {
	position: absolute; top: var(--space-sm); left: var(--space-sm); z-index: 3;
	margin: 0; padding: 4px 9px; background: var(--color-error); color: #fff;
	font-size: var(--fs-caption); font-weight: 700; border-radius: var(--radius-xs); line-height: 1.3; min-width: 0; min-height: 0;
}
.woocommerce div.product > .woocommerce-product-gallery { position: relative; float: none; width: auto; margin: 0; min-width: 0; }
.woocommerce div.product .woocommerce-product-gallery__wrapper,
.woocommerce div.product .woocommerce-product-gallery__image { width: 100%; }
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product .woocommerce-product-gallery img { width: 100%; height: auto; object-fit: cover; }
.woocommerce div.product > .summary, .woocommerce div.product > .entry-summary { float: none; width: auto; margin: 0; }
.woocommerce div.product.gallery-full,
.woocommerce div.product.gallery-grid { grid-template-columns: minmax(0, 1fr); }
.woocommerce div.product.gallery-grid .woocommerce-product-gallery__wrapper { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-2xs); }
.product.gallery-left-thumbs .woocommerce-product-gallery:has(.flex-control-thumbs) { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: var(--space-sm); align-items: start; }
.product.gallery-left-thumbs .woocommerce-product-gallery:has(.flex-control-thumbs) .flex-control-thumbs { grid-template-columns: 1fr; order: -1; }
.product.gallery-left-thumbs .woocommerce-product-gallery:has(.flex-control-thumbs) .flex-viewport,
.product.gallery-left-thumbs .woocommerce-product-gallery:has(.flex-control-thumbs) .woocommerce-product-gallery__wrapper { grid-column: 2; }
.woocommerce-product-gallery__wrapper { border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-card); }

.product.has-sticky-summary .summary,
.product.has-sticky-summary .entry-summary { position: sticky; top: calc(var(--header-h) + var(--space-md)); align-self: start; }
@media (max-width: 1024px) { .product.has-sticky-summary .summary, .product.has-sticky-summary .entry-summary { position: static; } }

.woocommerce div.product .product_title,
.single-product .product_title {
	font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.6rem);
	line-height: 1.15; margin: 0 0 var(--space-xs); overflow-wrap: anywhere;
}
.woocommerce div.product .price,
.single-product .entry-summary .price {
	font-size: var(--fs-h3); font-weight: 600; display: block; margin: 0 0 var(--space-sm); color: var(--color-text);
}
.woocommerce div.product .price del { color: var(--color-muted); font-weight: 400; font-size: 0.7em; margin-right: .4em; }
.woocommerce div.product .price ins { text-decoration: none; }
.aurelia-savings { display: inline-block; margin: 0 0 var(--space-sm); padding: 3px 10px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--color-error) 12%, transparent); color: var(--color-error); font-size: var(--fs-caption); font-weight: 700; letter-spacing: .03em; }
.woocommerce-product-details__short-description { color: var(--color-muted); margin: 0 0 var(--space-md); line-height: var(--lh-body); }
.woocommerce-product-details__short-description ul { list-style: none; display: grid; gap: 6px; }
.woocommerce-product-details__short-description ul li { position: relative; padding-left: 1.4em; }
.woocommerce-product-details__short-description ul li::before { content: ""; position: absolute; left: 0; top: .5em; width: 6px; height: 6px; border-radius: 50%; background: var(--color-accent); }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: var(--space-sm); display: flex; align-items: center; gap: .6em; }
.woocommerce div.product .woocommerce-product-rating .star-rating { font-size: 1em; width: 6.2em; }
.woocommerce div.product .woocommerce-product-rating .woocommerce-review-link { color: var(--color-muted); font-size: var(--fs-small); border-bottom: 1px solid var(--color-border); }

.woocommerce div.product form.cart,
.single-product form.cart { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin: 0 0 var(--space-md); align-items: stretch; }
.single-product form.cart .quantity { flex: 0 0 auto; }
.single-product form.cart .single_add_to_cart_button { flex: 1 1 200px; }
.woocommerce div.product form.cart .variations { flex: 1 1 100%; }
/* Buy-now is the secondary action (uses .button--ghost) — full width under Add to cart */
.aurelia-buy-now { flex-basis: 100%; }
.woocommerce div.product .product_meta { margin-top: var(--space-md); font-size: var(--fs-caption); color: var(--color-muted); display: flex; flex-wrap: wrap; gap: var(--space-2xs); }
.woocommerce div.product .product_meta > span { display: inline-flex; gap: .35em; padding: .3em .8em; background: var(--color-surface); border-radius: var(--radius-pill); }
.woocommerce div.product .product_meta a { color: var(--color-text); }

.variations { width: 100%; border-collapse: collapse; margin-bottom: var(--space-sm); }
.variations th { text-align: left; padding: var(--space-2xs) 0; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0.06em; vertical-align: top; width: 90px; }
.variations td { padding: var(--space-2xs) 0; }
.aurelia-swatches { display: flex; flex-wrap: wrap; gap: var(--space-2xs); }
.aurelia-swatch { min-width: 44px; height: 40px; padding: 0 0.75em; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: var(--fs-small); cursor: pointer; }
.aurelia-swatch.is-selected { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }
.aurelia-swatch.is-color { width: 40px; padding: 0; font-size: 0; background: var(--swatch); }
.aurelia-swatch.is-color.is-selected { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.aurelia-swatch[aria-disabled="true"] { opacity: 0.35; cursor: not-allowed; }

.stock { font-size: var(--fs-small); font-weight: 500; }
.stock--in { color: var(--color-success); }
.stock--low { color: var(--color-warning); }
.stock--out { color: var(--color-error); }

.product-delivery { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-md); margin-block: var(--space-md); display: grid; gap: var(--space-sm); }
.product-delivery__estimate { display: flex; align-items: center; gap: var(--space-2xs); font-size: var(--fs-small); }
.pincode-field { display: flex; gap: var(--space-2xs); }
.pincode-field input { max-width: 200px; }
.pincode-result { font-size: var(--fs-small); }
.pincode-result.is-ok { color: var(--color-success); }
.pincode-result.is-bad { color: var(--color-error); }

.product-trust { display: grid; gap: var(--space-2xs); margin-block: var(--space-md); }
.product-trust li { display: flex; align-items: center; gap: var(--space-2xs); font-size: var(--fs-small); color: var(--color-muted); }
.product-payments { display: flex; gap: var(--space-2xs); margin-top: var(--space-2xs); }

.woocommerce-tabs { grid-column: 1 / -1; margin-top: var(--space-xl); }
.woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--space-lg); padding: 4px; background: var(--color-surface); border-radius: var(--radius-pill); width: fit-content; max-width: 100%; }
.woocommerce-tabs ul.tabs li { padding: 0; }
.woocommerce-tabs ul.tabs a { display: inline-block; padding: .55em 1.2em; border-radius: var(--radius-pill); font-weight: 600; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-muted); transition: background var(--dur-1) var(--ease), color var(--dur-1) var(--ease); }
.woocommerce-tabs ul.tabs a:hover { color: var(--color-text); }
.woocommerce-tabs ul.tabs li.active a { background: var(--color-bg); color: var(--color-text); box-shadow: var(--shadow-sm); }

.related.products, .upsells.products, .recently-viewed { grid-column: 1 / -1; margin-top: var(--space-xl); }
/* tighten stacked single-product sections */
.woocommerce div.product > .aurelia-section { padding-block: var(--space-lg); margin-top: 0; }
.related.products > h2, .upsells.products > h2 { font-size: var(--fs-h2); margin-bottom: var(--space-lg); }

/* sticky add-to-cart bar */
.aurelia-sticky-atc {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 150;
	background: var(--color-bg); border-top: 1px solid var(--color-border);
	box-shadow: var(--shadow-lg);
	transform: translateY(100%); transition: transform var(--dur-2) var(--ease);
	padding: var(--space-2xs) var(--gutter) calc(var(--space-2xs) + env(safe-area-inset-bottom));
}
.aurelia-sticky-atc.is-visible { transform: none; }
.aurelia-sticky-atc__inner { display: flex; align-items: center; gap: var(--space-md); max-width: var(--container); margin-inline: auto; padding-block: var(--space-2xs); }
.aurelia-sticky-atc__thumb { width: 44px; height: 44px; object-fit: cover; border-radius: var(--radius-sm); flex-shrink: 0; }
.aurelia-sticky-atc__title { flex: 1; font-size: var(--fs-small); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aurelia-sticky-atc__price { font-size: var(--fs-small); font-weight: 600; white-space: nowrap; }
.aurelia-sticky-atc__price del { color: var(--color-muted); opacity: .7; font-weight: 400; margin-right: .4em; }
.aurelia-sticky-atc__price ins { text-decoration: none; }
.aurelia-sticky-atc .button { min-width: 160px; }
@media (max-width: 900px) {
	.aurelia-sticky-atc { bottom: 60px; }
	.aurelia-sticky-atc__title { display: none; }
}
@media (max-width: 480px) {
	.aurelia-sticky-atc .button { min-width: 0; flex: 1; }
}

/* ---------- Cart ---------- */
.aurelia-cart { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-xl); align-items: start; }
.aurelia-cart .woocommerce-cart-form { display: contents; }
.aurelia-cart__items { min-width: 0; }
.aurelia-cart__aside { position: sticky; top: calc(var(--header-h) + var(--space-md)); }
table.cart { width: 100%; border-collapse: collapse; }
table.cart thead th { text-align: left; padding: var(--space-2xs) var(--space-sm); border-bottom: 1px solid var(--color-border); font-size: var(--fs-caption); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-muted); }
table.cart td { padding: var(--space-sm); border-bottom: 1px solid var(--color-border); vertical-align: middle; }
table.cart .product-thumbnail img { width: 64px; border-radius: var(--radius-xs); }
table.cart .product-remove .remove { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--color-surface); color: var(--color-text); font-size: 1rem; line-height: 1; }
table.cart .product-remove .remove:hover { background: var(--color-error); color: #fff; }
table.cart td.actions { padding-top: var(--space-md); }
table.cart td.actions .coupon { display: inline-flex; gap: var(--space-2xs); }
table.cart td.actions .coupon input { width: 180px; }
table.cart td.actions button[name="update_cart"] { float: right; }
/* Quantity auto-submits on change — keep the manual button as a no-JS fallback only. */
.js .aurelia-cart td.actions button[name="update_cart"] { display: none; }
.woocommerce-cart-form.is-updating { opacity: 0.55; pointer-events: none; transition: opacity var(--dur-1) var(--ease); }
.cart_totals { background: var(--color-surface); padding: var(--space-lg); border-radius: var(--radius-md); box-shadow: var(--shadow-card); }
.cart_totals h2 { font-size: var(--fs-h3); margin-bottom: var(--space-md); }
.cart_totals table { width: 100%; }
.cart_totals th { text-align: left; padding: var(--space-2xs) 0; font-weight: 500; }
.cart_totals td { text-align: right; padding: var(--space-2xs) 0; }
.cart_totals .order-total th, .cart_totals .order-total td { border-top: 1px solid var(--color-border); padding-top: var(--space-sm); font-size: var(--fs-h4); }
.wc-proceed-to-checkout { margin-top: var(--space-md); }
.wc-proceed-to-checkout .button { width: 100%; }
.cart-empty-premium { text-align: center; padding-block: var(--space-2xl); }
.cross-sells { margin-top: var(--space-2xl); }
@media (max-width: 768px) {
	table.cart thead { display: none; }
	table.cart tbody tr { display: block; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-sm); margin-bottom: var(--space-sm); }
	table.cart tbody tr.cart_item { position: relative; padding-left: calc(64px + var(--space-md)); min-height: 64px; }
	table.cart td { display: flex; justify-content: space-between; align-items: center; border: 0; padding: 3px 0; }
	table.cart td::before { content: attr(data-title); font-size: var(--fs-caption); color: var(--color-muted); text-transform: uppercase; letter-spacing: 0.06em; }
	table.cart .product-thumbnail { position: absolute; left: var(--space-sm); top: var(--space-sm); padding: 0; }
	table.cart .product-thumbnail::before { display: none; }
	table.cart .product-thumbnail img { width: 64px; }
	table.cart .product-remove { position: absolute; right: var(--space-sm); top: var(--space-sm); padding: 0; }
	table.cart .product-remove::before { display: none; }
	table.cart .product-name { padding-right: 38px; font-weight: 500; line-height: 1.4; }
	table.cart .product-name::before { display: none; }
	table.cart tr.woocommerce-cart-form__cart-item + tr:not(.cart_item) { border: 0; padding: 0; }
	table.cart td.actions { display: block; padding: 0; }
	table.cart td.actions .coupon { display: flex; width: 100%; margin-bottom: var(--space-sm); }
	table.cart td.actions .coupon input { flex: 1; width: auto; }
	table.cart td.actions button[name="update_cart"] { float: none; width: 100%; }
}

/* ---------- Checkout ---------- */
.aurelia-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: var(--space-xl); align-items: start; }
.aurelia-checkout__main { min-width: 0; }
.aurelia-checkout__aside { position: sticky; top: calc(var(--header-h) + var(--space-md)); }
.aurelia-checkout__aside #order_review { background: var(--color-surface); padding: var(--space-lg); border-radius: var(--radius-md); box-shadow: var(--shadow-card); }
.aurelia-checkout .col2-set { display: grid; grid-template-columns: 1fr; gap: var(--space-lg); }
.aurelia-checkout h3 { font-size: var(--fs-h3); margin-bottom: var(--space-sm); }
.woocommerce .checkout .col-1, .woocommerce .checkout .col-2 { width: 100%; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { font-size: var(--fs-h4); margin: var(--space-md) 0 var(--space-sm); }
#ship-to-different-address label { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.woocommerce-form__input-checkbox { width: auto; min-height: 0; }
.checkout_coupon, .woocommerce-form-coupon { border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: var(--space-md); margin-bottom: var(--space-md); }
.woocommerce-form-coupon-toggle .woocommerce-info { background: var(--color-surface); }
#order_review table.shop_table { width: 100%; border-collapse: collapse; }
#order_review table.shop_table th, #order_review table.shop_table td { padding: var(--space-2xs) 0; text-align: left; border-bottom: 1px solid var(--color-border); }
#order_review table.shop_table td { text-align: right; }
#order_review table.shop_table .cart-subtotal th, #order_review table.shop_table .order-total th { font-weight: 500; }
#order_review table.shop_table .order-total th, #order_review table.shop_table .order-total td { font-size: var(--fs-h4); border-bottom: 0; padding-top: var(--space-sm); }
#payment { margin-top: var(--space-md); background: var(--color-bg); border-radius: var(--radius-sm); }
#payment ul.payment_methods { list-style: none; padding: 0; margin: 0 0 var(--space-md); display: grid; gap: var(--space-2xs); }
#payment ul.payment_methods li { border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: var(--space-sm) var(--space-md); }
#payment ul.payment_methods li label { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; }
#payment div.payment_box { background: var(--color-surface); border-radius: var(--radius-xs); padding: var(--space-sm); margin-top: var(--space-2xs); font-size: var(--fs-small); }
#payment .woocommerce-privacy-policy-text { font-size: var(--fs-caption); color: var(--color-muted); }
#payment .place-order .button, #payment #place_order { width: 100%; padding: 1.1em; font-size: var(--fs-body); }
.checkout-trust { margin: var(--space-sm) 0; }

/* generic shop tables + address blocks */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; margin-bottom: var(--space-md); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: var(--space-2xs) var(--space-sm); border-bottom: 1px solid var(--color-border); text-align: left; font-size: var(--fs-small); }
.woocommerce .woocommerce-customer-details address,
.woocommerce .woocommerce-Address address { font-style: normal; line-height: 1.7; border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: var(--space-md); }
.woocommerce .addresses .woocommerce-Address, .woocommerce .col2-set.addresses .col-1, .woocommerce .col2-set.addresses .col-2 { margin-bottom: var(--space-md); }
.woocommerce .woocommerce-MyAccount-content .button, .woocommerce-EditAccountForm .button { margin-top: var(--space-sm); }

@media (max-width: 640px) {
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; margin-right: 0; float: none; }
}

/* ---------- Thank you ---------- */
.aurelia-thankyou { max-width: 640px; margin-inline: auto; text-align: center; padding-block: var(--space-xl); }
.aurelia-thankyou__check { display: inline-grid; place-items: center; width: 84px; height: 84px; border-radius: 50%; background: color-mix(in srgb, var(--color-success) 15%, transparent); color: var(--color-success); margin-bottom: var(--space-md); }
.aurelia-thankyou__hero h1 { font-size: var(--fs-h1); margin-bottom: var(--space-2xs); }
.woocommerce-order-overview { list-style: none; padding: var(--space-md); margin-top: var(--space-lg); display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--space-sm); background: var(--color-surface); border-radius: var(--radius-sm); text-align: left; }
.woocommerce-order-overview li { font-size: var(--fs-caption); text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-muted); }
.woocommerce-order-overview li strong { display: block; font-size: var(--fs-body); text-transform: none; letter-spacing: 0; color: var(--color-text); margin-top: 2px; }
.woocommerce-order-details, .woocommerce-customer-details { text-align: left; margin-top: var(--space-xl); }

/* ---------- My account ---------- */
/* My Account page renders through page.php — keep it out of the prose wrapper */
.entry-page--wc .entry-page__header { text-align: left; max-width: none; margin-bottom: var(--space-lg); }
.entry-page--wc .entry-page__title { font-size: var(--fs-h2); }
.entry-page__wc { max-width: none; }
.entry-page__wc ul { list-style: none; padding-left: 0; margin: 0; }

.aurelia-account { display: grid; grid-template-columns: 248px minmax(0, 1fr); gap: clamp(1.5rem, 1rem + 3vw, 3.5rem); align-items: start; }
.woocommerce-MyAccount-navigation {
	border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-2xs);
	background: var(--color-bg); position: sticky; top: calc(var(--header-h) + var(--space-md));
}
.woocommerce-MyAccount-navigation ul { display: grid; gap: 2px; list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li { list-style: none; }
.woocommerce-MyAccount-navigation a {
	display: flex; align-items: center; gap: var(--space-xs);
	padding: 0.7em 0.9em; border-radius: var(--radius-sm);
	font-size: var(--fs-small); color: var(--color-text); font-weight: 500;
	transition: background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.woocommerce-MyAccount-navigation a svg { color: var(--color-muted); flex-shrink: 0; }
.woocommerce-MyAccount-navigation a:hover { background: var(--color-surface); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--color-primary); color: var(--color-on-primary); }
.woocommerce-MyAccount-navigation .is-active a svg { color: currentColor; }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--color-muted); }

.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content > p:first-child { color: var(--color-muted); font-size: var(--fs-small); margin-bottom: var(--space-lg); }
.woocommerce-MyAccount-content .woocommerce-Message, .woocommerce-MyAccount-content .woocommerce-info { margin-bottom: var(--space-md); }

/* account login / register (shown to logged-out visitors) */
.entry-page--wc .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-xl); max-width: 820px; margin-inline: auto; }
.entry-page--wc form.woocommerce-form-login,
.entry-page--wc form.woocommerce-form-register {
	border: 1px solid var(--color-border); border-radius: var(--radius-md);
	padding: clamp(1.5rem, 1rem + 2vw, 2.25rem); background: var(--color-bg); margin-top: var(--space-sm);
}
.entry-page--wc .woocommerce > form.woocommerce-form-login { max-width: 440px; margin-inline: auto; }
.entry-page--wc .u-column1 > h2, .entry-page--wc .u-column2 > h2 { font-size: var(--fs-h3); }
.entry-page--wc form.woocommerce-form-login .form-row-first,
.entry-page--wc form.woocommerce-form-login .form-row-last { float: none; width: 100%; }
.entry-page--wc form.woocommerce-form-login .woocommerce-form-login__submit { width: 100%; margin-top: var(--space-2xs); }
.entry-page--wc .lost_password { font-size: var(--fs-small); margin-top: var(--space-sm); }
@media (max-width: 720px) { .entry-page--wc .u-columns { grid-template-columns: 1fr; } }
.account-dashboard__greeting { color: var(--color-muted); font-size: var(--fs-small); margin-bottom: var(--space-lg); }
.account-dashboard__greeting strong { color: var(--color-text); }
.account-dashboard__cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-md); margin-bottom: var(--space-xl); }
@media (max-width: 900px)  { .account-dashboard__cards { grid-template-columns: repeat(2, 1fr); gap: var(--space-sm); } }
.account-card {
	display: grid; gap: 2px; padding: var(--space-md); text-align: left;
	border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-bg);
	transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.account-card svg { color: var(--color-accent); margin-bottom: var(--space-2xs); }
.account-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-3px); border-color: transparent; }
.account-card__value { font-size: var(--fs-h2); font-weight: 600; line-height: 1.1; font-family: var(--font-heading); }
.account-card__label { font-size: var(--fs-caption); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-muted); }
.account-dashboard__subtitle { font-size: var(--fs-h3); margin-bottom: var(--space-md); }
.account-orders-table { width: 100%; }
.account-dashboard__subtitle { font-size: var(--fs-h4); margin-block: var(--space-lg) var(--space-sm); }
.account-orders-table, .woocommerce-orders-table { width: 100%; border-collapse: collapse; }
.account-orders-table th, .account-orders-table td, .woocommerce-orders-table th, .woocommerce-orders-table td { padding: var(--space-2xs) var(--space-sm); border-bottom: 1px solid var(--color-border); text-align: left; font-size: var(--fs-small); }
.aurelia-login { max-width: 420px; }
.aurelia-login .form-row-first, .aurelia-login .form-row-last { width: 100%; }
@media (max-width: 900px) {
	.aurelia-cart, .aurelia-checkout, .aurelia-account { grid-template-columns: 1fr; }
	.aurelia-cart__aside, .aurelia-checkout__aside { position: static; }
}

/* ---------- Compare / wishlist pages ---------- */
.compare-table { width: 100%; border-collapse: collapse; }
.compare-table th, .compare-table td { padding: var(--space-sm); border: 1px solid var(--color-border); text-align: left; vertical-align: top; font-size: var(--fs-small); }
.compare-table th[scope="row"] { background: var(--color-surface); width: 140px; }
.wishlist-grid { margin-top: var(--space-lg); }

/* ---------- Quick view body ---------- */
.quick-view { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); padding: var(--space-lg); }
.quick-view__thumbs { display: flex; gap: var(--space-2xs); margin-top: var(--space-2xs); }
.quick-view__thumbs img { width: 60px; border-radius: var(--radius-xs); }
.quick-view__title { font-size: var(--fs-h3); }
.quick-view__price { font-size: var(--fs-h4); font-weight: 600; margin-block: var(--space-2xs); }
.quick-view__full { display: inline-block; margin-top: var(--space-sm); border-bottom: 1px solid currentColor; font-size: var(--fs-small); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.woocommerce div.product, .single-product div.product { grid-template-columns: minmax(0, 1fr); }
	.product.gallery-left-thumbs .woocommerce-product-gallery { grid-template-columns: 64px minmax(0, 1fr); }
}
@media (max-width: 900px) {
	.shop-layout.has-sidebar { display: block; }
	.shop-subcats { margin-bottom: var(--space-md); }
	.shop-subcats ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 2px; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); }
	.shop-subcats ul::-webkit-scrollbar { display: none; }
	.shop-subcats a { flex: 0 0 auto; white-space: nowrap; }
	.shop-subcats a span { white-space: nowrap; }
	.shop-filter-toggle { display: inline-flex; align-items: center; gap: 6px; padding: 0.6em 1.1em; border: 1px solid var(--color-border); border-radius: var(--radius-sm); margin-bottom: var(--space-sm); font-size: var(--fs-small); }
	.shop-toolbar { flex-wrap: wrap; gap: var(--space-xs); padding-block: var(--space-2xs); margin-bottom: var(--space-md); }
	.shop-toolbar__count { width: 100%; }
	.shop-toolbar__right { width: 100%; justify-content: space-between; }
	.shop-toolbar select { flex: 1; }
	.shop-sidebar {
		position: fixed; inset: 0 auto 0 0; z-index: 300; width: min(360px, 90vw);
		background: var(--color-bg); transform: translateX(-100%); transition: transform var(--dur-2) var(--ease);
		overflow-y: auto; padding: var(--space-md);
	}
	.shop-sidebar.is-open { transform: none; box-shadow: var(--shadow-lg); }
	.shop-sidebar__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-sm); }
	.quick-view { grid-template-columns: 1fr; }
	.woocommerce ul.products, ul.products { --cols: var(--shop-cols-mobile, 2); }
	.shop-results.view-list .product-card { grid-template-columns: 120px 1fr; gap: var(--space-md); }
}
@media (max-width: 560px) {
	.shop-toolbar { flex-wrap: wrap; gap: var(--space-2xs); }
	.woocommerce ul.products, ul.products { --cols: 2; }
	.shop-results.view-list .product-card { grid-template-columns: 1fr; grid-template-areas: "media" "body"; }
}

/* ---------- Quantity stepper ---------- */
.aurelia-qty { display: inline-flex; align-items: stretch; border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; min-height: 46px; }
.aurelia-qty input.qty { width: 52px; text-align: center; border: 0; border-inline: 1px solid var(--color-border); padding: 0.5em 0; font-weight: 600; -moz-appearance: textfield; }
.aurelia-qty input.qty::-webkit-outer-spin-button, .aurelia-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.aurelia-qty__btn { width: 44px; display: grid; place-items: center; font-size: 1.1rem; background: var(--color-surface); color: var(--color-text); transition: background var(--dur-1) var(--ease), color var(--dur-1) var(--ease); }
.aurelia-qty__btn:not(:disabled):hover { background: var(--color-primary); color: var(--color-on-primary); }
.aurelia-qty__btn:disabled { opacity: 0.3; cursor: default; }
/* fixed quantity (sold individually / min === max) — looks like the stepper, buttons inert */
.aurelia-qty--fixed { min-height: 46px; }
.aurelia-qty--fixed .aurelia-qty__value { border: 0; border-radius: 0; min-width: 52px; }
.aurelia-qty__value { display: inline-grid; place-items: center; min-width: 46px; min-height: 46px; padding: 0 0.6em; border: 1px solid var(--color-border); border-radius: var(--radius-md); font-weight: 600; }

/* ---------- Product actions row (single) ---------- */
.product-actions-row { display: flex; gap: var(--space-2xs); margin-block: var(--space-sm); }
.product-action { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-md); transition: background var(--dur-1) var(--ease), color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease); }
.product-action:hover { background: var(--color-primary); color: var(--color-on-primary); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.product-action.wishlist-toggle.is-active, .product-action.compare-toggle.is-active { background: var(--color-accent); color: #fff; border-color: var(--color-accent); }
.product-action.wishlist-toggle.is-active svg { fill: currentColor; }

/* ---------- Wishlist page ---------- */
.wishlist-page-wrap { padding-block: var(--space-md) var(--space-2xl); }
.wishlist-page-wrap .page-header { text-align: left; padding-block: var(--space-sm) var(--space-md); }
.wishlist-page-wrap .page-title { font-size: var(--fs-h2); }
.aurelia-wishlist { margin-top: var(--space-sm); }
.aurelia-wishlist__bar { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-md); margin-bottom: var(--space-md); padding-bottom: var(--space-sm); border-bottom: 1px solid var(--color-border); }
.aurelia-wishlist__count { font-size: var(--fs-small); color: var(--color-muted); }

.wishlist-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-md); list-style: none; margin: 0; padding: 0; }
@media (max-width: 1024px) { .wishlist-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px)  { .wishlist-grid { grid-template-columns: repeat(2, 1fr); } }

.wishlist-card {
	position: relative; display: flex; flex-direction: column;
	border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden;
	background: var(--color-bg); transition: box-shadow var(--dur-2) var(--ease), transform var(--dur-2) var(--ease);
}
.wishlist-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-3px); }
.wishlist-card__remove {
	position: absolute; top: var(--space-2xs); right: var(--space-2xs); z-index: 2;
	width: 30px; height: 30px; display: grid; place-items: center;
	background: var(--color-bg); border-radius: 50%; box-shadow: var(--shadow-sm); color: var(--color-muted);
	transition: background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.wishlist-card__remove:hover { background: var(--color-error); color: #fff; }
.wishlist-card__media { display: block; aspect-ratio: var(--product-media-ratio); background: var(--color-surface); }
.wishlist-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wishlist-card__body { padding: var(--space-sm) var(--space-sm) var(--space-2xs); display: grid; gap: 4px; flex: 1; }
.wishlist-card__title { font-size: var(--fs-small); font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.wishlist-card__price { font-weight: 600; font-size: var(--fs-small); }
.wishlist-card__price del { color: var(--color-muted); font-weight: 400; margin-right: 4px; }
.wishlist-card__price ins { text-decoration: none; }
.wishlist-card__actions { padding: 0 var(--space-sm) var(--space-sm); }
.wishlist-card__add, .wishlist-card__actions .button { width: 100%; padding-inline: 0.6em; font-size: var(--fs-caption); }
.wishlist-card .added_to_cart { display: block; text-align: center; margin: var(--space-2xs) 0 0; }

.wishlist-empty {
	text-align: center; max-width: 460px; margin: var(--space-xl) auto; padding: var(--space-xl) var(--space-md);
	border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg);
}
.wishlist-empty__icon {
	display: inline-grid; place-items: center; width: 76px; height: 76px; margin-bottom: var(--space-md);
	border-radius: 50%; background: color-mix(in srgb, var(--color-accent) 12%, transparent); color: var(--color-accent);
}
.wishlist-empty h2 { font-size: var(--fs-h3); margin-bottom: var(--space-2xs); }
.wishlist-empty p { color: var(--color-muted); margin-bottom: var(--space-lg); }

/* ---------- Size guide ---------- */
.size-guide-trigger { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; padding: 0; font-size: var(--fs-small); margin-bottom: var(--space-2xs); cursor: pointer; }
.size-guide-trigger span { border-bottom: 1px solid currentColor; }
.size-guide-content table { width: 100%; border-collapse: collapse; margin-top: var(--space-md); }
.size-guide-content th, .size-guide-content td { border: 1px solid var(--color-border); padding: var(--space-2xs) var(--space-sm); text-align: left; font-size: var(--fs-small); }
.size-guide-content th { background: var(--color-surface); }

/* ---------- Frequently bought together ---------- */
.frequently-bought .fbt__grid { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); margin-block: var(--space-lg); }
.fbt__item { position: relative; width: 150px; }
.fbt__check { position: absolute; top: 6px; left: 6px; z-index: 2; }
.fbt__media img { width: 100%; aspect-ratio: var(--product-media-ratio); object-fit: cover; border-radius: var(--radius-sm); background: var(--color-surface); }
.fbt__name { display: block; font-size: var(--fs-caption); margin-top: 4px; line-height: 1.3; }
.fbt__price { font-size: var(--fs-small); font-weight: 600; }
.fbt__plus { color: var(--color-muted); }
.fbt__total { font-size: var(--fs-body); margin-bottom: var(--space-sm); }
.fbt__total strong { font-size: var(--fs-h4); }

/* ---------- Complete the look / carousels ---------- */
.complete-the-look, .frequently-bought, .product-faq { grid-column: 1 / -1; }

/* ---------- Product FAQ ---------- */
.faq-list { display: grid; gap: var(--space-2xs); max-width: 760px; }
.faq-item { border-bottom: 1px solid var(--color-border); padding: var(--space-sm) 0; }
.faq-item summary { font-weight: 600; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: var(--space-sm); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; font-size: 1.2em; }
.faq-item[open] summary::after { content: "\2212"; }
.faq-answer { padding-top: var(--space-2xs); color: var(--color-muted); }

/* ---------- Checkout trust ---------- */
.checkout-trust { display: flex; flex-wrap: wrap; gap: var(--space-md); margin-block: var(--space-sm); font-size: var(--fs-small); color: var(--color-muted); }
.checkout-trust li { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- Mini-cart recommendations ---------- */
.mini-cart-recs { margin-top: var(--space-md); border-top: 1px solid var(--color-border); padding-top: var(--space-md); }
.mini-cart-recs h3 { font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: var(--space-2xs); }
.mini-cart-recs .carousel-track { grid-auto-columns: 120px; }

/* mini-cart item list */
.aurelia-mini-cart { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-sm); }
.woocommerce-mini-cart-item { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: var(--space-sm); align-items: start; padding-right: var(--space-md); }
.mini-cart-item__media img { width: 60px; height: 60px; object-fit: cover; border-radius: var(--radius-xs); background: var(--color-surface); }
.mini-cart-item__name { display: block; font-size: var(--fs-small); font-weight: 500; line-height: 1.35; }
.woocommerce-mini-cart-item .quantity { font-size: var(--fs-caption); color: var(--color-muted); }
.woocommerce-mini-cart-item .remove { position: absolute; top: 0; right: 0; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: var(--color-surface); font-size: 0.85rem; line-height: 1; }
.woocommerce-mini-cart-item .remove:hover { background: var(--color-error); color: #fff; }
.woocommerce-mini-cart__total { display: flex; justify-content: space-between; padding: var(--space-sm) 0; margin-top: var(--space-sm); border-top: 1px solid var(--color-border); font-weight: 600; }
.woocommerce-mini-cart__buttons { display: grid; gap: var(--space-2xs); }
.woocommerce-mini-cart__buttons .button { width: 100%; }
.woocommerce-mini-cart__buttons .checkout { order: -1; }
.woocommerce-mini-cart__empty-message { color: var(--color-muted); }
.mini-cart-drawer__body { display: flex; flex-direction: column; }

/* ---------- Empty cart ---------- */
.cart-empty-premium__icon { display: inline-grid; place-items: center; width: 88px; height: 88px; border-radius: 50%; background: var(--color-surface); margin-bottom: var(--space-md); }
.cart-empty-premium__cats ul { display: flex; flex-wrap: wrap; gap: var(--space-2xs); justify-content: center; margin-top: var(--space-2xs); }
.cart-empty-premium__cats a { padding: 0.4em 0.9em; border: 1px solid var(--color-border); border-radius: var(--radius-pill); font-size: var(--fs-small); }
.cart-empty-premium__products { margin-top: var(--space-xl); text-align: left; }

/* ---------- My account with icons ---------- */
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; gap: var(--space-2xs); }

/* ---------- Variation gallery swap ---------- */
.woocommerce-product-gallery.is-variation-swapped .woocommerce-product-gallery__image:first-child img { transition: opacity var(--dur-2) var(--ease); }
