/* shop.css — bag, checkout, account and WooCommerce notices, styled from each
   store's Elementor globals so one file serves every store. A store sets its
   corner radius with --rs-radius (site CSS); everything else is its kit. */

body {
	--rs-ink: var(--e-global-color-primary, #111);
	--rs-accent: var(--e-global-color-accent, var(--rs-ink));
	--rs-line: var(--e-global-color-rs_line, rgba(0, 0, 0, .14));
	--rs-ground: var(--e-global-color-rs_cream, #f6f6f6);
	--rs-muted: var(--e-global-color-rs_muted, #888);
	--rs-on-accent: var(--e-global-color-rs_white, #fff);
	--rs-btn-family: var(--e-global-typography-accent-font-family, inherit);
	--rs-btn-size: var(--e-global-typography-accent-font-size, 13px);
	--rs-btn-weight: var(--e-global-typography-accent-font-weight, 600);
	--rs-btn-ls: var(--e-global-typography-accent-letter-spacing, .04em);
	--rs-btn-tt: var(--e-global-typography-accent-text-transform, none);
	--rs-field-h: 48px;
	--rs-field-bg: #fff;
	--rs-ink-text: #fff;   /* text on an ink-filled (hovered) button */
}

/* --- Fields (checkout, account, cart coupon) ---------------------------------- */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single, .rs-cart .coupon input.input-text, .woocommerce-account input.input-text {
	min-height: var(--rs-field-h); border: 1px solid var(--rs-line) !important; border-radius: var(--rs-radius, 0) !important;
	background: var(--rs-field-bg); padding: 12px 14px; font: inherit; font-size: 15px; color: var(--rs-ink); box-shadow: none !important;
	transition: border-color 150ms ease;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus { border-color: var(--rs-ink) !important; outline: none; }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: calc(var(--rs-field-h) - 26px); padding: 0; }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { height: var(--rs-field-h); }
.woocommerce form .form-row label { font-size: 13px; margin-bottom: 6px; color: var(--rs-ink); }
.woocommerce form .form-row .required { color: var(--rs-accent); text-decoration: none; }

/* --- Buttons ------------------------------------------------------------------ */
.woocommerce a.button, .woocommerce button.button:not(.single_add_to_cart_button), .woocommerce input.button, .woocommerce #respond input#submit,
.rs-cart .checkout-button, .rs-checkout #place_order, .woocommerce-account .woocommerce-Button {
	background: var(--rs-accent) !important; color: var(--rs-on-accent) !important; border: 1px solid var(--rs-accent) !important; border-radius: var(--rs-btn-radius, var(--rs-radius, 0)) !important;
	font-family: var(--rs-btn-family); font-size: var(--rs-btn-size) !important; font-weight: var(--rs-btn-weight); letter-spacing: var(--rs-btn-ls); text-transform: var(--rs-btn-tt);
	padding: 15px 28px !important; line-height: 1.2; text-decoration: none !important; box-shadow: none;
	transition: background-color 200ms ease, color 200ms ease, transform 160ms var(--rs-ease-out, ease-out);
}
.woocommerce a.button:hover, .woocommerce button.button:not(.single_add_to_cart_button):hover { background: var(--rs-ink) !important; border-color: var(--rs-ink) !important; color: var(--rs-ink-text) !important; }
.woocommerce a.button:active, .woocommerce button.button:active { transform: scale(0.97); }
.woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: .45; }
.woocommerce a.button.wc-backward, .rs-cart .coupon .button, .woocommerce-account .woocommerce-orders-table .button {
	background: transparent !important; color: var(--rs-ink) !important; border-color: var(--rs-ink) !important;
}

/* --- Bag ------------------------------------------------------------------------- */
.rs-cart table.shop_table { border: 0; border-collapse: collapse; }
.rs-cart table.shop_table th { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; color: var(--rs-muted); border: 0; border-bottom: 1px solid var(--rs-line); padding: 0 0 14px; background: none; }
.rs-cart table.shop_table td { border: 0; border-bottom: 1px solid var(--rs-line); padding: 22px 12px 22px 0; background: none !important; vertical-align: middle; }
.rs-cart .product-thumbnail img { width: 96px !important; height: auto; background: var(--rs-ground); }
.rs-cart .product-name a { color: var(--rs-ink); text-decoration: none; }
.rs-cart a.remove { color: var(--rs-muted) !important; font-size: 20px; width: 28px; height: 28px; line-height: 26px; border-radius: 50%; transition: background-color 150ms ease, color 150ms ease; }
.woocommerce a.remove:hover { background: var(--rs-ground) !important; color: var(--rs-ink) !important; }
.rs-cart .cart_totals, .rs-checkout .e-checkout__order_review, .rs-checkout #order_review { background: var(--rs-ground); padding: 28px !important; border-radius: var(--rs-radius, 0); }
.rs-cart .cart_totals h2, .rs-checkout #order_review_heading { font-size: 20px; margin: 0 0 18px; }
.rs-cart .cart_totals table, .rs-checkout .shop_table { border: 0 !important; }
.rs-cart .cart_totals th, .rs-cart .cart_totals td, .rs-checkout .shop_table th, .rs-checkout .shop_table td { border: 0 !important; border-bottom: 1px solid var(--rs-line) !important; padding: 12px 0 !important; background: none !important; }
.rs-cart .order-total th, .rs-cart .order-total td, .rs-checkout .order-total th, .rs-checkout .order-total td { font-size: 17px; border-bottom: 0 !important; }
.rs-cart .wc-proceed-to-checkout .checkout-button { display: block; width: 100%; text-align: center; margin-top: 8px; }
/* Empty bag: a quiet message and one way back. */
.rs-cart .cart-empty, .woocommerce-cart .cart-empty { font-size: 18px; border: 0 !important; background: none !important; padding: 24px 0 8px !important; margin: 0; color: var(--rs-ink); }
.rs-cart .cart-empty::before, .woocommerce-cart .cart-empty::before { display: none !important; }
.woocommerce .return-to-shop { margin-top: 20px; }

/* --- Checkout -------------------------------------------------------------------- */
.rs-checkout h3, .rs-checkout .e-checkout__column h3 { font-size: 18px; margin: 0 0 16px; }
.rs-checkout .woocommerce-checkout-payment, .rs-checkout #payment { background: none !important; border-radius: 0; }
.rs-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--rs-line); padding: 0 0 16px; }
.rs-checkout #payment div.payment_box { background: var(--rs-field-bg); border-radius: var(--rs-radius, 0); }
.rs-checkout #payment div.payment_box::before { display: none; }
.rs-checkout #place_order { width: 100%; margin-top: 12px; }

