/**
 * Aquaform — WooCommerce styles.
 *
 * Covers: product cards and loops, shop archive with filter rail, product detail
 * (gallery, buy box, trust grid, tabs, specifications), cart, checkout,
 * order confirmation, my account and brand archives.
 */

/* =========================================================================
   1. Woo resets
   ========================================================================= */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	list-style: none;
	margin: 0 0 24px;
	padding: 16px 20px;
	border: 1px solid var(--aq-line);
	border-left: 3px solid var(--aq-accent);
	border-radius: 0 var(--aq-radius) var(--aq-radius) 0;
	background: var(--aq-surface);
	font-size: 14px;
	font-weight: 600;
	color: var(--aq-ink-2);
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.woocommerce-message { border-left-color: var(--aq-green); }
.woocommerce-error { border-left-color: #B3423A; flex-direction: column; align-items: flex-start; gap: 6px; }
.woocommerce-message .button,
.woocommerce-info .button { margin-left: auto; }

.woocommerce-Price-amount { font-weight: 800; white-space: nowrap; }
del .woocommerce-Price-amount { font-weight: 600; }

.aq-notices { padding-top: 24px; }
.aq-notices:empty { display: none; }

/* Generic Woo button → Aquaform button */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button,
a.button, button.button, input.button {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	min-height: 48px; padding: 9px 22px; border: 1px solid var(--aq-ink); border-radius: var(--aq-radius-btn);
	background: transparent; color: var(--aq-ink); font-family: var(--aq-sans);
	font-size: 13px; font-weight: 800; line-height: 1.25; cursor: pointer;
	letter-spacing: .09em; text-transform: uppercase;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
a.button:hover, button.button:hover {
	background: var(--aq-ink); color: #fff; border-color: var(--aq-ink);
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce button.button:disabled[disabled].alt {
	/* Primary Woo actions are ink now, not blue — the design retired the blue fill. */
	background: var(--aq-ink); border-color: var(--aq-ink); color: #fff; font-weight: 800;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: #0f1a2c; border-color: #0f1a2c; color: #fff;
}
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] { opacity: .45; cursor: not-allowed; }

/* quantity control */
.quantity.aq-qty {
	display: inline-flex; align-items: center; border: 1.5px solid var(--aq-line);
	border-radius: var(--aq-radius); height: 54px; overflow: hidden; background: #fff;
}
.aq-qty__btn {
	width: 46px; height: 100%; border: 0; background: transparent; color: var(--aq-muted);
	font-size: 18px; font-weight: 700; cursor: pointer; line-height: 1;
}
.aq-qty__btn:hover { color: var(--aq-ink); background: var(--aq-surface); }
.quantity.aq-qty input.qty {
	width: 52px; height: 100%; border: 0; text-align: center; font-size: 16px; font-weight: 800;
	padding: 0; line-height: 1; background: transparent; -moz-appearance: textfield;
}
.quantity.aq-qty input.qty::-webkit-outer-spin-button,
.quantity.aq-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity.aq-qty--sm { height: 42px; }
.quantity.aq-qty--sm .aq-qty__btn { width: 36px; font-size: 16px; }
.quantity.aq-qty--sm input.qty { width: 44px; font-size: 15px; }

/* =========================================================================
   2. Product card + loop grid
   ========================================================================= */
.aq-products {
	display: grid;
	grid-template-columns: repeat(var(--aq-cols, 4), minmax(0, 1fr));
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
	clear: both;
}
/* Woo's clearfix pseudo-elements become stray grid items — kill them. */
.aq-products::before, .aq-products::after,
.woocommerce ul.products.aq-products::before,
.woocommerce ul.products.aq-products::after { content: none; display: none; }
.aq-products--3 { --aq-cols: 3; }
.aq-products--2 { --aq-cols: 2; }

/* WooCommerce's own stylesheet floats loop items and gives them a percentage
   width. Inside a grid that produces narrow, misaligned cells, so reset it. */
.woocommerce ul.products.aq-products > li,
.aq-products > li {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	clear: none !important;
}

/* Product cards are borderless now — no box, no white plate, no hover lift.
   The image sits on the warm tint and the text hangs off the grid column, so
   the cards read as an editorial run rather than a row of tiles. */
.aq-card {
	border: 0; border-radius: 0; overflow: visible;
	background: none; display: flex; flex-direction: column; position: relative;
	margin: 0; width: auto; float: none;
}
.aq-card:hover { box-shadow: none; }

.aq-card__media { position: relative; display: block; height: 280px; background: var(--aq-tint); overflow: hidden; }
.aq-card__media img { width: 100%; height: 100%; object-fit: cover; }
.aq-card__media .aq-slot { width: 100%; height: 100%; }
.aq-products--3 .aq-card__media { height: 300px; }

.aq-card__badges { position: absolute; top: 12px; left: 12px; display: flex; flex-direction: column;
	gap: 6px; align-items: flex-start; z-index: 2; }
.aq-card__wish {
	position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border-radius: 50%;
	background: rgba(255, 255, 255, .9); border: 0; display: flex; align-items: center;
	justify-content: center; color: var(--aq-muted); font-size: 14px; z-index: 2;
}
.aq-card__wish:hover { color: var(--aq-gold); background: #fff; }

/* 2px of side padding, not 16px: the text lines up with the image edge. */
.aq-card__body { padding: 16px 2px 0; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.aq-card__brand { font-size: 10px; font-weight: 800; letter-spacing: .18em; color: var(--aq-gold);
	text-transform: uppercase; }
/* The family is pinned deliberately. Card titles are <h2>, and WordPress's
   global-styles inline sheet carries an `h2 { font-family: serif }` preset —
   with no family declared here, that preset won and the card titles rendered
   in Libre Baskerville. Only the price is serif in this design. */
.aq-card__title {
	font-family: var(--aq-sans); font-size: 14.5px; font-weight: 700;
	line-height: 1.4; min-height: 44px; margin: 0; letter-spacing: -.005em;
}
.aq-card__title a { color: var(--aq-ink); }
.aq-card__title a:hover { color: var(--aq-accent); }
.aq-card__price { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.aq-card__price .price { margin: 0; font-family: var(--aq-serif); font-size: 20px; font-weight: 700;
	color: var(--aq-ink); display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.aq-card__price del { font-family: var(--aq-sans); font-size: 13px; color: var(--aq-warm); font-weight: 600; opacity: 1; }
.aq-card__price ins { text-decoration: none; }
.aq-card__stock { font-size: 12px; font-weight: 600; color: var(--aq-green); }
.aq-card__stock--out { color: var(--aq-muted-2); }
.aq-card__actions { margin-top: auto; padding-top: 10px; display: flex; gap: 8px; }
.aq-card__actions .button,
.aq-card__actions .aq-btn { flex: 1; min-height: 46px; font-size: 12.5px; }
.aq-card .added_to_cart { display: none; }
.aq-card__actions .button.loading { opacity: .6; }

/* rating */
.aq-card .star-rating, .woocommerce .star-rating { color: var(--aq-gold); font-size: 13px; }

/* =========================================================================
   3. Shop archive
   ========================================================================= */
.aq-shop { display: grid; grid-template-columns: 264px minmax(0, 1fr); gap: 32px;
	padding-block: 24px 56px; align-items: start; }
.aq-shop--full { grid-template-columns: minmax(0, 1fr); }

.aq-filters { display: flex; flex-direction: column; gap: 26px; position: sticky; top: 24px; }
.aq-filters__head { display: flex; align-items: center; justify-content: space-between;
	padding-bottom: 14px; border-bottom: 1px solid var(--aq-line); }
.aq-filters__head span { font-size: 15px; font-weight: 800; }
.aq-filters__clear { font-size: 13px; font-weight: 700; }
.aq-filters__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.aq-filters__chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px;
	background: var(--aq-tint); border-radius: 20px; font-size: 12px; font-weight: 700; color: var(--aq-ink); }
.aq-filters__chip:hover { background: var(--aq-line); color: var(--aq-ink); }

.aq-filters .widget,
.aq-filter-group {
	display: flex; flex-direction: column; gap: 12px;
	padding-bottom: 22px; border-bottom: 1px solid var(--aq-line); margin: 0;
}
.aq-filters .widget-title,
.aq-filters .widget h2,
.aq-filter-group__title {
/* Family pinned: these are <h2>/<h3>, and WordPress's global-styles sheet
   ships an `h2 { font-family: serif }` preset that wins wherever no family is
   declared. Label-style headings must stay in the sans. */
	font-family: var(--aq-sans);
	font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
	margin: 0; color: var(--aq-ink); display: flex; align-items: center; justify-content: space-between;
}
.aq-filters ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.aq-filters li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 600;
	color: var(--aq-ink-2); }
.aq-filters li > a { flex: 1; color: var(--aq-ink-2); display: flex; align-items: center; gap: 10px; }
.aq-filters li > a::before {
	content: ""; width: 17px; height: 17px; border: 1.5px solid var(--aq-line-3);
	border-radius: 3px; flex-shrink: 0; display: block;
}
.aq-filters li.chosen > a::before,
.aq-filters li.current-cat > a::before {
	background: var(--aq-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.2l2.3 2.3 4.7-5'/%3E%3C/svg%3E") center/12px no-repeat;
	border-color: var(--aq-accent);
}
.aq-filters li .count { font-size: 12px; color: var(--aq-muted-2); font-weight: 600; }
.aq-filters .aq-help {
	padding: 20px; background: var(--aq-surface); border-radius: var(--aq-radius-lg);
	display: flex; flex-direction: column; gap: 8px; border: 0;
}
.aq-filters .aq-help__title { font-size: 14px; font-weight: 800; }
.aq-filters .aq-help p { font-size: 13px; line-height: 1.6; color: var(--aq-muted); margin: 0; }

.aq-toolbar {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 14px 18px; background: var(--aq-surface); border-radius: 8px; margin-bottom: 20px;
	flex-wrap: wrap;
}
.aq-toolbar__sort { display: flex; gap: 8px; font-size: 13px; font-weight: 700; flex-wrap: wrap; }
.aq-toolbar__sort a { padding: 7px 13px; border-radius: 20px; color: var(--aq-body); }
.aq-toolbar__sort a.is-active { background: var(--aq-ink); color: #fff; }
.aq-toolbar__sort a:hover:not(.is-active) { background: #fff; color: var(--aq-ink); }
.aq-toolbar__meta { display: flex; align-items: center; gap: 14px; font-size: 13px;
	font-weight: 600; color: var(--aq-body); }
.aq-toolbar .woocommerce-result-count { margin: 0; font-size: 13px; font-weight: 600; color: var(--aq-body); }
.aq-toolbar .woocommerce-ordering { margin: 0; }
.aq-toolbar .woocommerce-ordering select { height: 38px; line-height: normal; font-size: 13px;
	font-weight: 700; padding-block: 0; background-position: calc(100% - 18px) 16px, calc(100% - 13px) 16px; }

.aq-mobile-filter-bar { display: none; gap: 8px; padding-bottom: 12px; }
.aq-mobile-filter-bar .aq-btn { flex: 1; }

.woocommerce-no-products-found { padding: 48px 0; }

/* =========================================================================
   4. Product detail
   ========================================================================= */
.aq-pdp { padding-block: 8px 48px; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }

.aq-gallery { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 14px; align-items: start; }
.aq-gallery__thumbs { display: flex; flex-direction: column; gap: 10px; }
.aq-gallery__thumbs img,
.aq-gallery__thumbs .aq-slot { width: 88px; height: 88px; object-fit: cover;
	border: 1px solid var(--aq-line); border-radius: 8px; background: var(--aq-tint); }
.aq-gallery__thumbs .flex-active-slide img,
.aq-gallery__thumbs li.is-active img { border: 2px solid var(--aq-accent); }
.aq-gallery__main { background: var(--aq-tint); border-radius: var(--aq-radius-lg);
	min-height: 540px; overflow: hidden; position: relative; display: flex;
	align-items: center; justify-content: center; }
.aq-gallery__main img { width: 100%; height: auto; }
.aq-gallery .woocommerce-product-gallery__trigger {
	position: absolute; bottom: 16px; right: 16px; z-index: 5; background: #fff;
	border: 1px solid var(--aq-line); border-radius: 20px; padding: 8px 14px;
	font-size: 12px; font-weight: 700; color: var(--aq-ink);
}
.woocommerce-product-gallery { position: relative; }
.woocommerce-product-gallery img { display: block; }
.flex-control-thumbs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.flex-control-thumbs li { width: 88px; }
.flex-control-thumbs img { cursor: pointer; opacity: .75; }
.flex-control-thumbs img.flex-active, .flex-control-thumbs img:hover { opacity: 1; }

.aq-buybox { display: flex; flex-direction: column; gap: 18px; }
.aq-buybox__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.aq-buybox__brand { font-size: 11px; font-weight: 800; letter-spacing: .12em;
	color: var(--aq-muted-2); text-transform: uppercase; }
.aq-buybox__dealer { font-size: 12px; font-weight: 700; color: var(--aq-gold); }
.aq-buybox h1.product_title {
	margin: 0; font-family: var(--aq-serif); font-size: 34px; line-height: 1.22;
	font-weight: 700; letter-spacing: -.005em;
}
.aq-buybox .woocommerce-product-rating { display: flex; align-items: center; gap: 14px;
	font-size: 13.5px; font-weight: 600; color: var(--aq-muted); margin: 0; }
.aq-buybox .woocommerce-product-rating .woocommerce-review-link { color: var(--aq-muted); }
.aq-buybox__sku { font-size: 13.5px; font-weight: 600; color: var(--aq-muted); }

.aq-buybox .price,
.aq-buybox .aq-price-row {
	display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin: 0;
	padding: 20px 0; border-top: 1px solid var(--aq-line); border-bottom: 1px solid var(--aq-line);
	font-size: 38px; font-weight: 800; letter-spacing: -.02em; color: var(--aq-ink);
}
.aq-buybox .price del { font-size: 19px; color: var(--aq-muted-2); font-weight: 600;
	padding-bottom: 6px; opacity: 1; }
.aq-buybox .price ins { text-decoration: none; }
.aq-buybox .price .aq-save { background: var(--aq-ink); color: var(--aq-gold-light); font-size: 10.5px;
	font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
	padding: 6px 10px; border-radius: 0; margin-bottom: 9px; }

.aq-buybox .variations { border: 0; margin: 0; width: 100%; }
.aq-buybox .variations tr { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.aq-buybox .variations th, .aq-buybox .variations td { border: 0; padding: 0; text-align: left; }
.aq-buybox .variations label { font-size: 13px; font-weight: 800; letter-spacing: .06em;
	text-transform: uppercase; margin: 0; color: var(--aq-ink); }
.aq-buybox .reset_variations { font-size: 13px; font-weight: 700; }

.aq-buybox__wish { width: 54px; height: 54px; border: 1.5px solid var(--aq-line);
	border-radius: var(--aq-radius); display: flex; align-items: center; justify-content: center;
	color: var(--aq-muted); font-size: 17px; flex-shrink: 0; }
.aq-buybox__wish:hover { color: var(--aq-gold); border-color: var(--aq-gold); }

.aq-buybox__alt { display: flex; gap: 12px; flex-wrap: wrap; }
.aq-buybox__alt .aq-btn { flex: 1; min-height: 54px; min-width: 200px; }

.aq-trust {
	display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 18px;
	background: var(--aq-surface); border-radius: var(--aq-radius-lg);
	font-size: 13px; font-weight: 600; color: var(--aq-ink-2);
}
.aq-emi { display: flex; align-items: center; gap: 12px; padding: 14px 18px;
	border: 1px dashed var(--aq-line-3); border-radius: 8px; font-size: 13.5px; font-weight: 600; }
.aq-emi__tag { font-weight: 800; color: var(--aq-accent); }
.aq-reserve { display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
	font-size: 13.5px; font-weight: 600; color: var(--aq-muted); }
.aq-reserve strong { color: var(--aq-ink); font-weight: 800; }

/* tabs */
.woocommerce-tabs { padding-block: 0 56px; }
.woocommerce-tabs ul.tabs {
	display: flex; gap: 0; list-style: none; margin: 0; padding: 0;
	border-bottom: 1px solid var(--aq-line); font-size: 15px; font-weight: 700;
	overflow-x: auto; scrollbar-width: none;
}
.woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
.woocommerce-tabs ul.tabs li a { display: block; padding: 16px 24px 14px; color: var(--aq-muted-2);
	white-space: nowrap; }
.woocommerce-tabs ul.tabs li.active a { color: var(--aq-ink); box-shadow: inset 0 -3px 0 var(--aq-ink); }
.woocommerce-tabs .panel { padding-top: 32px; }
.woocommerce-tabs .panel > h2 {
	font-family: var(--aq-serif); font-size: 22px; font-weight: 700;
	letter-spacing: -.015em; margin-bottom: 14px;
}
.woocommerce-tabs .panel p { font-size: 15.5px; line-height: 1.75; color: var(--aq-ink-3); }

.aq-pdp-detail { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: start; }
.aq-specs { border: 1px solid var(--aq-line); border-radius: var(--aq-radius-lg); overflow: hidden; }
.aq-specs__head { padding: 14px 18px; background: var(--aq-surface); font-size: 13px;
	font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.aq-specs table, .shop_attributes { width: 100%; border-collapse: collapse; margin: 0; }
.aq-specs tr, .shop_attributes tr { border-top: 1px solid var(--aq-line); }
.aq-specs th, .aq-specs td,
.shop_attributes th, .shop_attributes td {
	padding: 13px 18px; font-size: 13.5px; text-align: left; border: 0;
}
.aq-specs th, .shop_attributes th { color: var(--aq-muted); font-weight: 600; }
.aq-specs td, .shop_attributes td { font-weight: 700; text-align: right; }
.shop_attributes td p { margin: 0; }

.aq-inbox { display: flex; flex-direction: column; gap: 9px; margin-top: 6px; }
.aq-inbox__title { font-size: 14px; font-weight: 800; }
.aq-inbox li { font-size: 14.5px; color: var(--aq-ink-3); font-weight: 500; list-style: none; }
.aq-inbox ul { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.aq-inbox li::before { content: "— "; color: var(--aq-muted-2); }

.related.products, .upsells.products, .aq-complete-set { padding-block: 0 56px; }
.related.products > h2, .upsells.products > h2, .aq-complete-set > h2 {
	font-family: var(--aq-serif); font-size: 28px; font-weight: 700;
	letter-spacing: -.015em; margin: 0 0 20px;
}

/* reviews */
.woocommerce-Reviews-title {
	font-family: var(--aq-serif); font-size: 22px; font-weight: 700;
	letter-spacing: -.015em; margin: 0 0 16px;
}
#reviews .commentlist { list-style: none; margin: 0; padding: 0; }
#reviews .comment_container { display: flex; gap: 16px; padding: 20px 0; border-top: 1px solid var(--aq-line); }
#reviews .comment_container img { width: 48px; height: 48px; border-radius: 50%; }
#reviews .comment-text { flex: 1; }
#reviews .meta { font-size: 13px; color: var(--aq-muted); font-weight: 600; }
#review_form .comment-form { display: flex; flex-direction: column; gap: 14px; }
#review_form .comment-form-rating { margin: 0; }

/* =========================================================================
   5. Cart
   ========================================================================= */
.aq-cart { padding-block: 40px 56px; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; }
.aq-cart__title { margin: 0 0 22px; font-family: var(--aq-serif); font-size: 32px; font-weight: 700; }
.aq-cart__title span { font-family: var(--aq-sans); font-size: 17px; font-weight: 700; color: var(--aq-muted-2); }

.aq-cart-table { border: 1px solid var(--aq-line); border-radius: var(--aq-radius-lg); overflow: hidden;
	width: 100%; border-collapse: collapse; }
.aq-cart-table thead th {
	padding: 14px 20px; background: var(--aq-surface); font-size: 12px; font-weight: 800;
	letter-spacing: .08em; text-transform: uppercase; color: var(--aq-muted); text-align: left; border: 0;
}
.aq-cart-table thead th.aq-col-total { text-align: right; }
.aq-cart-table tbody td { padding: 20px; border-top: 1px solid var(--aq-line); vertical-align: middle; }
.aq-cart-table .aq-cart-item { display: flex; gap: 16px; align-items: center; }
.aq-cart-table .aq-cart-item__thumb { width: 84px; height: 84px; border-radius: 8px; overflow: hidden;
	flex-shrink: 0; background: var(--aq-tint); }
.aq-cart-table .aq-cart-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.aq-cart-table .aq-cart-item__meta { display: flex; flex-direction: column; gap: 5px; }
.aq-cart-table .aq-cart-item__brand { font-size: 11px; font-weight: 800; letter-spacing: .1em;
	color: var(--aq-muted-2); text-transform: uppercase; }
.aq-cart-table .aq-cart-item__name { font-size: 14.5px; font-weight: 700; line-height: 1.4; }
.aq-cart-table .aq-cart-item__name a { color: var(--aq-ink); }
.aq-cart-table .aq-cart-item__variation,
.aq-cart-table .variation { font-size: 12.5px; color: var(--aq-muted); font-weight: 600; margin: 0; }
.aq-cart-table .variation dt, .aq-cart-table .variation dd { display: inline; margin: 0; }
.aq-cart-table .aq-remove { font-size: 12.5px; font-weight: 700; color: var(--aq-accent); background: none;
	border: 0; padding: 0; cursor: pointer; text-align: left; }
.aq-cart-table .aq-col-price { font-size: 15px; font-weight: 700; }
.aq-cart-table .aq-col-total { font-size: 16px; font-weight: 800; text-align: right; }

.aq-cart__actions { display: flex; gap: 12px; align-items: center; margin-top: 22px; flex-wrap: wrap; }
.aq-coupon { display: flex; gap: 12px; align-items: center; flex: 1; max-width: 460px; }
.aq-coupon input { max-width: 320px; height: 48px; line-height: 46px; }
.aq-coupon .aq-btn { min-height: 48px; }

.aq-addon { padding: 20px; background: var(--aq-surface); border-radius: var(--aq-radius-lg);
	display: flex; align-items: center; gap: 14px; margin-top: 22px; }
.aq-addon__icon { font-size: 20px; }
.aq-addon__title { font-size: 14.5px; font-weight: 800; }
.aq-addon__body { font-size: 13px; color: var(--aq-muted); margin-top: 3px; }

.aq-summary { align-self: start; border: 1px solid var(--aq-line); border-radius: var(--aq-radius-lg);
	padding: 24px; display: flex; flex-direction: column; gap: 14px; position: sticky; top: 24px; background: #fff; }
.aq-summary__title { font-size: 17px; font-weight: 800; }
.aq-summary table { width: 100%; border-collapse: collapse; }
.aq-summary th, .aq-summary td { border: 0; padding: 0 0 12px; font-size: 14px; font-weight: 600;
	color: var(--aq-body); text-align: left; }
.aq-summary td { text-align: right; font-weight: 700; color: var(--aq-ink); }
.aq-summary .order-total th, .aq-summary .order-total td {
	border-top: 1px solid var(--aq-line); padding-top: 14px; font-size: 16px; font-weight: 800; color: var(--aq-ink);
}
.aq-summary .order-total td { font-size: 26px; }
.aq-summary .order-total .woocommerce-Price-amount { font-size: 26px; }
.aq-summary .wc-proceed-to-checkout { padding: 0; }
.aq-summary .checkout-button { width: 100%; min-height: 52px; font-size: 15.5px; font-weight: 800;
	background: var(--aq-ink); border-color: var(--aq-ink); color: #fff; }
.aq-summary__note { font-size: 12.5px; color: var(--aq-muted); line-height: 1.6; text-align: center; }
.aq-summary .shipping-calculator-button { font-size: 13px; font-weight: 700; }

.cart-empty, .wc-empty-cart-message { text-align: center; }

/* =========================================================================
   6. Checkout
   ========================================================================= */
.aq-checkout-steps { display: flex; gap: 26px; font-size: 13.5px; font-weight: 700;
	margin-left: auto; flex-wrap: wrap; }
.aq-checkout-steps span { color: var(--aq-muted-2); }
.aq-checkout-steps .is-current { color: var(--aq-accent); }
.aq-checkout-steps .is-done { color: var(--aq-ink); }

.aq-checkout { padding-block: 40px 56px; display: grid; grid-template-columns: minmax(0, 1fr) 400px;
	gap: 48px; align-items: start; }
.aq-checkout__main { display: flex; flex-direction: column; gap: 28px; max-width: 680px; }
.aq-checkout h2, .aq-checkout h3 { font-family: var(--aq-sans); font-size: 20px;
	font-weight: 800; margin: 0 0 16px; }
.aq-checkout .woocommerce-billing-fields__field-wrapper,
.aq-checkout .woocommerce-shipping-fields__field-wrapper,
.aq-checkout .woocommerce-additional-fields__field-wrapper {
	display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
.aq-checkout .form-row { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.aq-checkout .form-row-wide,
.aq-checkout .form-row.notes { grid-column: 1 / -1; }
.aq-checkout .form-row label { margin: 0; }
.aq-checkout abbr.required { color: var(--aq-gold); text-decoration: none; }
.aq-checkout .select2-container .select2-selection--single { height: 48px; border: 1.5px solid var(--aq-line);
	border-radius: var(--aq-radius); }
.aq-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 46px; padding-left: 14px; color: var(--aq-ink); font-size: 14px; }
.aq-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }

#shipping_method { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
#shipping_method li { border: 1.5px solid var(--aq-line); border-radius: 8px; padding: 16px 18px;
	display: flex; align-items: center; gap: 14px; font-size: 14.5px; font-weight: 700; }
#shipping_method li:has(input:checked) { border: 2px solid var(--aq-accent); }
#shipping_method label { margin: 0; font-size: 14.5px; font-weight: 700; color: var(--aq-ink); flex: 1;
	display: flex; align-items: center; justify-content: space-between; gap: 14px; }

.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 0;
	border: 0; display: flex; flex-direction: column; gap: 12px; }
.woocommerce-checkout #payment ul.payment_methods li {
	border: 1.5px solid var(--aq-line); border-radius: 8px; padding: 15px 18px; margin: 0;
	font-size: 14.5px; font-weight: 700;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border: 2px solid var(--aq-accent); }
.woocommerce-checkout #payment ul.payment_methods li label { display: inline-flex; align-items: center;
	gap: 10px; margin: 0; font-size: 14.5px; font-weight: 700; color: var(--aq-ink); }
.woocommerce-checkout #payment div.payment_box { background: var(--aq-surface); border-radius: 8px;
	margin: 12px 0 0; padding: 14px 16px; font-size: 13px; color: var(--aq-muted); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .form-row.place-order { padding: 0; margin-top: 24px; }
.woocommerce-checkout #payment #place_order { width: 100%; height: 56px; font-size: 16px;
	font-weight: 800; background: var(--aq-ink); border-color: var(--aq-ink); color: #fff; }
.woocommerce-checkout #payment #place_order:hover { background: #0f1a2c; }
.woocommerce-privacy-policy-text { font-size: 12.5px; color: var(--aq-muted); }

.aq-order-review { align-self: start; background: var(--aq-surface); border-radius: var(--aq-radius-lg);
	padding: 24px; display: flex; flex-direction: column; gap: 16px; position: sticky; top: 24px; }
.aq-order-review__title { font-size: 16px; font-weight: 800; }
.aq-order-review table { width: 100%; border-collapse: collapse; }
.aq-order-review th, .aq-order-review td { border: 0; padding: 0 0 9px; font-size: 13.5px;
	font-weight: 600; color: var(--aq-body); text-align: left; }
.aq-order-review td { text-align: right; font-weight: 700; color: var(--aq-ink); }
.aq-order-review tfoot tr:first-child th, .aq-order-review tfoot tr:first-child td { padding-top: 14px;
	border-top: 1px solid var(--aq-line-2); }
.aq-order-review .order-total th { font-size: 15px; font-weight: 800; color: var(--aq-ink); }
.aq-order-review .order-total td, .aq-order-review .order-total .woocommerce-Price-amount { font-size: 24px; }
.aq-order-review .cart_item td.product-name { display: flex; gap: 14px; align-items: center;
	text-align: left; font-weight: 700; font-size: 13.5px; line-height: 1.4; }
.aq-order-review .cart_item img { width: 60px; height: 60px; border-radius: 6px; object-fit: cover;
	background: var(--aq-slot); flex-shrink: 0; }
.aq-order-review .product-quantity { display: block; font-size: 12px; color: var(--aq-muted);
	font-weight: 600; margin-top: 3px; }

/* login / coupon toggles */
.woocommerce-form-login, .woocommerce-form-coupon {
	border: 1px solid var(--aq-line); border-radius: var(--aq-radius-lg); padding: 22px; margin-bottom: 20px;
}
.woocommerce-form-login .form-row { margin-bottom: 14px; }

/* =========================================================================
   7. Order received
   ========================================================================= */
.aq-thankyou { padding-block: 56px 72px; max-width: 660px; }
.aq-thankyou__tick { width: 56px; height: 56px; border-radius: 50%; background: var(--aq-green);
	color: #fff; display: flex; align-items: center; justify-content: center; font-size: 24px;
	margin-bottom: 18px; }
.aq-thankyou h1 { font-family: var(--aq-serif); font-size: 34px; font-weight: 700; margin: 0 0 14px; }
.aq-thankyou__lede { font-size: 16px; line-height: 1.7; color: var(--aq-body); margin-bottom: 22px; }
.aq-thankyou__panel { border: 1px solid var(--aq-line); border-radius: var(--aq-radius-lg);
	padding: 20px; display: flex; flex-direction: column; gap: 11px; margin-bottom: 22px; }
.aq-thankyou__row { display: flex; justify-content: space-between; gap: 16px;
	font-size: 13.5px; font-weight: 600; color: var(--aq-body); }
.aq-thankyou__row strong { font-weight: 700; color: var(--aq-ink); }
.aq-thankyou__total { display: flex; justify-content: space-between; align-items: baseline;
	padding-top: 12px; border-top: 1px solid var(--aq-line); }
.aq-thankyou__total span:first-child { font-size: 15px; font-weight: 800; }
.aq-thankyou__total .woocommerce-Price-amount { font-size: 22px; font-weight: 800; }
.aq-thankyou__cta { display: flex; gap: 10px; flex-wrap: wrap; }

.woocommerce-order-details, .woocommerce-customer-details { margin-top: 40px; }
.woocommerce-order-details h2, .woocommerce-customer-details h2 {
	font-family: var(--aq-serif); font-size: 22px; font-weight: 700;
	letter-spacing: -.015em; margin-bottom: 14px; }
.woocommerce-table--order-details, .woocommerce-table { width: 100%; border-collapse: collapse;
	border: 1px solid var(--aq-line); border-radius: var(--aq-radius-lg); overflow: hidden; }
.woocommerce-table th, .woocommerce-table td { padding: 14px 18px; border-bottom: 1px solid var(--aq-line);
	text-align: left; font-size: 14px; }
.woocommerce-table thead th { background: var(--aq-surface); font-size: 12px; font-weight: 800;
	letter-spacing: .08em; text-transform: uppercase; color: var(--aq-muted); }

/* =========================================================================
   8. My account
   ========================================================================= */
.aq-account { padding-block: 40px 56px; display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 40px;
	align-items: start; }
.aq-account__user { display: flex; align-items: center; gap: 14px; padding-bottom: 20px;
	border-bottom: 1px solid var(--aq-line); margin-bottom: 20px; }
.aq-account__avatar { width: 52px; height: 52px; border-radius: 50%; background: var(--aq-tint);
	display: flex; align-items: center; justify-content: center; font-size: 17px; font-weight: 800;
	color: var(--aq-body); flex-shrink: 0; overflow: hidden; }
.aq-account__avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.aq-account__name { font-size: 15px; font-weight: 800; }
.aq-account__contact { font-size: 12.5px; color: var(--aq-muted-2); font-weight: 600; margin-top: 2px; }

.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0;
	display: flex; flex-direction: column; gap: 4px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 11px 14px; border-radius: var(--aq-radius);
	font-size: 14px; font-weight: 700; color: var(--aq-ink-2); }
.woocommerce-MyAccount-navigation a:hover { background: var(--aq-surface); color: var(--aq-ink); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--aq-ink); color: #fff; }

.woocommerce-MyAccount-content { display: flex; flex-direction: column; gap: 28px; }
.woocommerce-MyAccount-content h1,
.woocommerce-MyAccount-content > h2:first-child { margin: 0; font-family: var(--aq-serif);
	font-size: 30px; font-weight: 700; }

.aq-account-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.aq-account-stat { padding: 22px; background: var(--aq-surface); border-radius: var(--aq-radius-lg); }
.aq-account-stat__label { font-size: 12px; font-weight: 800; letter-spacing: .08em;
	text-transform: uppercase; color: var(--aq-muted); }
.aq-account-stat__value { font-size: 20px; font-weight: 800; margin-top: 8px; }
.aq-account-stat__note { font-size: 13px; font-weight: 600; margin-top: 4px; color: var(--aq-muted); }
.aq-account-stat__note a { font-weight: 700; }

.aq-account-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.aq-account-card { border: 1px solid var(--aq-line); border-radius: var(--aq-radius-lg); padding: 22px;
	display: flex; flex-direction: column; gap: 9px; }
.aq-account-card__label { font-size: 12px; font-weight: 800; letter-spacing: .08em;
	text-transform: uppercase; color: var(--aq-muted); }
.aq-account-card address { font-size: 14.5px; line-height: 1.65; font-weight: 600; font-style: normal; }
.aq-account-card p { font-size: 14.5px; line-height: 1.65; color: var(--aq-body); margin: 0; }

.woocommerce-orders-table { width: 100%; border-collapse: collapse; border: 1px solid var(--aq-line);
	border-radius: var(--aq-radius-lg); overflow: hidden; }
.woocommerce-orders-table th { background: var(--aq-surface); padding: 13px 20px; text-align: left;
	font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--aq-muted); }
.woocommerce-orders-table td { padding: 16px 20px; border-top: 1px solid var(--aq-line); font-size: 14px; }
.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a { font-weight: 800; color: var(--aq-ink); }
.woocommerce-orders-table .woocommerce-orders-table__cell-order-status { font-weight: 700; }
.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions { text-align: right; }
.woocommerce-orders-table .button { min-height: 38px; padding: 7px 14px; font-size: 13px; }

.woocommerce-EditAccountForm, .woocommerce-address-fields { max-width: 620px; }
.woocommerce-EditAccountForm fieldset { border: 1px solid var(--aq-line); border-radius: var(--aq-radius-lg);
	padding: 22px; margin: 24px 0 0; }
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.woocommerce-Address { border: 1px solid var(--aq-line); border-radius: var(--aq-radius-lg); padding: 22px; }
.woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.woocommerce-Address address { font-style: normal; font-size: 14.5px; line-height: 1.65; }

.woocommerce-form-login, .woocommerce-form-register { max-width: 520px; }
.woocommerce-account .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }

/* =========================================================================
   9. Brand archive
   ========================================================================= */
.aq-brands-index { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }

/* =========================================================================
   10. Responsive
   ========================================================================= */
@media (max-width: 1200px) {
	.aq-products { --aq-cols: 3; }
	.aq-cart, .aq-checkout { grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; }
	.aq-brands-index { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
	.aq-shop { grid-template-columns: minmax(0, 1fr); }
	.aq-filters { position: static; }
	.aq-pdp { grid-template-columns: 1fr; gap: 32px; }
	.aq-gallery__main { min-height: 0; }
	.aq-pdp-detail { grid-template-columns: 1fr; gap: 28px; }
	.aq-cart, .aq-checkout, .aq-account { grid-template-columns: minmax(0, 1fr); }
	.aq-summary, .aq-order-review { position: static; }
	.aq-account__nav { order: 2; }
}

@media (max-width: 860px) {
	.aq-products { --aq-cols: 2; gap: 12px; }
	.aq-card__media { height: 190px; }
	/* Restated at Woo's specificity: the `.woocommerce ul.products.aq-products
	   li.product …` block near the end of this file outranks the plain class,
	   so a bare `.aq-card__*` override here would never apply. */
	.aq-card__title,
	.woocommerce ul.products.aq-products li.product .woocommerce-loop-product__title { font-size: 14px; min-height: 44px; }
	.aq-card__price .price,
	.woocommerce ul.products.aq-products li.product .price,
	.woocommerce ul.products.aq-products li.product .price ins { font-size: 18px; }
	.aq-card__brand { font-size: 10px; letter-spacing: .16em; }
	.aq-card__body { padding: 15px 2px 0; }
	.aq-card__actions .button, .aq-card__actions .aq-btn { min-height: 44px; font-size: 11.5px; padding: 8px; letter-spacing: .08em; }
	.aq-card__wish { display: none; }

	.aq-mobile-filter-bar { display: flex; }

	/* Sort links wrapped onto three lines at 390px. Keep them on one
	   horizontally scrollable row, with the result count above. */
	.aq-toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
		padding: 12px 14px;
	}
	.aq-toolbar__meta {
		order: -1;
		font-size: 12.5px;
		color: var(--aq-muted);
	}
	.aq-toolbar__sort {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		gap: 6px;
		margin: 0 -14px;
		padding: 0 14px;
	}
	.aq-toolbar__sort::-webkit-scrollbar { display: none; }
	.aq-toolbar__sort a { white-space: nowrap; flex: 0 0 auto; }
	.aq-filters {
		position: fixed; inset: auto 0 0 0; z-index: 210; background: #fff;
		border-radius: 18px 18px 0 0; padding: 18px 16px calc(20px + env(safe-area-inset-bottom));
		max-height: 82vh; overflow-y: auto; transform: translateY(100%);
		transition: transform .22s ease; box-shadow: 0 -12px 40px rgba(22,35,58,.2);
	}
	.aq-filters.is-open { transform: none; }
	.aq-filters::before { content: ""; display: block; width: 44px; height: 4px;
		background: var(--aq-line-2); border-radius: 4px; margin: 0 auto 16px; }
	.aq-filters__scrim { position: fixed; inset: 0; background: rgba(22,35,58,.35); z-index: 205;
		opacity: 0; visibility: hidden; transition: opacity .2s ease; }
	.aq-filters__scrim.is-open { opacity: 1; visibility: visible; }
	.aq-filters__apply { display: flex; gap: 10px; margin-top: 18px; }

	.aq-buybox h1.product_title { font-size: 23px; }
	.aq-buybox .price, .aq-buybox .aq-price-row { font-size: 30px; }
	.aq-gallery { grid-template-columns: 1fr; }
	.aq-gallery__thumbs, .flex-control-thumbs { flex-direction: row; overflow-x: auto; }
	.aq-trust { grid-template-columns: 1fr; }
	/* Stack them. Side by side on a phone each button is ~165px wide, which
	   forces "Call to order — 09612-345678" onto three cramped lines. One per
	   row gives the full column width and a single line. */
	.aq-buybox__alt { flex-direction: column; }
	.aq-buybox__alt .aq-btn { min-width: 0; width: 100%; }

	.aq-cart-table thead { display: none; }
	.aq-cart-table, .aq-cart-table tbody, .aq-cart-table tr, .aq-cart-table td { display: block; width: 100%; }
	.aq-cart-table tr { border-top: 1px solid var(--aq-line); padding: 16px 0; }
	.aq-cart-table tbody td { border: 0; padding: 4px 16px; }
	.aq-cart-table .aq-col-price { display: none; }
	.aq-cart-table .aq-col-total { text-align: left; }
	.aq-checkout .woocommerce-billing-fields__field-wrapper,
	.aq-checkout .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
	.aq-account-stats, .aq-account-cards, .woocommerce-Addresses,
	.woocommerce-account .u-columns { grid-template-columns: 1fr; }
	.aq-brands-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce-orders-table thead { display: none; }
	.woocommerce-orders-table, .woocommerce-orders-table tbody,
	.woocommerce-orders-table tr, .woocommerce-orders-table td { display: block; width: 100%; }
	.woocommerce-orders-table tr { border-top: 1px solid var(--aq-line); padding: 12px 0; }
	.woocommerce-orders-table td { border: 0; padding: 4px 20px; }
	.woocommerce-orders-table td::before { content: attr(data-title) ": "; font-weight: 800;
		color: var(--aq-muted); font-size: 12px; }
	.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions { text-align: left; padding-top: 10px; }

	/* Mobile add-to-cart bar.
	   Fixed, not sticky. As the last child of div.product a sticky element
	   unpins the moment that block ends, so scrolling to the footer left the
	   buy bar parked mid-page with the footer underneath it — it read as a
	   detached floating panel rather than a bar. Fixed keeps it on the bottom
	   edge for the whole page; .aq-main reserves the height below so the last
	   row of the footer is never permanently covered.
	   The offset clears the tab bar, which is sticky at bottom:0 with a higher
	   z-index — without it the two stack and the tab bar hides the buy button. */
	.aq-sticky-atc {
		position: fixed; left: 0; right: 0; bottom: var(--aq-tabbar-h);
		z-index: 85; background: #fff;
		border-top: 1px solid var(--aq-line);
		padding: 12px 16px;
		display: flex; gap: 10px; align-items: center;
	}
	.single-product .aq-main { padding-bottom: 84px; }
	.aq-sticky-atc .aq-btn { min-height: 52px; }
	/* 15.5px uppercase with letter-spacing pushed "Add to cart · ৳12,450" onto
	   two lines on a 360px screen. */
	.aq-sticky-atc .aq-btn--accent { flex: 1; font-size: 13.5px; letter-spacing: .05em; }
}

@media (min-width: 861px) {
	.aq-sticky-atc { display: none; }
}

/* =========================================================================
   11. Core gallery, rewired to the design's left-hand thumbnail rail
   ========================================================================= */
.aq-pdp__gallery .woocommerce-product-gallery {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
	position: relative;
}
.aq-pdp__gallery .woocommerce-product-gallery__wrapper {
	grid-column: 2; grid-row: 1; margin: 0;
	background: var(--aq-tint); border-radius: var(--aq-radius-lg); overflow: hidden;
}
.aq-pdp__gallery .woocommerce-product-gallery .flex-control-thumbs {
	grid-column: 1; grid-row: 1;
	display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none;
}
.aq-pdp__gallery .flex-control-thumbs img {
	width: 88px; height: 88px; object-fit: cover;
	border: 1px solid var(--aq-line); border-radius: 8px; background: var(--aq-tint);
}
.aq-pdp__gallery .flex-control-thumbs img.flex-active { border: 2px solid var(--aq-accent); }
.aq-pdp__gallery .woocommerce-product-gallery--columns-1 { grid-template-columns: minmax(0, 1fr); }
.aq-pdp__gallery .woocommerce-product-gallery--columns-1 .woocommerce-product-gallery__wrapper { grid-column: 1; }
.aq-pdp__gallery .woocommerce-product-gallery__image--placeholder { background: var(--aq-tint); }

.aq-pdp__gallery .woocommerce-product-gallery__trigger {
	position: absolute; bottom: 16px; right: 16px; z-index: 5;
	background: #fff; border: 1px solid var(--aq-line); border-radius: 20px;
	padding: 8px 14px; font-size: 12px; font-weight: 700; color: var(--aq-ink);
	line-height: 1; text-indent: 0;
}
.aq-pdp__gallery .onsale { display: none; }

.aq-checkout__payment h2 { margin-bottom: 12px; }
.aq-account-orders .aq-section-head { margin-bottom: 14px; }
.aq-account-orders h3 { font-family: var(--aq-serif); font-size: 22px; font-weight: 700; letter-spacing: -.015em; }

/* Woo's meta block under the buy box */
.aq-buybox .product_meta { font-size: 13px; color: var(--aq-muted); font-weight: 600;
	display: flex; flex-wrap: wrap; gap: 6px 18px; padding-top: 4px;
	border-top: 1px solid var(--aq-line); }
.aq-buybox .product_meta > span { display: inline-flex; gap: 6px; }
.aq-buybox .product_meta a { color: var(--aq-ink-2); }

@media (max-width: 860px) {
	.aq-pdp__gallery .woocommerce-product-gallery { grid-template-columns: minmax(0, 1fr); }
	.aq-pdp__gallery .woocommerce-product-gallery__wrapper { grid-column: 1; grid-row: 1; }
	.aq-pdp__gallery .woocommerce-product-gallery .flex-control-thumbs {
		grid-column: 1; grid-row: 2; flex-direction: row; overflow-x: auto;
	}
	.aq-pdp__gallery .flex-control-thumbs li { flex: 0 0 auto; }
}

/* Loop add-to-cart button: styled here rather than by overriding Woo's own
   classes, so the AJAX add-to-cart class stays intact.
   WooCommerce sets `ul.products li.product .button { display: block }` at a
   higher specificity, which kills the flex centring and leaves the label
   sitting on the left padding edge — so the layout is restated here. */
.woocommerce ul.products li.product .aq-card__actions .button,
.woocommerce ul.products li.product .aq-card__actions .aq-btn,
.aq-card__actions .button,
.aq-card__actions a.button,
.aq-card__actions button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	width: 100%;
	/* Outlined, not filled: the solid blue button is gone from the cards. */
	background: transparent; border: 1px solid var(--aq-ink); border-radius: 0;
	color: var(--aq-ink); font-weight: 800;
	letter-spacing: .1em; text-transform: uppercase;
}
.aq-card__actions .button:hover,
.aq-card__actions a.button:hover,
.aq-card__actions button.button:hover {
	background: var(--aq-ink); border-color: var(--aq-ink); color: #fff;
}
.aq-card__actions .added_to_cart { display: none; }

/* Category tiles that WooCommerce injects into the loop when the shop page is
   set to display categories. */
.aq-products .product-category {
	border: 1px solid var(--aq-line); border-radius: 8px; overflow: hidden;
	background: #fff; list-style: none; margin: 0;
}
.aq-products .product-category:hover { border-color: var(--aq-line-3); box-shadow: 0 10px 24px rgba(22,35,58,.07); }
.aq-products .product-category > a { display: block; color: var(--aq-ink); }
.woocommerce ul.products.aq-products li.product-category img,
.aq-products .product-category img {
	width: 100%; height: 160px; object-fit: cover; background: var(--aq-tint); display: block;
	margin: 0; box-shadow: none;
}
.woocommerce ul.products.aq-products li.product-category h2,
.aq-products .product-category h2,
.aq-products .product-category .woocommerce-loop-category__title {
	margin: 0; padding: 14px 14px 16px; font-size: 14px; font-weight: 700; line-height: 1.3;
	font-family: var(--aq-sans); color: var(--aq-ink);
}
.aq-products .product-category mark {
	background: transparent; color: var(--aq-muted-2); font-weight: 600; font-size: 12px;
	display: block; margin-top: 4px;
}

/* =========================================================================
   12. Single product: override WooCommerce's own float layout
   -------------------------------------------------------------------------
   woocommerce.css floats .images and .summary at 48% each. The design uses a
   CSS grid instead, so those rules are unwound with matching specificity.
   ========================================================================= */
.woocommerce div.product .aq-pdp__gallery,
.woocommerce div.product .aq-pdp__gallery div.images,
.woocommerce div.product div.summary.aq-buybox {
	width: 100%;
	float: none;
	margin: 0;
	clear: none;
}

.woocommerce div.product .aq-pdp__gallery div.images.woocommerce-product-gallery {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
	position: relative;
	opacity: 1;
}
.woocommerce div.product .aq-pdp__gallery div.images .woocommerce-product-gallery__wrapper {
	grid-column: 2; grid-row: 1; margin: 0; width: 100%;
	background: var(--aq-tint); border-radius: var(--aq-radius-lg); overflow: hidden;
}
.woocommerce div.product .aq-pdp__gallery div.images .woocommerce-product-gallery__image,
.woocommerce div.product .aq-pdp__gallery div.images .woocommerce-product-gallery__image a,
.woocommerce div.product .aq-pdp__gallery div.images .woocommerce-product-gallery__image img {
	width: 100%; display: block;
}
.woocommerce div.product .aq-pdp__gallery div.images .flex-control-thumbs {
	grid-column: 1; grid-row: 1;
	display: flex; flex-direction: column; gap: 10px;
	margin: 0; padding: 0; list-style: none; width: 88px;
}
.woocommerce div.product .aq-pdp__gallery div.images .flex-control-thumbs li {
	width: 88px; float: none; margin: 0; list-style: none;
}
.woocommerce div.product .aq-pdp__gallery div.images .flex-control-thumbs li img {
	width: 88px; height: 88px; object-fit: cover; opacity: .8;
	border: 1px solid var(--aq-line); border-radius: 8px; background: var(--aq-tint);
}
.woocommerce div.product .aq-pdp__gallery div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product .aq-pdp__gallery div.images .flex-control-thumbs li img:hover {
	opacity: 1; border: 2px solid var(--aq-accent);
}
/* Anchored top-right: the gallery container can be taller than the active
   slide, so a bottom offset drifts away from the image. */
.woocommerce div.product .aq-pdp__gallery div.images .woocommerce-product-gallery__trigger {
	top: 16px; right: 16px; bottom: auto; left: auto;
}

/* Buy-box typography that Woo colours itself. */
.woocommerce div.product .aq-buybox p.price,
.woocommerce div.product .aq-buybox span.price {
	color: var(--aq-ink);
	font-size: 38px;
	font-weight: 800;
}
.woocommerce div.product .aq-buybox p.price del { color: var(--aq-muted-2); font-size: 19px; }
.woocommerce div.product .aq-buybox p.price ins { text-decoration: none; }
.woocommerce div.product .aq-buybox .stock {
	font-size: 13px; font-weight: 700; color: var(--aq-green); margin: 0;
}
.woocommerce div.product .aq-buybox .stock.out-of-stock { color: #B3423A; }
/* Quantity and add-to-cart sit on one row; variation selectors span full width. */
.woocommerce div.product .aq-buybox form.cart,
.woocommerce div.product .aq-buybox .woocommerce-variation-add-to-cart {
	display: flex; flex-flow: row wrap; align-items: center; gap: 12px; margin: 0;
}
.woocommerce div.product .aq-buybox form.cart > .variations,
.woocommerce div.product .aq-buybox form.cart > .single_variation_wrap,
.woocommerce div.product .aq-buybox form.cart > .woocommerce-variation-add-to-cart,
.woocommerce div.product .aq-buybox form.cart > .woocommerce-grouped-product-list {
	flex: 1 0 100%;
}
.woocommerce div.product .aq-buybox form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product .aq-buybox form.cart .button { float: none; }
.woocommerce div.product .aq-buybox form.cart .single_add_to_cart_button {
	flex: 1 1 200px; min-height: 54px; font-size: 14px; font-weight: 800;
	background: var(--aq-ink); border-color: var(--aq-ink); color: #fff;
}
.woocommerce div.product .aq-buybox form.cart .single_add_to_cart_button:hover {
	background: #0f1a2c; border-color: #0f1a2c;
}
.woocommerce div.product .aq-buybox .woocommerce-product-details__short-description { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent; border: 0; border-radius: 0; margin: 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 16px 24px 14px; font-weight: 700; }

.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products { float: none; width: 100%; }

/* Loop price: WooCommerce colours .price green by default, so the values are
   restated at Woo's own specificity. Kept in step with .aq-card__price above —
   serif, 20px, weight 700, baseline-aligned against the struck-through was-price. */
.woocommerce ul.products.aq-products li.product .price,
.woocommerce ul.products.aq-products li.product .price ins,
.aq-card__price .price {
	color: var(--aq-ink); font-family: var(--aq-serif); font-size: 20px; font-weight: 700;
	display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; margin: 0;
}
.woocommerce ul.products.aq-products li.product .price del {
	color: var(--aq-warm); font-family: var(--aq-sans); font-size: 13px; font-weight: 600; opacity: 1;
}
.woocommerce ul.products.aq-products li.product .price ins { text-decoration: none; }
.woocommerce ul.products.aq-products li.product .woocommerce-loop-product__title {
	padding: 0; font-family: var(--aq-sans); font-size: 14.5px; font-weight: 700;
	line-height: 1.4; letter-spacing: -.005em;
}
.woocommerce ul.products.aq-products li.product a img { margin: 0; box-shadow: none; }

/* My Account: WooCommerce floats the nav and content at 30%/70%. */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none; width: 100%; margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li { margin: 0; }

/* =========================================================================
   13. Fixes found in visual review
   ========================================================================= */

/* WooCommerce's price slider ships lilac. Bring it into the palette. */
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content {
	background: var(--aq-line);
	border-radius: 4px;
	height: 4px;
}
.woocommerce .widget_price_filter .ui-slider .ui-slider-range {
	background: var(--aq-accent);
	border-radius: 4px;
}
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle {
	background: #fff;
	border: 2px solid var(--aq-accent);
	width: 16px;
	height: 16px;
	border-radius: 50%;
	top: -6px;
	margin-left: -8px;
	box-shadow: 0 1px 4px rgba(22, 35, 58, .25);
}
.woocommerce .widget_price_filter .price_slider_amount {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; flex-wrap: wrap; margin-top: 16px;
}
.woocommerce .widget_price_filter .price_slider_amount .price_label {
	font-size: 12.5px; font-weight: 600; color: var(--aq-muted); order: 1; text-align: left;
}
.woocommerce .widget_price_filter .price_slider_amount .button {
	order: 2; height: 38px; padding: 0 16px; font-size: 13px; font-weight: 700;
	border-color: var(--aq-line); background: #fff; color: var(--aq-ink);
}
.woocommerce .widget_price_filter .price_slider_amount .button:hover {
	background: var(--aq-ink); border-color: var(--aq-ink); color: #fff;
}

/* The filter sheet's apply button belongs to the mobile bottom sheet only. */
.aq-filters__apply { display: none; }

@media (max-width: 860px) {
	.aq-filters__apply { display: flex; }
}

/* Trust grid rows: icon + text on one baseline. */
.aq-trust > div { display: flex; align-items: center; gap: 9px; }
.aq-trust .aq-icon { width: 16px; height: 16px; color: var(--aq-muted); flex-shrink: 0; }
.aq-reserve .aq-icon { width: 15px; height: 15px; }
.aq-thankyou__tick .aq-icon { width: 26px; height: 26px; stroke-width: 2.4; }
.aq-buybox__alt .aq-icon { width: 18px; height: 18px; }

/* =========================================================================
   Mobile gallery, restated at Woo's own specificity
   -------------------------------------------------------------------------
   The section-12 block above matches `.woocommerce div.product .aq-pdp__gallery
   div.images...` in order to beat woocommerce.css. That also beats the earlier
   @media (max-width: 860px) rules, which use a shorter chain — so on a phone
   the gallery stayed a two-column desktop layout and the main image was pinned
   to ~240px next to an 88px thumbnail rail. Repeat the same chain inside the
   media query so the mobile stack actually wins.
   ========================================================================= */
@media (max-width: 860px) {
	.woocommerce div.product .aq-pdp__gallery div.images.woocommerce-product-gallery {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
	}
	.woocommerce div.product .aq-pdp__gallery div.images .woocommerce-product-gallery__wrapper {
		grid-column: 1; grid-row: 1;
	}
	.woocommerce div.product .aq-pdp__gallery div.images .flex-control-thumbs {
		grid-column: 1; grid-row: 2;
		flex-direction: row; flex-wrap: nowrap;
		width: auto; gap: 8px;
		overflow-x: auto; -webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.woocommerce div.product .aq-pdp__gallery div.images .flex-control-thumbs::-webkit-scrollbar { display: none; }
	.woocommerce div.product .aq-pdp__gallery div.images .flex-control-thumbs li {
		flex: 0 0 auto; width: 64px;
	}
	.woocommerce div.product .aq-pdp__gallery div.images .flex-control-thumbs li img {
		width: 64px; height: 64px;
	}
}
