/**
 * Carmela replica overlay — global skin layer (frontend replication P0).
 *
 * CONTRACT:
 *   - Loaded via wp_enqueue_scripts priority 30 (after style.css at 10 and
 *     plugin frontend-nav at 20) with filemtime version for cache busting.
 *   - Owns replica tokens (--carmela-*) and square-radius backstop only.
 *   - NEVER writes `.carmela-*` selectors (plugin B2B UI) and never touches
 *     `.woocommerce-Price-amount` structure.
 *   - Block-level styles (product-slider, social-media-promo, hero-banner,
 *     category-grid...) are intentionally NOT flattened here — block radius
 *     is fine-tuned per-block in the P1 placement batch.
 *
 * Preserved circles (per task brief): color swatch dots and the social-media
 * IG tile white circles (both live in block stylesheets, untouched here).
 */

/* G3 — replica palette tokens (consumed by P1+ replica rules) */
:root {
	--carmela-bg: #fff;
	--carmela-text: #444;
	--carmela-dark: #111;
	--carmela-sale: #e70e25;
}

/*
 * G2 — square-radius backstop for style.css's hardcoded border-radius sites.
 * Selectors copied verbatim from style.css so specificity ties are won by
 * cascade order (this file enqueues last). !important only where the source
 * rule itself carries it (add_to_cart_button, wc-block onsale).
 */

/* Forms base + primary button */
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
textarea,
a.asterthemes-button {
	border-radius: 0;
}

/* Social icon widgets */
a .widget_ecommerce_clothing_social_icons ul.social-links a,
.widget_ecommerce_clothing_social_icons ul.social-links a {
	border-radius: 0;
}

/* Mobile menu hamburger bars */
#site-navigation button.menu-toggle span {
	border-radius: 0;
}

/* 404 button */
.paganot-found-button a,
.paganot-found-button a:hover {
	border-radius: 0;
}

/* Video play button circle */
.video-btn a.asterthemes-play-btn i {
	border-radius: 0;
}

/* Preloader dot */
#loader.style2 .dot {
	border-radius: 0;
}

/* Carousel arrows + dots */
.ecommerce-clothing-carousel-navigation .slick-arrow,
.ecommerce-clothing-carousel-navigation .slick-dots li button {
	border-radius: 0;
}

/* Comment avatars */
.entry-content .wp-block-latest-comments .wp-block-latest-comments__comment-avatar,
.comments-area.show-avatars .avatar {
	border-radius: 0;
}

/* Sidebar widgets */
.right-sidebar .asterthemes-wrapper .asterthemes-page .widget,
.left-sidebar .asterthemes-wrapper .asterthemes-page .widget {
	border-radius: 0;
}

/* Tag cloud */
.tagcloud a {
	border-radius: 0;
}

/* Search widgets */
.widget.widget_search .wp-block-search__inside-wrapper .wp-block-search__input,
.widget.widget_search .wp-block-search__inside-wrapper .wp-block-search__button,
.search-form .search-field,
.search-form .search-submit {
	border-radius: 0;
}

/* Keyboard-focus screen reader helper (square for consistency) */
.screen-reader-text:focus {
	border-radius: 0;
}

/* Header pill product search + mobile search icon */
form.woo-pro-search input#woocommerce-product-search-field,
form.woo-pro-search button.search-button,
header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .bottom-header-right-part .header-custom-btn-search .header-search .header-search-wrap .header-search-icon {
	border-radius: 0;
}

/* Payment badges */
.footer-payment-icons .payment-badge {
	border-radius: 0;
}

/* Scroll-to-top (both shape variants) */
a.ecommerce-clothing-scroll-to-top,
#scroll-to-top.curved-box,
#scroll-to-top.circle {
	border-radius: 0;
}

/* Blog cards + media */
.mag-post-single img,
.mag-post-single,
.related-posts .mag-post-single,
.sticky .mag-post-single:before,
.video-container video,
.read-more-button {
	border-radius: 0;
}

/* WooCommerce loop elements */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale,
.woocommerce ul.products li.product .button,
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce a.added_to_cart {
	border-radius: 0;
}

/* Source rules carry !important — must match to win by cascade order */
.add_to_cart_button {
	border-radius: 0 !important;
}

.wc-block-grid__product-onsale {
	border-radius: 0 !important;
}

/* === PDP === */
/* P1-B skin layer — everything below scoped to the product detail page
   (main.product-detail-page) per P0 contract; no global selectors.
   Targets per explore/C-pdp.md + F-target-widgets.md §3/§4/§6. */

.product-detail-page {
	--swatch-size: 50px; /* PDP 50 / quick-shop 30 / PLP card 17 (later batches) */
}

/* ---- P1-B2: title (actual DOM: h1.product_title.entry-title inside .product-single__meta;
   theme's .product-single__title rule never matched — C §7 P0-1) ---- */
.product-detail-page .product-single__meta .product_title {
	font-size: 25px;
	font-weight: 500;
	text-transform: capitalize;
	letter-spacing: 0.75px;
	line-height: 35px;
	margin: 0 0 15px;
	color: #000;
}

/* ---- P1-B2: price area ---- */
.product-detail-page .psinglePriceWr {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	column-gap: 12px;
	margin-bottom: 20px;
}

/* Promo red only when a struck original price exists (sale);
   guest gate text stays default color — never depends on .price nodes */
.product-detail-page .psinglePriceWr:has(.price--original) .price--current,
.product-detail-page .price--current:has(del) ins {
	color: var(--carmela-sale);
}

.product-detail-page .price--current ins {
	text-decoration: none;
}

/* Struck original: 20px (current 25px − 5px), per F §3.7 */
.product-detail-page .price--original,
.product-detail-page .price--current del {
	font-size: 20px;
	font-weight: 400;
	opacity: 0.7;
	line-height: 28px;
	color: #000;
	text-decoration: line-through;
}

/* ---- P1-B3: utility classes (were zero-defined site-wide — C §7 P0-2/P0-3).
   Scoped to the PDP container to avoid side effects elsewhere. ---- */
.product-detail-page .dn,
.product-detail-page .hidden {
	display: none;
}

.product-detail-page .fl {
	display: flex;
}

.product-detail-page .f-wrap {
	flex-wrap: wrap;
}

.product-detail-page .f-jcc {
	justify-content: center;
}

.product-detail-page .f-jcs {
	justify-content: flex-start;
}

.product-detail-page .f-aic {
	align-items: center;
}

.product-detail-page .f-ais {
	align-items: flex-start;
}

.product-detail-page .tc {
	text-align: center;
}

.product-detail-page .ml5 {
	margin-left: 5px;
}

.product-detail-page .mb0 { margin-bottom: 0; }
.product-detail-page .mb10 { margin-bottom: 10px; }
.product-detail-page .mb15 { margin-bottom: 15px; }
.product-detail-page .mb20 { margin-bottom: 20px; }
.product-detail-page .mb25 { margin-bottom: 25px; }
.product-detail-page .mb30 { margin-bottom: 30px; }
.product-detail-page .mb50 { margin-bottom: 50px; }

/* Responsive hides (target semantics); the explicit tab/accordion rules below
   resolve the template's hide-md collision on the desktop nav */
@media (max-width: 767.98px) {
	.product-detail-page .hide-sm {
		display: none;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.product-detail-page .hide-md {
		display: none;
	}
}

@media (min-width: 1025px) {
	.product-detail-page .hide-lg {
		display: none;
	}
}

/* ---- P1-B5: tabs vs accordion breakpoints — ≥768 tabs only, <768 accordion
   only (C §7 P0-3: both currently visible on desktop) ---- */
@media (min-width: 768px) {
	.product-detail-page ul.product-tabs-nav {
		display: flex;
	}

	.product-detail-page .acor-ttl {
		display: none;
	}
}

@media (max-width: 767.98px) {
	.product-detail-page ul.product-tabs-nav {
		display: none;
	}

	.product-detail-page .acor-ttl {
		display: block;
	}
}

/* stl3-style active underline (F §4.1) */
.product-detail-page ul.product-tabs-nav li a.tablink.active {
	position: relative;
}

.product-detail-page ul.product-tabs-nav li a.tablink.active::after {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: #111;
	position: absolute;
	bottom: -1px;
	left: 0;
	right: 0;
}

/* Panel switch = opacity fadeIn only, no height transition (F §4.3) */
@keyframes pdpFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

.product-detail-page .tab-content.active {
	animation: pdpFadeIn 0.4s ease;
}

/* ---- P1-B4: swatches / size pills (F §3.2) ---- */
/* R9: label row on top, swatch dots below (the header takes a full flex
   row), and no black frame at rest — a soft halo keeps the dots defined
   on white. Selection = dark ring around the swatch's own color.
   R9b: the UA paints <fieldset> with a 2px groove frame (the "black box"
   around both groups) — reset it; flex gap spaces the selectors; size
   pills become uniform horizontal capsules with uppercase values;
   sold-out colors are removed entirely, sold-out sizes grey+strike. */
.product-detail-page fieldset.color-swatch,
.product-detail-page fieldset.size-swatch {
	border: 0;
	padding: 0;
	margin: 0 0 20px;
	min-width: 0;
	gap: 12px 14px;
}

.product-detail-page fieldset.color-swatch .swatch__header,
.product-detail-page fieldset.size-swatch .swatch__header {
	flex: 1 0 100%;
}

/* R9d: the theme floats the stepper and the ATC (qty left-floated, ATC
   float-wraps under it, the wishlist link squeezes into the leftover
   space beside them) — one clean column instead: each block on its own
   row with generous gaps, margins only, no spacer divs. */
.product-detail-page form.cart .qtyField.quantity,
.product-detail-page form.cart .single_add_to_cart_button,
.product-detail-page form.cart .cqw-pdp-guest-atc {
	float: none !important; /* the float origin resists normal overrides — the overlay's big hammer */
	width: auto;
}
.product-detail-page form.cart .qtyField.quantity {
	margin-bottom: 22px !important;
}
.product-detail-page form.cart .single_add_to_cart_button,
.product-detail-page form.cart .cqw-pdp-guest-atc {
	display: block;
	width: 100%;
	margin: 0 0 22px;
}
.product-detail-page form.cart > div.mb25 {
	clear: both;
}

/* R9e: ATC states — solid black/white at rest; hover inverts to white
   with a black stroke (split-banner inversion pattern; the 1px border is
   permanent so hovering never shifts the box). While no complete
   selection has been made yet the button dims instead. */
.product-detail-page form.cart .single_add_to_cart_button,
.product-detail-page form.cart .cqw-pdp-guest-atc {
	background: #111 !important; /* WC's .button.disabled repaints purple at equal specificity, loaded later */
	color: #fff;
	border: 1px solid #111;
	transition: background 0.2s ease, color 0.2s ease;
}
.product-detail-page form.cart .single_add_to_cart_button:hover:not(:disabled),
.product-detail-page form.cart .cqw-pdp-guest-atc:hover {
	background: #fff !important;
	color: #111;
	border-color: #111;
}
/* The dim/purple repaint applies to MEMBERS only (incomplete selection):
   WC's own variation JS re-adds the .disabled class to guests too, but a
   guest ATC must stay fully actionable — scoped to body.logged-in. */
body.logged-in .product-detail-page form.cart .single_add_to_cart_button:disabled,
body.logged-in .product-detail-page form.cart .single_add_to_cart_button.disabled {
	background: #111 !important; /* WC's :disabled rule repaints purple — keep the black */
	color: #fff;
	opacity: 0.55;
	cursor: not-allowed;
}
body:not(.logged-in) .product-detail-page form.cart .single_add_to_cart_button {
	cursor: pointer !important;
	opacity: 1 !important; /* WC dims via the .disabled class it keeps re-adding */
}

.product-detail-page .swatch__header {
	font-size: 15px;
	font-weight: 500;
	color: #444;
	margin-bottom: 8px;
}

/* Color dot (user spec): at rest a thin grey outer stroke, a white line,
   then the swatch's own color (inline term-meta hex). */
.product-detail-page .swatchLbl.color {
	width: var(--swatch-size);
	height: var(--swatch-size);
	border: 1px solid #d9d9d9;
	box-shadow: inset 0 0 0 2px #fff;
	background-repeat: no-repeat;
	background-position: 50% 0;
	background-size: cover;
	transition: transform 0.15s ease;
}

.product-detail-page .swatchLbl.color:not(.active):hover {
	transform: scale(1.06);
}

/* Selected: slightly larger, black stroke only + the solid color fill
   directly inside it (the white line disappears). */
.product-detail-page .swatchLbl.color.active,
.product-detail-page .swatchInput:checked + .swatchLbl.color {
	border: 2px solid #111;
	box-shadow: none;
	transform: scale(1.12);
}

/* Sold out color: not shown at all (user spec) */
.product-detail-page .swatchLbl.color.disabled {
	display: none;
}

/* Size pill: uniform horizontal capsule, uppercase value */
.product-detail-page .swatchLbl.size-pill {
	min-width: 56px;
	height: 35px;
	padding: 0 14px;
	line-height: 33px;
	font-size: 13px;
	font-weight: 400;
	text-align: center;
	text-transform: uppercase;
	color: #333;
	background: #eee;
	border: 1px solid #eee;
	border-radius: 25px;
	transition: none;
}

.product-detail-page fieldset.size-swatch .swatch__header .selected-value {
	text-transform: uppercase;
}

.product-detail-page .swatchLbl.size-pill.active,
.product-detail-page .swatchInput:checked + .swatchLbl.size-pill {
	background: #111;
	color: #fff;
	border: 1px solid #000;
}

.product-detail-page .swatchLbl.size-pill.disabled {
	background: #f5f5f5;
	border: 1px solid #f5f5f5;
	color: #999;
	opacity: 1;
	text-decoration: line-through;
	cursor: no-drop;
}

.product-detail-page .swatchLbl.size-pill.disabled:hover {
	background: #eee;
	transform: none;
}

/* ---- P1-B9: quantity stepper (F §6.4: 42×43, #ddd dividers, 10px icon) ---- */
.product-detail-page .qtyField {
	display: inline-flex;
	border: 1px solid #ddd;
	height: 43px;
	max-width: none;
	margin-bottom: 15px;
}

.product-detail-page .qtyBtn {
	width: 42px;
	background: none;
	transition: none;
}

.product-detail-page .qtyBtn:hover,
.product-detail-page .qtyBtn:active {
	background: none;
}

.product-detail-page .qtyBtn.minus {
	border-right: 1px solid #ddd;
}

.product-detail-page .qtyBtn.plus {
	border-left: 1px solid #ddd;
}

.product-detail-page .qtyBtn svg {
	width: 10px;
	height: 10px;
}

.product-detail-page input.pr_input.qty {
	flex: none;
	width: 42px;
	min-width: 0;
	padding: 11px 0;
	border: 0;
	font-size: 14px;
}

/* ---- P1-B6: unified ATC (variable pr_btn + simple override, F §6.6 button spec) ---- */
.product-detail-page .single_add_to_cart_button {
	background: #111;
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* === CHECKOUT === (P2-B: form controls, review table, payment list, proof block) === */

/* Kill WC 11's rounded form controls on transactional pages (scoped per body class;
   --wc-form-border-radius is WC's own form radius token) */
body.woocommerce-checkout,
body.woocommerce-account,
body.page-id-6113,
body.page-id-6114 {
	--wc-form-border-radius: 0;
}

/* Inputs: 13px, #ddd hairline, square corners. Beats wc-base
   `:focus{border-color:currentColor}` with an explicit #111 focus edge. */
body.woocommerce-checkout .woocommerce form .form-row .input-text,
body.woocommerce-checkout .woocommerce form .form-row textarea,
body.woocommerce-checkout .woocommerce form .form-row select,
body.woocommerce-account .woocommerce form .form-row .input-text,
body.woocommerce-account .woocommerce form .form-row textarea,
body.woocommerce-account .woocommerce form .form-row select,
body.page-id-6113 .carmela-auth-form input[type="text"],
body.page-id-6113 .carmela-auth-form input[type="email"],
body.page-id-6113 .carmela-auth-form input[type="tel"],
body.page-id-6113 .carmela-auth-form input[type="password"],
body.page-id-6113 .carmela-auth-form select,
body.page-id-6114 .carmela-auth-form input[type="text"],
body.page-id-6114 .carmela-auth-form input[type="password"] {
	font-size: 13px;
	border: 1px solid #ddd;
	border-radius: 0;
	padding: 10px 12px;
	height: auto;
}

body.woocommerce-checkout .woocommerce form .form-row .input-text:focus,
body.woocommerce-checkout .woocommerce form .form-row textarea:focus,
body.woocommerce-checkout .woocommerce form .form-row select:focus,
body.woocommerce-account .woocommerce form .form-row .input-text:focus,
body.woocommerce-account .woocommerce form .form-row textarea:focus,
body.woocommerce-account .woocommerce form .form-row select:focus,
body.page-id-6113 .carmela-auth-form input:focus,
body.page-id-6113 .carmela-auth-form select:focus,
body.page-id-6114 .carmela-auth-form input:focus {
	border-color: #111;
	outline: none;
}

/* Field labels */
body.woocommerce-checkout .woocommerce form .form-row label,
body.woocommerce-account .woocommerce form .form-row label {
	font-size: 13px;
	color: #444;
}

/* Order review table: airy rows, hairline separators, F §6.6 total spec
   (14px / 600 / uppercase) */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	border-collapse: collapse;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
	padding: 12px 0;
	border-bottom: 1px solid #eee;
	font-size: 13px;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total td {
	border-bottom: 2px solid #111;
	font-size: 14px;
	font-weight: 600;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total th {
	text-transform: uppercase;
}

/* Payment methods: flat radio list, hairline separators between gateways */
body.woocommerce-checkout ul.wc_payment_methods {
	margin: 0 0 1.5em;
	padding: 0;
	list-style: none;
}

body.woocommerce-checkout .wc_payment_method > label {
	display: block;
	padding: 12px 0;
	border-bottom: 1px solid #eee;
	font-size: 13px;
	cursor: pointer;
}

body.woocommerce-checkout .wc_payment_method > label input[type="radio"] {
	margin-right: 8px;
}

body.woocommerce-checkout .wc_payment_method .payment_box {
	background: #f7f7f7;
	padding: 12px 14px;
	font-size: 13px;
	color: #444;
	margin: 0;
}

/* Proof-upload block (bank-transfer gateway): spacing extracted from the gateway's
   inline styles in P2-B. ID selectors because this file's contract forbids adding
   classes; the functional `display:none` initial state stays inline in the gateway
   markup (JS slide toggle owns visibility). */
#carmela-proof-upload-wrap {
	margin-bottom: 1.5em;
}

#carmela-proof-status {
	margin-top: 0.5em;
	font-size: 13px;
}

/* Place-order CTA (F §6.6: black, 13px/500, uppercase, ls 1px, radius 0) */
body.woocommerce-checkout #place_order {
	background: #111;
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;
	border: 0;
	border-radius: 0;
	padding: 14px 28px;
	width: 100%;
}

body.woocommerce-checkout #place_order:hover {
	background: #000;
	color: #fff;
}

/* === ACCOUNT === (P2-B: my-account left nav, tables, welcome) === */

/* Two-column account layout via inline-block siblings (degrades to stacked
   everywhere; no :has() dependency). Overrides style.css:7293 horizontal
   primary-color pill nav and :7342 width:100% stacking. */
body.woocommerce-account .woocommerce-MyAccount-navigation {
	display: inline-block;
	vertical-align: top;
	width: 220px;
}

body.woocommerce-account .woocommerce-MyAccount-content {
	display: inline-block;
	vertical-align: top;
	width: calc(100% - 260px);
	padding-top: 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	display: block;
	background: none;
	padding: 0;
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 400;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 10px 14px;
	background: none;
	color: #444;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	color: #111;
}

/* Active item: #111 block, white label, square (target account nav) */
body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	background: #111;
	color: #fff;
}

/* Welcome line ("Hello X — Log out") */
body.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
	font-size: 14px;
	color: #444;
}

/* Orders / addresses / downloads tables */
body.woocommerce-account .woocommerce table.shop_table th,
body.woocommerce-account .woocommerce table.shop_table td {
	padding: 12px 0;
	border-bottom: 1px solid #eee;
	font-size: 13px;
}

@media (max-width: 991px) {

	body.woocommerce-account .woocommerce-MyAccount-navigation,
	body.woocommerce-account .woocommerce-MyAccount-content {
		display: block;
		width: 100%;
	}
}

/* === AUTH === (P2-B: register/login shells + five-page sidebar-off) === */

/* Sidebar off on the five transactional pages (E §5.4 方案A). Neutralizes
   style.css:1726 `.right-sidebar` two-column grid and hides the widget column. */
body.woocommerce-cart .asterthemes-wrapper .asterthemes-page,
body.woocommerce-checkout .asterthemes-wrapper .asterthemes-page,
body.woocommerce-account .asterthemes-wrapper .asterthemes-page,
body.page-id-6113 .asterthemes-wrapper .asterthemes-page,
body.page-id-6114 .asterthemes-wrapper .asterthemes-page {
	display: block;
}

body.woocommerce-cart #secondary,
body.woocommerce-checkout #secondary,
body.woocommerce-account #secondary,
body.page-id-6113 #secondary,
body.page-id-6114 #secondary {
	display: none;
}

/* Auth form shell: the 520px cage was removed in C45 (2026-10-07) — the .cqw-au
   split grid in registration.css owns the auth layout width now. */

/* Auth submit buttons (F §6.6 CTA spec) */
body.page-id-6113 .carmela-auth-form .button,
body.page-id-6113 .carmela-auth-form button[type="submit"],
body.page-id-6114 .carmela-auth-form .button,
body.page-id-6114 .carmela-auth-form button[type="submit"] {
	background: #111;
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;
	border: 1px solid #111;
	border-radius: 0;
	padding: 12px 28px;
}

body.page-id-6113 .carmela-auth-form .button:hover,
body.page-id-6114 .carmela-auth-form .button:hover {
	background: #000;
	color: #fff;
}

/* === ORDER-RECEIVED === (P2-B: status card typography) === */

body.woocommerce-order-received .woocommerce-thankyou-order-received {
	font-size: 14px;
}

