/*
 * ReactWoo Cart + Checkout UI
 * Designed for classic WooCommerce templates and the supplied child-theme overrides.
 * Also includes limited support for Elementor's WooCommerce Cart/Checkout wrappers.
 */

:root {
	--rw-blue: #148cff;
	--rw-violet: #7d4dff;
	--rw-pink: #d70dff;
	--rw-dark: #090a0f;
	--rw-text: #11121a;
	--rw-muted: #666a73;
	--rw-subtle: #8a8e99;
	--rw-border: #e1e4ea;
	--rw-surface: #ffffff;
	--rw-page: #f6f7fa;
	--rw-soft-violet: #f4f0ff;
	--rw-soft-green: #f0fbf5;
	--rw-green: #103b30;
	--rw-radius-sm: 10px;
	--rw-radius: 16px;
	--rw-radius-lg: 18px;
	--rw-shadow: 0 18px 45px rgba(15, 19, 33, 0.09);
	--rw-gradient: linear-gradient(110deg, var(--rw-blue) 0%, var(--rw-violet) 56%, var(--rw-pink) 100%);
}

.rw-commerce-page {
	background: var(--rw-page);
	color: var(--rw-text);
}

.rw-commerce-page .site-main,
.rw-commerce-page main,
.rw-commerce-page .elementor-location-single,
.rw-commerce-page .elementor-widget-woocommerce-cart,
.rw-commerce-page .elementor-widget-woocommerce-checkout-page {
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.rw-commerce-page :where(h1, h2, h3, h4, h5, h6) {
	font-family: Montserrat, Inter, system-ui, sans-serif;
	color: var(--rw-text);
	letter-spacing: -0.025em;
}

.rw-commerce-page .woocommerce {
	width: min(1200px, calc(100% - 48px));
	margin-inline: auto;
	padding-block: 56px 64px;
}

.rw-commerce-page .woocommerce-notices-wrapper,
.rw-commerce-page .woocommerce-form-login-toggle,
.rw-commerce-page .woocommerce-form-coupon-toggle {
	width: 100%;
}

.rw-commerce-page :where(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	border: 1px solid #d8cfff;
	border-radius: var(--rw-radius-sm);
	background: var(--rw-soft-violet);
	color: #4d3d78;
	padding: 15px 18px 15px 48px;
	box-shadow: none;
}

.rw-commerce-page :where(.woocommerce-message, .woocommerce-info)::before {
	color: var(--rw-violet);
}

.rw-commerce-page .woocommerce-error {
	border-color: #f3c5cf;
	background: #fff5f7;
	color: #7a263a;
}

.rw-commerce-page a {
	color: #5b3bc4;
}

.rw-commerce-page a:hover {
	color: #422695;
}

.rw-commerce-page :where(button, .button, input, select, textarea) {
	font: inherit;
}

.rw-commerce-page :where(input.input-text, select, textarea, .select2-selection) {
	min-height: 50px;
	border: 1px solid #d9dde7 !important;
	border-radius: 9px !important;
	background: #fff !important;
	color: var(--rw-text) !important;
	box-shadow: none !important;
	padding: 12px 14px !important;
}

.rw-commerce-page :where(input.input-text, select, textarea, .select2-selection):focus {
	outline: 3px solid rgba(125, 77, 255, 0.18) !important;
	outline-offset: 1px;
	border-color: var(--rw-violet) !important;
}

.rw-commerce-page :where(button, .button) {
	min-height: 44px;
	border: 1px solid #d9dde7;
	border-radius: var(--rw-radius-sm);
	background: #fff;
	color: var(--rw-text);
	font-weight: 650;
	padding: 11px 18px;
	box-shadow: none;
	transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.rw-commerce-page :where(button, .button):hover {
	border-color: #b8bed0;
	transform: translateY(-1px);
}

.rw-commerce-page :where(button, .button):focus-visible,
.rw-commerce-page a:focus-visible {
	outline: 3px solid rgba(125, 77, 255, 0.35);
	outline-offset: 3px;
}

.rw-commerce-page :where(.checkout-button, #place_order) {
	width: 100%;
	border: 0;
	background: var(--rw-gradient);
	color: #fff;
	font-weight: 700;
	text-align: center;
	padding: 16px 20px;
}

.rw-commerce-page :where(.checkout-button, #place_order):hover {
	color: #fff;
	box-shadow: 0 10px 24px rgba(125, 77, 255, 0.24);
}

/* Intro and checkout progress */
.rw-commerce-intro {
	display: grid;
	gap: 9px;
	margin-bottom: 32px;
}

.rw-commerce-kicker {
	margin: 0;
	color: #7a8088;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.rw-commerce-intro h1 {
	margin: 0;
	font-size: clamp(2.2rem, 5vw, 3.1rem);
	line-height: 1.08;
}

.rw-commerce-lead {
	max-width: 720px;
	margin: 0;
	color: var(--rw-muted);
	font-size: 16px;
	line-height: 1.55;
}

.rw-checkout-intro {
	grid-template-columns: 1fr auto;
	align-items: start;
}

.rw-checkout-progress {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 72px;
	max-width: 760px;
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
}

.rw-checkout-progress li {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	color: #7a8088;
	font-size: 13px;
	font-weight: 600;
}

.rw-checkout-progress li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: calc(100% + 18px);
	top: 50%;
	width: 36px;
	height: 1px;
	background: #d8dce6;
}

.rw-checkout-progress span {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #eeeff4;
	color: #7a8088;
	font-size: 12px;
}

.rw-checkout-progress .is-active {
	color: var(--rw-text);
}

.rw-checkout-progress .is-active span {
	background: var(--rw-violet);
	color: #fff;
}

.rw-checkout-progress .is-complete span {
	background: var(--rw-green);
	color: #fff;
}

.rw-secure-badge {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	border-radius: 999px;
	background: var(--rw-soft-violet);
	color: #5b3bc4;
	font-size: 11px;
	font-weight: 750;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 10px 15px;
}

.rw-secure-badge span {
	color: var(--rw-violet);
}

/* Cart */
.rw-cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(320px, 0.95fr);
	gap: 32px;
	align-items: start;
}

.rw-cart-layout__main {
	min-width: 0;
}

.rw-cart-card,
.rw-cart-layout__summary .cart_totals,
.rw-checkout-panel,
.rw-checkout-layout__summary {
	border: 1px solid var(--rw-border);
	border-radius: var(--rw-radius-lg);
	background: var(--rw-surface);
	box-shadow: var(--rw-shadow);
}

.rw-cart-card {
	padding: 28px;
}

.rw-card-heading {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	border-bottom: 1px solid var(--rw-border);
	padding-bottom: 18px;
}

.rw-card-heading h2,
.rw-cart-layout__summary h2,
.rw-checkout-layout__summary > h2,
.rw-checkout-panel h2 {
	margin: 0;
	font-size: 20px;
	line-height: 1.25;
}

.rw-item-count,
.rw-product-type {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	border-radius: 999px;
	background: #f2f3f7;
	color: #666a73;
	font-size: 10px;
	font-weight: 750;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 7px 11px;
}

.rw-product-type {
	background: #eee9ff;
	color: #6b3ff5;
	margin-bottom: 8px;
}