/* --- Account ------------------------------------------------------------------- */
.rs-account .woocommerce-form-login, .rs-account .woocommerce-form-register, .woocommerce-account .woocommerce-form-login {
	border: 1px solid var(--rs-line) !important; border-radius: var(--rs-radius, 0) !important; padding: 32px !important; max-width: 520px; margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 10px 0; color: var(--rs-ink); text-decoration: none; border-bottom: 1px solid var(--rs-line); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { font-weight: 600; }
.woocommerce form .show-password-input { top: 50%; transform: translateY(-50%); }

/* --- Notices --------------------------------------------------------------------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border: 1px solid var(--rs-line) !important; border-left: 3px solid var(--rs-accent) !important; background: var(--rs-field-bg) !important; color: var(--rs-ink) !important;
	border-radius: var(--rs-radius, 0); padding: 16px 20px 16px 48px !important; font-size: 14px;
}
.woocommerce-error { border-left-color: #b3261e !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--rs-accent) !important; top: 16px !important; }
.woocommerce-message .button { float: right; padding: 8px 16px !important; }

/* --- Search results (inline search on the 404) -------------------------------- */
.rs-search--inline .e-search-input { font-size: 18px !important; padding: 12px 40px 12px 36px !important; }

@media (max-width: 767px) {
	.rs-cart .product-thumbnail img { width: 72px !important; }
	.rs-cart .cart_totals, .rs-checkout #order_review { padding: 20px !important; }
	.woocommerce a.button, .woocommerce button.button { width: 100%; text-align: center; }
}

/* Elementor's cart and checkout widgets box every section; the stores don't. */
.rs-cart .e-cart-section, .rs-checkout .e-checkout__container .e-coupon-box, .rs-checkout .e-checkout__column-start > div, .rs-checkout .e-checkout-secondary-title { border: 0 !important; box-shadow: none !important; }
.rs-cart .e-cart-section { padding: 0 !important; }
.rs-cart .e-cart-totals.e-cart-section, .rs-cart .cart_totals { background: var(--rs-ground) !important; padding: 28px !important; }
.rs-cart .product-name a, .rs-checkout .product-name, .rs-cart td a:not(.remove) { color: var(--rs-ink) !important; text-decoration: none !important; }
.rs-cart .cart_totals h2, .rs-cart .e-cart-totals h2 { font-size: 20px !important; font-weight: 400; }
.rs-cart .coupon { display: flex; gap: 12px; }
.rs-cart .coupon input.input-text { flex: 1; }

/* Elementor's cart / checkout / account widgets are driven by CSS variables: set them from the store. */
.rs-cart, .rs-checkout, .rs-account {
	font-family: var(--e-global-typography-text-font-family, inherit) !important;
	--sections-border-type: none; --sections-background-color: transparent; --sections-padding: 0px;
	--forms-fields-background-color: var(--rs-field-bg); --forms-fields-border-color: var(--rs-line); --forms-fields-border-radius: var(--rs-radius, 0px);
	--forms-fields-normal-color: var(--rs-ink); --forms-labels-color: var(--rs-ink); --forms-fields-focus-border-color: var(--rs-ink);
	--links-normal-color: var(--rs-accent); --links-hover-color: var(--rs-ink);
	--purchase-button-normal-background-color: var(--rs-accent); --purchase-button-hover-background-color: var(--rs-ink); --purchase-button-border-radius: var(--rs-btn-radius, var(--rs-radius, 0px));
	--checkout-button-normal-background-color: var(--rs-accent); --checkout-button-hover-background-color: var(--rs-ink); --checkout-button-border-radius: var(--rs-radius, 0px);
	--sections-title-color: var(--rs-ink); --order-summary-items-color: var(--rs-ink); --totals-color: var(--rs-ink);
	--order-summary-remove-icon-normal-color: var(--rs-ink); --order-summary-remove-icon-hover-color: var(--rs-ink);
}
.rs-cart *, .rs-checkout *, .rs-account * { font-family: inherit; }
.rs-checkout .e-checkout__column-start, .rs-checkout .e-checkout__order_review { gap: 32px; }
.rs-checkout .woocommerce-billing-fields h3, .rs-checkout #order_review_heading { font-family: var(--e-global-typography-secondary-font-family, inherit) !important; font-size: 20px !important; font-weight: 400; }
.rs-checkout .woocommerce-form-coupon-toggle .woocommerce-info { border: 0 !important; padding: 0 !important; background: none !important; }
.rs-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
.rs-cart :is(p, span, td, th, label, input, select, textarea, a, button, strong, bdi, div), .rs-checkout :is(p, span, td, th, label, input, select, textarea, a, button, strong, bdi, div), .rs-account :is(p, span, td, th, label, input, a, button, strong, div, li) { font-family: inherit !important; }
.rs-cart :is(h2, h3), .rs-checkout :is(h2, h3), .rs-account :is(h2, h3) { font-family: var(--e-global-typography-secondary-font-family, inherit) !important; font-weight: 400 !important; letter-spacing: 0; color: var(--rs-ink) !important; }
.rs-account h2 { font-size: 24px !important; margin: 0 0 20px; }
.rs-account :is(input.input-text, input[type=email], input[type=password], input[type=text]) { background: var(--rs-field-bg) !important; }
.rs-checkout :is(input.input-text, textarea, select), .rs-checkout .select2-selection, .rs-cart input.input-text { background-color: var(--rs-field-bg) !important; }

/* Empty bag: the store's own button, not the widget's outline. */
.rs-cart .return-to-shop .button, .rs-cart .return-to-shop a.button {
	background: var(--rs-accent) !important; color: var(--rs-on-accent) !important; border: 1px solid var(--rs-accent) !important; border-radius: var(--rs-btn-radius, var(--rs-radius, 0)) !important;
	font-family: var(--rs-btn-family) !important; font-weight: var(--rs-btn-weight) !important; letter-spacing: var(--rs-btn-ls); text-transform: var(--rs-btn-tt);
}
/* Small account copy follows the store's ink on light and dark grounds. */
.rs-account .woocommerce-form-login__rememberme, .rs-account .woocommerce-form-login__rememberme span { color: var(--rs-ink) !important; opacity: .8; }
.rs-account .show-password-input, .rs-checkout .show-password-input { color: var(--rs-ink) !important; filter: none; opacity: .7; }

/* Totals and table heads in the store ink, not WooCommerce grey. */
.woocommerce table.shop_table :is(th, td), .woocommerce table.shop_table :is(th, td) .woocommerce-Price-amount { color: var(--rs-ink); }
.rs-cart table.shop_table :is(th, td), .rs-checkout table.shop_table :is(th, td), .rs-checkout .shop_table :is(th, td) .amount { color: var(--rs-ink) !important; }
html body .woocommerce a.remove:hover { color: var(--rs-ink) !important; background: var(--rs-ground) !important; }
/* An old price is struck through and slightly faded: the fade on the del alone, never compounded. */
.woocommerce .price del, .price del { opacity: .8 !important; }
.price del * { opacity: 1 !important; }
/* Notices: message and its button side by side, the button never outside the box. */
.woocommerce-message, .woocommerce-info { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; }
.woocommerce-message .button, .woocommerce-info .button { float: none !important; order: 2; margin: 0 !important; }
.woocommerce table.shop_table th { white-space: normal; }
/* Country and state selects: the chosen value centred in its box. */
.woocommerce .select2-container .select2-selection--single { display: flex !important; align-items: center; padding: 0 14px !important; }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 1.4 !important; padding: 0 !important; }

/* Account tabs: Elementor makes every horizontal tab full width and paints them grey;
   the stores draw their own, so tabs size to their label on a clear ground. */
.rs-account.e-my-account-tabs-horizontal { --tab-width: auto; }
.rs-account.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-MyAccount-navigation ul li a,
.rs-account.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-MyAccount-navigation ul li.is-active a { background: transparent; }
.rs-account { --tabs-normal-color: var(--rs-ink); --tabs-hover-color: var(--rs-ink); --tabs-active-color: var(--rs-ink); --tabs-divider-weight: 0px; }
.rs-account { --general-text-color: var(--rs-ink); }
.rs-account .woocommerce-MyAccount-content, .rs-account .woocommerce-MyAccount-content p { color: var(--rs-ink) !important; }
.rs-account .woocommerce-MyAccount-content strong { color: inherit !important; font-weight: 600; }
.rs-account :is(.woocommerce-form-register p, .woocommerce-privacy-policy-text p) { color: var(--rs-ink); }
