/*
 * RahkarTheme — Cart page styles.
 *
 * Class naming
 * ------------
 *
 *   .rh-cartpage is intentionally distinct from header.css's `.rh-cart`
 *   (which styles the small cart icon). With both classes named `.rh-cart`
 *   the header's rules (height: 40px; display: inline-flex) cascaded into
 *   our page container and collapsed the entire layout. Different page,
 *   different name — no collision possible.
 *
 *   `.rh-cart-line`, `.rh-cart-empty` etc. keep the `rh-cart-` prefix
 *   because those aren't styled by header.css.
 *
 * Architecture
 * ------------
 *
 *   .rh-cartpage      — content container, max-width 1200px, centered.
 *                       Sits directly inside the FSE post-content block;
 *                       no extra wrappers, no negative-margin breakout.
 *                       The `alignwide` class on the element opts into
 *                       wideSize when the parent is constrained-layout.
 *
 * Layout
 * ------
 *
 *   Mobile (< 968px)   : single column. Items → summary → cross-sells.
 *   Desktop (≥ 968px)  : items column (1fr) on right (RTL), summary on
 *                        left, sticky to viewport top.
 *
 * Cart line shape (CSS grid):
 *   Mobile: 2-row stacked — image+info on top, controls+total below.
 *   Desktop: single row — image | info | controls | total.
 *
 * Speed-relevant decisions
 * ------------------------
 *   - `contain: layout paint` on each cart line so changing a single
 *     line's qty/total doesn't repaint the whole list.
 *   - Sticky summary uses position: sticky — zero JS, GPU-cheap.
 *   - Progress fill animates `width` only, on a layered (`overflow:hidden`)
 *     track so paint stays inside the bar.
 *   - All hover transitions touch color/background, not box-shadow filters.
 */

/* =====================================================================
 *  Hide the FSE post-title + featured-image on the cart page
 * ---------------------------------------------------------------------
 *  page.html injects <wp:post-title /> + <wp:post-featured-image />
 *  above <wp:post-content />. On /cart that prints the literal page
 *  name (e.g. "Cart" in English from WC's installer) over our own
 *  "سبد خرید" h1 — redundant + bilingual.
 *  body.woocommerce-cart is WC's own body class, so the hide is
 *  targeted (other pages unaffected).
 * ===================================================================== */
body.woocommerce-cart .wp-block-post-title,
body.woocommerce-cart .wp-block-post-featured-image {
	display: none;
}

/* =====================================================================
 *  Override WooCommerce block-theme 1000px cap on main .woocommerce
 * ---------------------------------------------------------------------
 *  woocommerce-blocktheme.css ships:
 *    .woocommerce-cart main .woocommerce { max-width: 1000px; }
 *  which clamps the wrapper around .rh-cartpage and prevents our
 *  1200px container from ever reaching its wideSize. Unset it so
 *  layout is governed by .rh-cartpage alone.
 * ===================================================================== */
body.woocommerce-cart main .woocommerce {
	max-width: none;
}

/* =====================================================================
 *  Container — capped at wideSize, centered
 * ===================================================================== */
.rh-cartpage {
	width: 100%;
	max-width: 1200px;
	margin: 24px auto;
	padding: 0 0;
	box-sizing: border-box;
}


/* =====================================================================
 *  Free-shipping progress bar
 * ===================================================================== */