.rw-cart-card table,
.rw-cart-card tbody,
.rw-cart-card tr,
.rw-cart-card td {
	display: block;
	width: 100%;
}

.rw-cart-card thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.rw-cart-card table,
.rw-cart-card tbody {
	margin: 0;
	border: 0;
}

.rw-cart-card tr.cart_item {
	position: relative;
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr) 112px 130px;
	grid-template-areas:
		"image name price quantity"
		"image name subtotal quantity";
	column-gap: 20px;
	align-items: center;
	border-bottom: 1px solid var(--rw-border);
	padding: 24px 0;
}

.rw-cart-card td {
	border: 0 !important;
	padding: 0 !important;
}

.rw-cart-card .product-thumbnail {
	grid-area: image;
}

.rw-cart-card .product-thumbnail img {
	width: 104px;
	height: 104px;
	object-fit: cover;
	border-radius: 16px;
	background: var(--rw-gradient);
}

.rw-cart-card .product-name {
	grid-area: name;
	font-size: 18px;
	font-weight: 700;
}

.rw-cart-card .product-name > a {
	color: var(--rw-text);
	text-decoration: none;
}

.rw-cart-card .product-name .variation,
.rw-cart-card .product-name .wc-item-meta {
	margin-top: 7px;
	color: var(--rw-muted);
	font-size: 12px;
}

.rw-delivery-note {
	margin: 7px 0 0;
	color: #229267;
	font-size: 12px;
	font-weight: 650;
}

.rw-product-included {
	display: grid;
	gap: 4px;
	border-radius: 12px;
	background: #fafafc;
	margin-top: 16px;
	padding: 13px 15px;
	font-size: 12px;
}

.rw-product-included strong {
	color: var(--rw-text);
}

.rw-product-included span {
	color: var(--rw-muted);
	font-weight: 400;
	line-height: 1.5;
}

.rw-cart-card .product-price {
	grid-area: price;
	align-self: end;
	text-align: right;
	font-size: 18px;
	font-weight: 750;
}

.rw-cart-card .product-quantity {
	grid-area: quantity;
}

.rw-cart-card .product-subtotal {
	grid-area: subtotal;
	align-self: start;
	color: var(--rw-subtle);
	font-size: 11px;
	text-align: right;
}

.rw-cart-card .product-subtotal::before {
	content: "Subtotal ";
}

.rw-cart-card .product-remove {
	position: absolute;
	right: 0;
	bottom: 20px;
	width: auto;
}

.rw-cart-card .product-remove a.remove {
	width: auto;
	height: auto;
	border: 0;
	color: #8a5b78 !important;
	font-size: 0;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
}

.rw-cart-card .product-remove a.remove::after {
	content: "Remove";
	font-size: 12px;
}

.rw-cart-card .quantity {
	display: grid;
	grid-template-columns: 36px 1fr 36px;
	align-items: center;
	border: 1px solid #d9dde7;
	border-radius: 9px;
	overflow: hidden;
}

.rw-cart-card .quantity input.qty {
	width: 100%;
	min-height: 40px;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	text-align: center;
	-moz-appearance: textfield;
}

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

.rw-qty-button {
	min-height: 40px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	padding: 0 !important;
	font-size: 18px !important;
}

.rw-cart-actions-row .actions {
	display: grid !important;
	grid-template-columns: 1fr auto;
	gap: 12px;
	padding-top: 20px !important;
}

.rw-cart-actions-row .coupon {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 10px;
}

.rw-cart-actions-row #coupon_code {
	width: 100%;
}

.rw-update-cart {
	align-self: stretch;
}

.rw-continue-shopping {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 20px;
	font-size: 13px;
	font-weight: 650;
	text-decoration: none;
}

.rw-cart-layout__summary {
	position: sticky;
	top: 24px;
}

.rw-cart-layout__summary .cart_totals {
	float: none;
	width: 100%;
	padding: 28px;
}

.rw-cart-layout__summary .cart_totals > h2 {
	border-bottom: 1px solid var(--rw-border);
	padding-bottom: 18px;
}

.rw-cart-layout__summary table,
.rw-checkout-layout__summary table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	margin: 14px 0 0;
}

.rw-cart-layout__summary table th,
.rw-cart-layout__summary table td,
.rw-checkout-layout__summary table th,
.rw-checkout-layout__summary table td {
	border: 0;
	border-bottom: 1px solid #eef0f4;
	padding: 13px 0;
	font-size: 13px;
	vertical-align: top;
}

.rw-cart-layout__summary table th,
.rw-checkout-layout__summary table th {
	color: var(--rw-muted);
	font-weight: 500;
	text-align: left;
}

.rw-cart-layout__summary table td,
.rw-checkout-layout__summary table td {
	color: var(--rw-text);
	font-weight: 600;
	text-align: right;
}

.rw-cart-layout__summary .order-total th,
.rw-checkout-layout__summary .order-total th {
	color: var(--rw-text);
	font-size: 16px;
	font-weight: 700;
}

.rw-cart-layout__summary .order-total td,
.rw-checkout-layout__summary .order-total td {
	font-size: 23px;
	font-weight: 800;
}

.rw-tax-note {
	margin: 16px 0;
	color: var(--rw-subtle);
	font-size: 11px;
	line-height: 1.55;
}

.rw-reassurance,
.rw-checkout-benefits {
	border-radius: 12px;
	background: #f7f8fa;
	padding: 14px;
}

.rw-reassurance {
	margin-top: 16px;
}

.rw-reassurance ul,
.rw-checkout-benefits ul {
	display: grid;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rw-reassurance li,
.rw-checkout-benefits li {
	position: relative;
	color: var(--rw-muted);
	font-size: 12px;
	padding-left: 27px;
}

.rw-reassurance li::before,
.rw-checkout-benefits li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: -2px;
	display: grid;
	place-items: center;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: #d7fce6;
	color: var(--rw-green);
	font-size: 10px;
	font-weight: 800;
}

/* Checkout */
.rw-checkout-page .woocommerce-form-login-toggle,
.rw-checkout-page .woocommerce-form-coupon-toggle {
	display: inline-block;
	width: calc(50% - 8px);
	margin: 0 12px 22px 0;
	vertical-align: top;
}

.rw-checkout-page .woocommerce-form-coupon-toggle {
	margin-right: 0;
}

.rw-checkout-page .woocommerce-form-login-toggle .woocommerce-info,
.rw-checkout-page .woocommerce-form-coupon-toggle .woocommerce-info {
	margin: 0;
	border-color: var(--rw-border);
	background: #fff;
	color: var(--rw-muted);
	padding-left: 18px;
}

.rw-checkout-page .woocommerce-form-login-toggle .woocommerce-info::before,
.rw-checkout-page .woocommerce-form-coupon-toggle .woocommerce-info::before {
	display: none;
}

.rw-checkout-page form.login,
.rw-checkout-page form.checkout_coupon {
	border: 1px solid var(--rw-border);
	border-radius: var(--rw-radius);
	background: #fff;
	margin: 0 0 22px;
	padding: 22px;
}

.rw-checkout-layout {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(320px, 0.95fr);
	gap: 32px;
	align-items: start;
}