body.woocommerce-order-received ul.woocommerce-order-overview {
	list-style: none;
	padding: 0;
	margin: 24px 0;
	border: 1px solid #eee;
}

body.woocommerce-order-received ul.woocommerce-order-overview li {
	padding: 10px 14px;
	border-bottom: 1px solid #eee;
	margin: 0;
	font-size: 13px;
	color: #444;
}

body.woocommerce-order-received ul.woocommerce-order-overview li:last-child {
	border-bottom: 0;
}

body.woocommerce-order-received ul.woocommerce-order-overview li strong {
	color: #111;
}

/* Gateway transfer-instructions footer (added P2-B; styled via the WC-prefixed
   companion class so this file keeps its no-`.carmela-*`-selector contract) */
body.woocommerce-order-received section.woocommerce-order-instructions {
	border: 1px solid #eee;
	padding: 16px 18px;
	margin: 24px 0;
	font-size: 13px;
	color: #444;
}

body.woocommerce-order-received .woocommerce-order-details h2,
body.woocommerce-order-received .woocommerce-customer-details h2 {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

body.woocommerce-order-received table.woocommerce-table--order-details th,
body.woocommerce-order-received table.woocommerce-table--order-details td {
	padding: 12px 0;
	border-bottom: 1px solid #eee;
	font-size: 13px;
}

/* === PLP (R2-T9 rework: grid/list dual mode + three-segment toolbar) === */

/* Full-width product archives: the template omits the sidebar hook, so collapse
   the theme's 2-track grid. Only `display` is overridden — the theme's
   .right-sidebar margin-top:4em still applies to the same rule. */
body:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .asterthemes-wrapper .asterthemes-page {
	display: block;
}

/* B4 (2026-10-02 user report: PDP content not centered): single-product
   bodies also carry the theme's GLOBAL right-sidebar class —
   ecommerce_clothing_sidebar_layout() only special-cases is_home()/is_page(),
   and single-product.php never renders a widget area, so style.css:1726's
   2-track grid (866px content + 384px reserved) left the PDP beside a
   phantom empty rail. Same display-only neutralizer as the five transactional
   pages and the archives above; site-main reclaims the full 1280px column,
   matching the approved Shop/Cart rhythm. Mobile was never affected (the
   theme's <991px block fallback). */
body.single-product .asterthemes-wrapper .asterthemes-page {
	display: block;
}

/* Guest login hint bar (count line removed with R2-T9 — target carries none) */
body:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .shop-login-hint {
	margin: 0 0 18px;
	font-size: 13px;
	color: #444;
	text-align: center;
}

/* --- Toolbar: [Filter | View | Sort] (target X5 §3; flex space-between,
      26px tall, mb 20, no border) --- */
.cqw-plp-toolbar {
	/* R10: 1fr/auto/1fr grid keeps the view toggle at TRUE viewport center
	   on one row with the filter and sort (flex space-between drifts with
	   unequal side widths and wraps). */
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
	margin-bottom: 20px;
}
.cqw-plp-filter { position: relative; justify-self: start; }
.cqw-plp-sort { justify-self: end; }
.cqw-btn-filter {
	background: #000; color: #fff; border: 0; border-radius: 3px;
	font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px;
	padding: 4px 12px; min-height: 26px; cursor: pointer;
	display: inline-flex; align-items: center; gap: 4px;
}
.cqw-filter-panel {
	position: absolute; top: calc(100% + 8px); left: 0; z-index: 60;
	background: #fff; border: 1px solid #eee; min-width: 260px; max-width: 320px;
	max-height: 70vh; overflow-y: auto; padding: 14px 16px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}
.cqw-filter-title:not(:first-child) { margin-top: 16px; }
.cqw-filter-list a.is-selected { color: #000; font-weight: 600; }
.cqw-filter-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.cqw-swatch {
	/* R12j: doubled alongside .cqw-facet-swatch (22 → 44). */
	width: 44px; height: 44px; border-radius: 50%;
	background: var(--sw-bg, #ccc); border: 1px solid rgba(0, 0, 0, .12);
	display: inline-block;
}
.cqw-swatch.is-selected { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #111; }
.cqw-filter-sizes { display: flex; flex-wrap: wrap; gap: 6px; }
.cqw-size-chip {
	padding: 3px 10px; border: 1px solid #ddd; border-radius: 3px;
	font-size: 12px; color: #444; text-decoration: none; min-width: 30px;
	text-align: center;
}
.cqw-size-chip:hover { border-color: #111; color: #111; }
.cqw-size-chip.is-selected { background: #000; border-color: #000; color: #fff; }
.cqw-filter-price { display: flex; gap: 6px; align-items: center; }
.cqw-filter-price input[type="number"] {
	width: 72px; padding: 5px 6px; border: 1px solid #ddd; border-radius: 3px;
	font-size: 12px;
}
.cqw-filter-price button {
	border: 0; background: #000; color: #fff; font-size: 11px; font-weight: 600;
	text-transform: uppercase; letter-spacing: .5px; padding: 6px 10px;
	border-radius: 3px; cursor: pointer;
}
.cqw-active-facets {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
	margin: -10px 0 20px;
}
.cqw-facet-chip {
	background: #000; color: #fff; font-size: 11px; line-height: 1;
	padding: 5px 8px; text-decoration: none; border-radius: 2px;
	display: inline-flex; align-items: center; gap: 5px;
}
.cqw-facet-chip:hover { background: #f77575; color: #fff; }
.cqw-facet-clear {
	font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
	color: #444; text-decoration: underline;
}
.cqw-filter-title {
	/* R12j: bigger + bolder section titles per user ruling. */
	display: block; font-size: 14px; font-weight: 700; text-transform: uppercase;
	letter-spacing: .8px; color: #111; margin-bottom: 8px;
}
.cqw-filter-list { margin: 0; padding: 0; list-style: none; }
.cqw-filter-list a {
	display: flex; justify-content: space-between; gap: 12px;
	font-size: 13px; color: #444; padding: 5px 0; text-decoration: none;
}
.cqw-filter-list a:hover { color: #111; }
.cqw-filter-count { color: #999; font-size: 12px; }
.cqw-filter-list a.is-selected { color: #000; font-weight: 600; }
/* G-R5①: drawer category group rides the filter-list flex pattern (name left,
   .cqw-filter-count right); selected rows darken their count too so the state
   reads across the whole row. */
.cqw-cat-list a.is-selected .cqw-filter-count { color: #000; }
.cqw-filter-title:not(:first-child) { margin-top: 16px; }
.cqw-filter-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
/* R10: named .cqw-facet-swatch — widgets.css owns .cqw-swatch (30px white
   chip clobbered the facet swatch). Card .ps-color-dot circle idiom. */
.cqw-facet-swatch {
	/* R12j: doubled per user ruling (17 → 34). */
	width: 34px; height: 34px; border-radius: 50%;
	background: var(--sw-bg, #ccc); border: 1px solid rgba(0, 0, 0, .12);
	display: inline-block;
}
.cqw-facet-swatch:hover { transform: scale(1.15); }
.cqw-facet-swatch.is-selected { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #111; }
.cqw-filter-sizes { display: flex; flex-wrap: wrap; gap: 6px; }
.cqw-size-chip {
	padding: 3px 10px; border: 1px solid #ddd; border-radius: 3px;
	font-size: 12px; color: #444; text-decoration: none; min-width: 30px;
	text-align: center;
}
.cqw-size-chip:hover { border-color: #111; color: #111; }
.cqw-size-chip.is-selected { background: #000; border-color: #000; color: #fff; }
/* R12h: facet links resist the theme's global a:visited colour grab
   (--primary red): single-class link rules (0,1,0) lose to a:visited
   (0,1,1), so a deselected option the shopper had already opened turned
   red (user report). */
.cqw-filter-list a:visited { color: #444; }
.cqw-size-chip:visited { color: #444; }
.cqw-facet-chip:visited { color: #fff; }
.cqw-facet-clear:visited { color: #444; }
/* the selected states must outrank their own :visited companions (ties at
   (0,2,0) broke to the visited block — black-on-black selected size chips). */
.cqw-filter-list a.is-selected:visited { color: #000; }
.cqw-size-chip.is-selected:visited { color: #fff; }

/* R12i: price slider redesign — 4px rounded track, 18px white ring thumbs
   (hover scale, grabbing cursor), currency-tagged bold readout. */
.cqw-price-slider { padding: 8px 6px 0; }
.cqw-price-range { position: relative; height: 26px; }
.cqw-range-track, .cqw-range-fill {
	position: absolute; top: 50%; transform: translateY(-50%);
	height: 4px; border-radius: 2px;
}
.cqw-range-track { left: 0; right: 0; background: #ececec; }
.cqw-range-fill { background: #111; }
.cqw-range {
	position: absolute; left: 0; width: 100%; top: 0; height: 26px;
	margin: 0; -webkit-appearance: none; appearance: none;
	background: none; pointer-events: none;
}
.cqw-range::-webkit-slider-thumb {
	-webkit-appearance: none; appearance: none; pointer-events: auto;
	width: 18px; height: 18px; border-radius: 50%;
	/* R12j: border colourless per user ruling — keep the 2px box so the
	   thumb geometry (and drag hit area) stays identical. */
	background: #fff; border: 2px solid transparent;
	box-shadow: 0 1px 5px rgba(0, 0, 0, .28); cursor: grab;
	transition: transform .12s ease, box-shadow .12s ease;
}
.cqw-range::-webkit-slider-thumb:hover { transform: scale(1.12); }
.cqw-range:active::-webkit-slider-thumb { cursor: grabbing; box-shadow: 0 2px 8px rgba(0, 0, 0, .3); }
.cqw-range::-moz-range-thumb {
	pointer-events: auto;
	width: 14px; height: 14px; border-radius: 50%;
	background: #fff; border: 2px solid transparent;
	box-shadow: 0 1px 5px rgba(0, 0, 0, .28); cursor: grab;
}
.cqw-price-vals {
	display: flex; justify-content: space-between;
	font-size: 13px; font-weight: 600; color: #111; margin-top: 8px;
	font-family: 'DM Sans', sans-serif;
}
.cqw-active-facets {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
	margin: -10px 0 20px;
}
.cqw-facet-chip {
	background: #000; color: #fff; font-size: 11px; line-height: 1;
	padding: 5px 8px; text-decoration: none; border-radius: 2px;
	display: inline-flex; align-items: center; gap: 5px;
}
.cqw-facet-chip:hover { background: #f77575; color: #fff; }
.cqw-facet-clear {
	font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
	color: #444; text-decoration: underline;
}
.cqw-plp-view { display: flex; }
.cqw-view-btn {
	background: none; border: 0; padding: 0 6px; color: #444; opacity: .5;
	cursor: pointer; min-width: 28px; display: inline-flex; align-items: center;
}
.cqw-view-btn.is-active { opacity: 1; }
/* R8: native select arrow kept (source only strips the border) — the
   earlier appearance:none removed the only dropdown affordance. */
.cqw-orderby-select {
	border: 0; background: transparent; font-size: 12px; color: #444;
	padding: 5px 5px; cursor: pointer;
}

/* --- PLP card = the shared ps-card (B2); grid/list geometry over one markup --- */
/* The theme clips MAIN.site-main with overflow:hidden — the full-bleed card
   field gets cut mid-card at the container edges (edge cards truncated,
   container margins read as dead side space). Unclip on PLP bodies; the
   full-width .site-content then clips only scrollbar-width residue so no
   horizontal scrollbar ever appears. (User report 2026-09-30 round 2.) */
body.cqw-plp-grid .site-main,
body.cqw-plp-list .site-main { overflow: visible !important; /* theme ships .right-sidebar .asterthemes-wrapper .asterthemes-page .site-main (0,4,1) */ }
body.cqw-plp-grid .site-content,
body.cqw-plp-list .site-content { overflow-x: clip; }

/* WC's float-era clearfix pseudos (::before/::after, display:table) become
   grid items on a grid <ul> and eat the first cell of row 1 (and the last of
   the final row) — that was the "first row shows 3 cards" bug. Neutralized. */
body.cqw-plp-grid ul.products::before,
body.cqw-plp-grid ul.products::after { display: none; }

body.cqw-plp-grid ul.products {
	display: grid; grid-template-columns: repeat(2, 1fr);
	/* Full-bleed card field, a little breathing room at the edges,
	   24px column / 30px row rhythm (user ruling 2026-09-30). */
	gap: 30px 24px;
	margin-inline: calc(50% - 50vw);
	padding: 0 60px; box-sizing: border-box; list-style: none;
}
@media ( min-width: 768px ) { body.cqw-plp-grid ul.products { grid-template-columns: repeat(3, 1fr); } }
@media ( min-width: 1025px ) { body.cqw-plp-grid ul.products { grid-template-columns: repeat(4, 1fr); } }
body.cqw-plp-grid ul.products > li.product {
	width: 100% !important; float: none !important; margin: 0 !important;
	/* Theme style.css ships .woocommerce ul.products li { background:
	   rgba(225,218,218,.31); padding-bottom: 15px } — the gray strip under
	   every card. Pinned white + zeroed (user report round 3). */
	padding: 0 !important;
	background: #fff !important;
	border: 0 !important;
	box-shadow: none !important;
}
/* R12g: grid mode — toolbar + active-facet chips share the card field's
   full-bleed geometry so their edges line up with the 4-card rows (list
   rows keep the column width, which already aligns with the toolbar). */
body.cqw-plp-grid .cqw-plp-toolbar,
body.cqw-plp-grid .cqw-active-facets {
	margin-inline: calc(50% - 50vw);
	padding-inline: 60px;
	box-sizing: border-box;
}
@media ( max-width: 768px ) {
	body.cqw-plp-grid ul.products { padding: 0 24px; }
	body.cqw-plp-grid .cqw-plp-toolbar,
	body.cqw-plp-grid .cqw-active-facets { padding-inline: 24px; }
}
/* Explicit white card surfaces — page bg is white, nothing gray shows
   through anywhere on the card (user ruling 2026-09-30). */
body.cqw-plp-grid .ps-card,
body.cqw-plp-grid .ps-card-image,
body.cqw-plp-grid .ps-card-info { background: #fff; }
/* Target grid card typography (title 14/500/uppercase #000, price 16 #000);
   !important beats the theme's 20px !important title rule. */
body.cqw-plp-grid .ps-card-name {
	font-size: 14px !important; font-weight: 500; text-transform: uppercase; color: #000;
}
body.cqw-plp-grid .ps-card-price { font-size: 16px; color: #000; margin-bottom: 0; }
body.cqw-plp-grid .ps-card-colors { margin-top: 6px; }

/* --- List mode (R12): source-site list-row replication — thumb left,
   info stack + STATIC button row in the info column ("Selecionar
   Opções" form). .ps-card-image goes display:contents so badge/link/
   actions are promoted to .ps-card grid items (no markup fork; grid/
   slider/search surfaces untouched). Row rhythm 30px per source. --- */
body.cqw-plp-list ul.products { display: block; margin: 0; padding: 0; list-style: none; }
body.cqw-plp-list ul.products > li.product {
	width: 100% !important; float: none !important; margin: 0 !important;
	/* theme .woocommerce ul.products li ships padding-bottom:15px (R3 family)
	   — without this the row rhythm reads 45 instead of the source 30. */
	padding: 0 !important;
	/* R12f: same theme gray strip rgba(225,218,218,.31) the grid scope pinned
	   in round 3 — the list skin missed the background trio (user report). */
	background: #fff !important;
	border: 0 !important;
	box-shadow: none !important;
}
/* Explicit white row surfaces — page bg is white, matches the grid ruling. */
body.cqw-plp-list .ps-card,
body.cqw-plp-list .ps-card-info { background: #fff; }
body.cqw-plp-list .ps-card {
	position: relative;
	display: grid; grid-template-columns: 200px 1fr; column-gap: 30px;
	text-align: left; margin-bottom: 30px;
}
body.cqw-plp-list .ps-card-image { display: contents; margin-bottom: 0; }
body.cqw-plp-list .ps-card-link {
	grid-column: 1; grid-row: 1 / span 2;
	padding-bottom: 125%; /* 4:5 list thumb = 200x250, fixes row height */
}
/* info stack centres against the 250px thumb (align end + actions start) */
body.cqw-plp-list .ps-card-info {
	grid-column: 2; grid-row: 1;
	padding: 0; text-align: left; align-self: end;
}
/* action row: static flow under the info stack (source .listview-button) */
body.cqw-plp-list .ps-card-actions {
	grid-column: 2; grid-row: 2;
	position: static; transform: none; opacity: 1; pointer-events: auto;
	flex-direction: row; justify-content: flex-start;
	gap: 10px; margin-top: 20px; align-self: start;
}
body.cqw-plp-list .ps-card:hover .ps-card-actions { transform: none; opacity: 1; }
/* buttons: source black keys (37px), hover inverts to transparent/#111/rim */
body.cqw-plp-list .ps-action-btn {
	width: 37px; height: 37px; border-radius: 0;
	background: #000; color: #fff; box-shadow: none;
	border: 1px solid transparent;
}
body.cqw-plp-list .ps-action-btn .ph { color: #fff; }
body.cqw-plp-list .ps-action-btn:hover,
body.cqw-plp-list .ps-action-btn:focus-visible {
	background: transparent; color: #111; border-color: #000;
}
body.cqw-plp-list .ps-action-btn:hover .ph,
body.cqw-plp-list .ps-action-btn:focus-visible .ph { color: #111; }
/* text CTA (source .btn.btn-options): icon out, label in */
body.cqw-plp-list .ps-action-btn--quickshop {
	order: -1; /* source order: text CTA first, then the two icon keys */
	width: auto; padding: 0 25px;
	font-size: 13px; font-weight: 500; text-transform: uppercase;
	letter-spacing: 1px; font-family: 'DM Sans', sans-serif;
}
body.cqw-plp-list .ps-action-btn--quickshop .ph { display: none; }
body.cqw-plp-list .ps-action-label { display: inline; }
/* typography per source list row (title 16/600 stays from R6 family) */
body.cqw-plp-list .ps-card-name { font-size: 16px !important; font-weight: 600; text-transform: uppercase; color: #000; }
body.cqw-plp-list .ps-card-name a:hover { color: #666; }
body.cqw-plp-list .ps-card-price { font-size: 13px; color: #444; margin: 0 0 6px; }
/* R12b: no colour swatches on list rows (user 2026-10-02) — grid keeps them. */
body.cqw-plp-list .ps-card-colors { display: none; }
body.cqw-plp-list .ps-color-dot { width: 17px; height: 17px; }
@media ( max-width: 991px ) {
	/* G-R5②: compact horizontal row — 80px 4:5 thumb left, name/price/
	   buttons right, 15px rhythm (replaces the ≤767 vertical stack whose
	   250px image + full-width text made every row ~450px on phones).
	   R12c pitfall respected: BOTH grid axes re-pinned (columns AND each
	   item's grid-row/grid-column) so no implicit track eats the width. */
	body.cqw-plp-list .ps-card { grid-template-columns: 100px 1fr; column-gap: 12px; margin-bottom: 15px; }
	body.cqw-plp-list .ps-card-link {
		grid-column: 1; grid-row: 1 / span 2;
		/* thumb fills the row height (absolute img covers) — no fixed 4:5
		   box to go stale when the right column wraps taller */
		max-width: none; height: auto; padding-bottom: 0; align-self: stretch;
	}
	body.cqw-plp-list .ps-card-info { grid-column: 2; grid-row: 1; }
	body.cqw-plp-list .ps-card-name {
		font-size: 13px !important;
		/* long names balloon the short rows — cap at two lines */
		display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	}
	body.cqw-plp-list .ps-card-price { font-size: 12px; margin: 0 0 4px; }
	body.cqw-plp-list .ps-card-actions {
		grid-column: 2; grid-row: 2;
		gap: 8px; margin-top: 8px; flex-wrap: nowrap;
	}
	/* G-R5② round 3 (user 2026-10-08): the full-width text bar was too
	   loud — the CTA settles at ~1/3 of the row, ON ONE LINE with the
	   wishlist / quick-view keys. fr "Sélectionner les options" wraps to
	   two centered lines inside the compact key (min-width keeps the
	   longest word from spilling at 320px). */
	body.cqw-plp-list .ps-action-btn--quickshop {
		order: -1;
		flex: 0 0 calc( 100% / 3 ); min-width: 84px;
		height: 37px; padding: 2px 6px;
		font-size: 8px; letter-spacing: .5px; line-height: 1.25;
		white-space: normal; text-align: center;
		display: flex; align-items: center; justify-content: center;
	}
	/* badge family scaled to the 100px thumb. The chain out-specifies the
	   PLP 46px circle rule further down this file (body:is(.post-type-
	   archive-product, …) ul.products li.product .onsale) and zeroes WC's
	   3.236em min floor — min-width always beats width, so 28px needs both. */
	body.cqw-plp-list ul.products li.product .ps-card-image .onsale,
	body.cqw-plp-list ul.products li.product .ps-card-image .carmela-sale-badge {
		top: 4px; left: 4px; width: 28px; height: 28px;
		min-width: 0; min-height: 0;
		font-size: 9px;
	}
	body.cqw-plp-list .ps-card-image .carmela-net-badge {
		top: 4px; right: auto; left: 4px; font-size: 9px; padding: 2px 5px;
	}
	body.cqw-plp-list .ps-card-image:has( > .onsale, > .carmela-sale-badge ) .carmela-net-badge { top: 36px; }
}

/* --- Infinite scroll chrome (carmela-plp.js) --- */
.cqw-plp-loading {
	width: 22px; height: 22px; margin: 10px auto 20px;
	border: 2px solid #e5e5e5; border-top-color: #111; border-radius: 50%;
	animation: cqwPlpSpin 0.7s linear infinite;
}
@keyframes cqwPlpSpin { to { transform: rotate(360deg); } }
.cqw-plp-sentinel { height: 1px; }
/* End-of-list marker — flanked-rules idiom: dark small caps between thin lines */
.cqw-plp-end {
	margin: 34px 0 44px;
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #111;
}
.cqw-plp-end::before,
.cqw-plp-end::after {
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: 40px;
	height: 1px;
	background: #ddd;
	margin: 0 14px;
}

/* Keyboard/click affordance for span-form links (L0) */
[role="link"] {
	cursor: pointer;
}

/* === CART === */

/* Two-column cart: form left, totals right. The :has(> form) guard keeps the
   empty-cart div.woocommerce out (no form child → no grid). */
body.woocommerce-cart div.woocommerce:has(> form.woocommerce-cart-form) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	column-gap: 30px;
	align-items: start;
}

/* E §2.3 pitfalls: notices span both tracks; WC core floats on
   .cart-collaterals children (cross-sells / cart_totals) must go. */
body.woocommerce-cart div.woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

body.woocommerce-cart .cart-collaterals > * {
	float: none;
	width: auto;
}

/* Totals as a soft summary card (F §6.7 cartSummery) */
body.woocommerce-cart .cart_totals {
	background: #fafafa;
	padding: 25px;
}

@media (max-width: 991px) {
	body.woocommerce-cart div.woocommerce:has(> form.woocommerce-cart-form) {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Quantity stepper 42×43, 1px #ddd separators (F §6.4) */
body.woocommerce-cart .woocommerce-cart-form .quantity {
	display: inline-flex;
	border: 1px solid #ddd;
}

body.woocommerce-cart .woocommerce-cart-form .quantity .qty-step-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 43px;
	padding: 0;
	background: #fff;
	/* Explicit ink: the theme paints all buttons white-on-dark, which made
	 * the Phosphor +/- glyphs (currentColor) invisible on the white square. */
	color: #1a1a1a;
	border: 0;
	font-size: 16px;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}
body.woocommerce-cart .woocommerce-cart-form .quantity .qty-step-btn:hover {
	background: #f5f5f5;
	color: #444;
}

body.woocommerce-cart .woocommerce-cart-form .quantity .qty-step-btn.minus {
	border-right: 1px solid #ddd;
}

body.woocommerce-cart .woocommerce-cart-form .quantity .qty-step-btn.plus {
	border-left: 1px solid #ddd;
}

body.woocommerce-cart .woocommerce-cart-form .quantity input.qty {
	width: 42px;
	height: 43px;
	padding: 0;
	border: 0;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

body.woocommerce-cart .woocommerce-cart-form .quantity input.qty::-webkit-outer-spin-button,
body.woocommerce-cart .woocommerce-cart-form .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Remove link iconified (target: 18px, 50% opacity, black) */
body.woocommerce-cart .woocommerce a.remove {
	width: auto;
	height: auto;
	font-size: 18px;
	color: #000 !important;
	opacity: .5;
}

body.woocommerce-cart .woocommerce a.remove:hover {
	background: transparent;
	color: #000 !important;
	opacity: 1;
}

/* Free-shipping progress bar (F §6.3) — server-rendered inside .cart_totals */
.shipping-container {
	margin: 0 0 20px;
}

.shipping-bar {
	max-width: 500px;
	height: 10px;
	margin: 0 auto;
	background: #fff;
	border: 2px solid #000;
	border-radius: 50px;
	overflow: hidden;
}

.shipping-bar__fill {
	height: 100%;
	max-width: 100%;
	background: #000;
	transition: width .6s ease-in-out;
}

.shipping-bar__text {
	margin: 10px 0 0;
	font-size: 14px;
	color: #000;
	text-align: center;
}

/* === FIDELITY === (P2.5 visual-fidelity batch. Item 1 "utility topbar"
   was reverted in R2-T3: its language buttons borrowed the guest endpoint
   and pinned user meta — see explore/R2-X4-lang-region.md.) */

/* 2. R12k: universal breadcrumb strip (page-header.php) — light-grey bar
      under the masthead on every non-home page: Home | Shop | {segment}.
      Replaces the P2.5 archive title + product-count line and the cart
      inline title row. */
.cqw-breadcrumbs {
	background: #f5f5f5;
	padding: 11px 0;
	font-size: 13px;
	color: #666;
	font-family: 'DM Sans', sans-serif;
}
.cqw-breadcrumbs .asterthemes-wrapper {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}
.cqw-breadcrumbs a {
	color: #666;
	text-decoration: none;
}
.cqw-breadcrumbs a:hover {
	color: #111;
}
.cqw-crumb-sep {
	color: #bbb;
}
.cqw-crumb-current,
.cqw-breadcrumbs h1,
.cqw-breadcrumbs h2 {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: #111;
	line-height: 1.4;
	text-transform: none;
	letter-spacing: 0;
}

/* Count line moved into the archive title block — retire P2-A's in-flow
   duplicate (its PHP stays; the login hint bar below it still shows). */
body:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .shop-count {
	display: none;
}

/* Tighten the theme's 4em .asterthemes-page top gap under the new slim
   archive header (theme style.css:1726 is the source of the 4em). */
body:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .asterthemes-wrapper .asterthemes-page {
	margin-top: 2.5em;
}

/* 5. Header density — R3-1: 13px/500 nav (12px matched the target at 1440
      but reads too small on the owner's 4K panel); items spread across the
      left zone edge-to-edge instead of clustering, first item flush with the
      container's left edge. ~18px icon group. Sticky untouched. */
.site-header .main-navigation a {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .26px;
	line-height: 1.2;
	padding: 9px 10px;
	text-transform: uppercase;
}
@media ( min-width: 992px ) {
	/* R4-1: items at natural spacing (space-between spread them too far);
	   the -20px pulls below keep the group flush to the container edges. */
	.site-header .main-navigation ul.menu {
		display: flex;
		width: 100%;
	}
	/* The theme container (.asterthemes-wrapper) carries 20px inner padding —
	   pull nav and icon group flush to the container's true edges. */
	.site-header .bottom-header-left-part .navigation-part {
		margin-left: -20px;
	}
	.site-header .bottom-header-right-part {
		margin-right: -20px;
	}
	/* R5-1b bridge: the dropdown parks at the header's BOTTOM edge, which
	   leaves a dead band between the hovered label and the panel — crossing
	   it drops li:hover and the menu snaps shut before the pointer arrives.
	   The li's own pseudo-element counts as the li for hit-testing, so an
	   invisible strip spanning the band (present only while hovered/focused,
	   so it never blocks page content at rest) keeps the hover chain alive
	   all the way into the panel. */
	.site-header .main-navigation ul.menu > li.menu-item-has-children:hover::after,
	.site-header .main-navigation ul.menu > li.menu-item-has-children:focus-within::after,
	.site-header .main-navigation ul.menu > li.page_item_has_children:hover::after,
	.site-header .main-navigation ul.menu > li.page_item_has_children:focus-within::after {
		content: '';
		position: absolute;
		left: -12px;
		right: -12px;
		top: 100%;
		height: 90px; /* taller than the tallest header-bottom gap (sticky states vary) */
		z-index: 998; /* under the sub-menu (999) so panel links stay clickable */
	}
}

/* R4-1b: fullscreen / wide panels. The theme container is 1320/1520/1620px
   centered — at 1440 it nearly fills the viewport so "flush left/right"
   held, but on the owner's 4K fullscreen it leaves hundreds of empty pixels
   beside the header row. The HEADER row alone goes full-bleed: logo stays
   dead-center of the screen, nav group hugs the screen's left edge, icon
   group the right. Page content below keeps its centered container.
   R5-1a: "flush to the very screen edges" read as too tight — the row now
   keeps breathing room (right side wider than left per owner spec).
   R5-1a round 2: 40/60 still not enough on the owner's fullscreen —
   measured the reference site's header at 2560 CSS px (leftmost trigger
   at 60px, its visible text ~76px in) and matched that visual weight:
   72px left / 96px right. */
@media ( min-width: 1500px ) {
	.site-header .asterthemes-wrapper {
		max-width: none;
		width: auto;
		margin: 0;
		padding: 0 96px 0 72px;
	}
	.site-header .bottom-header-left-part .navigation-part {
		margin-left: 0; /* the narrow-screen -20px pull would overlap the padding */
	}
	.site-header .bottom-header-right-part {
		margin-right: 0;
	}
}

/* R8: uniform masthead. The theme ships a .home-only slim white bar
   (style.css:6085, padding 10px 0) and a grey #f7f7f7 25px fallback for
   every other page (style.css:6094) — inner pages rendered a taller grey
   header than the home. Same tie-break-by-load-order as the rest of this
   file promotes the home treatment to the site-wide default. */
header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part {
	background: #fff;
	padding: 10px 0;
}

/* R8d: scrolled/stuck masthead shadow. #masthead is the element that
   actually sticks (position:sticky); custom.js toggles .is-sticky on the
   inner .sticky-header wrapper once the page scrolls — :has() bridges the
   two so the shadow lands on the true full-bleed header box. Value
   measured live on flowfa's fixed .stickyHeader: rgba(0,0,0,.2) 0 0 7px.
   At the top of the page the masthead stays flat white. */
.sticky-header.is-sticky {
	background: #fff; /* neutralize the theme's stuck-state #F0F0F0 band */
}
#masthead {
	transition: box-shadow 0.3s ease-in-out;
}
#masthead:has(.sticky-header.is-sticky) {
	box-shadow: 0 0 7px rgba(0, 0, 0, 0.2);
}

.site-header .bottom-header-right-part .header-search-icon,
.site-header .bottom-header-right-part .wishlist-icon,
.site-header .bottom-header-right-part .user-account a,
.site-header .bottom-header-right-part a.cart-customlocation {
	font-size: 18px;
}

/* Logo — target site measures 90px wide; our wordmark AR is 1.712 (target's
   is 3.0), so aligning WIDTH yields ~52.6px height. Height-aligning at 30px
   (previous rule) left the logo at 54px wide — 60% of target presence.
   Desktop only: below 768px all replica overrides drop out and the theme's
   original pairing (style.css width:100% + customizer max-width:100px)
   rules again, byte-equal to pre-P2.5 behavior. The customizer wp_head
   block prints after this file — !important stays authoritative. */
@media ( min-width: 768px ) {
	.site-header .site-logo img {
		width: 90px !important;
		height: auto !important;
		max-width: none !important;
	}
}

/* 6. PLP sale badge — source-site spec (circular pink, white %, 8px inset
      from the image's top-left), mirroring the .ps-card-image base skin in
      carmela-ps-card.css. NOTE: no `.woocommerce` in this chain — the only
      .woocommerce on PLP pages is the BODY itself, and a descendant
      combinator can never match the same element twice (0-4-2 still beats
      the theme's black-square 0-4-1 and WC core's 0-2-3). */
body:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) ul.products li.product .onsale {
	position: absolute;
	top: 8px;
	left: 8px;
	right: auto;
	margin: 0;
	min-width: 0;
	min-height: 0;
	width: 46px;
	height: 46px;
	padding: 0;
	box-sizing: border-box;
	border-radius: 50%;
	background: #F77575;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	font-family: 'DM Sans', sans-serif;
	line-height: 1.15;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 5;
}

/* R12c: PDP sale badge joins the pink-circle spec — the PLP-scoped rule
      above never reached single products, so the theme's black
      .woocommerce span.onsale box (style.css) kept winning on product
      pages. Mirrors the PLP rule one-for-one (46px circle, #F77575, -XX%).
      R18-④: badge mounts on .product-gallery (the main-image wrapper) and
      takes the MAIN IMAGE's top-right (owner directive) — the old top-left
      put it on the first thumbnail of the side strip. */
body.single-product span.onsale {
	position: absolute;
	top: 12px;
	left: auto;
	right: 12px;
	margin: 0;
	min-width: 0;
	min-height: 0;
	width: 46px;
	height: 46px;
	padding: 0;
	box-sizing: border-box;
	border-radius: 50%;
	background: #F77575;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	font-family: 'DM Sans', sans-serif;
	line-height: 1.15;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	z-index: 5;
}

/* B4-R15: NET price badge (DAP regions) — dark pill mirroring the badge
   family; pink -XX% circle keeps the top-left, NET takes the top-right. */
.carmela-net-badge {
	display: inline-block;
	background: #1a1a1a;
	color: #fff;
	font-family: 'DM Sans', sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .05em;
	padding: 3px 10px;
	border-radius: 999px;
	line-height: 1.4;
	box-sizing: border-box;
}
body.single-product .carmela-net-badge {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 5;
}
/* R18-④: when the sale circle renders it owns the top-right corner — the
   NET pill stacks below it (12 + 46 + 8 = 66px). */
body.single-product .product-gallery:has( > .onsale ) .carmela-net-badge {
	top: 66px;
}
/* Trending section (front page) — old-markup figure context for badges. */
.tab-product figure { position: relative; }
.tab-product figure .carmela-net-badge { position: absolute; top: 8px; right: 8px; z-index: 5; }

/* No-image cards — pure #f2f2f2 square with a centered brand word, fully
   covering the WooCommerce placeholder graphic (which keeps sizing the
   aspect box; the opaque overlay sits on top). R2-T9: anchor is the new
   .cqw-media-link (old .woocommerce-loop-product__link markup is gone). */
body:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) ul.products li.product .cqw-media-link:has( > img.woocommerce-placeholder )::after {
	content: "CARMELA";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f2f2f2;
	font-size: 13px;
	letter-spacing: 2px;
	color: #999;
	text-transform: uppercase;
}

/* =====================================================================
 * WEB-CHECKLIST A3 — footer polish (2026-09-29, user-approved batch)
 * ==================================================================== */

/* 5) Column titles: small-caps hierarchy (12px/600/uppercase/tracking),
 *    matching the masthead's minimal typography scale. */
.footer-top-blocks .widget-title {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: #111;
	margin-bottom: 18px;
}

/* 6) Placeholder links (href="#") render greyed and inert until real
 *    targets exist — filling in a real URL automatically restores them. */
.site-footer a[href="#"] {
	color: #b3b3b3;
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}

/* 9) Scroll-to-top: brand-consistent (black/white, square) instead of the
 *    theme's red box; edge-hugging position is set inline in footer.php. */
a.ecommerce-clothing-scroll-to-top {
	background: #111;
	color: #fff;
	border-radius: 0;
	box-shadow: none;
}
a.ecommerce-clothing-scroll-to-top:hover,
a.ecommerce-clothing-scroll-to-top:focus {
	background: #333;
	color: #fff;
}

/* Specificity fix: theme's .footer-block__item .widget .widget-title (0-3-0)
 * outranked the block above — match and exceed it. */
.footer-top-blocks .footer-block__item .widget .widget-title,
.footer-top-blocks .footer-block__item .widget-title {
	font-size: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 1.5px !important;
}

/* Same for the greyed placeholder links — theme paints footer links black. */
.site-footer .footer-block__item a[href="#"],
.site-footer a[href="#"] {
	color: #b3b3b3 !important;
}

/* =====================================================================
 * WEB-CHECKLIST A4 — 404 page (2026-09-29, user-reported batch)
 * ==================================================================== */

/* Centering: the 404 markup uses bootstrap-ish container/row classes the
 * theme never loads — .container had margin:0 and sat left-anchored.
 * Mirror the site wrapper (1320px / 20px gutters / auto). */
.not-found .container {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
}
.not-found .container .row,
.not-found .container .col-lg-12 {
	display: block;
	width: 100%;
}

/* CTA: brand black instead of the theme's default red. */
.not-found a.dt-btn,
.not-found a.dt-btn-primary {
	background: #111 !important;
	color: #fff !important;
	border-radius: 0 !important;
}
.not-found a.dt-btn:hover,
.not-found a.dt-btn:focus,
.not-found a.dt-btn-primary:hover,
.not-found a.dt-btn-primary:focus {
	background: #333 !important;
	color: #fff !important;
}

/* Centering root cause: .asterthemes-page renders a two-column grid
 * (866px content + reserved sidebar) — the 404 sat in the left column with
 * a phantom empty right rail. Force single-column on 404 requests only. */
body.error404 .asterthemes-page {
	display: block;
	width: 100%;
	max-width: none;
}
/* Spec match: the layout rule is .right-sidebar .asterthemes-wrapper
 * .asterthemes-page (0-3-0) — mirror the chain to outrank it. */
body.error404 .asterthemes-wrapper .asterthemes-page {
	display: block !important;
	width: 100%;
	max-width: none;
	grid-template-columns: none;
	margin-top: 4em;
}

/* =====================================================================
 * WEB-CHECKLIST A5 — search popup (2026-09-29)
 * ==================================================================== */

/* The 99x127 slot is 4:5 portrait by design, but the theme's
 * object-fit: contain letterboxed square thumbs into it (grey bars
 * top/bottom — "square image in a rectangular slot"). Cover-crop to
 * fill, same treatment as the PLP cards. */
.sp-product-img img {
	object-fit: cover;
}

/* =====================================================================
 * WEB-CHECKLIST A5 — suggest rows (light styling for the original
 * full-screen white popup, restored per user directive 2026-09-30).
 * ==================================================================== */
.sp-search-results {
	margin-top: 18px;
	border-top: 1px solid #eee;
}
.sp-suggest-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 10px;
	text-decoration: none;
	border-bottom: 1px solid #f2f2f2;
}
.sp-suggest-item:hover {
	background: #f7f7f7;
}
/* suggest img sizing now lives on .sp-suggest-imgwrap */
.sp-suggest-name {
	flex: 1;
	font-size: 13px;
	color: #000;
	letter-spacing: .04em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.sp-suggest-price {
	font-size: 13px;
	color: #000;
	flex-shrink: 0;
}
.sp-suggest-empty {
	padding: 14px 6px;
	font-size: 13px;
	color: #999;
}

/* A5 (2026-09-30): close button docked beside the header search icon.
 * Fixed + z-index 1001 (sticky header is 1000, popup 999). The element now
 * lives outside the popup DOM — the popup's transform would otherwise become
 * the containing block and re-clip it. */
.sp-close-btn {
	position: fixed;
	z-index: 1001;
	top: 0;
	left: 0;
	display: none;
	background: none;
	border: none;
	color: #000;
	font-size: 26px;
	cursor: pointer;
	padding: 0;
	width: 28px;
	height: 28px;
	line-height: 1;
}
.sp-close-btn.active {
	display: block;
}
.sp-close-btn:hover {
	opacity: 0.6;
}

/* =====================================================================
 * WEB-CHECKLIST A5 (2026-09-30) — sale presentation in the search popup:
 * badge (black block, PLP-style) + strikethrough regular + BLACK current
 * price; title untouched. Guest: badge visible, prices hidden.
 * ==================================================================== */
/* Sale price keeps the store convention: strikethrough regular + RED current
 * (theme's #d20000 rule stands — the earlier black override is reverted).
 * Badge lives on the image's top-right corner now, not beside the price. */
.sp-price-wrapper {
	justify-content: flex-start;
	text-align: left;
}
.sp-badge {
	display: inline-block;
	background: #111;
	color: #fff;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .04em;
	padding: 2px 5px;
	line-height: 1.4;
}
.sp-product-img {
	position: relative;
}
.sp-suggest-imgwrap {
	position: relative;
	display: block;
	width: 49px;
	height: 63px;
	flex-shrink: 0;
}
.sp-suggest-imgwrap img,
.sp-suggest-imgwrap .sp-suggest-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #f6f6f6;
	display: block;
}
/* suggest badge now rides the name (sp-name-badge) */

/* Suggest rows: name on top, price row stacked UNDER it (left-aligned,
 * same rhythm as the popular grid) — price used to sit at the row's right
 * edge, visually detached from the name. */
.sp-suggest-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.sp-suggest-price-row {
	display: flex;
	align-items: center;
	font-size: 13px;
	color: #000;
}
.sp-suggest-regular {
	color: #999;
	text-decoration: line-through;
	margin-right: 6px;
	font-size: 12px;
}

/* =====================================================================
 * WEB-CHECKLIST A5 (2026-09-30, user findings): clicked product names were
 * turning red — the theme's global a:visited (0-1-1) outranks the title
 * class rules (0-1-0), so visited titles fell back to var(--primary-color).
 * Product names stay black in every state, on every storefront surface.
 * Badge becomes RED (#d20000, matching the sale-price accent) — more
 * eye-catching than black.
 * ==================================================================== */
.sp-product-title:visited,
.sp-product-title:hover,
.sp-pop-keywords a:visited,
.sp-pop-keywords a:hover,
.cqw-card-title a:visited,
.cqw-card-title a:hover,
.sp-suggest-name:visited {
	color: inherit;
}
.cqw-card-title a {
	color: inherit;
}

/* Badge: red block (sale accent), white text. */
.sp-badge {
	background: #d20000;
	color: #fff;
}

/* Badge final: small red superscript at the product NAME's top-right
 * (moved off the image corner per user directive 2026-09-30). */
.sp-name-badge {
	margin-left: 4px;
	vertical-align: 7px; /* rides the name's top-right like a superscript */
}
.sp-product-title .sp-badge,
.sp-suggest-name .sp-badge {
	font-size: 9px;
	padding: 1px 4px;
	letter-spacing: .03em;
}

/* B4-R15: shipping policy tab (template + region variables) */
.carmela-shipping-policy h4 { margin: 18px 0 8px; font-size: 16px; font-weight: 600; color: #111; }
.carmela-shipping-policy h5 { margin: 12px 0 4px; font-size: 13px; font-weight: 600; color: #333; text-transform: uppercase; letter-spacing: .04em; }
.carmela-shipping-policy p { font-size: 13px; line-height: 1.7; color: #555; margin: 0 0 10px; }
.carmela-shipping-policy table.carmela-rate-table { border-collapse: collapse; margin: 6px 0 8px; }
.carmela-shipping-policy .carmela-rate-table th,
.carmela-shipping-policy .carmela-rate-table td { border: 1px solid #e5e5e5; padding: 6px 14px; font-size: 13px; text-align: left; }
.carmela-shipping-policy .carmela-rate-table th { background: #f7f7f7; font-weight: 600; }
.carmela-shipping-policy .carmela-policy-note { font-size: 12px; color: #888; margin: 4px 0 8px; }

/* R15: hover colors per user ruling - header nav turns site pink
   (#F77575, same as the sale badge); footer links turn gray with a
   black 2px underline. Theme rules below are replicated 1:1 because
   replica.css loads after style.css and wins equal specificity. */
.main-navigation a:hover,
.main-navigation a:focus,
.main-navigation ul ul a:hover,
.main-navigation ul ul a:focus {
	color: #F77575;
}
footer a:hover,
footer a:focus,
.site-footer a:hover,
.site-footer a:focus,
.footer-block__item .widget ul li a:hover,
.footer-block__item .widget ul li a:focus,
.footer-block__item .widget ol li a:hover,
.footer-block__item .widget ol li a:focus,
.site-footer .site-footer-bottom .site-footer-bottom-wrapper .site-info a:hover,
.site-footer .site-footer-bottom .site-footer-bottom-wrapper .site-info a:focus {
	color: #8a8a8a;
	text-decoration: underline;
	text-decoration-color: #111;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

/* R15: site-wide click focus - no dotted ring on mouse clicks; keyboard
   focus shows the source-site light-gray underline. Text links use a
   text underline, image-wrapped links (header logo) and buttons use a
   2px bottom line. Tab links keep their own R13 treatment. */
a:focus,
.btn:focus,
button:focus,
input[type='submit']:focus,
input[type='button']:focus,
.button:focus {
	outline: none;
}
a:focus-visible {
	/* !important: focus indicator must beat theme link selectors like
	   .footer-block__item .widget ul li a (0,3,3); scoped to keyboard
	   focus only. */
	text-decoration-line: underline !important;
	text-decoration-color: #b8b8b8 !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 4px !important;
}
a:focus-visible:has(> img),
a:focus-visible:has(> svg) {
	text-decoration-line: none !important;
	box-shadow: 0 2px 0 0 #b8b8b8;
}
.btn:focus-visible,
button:focus-visible,
input[type='submit']:focus-visible,
input[type='button']:focus-visible,
.button:focus-visible {
	outline: none;
	text-decoration: none;
	box-shadow: 0 2px 0 0 #b8b8b8;
}

/* =====================================================================
 * B4 cart page — V3 品牌温度 (flowfa skeleton x Carmela brand, 2026-10-05)
 * Scope: body.woocommerce-cart. Table markup is stock WooCommerce; this
 * skin turns it into the V3 row table + pro-forma panel.
 * ==================================================================== */

body.woocommerce-cart .woocommerce:not(.widget_shopping_cart) form.cqw-cart-v3 {
	max-width: 1160px;
	margin: 0 auto;
}

/* two-column: items table left, pro-forma rail right */
body.woocommerce-cart .carmela-cart-grid,
body.woocommerce-cart .cart-collaterals {
	display: block;
}
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals {
	float: none;
	width: auto;
}
body.woocommerce-cart > .woocommerce,
body.woocommerce-cart .asterthemes-wrapper .asterthemes-page {
	display: block;
}
body.woocommerce-cart .woocommerce-cart-form {
	display: inline-block;
	vertical-align: top;
	width: calc(100% - 424px);
}

body.woocommerce-cart .cart-collaterals {
	display: inline-block;
	vertical-align: top;
	width: 400px;
	margin-left: 24px;
}

/* ---------- items table → V3 rows ---------- */
body.woocommerce-cart table.shop_table.cart {
	border: 1px solid #eee;
	border-top: 3px solid #efb33c;
	border-collapse: collapse;
	border-radius: 0;
	background: #fff;
	margin-bottom: 0;
}
body.woocommerce-cart table.shop_table.cart thead {
	background: #f5f5f5;
}
body.woocommerce-cart table.shop_table.cart thead th {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #999;
	padding: 10px 12px;
	border-bottom: 1px solid #eee;
}
body.woocommerce-cart table.shop_table.cart td {
	padding: 18px 12px;
	border-bottom: 1px solid #eee;
	background: #fff;
}
body.woocommerce-cart table.shop_table.cart tr:last-child td {
	border-bottom: 0;
}
body.woocommerce-cart table.shop_table.cart tbody tr:hover td {
	background: #fafafa;
}
/* R18-⑤: portrait 4:5 thumbnail box — the square 300×300 catalog crop cut
   the product's top/bottom; cart.php now sources the un-cropped
   woocommerce_single (600×750, exactly 4:5) and the box pins the ratio so
   odd-ratio fallback sources cover instead of stretching. */
body.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
	width: 90px;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border: 1px solid #eee;
	border-radius: 0;
}
body.woocommerce-cart table.shop_table.cart td.product-name a {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.3px;
	color: #1a1a1a;
}
body.woocommerce-cart table.shop_table.cart td.product-name a:visited {
	color: #1a1a1a;
}
body.woocommerce-cart table.shop_table.cart td.product-name .variation {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	color: #888;
	letter-spacing: 0.5px;
}
body.woocommerce-cart table.shop_table.cart td.product-name .variation p {
	margin: 0;
}
body.woocommerce-cart table.shop_table.cart td.product-price,
body.woocommerce-cart table.shop_table.cart td.product-subtotal {
	text-align: right;
	font-size: 15px;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart table.shop_table.cart td.product-subtotal {
	font-weight: 600;
}
body.woocommerce-cart table.shop_table.cart td.product-price del {
	display: block;
	color: #999;
	font-size: 12px;
}
body.woocommerce-cart table.shop_table.cart td.product-price ins {
	text-decoration: none;
	color: #d20000;
}
body.woocommerce-cart table.shop_table.cart a.remove {
	color: #999;
	font-size: 26px;
	width: 36px;
	height: 36px;
	transition: color 0.2s ease, transform 0.2s ease;
}
body.woocommerce-cart table.shop_table.cart a.remove:hover {
	color: #1a1a1a;
	background: transparent;
	transform: scale(1.15);
}

/* quantity input — drawer's black-bordered square language */
body.woocommerce-cart .quantity .qty {
	width: 56px;
	height: 32px;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	text-align: center;
	font-size: 13px;
	color: #1a1a1a;
	background: #fff;
	-moz-appearance: textfield;
	appearance: textfield;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart .quantity .qty::-webkit-outer-spin-button,
body.woocommerce-cart .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* actions row: coupon fold + update */
body.woocommerce-cart td.actions {
	padding: 14px 12px;
	border-top: 1px solid #eee;
}
body.woocommerce-cart .cart_totals .cqw-coupon-fold {
	display: block;
	margin-top: 14px;
	font-size: 13px;
}
body.woocommerce-cart .cart_totals .cqw-coupon-fold summary {
	cursor: pointer;
	color: #444;
	text-decoration: underline;
	text-underline-offset: 4px;
	letter-spacing: 1px;
	list-style: none;
}
body.woocommerce-cart .cart_totals .cqw-coupon-fold summary::-webkit-details-marker {
	display: none;
}
body.woocommerce-cart .cart_totals .cqw-coupon-fold summary::before {
	content: '+ ';
	color: #999;
}
body.woocommerce-cart .cart_totals .cqw-coupon-fold[open] summary::before {
	content: '\2013  ';
}
body.woocommerce-cart .cart_totals .cqw-coupon-fold .coupon-row {
	margin-top: 10px;
	display: flex;
	gap: 8px;
}
body.woocommerce-cart .cart_totals .cqw-coupon-fold input.input-text {
	height: 36px;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	padding: 0 10px;
	font-size: 13px;
	flex: 1;
	min-width: 0;
}
body.woocommerce-cart .cart_totals .cqw-coupon-fold .button {
	height: 36px;
	line-height: 34px;
	padding: 0 18px;
	background: #fff;
	color: #1a1a1a;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
}
body.woocommerce-cart .cart_totals .cqw-coupon-fold .button:hover {
	background: #1a1a1a;
	color: #fff;
}
/* G-R8 (user ruling 2026-10-08): "Update cart" retired — quantity edits
   auto-submit after a debounce (inline script in cart.php). The WC engine
   still routes the AJAX update THROUGH the button (input_changed enable,
   cart_submit clicked-routing), so it stays in the DOM, visually gone on
   every viewport. */
body.woocommerce-cart td.actions > .button[name="update_cart"] { display: none !important; }
body.woocommerce-cart td.actions { padding: 0 !important; }

/* ---------- pro-forma panel (plugin .cqw-pf-*) ---------- */
body.woocommerce-cart .cqw-pf-card {
	border: 1px solid #eee;
	border-top: 3px solid #efb33c;
	background: #fff;
	padding: 24px;
}
body.woocommerce-cart .cqw-pf-head {
	padding-bottom: 16px;
	border-bottom: 1px solid #eee;
}
body.woocommerce-cart .cqw-pf-title {
	margin-top: 0;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 1px;
}
body.woocommerce-cart .cqw-pf-meta {
	margin-top: 6px;
	font-size: 11px;
	color: #999;
	letter-spacing: 0.5px;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart .cqw-pf-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 15px 0;
	border-bottom: 1px solid #eee;
}
body.woocommerce-cart .cqw-pf-label {
	font-size: 13px;
	color: #444;
}
body.woocommerce-cart .cqw-pf-pct {
	font-style: normal;
	font-size: 11px;
	color: #999;
	margin-left: 6px;
	letter-spacing: 0.5px;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart .cqw-pf-sub {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	color: #999;
	letter-spacing: 0.5px;
}
body.woocommerce-cart .cqw-pf-val {
	font-size: 18px;
	font-weight: 500;
	text-align: right;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart .cqw-pf-note-inline {
	font-size: 13px;
	color: #999;
}
body.woocommerce-cart .cqw-pf-total {
	margin-top: 20px;
	padding-top: 18px;
	border-top: 3px solid #1a1a1a;
}
body.woocommerce-cart .cqw-pf-total-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
}
body.woocommerce-cart .cqw-pf-total-val {
	margin-top: 6px;
	font-size: 28px;
	font-weight: 700;
	letter-spacing: 0.3px;
	font-variant-numeric: tabular-nums;
	text-decoration: underline;
	text-decoration-color: #efb33c;
	text-decoration-thickness: 4px;
	text-underline-offset: 8px;
	display: inline-block;
}
body.woocommerce-cart .cqw-pf-note {
	margin-top: 16px;
	padding: 12px 14px;
	border-left: 3px solid #efb33c;
	background: #fdf6e9;
	font-size: 12px;
	line-height: 1.75;
	color: #444;
}
body.woocommerce-cart .cqw-pf-note a {
	color: #444;
}

/* scheme A (2026-10-08): inquiry-mode footer note — inquiry-eligible members
   only; black-opener line genetics to stay distinct from the gold estimate
   disclaimer box right above it. */
body.woocommerce-cart .cqw-pf-inquiry {
	margin-top: 14px;
	padding-top: 12px;
	border-top: 2px solid #1a1a1a;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.6;
	color: #1a1a1a;
}

/* checkout CTA + continue link */
body.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0;
	margin-top: 18px;
}
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	height: 48px;
	line-height: 46px;
	box-sizing: border-box;
	background: #1a1a1a;
	color: #fff;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 3px;
	text-transform: uppercase;
	padding: 0;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
	background: #fff;
	color: #1a1a1a;
	transform: translateY(-1px);
}
body.woocommerce-cart .cqw-continue-shopping {
	display: block;
	margin-top: 10px;
	height: 48px;
	line-height: 46px;
	box-sizing: border-box;
	border: 1px solid #1a1a1a;
	color: #1a1a1a;
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: 0;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
body.woocommerce-cart .cqw-continue-shopping:hover {
	background: #1a1a1a;
	color: #fff;
	transform: translateY(-1px);
}

/* ---------- empty cart (V3 marigold box) ---------- */
body.woocommerce-cart .cqw-cart-empty-box {
	border: 1px solid #eee;
	border-top: 3px solid #efb33c;
	padding: 52px 24px;
	text-align: center;
	background: #fff;
	max-width: 720px;
	margin: 0 auto;
}
body.woocommerce-cart .cqw-cart-empty-box .woocommerce-info,
body.woocommerce-cart .cqw-cart-empty-box .cart-empty {
	border: 0;
	background: transparent;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 1px;
	color: #1a1a1a;
	padding: 0;
	margin: 0;
	display: block;
}
body.woocommerce-cart .cqw-cart-empty-actions {
	margin-top: 22px;
}
body.woocommerce-cart .cqw-cart-empty-actions .cqw-cart-btn-primary,
body.woocommerce-cart .cqw-cart-empty-actions .button {
	display: inline-block;
	min-width: 168px;
	padding: 0 28px;
	height: 44px;
	line-height: 44px;
	background: #1a1a1a;
	color: #fff;
	border-radius: 0;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
}
body.woocommerce-cart .cqw-cart-empty-actions .cqw-cart-btn-primary:hover,
body.woocommerce-cart .cqw-cart-empty-actions .button:hover {
	background: #000;
	color: #fff;
}

/* ---------- responsive ---------- */
@media (max-width: 1140px) {
	body.woocommerce-cart .woocommerce-cart-form,
	body.woocommerce-cart .cart-collaterals {
		display: block;
		width: auto;
		margin-left: 0;
	}
	body.woocommerce-cart .cart-collaterals {
		margin-top: 28px;
	}
}
@media (max-width: 991px) {
	body.woocommerce-cart table.shop_table.cart thead {
		display: none;
	}
	/* G-R8 item card: horizontal grid — thumb left, name/price/qty right,
	   remove key top-right in its own cell (it used to absolute-stack over
	   the thumbnail), data-title labels gone (the bloat). R12c pitfall:
	   BOTH grid axes pinned for every td. */
	body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item {
		display: grid !important;
		grid-template-columns: 88px minmax( 0, 1fr ) auto;
		grid-template-rows: auto auto auto;
		column-gap: 14px;
		row-gap: 6px;
		align-items: start;
		border-bottom: 1px solid #eee;
		padding: 14px 12px;
	}
	body.woocommerce-cart table.shop_table.cart td {
		display: block !important;
		text-align: left;
		border: 0;
		padding: 0 !important;
	}
	body.woocommerce-cart table.shop_table.cart td::before {
		content: none;
	}
	body.woocommerce-cart table.shop_table.cart td.product-thumbnail {
		grid-column: 1;
		grid-row: 1 / span 3;
		width: 88px !important;
		min-width: 88px;
	}
	body.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
		width: 88px !important;
	}
	body.woocommerce-cart table.shop_table.cart td.product-name {
		grid-column: 2;
		grid-row: 1;
	}
	body.woocommerce-cart table.shop_table.cart td.product-remove {
		grid-column: 3;
		grid-row: 1;
		position: static !important;
		justify-self: end;
		align-self: start;
		margin: -7px -7px 0 0;
	}
	body.woocommerce-cart table.shop_table.cart td.product-price {
		grid-column: 2 / 4;
		grid-row: 2;
		font-size: 12px;
		color: #888;
	}
	body.woocommerce-cart table.shop_table.cart td.product-price del {
		display: inline;
		margin-right: 4px;
	}
	body.woocommerce-cart table.shop_table.cart td.product-quantity {
		grid-column: 2;
		grid-row: 3;
		justify-self: start;
	}
	body.woocommerce-cart table.shop_table.cart td.product-subtotal {
		grid-column: 3;
		grid-row: 3;
		justify-self: end;
		align-self: end;
	}
	body.woocommerce-cart .cqw-pf-card {
		padding: 18px 14px;
	}
	body.woocommerce-cart .cqw-pf-val {
		font-size: 16px;
	}
	body.woocommerce-cart .cqw-pf-total-val {
		font-size: 20px;
	}
}


/* ---------- pro-forma V3.1 five-segment ladder (R16.1 B1) ---------- */
/* hr separators carry the lines now — retire the per-row bottom border */
body.woocommerce-cart .cqw-pf-card .cqw-pf-row {
	border-bottom: 0;
}
body.woocommerce-cart .cqw-pf-items {
	margin-top: 4px;
}
body.woocommerce-cart .cqw-pf-item {
	padding: 10px 0;
	border-bottom: 1px solid #eee;
}
body.woocommerce-cart .cqw-pf-item--last {
	border-bottom: 0;
}
body.woocommerce-cart .cqw-pf-item-name {
	font-size: 14px;
	font-weight: 500;
	color: #1a1a1a;
}
body.woocommerce-cart .cqw-pf-item-var {
	font-size: 12px;
	color: #888;
	margin-left: 4px;
}
body.woocommerce-cart .cqw-pf-item-math {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-top: 6px;
}
body.woocommerce-cart .cqw-pf-item-qty {
	font-size: 12px;
	color: #999;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart .cqw-pf-item-line {
	font-size: 15px;
	font-weight: 600;
	color: #1a1a1a;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart hr.cqw-pf-sep {
	border: 0;
	border-top: 2px solid #1a1a1a;
	margin: 0;
}
body.woocommerce-cart hr.cqw-pf-sep--hair {
	border-top: 1px solid #eee;
}
body.woocommerce-cart .cqw-pf-row--pay {
	align-items: flex-start;
	padding-top: 12px;
}
body.woocommerce-cart .cqw-pf-pay-label {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #1a1a1a;
}
body.woocommerce-cart .cqw-pf-cap {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.3px;
	text-transform: none;
	color: #999;
}
body.woocommerce-cart .cqw-pf-pay-val {
	font-size: 22px;
	font-weight: 700;
	color: #1a1a1a;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart .cqw-pf-total .cqw-pf-total-label .cqw-pf-cap {
	margin-top: 5px;
	max-width: 220px;
}
@media (max-width: 768px) {
	body.woocommerce-cart .cqw-pf-pay-val {
		font-size: 19px;
	}
	body.woocommerce-cart .cqw-pf-total-val {
		font-size: 22px;
	}
}

/* ---------- coupon chips (R16.1 B2) ---------- */
body.woocommerce-cart .cqw-pf-chips {
	margin-top: 14px;
	border-top: 1px dashed #ddd;
	padding-top: 12px;
}
body.woocommerce-cart .cqw-pf-chips-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #999;
	margin-bottom: 8px;
}
body.woocommerce-cart .cqw-pf-chip {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	border: 1px solid #1a1a1a;
	background: #fff;
	color: #1a1a1a;
	padding: 9px 12px;
	margin: 0 0 6px;
	cursor: pointer;
	text-align: left;
	font-family: inherit;
	font-size: inherit;
	line-height: 1.4;
	border-radius: 0;
	box-shadow: none;
}
body.woocommerce-cart .cqw-pf-chip:hover {
	background: #1a1a1a;
	color: #fff;
}
body.woocommerce-cart .cqw-pf-chip:hover .cqw-pf-chip-em,
body.woocommerce-cart .cqw-pf-chip:hover .cqw-pf-chip-hint {
	color: #efb33c;
}
body.woocommerce-cart .cqw-pf-chip-code {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart .cqw-pf-chip-em {
	font-style: normal;
	font-size: 13px;
	font-weight: 700;
	color: #d20000;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
body.woocommerce-cart .cqw-pf-chip-hint {
	margin-left: auto;
	font-size: 11px;
	color: #999;
	letter-spacing: 1px;
	white-space: nowrap;
}

/* ---------- R16.1 final layout fix: deterministic explicit grid ----------
 * History: the P3-era :has() grid and the B4 inline-block two-column system
 * coexisted by accident (B4's defuse selector `body.woocommerce-cart >
 * .woocommerce` used a CHILD combinator that never matched — div.woocommerce
 * nests inside .entry-content). Once the engine applied :has(), auto-placement
 * put the brand <img> into column 1 and pushed the form into the 380px track
 * where calc(100% - 424px) clamped negative → 0-width form. The inline-block
 * fallback is equally fragile: 1156 + 4px whitespace + 24 margin + 400 = 1584
 * > 1580 container → the collaterals wrap below the form (user-visible
 * "invoice at the bottom"). Final system: keep the grid but make every child's
 * track explicit — notices and brand image span both columns, form takes
 * column 1, collaterals column 2; the B4 inline-block width rules are
 * neutralized at equal specificity (later position wins). Grid layout is
 * immune to inter-element whitespace. */
body.woocommerce-cart div.woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}
body.woocommerce-cart .woocommerce-cart-form {
	display: block;
	/* width:100% (not auto/stretch): resolves against the grid track, immune
	 * to the stretch-vs-content sizing quirk observed live (auto stayed at
	 * content width 677 inside a 1156px track; 100% measures 1156). */
	width: 100%;
	max-width: none;
}
body.woocommerce-cart .cart-collaterals {
	display: block;
	width: auto;
	margin-left: 0;
}

/* Two-track grid ONLY at desktop width — an unwrapped rule here would
 * out-cascade the P3 <=991px single-column collapse and squeeze the form
 * to a sliver on phones. */
@media (min-width: 992px) {
	body.woocommerce-cart div.woocommerce:has(> form.woocommerce-cart-form) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 400px;
		column-gap: 24px;
		align-items: start;
	}
}

/* R16.1 hotfix 2: WC core woocommerce-layout.css wins the .cart_totals
/* R16.1 UX follow-up: the WC "Update cart" button is redundant — the stepper
 * already auto-submits — but it MUST stay in the DOM (the stepper clicks it),
 * so it is visually hidden, not removed. */
body.woocommerce-cart td.actions button[name="update_cart"] {
	display: none;
}

/* Undo-notice countdown badge (cart-coupon-chips.js) */
.cqw-undo-count {
	margin-left: 6px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: #444;
}

/* R16.1 hotfix 2: WC core woocommerce-layout.css wins the .cart_totals
 * specificity war (.woocommerce .cart-collaterals .cart_totals = 0,3,0) over
 * the weaker reset at line ~1242 (0,2,1), floating the panel to 48% = 192px
 * and squeezing the card to 142px. Same-shape selector at (0,3,1) ends it. */
body.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: auto;
}

/* ---------- R16.1 sticky invoice rail (desktop) ----------
 * The pro-forma card rides along while the left table scrolls, and scrolls
 * INTERNALLY when its own content (many items + coupons + chips + fold)
 * outgrows the viewport. Grid sticky needs align-items:start (the final-grid
 * block above sets it). Top offset = sticky header 77px + 15px gap.
 * overscroll-behavior keeps inner scrolling from chaining to the page. */
@media (min-width: 992px) {
	body.woocommerce-cart .cart-collaterals {
		position: sticky;
		top: 92px;
		max-height: calc(100vh - 107px);
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-width: thin;
		scrollbar-color: #ddd transparent;
	}
	body.woocommerce-cart .cart-collaterals::-webkit-scrollbar {
		width: 4px;
	}
	body.woocommerce-cart .cart-collaterals::-webkit-scrollbar-thumb {
		background: #ddd;
	}
	body.woocommerce-cart .cart-collaterals::-webkit-scrollbar-track {
		background: transparent;
	}
}

/* ====================================================================
 * === CHECKOUT V3 (R17) === (2026-10-06, checkout-v1.html draft)
 * Three-section left column + sticky order-summary rail. All rules scoped
 * body.woocommerce-checkout; grid rules carry their own min-width:992px
 * wrapper (R16.1 ⑤ — an unwrapped rule would out-cascade the ≤991
 * collapse). The .cqw-pf-* twin below mirrors the cart V3.1 ladder values
 * for the head-less checkout hint; the cart block is untouched.
 * ==================================================================== */

/* --- 1. two-track grid (desktop only) --- */
@media (min-width: 992px) {
	body.woocommerce-checkout .cqw-co-grid {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 400px;
		column-gap: 24px;
		align-items: start;
	}
}

/* --- 2. section cards (white / hairline / 3px marigold top) --- */
body.woocommerce-checkout .cqw-co-sec {
	background: #fff;
	border: 1px solid #eee;
	border-top: 3px solid #efb33c;
	padding: 22px 24px 24px;
	margin-bottom: 24px;
}
body.woocommerce-checkout .cqw-sec-head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-bottom: 14px;
	margin-bottom: 18px;
	border-bottom: 1px solid #eee;
}
body.woocommerce-checkout .cqw-sec-no {
	width: 24px;
	height: 24px;
	background: #1a1a1a;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
}
body.woocommerce-checkout .cqw-sec-title {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #1a1a1a;
}
body.woocommerce-checkout .cqw-prefill {
	font-size: 12px;
	color: #999;
	margin: -6px 0 14px;
}

/* --- 3. fields: flatten WC floats, two-column grid rows --- */
body.woocommerce-checkout .cqw-co-sec .form-row-first,
body.woocommerce-checkout .cqw-co-sec .form-row-last {
	width: 100%;
	float: none;
}
body.woocommerce-checkout .cqw-frow {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 14px;
}
body.woocommerce-checkout .cqw-frow-full {
	display: block;
}
body.woocommerce-checkout .cqw-co-sec .form-row {
	margin: 0 0 14px;
}
body.woocommerce-checkout .cqw-co-sec abbr.required {
	color: #efb33c;
	font-weight: 700;
	text-decoration: none;
}
body.woocommerce-checkout .cqw-email-tint input[type="email"] {
	background: #fffdf4;
}
body.woocommerce-checkout .cqw-email-tint .description {
	display: block;
	font-size: 12px;
	color: #999;
	margin-top: 5px;
}

/* --- 4. section 02 notice rows --- */
body.woocommerce-checkout .cqw-ship-note {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	background: #f7f7f7;
	padding: 10px 12px;
	font-size: 12px;
	color: #444;
	margin-bottom: 16px;
}
body.woocommerce-checkout .cqw-ship-note svg {
	flex: none;
	margin-top: 2px;
}
body.woocommerce-checkout .cqw-region-help {
	font-size: 12px;
	color: #999;
	margin: -8px 0 14px;
}

/* --- 5. collapse line: ship to a different address (deviation #1) --- */
body.woocommerce-checkout .cqw-alt-ship {
	margin-top: 2px;
	padding-top: 14px;
	border-top: 1px solid #eee;
}
body.woocommerce-checkout .cqw-alt-ship-toggle {
	font-size: 13px;
	color: #444;
	cursor: pointer;
	user-select: none;
	display: block;
}
body.woocommerce-checkout .cqw-alt-ship-toggle input[type="checkbox"] {
	accent-color: #1a1a1a;
	margin-right: 8px;
}
body.woocommerce-checkout .cqw-alt-ship .shipping_address {
	margin-top: 14px;
}

/* --- 6. section 03: gateways / trust / CTA / DAP line ---
 * R17 v3 (payment UI polish 2026-10-06): each gateway = one selectable
 * row whose radio lives inside the label, so hover/selection cover the
 * whole li including the radio. Zero gray/lavender fills — selected =
 * white + 3px black inset bar + bold title (existing gene, kept); hover =
 * hairline left bar + micro-copy darkening only. WC's own #payment panel
 * chrome (lavender wash + 5px radius) is neutralized so the section stays
 * a flat white card. The payment_box survives only for gateways with real
 * fields (proof upload) — styled as the row's indented sub-block instead
 * of WC's gray box. Redirect-mode Airwallex gateways carry no box at all
 * (description lives in the row). */
body.woocommerce-checkout #cqw-sec-payment ul.wc_payment_methods {
	border-top: 1px solid #eee;
}
body.woocommerce-checkout #cqw-sec-payment #payment {
	background: none;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
}
body.woocommerce-checkout #cqw-sec-payment li.wc_payment_method {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 10px;
	border-bottom: 1px solid #eee;
	background: #fff;
	box-shadow: inset 3px 0 0 #fff;
	transition: box-shadow 0.15s ease;
}
body.woocommerce-checkout #cqw-sec-payment li.wc_payment_method:hover {
	box-shadow: inset 3px 0 0 #ddd;
}
body.woocommerce-checkout #cqw-sec-payment li.wc_payment_method:has(input:checked),
body.woocommerce-checkout #cqw-sec-payment li.wc_payment_method:has(input:checked):hover {
	box-shadow: inset 3px 0 0 #1a1a1a;
}
body.woocommerce-checkout #cqw-sec-payment li.wc_payment_method > label.cqw-gw-row {
	flex: 1 1 0;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 10px;
	padding: 14px 2px 14px 10px;
	font-size: 13px;
	cursor: pointer;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-row input.input-radio {
	accent-color: #1a1a1a;
	flex: none;
	margin: 0;
	width: 15px;
	height: 15px;
	cursor: pointer;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-name {
	font-weight: 500;
	color: #1a1a1a;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-micro {
	font-size: 12px;
	color: #999;
	transition: color 0.15s ease;
}
body.woocommerce-checkout #cqw-sec-payment li.wc_payment_method:hover .cqw-gw-micro {
	color: #666;
}
/* R17-b9: Main-row brand mark (left) + aggregated method icons (right) */
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-brand {
	align-self: center;
	height: 21px;
	width: auto;
	margin-left: 2px;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-pms {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-left: auto;
	align-self: center;
	position: relative;
	padding: 2px 0;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-pms > img {
	display: block;
	height: 20px;
	width: auto;
	border: 1px solid #eee;
	padding: 2px 4px;
	background: #fff;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-pms-more {
	font-size: 11.5px;
	font-weight: 600;
	color: #666;
	border: 1px solid #eee;
	background: #fff;
	padding: 4px 7px;
	line-height: 1.2;
	cursor: default;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-pms-all {
	display: none;
	position: absolute;
	bottom: calc(100% + 8px);
	right: 0;
	background: #fff;
	border: 1px solid #eee;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.1);
	padding: 12px 14px;
	grid-template-columns: repeat(4, auto);
	gap: 10px 12px;
	z-index: 30;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-pms-all::after {
	content: "";
	position: absolute;
	top: 100%;
	right: 0;
	width: 100%;
	height: 9px;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-pms-all img {
	display: block;
	height: 24px;
	width: auto;
	border: 1px solid #f2f2f2;
	padding: 3px 6px;
	background: #fff;
}
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-pms:hover .cqw-gw-pms-all,
body.woocommerce-checkout #cqw-sec-payment .cqw-gw-pms-more:focus ~ .cqw-gw-pms-all {
	display: grid;
}
body.woocommerce-checkout #cqw-sec-payment li.wc_payment_method:has(input:checked) .cqw-gw-name {
	font-weight: 700;
}
body.woocommerce-checkout #cqw-sec-payment .payment_box {
	flex-basis: 100%;
	flex-grow: 1;
	background: none;
	padding: 0 2px 14px 35px;
	font-size: 12px;
	color: #999;
	margin: 0;
}
body.woocommerce-checkout .cqw-trust-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 14px 0 0;
	font-size: 11px;
	letter-spacing: 0.8px;
	color: #999;
	text-transform: uppercase;
}
body.woocommerce-checkout .cqw-trust-row svg {
	flex: none;
}
body.woocommerce-checkout .woocommerce-checkout-payment .form-row.terms {
	font-size: 12px;
	color: #444;
	margin: 18px 0 14px;
}
body.woocommerce-checkout #place_order:hover {
	background: #000;
	color: #fff;
	transform: translateY(-1px);
}
body.woocommerce-checkout #place_order {
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-checkout .cqw-dap-line {
	margin-top: 10px;
	font-size: 11px;
	color: #999;
	text-align: center;
	letter-spacing: 0.3px;
}

/* --- 7. rail: summary card + sticky (R16.1 constants) --- */
body.woocommerce-checkout aside.cqw-co-rail {
	background: #fff;
	border: 1px solid #eee;
	border-top: 3px solid #efb33c;
}
@media (min-width: 992px) {
	body.woocommerce-checkout aside.cqw-co-rail {
		position: sticky;
		top: 92px;
		max-height: calc(100vh - 107px);
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-width: thin;
		scrollbar-color: #ddd transparent;
	}
	body.woocommerce-checkout aside.cqw-co-rail::-webkit-scrollbar {
		width: 4px;
	}
	body.woocommerce-checkout aside.cqw-co-rail::-webkit-scrollbar-thumb {
		background: #ddd;
	}
	body.woocommerce-checkout aside.cqw-co-rail::-webkit-scrollbar-track {
		background: transparent;
	}
}

/* --- 8. summary head --- */
body.woocommerce-checkout .cqw-sum-head {
	padding: 18px 20px 12px;
	border-bottom: 1px solid #eee;
}
body.woocommerce-checkout .cqw-sum-title {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: #1a1a1a;
}
body.woocommerce-checkout .cqw-sum-meta {
	font-size: 12px;
	color: #999;
	margin-top: 3px;
}
body.woocommerce-checkout #order_review {
	padding: 4px 20px 18px;
}

/* --- 9. review table → draft item rows + ladder tfoot --- */
/* Frameless inner table: WC ships .shop_table with a 1px currentColor frame,
 * 5px radius and a -1px compensating margin — none of that belongs to the
 * draft rail (the card chrome lives on the aside). */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	border: 0;
	border-radius: 0;
	margin: 0;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table thead {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody td {
	padding: 9px 0;
	border-bottom: 1px solid #eee;
	font-size: 13px;
	vertical-align: top;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name {
	color: #1a1a1a;
	padding-right: 12px;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name dl.variation {
	margin: 2px 0;
	font-size: 11px;
	color: #999;
	letter-spacing: 0.5px;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name dl.variation dt,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name dl.variation dd {
	display: inline;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name dl.variation dd {
	margin: 0 6px 0 2px;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table .si-math {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	color: #999;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total {
	font-size: 13px;
	font-weight: 600;
	color: #1a1a1a;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	text-align: right;
	vertical-align: top;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td {
	padding: 8px 0;
	border-bottom: 0;
	font-size: 13px;
	font-weight: 400;
	color: #444;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	color: #1a1a1a;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .cart-discount th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .cart-discount td {
	color: #7e9668;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .shipping small,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .shipping ul {
	font-size: 11px;
	color: #999;
}

/* --- 10a. ladder lives inside the table (tfoot tr>td wrapper) — valid
 * table content so WC's table-node fragment replacement keeps it single;
 * neutralize the tfoot cell chrome around it. */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.cqw-ladder-row > td {
	padding: 0;
	border-bottom: 0;
	background: none;
}

/* --- 10. .cqw-pf-* checkout twin (head-less hint ladder) ---
 * Draft tokens (checkout-v1.html .ladder/.lrow/.pay-row/.tax-row/.landed),
 * NOT the airier cart V3.1 values: 8px rows / 13px values / 22px pay+landed /
 * 4px marigold BOTTOM border on the landed figure / plain 11px note.
 * The rail replaces the .cqw-pf-card chrome (no card border/padding here). */
body.woocommerce-checkout #order_review .cqw-pf-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 8px 0;
	font-size: 13px;
	border-bottom: 0;
}
body.woocommerce-checkout #order_review .cqw-pf-label {
	font-size: 13px;
	color: #444;
}
body.woocommerce-checkout #order_review .cqw-pf-pct {
	font-style: normal;
	font-size: 11px;
	color: #999;
	margin-left: 5px;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-checkout #order_review .cqw-pf-sub {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	color: #999;
	letter-spacing: 0.5px;
}
body.woocommerce-checkout #order_review .cqw-pf-val {
	font-size: 13px;
	font-weight: 500;
	text-align: right;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	color: #1a1a1a;
}
body.woocommerce-checkout #order_review .cqw-pf-note-inline {
	font-size: 13px;
	color: #999;
}

/* R18-C: shipping chooser — main-column section 03 (#cqw-ship-choice, fed
   by Carmela_Cart_Proforma::render_shipping_chooser()). Radios carry WC's
   shipping_method[0] contract; the rail ladder mirrors the chosen method
   read-only. Cheapest-first, admin description as the small line; the
   .is-fixed variant is the single-method pre-selected disabled row. */
body.woocommerce-checkout #cqw-ship-choice {
	border: 1px solid #e4e4e4;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 12px;
	cursor: pointer;
	border-bottom: 1px solid #eee;
	transition: background 0.15s ease;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship:last-child {
	border-bottom: 0;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship:hover {
	background: #fafafa;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship.is-selected {
	background: #fafafa;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship.is-fixed {
	cursor: default;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship.is-fixed:hover {
	background: #fff;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship.is-fixed input[type="radio"] {
	accent-color: #1a1a1a;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship input[type="radio"] {
	margin: 3px 0 0;
	flex-shrink: 0;
	accent-color: #1a1a1a;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship-main {
	flex: 1;
	min-width: 0;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship-name {
	display: block;
	font-size: 13px;
	color: #1a1a1a;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship-desc {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	color: #999;
	letter-spacing: 0.3px;
	line-height: 1.5;
}
body.woocommerce-checkout #cqw-ship-choice .cqw-pf-ship-price {
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	color: #1a1a1a;
}
body.woocommerce-checkout #order_review hr.cqw-pf-sep {
	border: 0;
	border-top: 2px solid #1a1a1a;
	margin: 6px 0 2px;
}
body.woocommerce-checkout #order_review hr.cqw-pf-sep--hair {
	border-top: 1px solid #eee;
	margin: 4px 0;
}
body.woocommerce-checkout #order_review .cqw-pf-row--coupon .cqw-pf-label,
body.woocommerce-checkout #order_review .cqw-pf-row--coupon .cqw-pf-val .amount {
	color: #7e9668;
}
body.woocommerce-checkout #order_review .cqw-pf-row--pay {
	align-items: flex-start;
	padding: 10px 0 8px;
}
body.woocommerce-checkout #order_review .cqw-pf-pay-label {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: #1a1a1a;
}
body.woocommerce-checkout #order_review .cqw-pf-cap {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.2px;
	text-transform: none;
	color: #999;
}
body.woocommerce-checkout #order_review .cqw-pf-pay-val {
	font-size: 22px;
	font-weight: 600;
	color: #1a1a1a;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
body.woocommerce-checkout #order_review .cqw-pf-total {
	margin-top: 6px;
	padding-top: 10px;
	border-top: 3px solid #1a1a1a;
}
body.woocommerce-checkout #order_review .cqw-pf-total-label {
	font-size: 13px;
	font-weight: 700;
	color: #1a1a1a;
}
body.woocommerce-checkout #order_review .cqw-pf-total .cqw-pf-total-label .cqw-pf-cap {
	margin-top: 3px;
	max-width: 220px;
}
body.woocommerce-checkout #order_review .cqw-pf-total-val {
	margin-top: 6px;
	font-size: 22px;
	font-weight: 700;
	color: #1a1a1a;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	border-bottom: 4px solid #efb33c;
	line-height: 1.25;
	padding-bottom: 2px;
	display: inline-block;
}
body.woocommerce-checkout #order_review .cqw-pf-note {
	margin-top: 12px;
	font-size: 11px;
	line-height: 1.55;
	color: #999;
	/* WC nowrap on shop_table cells inherits into the ladder cell and makes
	 * the whole disclaimer one unbreakable line — 552px min-width at 375. */
	white-space: normal;
}
body.woocommerce-checkout #order_review .cqw-pf-note-inline {
	white-space: normal;
}
body.woocommerce-checkout #order_review .cqw-pf-note a {
	color: #444;
}

/* --- 11. responsive: ≤991 single column (sections first, rail after),
 * ≤480 field rows collapse to one column --- */
@media (max-width: 991px) {
	body.woocommerce-checkout aside.cqw-co-rail {
		margin-top: 24px;
	}
	/* R9 (user 2026-10-08): on phones the rail flows between 03 and 04
	   (moved there by carmela-checkout.js) — carry the section rhythm
	   instead of the after-main gap. */
	body.woocommerce-checkout .cqw-co-main > aside.cqw-co-rail {
		margin: 0 0 24px;
	}
}
@media (max-width: 480px) {
	body.woocommerce-checkout .cqw-frow {
		grid-template-columns: 1fr;
	}
	/* auto table layout lets long item rows push the rail past the viewport
	 * (511px inside 375px) — fixed layout keeps the table at 100% and lets
	 * the name column wrap. The ladder row still forces the table wider
	 * (nowrap amounts in a colspan cell), so its rows wrap and amounts
	 * drop the nowrap at phone width. */
	body.woocommerce-checkout table.woocommerce-checkout-review-order-table {
		table-layout: fixed;
		width: 100%;
	}
	body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total {
		width: 40%;
	}
	body.woocommerce-checkout #order_review .cqw-pf-row {
		flex-wrap: wrap;
	}
	body.woocommerce-checkout #order_review .cqw-pf-val,
	body.woocommerce-checkout #order_review .cqw-pf-pay-val,
	body.woocommerce-checkout #order_review .cqw-pf-total-val {
		white-space: normal;
	}
	body.woocommerce-checkout #order_review .cqw-pf-pay-val {
		font-size: 19px;
	}
	body.woocommerce-checkout #order_review .cqw-pf-total-val {
		font-size: 22px;
	}
}

/* --- 12. coupon chips twin + rail notices (R17③, 2026-10-06) ---
 * Same gene as the cart-page chips (body.woocommerce-cart .cqw-pf-chips*),
 * restated in the checkout domain: the order-summary rail carries the
 * chips at the card bottom (form-checkout.php), below the ladder and its
 * disclaimer. The classic red/blue "Have a coupon?" toggle is removed
 * there; applied coupons live as ladder rows with remove links, so chips
 * only list unapplied codes. Click handler: resource/js/carmela-checkout.js
 * riding WC's native wc-ajax=apply_coupon (wc_checkout_params nonce). */
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chips {
	margin: 0;
	padding: 12px 20px 18px;
	border-top: 1px dashed #ddd;
}
body.woocommerce-checkout .cqw-co-rail:has(.cqw-pf-chips) #order_review {
	padding-bottom: 4px;
}
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chips-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #999;
	margin-bottom: 8px;
}
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chip {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	border: 1px solid #1a1a1a;
	background: #fff;
	color: #1a1a1a;
	padding: 9px 12px;
	margin: 0 0 6px;
	cursor: pointer;
	text-align: left;
	font-family: inherit;
	font-size: inherit;
	line-height: 1.4;
	border-radius: 0;
	box-shadow: none;
}
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chip:hover {
	background: #1a1a1a;
	color: #fff;
}
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chip:hover .cqw-pf-chip-em,
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chip:hover .cqw-pf-chip-hint {
	color: #efb33c;
}
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chip-code {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	font-variant-numeric: tabular-nums;
}
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chip-em {
	font-style: normal;
	font-size: 13px;
	font-weight: 700;
	color: #d20000;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chip-hint {
	margin-left: auto;
	font-size: 11px;
	color: #999;
	letter-spacing: 1px;
	white-space: nowrap;
}
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chip:disabled,
body.woocommerce-checkout .cqw-co-rail .cqw-pf-chip.is-loading {
	opacity: 0.55;
	cursor: default;
}

/* chip result notices (WC apply_coupon response) — restrained rail slot */
body.woocommerce-checkout .cqw-co-rail .cqw-rail-notices {
	padding: 12px 20px 0;
}
body.woocommerce-checkout .cqw-co-rail .cqw-rail-notices:empty {
	display: none;
}
/* Rail notice visuals live in group 15 (global WC notices) since R17-b5. */

/* --- 13. §② address card (R17 follow-up: multi-address book) ---
 * One address visible at any moment: the selected-entry card, a one-tap
 * switcher list, or the blank form behind the "different address" toggle.
 * Same no-fill interaction language as the payment rows (section 6): hover
 * = hairline left bar, selected = black left bar + bold, no gray fills. */
body.woocommerce-checkout .cqw-addr-card {
	border: 1px solid #eee;
	background: #fff;
	padding: 14px 16px;
	margin-bottom: 10px;
}
body.woocommerce-checkout .cqw-addr-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 6px;
}
body.woocommerce-checkout .cqw-addr-label {
	font-size: 13px;
	font-weight: 700;
	color: #1a1a1a;
}
body.woocommerce-checkout .cqw-addr-label em {
	font-style: normal;
	font-size: 11px;
	color: #999;
	font-weight: 400;
}
body.woocommerce-checkout .cqw-addr-switch {
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #444;
	background: none;
	border: 0;
	border-bottom: 1px solid #1a1a1a;
	cursor: pointer;
	padding: 0 0 1px;
	font-family: inherit;
}
body.woocommerce-checkout .cqw-addr-lines {
	font-size: 13px;
	color: #444;
	line-height: 1.6;
}
body.woocommerce-checkout .cqw-addr-picker {
	border: 1px solid #eee;
	background: #fff;
	margin: 0 0 10px;
}
body.woocommerce-checkout .cqw-addr-option {
	display: block;
	width: 100%;
	text-align: left;
	background: none;
	border: 0;
	border-bottom: 1px solid #eee;
	padding: 11px 16px;
	cursor: pointer;
	font-family: inherit;
	transition: box-shadow 0.2s ease;
}
body.woocommerce-checkout .cqw-addr-option:last-child {
	border-bottom: 0;
}
body.woocommerce-checkout .cqw-addr-option:hover {
	box-shadow: inset 3px 0 0 #ddd;
}
body.woocommerce-checkout .cqw-addr-option.is-selected {
	box-shadow: inset 3px 0 0 #1a1a1a;
}
body.woocommerce-checkout .cqw-addr-option-label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: #1a1a1a;
}
body.woocommerce-checkout .cqw-addr-option.is-selected .cqw-addr-option-label {
	font-weight: 700;
}
body.woocommerce-checkout .cqw-addr-option-label em {
	font-style: normal;
	font-size: 11px;
	color: #999;
	font-weight: 400;
}
body.woocommerce-checkout .cqw-addr-option-lines {
	display: block;
	font-size: 12px;
	color: #999;
	margin-top: 2px;
}
body.woocommerce-checkout .cqw-addr-alt-toggle {
	display: block;
	width: 100%;
	text-align: left;
	font-size: 13px;
	color: #444;
	background: none;
	border: 0;
	border-top: 1px solid #eee;
	padding: 12px 2px 0;
	margin-top: 4px;
	cursor: pointer;
	font-family: inherit;
}
body.woocommerce-checkout .cqw-addr-save {
	display: flex;
	gap: 8px;
	align-items: center;
	font-size: 12px;
	color: #444;
	margin: 4px 0 0;
}
body.woocommerce-checkout .cqw-addr-save input {
	accent-color: #1a1a1a;
}
body.woocommerce-checkout .cqw-addr-empty .cqw-addr-card {
	border-style: dashed;
}
body.woocommerce-checkout .cqw-addr-manage {
	display: inline-block;
	font-size: 12px;
	color: #444;
	text-decoration: underline;
	margin-top: 10px;
}
body.woocommerce-checkout .cqw-addr-manage:hover {
	color: #1a1a1a;
}
body.woocommerce-checkout .cqw-addr-back {
	display: inline-block;
	font-size: 12px;
	color: #444;
	background: none;
	border: 0;
	padding: 0 0 12px;
	cursor: pointer;
	font-family: inherit;
	transition: color 0.15s ease;
}
body.woocommerce-checkout .cqw-addr-back:hover {
	color: #1a1a1a;
}

/* --- 14. my-account address book page --- */
body.woocommerce-account .cqw-ab-title {
	font-size: 24px;
	font-weight: 600;
	color: #1a1a1a;
}
body.woocommerce-account .cqw-ab-sub {
	font-size: 13px;
	color: #888;
	margin: 6px 0 18px;
}
body.woocommerce-account .cqw-ab-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 14px;
	margin-bottom: 20px;
}
body.woocommerce-account .cqw-ab-card {
	border: 1px solid #eee;
	border-top: 3px solid #efb33c;
	background: #fff;
	padding: 16px;
	display: flex;
	flex-direction: column;
}
body.woocommerce-account .cqw-ab-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 8px;
}
body.woocommerce-account .cqw-ab-label {
	font-size: 13px;
	font-weight: 700;
	color: #1a1a1a;
}
body.woocommerce-account .cqw-ab-default-badge {
	background: #efb33c;
	color: #1a1a1a;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	padding: 2px 6px;
	flex: none;
}
body.woocommerce-account .cqw-ab-name {
	font-size: 13px;
	font-weight: 600;
	color: #1a1a1a;
}
body.woocommerce-account .cqw-ab-lines,
body.woocommerce-account .cqw-ab-phone {
	font-size: 13px;
	color: #444;
	line-height: 1.6;
}
body.woocommerce-account .cqw-ab-actions {
	margin-top: auto;
	padding-top: 12px;
	display: flex;
	gap: 14px;
	border-top: 1px solid #eee;
	margin-top: 14px;
}
body.woocommerce-account .cqw-ab-act {
	font-size: 12px;
	color: #444;
	background: none;
	border: 0;
	border-bottom: 1px solid #1a1a1a;
	cursor: pointer;
	padding: 0 0 1px;
	font-family: inherit;
}
body.woocommerce-account .cqw-ab-act-danger {
	border-bottom-color: #d20000;
	color: #d20000;
}
body.woocommerce-account .cqw-ab-new {
	border: 1px dashed #ddd;
	padding: 14px 16px;
}
body.woocommerce-account .cqw-ab-new-toggle {
	font-size: 13px;
	font-weight: 600;
	color: #1a1a1a;
	cursor: pointer;
}
body.woocommerce-account .cqw-ab-new[open] .cqw-ab-new-toggle {
	margin-bottom: 12px;
}
body.woocommerce-account .cqw-ab-field {
	margin: 0 0 12px;
}
body.woocommerce-account .cqw-ab-field label {
	display: block;
	font-size: 13px;
	color: #444;
	margin-bottom: 5px;
}
body.woocommerce-account .cqw-ab-field .req {
	color: #efb33c;
	font-weight: 700;
}
body.woocommerce-account .cqw-ab-field input,
body.woocommerce-account .cqw-ab-field select {
	width: 100%;
	font-size: 13px;
	color: #1a1a1a;
	border: 1px solid #ddd;
	border-radius: 0;
	background: #fff;
	padding: 10px 12px;
	height: auto;
}
body.woocommerce-account .cqw-ab .cqw-frow {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 14px;
}
@media (max-width: 600px) {
	body.woocommerce-account .cqw-ab .cqw-frow {
		grid-template-columns: 1fr;
	}
}
body.woocommerce-account .cqw-ab-form-actions {
	display: flex;
	gap: 14px;
	margin-top: 4px;
}
body.woocommerce-account .cqw-ab-submit {
	background: #111;
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;
	border: 0;
	border-radius: 0;
	padding: 12px 24px;
	cursor: pointer;
	font-family: inherit;
}
body.woocommerce-account .cqw-ab-submit:hover {
	background: #000;
}
body.woocommerce-account .cqw-ab-cancel {
	font-size: 12px;
	color: #444;
	background: none;
	border: 0;
	border-bottom: 1px solid #1a1a1a;
	cursor: pointer;
	align-self: center;
	font-family: inherit;
}

/* --- 15. WC notices global + coupon remove control (R17-b5, approved draft) ---
 * All WC transient notices share one component: white card, 1px #eee hairline,
 * 3px semantic left bar (message = marigold, info = black, error = red), zero
 * radius, WC ::before glyphs off. Links inside (Undo, View cart) become mini
 * ghost buttons of the site's inversion-hover family. carmela-notices.js adds
 * a 10s countdown bar to message/info and dismisses them; errors persist.
 * R18-①: .woocommerce-NoticeGroup joins the container list — checkout
 * field-validation errors print as FORM.checkout > .woocommerce-NoticeGroup >
 * div > UL.woocommerce-error (WC base css painted them lavender); selectors
 * are class-based so the div/ul tag duality needs zero markup changes. The
 * coupon chips' apply/remove notices already ride .cqw-rail-notices above. */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error,
.cqw-rail-notices .woocommerce-message,
.cqw-rail-notices .woocommerce-info,
.cqw-rail-notices .woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-message,
.woocommerce-NoticeGroup .woocommerce-info,
.woocommerce-NoticeGroup .woocommerce-error {
	background: #fff;
	border: 1px solid #eee;
	border-left: 3px solid #efb33c;
	border-radius: 0;
	color: #444;
	margin: 0 0 12px;
	padding: 12px 16px;
	font-size: 12.5px;
	line-height: 1.55;
	list-style: none;
	position: relative;
	overflow: hidden;
	animation: cqw-notice-in 0.25s ease;
}
.woocommerce-notices-wrapper .woocommerce-info,
.cqw-rail-notices .woocommerce-info,
.woocommerce-NoticeGroup .woocommerce-info {
	border-left-color: #1a1a1a;
}
.woocommerce-notices-wrapper .woocommerce-error,
.cqw-rail-notices .woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-error {
	border-left-color: #d20000;
}
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before,
.woocommerce-notices-wrapper .woocommerce-error::before,
.cqw-rail-notices .woocommerce-message::before,
.cqw-rail-notices .woocommerce-info::before,
.cqw-rail-notices .woocommerce-error::before,
.woocommerce-NoticeGroup .woocommerce-message::before,
.woocommerce-NoticeGroup .woocommerce-info::before,
.woocommerce-NoticeGroup .woocommerce-error::before {
	content: none;
}
.woocommerce-notices-wrapper .woocommerce-error ul,
.cqw-rail-notices .woocommerce-error ul {
	margin: 6px 0 0;
	padding: 0;
	list-style: none;
}
.woocommerce-notices-wrapper .woocommerce-error li,
.cqw-rail-notices .woocommerce-error li,
.woocommerce-NoticeGroup .woocommerce-error li {
	margin: 0;
	padding: 1px 0 1px 14px;
	border: 0;
	background: none;
	color: #d20000;
	position: relative;
}
.woocommerce-notices-wrapper .woocommerce-error li::before,
.cqw-rail-notices .woocommerce-error li::before,
.woocommerce-NoticeGroup .woocommerce-error li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 7px;
	height: 1.5px;
	background: #d20000;
}
.woocommerce-notices-wrapper .woocommerce-message a,
.woocommerce-notices-wrapper .woocommerce-info a,
.woocommerce-notices-wrapper .woocommerce-error a,
.cqw-rail-notices .woocommerce-message a,
.cqw-rail-notices .woocommerce-info a,
.cqw-rail-notices .woocommerce-error a,
.woocommerce-NoticeGroup .woocommerce-message a,
.woocommerce-NoticeGroup .woocommerce-info a,
.woocommerce-NoticeGroup .woocommerce-error a {
	display: inline-block;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #1a1a1a;
	background: #fff;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	padding: 4px 12px;
	margin-left: 4px;
	text-decoration: none;
	line-height: 1.4;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.woocommerce-notices-wrapper .woocommerce-message a:hover,
.woocommerce-notices-wrapper .woocommerce-info a:hover,
.woocommerce-notices-wrapper .woocommerce-error a:hover,
.cqw-rail-notices .woocommerce-message a:hover,
.cqw-rail-notices .woocommerce-info a:hover,
.cqw-rail-notices .woocommerce-error a:hover,
.woocommerce-NoticeGroup .woocommerce-message a:hover,
.woocommerce-NoticeGroup .woocommerce-info a:hover,
.woocommerce-NoticeGroup .woocommerce-error a:hover {
	background: #1a1a1a;
	color: #fff;
	transform: translateY(-1px);
}
.cqw-notice-timer {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 3px;
	background: #efb33c;
	transform-origin: left center;
	animation: cqw-notice-timer 10s linear forwards;
	pointer-events: none;
}
.woocommerce-info .cqw-notice-timer {
	background: #1a1a1a;
}
.woocommerce-notices-wrapper .cqw-notice--out,
.cqw-rail-notices .cqw-notice--out {
	opacity: 0;
	max-height: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
	border-top-width: 0;
	border-bottom-width: 0;
	overflow: hidden;
	transition: opacity 0.35s ease, max-height 0.35s ease, margin 0.35s ease, padding 0.35s ease, border-width 0.35s ease;
}
@keyframes cqw-notice-in {
	from { opacity: 0; transform: translateX(-4px); }
	to { opacity: 1; transform: none; }
}
@keyframes cqw-notice-timer {
	from { transform: scaleX(1); }
	to { transform: scaleX(0); }
}
/* coupon remove control — one row markup serves the cart panel and the checkout ladder */
.cqw-pf-row--coupon .cqw-remove {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-left: 12px;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #1a1a1a;
	background: #fff;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	padding: 3px 10px;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.cqw-pf-row--coupon .cqw-remove .x {
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}
.cqw-pf-row--coupon .cqw-remove:hover {
	background: #1a1a1a;
	color: #fff;
	transform: translateY(-1px);
}
.cqw-pf-row--coupon .cqw-remove:focus-visible {
	outline: 2px solid #1a1a1a;
	outline-offset: 2px;
}

/* ============================================================
   === ACCOUNT V2 (C6) ===  (2026-10-07, design truth:
   .root_docs/frontend/assets/c6-design-draft.html v2.2)
   Namespace .cqw-ma-*. Same values as the draft (fonts/colors/
   margins copied verbatim). B1: shell / nav / user chip / pills /
   buttons / cards / order card / overview. Later C6 batches append
   inside this group only — the P2-B legacy ACCOUNT group (L666) is
   inert now (its .woocommerce-MyAccount-* targets no longer render).
   ============================================================ */

/* ---------- shell ---------- */
.cqw-ma { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 32px; padding: 36px 48px 72px; }
.cqw-ma-nav { position: sticky; top: 86px; align-self: start; }
.cqw-ma-main { min-width: 0; }

/* ---------- user chip (desktop sidebar) ---------- */
.cqw-ma-user { border: 1px solid #eee; background: #fff; padding: 16px; display: flex; gap: 12px; align-items: center; margin-bottom: 20px; }
.cqw-ma-userava { width: 44px; height: 44px; background: #1a1a1a; color: #fff; font-size: 15px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: none; letter-spacing: 1px; }
.cqw-ma-usernm { font-weight: 700; font-size: 13.5px; line-height: 1.3; }
.cqw-ma-userco { font-size: 11.5px; color: #999; line-height: 1.4; }
.cqw-ma-userrg { display: inline-block; margin-top: 4px; font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; border: 1px solid #eee; padding: 2px 6px; }

/* ---------- grouped nav ---------- */
.cqw-ma-navgrp { font-size: 10.5px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: #bbb; padding: 16px 12px 8px; }
.cqw-ma-navlist > .cqw-ma-navgrp:first-child { padding-top: 0; }
.cqw-ma-navit { display: flex; align-items: center; justify-content: space-between; padding: 11px 12px; font-size: 13px; color: #444; position: relative; transition: background 0.18s ease, color 0.18s ease; }
.cqw-ma-navit:hover { background: #f7f7f7; color: #111; }
.cqw-ma-navit.on { background: #1a1a1a; color: #fff; }
.cqw-ma-navit.warn { font-weight: 700; }
.cqw-ma-navbdg { width: 7px; height: 7px; border-radius: 50%; background: #efb33c; }
.cqw-ma-navcnt { font-size: 11px; color: #999; font-weight: 700; }
.cqw-ma-navit.on .cqw-ma-navcnt { color: #efb33c; }
.cqw-ma-navit.out { border-top: 1px solid #eee; margin-top: 14px; color: #999; }

/* ---------- status pills ---------- */
.cqw-ma-pill { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; padding: 4px 10px; white-space: nowrap; }
.cqw-ma-pill::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.cqw-ma-pill--proc { background: #1a1a1a; color: #fff; }
.cqw-ma-pill--proc::before { background: #efb33c; }
.cqw-ma-pill--pend { background: #efb33c; color: #1a1a1a; }
.cqw-ma-pill--done { background: #fff; color: #1a1a1a; border: 1px solid #ddd; }
.cqw-ma-pill--done::before { background: #1a1a1a; }
.cqw-ma-pill--cxl { background: #f4f4f4; color: #999; border: 1px solid #eee; }

/* ---------- CTA genes ---------- */
.cqw-ma-btn { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; padding: 11px 22px; border: 1px solid #1a1a1a; background: #fff; color: #1a1a1a; transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, border-color 0.2s ease; text-align: center; }
.cqw-ma-btn--solid { background: #1a1a1a; color: #fff; }
.cqw-ma-btn--solid:hover { background: #fff; color: #1a1a1a; transform: translateY(-1px); }
.cqw-ma-btn--line:hover { background: #1a1a1a; color: #fff; transform: translateY(-1px); }
.cqw-ma-btn--gold { background: #efb33c; color: #1a1a1a; border-color: #efb33c; }
.cqw-ma-btn--gold:hover { background: #1a1a1a; color: #fff; border-color: #1a1a1a; transform: translateY(-1px); }
.cqw-ma-acts { display: flex; gap: 10px; flex-wrap: wrap; }
.cqw-ma-paynow { animation: cqw-ma-pulse 2.4s ease infinite; }
@keyframes cqw-ma-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(239, 179, 60, 0); } 50% { box-shadow: 0 0 0 5px rgba(239, 179, 60, 0.25); } }

/* ---------- cards + page titles ---------- */
.cqw-ma-card { background: #fff; border: 1px solid #eee; padding: 22px 24px; }
.cqw-ma-card + .cqw-ma-card, .cqw-ma-ocard + .cqw-ma-card, .cqw-ma-card + .cqw-ma-ocard { margin-top: 20px; }
.cqw-ma-cardh { display: flex; align-items: center; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #eee; margin-bottom: 16px; gap: 12px; flex-wrap: wrap; }
.cqw-ma-cardh b { font-size: 13px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.cqw-ma-cardh a { font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #1a1a1a; border-bottom: 1px solid #1a1a1a; padding-bottom: 2px; }
.cqw-ma-cardh a:hover { color: #fff; background: #1a1a1a; }
.cqw-ma-pgtitle { font-size: 22px; font-weight: 700; letter-spacing: 0.5px; margin-bottom: 4px; }
.cqw-ma-pgsub { font-size: 12.5px; color: #999; margin-bottom: 26px; }

/* ---------- order card (three segments) ---------- */
.cqw-ma-ocard { background: #fff; border: 1px solid #eee; margin-bottom: 16px; position: relative; transition: transform 0.2s ease; }
.cqw-ma-ocard::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: #1a1a1a; transition: width 0.18s ease; }
.cqw-ma-ocard:hover { transform: translateY(-1px); }
.cqw-ma-ocard:hover::before { width: 3px; }
.cqw-ma-ocardlink { display: block; color: inherit; }
.cqw-ma-ocardhd { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 13px 20px; border-bottom: 1px solid #eee; flex-wrap: wrap; }
.cqw-ma-ocardno { font-weight: 700; font-size: 13.5px; letter-spacing: 0.5px; }
.cqw-ma-ocarddt { font-size: 12px; color: #999; margin-left: 10px; }
.cqw-ma-ocardbd { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 20px; }
.cqw-ma-thumbs { display: flex; gap: 6px; align-items: center; }
.cqw-ma-th { width: 52px; height: 64px; background: #f4f4f4; border: 1px solid #eee; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; color: #aaa; letter-spacing: 0.5px; flex: none; overflow: hidden; }
.cqw-ma-th img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cqw-ma-th--more { font-size: 11px; color: #1a1a1a; background: #fff; }
.cqw-ma-oam { text-align: right; }
.cqw-ma-oamtt { font-size: 17px; font-weight: 700; }
.cqw-ma-oamit { font-size: 11.5px; color: #999; }
.cqw-ma-ocardft { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 20px; border-top: 1px solid #eee; flex-wrap: wrap; }
.cqw-ma-ocardst { font-size: 12px; color: #666; }

/* ---------- overview: hello / verify banner / quick tiles ---------- */
.cqw-ma-hello { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 16px; margin-bottom: 24px; }
.cqw-ma-hello h2 { font-size: 20px; font-weight: 700; }
.cqw-ma-hello p { font-size: 12.5px; color: #999; margin-top: 2px; }
.cqw-ma-vbanner { background: #fff; border: 1px solid #eee; border-left: 3px solid #efb33c; padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 20px; flex-wrap: wrap; }
.cqw-ma-vbanner-t b { display: block; font-size: 13.5px; }
.cqw-ma-vbanner-t span { font-size: 12px; color: #888; }
.cqw-ma-quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 20px; }
.cqw-ma-qk { background: #fff; border: 1px solid #eee; padding: 18px; position: relative; transition: transform 0.2s ease, box-shadow 0.2s ease; display: block; color: inherit; }
.cqw-ma-qk:hover { transform: translateY(-1px); box-shadow: 0 1px 0 #1a1a1a; }
.cqw-ma-qklb { display: block; font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; margin-top: 10px; }
.cqw-ma-qkic { width: 30px; height: 30px; border: 1px solid #1a1a1a; display: flex; align-items: center; justify-content: center; font-size: 13px; }
.cqw-ma-qkms { display: block; font-size: 11.5px; color: #999; margin-top: 3px; }
.cqw-ma-qkn { position: absolute; top: 16px; right: 16px; font-size: 20px; font-weight: 700; }

/* ---------- mobile user row + horizontal chip nav (≤980 only) ---------- */
.cqw-ma-muser, .cqw-ma-mnav { display: none; }

/* ---------- ≤980 breakpoint ---------- */
@media (max-width: 980px) {
	.cqw-ma { grid-template-columns: 1fr; padding: 24px; gap: 0; }
	.cqw-ma-nav { position: static; }
	.cqw-ma-user { display: none; }
	.cqw-ma-navlist { display: none; }
	.cqw-ma-muser { display: flex; gap: 10px; align-items: center; padding: 14px 16px; border-bottom: 1px solid #eee; }
	.cqw-ma-mua { width: 36px; height: 36px; background: #1a1a1a; color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: none; }
	.cqw-ma-musernm { font-size: 12.5px; font-weight: 700; }
	.cqw-ma-musersub { font-size: 10.5px; color: #999; }
	.cqw-ma-mnav { display: flex; gap: 8px; overflow-x: auto; padding: 12px 16px; border-bottom: 1px solid #eee; scrollbar-width: none; }
	.cqw-ma-mnav::-webkit-scrollbar { display: none; }
	.cqw-ma-mchip { font-size: 10.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; padding: 8px 13px; border: 1px solid #eee; white-space: nowrap; color: #555; flex: none; }
	.cqw-ma-mchip.on { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
	.cqw-ma-mchip.warn { border-color: #efb33c; }
	.cqw-ma-quick { grid-template-columns: 1fr; }
	.cqw-ma-ocardhd { padding: 10px 12px; }
	.cqw-ma-ocarddt { display: block; margin-left: 0; }
	.cqw-ma-ocardbd { padding: 12px; flex-direction: column; align-items: flex-start; gap: 10px; }
	.cqw-ma-thumbs { width: 100%; overflow-x: auto; scrollbar-width: none; }
	.cqw-ma-thumbs::-webkit-scrollbar { display: none; }
	.cqw-ma-ocardft { padding: 10px 12px; flex-direction: column; align-items: stretch; gap: 10px; }
	.cqw-ma-ocardft .cqw-ma-acts { width: 100%; }
	.cqw-ma-ocardft .cqw-ma-acts .cqw-ma-btn { flex: 1; }
	.cqw-ma-oam { text-align: left; width: 100%; display: flex; justify-content: space-between; align-items: baseline; }
}

/* B1 fix: grid item auto-min (nowrap mnav chips) inflated the 1fr track -
   zero the intrinsic minimum so the chip scroller scrolls, not the page. */
@media (max-width: 980px) {
	.cqw-ma-nav { min-width: 0; }
}

/* B1 polish: the theme underlines+colors every <a> globally — the account
   namespace resets to the draft link genes (underline only where drafted). */
.cqw-ma a { text-decoration: none; }
.cqw-ma a:hover { text-decoration: none; }

/* --- C6 B2: order center (chips / empty / pagination) --- */
.cqw-ma-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.cqw-ma-chip { font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; padding: 9px 16px; border: 1px solid #eee; background: #fff; cursor: pointer; transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease; }
.cqw-ma-chip i { font-style: normal; color: #999; margin-left: 6px; }
.cqw-ma-chip:hover { border-color: #1a1a1a; }
.cqw-ma-chip.on { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
.cqw-ma-chip.on i { color: #efb33c; }
.cqw-ma-empty { text-align: center; padding: 72px 24px; background: #fff; border: 1px solid #eee; }
.cqw-ma-emptybox { width: 64px; height: 64px; margin: 0 auto 18px; border: 1px solid #efb33c; display: flex; align-items: center; justify-content: center; color: #efb33c; font-size: 22px; }
.cqw-ma-empty h3 { font-size: 16px; font-weight: 700; margin-bottom: 6px; }
.cqw-ma-empty p { font-size: 12.5px; color: #999; margin-bottom: 22px; }
.cqw-ma-pgn { display: flex; gap: 10px; justify-content: center; margin-top: 18px; }

/* --- C6 B3: order detail --- */
.cqw-ma-back { display: inline-block; font-size: 11.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #888; margin-bottom: 16px; }
.cqw-ma-back:hover { color: #1a1a1a; }
.cqw-ma-dethead { background: #fff; border: 1px solid #eee; padding: 22px 24px 0; }
.cqw-ma-dethead .cqw-ma-detr1 { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding-bottom: 16px; flex-wrap: wrap; }
.cqw-ma-dethead h2 { font-size: 20px; font-weight: 700; letter-spacing: 0.5px; }
.cqw-ma-dethead h2 span { color: #999; font-weight: 400; font-size: 14px; margin-left: 8px; }
.cqw-ma-stepper { display: flex; align-items: flex-start; padding: 22px 8px 26px; }
.cqw-ma-step { flex: 1; text-align: center; position: relative; }
.cqw-ma-step::before { content: ''; position: absolute; top: 5px; left: -50%; width: 100%; height: 2px; background: #eee; }
.cqw-ma-step:first-child::before { display: none; }
.cqw-ma-step.done::before { background: #1a1a1a; }
.cqw-ma-stepdot { width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid #ddd; margin: 0 auto 8px; position: relative; z-index: 1; }
.cqw-ma-step.done .cqw-ma-stepdot { background: #1a1a1a; border-color: #1a1a1a; }
.cqw-ma-step.now .cqw-ma-stepdot { background: #efb33c; border-color: #efb33c; box-shadow: 0 0 0 4px rgba(239, 179, 60, 0.25); }
.cqw-ma-steplbl { font-size: 11.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #bbb; }
.cqw-ma-step.done .cqw-ma-steplbl, .cqw-ma-step.now .cqw-ma-steplbl { color: #1a1a1a; }
.cqw-ma-stepsub { font-size: 11px; color: #999; margin-top: 2px; }
.cqw-ma-detmeta { border-top: 1px solid #eee; display: grid; grid-template-columns: repeat(3, 1fr); }
.cqw-ma-dm { padding: 14px 0; min-width: 0; }
.cqw-ma-dm + .cqw-ma-dm { border-left: 1px solid #eee; padding-left: 20px; }
.cqw-ma-dm-k { font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #aaa; margin-bottom: 3px; }
.cqw-ma-dm-v { font-size: 13px; overflow-wrap: anywhere; }
.cqw-ma-dm-v.is-mono { font-family: monospace; font-size: 12.5px; }
.cqw-ma-dm-v i { font-style: normal; color: #999; }
.cqw-ma-oubanner { background: #fff; border: 1px solid #eee; border-left: 3px solid #efb33c; padding: 14px 18px; margin-top: 20px; display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; }
.cqw-ma-oubanner-in { display: flex; gap: 12px; align-items: flex-start; }
.cqw-ma-oubanner-bag { font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; background: #efb33c; color: #1a1a1a; padding: 3px 8px; flex: none; margin-top: 2px; }
.cqw-ma-oubanner-b b { font-size: 13.5px; display: block; }
.cqw-ma-oubanner-b p { font-size: 12.5px; color: #666; margin-top: 2px; }
.cqw-ma-oubanner-mail { font-size: 11px; color: #999; border: 1px solid #eee; padding: 4px 8px; white-space: nowrap; }
.cqw-ma-detgrid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; margin-top: 20px; align-items: start; }
.cqw-ma-rail { position: sticky; top: 106px; }
.cqw-ma-detcol { min-width: 0; }
.cqw-ma-item { display: flex; align-items: center; gap: 14px; padding: 13px 0; border-bottom: 1px solid #f2f2f2; }
.cqw-ma-im { width: 48px; height: 60px; background: #f4f4f4; border: 1px solid #eee; flex: none; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; color: #aaa; overflow: hidden; }
.cqw-ma-im img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cqw-ma-nm { flex: 1; font-size: 13px; font-weight: 500; min-width: 0; }
.cqw-ma-nm span { display: block; font-size: 11.5px; color: #999; font-weight: 400; }
.cqw-ma-qt { width: 120px; text-align: right; font-size: 12.5px; color: #666; flex: none; }
.cqw-ma-pr { width: 110px; text-align: right; font-size: 13px; font-weight: 600; flex: none; }
.cqw-ma-itemsmore { text-align: center; padding: 10px 0; font-size: 12px; color: #999; letter-spacing: 1px; }
.cqw-ma-ladder { margin-top: 6px; }
.cqw-ma-lr { display: flex; justify-content: space-between; padding: 9px 0; font-size: 13px; color: #555; gap: 16px; }
.cqw-ma-lr--disc { color: #1a7f37; }
.cqw-ma-lr--est { color: #999; font-size: 12.5px; }
.cqw-ma-lr--est span:last-child { font-style: italic; }
.cqw-ma-lr--landed { border-top: 1px solid #1a1a1a; margin-top: 6px; padding-top: 12px; font-weight: 700; }
.cqw-ma-lr--landed .cqw-ma-lrk { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; align-self: center; }
.cqw-ma-lr--tot { border-top: 2px solid #1a1a1a; margin-top: 8px; padding-top: 14px; color: #1a1a1a; font-weight: 700; font-size: 16px; }
.cqw-ma-lr--tot .cqw-ma-lrk { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; align-self: center; }
.cqw-ma-ladder--dead .cqw-ma-lr { color: #999; }
.cqw-ma-ladder--dead .cqw-ma-lr--tot { border-top-color: #ccc; }
.cqw-ma-dap { font-size: 11.5px; color: #999; border-left: 3px solid #efb33c; padding: 6px 10px; margin-top: 12px; background: #fdfaf3; }
.cqw-ma-igrid { display: grid; grid-template-columns: 1fr 1fr; }
.cqw-ma-cell { padding: 16px 0; min-width: 0; }
.cqw-ma-cell:nth-child(odd) { padding-right: 24px; }
.cqw-ma-cell:nth-child(even) { padding-left: 24px; border-left: 1px solid #eee; }
.cqw-ma-cell .cqw-ma-dm-k { font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #aaa; margin-bottom: 6px; }
.cqw-ma-cell .cqw-ma-dm-v { font-size: 13px; line-height: 1.7; }
.cqw-ma-cell .cqw-ma-dm-v i { font-style: normal; color: #999; }
.cqw-ma-card--pay { border-left: 3px solid #efb33c; }
.cqw-ma-paytx { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.cqw-ma-paytx b { font-size: 14px; }
.cqw-ma-paytx p { font-size: 12.5px; color: #888; margin-top: 3px; }
.cqw-ma-help { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.cqw-ma-helptx { font-size: 12.5px; color: #666; }
.cqw-ma-tlog { list-style: none; margin: 0; padding: 0; }
.cqw-ma-tlog li { display: flex; gap: 14px; position: relative; padding-bottom: 22px; }
.cqw-ma-tlog li::before { content: ''; position: absolute; left: 5px; top: 16px; bottom: 0; width: 1px; background: #eee; }
.cqw-ma-tlog li:last-child { padding-bottom: 0; }
.cqw-ma-tlog li:last-child::before { display: none; }
.cqw-ma-tlog .cqw-ma-td { width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid #ccc; flex: none; margin-top: 4px; z-index: 1; }
.cqw-ma-tlog li.done .cqw-ma-td { background: #1a1a1a; border-color: #1a1a1a; }
.cqw-ma-tlog li.gold .cqw-ma-td { background: #efb33c; border-color: #efb33c; }
.cqw-ma-te { flex: 1; border-bottom: 1px dashed #eee; padding-bottom: 14px; min-width: 0; }
.cqw-ma-te b { font-size: 13px; display: block; }
.cqw-ma-te > span { font-size: 11.5px; color: #999; display: block; }
.cqw-ma-tlogext { display: block; font-size: 12px; color: #666; margin-top: 3px; overflow-wrap: anywhere; }
.cqw-ma-manualtag { display: inline-block; font-size: 9px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; background: #1a1a1a; color: #efb33c; padding: 2px 6px; vertical-align: 2px; margin-left: 6px; }

/* --- C6 B5: verify-email reskin + account-details hooks --- */
.cqw-ma-vf { max-width: 520px; }
.cqw-ma-vf--entry { border-top: 3px solid #efb33c; }
.cqw-ma-vf-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 18px; }
.cqw-ma-vf-ic { width: 36px; height: 36px; border: 1px solid #1a1a1a; display: flex; align-items: center; justify-content: center; flex: none; }
.cqw-ma-vf-head b { font-size: 14px; display: block; }
.cqw-ma-vf-head p { font-size: 12.5px; color: #888; margin-top: 3px; }
.cqw-ma-vf-msg { display: none; margin-bottom: 14px; padding: 10px 14px; font-size: 12.5px; border: 1px solid #d20000; color: #d20000; background: #fff5f5; }
.cqw-ma-vf-msg.is-visible { display: block; }
.cqw-ma-vf-code { width: 100%; padding: 14px 16px; font-size: 26px; font-weight: 700; letter-spacing: 12px; text-align: center; border: 1px solid #ddd; font-family: monospace; background: #fff; }
.cqw-ma-vf-tries { font-size: 11.5px; color: #999; margin-top: 4px; }
.cqw-ma-vf-btn { flex: 1; cursor: pointer; }
.cqw-ma-vf-foot { margin-top: 18px; border-top: 1px solid #eee; padding-top: 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.cqw-ma-vf-foot-q { font-size: 12px; color: #999; }
.cqw-ma-vf-resend { background: none; border: 0; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #1a1a1a; border-bottom: 1px solid #1a1a1a; padding: 0 0 2px; cursor: pointer; }
.cqw-ma-vf-timer { font-size: 12px; color: #999; }
.cqw-ma-vf--done { text-align: center; padding: 48px 32px; }
.cqw-ma-vf--done h3 { font-size: 17px; font-weight: 700; margin-bottom: 6px; }
.cqw-ma-vf--done p { font-size: 12.5px; color: #999; margin-bottom: 24px; }
.cqw-ma-vf-donebox { width: 64px; height: 64px; margin: 0 auto 18px; border: 1px solid #efb33c; display: flex; align-items: center; justify-content: center; color: #efb33c; font-size: 24px; }
.cqw-ma-ad-sec { margin-bottom: 14px; }
.cqw-ma-ad-sec label { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #888; margin-bottom: 5px; }
.cqw-ma-ad-sec input { width: 100%; border: 1px solid #ddd; background: #fff; padding: 10px 12px; font-size: 13px; font-family: inherit; }
.cqw-ma-ad-sec input:disabled { background: #fafafa; color: #888; }
.cqw-ma-ad-hint { font-size: 11.5px; color: #999; margin-top: 4px; }
.cqw-ma-ad-sec--company .cqw-ma-ad-hint { border-left: 3px solid #eee; padding: 4px 10px; margin-top: 8px; }

/* WC core edit-account form, house-skinned (CSS-only, no template change) */
.cqw-ma .woocommerce-EditAccountForm fieldset { border: 1px solid #eee; padding: 16px 18px 6px; margin: 0 0 16px; }
.cqw-ma .woocommerce-EditAccountForm legend { font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #888; padding: 0 6px; }
.cqw-ma .woocommerce-EditAccountForm p { margin: 0 0 14px; display: block; }
.cqw-ma .woocommerce-EditAccountForm label { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #888; margin-bottom: 5px; }
.cqw-ma .woocommerce-EditAccountForm input[type="text"], .cqw-ma .woocommerce-EditAccountForm input[type="email"], .cqw-ma .woocommerce-EditAccountForm input[type="password"], .cqw-ma .woocommerce-EditAccountForm input[type="tel"] { width: 100%; border: 1px solid #ddd; background: #fff; padding: 10px 12px; font-size: 13px; font-family: inherit; }
.cqw-ma .woocommerce-EditAccountForm input:focus { outline: none; border-color: #1a1a1a; }
.cqw-ma .woocommerce-EditAccountForm .form-row-first, .cqw-ma .woocommerce-EditAccountForm .form-row-last { width: 48%; }
.cqw-ma .woocommerce-EditAccountForm .form-row-first { float: left; }
.cqw-ma .woocommerce-EditAccountForm .form-row-last { float: right; }
.cqw-ma .woocommerce-EditAccountForm::after { content: ''; display: block; clear: both; }
.cqw-ma .woocommerce-EditAccountForm button, .cqw-ma .woocommerce-EditAccountForm .button { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; padding: 11px 22px; border: 1px solid #1a1a1a; background: #1a1a1a; color: #fff; cursor: pointer; }

/* --- C6 mobile additions (detail page vertical stepper etc.) --- */
@media (max-width: 980px) {
	.cqw-ma-detgrid { grid-template-columns: 1fr; }
	.cqw-ma-rail { position: static; }
	.cqw-ma-stepper { flex-direction: column; padding: 16px 4px; }
	.cqw-ma-step { display: flex; text-align: left; gap: 12px; flex: none; padding-bottom: 18px; position: relative; }
	.cqw-ma-step::before { top: 14px; bottom: -4px; left: 5px; right: auto; width: 2px; height: auto; }
	.cqw-ma-step.done::before { background: #1a1a1a; }
	.cqw-ma-step .cqw-ma-stepdot { margin: 0; }
	.cqw-ma-detmeta { grid-template-columns: 1fr; }
	.cqw-ma-dm + .cqw-ma-dm { border-left: 0; padding-left: 0; border-top: 1px solid #eee; }
	.cqw-ma-item { flex-wrap: wrap; }
	.cqw-ma-qt, .cqw-ma-pr { width: auto; flex: 1; }
	.cqw-ma-igrid { grid-template-columns: 1fr; }
	.cqw-ma-cell:nth-child(even) { padding-left: 0; border-left: 0; }
	.cqw-ma-card, .cqw-ma-ocard { margin-top: 12px; }
}

/* B6 fix: theme input[type=text] (0,1,1) outranked the class selector —
   bump specificity for the code field. */
.cqw-ma input.cqw-ma-vf-code { font-size: 26px; font-weight: 700; letter-spacing: 12px; text-align: center; font-family: monospace; }

/* ============================================================
   === NOTICES GLOBAL + TITLES (C6-B7) ===  (2026-10-07, user
   directive: unify EVERY WC notice into the house style — group
   15 only covered .woocommerce-notices-wrapper / .cqw-rail-notices
   / .woocommerce-NoticeGroup containers; bare prints from
   wc_print_notices() (my-account shortcode, form-login, lost-
   password…) fell back to WC base lavender. Bare (0,1,0) rules
   here inherit the same values — group 15's (0,2,0) rules still
   win inside wrappers, so both surfaces stay identical.
   Title bumps: page/greeting/detail h1-level titles up-sized.
   ============================================================ */

/* ---------- bare notices: house genes everywhere ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: #fff;
	border: 1px solid #eee;
	border-left: 3px solid #efb33c;
	border-radius: 0;
	color: #444;
	margin: 0 0 12px;
	padding: 12px 16px;
	font-size: 12.5px;
	line-height: 1.55;
	list-style: none;
	position: relative;
	overflow: hidden;
	animation: cqw-notice-in 0.25s ease;
}
.woocommerce-info {
	border-left-color: #1a1a1a;
}
.woocommerce-error {
	border-left-color: #d20000;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	content: none;
}
.woocommerce-error ul {
	margin: 6px 0 0;
	padding: 0;
	list-style: none;
}
.woocommerce-error li {
	margin: 0;
	padding: 1px 0 1px 14px;
	border: 0;
	background: none;
	color: #d20000;
	position: relative;
}
.woocommerce-error li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 7px;
	height: 1.5px;
	background: #d20000;
}
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
	display: inline-block;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #1a1a1a;
	background: #fff;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	padding: 4px 12px;
	margin-left: 4px;
	text-decoration: none;
	line-height: 1.4;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.woocommerce-message a:hover,
.woocommerce-info a:hover,
.woocommerce-error a:hover {
	background: #1a1a1a;
	color: #fff;
	transform: translateY(-1px);
}
/* dismissal collapse — bare variant (group 15 has the wrapper-scoped one) */
.cqw-notice--out.woocommerce-message,
.cqw-notice--out.woocommerce-info,
.cqw-notice--out.woocommerce-error {
	opacity: 0;
	max-height: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
	border-top-width: 0;
	border-bottom-width: 0;
	overflow: hidden;
	transition: opacity 0.35s ease, max-height 0.35s ease, margin 0.35s ease, padding 0.35s ease, border-width 0.35s ease;
}

/* ---------- account page titles: bigger + bolder (user C6-B7) ---------- */
.cqw-ma-pgtitle { font-size: 28px; letter-spacing: -0.2px; }
.cqw-ma-hello h2 { font-size: 24px; }
.cqw-ma-dethead h2 { font-size: 24px; }

@media (max-width: 980px) {
	.cqw-ma-pgtitle { font-size: 24px; }
	.cqw-ma-hello h2 { font-size: 21px; }
	.cqw-ma-dethead h2 { font-size: 21px; }
}

/* ---------- C6-B8: visited-state colour grab ----------
   The theme paints every visited <a> red (a:visited (0,1,1) beats our
   single-class rules). Restating each C6 link family at :visited —
   R12h precedent. BEM variants that already set colour at (0,2,0)
   are immune; the families below were not. */
.cqw-ma-btn:visited { color: #1a1a1a; }
.cqw-ma-btn--solid:visited { color: #fff; }
.cqw-ma-btn--gold:visited { color: #1a1a1a; }
.cqw-ma-navit:visited { color: #444; }
.cqw-ma-navit.on:visited { color: #fff; }
.cqw-ma-mchip:visited { color: #555; }
.cqw-ma-mchip.on:visited { color: #fff; }
.cqw-ma-back:visited { color: #888; }
.cqw-ma-ocardlink:visited { color: inherit; }
.cqw-ma-qk:visited { color: inherit; }
.cqw-ma-dm-v a:visited { color: inherit; }
.cqw-ma-cardh a:visited { color: #1a1a1a; }

/* ---------- C6-B9 ---------- */
/* quick-tile icons: Phosphor (site convention) inside the house box */
.cqw-ma-qkic i { font-size: 15px; line-height: 1; }
/* empty state without the icon box: airier */
.cqw-ma-empty { padding: 48px 24px; }
/* WC's own verify prompt (orders panel) rides the house notice card, but its
   <a class="button wc-forward"> keeps WC's base button paint (0,2,1) —
   re-state the ghost-button genes at matching-or-higher weight. */
.woocommerce-info a.button.wc-forward,
.woocommerce-message a.button.wc-forward,
.woocommerce-error a.button.wc-forward {
	display: inline-block;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #1a1a1a;
	background: #fff;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	padding: 4px 12px;
	margin-left: 4px;
	text-decoration: none;
	line-height: 1.4;
	box-shadow: none;
	text-shadow: none;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.woocommerce-info a.button.wc-forward:hover,
.woocommerce-message a.button.wc-forward:hover,
.woocommerce-error a.button.wc-forward:hover {
	background: #1a1a1a;
	color: #fff;
	transform: translateY(-1px);
}
/* send-first verify card */
.cqw-ma-vf--start .cqw-ma-acts { margin-top: 6px; }

/* ---------- C6-B11: edit-account two-card layout ---------- */
.cqw-ma .cqw-ma-adform .cqw-ma-card + .cqw-ma-card { margin-top: 20px; }
.cqw-ma-adform .cqw-ma-frow { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cqw-ma-adform .cqw-ma-ad-pw h3 { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 14px; }
.cqw-ma-adform .cqw-ma-ad-pw .cqw-ma-acts { margin-top: 6px; }
.cqw-ma-adform .cqw-ma-cardh { margin-bottom: 16px; }
/* first/last rows become grid tracks (kill the B5 float fallback inside the frow) */
.cqw-ma-adform .cqw-ma-frow .form-row-first,
.cqw-ma-adform .cqw-ma-frow .form-row-last { float: none; width: 100%; }
@media (max-width: 980px) {
	.cqw-ma-adform .cqw-ma-frow { grid-template-columns: 1fr; }
}

/* ---------- C6-B12: WC password visibility toggle ----------
   WooCommerce's frontend JS wraps every .woocommerce form password field
   (.password-input span + .show-password-input button) but ships no
   storefront styling for the button — the theme's generic button paint
   renders it as a solid black block (edit-account + login forms alike).
   House it globally: absolute ghost square with an inline SVG eye
   (open/struck states), zero font dependencies. */
.password-input { position: relative; display: block; }
.password-input input[type="password"],
.password-input input[type="text"] { padding-right: 44px; }
button.show-password-input {
	position: absolute;
	top: 50%;
	right: 6px;
	transform: translateY(-50%);
	width: 30px;
	height: 30px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	text-shadow: none;
	color: transparent;
	cursor: pointer;
	transition: background-size 0.15s ease;
}
button.show-password-input:hover { background-size: 18px 18px; }
button.show-password-input.display-password {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1a1a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E");
}

/* C6-B12b: the B5 form-button rule (0,2,1) paints the toggle black and
   resets its padding — re-scope the eye at matching weight (later wins). */
.cqw-ma .woocommerce-EditAccountForm .password-input { position: relative; display: block; }
.cqw-ma .woocommerce-EditAccountForm .password-input input[type="password"],
.cqw-ma .woocommerce-EditAccountForm .password-input input[type="text"] { padding-right: 44px; }
.cqw-ma .woocommerce-EditAccountForm button.show-password-input {
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
	border: 0;
	box-shadow: none;
	text-shadow: none;
	color: transparent;
	padding: 0;
}
.cqw-ma .woocommerce-EditAccountForm button.show-password-input.display-password {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1a1a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E");
}

/* C6-B12c: an unidentified higher-cascade rule (shorthand padding on the
   form inputs) keeps winning specificity inspection; scoped single-declaration
   important on the eye-padding only. */
.cqw-ma .woocommerce-EditAccountForm .password-input input[type="password"],
.cqw-ma .woocommerce-EditAccountForm .password-input input[type="text"] { padding-right: 44px !important; }

/* ---------- C6-B13: avatar + company request (Account Details) ---------- */
.cqw-ma .is-hidden { display: none !important; }
.cqw-ma-avatar-row { display: flex; gap: 14px; align-items: flex-start; margin: 4px 0 14px; }
.cqw-ma-avatar-cur { width: 64px; height: 64px; flex: none; background: #fafafa; border: 1px solid #eee; display: flex; align-items: center; justify-content: center; color: #bbb; font-size: 22px; overflow: hidden; }
.cqw-ma-avatar-cur img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cqw-ma-ad-k2 { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #888; }
.cqw-ma-avatar-acts { margin-top: 8px; }
.cqw-ma-avatar-acts .cqw-ma-btn { padding: 7px 14px; }
.cqw-ma-company-pending { border-left: 3px solid #efb33c; padding: 4px 10px; margin-top: 8px; color: #666; }
.cqw-ma-company-form { margin-top: 10px; border-top: 1px dashed #eee; padding-top: 12px; }
.cqw-ma-company-form textarea { width: 100%; border: 1px solid #ddd; background: #fff; padding: 10px 12px; font-size: 13px; font-family: inherit; }
.cqw-ma-userava img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ============================================================
   === D-GROUP: legal text pages (D4-D7, 2026-10-07) ===
   Pure-text terms pages (privacy-policy style): narrow column,
   heading hierarchy, paragraphs, zero decoration. Copy lives in
   the slug-matched page templates (page-terms-of-sale etc.) as
   literal theme-domain gettext strings.
   ============================================================ */
.cqw-legal { max-width: 800px; margin: 0 auto; padding: 52px 20px 104px; }
.cqw-legal-kicker { display: flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #999; margin-bottom: 12px; }
.cqw-legal-kicker::before { content: ''; width: 8px; height: 8px; background: #efb33c; flex: none; }
.cqw-legal-effective { font-size: 12px; color: #888; background: #fafafa; border: 1px solid #eee; border-left: 3px solid #efb33c; padding: 10px 16px; margin: 0 0 4px; }
.cqw-legal h2 { font-size: 18px; font-weight: 700; letter-spacing: .2px; line-height: 1.35; margin: 36px 0 14px; padding-top: 26px; border-top: 1px solid #eee; }
.cqw-legal h2:first-of-type { border-top: 0; padding-top: 24px; margin-top: 28px; }
.cqw-legal h3 { font-size: 14px; font-weight: 700; margin: 24px 0 10px; }
.cqw-legal p { font-size: 14px; color: #555; line-height: 1.75; margin: 0 0 13px; }
.cqw-legal ul.cqw-legal-fields { list-style: none; margin: 0; }
.cqw-legal ul.cqw-legal-fields li { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 10px 0; border-bottom: 1px solid #f4f4f4; }
.cqw-legal ul.cqw-legal-fields li:first-child { border-top: 1px solid #f4f4f4; }
.cqw-legal ul.cqw-legal-fields li .k { font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #999; flex: none; }
.cqw-legal ul.cqw-legal-fields li .v { font-size: 13.5px; color: #1a1a1a; text-align: right; }
@media (max-width: 640px) {
	.cqw-legal { padding: 36px 16px 72px; }
	.cqw-legal h2 { font-size: 16.5px; margin: 30px 0 12px; }
	.cqw-legal ul.cqw-legal-fields li { flex-direction: column; gap: 2px; }
	.cqw-legal ul.cqw-legal-fields li .v { text-align: left; }
}

/* ---------- D1+D2 merged About page (2026-10-07 user ruling: one page) ---------- */
.cqw-about { font-size: 14px; }
.cqw-about .cqw-ab-hero { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); gap: 56px; padding: 44px 28px 56px; align-items: start; }
.cqw-about .cqw-ab-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #999; margin-bottom: 18px; display: flex; align-items: center; gap: 10px; }
.cqw-about .cqw-ab-eyebrow::before { content: ''; width: 8px; height: 8px; background: #efb33c; flex: none; }
.cqw-about .cqw-ab-h1 { font-size: 40px; font-weight: 700; letter-spacing: -.5px; line-height: 1.12; color: #1a1a1a; }
.cqw-about .cqw-ab-h2 { font-size: 30px; font-weight: 700; letter-spacing: -.3px; line-height: 1.18; color: #1a1a1a; }
.cqw-about .cqw-ab-lede { font-size: 15px; color: #666; line-height: 1.65; margin-top: 20px; max-width: 56ch; }
.cqw-about .cqw-ab-label { display: flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #999; margin-bottom: 22px; }
.cqw-about .cqw-ab-label::before { content: ''; width: 8px; height: 8px; background: #efb33c; flex: none; }
.cqw-about .cqw-ab-txt { font-size: 14px; color: #555; line-height: 1.75; margin: 0 0 14px; }
.cqw-about .cqw-ab-sec { border-top: 1px solid #eee; padding: 44px 28px 52px; }

/* palette card */
.cqw-about .cqw-ab-palcard { border: 1px solid #eee; background: #fff; padding: 22px 24px; }
.cqw-about .cqw-ab-palcard .cap { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 14px; border-bottom: 1px solid #eee; margin-bottom: 16px; gap: 12px; }
.cqw-about .cqw-ab-palcard .cap b { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.cqw-about .cqw-ab-palcard .cap span { font-size: 11px; color: #999; letter-spacing: 1px; white-space: nowrap; }
.cqw-about .cqw-ab-palcard .row { display: flex; align-items: center; gap: 14px; padding: 9px 0; border-bottom: 1px solid #f4f4f4; }
.cqw-about .cqw-ab-palcard .row:last-child { border-bottom: 0; }
.cqw-about .cqw-ab-palcard .sw { width: 30px; height: 30px; flex: none; border: 1px solid rgba(0,0,0,.08); }
.cqw-about .cqw-ab-palcard .nm { font-size: 13px; font-weight: 700; }
.cqw-about .cqw-ab-palcard .ds { font-size: 11.5px; color: #999; margin-left: auto; text-align: right; }

/* who we are */
.cqw-about .cqw-ab-who { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 48px; align-items: start; }
.cqw-about .cqw-ab-who .side { position: sticky; top: 96px; }
.cqw-about .cqw-ab-pull { border-left: 3px solid #efb33c; background: #fff; padding: 18px 24px; font-size: 17px; font-weight: 700; line-height: 1.5; letter-spacing: -.2px; margin-top: 26px; max-width: 60ch; color: #1a1a1a; }

/* craft cards */
.cqw-about .cqw-ab-craft { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 26px; }
.cqw-about .cqw-ab-craft .card { border: 1px solid #eee; background: #fff; padding: 22px; transition: transform .2s ease, box-shadow .2s ease; }
.cqw-about .cqw-ab-craft .card:hover { transform: translateY(-2px); box-shadow: 0 1px 0 #1a1a1a; }
.cqw-about .cqw-ab-craft .ic { width: 34px; height: 34px; border: 1px solid #1a1a1a; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.cqw-about .cqw-ab-craft .ic svg { width: 16px; height: 16px; stroke: #1a1a1a; fill: none; stroke-width: 1.5; }
.cqw-about .cqw-ab-craft b { display: block; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 8px; }
.cqw-about .cqw-ab-craft p { font-size: 12.5px; color: #777; line-height: 1.65; }

/* FW26 band (contained dark block — no full-bleed breakout) */
.cqw-about .cqw-ab-fw { background: #1a1a1a; color: #fff; margin: 0 28px; padding: 52px 40px 56px; }
.cqw-about .cqw-ab-fw .cqw-ab-label { color: #8a8a8a; }
.cqw-about .cqw-ab-fw .cqw-ab-h2 { color: #fff; max-width: 22ch; }
.cqw-about .cqw-ab-fw .cqw-ab-lede { color: #b9b9b9; max-width: 58ch; margin-top: 16px; }
.cqw-about .cqw-ab-motifs { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.cqw-about .cqw-ab-motifs .motif { font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; padding: 9px 16px; border: 1px solid #3d3d3d; color: #d9d9d9; transition: border-color .2s ease, color .2s ease; }
.cqw-about .cqw-ab-motifs .motif:hover { border-color: #efb33c; color: #efb33c; }
.cqw-about .cqw-ab-fwstrip { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top: 30px; }
.cqw-about .cqw-ab-fwstrip .sw { border: 1px solid #3d3d3d; padding: 14px; }
.cqw-about .cqw-ab-fwstrip .c { height: 74px; margin-bottom: 12px; }
.cqw-about .cqw-ab-fwstrip .nm { font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #fff; }
.cqw-about .cqw-ab-fwstrip .ds { font-size: 11px; color: #8a8a8a; margin-top: 3px; }

/* team — photos in colour (user ruling 2026-10-07: no grayscale) */
.cqw-about .cqw-ab-team { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 26px; }
.cqw-about .cqw-ab-team .member { border: 1px solid #eee; background: #fff; position: relative; transition: transform .2s ease; overflow: hidden; }
.cqw-about .cqw-ab-team .member::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 0; background: #1a1a1a; transition: height .2s ease; }
.cqw-about .cqw-ab-team .member:hover { transform: translateY(-2px); }
.cqw-about .cqw-ab-team .member:hover::after { height: 3px; }
.cqw-about .cqw-ab-team .ph { aspect-ratio: 1/1; object-fit: cover; width: 100%; display: block; }
.cqw-about .cqw-ab-team .ph-fallback { background: #f4f4f4; display: flex; align-items: center; justify-content: center; }
.cqw-about .cqw-ab-team .ph-fallback span { font-size: 34px; font-weight: 700; color: #bbb; letter-spacing: 2px; }
.cqw-about .cqw-ab-team .meta { padding: 18px 20px 20px; }
.cqw-about .cqw-ab-team .nm { font-size: 15px; font-weight: 700; letter-spacing: .4px; color: #1a1a1a; }
.cqw-about .cqw-ab-team .rl { font-size: 10.5px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: #1a1a1a; background: #efb33c; display: inline-block; padding: 3px 8px; margin-top: 8px; }
.cqw-about .cqw-ab-team .bs { font-size: 11.5px; color: #999; margin-top: 10px; }

/* contact section */
.cqw-about .cqw-ab-contact { scroll-margin-top: 96px; }
.cqw-about .cqw-ab-chan { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 26px; }
.cqw-about .cqw-ab-chan .chan { border: 1px solid #eee; background: #fff; padding: 24px; transition: transform .2s ease, box-shadow .2s ease; display: flex; flex-direction: column; }
.cqw-about .cqw-ab-chan .chan:hover { transform: translateY(-2px); box-shadow: 0 1px 0 #1a1a1a; }
.cqw-about .cqw-ab-chan .ic { width: 34px; height: 34px; border: 1px solid #1a1a1a; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.cqw-about .cqw-ab-chan .ic svg { width: 16px; height: 16px; stroke: #1a1a1a; fill: none; stroke-width: 1.5; }
.cqw-about .cqw-ab-chan .cat { font-size: 10.5px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: #999; }
.cqw-about .cqw-ab-chan b.v { display: block; font-size: 16px; font-weight: 700; letter-spacing: -.1px; margin-top: 8px; word-break: break-all; color: #1a1a1a; }
.cqw-about .cqw-ab-chan .tel2 { font-size: 12.5px; }
.cqw-about .cqw-ab-chan p { font-size: 12.5px; color: #777; line-height: 1.65; margin-top: 10px; }
.cqw-about .cqw-ab-chan .foot { margin-top: auto; padding-top: 14px; border-top: 1px solid #f4f4f4; font-size: 11px; color: #999; }

/* join + company split */
.cqw-about .cqw-ab-split { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); gap: 16px; margin-top: 16px; }
.cqw-about .cqw-ab-split .join { border: 1px solid #eee; background: #fff; padding: 26px 28px; }
.cqw-about .cqw-ab-split .join h3 { font-size: 20px; font-weight: 700; letter-spacing: -.2px; color: #1a1a1a; }
.cqw-about .cqw-ab-split .join > p { font-size: 13.5px; color: #666; line-height: 1.7; margin-top: 10px; max-width: 56ch; }
.cqw-about .cqw-ab-split .steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin-top: 22px; border: 1px solid #eee; }
.cqw-about .cqw-ab-split .step { padding: 18px; border-right: 1px solid #eee; }
.cqw-about .cqw-ab-split .step:last-child { border-right: 0; }
.cqw-about .cqw-ab-split .step .no { font-size: 11px; font-weight: 700; color: #fff; background: #1a1a1a; display: inline-flex; width: 24px; height: 24px; align-items: center; justify-content: center; }
.cqw-about .cqw-ab-split .step b { display: block; font-size: 12.5px; font-weight: 700; margin-top: 10px; color: #1a1a1a; }
.cqw-about .cqw-ab-split .step p { font-size: 11.5px; color: #888; margin-top: 4px; line-height: 1.55; }
.cqw-about .cqw-ab-split .acts { margin-top: 22px; display: flex; gap: 10px; flex-wrap: wrap; }
.cqw-about .cqw-ab-split .co { border: 1px solid #eee; background: #fff; padding: 26px 28px; }
.cqw-about .cqw-ab-split .co .cap { font-size: 11px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: #999; padding-bottom: 12px; border-bottom: 1px solid #eee; margin-bottom: 6px; }
.cqw-about .cqw-ab-split .co .row { display: flex; justify-content: space-between; gap: 18px; padding: 11px 0; border-bottom: 1px solid #f4f4f4; }
.cqw-about .cqw-ab-split .co .row:last-child { border-bottom: 0; }
.cqw-about .cqw-ab-split .co .k { font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #999; flex: none; padding-top: 1px; }
.cqw-about .cqw-ab-split .co .v { font-size: 12.5px; color: #1a1a1a; text-align: right; }

/* quick answers */
.cqw-about .cqw-ab-qa { margin-top: 16px; border-top: 1px solid #eee; }
.cqw-about .cqw-ab-qa .qarow { display: grid; grid-template-columns: minmax(0,4fr) minmax(0,6fr) auto; gap: 22px; align-items: center; padding: 18px 0; border-bottom: 1px solid #eee; }
.cqw-about .cqw-ab-qa .q { font-size: 14px; font-weight: 700; color: #1a1a1a; }
.cqw-about .cqw-ab-qa .a { font-size: 12.5px; color: #777; line-height: 1.6; }
.cqw-about .cqw-ab-qa .go { font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #1a1a1a; border-bottom: 1px solid #1a1a1a; padding-bottom: 2px; white-space: nowrap; transition: color .2s ease, background .2s ease, padding .2s ease; }
.cqw-about .cqw-ab-qa .qarow:hover .go { color: #fff; background: #1a1a1a; padding: 6px 12px; }

/* CTA band (contained marigold block) */
.cqw-about .cqw-ab-cta { background: #efb33c; margin: 0 28px 64px; padding: 48px 40px 52px; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.cqw-about .cqw-ab-cta h2 { font-size: 32px; font-weight: 700; letter-spacing: -.4px; line-height: 1.1; color: #1a1a1a; }
.cqw-about .cqw-ab-cta .sub { font-size: 14px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; margin-top: 10px; color: #1a1a1a; }

/* CTA genes */
.cqw-about .cqw-ab-btn { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; padding: 13px 24px; border: 1px solid #1a1a1a; background: #fff; color: #1a1a1a; transition: background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease; text-align: center; }
.cqw-about .cqw-ab-btn.solid { background: #1a1a1a; color: #fff; }
.cqw-about .cqw-ab-btn.solid:hover { background: #fff; color: #1a1a1a; transform: translateY(-1px); }
.cqw-about .cqw-ab-btn.line:hover { background: #1a1a1a; color: #fff; transform: translateY(-1px); }
.cqw-about .cqw-ab-btn.dark { background: #1a1a1a; color: #fff; border-color: #1a1a1a; padding: 15px 28px; }
.cqw-about .cqw-ab-btn.dark:hover { background: #fff; color: #1a1a1a; transform: translateY(-1px); }

/* responsive — 991 single-column track, 375 compact */
@media (max-width: 991px) {
	.cqw-about .cqw-ab-hero { grid-template-columns: 1fr; gap: 28px; padding-top: 36px; }
	.cqw-about .cqw-ab-h1 { font-size: 32px; }
	.cqw-about .cqw-ab-h2 { font-size: 25px; }
	.cqw-about .cqw-ab-who { grid-template-columns: 1fr; gap: 8px; }
	.cqw-about .cqw-ab-who .side { position: static; }
	.cqw-about .cqw-ab-craft, .cqw-about .cqw-ab-team, .cqw-about .cqw-ab-chan, .cqw-about .cqw-ab-fwstrip { grid-template-columns: repeat(2,1fr); }
	.cqw-about .cqw-ab-split { grid-template-columns: 1fr; }
	.cqw-about .cqw-ab-qa .qarow { grid-template-columns: 1fr auto; row-gap: 6px; }
	.cqw-about .cqw-ab-qa .a { grid-column: 1 / -1; }
	.cqw-about .cqw-ab-fw, .cqw-about .cqw-ab-cta { padding-left: 28px; padding-right: 28px; }
}
@media (max-width: 640px) {
	.cqw-about .cqw-ab-hero, .cqw-about .cqw-ab-sec { padding-left: 16px; padding-right: 16px; }
	.cqw-about .cqw-ab-h1 { font-size: 28px; }
	.cqw-about .cqw-ab-h2 { font-size: 22px; }
	.cqw-about .cqw-ab-craft, .cqw-about .cqw-ab-team, .cqw-about .cqw-ab-chan, .cqw-about .cqw-ab-fwstrip, .cqw-about .cqw-ab-split .steps { grid-template-columns: 1fr; }
	.cqw-about .cqw-ab-split .step { border-right: 0; border-bottom: 1px solid #eee; }
	.cqw-about .cqw-ab-split .step:last-child { border-bottom: 0; }
	.cqw-about .cqw-ab-fw, .cqw-about .cqw-ab-cta { margin-left: 16px; margin-right: 16px; padding: 36px 20px; }
	.cqw-about .cqw-ab-cta { flex-direction: column; align-items: flex-start; margin-bottom: 40px; }
	.cqw-about .cqw-ab-qa .qarow { grid-template-columns: 1fr; }
	.cqw-about .cqw-ab-qa .go { justify-self: start; }
}

/* ---------- D-fix (2026-10-07 user report): header nav current items ---------- */
/* Theme paints .current-menu-item > a in --primary-color (red); on the merged
   About page BOTH About Us and the Contact Us anchor carried current-* and
   showed red. House style: current item = bold near-black; the anchor item
   never takes current classes (functions.php strips customs). Ties (0,2,1)
   resolve to replica.css — it loads after style.css. */
.main-navigation .current_page_item > a,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_ancestor > a,
.main-navigation .current-menu-ancestor > a {
	color: #1a1a1a;
	font-weight: 700;
}

/* ---------- contact-support modal (G-R9, 2026-10-08) ---------- */
/* Rides the generic .cqw-overlay/.cqw-modal-box base (carmela-widgets.css);
   the box adopts the house square corners + marigold top rule. Channel
   sources live in theme-library/function-files/carmela-contact-support.php. */
.cqw-contact-box {
	max-width: 420px;
	border-radius: 0;
	border-top: 3px solid #efb33c;
	padding: 26px 22px 18px;
}
.cqw-contact-head .ph-headset { font-size: 30px; color: #efb33c; }
.cqw-contact-head h3 {
	margin: 10px 0 3px;
	font-size: 17px; font-weight: 700; text-transform: uppercase;
	letter-spacing: 1px; color: #1a1a1a;
}
.cqw-contact-head p { margin: 0 0 16px; font-size: 12px; color: #999; letter-spacing: .5px; }
.cqw-contact-list { list-style: none; margin: 0; padding: 0; }
.cqw-contact-list a {
	display: flex; align-items: center; gap: 14px;
	padding: 13px 2px; border-top: 1px solid #eee; text-decoration: none;
}
.cqw-contact-list li:last-child a { border-bottom: 1px solid #eee; }
.cqw-contact-ic {
	flex: 0 0 40px; width: 40px; height: 40px;
	display: flex; align-items: center; justify-content: center;
	background: #1a1a1a; color: #fff; font-size: 20px;
}
.cqw-contact-body { min-width: 0; }
.cqw-contact-body b { display: block; font-size: 14px; font-weight: 600; color: #1a1a1a; letter-spacing: .3px; }
.cqw-contact-body span { display: block; font-size: 12px; color: #888; margin-top: 1px; }
.cqw-contact-list a > .ph-arrow-right { margin-left: auto; color: #999; font-size: 16px; transition: color .2s ease, transform .2s ease; }
.cqw-contact-list a:hover > .ph-arrow-right,
.cqw-contact-list a:focus-visible > .ph-arrow-right { color: #1a1a1a; transform: translateX(3px); }
/* The two contact entries are <button> now (was a dead contact-us page
   link) — neutralize only the UA bits the tile classes don't set. */
button.cqw-ma-qk { font-family: inherit; cursor: pointer; appearance: none; text-align: left; }
button.cqw-ma-btn { font-family: inherit; cursor: pointer; appearance: none; }