.rh-ship-bar {
	margin-bottom: 20px;
	padding: 14px 16px;
	background: var(--wp--preset--color--surface, #f7f7f8);
	border: 1px solid var(--wp--preset--color--border, #e2e4e9);
	border-radius: 10px;
	contain: layout paint;
}
.rh-ship-bar__head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}
.rh-ship-bar__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #0a66c2);
	flex: 0 0 auto;
	border: 1px solid var(--wp--preset--color--border, #e2e4e9);
}
.rh-ship-bar__label {
	margin: 0;
	font-size: 0.875rem;
	color: var(--wp--preset--color--text, #1a1d23);
	line-height: 1.5;
}
.rh-ship-bar__label strong {
	color: var(--wp--preset--color--primary, #0a66c2);
	font-weight: 700;
}
.rh-ship-bar__track {
	height: 6px;
	background: var(--wp--preset--color--muted, #eceef1);
	border-radius: 9999px;
	overflow: hidden;
}
.rh-ship-bar__fill {
	height: 100%;
	width: 0;
	background: var(--wp--preset--color--primary, #0a66c2);
	border-radius: inherit;
	transition: width 400ms cubic-bezier(0.22, 0.61, 0.36, 1),
	            background-color 200ms;
}
.rh-ship-bar.is-qualified .rh-ship-bar__fill {
	background: var(--wp--preset--color--success, #198754);
}
.rh-ship-bar.is-qualified .rh-ship-bar__icon {
	color: var(--wp--preset--color--success, #198754);
	border-color: var(--wp--preset--color--success, #198754);
}
.rh-ship-bar.is-qualified .rh-ship-bar__label {
	color: var(--wp--preset--color--success, #198754);
	font-weight: 600;
}

/* =====================================================================
 *  Grid: items + summary
 * ===================================================================== */
.rh-cartpage__grid {
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr;
}
@media (min-width: 968px) {
	.rh-cartpage__grid {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: 28px;
		align-items: start;
	}
}

/* =====================================================================
 *  Items
 * ===================================================================== */
.rh-cartpage__items {
	min-width: 0;
}
.rh-cartpage__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* =====================================================================
 *  One cart line — CSS Grid for responsive shape
 * ===================================================================== */
.rh-cart-line {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	grid-template-rows: auto auto;
	grid-template-areas:
		"image info"
		"controls total";
	column-gap: 14px;
	row-gap: 10px;
	padding: 14px;
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid var(--wp--preset--color--border, #e2e4e9);
	border-radius: 10px;
	contain: layout paint;
	transition: opacity 200ms;
}
.rh-cart-line.is-removing {
	opacity: 0;
	pointer-events: none;
}

@media (min-width: 768px) {
	.rh-cart-line {
		grid-template-columns: 96px minmax(0, 1fr) auto auto;
		grid-template-rows: auto;
		grid-template-areas: "image info controls total";
		column-gap: 18px;
		align-items: center;
		padding: 16px;
	}
}

/* Image */
.rh-cart-line__thumb {
	grid-area: image;
	display: block;
	width: 96px;
	height: 96px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--wp--preset--color--surface, #f7f7f8);
}
.rh-cart-line__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Info column */
.rh-cart-line__info {
	grid-area: info;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.rh-cart-line__name {
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.45;
	color: var(--wp--preset--color--contrast, #0f1115);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.rh-cart-line__name-link {
	color: inherit;
	text-decoration: none;
}
.rh-cart-line__name-link:hover {
	color: var(--wp--preset--color--primary, #0a66c2);
}

/* Variation chips */
.rh-cart-line__chips {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.rh-cart-line__chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 8px;
	background: var(--wp--preset--color--surface, #f7f7f8);
	border: 1px solid var(--wp--preset--color--border, #e2e4e9);
	border-radius: 9999px;
	font-size: 0.75rem;
	color: var(--wp--preset--color--text-muted, #5b6271);
	line-height: 1.4;
}
.rh-cart-line__chip-key {
	color: var(--wp--preset--color--text-muted, #5b6271);
}
.rh-cart-line__chip-val {
	color: var(--wp--preset--color--contrast, #0f1115);
	font-weight: 500;
}

/* Controls */
.rh-cart-line__controls {
	grid-area: controls;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Total
 *
 * Two stacked rows: regular (struck-through) on top, current below.
 * The <del> renders only when on sale — when $regular_total_html is ''
 * the element is :empty and `display: none` removes it from the flow,
 * so non-sale lines render a single tidy row. This is purely declarative
 * (no JS show/hide per line) which keeps cart updates cheap.
 */
.rh-cart-line__total {
	grid-area: total;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 2px;
	text-align: end;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	line-height: 1.25;
}
.rh-cart-line__total-regular {
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--wp--preset--color--text-muted, #5b6271);
	/* line-through is the browser default for <del> */
}
.rh-cart-line__total-regular:empty {
	display: none;
}
.rh-cart-line__total-current {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--wp--preset--color--contrast, #0f1115);
}
@media (min-width: 768px) {
	.rh-cart-line__total {
		min-width: 96px;
	}
}

/* Quantity pill */
.rh-qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--wp--preset--color--border, #e2e4e9);
	border-radius: 8px;
	background: var(--wp--preset--color--base, #fff);
	overflow: hidden;
}
.rh-qty__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--text, #1a1d23);
	cursor: pointer;
	transition: background-color 120ms, color 120ms;
}
.rh-qty__btn:hover,
.rh-qty__btn:focus-visible {
	background: var(--wp--preset--color--surface, #f7f7f8);
	color: var(--wp--preset--color--primary, #0a66c2);
}
/* Dec button morphs minus ⇄ trash. Both icons ship; one is shown.
 * Default (qty >= 2) = minus; `is-removable` (qty 1) = trash, with a red
 * hover so the delete intent reads clearly. */
.rh-qty__ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.rh-qty__ico--trash {
	display: none;
}
.rh-qty__btn--dec.is-removable .rh-qty__ico--minus {
	display: none;
}
.rh-qty__btn--dec.is-removable .rh-qty__ico--trash {
	display: inline-flex;
}
.rh-qty__btn--dec.is-removable:hover,
.rh-qty__btn--dec.is-removable:focus-visible {
	background: rgba(220, 38, 38, 0.08);
	color: var(--wp--preset--color--danger, #dc2626);
}
.rh-qty__value {
	min-width: 32px;
	text-align: center;
	font-size: 0.9375rem;
	font-weight: 600;
	user-select: none;
	font-variant-numeric: tabular-nums;
}

/* In-flight UI for a single line */
.rh-cart-line[aria-busy="true"] .rh-qty,
.rh-cart-line[aria-busy="true"] .rh-cart-line__total {
	opacity: 0.55;
	transition: opacity 120ms;
}

/* =====================================================================
 *  Summary box
 * ===================================================================== */
.rh-cartpage__summary {
	padding: 18px;
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid var(--wp--preset--color--border, #e2e4e9);
	border-radius: 12px;
	contain: layout paint;
}
@media (min-width: 968px) {
	.rh-cartpage__summary {
		position: sticky;
		top: 80px;
	}
}
.rh-cartpage__summary-title {
	margin: 0 0 14px;
	font-size: 1rem;
	font-weight: 700;
}

.rh-cartpage__totals {
	margin: 0 0 12px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.rh-cartpage__total-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	font-size: 0.9375rem;
}
.rh-cartpage__total-row.is-hidden {
	display: none;
}
.rh-cartpage__total-row dt {
	color: var(--wp--preset--color--text-muted, #5b6271);
}
.rh-cartpage__total-row dd {
	margin: 0;
	font-variant-numeric: tabular-nums;
}
.rh-cartpage__total-discount {
	color: var(--wp--preset--color--success, #198754);
	font-weight: 600;
}
.rh-cartpage__total-row--grand {
	padding-top: 10px;
	margin-top: 2px;
	border-top: 1px dashed var(--wp--preset--color--border, #e2e4e9);
	font-size: 1.0625rem;
}
.rh-cartpage__total-row--grand dt {
	color: var(--wp--preset--color--contrast, #0f1115);
	font-weight: 600;
}
.rh-cartpage__total-row--grand dd {
	color: var(--wp--preset--color--primary, #0a66c2);
	font-weight: 700;
}

/* Savings highlight strip */
.rh-cartpage__savings {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 14px 0;
	padding: 10px 12px;
	background: rgba(25, 135, 84, 0.08);
	border: 1px solid rgba(25, 135, 84, 0.18);
	border-radius: 8px;
	color: var(--wp--preset--color--success, #198754);
	font-size: 0.875rem;
}
.rh-cartpage__savings.is-hidden {
	display: none;
}
.rh-cartpage__savings-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	color: var(--wp--preset--color--success, #198754);
	line-height: 1;
}
.rh-cartpage__savings-label {
	flex: 1 1 auto;
	color: var(--wp--preset--color--success, #198754);
}
.rh-cartpage__savings-value {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

/* --- Grand-total flash when total changes ---------------------------- */
.rh-cartpage__total-row--grand dd.is-changed {
	animation: rh-total-flash 460ms ease-out;
}
@keyframes rh-total-flash {
	0%   { transform: scale(1);    color: var(--wp--preset--color--primary, #0a66c2); }
	35%  { transform: scale(1.06); color: var(--wp--preset--color--success, #198754); }
	100% { transform: scale(1);    color: var(--wp--preset--color--primary, #0a66c2); }
}

/* Checkout CTA — primary purchase-flow button, top-tier sizing */
.rh-cartpage__checkout {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--custom--button--gap, 8px);
	box-sizing: border-box;
	width: 100%;
	min-height: var(--wp--custom--button--h--lg, 52px);
	padding: 0 var(--wp--custom--button--px--lg, 22px);
	background: var(--wp--preset--color--primary, #0a66c2);
	color: #fff;
	border-radius: var(--wp--custom--button--radius, 10px);
	font-weight: var(--wp--custom--button--fw, 600);
	font-size: var(--wp--custom--button--fs--lg, 1rem);
	text-decoration: none;
	transition: background-color 120ms;
}
.rh-cartpage__checkout:hover,
.rh-cartpage__checkout:focus-visible {
	background: var(--wp--preset--color--primary-dark, #074a8d);
	color: #fff;
	text-decoration: none;
}
.rh-cartpage__checkout svg {
	flex: 0 0 auto;
}

.rh-cartpage__note {
	margin: 12px 0 0;
	font-size: 0.75rem;
	color: var(--wp--preset--color--text-muted, #5b6271);
	text-align: center;
	line-height: 1.6;
}

/* =====================================================================
 *  Cross-sell strip
 * ===================================================================== */
.rh-cartpage__upsell {
	margin-top: 36px;
	padding-top: 24px;
	border-top: 1px solid var(--wp--preset--color--border, #e2e4e9);
}
.rh-cartpage__upsell-title {
	margin: 0 0 16px;
	font-size: 1.125rem;
	font-weight: 700;
}
.rh-cartpage__upsell-list {
	list-style: none;
	margin: 0;
	padding: 4px 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 14px;
}
@media (max-width: 640px) {
	.rh-cartpage__upsell-list {
		display: flex;
		overflow-x: auto;
		scrollbar-width: thin;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 10px;
	}
	.rh-cartpage__upsell-item {
		flex: 0 0 160px;
		scroll-snap-align: start;
	}
}
.rh-cartpage__upsell-item {
	display: flex;
	flex-direction: column;
	padding: 10px;
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid var(--wp--preset--color--border, #e2e4e9);
	border-radius: 10px;
}
.rh-cartpage__upsell-link {
	display: block;
	text-decoration: none;
	color: inherit;
}
.rh-cartpage__upsell-img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 8px;
	background: var(--wp--preset--color--surface, #f7f7f8);
	margin-bottom: 10px;
}
.rh-cartpage__upsell-name {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--wp--preset--color--contrast, #0f1115);
	line-height: 1.45;
	min-height: 2.3em;
	margin-bottom: 4px;
}
.rh-cartpage__upsell-price {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #0a66c2);
	margin-bottom: 10px;
}
.rh-cartpage__upsell-add {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: var(--wp--custom--button--h--sm, 36px);
	padding: 0 var(--wp--custom--button--px--sm, 14px);
	background: transparent;
	color: var(--wp--preset--color--primary, #0a66c2);
	border: 1px solid var(--wp--preset--color--primary, #0a66c2);
	border-radius: var(--wp--custom--button--radius, 10px);
	font: inherit;
	font-size: var(--wp--custom--button--fs--sm, 0.875rem);
	font-weight: var(--wp--custom--button--fw, 600);
	cursor: pointer;
	text-decoration: none;
	transition: background-color 120ms, color 120ms;
	margin-top: auto;
}
.rh-cartpage__upsell-add:hover,
.rh-cartpage__upsell-add:focus-visible {
	background: var(--wp--preset--color--primary, #0a66c2);
	color: #fff;
}
.rh-cartpage__upsell-add[aria-busy="true"] {
	opacity: 0.6;
	pointer-events: none;
}
/* Outlined surface (transparent bg, primary border) — the global white
   spinner from loading.css would be invisible here, so re-ink it with
   the brand color. */
.rh-cartpage__upsell-add[aria-busy="true"]::after {
	border-color: rgba(15, 17, 21, 0.18);
	border-top-color: var(--wp--preset--color--primary, #0a66c2);
}

/* =====================================================================
 *  Empty cart
 * ===================================================================== */
.rh-cart-empty {
	width: 100%;
	max-width: 1200px;
	margin: 40px auto;
	padding: 32px 16px;
	box-sizing: border-box;
	text-align: center;
}
.rh-cart-empty__icon {
	color: var(--wp--preset--color--text-muted, #5b6271);
	margin-bottom: 14px;
	display: inline-flex;
}
.rh-cart-empty__title {
	margin: 0 0 8px;
	font-size: 1.375rem;
	font-weight: 700;
}
.rh-cart-empty__text {
	margin: 0 0 22px;
	color: var(--wp--preset--color--text-muted, #5b6271);
}
.rh-cart-empty__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--wp--custom--button--h--md, 44px);
	padding: 0 var(--wp--custom--button--px--md, 20px);
	background: var(--wp--preset--color--primary, #0a66c2);
	color: #fff;
	border-radius: var(--wp--custom--button--radius, 10px);
	font-weight: var(--wp--custom--button--fw, 600);
	font-size: var(--wp--custom--button--fs--md, 0.9375rem);
	text-decoration: none;
	transition: background-color 120ms;
}
.rh-cart-empty__cta:hover {
	background: var(--wp--preset--color--primary-dark, #074a8d);
	color: #fff;
	text-decoration: none;
}
.rh-cart-empty__featured {
	margin-top: 40px;
	text-align: start;
}
.rh-cart-empty__featured-title {
	margin: 0 0 14px;
	font-size: 1rem;
	font-weight: 600;
	color: var(--wp--preset--color--text-muted, #5b6271);
}
.rh-cart-empty__featured-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 12px;
}
.rh-cart-empty__featured-item {
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid var(--wp--preset--color--border, #e2e4e9);
	border-radius: 10px;
	padding: 10px;
}
.rh-cart-empty__featured-link {
	display: block;
	text-decoration: none;
	color: inherit;
}
.rh-cart-empty__featured-link img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 8px;
	margin-bottom: 8px;
	background: var(--wp--preset--color--surface, #f7f7f8);
}
.rh-cart-empty__featured-name {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--contrast, #0f1115);
	margin-bottom: 4px;
	min-height: 2.3em;
}
.rh-cart-empty__featured-price {
	display: block;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--primary, #0a66c2);
	font-weight: 600;
}

/* =====================================================================
 *  Mobile sticky CTA bar — sits above the bottom-nav dock.
 *  Hidden on desktop (≥968px) where the sidebar CTA is always visible.
 * ===================================================================== */
.rh-cart-sticky {
	display: none;
}
@media (max-width: 967px) {
	.rh-cartpage__checkout,
	.rh-cartpage__note {
		display: none;
	}
	.rh-cart-sticky {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: calc(62px + env(safe-area-inset-bottom, 0px));
		z-index: 949;
		/* Generous side-padding so the button has breathing room from the
		 * viewport edges (card-like feel, not edge-flush). */
		padding: 12px 16px;
		background: var(--wp--preset--color--base, #fff);
		border-top: 1px solid var(--wp--preset--color--border, #e2e4e9);
		box-shadow: 0 -2px 12px rgba(15, 17, 21, 0.06);
	}
	body.woocommerce-cart {
		padding-bottom: calc(68px + 60px + env(safe-area-inset-bottom, 0px));
	}
}
.rh-cart-sticky__total {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.rh-cart-sticky__total-label {
	font-size: 0.6875rem;
	color: var(--wp--preset--color--text-muted, #5b6271);
	line-height: 1.2;
	white-space: nowrap;
}
.rh-cart-sticky__total-value {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--wp--preset--color--contrast, #0f1115);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.rh-cart-sticky__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--custom--button--gap, 8px);
	flex: 0 0 auto;
	min-height: var(--wp--custom--button--h--md, 44px);
	padding: 0 var(--wp--custom--button--px--md, 20px);
	background: var(--wp--preset--color--primary, #0a66c2);
	color: #fff;
	border-radius: var(--wp--custom--button--radius, 10px);
	font-weight: var(--wp--custom--button--fw, 600);
	font-size: var(--wp--custom--button--fs--md, 0.9375rem);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 120ms;
}
.rh-cart-sticky__btn:hover {
	background: var(--wp--preset--color--primary-dark, #074a8d);
	color: #fff;
	text-decoration: none;
}

/* Reduced-motion: kill transitions + decorative animations. */
@media (prefers-reduced-motion: reduce) {
	.rh-ship-bar__fill,
	.rh-cart-line,
	.rh-qty__btn,
	.rh-cartpage__checkout,
	.rh-cartpage__upsell-add {
		transition: none;
	}
	.rh-cartpage__total-row--grand dd.is-changed {
		animation: none;
	}
}