.rw-checkout-layout__main {
	display: grid;
	gap: 18px;
	min-width: 0;
}

.rw-checkout-layout__summary {
	position: sticky;
	top: 24px;
	padding: 28px;
}

.rw-checkout-layout__summary > h2 {
	border-bottom: 1px solid var(--rw-border);
	padding-bottom: 18px;
}

.rw-checkout-panel {
	padding: 26px;
}

.rw-checkout-panel--shipping:empty,
.rw-checkout-panel--shipping:not(:has(.woocommerce-shipping-fields, .woocommerce-additional-fields)) {
	display: none;
}

.rw-checkout-panel h3,
.rw-checkout-panel .woocommerce-billing-fields > h3,
.rw-checkout-panel .woocommerce-shipping-fields > h3,
.rw-checkout-panel .woocommerce-additional-fields > h3 {
	margin: 0 0 18px;
	font-family: Montserrat, Inter, sans-serif;
	font-size: 19px;
}

.rw-checkout-panel .woocommerce-billing-fields__field-wrapper,
.rw-checkout-panel .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.rw-checkout-panel .form-row {
	float: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

.rw-checkout-panel .form-row-wide,
.rw-checkout-panel #billing_country_field,
.rw-checkout-panel #billing_address_1_field,
.rw-checkout-panel #billing_address_2_field,
.rw-checkout-panel #billing_email_field,
.rw-checkout-panel #billing_phone_field,
.rw-checkout-panel #shipping_country_field,
.rw-checkout-panel #shipping_address_1_field,
.rw-checkout-panel #shipping_address_2_field {
	grid-column: 1 / -1;
}

.rw-checkout-panel label {
	display: block;
	margin-bottom: 7px;
	color: #555d70;
	font-size: 12px;
	font-weight: 650;
}

.rw-checkout-panel .optional {
	color: var(--rw-subtle);
	font-size: 11px;
	font-weight: 500;
}

.rw-payment-copy {
	margin: 8px 0 18px;
	color: var(--rw-muted);
	font-size: 12px;
	line-height: 1.55;
}

#payment {
	border-radius: 12px;
	background: transparent;
}

#payment ul.payment_methods {
	border: 1px solid var(--rw-border);
	border-radius: 12px;
	background: #fafafc;
	margin: 0 0 16px;
	padding: 0;
	overflow: hidden;
}

#payment ul.payment_methods li {
	border-bottom: 1px solid var(--rw-border);
	margin: 0;
	padding: 16px;
}

#payment ul.payment_methods li:last-child {
	border-bottom: 0;
}

#payment ul.payment_methods li label {
	font-size: 13px;
	font-weight: 650;
}

#payment ul.payment_methods li img {
	max-height: 24px;
	margin-left: 8px;
}

#payment div.payment_box {
	border-radius: 9px;
	background: #fff;
	color: var(--rw-muted);
	font-size: 12px;
	line-height: 1.55;
	margin: 13px 0 0;
}

#payment div.payment_box::before {
	border-bottom-color: #fff;
}

#payment .place-order {
	padding: 0;
}

#payment .woocommerce-terms-and-conditions-wrapper {
	margin: 16px 0;
	font-size: 12px;
	line-height: 1.55;
}

.rw-payment-reassurance,
.rw-summary-guarantee {
	display: flex;
	align-items: center;
	gap: 12px;
	border-radius: 12px;
	background: var(--rw-soft-green);
	color: var(--rw-green);
	padding: 13px 14px;
}

.rw-payment-reassurance {
	margin: 14px 0;
}

.rw-summary-guarantee {
	margin-top: 18px;
}

.rw-payment-reassurance > span,
.rw-summary-guarantee > span {
	display: grid;
	place-items: center;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #d7fce6;
	font-weight: 800;
}

.rw-payment-reassurance div,
.rw-summary-guarantee div {
	display: grid;
	gap: 3px;
}

.rw-payment-reassurance strong,
.rw-summary-guarantee strong {
	font-size: 11px;
}

.rw-payment-reassurance small,
.rw-summary-guarantee small {
	color: #4f7768;
	font-size: 11px;
}

.rw-checkout-layout__summary .woocommerce-checkout-review-order-table thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.rw-checkout-layout__summary .rw-review-item .product-name {
	display: flex;
	align-items: center;
	gap: 13px;
	text-align: left;
}

.rw-order-thumb {
	flex: 0 0 60px;
}

.rw-order-thumb img {
	width: 60px;
	height: 60px;
	object-fit: cover;
	border-radius: 12px;
}

.rw-order-product-copy {
	display: grid;
	gap: 4px;
}

.rw-order-product-copy strong {
	color: var(--rw-text);
	font-size: 13px;
}

.rw-order-product-copy small,
.rw-order-product-copy .variation,
.rw-order-product-copy .wc-item-meta {
	color: var(--rw-subtle);
	font-size: 11px;
}

.rw-checkout-benefits-row td {
	border-bottom: 0 !important;
	padding: 16px 0 0 !important;
	text-align: left !important;
}

.rw-checkout-benefits strong {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
}

/* Elementor widget fallbacks */
.elementor-widget-woocommerce-cart .woocommerce,
.elementor-widget-woocommerce-checkout-page .woocommerce {
	width: 100%;
	padding: 0;
}

.elementor-widget-woocommerce-cart .e-cart__container,
.elementor-widget-woocommerce-checkout-page .e-checkout__container {
	gap: 32px !important;
}

.elementor-widget-woocommerce-cart :where(.e-cart__column, .e-cart-totals),
.elementor-widget-woocommerce-checkout-page :where(.e-checkout__column, .e-checkout__order_review) {
	border-radius: var(--rw-radius-lg) !important;
}

/* Responsive */
@media (max-width: 980px) {
	.rw-commerce-page .woocommerce {
		width: min(760px, calc(100% - 40px));
		padding-block: 40px 52px;
	}

	.rw-cart-layout,
	.rw-checkout-layout {
		grid-template-columns: 1fr;
	}

	.rw-cart-layout__summary,
	.rw-checkout-layout__summary {
		position: static;
	}

	.rw-cart-card tr.cart_item {
		grid-template-columns: 100px minmax(0, 1fr) 120px;
		grid-template-areas:
			"image name price"
			"image name quantity"
			"image name subtotal";
	}

	.rw-checkout-page .woocommerce-form-login-toggle,
	.rw-checkout-page .woocommerce-form-coupon-toggle {
		display: block;
		width: 100%;
		margin-right: 0;
	}
}

@media (max-width: 640px) {
	.rw-commerce-page .woocommerce {
		width: calc(100% - 32px);
		padding-block: 28px 40px;
	}

	.rw-commerce-intro h1 {
		font-size: 2.15rem;
	}

	.rw-checkout-intro {
		grid-template-columns: 1fr;
	}

	.rw-secure-badge {
		grid-row: 1;
		justify-self: end;
	}

	.rw-checkout-progress {
		gap: 8px;
		max-width: none;
		margin-top: 18px;
	}

	.rw-checkout-progress li {
		flex-direction: column;
		gap: 5px;
		font-size: 10px;
	}

	.rw-checkout-progress li:not(:last-child)::after {
		left: calc(50% + 24px);
		top: 15px;
		width: calc(100% - 40px);
	}

	.rw-cart-card,
	.rw-cart-layout__summary .cart_totals,
	.rw-checkout-panel,
	.rw-checkout-layout__summary {
		border-radius: 15px;
		padding: 18px;
	}

	.rw-cart-card tr.cart_item {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-areas:
			"image name"
			"price quantity"
			"subtotal subtotal";
		gap: 16px 14px;
	}

	.rw-cart-card .product-thumbnail img {
		width: 76px;
		height: 76px;
		border-radius: 13px;
	}

	.rw-cart-card .product-name {
		font-size: 16px;
	}

	.rw-cart-card .product-price {
		text-align: left;
	}

	.rw-cart-card .product-subtotal {
		text-align: left;
	}

	.rw-cart-card .product-remove {
		right: 0;
		bottom: 14px;
	}

	.rw-product-included {
		grid-column: 1 / -1;
	}

	.rw-cart-actions-row .actions,
	.rw-cart-actions-row .coupon {
		grid-template-columns: 1fr;
	}

	.rw-cart-actions-row .actions > button,
	.rw-cart-actions-row .coupon .button {
		width: 100%;
	}

	.rw-checkout-panel .woocommerce-billing-fields__field-wrapper,
	.rw-checkout-panel .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	.rw-checkout-panel .form-row {
		grid-column: 1 / -1;
	}

	.rw-checkout-layout__summary {
		order: -1;
	}

	.rw-checkout-layout__summary .woocommerce-checkout-review-order-table tbody,
	.rw-checkout-layout__summary .woocommerce-checkout-review-order-table tfoot {
		display: table-row-group;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rw-commerce-page *,
	.rw-commerce-page *::before,
	.rw-commerce-page *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.001ms !important;
	}
}

/* -------------------------------------------------------------------------
 * ReactWoo v2 integration fixes
 * Break out of narrow theme containers, reset WooCommerce floats and prevent
 * the global page chrome from competing with the conversion journey.
 * ---------------------------------------------------------------------- */

/* The WordPress page title duplicates the template's own accessible H1. */
body.rw-commerce-page :where(.entry-title, .page-title, .page-header, .entry-header) {
	display: none !important;
}

body.rw-commerce-page :where(main, .site-main, .site-content, .content-area) {
	padding-top: 0 !important;
}

/* Keep the Elementor header in normal document flow on checkout and restore
 * contrast when the global header was designed for a dark/gradient hero. */
body.rw-checkout-page .elementor-location-header,
body.rw-checkout-page header.site-header {
	position: relative !important;
	inset: auto !important;
	z-index: 20;
	background: #fff !important;
	border-bottom: 1px solid var(--rw-border);
	box-shadow: none !important;
}

body.rw-checkout-page .elementor-location-header :where(a, .elementor-item, .elementor-icon, .elementor-heading-title),
body.rw-checkout-page header.site-header :where(a, .menu-item a) {
	color: var(--rw-text) !important;
}

body.rw-checkout-page .elementor-location-header .elementor-button {
	border: 0 !important;
	background: var(--rw-gradient) !important;
	color: #fff !important;
}

/* The checkout uses a small legal footer generated by the integration file. */
body.rw-commerce-page .elementor-location-footer,
body.rw-commerce-page footer.site-footer:not(.rw-commerce-footer),
body.rw-commerce-page #colophon {
	display: none !important;
}

/* Escape Elementor/theme content widths. The former percentage width was
 * resolving against the narrow page container rather than the viewport. */
body.rw-commerce-page .woocommerce {
	box-sizing: border-box;
	position: relative;
	left: 50%;
	width: min(1200px, calc(100vw - 48px)) !important;
	max-width: none !important;
	margin: 0 !important;
	transform: translateX(-50%);
}

body.rw-commerce-page :where(.rw-cart-layout, .rw-checkout-layout, .rw-checkout-form) {
	width: 100%;
	max-width: none !important;
}

/* WooCommerce's legacy col2-set floats were creating a third narrow column
 * inside the left checkout column. Use one predictable vertical stack. */
.rw-checkout-page #customer_details {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	gap: 18px;
	width: 100%;
}

.rw-checkout-page #customer_details > :where(.col-1, .col-2) {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.rw-checkout-page .rw-checkout-layout {
	grid-template-columns: minmax(0, 792px) minmax(320px, 376px);
	justify-content: space-between;
}

.rw-checkout-page .rw-checkout-layout__main,
.rw-checkout-page .rw-checkout-panel,
.rw-checkout-page .rw-checkout-layout__summary {
	min-width: 0;
}

.rw-checkout-panel .woocommerce-additional-fields__field-wrapper {
	display: grid;
	gap: 14px;
}

.rw-checkout-panel .woocommerce-additional-fields .form-row {
	width: 100%;
}

/* The checkout shortcode can output notices before the custom template. */
.rw-commerce-page .woocommerce-notices-wrapper:not(:empty) {
	display: grid;
	gap: 12px;
	margin: 0 0 24px;
}

.rw-commerce-page .woocommerce-notices-wrapper :where(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	margin: 0;
}

/* Branded placeholder used when the WooCommerce product has no featured image. */
.rw-product-placeholder {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 60px;
	min-height: 60px;
	border-radius: 12px;
	background: var(--rw-gradient);
	color: #fff;
	line-height: 1;
}

.rw-product-placeholder strong {
	font-family: Montserrat, Inter, sans-serif;
	font-size: 14px;
	letter-spacing: 0.04em;
}

.rw-product-placeholder small {
	margin-top: 5px;
	font-size: 8px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.rw-cart-card .product-thumbnail .rw-product-placeholder {
	width: 104px;
	height: 104px;
	border-radius: 16px;
}

.rw-order-thumb .rw-product-placeholder {
	width: 60px;
	height: 60px;
}

.rw-free-price {
	color: var(--rw-green);
	font-weight: 750;
}

/* A zero-total digital order has no gateway selector. Present the remaining
 * privacy/confirmation area as a deliberate confirmation step instead. */
body.rw-free-order .rw-checkout-panel--free-order #payment {
	border: 1px solid var(--rw-border);
	border-radius: 12px;
	background: #fafafc;
	padding: 18px;
}

body.rw-free-order .rw-checkout-panel--free-order #payment :where(ul.payment_methods, .payment_box) {
	display: none !important;
}

body.rw-free-order .rw-checkout-panel--free-order #payment .woocommerce-privacy-policy-text {
	border-radius: 10px;
	background: #fff;
	color: var(--rw-muted);
	padding: 14px;
}

body.rw-free-order .rw-checkout-panel--free-order #payment .place-order {
	margin-top: 14px;
}

/* Compact replacement for the large marketing footer on cart/checkout. */
.rw-commerce-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	width: 100%;
	border-top: 1px solid var(--rw-border);
	margin-top: 48px;
	padding: 24px 0 0;
	color: var(--rw-subtle);
	font-size: 11px;
}

.rw-commerce-footer nav {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.rw-commerce-footer a {
	color: #6b7591;
	font-weight: 600;
	text-decoration: none;
}

.rw-commerce-footer a:hover {
	color: #5b3bc4;
}

@media (max-width: 980px) {
	body.rw-commerce-page .woocommerce {
		width: min(760px, calc(100vw - 40px)) !important;
	}

	.rw-checkout-page .rw-checkout-layout {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 640px) {
	body.rw-commerce-page .woocommerce {
		width: calc(100vw - 32px) !important;
	}

	.rw-cart-card .product-thumbnail .rw-product-placeholder {
		width: 76px;
		height: 76px;
		border-radius: 13px;
	}

	.rw-commerce-footer {
		flex-direction: column;
		justify-content: center;
		text-align: center;
	}

	.rw-commerce-footer nav {
		justify-content: center;
	}
}

body.rw-commerce-page :where(.elementor-widget-theme-post-title, .elementor-page-title, .page-header-title) {
	display: none !important;
}

/* -------------------------------------------------------------------------
 * ReactWoo v3 checkout polish
 * Field sizing, top alignment, sticky summary and stronger legacy resets.
 * ---------------------------------------------------------------------- */

/* WooCommerce themes frequently retain percentage widths on form-row-first
 * and form-row-last. Those percentages are applied inside our CSS grid and
 * make the two name inputs appear half-sized. */
body.rw-checkout-page .rw-checkout-panel
	:where(.form-row, .form-row-first, .form-row-last) {
	float: none !important;
	clear: none !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.rw-checkout-page .rw-checkout-panel
	:where(.woocommerce-input-wrapper, .select2-container) {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
}

body.rw-checkout-page .rw-checkout-panel
	:where(input.input-text, select, textarea, .select2-selection) {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: none !important;
}

body.rw-checkout-page .rw-checkout-panel
	:where(
		.woocommerce-billing-fields__field-wrapper,
		.woocommerce-shipping-fields__field-wrapper
	) {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	width: 100% !important;
}

body.rw-checkout-page .rw-checkout-panel
	:where(
		#billing_first_name_field,
		#billing_last_name_field,
		#shipping_first_name_field,
		#shipping_last_name_field
	) {
	grid-column: auto !important;
}

/* Remove inherited margins which were making the left column start slightly
 * lower than the order summary. */
body.rw-checkout-page
	:where(
		#customer_details,
		.woocommerce-billing-fields,
		.woocommerce-shipping-fields,
		.woocommerce-additional-fields,
		.woocommerce-billing-fields__field-wrapper,
		.woocommerce-shipping-fields__field-wrapper,
		.woocommerce-additional-fields__field-wrapper
	) {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
}

body.rw-checkout-page .rw-checkout-layout {
	align-items: start !important;
}

body.rw-checkout-page .rw-checkout-layout__summary {
	align-self: start !important;
	margin-top: 0 !important;
	height: fit-content !important;
}

/* Sticky needs every ancestor in the chain to permit visible overflow. */
@media (min-width: 981px) {
	body.rw-checkout-page
		:where(
			main,
			.site-main,
			.site-content,
			.content-area,
			.woocommerce,
			.rw-checkout-form,
			.rw-checkout-layout
		) {
		overflow: visible !important;
	}

	body.rw-checkout-page .rw-checkout-layout__summary {
		position: sticky !important;
		top: 24px !important;
		z-index: 5;
	}

	body.admin-bar.rw-checkout-page .rw-checkout-layout__summary {
		top: 56px !important;
	}
}

/* Remove borders and shadows inherited from the parent theme on structural
 * WooCommerce wrappers. Intended card, field and row separators remain. */
body.rw-checkout-page .rw-checkout-form
	:where(
		#customer_details,
		.woocommerce-billing-fields,
		.woocommerce-shipping-fields,
		.woocommerce-additional-fields,
		.woocommerce-billing-fields__field-wrapper,
		.woocommerce-shipping-fields__field-wrapper,
		.woocommerce-additional-fields__field-wrapper,
		.woocommerce-checkout-review-order,
		.woocommerce-checkout-review-order-table,
		.woocommerce-checkout-review-order-table thead,
		.woocommerce-checkout-review-order-table tbody,
		.woocommerce-checkout-review-order-table tfoot,
		.woocommerce-checkout-review-order-table tr,
		.woocommerce-checkout-payment,
		#payment,
		#payment .place-order,
		#payment .woocommerce-privacy-policy-text
	) {
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

/* For free products there are no gateway choices, so a second bordered panel
 * inside the Payment/Confirm card only looks like a leftover WooCommerce box. */
body.rw-free-order.rw-checkout-page
	.rw-checkout-panel--free-order #payment {
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	padding: 0 !important;
}

body.rw-free-order.rw-checkout-page
	.rw-checkout-panel--free-order #payment .woocommerce-privacy-policy-text {
	border: 0 !important;
	background: #fff !important;
}

/* Reassert the separators that are part of the ReactWoo design after removing
 * legacy table borders. */
body.rw-checkout-page .rw-checkout-layout__summary
	.woocommerce-checkout-review-order-table
	:where(th, td) {
	border: 0 !important;
	border-bottom: 1px solid #eef0f4 !important;
}

body.rw-checkout-page .rw-checkout-layout__summary
	.woocommerce-checkout-review-order-table
	:where(.order-total th, .order-total td, tr:last-child th, tr:last-child td) {
	border-bottom: 0 !important;
}

@media (max-width: 980px) {
	body.rw-checkout-page .rw-checkout-panel
		:where(
			.woocommerce-billing-fields__field-wrapper,
			.woocommerce-shipping-fields__field-wrapper
		) {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.rw-checkout-page .rw-checkout-panel
		:where(
			#billing_first_name_field,
			#billing_last_name_field,
			#shipping_first_name_field,
			#shipping_last_name_field
		) {
		grid-column: 1 / -1 !important;
	}
}

/* -------------------------------------------------------------------------
 * ReactWoo v4 checkout alignment and sticky-sidebar fix
 * ---------------------------------------------------------------------- */

/* WooCommerce's legacy clearfix pseudo-elements become real grid items when
 * #customer_details is converted to grid. The empty ::before row plus the grid
 * gap was the reason Billing details sat below Your order. */
body.rw-checkout-page #customer_details::before,
body.rw-checkout-page #customer_details::after {
	content: none !important;
	display: none !important;
}

body.rw-checkout-page #customer_details,
body.rw-checkout-page .rw-checkout-layout__main,
body.rw-checkout-page .rw-checkout-layout__sidebar,
body.rw-checkout-page .rw-checkout-layout__summary {
	margin-top: 0 !important;
	padding-top: 0;
}

body.rw-checkout-page .rw-checkout-layout {
	align-items: start !important;
}

body.rw-checkout-page .rw-checkout-layout__main {
	align-self: start !important;
}

/* The sidebar is the full-height grid item. The order card sticks inside it.
 * This is more reliable than making the direct grid item sticky. */
body.rw-checkout-page .rw-checkout-layout__sidebar {
	position: relative !important;
	align-self: stretch !important;
	min-width: 0 !important;
	height: auto !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

body.rw-checkout-page .rw-checkout-layout__summary {
	position: sticky !important;
	top: 24px !important;
	left: auto;
	width: 100% !important;
	margin: 0 !important;
	z-index: 5;
}

body.admin-bar.rw-checkout-page .rw-checkout-layout__summary {
	top: 56px !important;
}

/* Elementor can place the shortcode inside several overflow-clipping wrappers.
 * Any one of those wrappers prevents native position:sticky. */
@media (min-width: 981px) {
	body.rw-checkout-page
		:where(
			.elementor,
			.elementor-section,
			.elementor-container,
			.elementor-column,
			.elementor-widget-wrap,
			.elementor-widget-container,
			.elementor-location-single,
			.e-con,
			.e-con-inner,
			main,
			.site-main,
			.site-content,
			.content-area,
			.woocommerce,
			.rw-checkout-form,
			.rw-checkout-layout
		) {
		overflow: visible !important;
	}
}

/* The JS fallback adds one of these states only when scrolling on desktop.
 * It protects the sticky behaviour from theme transforms/containment that
 * cannot safely be removed globally. */
body.rw-checkout-page .rw-checkout-layout__summary.rw-summary-is-fixed {
	position: fixed !important;
	margin: 0 !important;
}

body.rw-checkout-page .rw-checkout-layout__summary.rw-summary-is-bottomed {
	position: absolute !important;
	top: auto !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
}

@media (max-width: 980px) {
	body.rw-checkout-page .rw-checkout-layout__sidebar {
		align-self: auto !important;
	}

	body.rw-checkout-page .rw-checkout-layout__summary,
	body.rw-checkout-page .rw-checkout-layout__summary.rw-summary-is-fixed,
	body.rw-checkout-page .rw-checkout-layout__summary.rw-summary-is-bottomed {
		position: static !important;
		top: auto !important;
		left: auto !important;
		bottom: auto !important;
		width: 100% !important;
	}
}

/* -------------------------------------------------------------------------
 * ReactWoo v5 final checkout polish
 * Order-summary heading spacing and final CTA styling.
 * ---------------------------------------------------------------------- */

body.rw-checkout-page .rw-checkout-layout__summary {
	padding-top: 18px !important;
}

body.rw-checkout-page .rw-checkout-layout__summary > #order_review_heading,
body.rw-checkout-page .rw-checkout-layout__summary > h2 {
	margin: 0 0 14px !important;
	padding: 0 0 15px !important;
	border-bottom: 1px solid #eef0f4 !important;
	font-family: Montserrat, Inter, sans-serif !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	color: #11121a !important;
}

/* Parent themes and WooCommerce commonly apply a later .button.alt rule.
 * This selector deliberately wins without depending on stylesheet order. */
body.rw-checkout-page
	.rw-checkout-panel--payment
	#payment
	#place_order.button,
body.rw-checkout-page
	.rw-checkout-panel--payment
	#payment
	#place_order.button.alt {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 54px !important;
	margin: 14px 0 0 !important;
	padding: 15px 20px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background-color: #7d4dff !important;
	background-image: linear-gradient(
		90deg,
		#148cff 0%,
		#7d4dff 55%,
		#d70dff 100%
	) !important;
	background-size: 100% 100% !important;
	color: #fff !important;
	font-family: Inter, sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	box-shadow: 0 10px 24px rgba(125, 77, 255, 0.2) !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	cursor: pointer;
}

body.rw-checkout-page
	.rw-checkout-panel--payment
	#payment
	#place_order.button:hover,
body.rw-checkout-page
	.rw-checkout-panel--payment
	#payment
	#place_order.button.alt:hover {
	background-image: linear-gradient(
		90deg,
		#0d83f5 0%,
		#7040f2 55%,
		#c70bea 100%
	) !important;
	color: #fff !important;
	transform: translateY(-1px);
	box-shadow: 0 14px 30px rgba(125, 77, 255, 0.3) !important;
}

body.rw-checkout-page
	.rw-checkout-panel--payment
	#payment
	#place_order.button:focus-visible {
	outline: 3px solid rgba(125, 77, 255, 0.35) !important;
	outline-offset: 3px !important;
}

body.rw-checkout-page
	.rw-checkout-panel--payment
	#payment
	#place_order.button:disabled,
body.rw-checkout-page
	.rw-checkout-panel--payment
	#payment
	#place_order.button.disabled {
	opacity: 0.58 !important;
	transform: none !important;
	box-shadow: none !important;
	cursor: not-allowed !important;
}

/* -------------------------------------------------------------------------
 * ReactWoo v6 cart layout and sticky-summary fix
 * ---------------------------------------------------------------------- */

/* Use the same predictable desktop proportions as checkout. */
body.rw-cart-page .rw-cart-layout {
	grid-template-columns: minmax(0, 792px) minmax(320px, 376px) !important;
	justify-content: space-between !important;
	align-items: start !important;
	width: 100% !important;
	max-width: none !important;
}

body.rw-cart-page .rw-cart-layout__main {
	align-self: start !important;
	min-width: 0 !important;
	width: 100% !important;
}

/* The sidebar is the full-height grid item; the totals card sticks inside it. */
body.rw-cart-page .rw-cart-layout__sidebar {
	position: relative !important;
	align-self: stretch !important;
	min-width: 0 !important;
	width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

body.rw-cart-page .rw-cart-layout__summary {
	position: sticky !important;
	top: 24px !important;
	left: auto;
	align-self: start !important;
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	z-index: 5;
}

body.admin-bar.rw-cart-page .rw-cart-layout__summary {
	top: 56px !important;
}

/* WooCommerce and several themes set .cart_totals to 48% and float it right.
 * That was the direct cause of the very narrow order-summary card. */
body.rw-cart-page .rw-cart-layout__summary
	:where(.cart-collaterals, .cart_totals) {
	box-sizing: border-box !important;
	float: none !important;
	clear: both !important;
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
}

body.rw-cart-page .rw-cart-layout__summary .cart_totals {
	padding: 26px !important;
}

body.rw-cart-page .rw-cart-layout__summary .cart_totals > h2 {
	margin: 0 0 14px !important;
	padding: 0 0 15px !important;
	border-bottom: 1px solid #eef0f4 !important;
	font-family: Montserrat, Inter, sans-serif !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	color: #11121a !important;
	white-space: nowrap;
}

body.rw-cart-page .rw-cart-layout__summary
	:where(table, tbody, tfoot, tr, th, td) {
	box-sizing: border-box !important;
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.rw-cart-page .rw-cart-layout__summary table {
	display: table !important;
	width: 100% !important;
	border: 0 !important;
	border-collapse: collapse !important;
}

body.rw-cart-page .rw-cart-layout__summary table tr {
	display: table-row !important;
}

body.rw-cart-page .rw-cart-layout__summary table th,
body.rw-cart-page .rw-cart-layout__summary table td {
	display: table-cell !important;
	border: 0 !important;
	border-bottom: 1px solid #eef0f4 !important;
	padding: 13px 0 !important;
	vertical-align: middle !important;
}

body.rw-cart-page .rw-cart-layout__summary table th {
	width: auto !important;
	text-align: left !important;
}

body.rw-cart-page .rw-cart-layout__summary table td {
	width: auto !important;
	text-align: right !important;
}

body.rw-cart-page .rw-cart-layout__summary table .order-total
	:where(th, td),
body.rw-cart-page .rw-cart-layout__summary table tr:last-child
	:where(th, td) {
	border-bottom: 0 !important;
}

/* Cart-product table: neutralise parent-theme table styling while preserving
 * the deliberate ReactWoo product-card grid. */
body.rw-cart-page .rw-cart-card {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: none !important;
}

body.rw-cart-page .rw-cart-card
	:where(
		table,
		tbody,
		tr,
		td,
		.product-name,
		.product-price,
		.product-quantity,
		.product-subtotal,
		.product-thumbnail,
		.product-remove
	) {
	box-sizing: border-box !important;
	float: none !important;
	max-width: none !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.rw-cart-page .rw-cart-card table,
body.rw-cart-page .rw-cart-card tbody {
	display: block !important;
	width: 100% !important;
	border: 0 !important;
	margin: 0 !important;
}

body.rw-cart-page .rw-cart-card tr.cart_item {
	display: grid !important;
	grid-template-columns: 104px minmax(0, 1fr) 104px 120px !important;
	grid-template-areas:
		"image name price quantity"
		"image name subtotal quantity" !important;
	column-gap: 18px !important;
	align-items: center !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 24px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid #e6e8ee !important;
}

body.rw-cart-page .rw-cart-card tr.cart_item > td {
	display: block !important;
	width: auto !important;
	min-width: 0 !important;
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.rw-cart-page .rw-cart-card .product-thumbnail {
	grid-area: image !important;
}

body.rw-cart-page .rw-cart-card .product-name {
	grid-area: name !important;
}

body.rw-cart-page .rw-cart-card .product-price {
	grid-area: price !important;
}

body.rw-cart-page .rw-cart-card .product-quantity {
	grid-area: quantity !important;
}

body.rw-cart-page .rw-cart-card .product-subtotal {
	grid-area: subtotal !important;
}

/* Coupon and update controls inherit tiny WooCommerce widths unless every
 * structural wrapper is explicitly reset. */
body.rw-cart-page .rw-cart-actions-row,
body.rw-cart-page .rw-cart-actions-row > td.actions {
	width: 100% !important;
	max-width: none !important;
}

body.rw-cart-page .rw-cart-actions-row > td.actions {
	float: none !important;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	gap: 12px !important;
	align-items: stretch !important;
	padding: 20px 0 0 !important;
	background: transparent !important;
}

body.rw-cart-page .rw-cart-actions-row .coupon {
	float: none !important;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	gap: 10px !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.rw-cart-page .rw-cart-actions-row
	:where(#coupon_code, .input-text) {
	box-sizing: border-box !important;
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
}

body.rw-cart-page .rw-cart-actions-row
	:where(.coupon .button, .rw-update-cart) {
	float: none !important;
	width: auto !important;
	min-width: 142px !important;
	margin: 0 !important;
	white-space: nowrap !important;
}

/* Main cart CTA: keep it on one line and match the checkout gradient. */
body.rw-cart-page .rw-cart-layout__summary
	.wc-proceed-to-checkout {
	display: block !important;
	width: 100% !important;
	margin: 18px 0 0 !important;
	padding: 0 !important;
}

body.rw-cart-page .rw-cart-layout__summary
	.wc-proceed-to-checkout
	.checkout-button.button,
body.rw-cart-page .rw-cart-layout__summary
	.wc-proceed-to-checkout
	.checkout-button.button.alt {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: 100% !important;
	min-width: 0 !important;
	min-height: 54px !important;
	margin: 0 !important;
	padding: 15px 18px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background-color: #7d4dff !important;
	background-image: linear-gradient(
		90deg,
		#148cff 0%,
		#7d4dff 55%,
		#d70dff 100%
	) !important;
	color: #fff !important;
	font-family: Inter, sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap !important;
	box-shadow: 0 10px 24px rgba(125, 77, 255, 0.2) !important;
}

body.rw-cart-page .rw-cart-layout__summary
	.wc-proceed-to-checkout
	.checkout-button:hover {
	background-image: linear-gradient(
		90deg,
		#0d83f5 0%,
		#7040f2 55%,
		#c70bea 100%
	) !important;
	color: #fff !important;
	transform: translateY(-1px);
	box-shadow: 0 14px 30px rgba(125, 77, 255, 0.3) !important;
}

body.rw-cart-page .rw-reassurance {
	width: 100% !important;
	margin-top: 18px !important;
}

body.rw-cart-page .rw-reassurance li {
	line-height: 1.45 !important;
}

/* Native sticky requires visible overflow throughout the Elementor chain. */
@media (min-width: 981px) {
	body.rw-cart-page
		:where(
			.elementor,
			.elementor-section,
			.elementor-container,
			.elementor-column,
			.elementor-widget-wrap,
			.elementor-widget-container,
			.elementor-location-single,
			.e-con,
			.e-con-inner,
			main,
			.site-main,
			.site-content,
			.content-area,
			.woocommerce,
			.rw-cart-layout
		) {
		overflow: visible !important;
	}

	body.rw-cart-page .rw-cart-layout__summary.rw-summary-is-fixed {
		position: fixed !important;
		margin: 0 !important;
	}

	body.rw-cart-page .rw-cart-layout__summary.rw-summary-is-bottomed {
		position: absolute !important;
		top: auto !important;
		right: 0 !important;
		bottom: 0 !important;
		left: auto !important;
		width: 100% !important;
	}
}

@media (max-width: 980px) {
	body.rw-cart-page .rw-cart-layout {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.rw-cart-page .rw-cart-layout__sidebar {
		align-self: auto !important;
	}

	body.rw-cart-page .rw-cart-layout__summary,
	body.rw-cart-page .rw-cart-layout__summary.rw-summary-is-fixed,
	body.rw-cart-page .rw-cart-layout__summary.rw-summary-is-bottomed {
		position: static !important;
		top: auto !important;
		right: auto !important;
		bottom: auto !important;
		left: auto !important;
		width: 100% !important;
	}

	body.rw-cart-page .rw-cart-card tr.cart_item {
		grid-template-columns: 100px minmax(0, 1fr) 120px !important;
		grid-template-areas:
			"image name price"
			"image name quantity"
			"image name subtotal" !important;
	}
}

@media (max-width: 640px) {
	body.rw-cart-page .rw-cart-card tr.cart_item {
		grid-template-columns: 76px minmax(0, 1fr) !important;
		grid-template-areas:
			"image name"
			"price quantity"
			"subtotal subtotal" !important;
		gap: 16px 14px !important;
	}

	body.rw-cart-page .rw-cart-actions-row > td.actions,
	body.rw-cart-page .rw-cart-actions-row .coupon {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.rw-cart-page .rw-cart-actions-row
		:where(.coupon .button, .rw-update-cart) {
		width: 100% !important;
		min-width: 0 !important;
	}

	body.rw-cart-page .rw-cart-layout__summary
		.wc-proceed-to-checkout
		.checkout-button {
		white-space: normal !important;
	}
}

/* -------------------------------------------------------------------------
 * ReactWoo v7 quantity-control icon fix
 * Draw the plus/minus symbols in CSS so theme button text and active-state
 * rules cannot make either control disappear.
 * ---------------------------------------------------------------------- */

body.rw-cart-page .rw-cart-card .quantity .rw-qty-button {
	position: relative !important;
	display: grid !important;
	place-items: center !important;
	flex: 0 0 36px !important;
	width: 36px !important;
	min-width: 36px !important;
	max-width: 36px !important;
	height: 40px !important;
	min-height: 40px !important;
	max-height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	background: #fff !important;
	background-image: none !important;
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: 0 !important;
	opacity: 1 !important;
	visibility: visible !important;
	overflow: visible !important;
	box-shadow: none !important;
	transform: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	cursor: pointer !important;
}

body.rw-cart-page .rw-cart-card .quantity .rw-qty-button::before,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button::after {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	display: block !important;
	width: 10px !important;
	height: 2px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #11121a !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: translate(-50%, -50%) !important;
	pointer-events: none !important;
}

body.rw-cart-page .rw-cart-card .quantity .rw-qty-minus::after {
	display: none !important;
	content: none !important;
}

body.rw-cart-page .rw-cart-card .quantity .rw-qty-plus::after {
	display: block !important;
	content: "" !important;
	transform: translate(-50%, -50%) rotate(90deg) !important;
}

body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:hover,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:focus,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:focus-visible,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:active {
	background: #f4f0ff !important;
	background-image: none !important;
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
	opacity: 1 !important;
	transform: none !important;
	box-shadow: inset 0 0 0 2px rgba(125, 77, 255, 0.18) !important;
}

body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:hover::before,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:hover::after,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:focus::before,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:focus::after,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:active::before,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:active::after {
	background: #5b35e8 !important;
	opacity: 1 !important;
	visibility: visible !important;
}

body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:focus-visible {
	outline: 2px solid #7d4dff !important;
	outline-offset: -2px !important;
}

/* Keep a disabled control visible so the user understands the lower/upper
 * quantity boundary. Only reduce emphasis; do not remove the symbol. */
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:disabled,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button[aria-disabled="true"] {
	display: grid !important;
	visibility: visible !important;
	opacity: 0.38 !important;
	background: #f7f8fa !important;
	cursor: not-allowed !important;
}

body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:disabled::before,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button:disabled::after,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button[aria-disabled="true"]::before,
body.rw-cart-page .rw-cart-card .quantity .rw-qty-button[aria-disabled="true"]::after {
	background: #11121a !important;
	opacity: 1 !important;
	visibility: visible !important;
}

/* -------------------------------------------------------------------------
 * ReactWoo v8 cart action-button styling
 * Match the Figma secondary-button treatment for Apply coupon and Update cart.
 * ---------------------------------------------------------------------- */

body.rw-cart-page .rw-cart-card
	.rw-cart-actions-row
	:where(
		.coupon button.button,
		.coupon input.button,
		button.rw-update-cart,
		input.rw-update-cart
	) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: auto !important;
	min-width: 142px !important;
	min-height: 46px !important;
	height: 46px !important;
	margin: 0 !important;
	padding: 0 18px !important;
	border: 1px solid #d9dde7 !important;
	border-radius: 9px !important;
	outline: 0 !important;
	background: #fff !important;
	background-color: #fff !important;
	background-image: none !important;
	color: #11121a !important;
	-webkit-text-fill-color: #11121a !important;
	font-family: Inter, sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap !important;
	opacity: 1 !important;
	box-shadow: none !important;
	transform: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	cursor: pointer !important;
	transition:
		border-color 160ms ease,
		background-color 160ms ease,
		color 160ms ease,
		box-shadow 160ms ease,
		transform 160ms ease !important;
}

body.rw-cart-page .rw-cart-card
	.rw-cart-actions-row
	.coupon
	:where(button.button, input.button) {
	min-width: 150px !important;
}

body.rw-cart-page .rw-cart-card
	.rw-cart-actions-row
	:where(button.rw-update-cart, input.rw-update-cart) {
	min-width: 142px !important;
}

/* Enabled hover and active treatment: subtle, secondary and consistent with
 * the Figma control—not another competing primary CTA. */
body.rw-cart-page .rw-cart-card
	.rw-cart-actions-row
	:where(
		.coupon button.button,
		.coupon input.button,
		button.rw-update-cart:not(:disabled),
		input.rw-update-cart:not(:disabled)
	):hover {
	border-color: #9f86ff !important;
	background: #f7f4ff !important;
	background-image: none !important;
	color: #5b35e8 !important;
	-webkit-text-fill-color: #5b35e8 !important;
	box-shadow: 0 5px 14px rgba(91, 53, 232, 0.1) !important;
	transform: translateY(-1px) !important;
}

body.rw-cart-page .rw-cart-card
	.rw-cart-actions-row
	:where(
		.coupon button.button,
		.coupon input.button,
		button.rw-update-cart:not(:disabled),
		input.rw-update-cart:not(:disabled)
	):active {
	border-color: #7d4dff !important;
	background: #eee9ff !important;
	color: #4f2ec8 !important;
	-webkit-text-fill-color: #4f2ec8 !important;
	box-shadow: none !important;
	transform: translateY(0) !important;
}

body.rw-cart-page .rw-cart-card
	.rw-cart-actions-row
	:where(
		.coupon button.button,
		.coupon input.button,
		button.rw-update-cart,
		input.rw-update-cart
	):focus-visible {
	border-color: #7d4dff !important;
	outline: 3px solid rgba(125, 77, 255, 0.22) !important;
	outline-offset: 2px !important;
	box-shadow: none !important;
}

/* WooCommerce disables Update cart until a quantity changes. Keep that state
 * clear without reverting to the parent's large solid-grey button. */
body.rw-cart-page .rw-cart-card
	.rw-cart-actions-row
	:where(
		button.rw-update-cart:disabled,
		input.rw-update-cart:disabled,
		button.rw-update-cart.disabled,
		input.rw-update-cart.disabled,
		button.rw-update-cart[aria-disabled="true"],
		input.rw-update-cart[aria-disabled="true"]
	) {
	border-color: #e1e4ea !important;
	background: #f7f8fa !important;
	background-color: #f7f8fa !important;
	background-image: none !important;
	color: #9a9faa !important;
	-webkit-text-fill-color: #9a9faa !important;
	opacity: 1 !important;
	box-shadow: none !important;
	transform: none !important;
	cursor: not-allowed !important;
}

body.rw-cart-page .rw-cart-card
	.rw-cart-actions-row
	:where(
		button.rw-update-cart:disabled,
		input.rw-update-cart:disabled,
		button.rw-update-cart.disabled,
		input.rw-update-cart.disabled
	):hover {
	border-color: #e1e4ea !important;
	background: #f7f8fa !important;
	color: #9a9faa !important;
	-webkit-text-fill-color: #9a9faa !important;
	box-shadow: none !important;
	transform: none !important;
}

@media (max-width: 640px) {
	body.rw-cart-page .rw-cart-card
		.rw-cart-actions-row
		:where(
			.coupon button.button,
			.coupon input.button,
			button.rw-update-cart,
			input.rw-update-cart
		) {
		width: 100% !important;
		min-width: 0 !important;
	}
}

