/**
 * RinconMarciano — WooCommerce skin.
 *
 * Makes native WooCommerce product loops and single pages match the design
 * (cards like `.rm-card`, serif prices, dark pill add-to-cart). Applies to the
 * shop/category archives, `[products]` shortcode and Elementor Pro Loop Grids
 * that render the default Woo loop markup.
 *
 * Loaded only when WooCommerce is active (see theme/frontend.php).
 *
 * @package RinconMarcianoChild
 */

/* ---------- Product loop (grid of cards) ---------- */
/* Broad match so it applies to Woo archives, [products] shortcode output and
   Elementor Loop Grids, regardless of the columns-N class. auto-fill is the
   fallback; explicit columns-N below pins exact counts when present. */
ul.products,
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	gap: 26px;
	margin: 0;
	padding: 0;
	list-style: none;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
ul.products.columns-1 { grid-template-columns: 1fr; }
ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
ul.products.columns-5 { grid-template-columns: repeat(5, 1fr); }
/* Neutralize WooCommerce's default float widths so the grid controls layout. */
ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; }
ul.products li.product::before,
ul.products::after,
ul.products::before { content: none !important; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	font-family: var(--rm-sans);
	position: relative;
	text-align: left;
}

ul.products li.product a { text-decoration: none; color: inherit; }

ul.products li.product a img,
ul.products li.product img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: var(--rm-radius-card);
	background: var(--rm-card-bg);
	margin: 0 0 14px;
	display: block;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
	font-family: var(--rm-sans);
	font-size: 16px;
	font-weight: 500;
	color: var(--rm-ink);
	padding: 0;
	margin: 0 0 2px;
}

.woocommerce ul.products li.product .price {
	font-family: var(--rm-serif);
	font-size: 22px;
	font-weight: 700;
	color: var(--rm-ink);
}
.woocommerce ul.products li.product .price del { opacity: .5; font-weight: 400; font-size: .8em; margin-right: 6px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

/* Media box: owns the radius and the clipping, so the image can grow inside it
   on hover without escaping the card. See rinconmarciano_loop_thumbnail_or_cover(). */
ul.products li.product .rm-card__media {
	position: relative;
	overflow: hidden;
	border-radius: var(--rm-radius-card);
	background: var(--rm-card-bg);
	margin: 0 0 14px;
}
ul.products li.product .rm-card__media img,
ul.products li.product .rm-card__media .rm-cover {
	margin: 0;
	border-radius: 0;
	transition: transform .55s cubic-bezier(.2, .6, .2, 1);
}
ul.products li.product:hover .rm-card__media img,
ul.products li.product:focus-within .rm-card__media img,
ul.products li.product:hover .rm-card__media .rm-cover,
ul.products li.product:focus-within .rm-card__media .rm-cover { transform: scale(1.06); }
@media (prefers-reduced-motion: reduce) {
	ul.products li.product .rm-card__media img,
	ul.products li.product .rm-card__media .rm-cover { transition: none; }
	ul.products li.product:hover .rm-card__media img,
	ul.products li.product:hover .rm-card__media .rm-cover { transform: none; }
}

/* Generated book cover (products without a thumbnail). */
ul.products li.product .rm-cover { margin: 0 0 14px; box-shadow: 0 10px 26px rgba(42, 32, 27, .18); }
ul.products li.product .rm-card__media .rm-cover { box-shadow: none; }

/* Design cards show no add-to-cart button in the grid. */
.woocommerce ul.products li.product .button.add_to_cart_button,
.woocommerce ul.products li.product .added_to_cart { display: none; }

/* Sale badge → terracotta pill (top-left, matching the "Nuevo" tag).
   Scoped through `ul.products li.product` to outrank woocommerce.css, which
   pins the badge to `right: 0` from a longer selector. */
.woocommerce span.onsale,
.woocommerce ul.products li.product span.onsale {
	background: var(--rm-terracotta);
	color: var(--rm-cream);
	font-family: var(--rm-sans);
	font-size: 10px;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 500;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	padding: 5px 11px;
	border-radius: 20px;
	top: 14px;
	left: 14px;
	right: auto;
	margin: 0;
}

@media (max-width: 900px) {
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5 { grid-template-columns: 1fr 1fr; gap: 16px; }
}

/* ---------- [rm_products]: filter chips + pagination ---------- */
.rm-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 28px;
}
.rm-filters .rm-filters__chip,
.woocommerce .rm-filters__chip {
	display: inline-flex;
	align-items: center;
	padding: 11px 26px;
	border-radius: var(--rm-radius-pill);
	border: 1px solid var(--rm-terracotta);
	background: var(--rm-terracotta);
	color: var(--rm-cream);
	font-family: var(--rm-sans);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}
.rm-filters .rm-filters__chip:hover,
.woocommerce .rm-filters__chip:hover { background: var(--rm-ink); border-color: var(--rm-ink); color: var(--rm-cream); }
/* Current filter reads as selected: outlined instead of filled. */
.rm-filters .rm-filters__chip.is-active,
.woocommerce .rm-filters__chip.is-active {
	background: transparent;
	color: var(--rm-terracotta);
}

/* Catalogue search ([rm_product_search]). */
.rm-search {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin: 0 0 22px;
}
.woocommerce .rm-search .rm-search__input,
.rm-search .rm-search__input {
	/* Small basis so the field and its button stay on one line even in the
	   230px Libros sidebar. */
	flex: 1 1 120px;
	min-width: 0;
	height: 44px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--rm-ink-20) !important;
	border-radius: var(--rm-radius-pill) !important;
	background: transparent !important;
	box-shadow: none !important;
	font-family: var(--rm-sans);
	font-size: 14px;
	color: var(--rm-ink);
}
.rm-search .rm-search__input::placeholder { color: var(--rm-ink-50); }
.rm-search .rm-search__input:focus {
	border-color: var(--rm-terracotta) !important;
	outline: none;
}
.rm-search .rm-search__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex: 0 0 auto;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--rm-ink);
	color: var(--rm-cream);
	cursor: pointer;
}
.rm-search .rm-search__btn:hover { background: var(--rm-terracotta); }
.woocommerce .rm-search .rm-search__clear,
.rm-search .rm-search__clear {
	font-family: var(--rm-sans);
	font-size: 13px;
	color: var(--rm-terracotta);
	text-decoration: underline;
}

/* Sidebar category list ([rm_product_categories]) — the vertical counterpart
   to the chips. */
.rm-catnav__list { margin: 0; padding: 0; list-style: none; }
.rm-catnav__item { margin: 0; padding: 0; }
.rm-catnav__item a {
	display: block;
	padding: 7px 0;
	font-family: var(--rm-sans);
	font-size: 15px;
	color: var(--rm-terracotta);
	text-decoration: none;
}
.rm-catnav__item a:hover { color: var(--rm-ink); }
.rm-catnav__item.is-active a { color: var(--rm-ink); font-weight: 500; }
.rm-catnav__count { color: var(--rm-ink-50); font-size: 13px; }

/* Infinite scroll footer ([rm_products scroll="yes"]). */
.rm-products__more {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin: 40px 0 0;
}
.rm-products__more .rm-products__more-btn {
	padding: 14px 32px;
	border: 1px solid var(--rm-ink-20);
	border-radius: var(--rm-radius-pill);
	background: transparent;
	color: var(--rm-ink);
	font-family: var(--rm-sans);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
}
.rm-products__more .rm-products__more-btn:hover {
	background: var(--rm-ink);
	border-color: var(--rm-ink);
	color: var(--rm-cream);
}
.rm-products__more .rm-products__more-btn[disabled] { opacity: .5; cursor: default; }
.rm-products__status {
	margin: 0;
	font-family: var(--rm-sans);
	font-size: 13px;
	color: var(--rm-ink-50);
}

.rm-products__empty {
	font-family: var(--rm-sans);
	color: var(--rm-ink-66);
	margin: 8px 0 0;
}

.rm-products__pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 34px 0 0;
}
.woocommerce .rm-products__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--rm-ink-20);
	border-radius: var(--rm-radius-pill);
	font-family: var(--rm-sans);
	font-size: 14px;
	color: var(--rm-ink);
	text-decoration: none;
}
.woocommerce .rm-products__pagination .page-numbers:hover { border-color: var(--rm-terracotta); color: var(--rm-terracotta); }
.woocommerce .rm-products__pagination .page-numbers.current {
	background: var(--rm-ink);
	border-color: var(--rm-ink);
	color: var(--rm-cream);
}
.woocommerce .rm-products__pagination .page-numbers.dots { border-color: transparent; }

/* ---------- Single product ---------- */
.woocommerce div.product .product_title {
	font-family: var(--rm-serif);
	font-weight: 600;
	line-height: 1.0;
	color: var(--rm-ink);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--rm-serif);
	font-weight: 700;
	color: var(--rm-ink);
}
.woocommerce div.product p.price del { opacity: .5; font-weight: 400; }
.woocommerce div.product p.price ins { text-decoration: none; }

.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button {
	background: var(--rm-ink);
	color: var(--rm-cream);
	font-family: var(--rm-sans);
	font-weight: 500;
	border-radius: var(--rm-radius-pill);
	padding: 15px 28px;
	border: 0;
	text-transform: none;
	letter-spacing: 0;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce div.product .single_add_to_cart_button:hover { opacity: .92; }

.woocommerce div.product div.images img { border-radius: 24px; }

/* Add-to-cart row: stepper and button on one line, aligned. */
.woocommerce div.product form.cart { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.woocommerce div.product form.cart .quantity { margin: 0; }

/* Elementor's product meta prints label and value as inline spans with no
   separation, so it read "SKU BOX-ZODCategory Regalo". */
.woocommerce div.product .product_meta,
.elementor-widget-woocommerce-product-meta .detail-container {
	font-family: var(--rm-sans);
	font-size: 14px;
	color: var(--rm-ink-66);
}
.elementor-widget-woocommerce-product-meta .detail-container {
	display: block;
	margin: 0 0 4px;
}
.elementor-widget-woocommerce-product-meta .detail-label {
	display: inline-block;
	min-width: 92px;
	color: var(--rm-ink-50);
	font-weight: 400;
}
.woocommerce div.product .product_meta > span { display: block; margin: 0 0 4px; }

/* Product meta / attributes table → design "ficha" look. */
.woocommerce div.product .woocommerce-product-attributes,
.woocommerce div.product .shop_attributes {
	border: 1px solid var(--rm-panel-border);
	border-radius: 18px;
	overflow: hidden;
	background: var(--rm-panel);
}
.woocommerce div.product .woocommerce-product-attributes th,
.woocommerce div.product .shop_attributes th {
	color: var(--rm-terracotta);
	font-family: var(--rm-sans);
	font-weight: 500;
	padding: 12px 20px;
}
/* Woo gives the value cell 6.75px of padding, so it sat against the divider. */
.woocommerce div.product .woocommerce-product-attributes td,
.woocommerce div.product .shop_attributes td {
	padding: 12px 20px;
	font-family: var(--rm-sans);
	color: var(--rm-ink);
}
.woocommerce div.product .woocommerce-product-attributes td p,
.woocommerce div.product .shop_attributes td p { margin: 0; padding: 0; }

/* Rating stars in terracotta */
.woocommerce .star-rating span::before,
.woocommerce div.product .woocommerce-product-rating .star-rating span::before { color: var(--rm-terracotta); }

/* Single: generated cover instead of image */
.rm-cover-single .rm-cover { max-width: 420px; margin: 0 auto; }
.rm-cover-single .rm-cover .t { font-size: 44px; }

/* Line-item cover (cart / mini-cart): thumbnail-sized, title only. */
.rm-cover-mini { width: 84px; max-width: 100%; }
.rm-cover-mini .rm-cover {
	aspect-ratio: 3 / 4;
	justify-content: center;
	border-radius: 12px;
	padding: 10px 8px;
	box-shadow: 0 6px 16px rgba(42, 32, 27, .16);
}
.rm-cover-mini .rm-cover .t { font-size: 13px; }
.rm-cover-mini .rm-cover .mk,
.rm-cover-mini .rm-cover .a { display: none; }

/* Product tabs → clean panel (the "Qué incluye" / ficha area).
   The active-tab selectors have to carry `.active` too: WooCommerce paints
   `li.active` white and forces `li.active a { color: inherit }`, both of which
   outrank a plain `li` rule no matter how late ours loads. */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 18px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--rm-panel-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0 22px 0 0;
	padding: 0;
	font-family: var(--rm-sans);
	font-weight: 500;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--rm-terracotta); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	display: inline-block;
	padding: 10px 2px;
	color: var(--rm-ink);
	font-family: var(--rm-sans);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li:not(.active) a { color: var(--rm-ink-50); }
.woocommerce div.product .woocommerce-tabs ul.tabs li:not(.active) a:hover { color: var(--rm-terracotta); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

/* Panel copy: the tab already names it, so the repeated <h2> is filtered out
   in product/includes/tabs.php. */
.woocommerce div.product .woocommerce-Tabs-panel {
	font-family: var(--rm-sans);
	font-size: 15px;
	line-height: 1.75;
	color: var(--rm-ink-66);
	padding: 6px 0 0;
}
.woocommerce div.product .woocommerce-Tabs-panel h2 { font-family: var(--rm-serif); color: var(--rm-ink); }
.woocommerce div.product .woocommerce-Tabs-panel p { color: var(--rm-ink-66); }

/* Related / upsells heading */
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce section.related > h2 {
	font-family: var(--rm-serif);
	font-weight: 600;
	font-size: 34px;
	color: var(--rm-ink);
	margin-bottom: 24px;
}

/* Single summary spacing */
.woocommerce div.product .summary .price { margin: 6px 0 18px; }
.woocommerce div.product .summary .woocommerce-product-details__short-description { color: var(--rm-ink-66); line-height: 1.7; margin-bottom: 22px; }

/* ---------- Cart & Checkout ---------- */
.wc-block-cart,
.wc-block-checkout,
.woocommerce-cart,
.woocommerce-checkout { font-family: var(--rm-sans); color: var(--rm-ink); }

/* Primary buttons: proceed to checkout / place order (blocks + classic) */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce #payment #place_order {
	background: var(--rm-ink) !important;
	color: var(--rm-cream) !important;
	border: 0 !important;
	border-radius: var(--rm-radius-pill) !important;
	padding: 16px 28px !important;
	text-decoration: none !important;
	font-family: var(--rm-sans) !important;
	font-weight: 600 !important;
	box-shadow: none !important;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #payment #place_order:hover { opacity: .92; color: var(--rm-cream) !important; }

/* Totals value in serif (matches prices) */
.wc-block-components-totals-item__value,
.woocommerce-cart .cart_totals .order-total .amount { font-family: var(--rm-serif); font-weight: 700; color: var(--rm-ink); }

/* Links + secondary (coupon "apply") in terracotta, not underlined blue */
.woocommerce-cart a,
.woocommerce-checkout a,
.wc-block-cart a,
.wc-block-checkout a { color: var(--rm-terracotta); }
.wc-block-components-button.is-link { color: var(--rm-terracotta); }

/* Quantity stepper + coupon panel */
.wc-block-components-quantity-selector { border-radius: 30px; }
.wc-block-components-panel { border-color: var(--rm-panel-border); }

/* Section titles (Cart totals) */
.wc-block-cart__totals-title,
.woocommerce-cart .cart_totals h2 {
	font-family: var(--rm-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	font-size: 12px;
	color: var(--rm-terracotta);
}

/* Section headings (Información de contacto / Dirección…) */
.wc-block-checkout__main .wc-block-components-title,
.wc-block-components-checkout-step__title { font-family: var(--rm-serif); font-weight: 600; color: var(--rm-ink); }

/* Form fields → soft rounded, panel border, brand focus.
   Radius uses the site token --rm-radius-card (18px) for every field/panel. */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-select select,
.wc-block-components-select__container,
.wc-block-components-combobox,
.wc-block-components-combobox-control,
.wc-block-components-combobox-control input,
.wc-block-components-country-input,
.wc-block-components-state-input,
.wc-block-components-address-form select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce-checkout #customer_details input,
.woocommerce-checkout #customer_details select,
.woocommerce-checkout #customer_details textarea,
.woocommerce-checkout #customer_details .select2-selection {
	border-radius: var(--rm-radius-field) !important;
	border: 1px solid var(--rm-ink-20) !important;
	background: transparent !important;
	font-family: var(--rm-sans);
	color: var(--rm-ink);
	box-shadow: none !important;
}
/* The combobox wraps an input; avoid a double border/background on the inner one. */
.wc-block-components-combobox-control input,
.wc-block-components-combobox .wc-block-components-text-input,
.wc-block-components-combobox .wc-block-components-text-input input {
	border: 0 !important;
	background: transparent !important;
}
/* Native select arrow area shouldn't paint white. */
.wc-block-components-select select,
.woocommerce form .form-row select { background-color: transparent !important; }
.wc-block-components-text-input.is-active input,
.wc-block-components-text-input input:focus,
.wc-block-components-text-input textarea:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
	border-color: var(--rm-terracotta) !important;
	box-shadow: 0 0 0 1px var(--rm-terracotta) !important;
	outline: none;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus + label { color: var(--rm-terracotta) !important; }

/* Checkboxes / radios in terracotta */
.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"],
.wc-block-components-checkbox__input,
.wc-block-checkout input[type="checkbox"] { accent-color: var(--rm-terracotta); }

/* Extra breathing room above the country selector */
.wc-block-components-address-form .wc-block-components-country-input,
.wc-block-checkout__billing-fields .wc-block-components-country-input,
.wc-block-checkout__shipping-fields .wc-block-components-country-input { margin-top: 10px; }

/* Shipping options / coupon share the same card radius + transparent ground */
.wc-block-components-radio-control__option,
.wc-block-components-shipping-rates-control__package,
.wc-block-components-panel { border-radius: var(--rm-radius-field) !important; }

/* Order summary → design panel */
.wc-block-checkout__sidebar .wc-block-components-panel,
.wc-block-checkout__sidebar > .wc-block-components-totals-wrapper,
.wc-block-checkout__sidebar {
	border-radius: var(--rm-radius-card);
	border-color: var(--rm-panel-border);
}
.wc-block-components-order-summary,
.wc-block-checkout__sidebar .wc-block-components-totals-item { font-family: var(--rm-sans); }

/* "Total" line in serif (cart + checkout) */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 1.4em; }

/* ---------- Classic checkout (shortcode) ---------- */
/* Two-column layout (form left, sticky order review right) via the theme's
   form-checkout.php override. */
.rm-checkout__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	align-items: start;
}
.rm-checkout__aside { position: sticky; top: 24px; }
.rm-checkout #customer_details { display: block; }
.rm-checkout .woocommerce-shipping-fields { margin-top: 6px; }
@media (max-width: 900px) {
	.rm-checkout__grid { grid-template-columns: 1fr; gap: 28px; }
	.rm-checkout__aside { position: static; }
}

/* Tighter fields (kill the default <p> top margin) */
.woocommerce-checkout form.checkout .form-row { margin: 0 0 8px !important; }
.woocommerce-checkout form.checkout .form-row label { margin: 0 0 3px; display: inline-block; font-size: 13px; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { margin-top: 4px; }
.woocommerce-checkout #customer_details input.input-text,
.woocommerce-checkout #customer_details textarea {
	padding: 9px 14px;
	box-shadow: none !important;
}
.woocommerce-checkout #customer_details input.input-text:focus,
.woocommerce-checkout #customer_details textarea:focus { box-shadow: 0 0 0 1px var(--rm-terracotta) !important; }
.woocommerce form .form-row label { font-family: var(--rm-sans); color: var(--rm-ink); font-size: 13px; }
.woocommerce form .form-row .required,
.woocommerce abbr.required { color: var(--rm-terracotta); border: 0; text-decoration: none; }
.woocommerce-checkout ::placeholder { color: var(--rm-ink-50); }

/* Single-country store: Woo renders País / Región as a one-option select that
   always posts the same value, so the row is decoration. Hidden for billing
   and shipping alike. Keyed off `--single` (which Woo only emits when exactly
   one country is allowed) rather than the field ids, so enabling a second
   country brings the field back on its own. Browsers without `:has()` keep
   showing it, which is the safe direction.
   `!important` because Woo's address-i18n script stamps an inline
   `display: block` on every locale field it decides to show. */
.woocommerce-checkout .form-row:has(select.country_to_state--single) { display: none !important; }

/* Section headings (Detalles de facturación / Enviar a dirección diferente) */
.woocommerce-checkout form.checkout h3,
.woocommerce-checkout #order_review_heading {
	font-family: var(--rm-serif);
	font-weight: 600;
	color: var(--rm-ink);
	font-size: 26px;
	line-height: 1.2;
	margin-bottom: 18px;
}

/* select2 dropdowns (País / Provincia) → match the fields */
.woocommerce .select2-container--default .select2-selection--single {
	border: 1px solid var(--rm-ink-20);
	border-radius: var(--rm-radius-field);
	background: transparent;
	height: 44px;
	display: flex;
	align-items: center;
	padding: 0 12px;
	font-family: var(--rm-sans);
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--rm-ink); line-height: normal; padding: 0; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { top: 13px; right: 10px; }
.woocommerce .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--rm-terracotta); }
.woocommerce .select2-dropdown { border-color: var(--rm-panel-border); }
.woocommerce .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--rm-terracotta); }

/* Notices / coupon bar → brand (not the default blue) */
.woocommerce .woocommerce-info,
.woocommerce-page .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	background: #F1E7D6;
	border-top-color: var(--rm-terracotta);
	color: var(--rm-ink);
	border-radius: var(--rm-radius-field);
}
.woocommerce .woocommerce-info::before { color: var(--rm-terracotta); }
.woocommerce .woocommerce-info a { color: var(--rm-terracotta); }
/* Coupon toggle bar: flat cream panel, no thick accent line. Woo reserves
   3.5em on the left for a font icon; without that padding the icon lands on
   top of the text, so drop the icon instead. */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	background: transparent;
	border: 1px solid var(--rm-panel-border);
	border-top-color: var(--rm-panel-border);
	padding: 14px 18px;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
/* Coupon form (revealed) */
.woocommerce form.checkout_coupon {
	border: 1px solid var(--rm-panel-border);
	border-radius: var(--rm-radius-field);
	background: transparent;
	padding: 18px 20px;
	margin: 0 0 18px;
}
.woocommerce form.checkout_coupon .form-row { margin: 0 !important; }
.woocommerce form.checkout_coupon .button {
	background: var(--rm-ink) !important;
	color: var(--rm-cream) !important;
	border: 0 !important;
	border-radius: var(--rm-radius-pill) !important;
	padding: 12px 24px !important;
	font-family: var(--rm-sans);
	font-weight: 500;
}
.woocommerce form.checkout_coupon .input-text { border-radius: var(--rm-radius-field) !important; }

/* Order review table → panel look (no stark white cells) */
.woocommerce-checkout .shop_table {
	border: 1px solid var(--rm-panel-border) !important;
	border-radius: var(--rm-radius-field);
	border-collapse: separate !important;
	overflow: hidden;
	background: transparent;
}
.woocommerce-checkout .shop_table th,
.woocommerce-checkout .shop_table td,
.woocommerce-checkout .shop_table tbody td,
.woocommerce-checkout .shop_table tfoot th,
.woocommerce-checkout .shop_table tfoot td { background: transparent !important; }
/* One typeface, few weights: sans everywhere, serif only for the final Total. */
.woocommerce-checkout .shop_table,
.woocommerce-checkout .shop_table th,
.woocommerce-checkout .shop_table td {
	font-family: var(--rm-sans);
	font-weight: 400;
	color: var(--rm-ink);
	font-size: 14px;
}
.woocommerce-checkout .shop_table thead th { font-weight: 600; }
.woocommerce-checkout .shop_table td .amount,
.woocommerce-checkout .shop_table th .amount { font-weight: 400; }
.woocommerce-checkout .shop_table td,
.woocommerce-checkout .shop_table th { border-top: 1px solid var(--rm-panel-border); padding: 12px 16px; }
.woocommerce-checkout .shop_table thead th { border-top: 0; }
.woocommerce-checkout .shop_table tfoot .order-total th,
.woocommerce-checkout .shop_table tfoot .order-total td,
.woocommerce-checkout .shop_table tfoot .order-total td .amount {
	font-family: var(--rm-serif);
	font-weight: 700;
	font-size: 20px;
	color: var(--rm-ink);
}

/* Order review → block-checkout style summary card (see the theme's
   checkout/review-order.php). The table keeps its class because checkout.js
   replaces that node on every update, so the card is drawn on the table
   itself and the rows are re-laid out as flex. */
.woocommerce-checkout table.shop_table.rm-review {
	display: block;
	border: 1px solid var(--rm-panel-border) !important;
	border-radius: var(--rm-radius-card);
	background: transparent;
	padding: 6px 22px 16px;
	overflow: visible;
}
.woocommerce-checkout table.shop_table.rm-review thead { display: none; }
.woocommerce-checkout table.shop_table.rm-review tbody,
.woocommerce-checkout table.shop_table.rm-review tfoot { display: block; }
.woocommerce-checkout table.shop_table.rm-review tr {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
	padding: 14px 0;
	border-top: 1px solid var(--rm-panel-border);
}
.woocommerce-checkout table.shop_table.rm-review tbody tr:first-child { border-top: 0; }
.woocommerce-checkout table.shop_table.rm-review th,
.woocommerce-checkout table.shop_table.rm-review td {
	display: block;
	border: 0;
	padding: 0;
	width: auto;
	background: transparent !important;
	font-family: var(--rm-sans);
	font-size: 14px;
	font-weight: 400;
	color: var(--rm-ink);
}
.woocommerce-checkout table.shop_table.rm-review th { flex: 0 0 auto; font-weight: 500; }
.woocommerce-checkout table.shop_table.rm-review td { flex: 1; text-align: right; }
.woocommerce-checkout table.shop_table.rm-review td.product-name { text-align: left; }
.woocommerce-checkout table.shop_table.rm-review td.product-total { flex: 0 0 auto; white-space: nowrap; }

/* Line item: thumbnail with a quantity badge, then the title. */
.rm-review-item { display: flex; align-items: flex-start; gap: 14px; }
.rm-review-item__media { position: relative; flex: 0 0 56px; }
.woocommerce-checkout .rm-review-item__media img {
	width: 56px;
	height: 74px;
	object-fit: cover;
	border-radius: 10px;
	background: var(--rm-card-bg);
	display: block;
	margin: 0;
}
.rm-review-item__media .rm-cover-mini { width: 56px; }
.rm-review-item__media .rm-cover-mini .rm-cover { border-radius: 10px; padding: 8px 6px; }
.rm-review-item__media .rm-cover-mini .rm-cover .t { font-size: 11px; }
.woocommerce-checkout .rm-review-item__media .product-quantity {
	position: absolute;
	top: -8px;
	right: -8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	height: 24px;
	padding: 0 7px;
	border-radius: 12px;
	background: var(--rm-ink);
	color: var(--rm-cream);
	font-family: var(--rm-sans);
	font-size: 11px;
	font-weight: 500;
	line-height: 1;
}
.rm-review-item__title {
	display: block;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--rm-ink);
}
.woocommerce .rm-review-item__title a { color: var(--rm-ink); text-decoration: none; }
.woocommerce .rm-review-item__title a:hover { color: var(--rm-terracotta); }
.woocommerce-checkout .rm-review-item .variation,
.woocommerce-checkout .rm-review-item dl.variation {
	margin: 4px 0 0;
	font-size: 12px;
	color: var(--rm-ink-60);
}

/* Totals block reads as one group; the final Total in serif. */
.woocommerce-checkout table.shop_table.rm-review tfoot tr:first-child { border-top: 1px solid var(--rm-panel-border); }
.woocommerce-checkout table.shop_table.rm-review .woocommerce-shipping-totals td { text-align: right; }
.woocommerce-checkout table.shop_table.rm-review ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce-checkout table.shop_table.rm-review ul#shipping_method li { margin: 0; padding: 0; }
.woocommerce-checkout table.shop_table.rm-review tfoot tr.order-total { align-items: baseline; padding-top: 16px; }
.woocommerce-checkout table.shop_table.rm-review tfoot tr.order-total th,
.woocommerce-checkout table.shop_table.rm-review tfoot tr.order-total td,
.woocommerce-checkout table.shop_table.rm-review tfoot tr.order-total td .amount {
	font-family: var(--rm-serif);
	font-weight: 700;
	font-size: 22px;
	color: var(--rm-ink);
}

/* Payment box (was lavender) → panel */
.woocommerce-checkout #payment { background: transparent; }
.woocommerce-checkout #payment ul.payment_methods { border: 0; padding: 0 0 8px; }
.woocommerce-checkout #payment div.payment_box {
	background: transparent;
	border: 1px solid var(--rm-panel-border);
	border-radius: var(--rm-radius-field);
	color: var(--rm-ink-66);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .payment_methods label { font-family: var(--rm-sans) !important; color: var(--rm-ink); font-weight: 500; }
.woocommerce-checkout #payment .place-order { padding-top: 18px; }

/* ---------- Thank you / order received ---------- */
/* Confirmation band: heading, thanks and total together on terracotta. The
   heading is rendered inside it by the theme's thankyou.php, so the theme page
   header is hidden on this endpoint to avoid showing the title twice. */
body.woocommerce-order-received main.site-main > .page-header { display: none; }

.rm-thankyou__hero {
	background: var(--rm-terracotta);
	color: var(--rm-cream);
	border-radius: var(--rm-radius-card);
	padding: 44px 48px 40px;
	margin: 0 0 40px;
}
.rm-thankyou__check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(246, 237, 222, .18);
	color: var(--rm-cream);
	margin-bottom: 18px;
}
.woocommerce .rm-thankyou__title {
	font-family: var(--rm-serif);
	font-weight: 600;
	font-size: clamp(38px, 5vw, 58px);
	line-height: 1.05;
	color: var(--rm-cream);
	margin: 0;
}
.woocommerce .rm-thankyou__hero .woocommerce-thankyou-order-received {
	margin: 10px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	font-family: var(--rm-sans);
	font-size: 17px;
	color: rgba(246, 237, 222, .82);
}
.woocommerce .rm-thankyou__hero .woocommerce-thankyou-order-received::before { display: none; }

.rm-thankyou__amount {
	display: flex;
	align-items: baseline;
	gap: 14px;
	flex-wrap: wrap;
	margin: 28px 0 0 !important;
	padding-top: 26px;
	border-top: 1px solid rgba(246, 237, 222, .22);
}
.rm-thankyou__amount-label {
	font-family: var(--rm-sans);
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(246, 237, 222, .72);
}
.woocommerce .rm-thankyou__amount-value,
.woocommerce .rm-thankyou__amount-value .amount {
	font-family: var(--rm-serif);
	font-weight: 700;
	font-size: clamp(44px, 7vw, 72px);
	line-height: 1;
	color: var(--rm-cream);
}

@media (max-width: 600px) {
	.rm-thankyou__hero { padding: 32px 26px 30px; }
}

/* Order meta: labelled pairs, no dotted strip. */
.woocommerce .rm-thankyou ul.order_details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 2px 28px;
	margin: 0 0 44px;
	padding: 22px 24px;
	list-style: none;
	border: 1px solid var(--rm-panel-border);
	border-radius: var(--rm-radius-card);
}
.woocommerce .rm-thankyou ul.order_details li {
	margin: 0;
	padding: 6px 0;
	border: 0;
	float: none;
	font-family: var(--rm-sans);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--rm-ink-50);
}
.woocommerce .rm-thankyou ul.order_details li::after { display: none; }
/* Woo clears these lists and columns with `::before`/`::after { content:" " }`.
   In a grid container those pseudo-elements become grid items and shift every
   real one along by a cell. */
.woocommerce .rm-thankyou ul.order_details::before,
.woocommerce .rm-thankyou ul.order_details::after { content: none !important; }
.woocommerce .rm-thankyou ul.order_details li strong {
	display: block;
	margin-top: 4px;
	font-size: 16px;
	letter-spacing: 0;
	text-transform: none;
	font-weight: 500;
	color: var(--rm-ink);
}

.rm-thankyou__actions { margin: 36px 0 0; }
.woocommerce .rm-thankyou__actions .button {
	display: inline-block;
	background: var(--rm-ink) !important;
	color: var(--rm-cream) !important;
	border: 0 !important;
	border-radius: var(--rm-radius-pill) !important;
	padding: 15px 30px !important;
	font-family: var(--rm-sans);
	font-weight: 500;
	text-decoration: none !important;
}
.woocommerce .rm-thankyou__actions .button:hover { opacity: .92; }

/* Order details table → the checkout summary card. */
.woocommerce .woocommerce-order-details__title,
.woocommerce .woocommerce-column__title {
	font-family: var(--rm-serif);
	font-weight: 600;
	font-size: 30px;
	color: var(--rm-ink);
	margin: 0 0 18px;
}
.woocommerce table.shop_table.order_details {
	display: block;
	border: 1px solid var(--rm-panel-border) !important;
	border-radius: var(--rm-radius-card);
	border-collapse: collapse !important;
	background: transparent;
	padding: 6px 24px 16px;
	margin: 0 0 44px;
	overflow: visible;
}
.woocommerce table.shop_table.order_details thead { display: none; }
.woocommerce table.shop_table.order_details tbody,
.woocommerce table.shop_table.order_details tfoot { display: block; }
.woocommerce table.shop_table.order_details tr {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
	padding: 14px 0;
	border-top: 1px solid var(--rm-panel-border);
}
.woocommerce table.shop_table.order_details tbody tr:first-child { border-top: 0; }
.woocommerce table.shop_table.order_details th,
.woocommerce table.shop_table.order_details td {
	display: block;
	border: 0;
	padding: 0;
	width: auto;
	background: transparent !important;
	font-family: var(--rm-sans);
	font-size: 14px;
	font-weight: 400;
	color: var(--rm-ink);
}
.woocommerce table.shop_table.order_details th { flex: 0 0 auto; font-weight: 500; }
.woocommerce table.shop_table.order_details td { flex: 1; text-align: right; }
.woocommerce table.shop_table.order_details td.product-name { text-align: left; }
.woocommerce table.shop_table.order_details td.product-total { flex: 0 0 auto; white-space: nowrap; }
/* "Método de pago" is the last tfoot row, so the total is addressed by the key
   class the theme's order-details.php override stamps on each row. */
.woocommerce table.shop_table.order_details tfoot tr.order_total th,
.woocommerce table.shop_table.order_details tfoot tr.order_total td,
.woocommerce table.shop_table.order_details tfoot tr.order_total td .amount {
	font-family: var(--rm-serif);
	font-weight: 700;
	font-size: 22px;
	color: var(--rm-ink);
}

/* Addresses → panel cards. */
.woocommerce .woocommerce-customer-details { margin: 0; }
.woocommerce .woocommerce-customer-details .col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	width: 100%;
}
.woocommerce .woocommerce-customer-details .col2-set::before,
.woocommerce .woocommerce-customer-details .col2-set::after { content: none !important; }
/* woocommerce-layout.css sets col-1 float:left and then, further down, float:right
   for the same selector — so the addresses came out swapped and stacked. */
.woocommerce .woocommerce-customer-details .col2-set .col-1,
.woocommerce .woocommerce-customer-details .col2-set .col-2 { width: auto !important; float: none !important; }
.woocommerce .woocommerce-customer-details address {
	border: 1px solid var(--rm-panel-border);
	border-radius: var(--rm-radius-card);
	padding: 20px 24px;
	font-family: var(--rm-sans);
	font-style: normal;
	font-size: 15px;
	line-height: 1.75;
	color: var(--rm-ink);
	background: transparent;
}
.woocommerce .woocommerce-customer-details--phone,
.woocommerce .woocommerce-customer-details--email { margin: 10px 0 0; color: var(--rm-ink-66); }

@media (max-width: 782px) {
	.woocommerce .woocommerce-customer-details .col2-set { grid-template-columns: 1fr; gap: 24px; }
}

/* ---------- Classic cart (shortcode) ---------- */
/* Two-column layout via the theme's cart/cart.php override: line items left,
   sticky totals card right — the shape of the block cart, in classic markup. */
.rm-cart__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: 48px;
	align-items: start;
}
.rm-cart__aside { position: sticky; top: 24px; }

/* Woo floats the collaterals at 48% of the page; the grid owns layout now. */
.woocommerce .rm-cart__aside .cart-collaterals,
.woocommerce .rm-cart__aside .cart_totals {
	width: 100%;
	float: none;
	text-align: left;
	margin: 0;
}

/* Items: borderless rows separated by hairlines, no boxed table. */
.woocommerce table.shop_table.rm-cart-items {
	border: 0 !important;
	border-radius: 0;
	background: transparent;
	border-collapse: collapse !important;
	width: 100%;
	margin: 0;
}
.woocommerce table.shop_table.rm-cart-items th,
.woocommerce table.shop_table.rm-cart-items td {
	background: transparent !important;
	border: 0;
}
.woocommerce table.shop_table.rm-cart-items thead th {
	font-family: var(--rm-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--rm-ink-50);
	padding: 0 0 12px;
	border-bottom: 1px solid var(--rm-panel-border);
}
.woocommerce table.shop_table.rm-cart-items thead th.product-subtotal { text-align: right; }
.woocommerce table.shop_table.rm-cart-items tbody td {
	padding: 22px 0;
	vertical-align: top;
	border-bottom: 1px solid var(--rm-panel-border);
}

.rm-cart-item { display: flex; align-items: flex-start; gap: 18px; }
.woocommerce .rm-cart-item .product-thumbnail { flex: 0 0 84px; }
.woocommerce .rm-cart-item .product-thumbnail img {
	width: 84px;
	height: 112px;
	object-fit: cover;
	border-radius: 12px;
	background: var(--rm-card-bg);
	display: block;
	margin: 0;
}
.rm-cart-item__body { min-width: 0; }
.rm-cart-item__title {
	font-family: var(--rm-sans);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--rm-ink);
}
.woocommerce .rm-cart-item__title a { color: var(--rm-ink); text-decoration: none; }
.woocommerce .rm-cart-item__title a:hover { color: var(--rm-terracotta); }
.woocommerce .rm-cart-item .product-price {
	font-family: var(--rm-sans);
	font-size: 14px;
	color: var(--rm-ink-60);
	margin-top: 3px;
}
.rm-cart-item__controls { display: flex; align-items: center; gap: 12px; margin-top: 14px; }

/* Quantity stepper (−  n  +). Markup comes from the theme's
   global/quantity-input.php, so this serves the cart and the single product
   alike. Scoped through `.rm-qty` rather than a bare class so the buttons
   outrank the Elementor kit, which paints every <button> as a dark pill. */
.rm-qty {
	display: inline-flex;
	align-items: center;
	height: 44px;
	border: 1px solid var(--rm-ink-20);
	border-radius: var(--rm-radius-pill);
	overflow: hidden;
}
.rm-qty .rm-qty__btn {
	width: 38px;
	min-width: 0;
	align-self: stretch;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-family: var(--rm-sans);
	font-size: 17px;
	line-height: 1;
	color: var(--rm-ink);
	cursor: pointer;
}
.rm-qty .rm-qty__btn:hover { background: transparent; color: var(--rm-terracotta); }
.woocommerce .rm-qty .quantity,
.rm-qty .quantity { margin: 0 !important; float: none; }
.woocommerce .rm-qty input.qty,
.rm-qty input.qty {
	width: 44px;
	height: auto;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	text-align: center;
	font-family: var(--rm-sans);
	font-size: 15px;
	color: var(--rm-ink);
	-moz-appearance: textfield;
}
.rm-qty input.qty::-webkit-outer-spin-button,
.rm-qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* The cart rows run a little tighter than the single product. */
.woocommerce .rm-cart-items .rm-qty { height: 38px; }
.woocommerce .rm-cart-items .rm-qty .rm-qty__btn { width: 34px; font-size: 16px; }
.woocommerce .rm-cart-items .rm-qty input.qty { width: 40px; }

/* Remove (×) → quiet round button, not Woo's red link. */
.woocommerce .rm-cart-items .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
	text-decoration: none;
	color: var(--rm-ink-50) !important;
	background: transparent !important;
}
.woocommerce .rm-cart-items .product-remove a.remove:hover {
	color: var(--rm-terracotta) !important;
	background: var(--rm-ink-08) !important;
}

.woocommerce table.shop_table.rm-cart-items td.product-subtotal {
	padding-left: 18px;
	text-align: right;
	white-space: nowrap;
	font-family: var(--rm-serif);
	font-weight: 700;
	font-size: 20px;
	color: var(--rm-ink);
}

/* Coupon + update row (below the items, outside any box). */
.woocommerce table.shop_table.rm-cart-items td.actions {
	padding: 22px 0 0;
	border-bottom: 0;
	overflow: hidden;
}
.woocommerce table.shop_table.rm-cart-items td.actions .coupon {
	display: inline-flex;
	gap: 10px;
	float: none;
	width: auto;
	padding: 0;
	border: 0;
}
/* Woo sizes the coupon field from an #content-prefixed rule, so !important
   is the only way past it without hard-coding the parent theme's wrapper. */
.woocommerce table.shop_table.rm-cart-items td.actions .coupon .input-text {
	width: 190px !important;
	margin: 0 !important;
	padding: 10px 14px;
	border: 1px solid var(--rm-ink-20) !important;
	border-radius: var(--rm-radius-field) !important;
	background: transparent !important;
	box-shadow: none !important;
	font-family: var(--rm-sans);
	color: var(--rm-ink);
}
.woocommerce table.shop_table.rm-cart-items td.actions .coupon .button {
	background: var(--rm-ink) !important;
	color: var(--rm-cream) !important;
	border: 0 !important;
	border-radius: var(--rm-radius-pill) !important;
	padding: 11px 22px !important;
	font-family: var(--rm-sans);
	font-weight: 500;
	font-size: 14px;
}
.woocommerce table.shop_table.rm-cart-items td.actions .button[name="update_cart"] {
	float: right;
	background: transparent !important;
	color: var(--rm-ink-60) !important;
	border: 1px solid var(--rm-ink-20) !important;
	border-radius: var(--rm-radius-pill) !important;
	padding: 11px 22px !important;
	font-family: var(--rm-sans);
	font-weight: 500;
	font-size: 14px;
}
/* With the stepper script live the cart updates itself; see product/assets/cart.js. */
body.rm-cart-live table.shop_table.rm-cart-items td.actions .button[name="update_cart"] { display: none; }

/* Totals → the same panel card the checkout's order review uses. */
.woocommerce .rm-cart__aside .cart_totals {
	border: 1px solid var(--rm-panel-border);
	border-radius: var(--rm-radius-card);
	background: transparent;
	padding: 22px 24px 24px;
}
.woocommerce .rm-cart__aside .cart_totals h2 { margin: 0 0 6px; }
/* The totals table is re-laid out as flex rows: a table column would size the
   shipping cell from the other rows, leaving the address form ~100px wide in a
   narrow card. As flex rows each line controls its own layout, and the
   shipping row can stack full width. */
.woocommerce .rm-cart__aside .cart_totals table.shop_table,
.woocommerce .rm-cart__aside .cart_totals table.shop_table tbody {
	display: block;
	border: 0 !important;
	border-radius: 0;
	width: 100%;
	margin: 0;
}
.woocommerce .rm-cart__aside .cart_totals table.shop_table tr {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	padding: 13px 0;
	border-top: 1px solid var(--rm-panel-border);
}
.woocommerce .rm-cart__aside .cart_totals table.shop_table tr:first-child { border-top: 0; }
.woocommerce .rm-cart__aside .cart_totals table.shop_table th,
.woocommerce .rm-cart__aside .cart_totals table.shop_table td {
	display: block;
	background: transparent !important;
	border: 0;
	padding: 0;
	width: auto;
	font-family: var(--rm-sans);
	font-size: 14px;
	font-weight: 400;
	color: var(--rm-ink);
}
.woocommerce .rm-cart__aside .cart_totals table.shop_table th { flex: 0 0 auto; font-weight: 500; }
.woocommerce .rm-cart__aside .cart_totals table.shop_table td { flex: 1; text-align: right; }

/* Shipping stacks: rate, destination and the address form get the full card. */
.woocommerce .rm-cart__aside .cart_totals table.shop_table tr.woocommerce-shipping-totals { display: block; }
.woocommerce .rm-cart__aside .cart_totals table.shop_table tr.woocommerce-shipping-totals td {
	text-align: left;
	margin-top: 6px;
}
.woocommerce .rm-cart__aside .cart_totals ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce .rm-cart__aside .cart_totals ul#shipping_method li { margin: 0 0 6px; padding: 0; }
.woocommerce .rm-cart__aside .cart_totals .woocommerce-shipping-destination {
	margin: 6px 0 0;
	font-size: 13px;
	color: var(--rm-ink-60);
}
.woocommerce .rm-cart__aside .cart_totals .shipping-calculator-button { font-size: 13px; }

/* Shipping calculator ("Cambiar dirección") -- same field treatment as the
   checkout, in a column a third of the width. */
.woocommerce .rm-cart__aside .shipping-calculator-form { margin: 12px 0 0; }
.woocommerce .rm-cart__aside .shipping-calculator-form .form-row { margin: 0 0 10px !important; padding: 0; }
.woocommerce .rm-cart__aside .shipping-calculator-form label {
	display: block;
	margin: 0 0 4px;
	font-family: var(--rm-sans);
	font-size: 12px;
	color: var(--rm-ink-60);
}
.woocommerce .rm-cart__aside .shipping-calculator-form .input-text,
.woocommerce .rm-cart__aside .shipping-calculator-form select { padding: 9px 14px; }
.woocommerce .rm-cart__aside .shipping-calculator-form .select2-container { width: 100% !important; }
.woocommerce .rm-cart__aside .shipping-calculator-form p:last-of-type { margin: 14px 0 0; }
.woocommerce .rm-cart__aside .shipping-calculator-form button.button {
	display: block;
	width: 100%;
	background: var(--rm-ink) !important;
	color: var(--rm-cream) !important;
	border: 0 !important;
	border-radius: var(--rm-radius-pill) !important;
	padding: 12px 22px !important;
	font-family: var(--rm-sans);
	font-weight: 500;
	font-size: 14px;
}
.woocommerce .rm-cart__aside .shipping-calculator-form button.button:hover { opacity: .92; }

.woocommerce .rm-cart__aside .cart_totals tr.order-total th,
.woocommerce .rm-cart__aside .cart_totals tr.order-total td,
.woocommerce .rm-cart__aside .cart_totals tr.order-total td .amount {
	font-family: var(--rm-serif);
	font-weight: 700;
	font-size: 22px;
	color: var(--rm-ink);
}
.woocommerce .rm-cart__aside .wc-proceed-to-checkout { margin: 0; padding: 20px 0 0; }
.woocommerce .rm-cart__aside .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	text-align: center;
	font-size: 16px;
}

/* "Carrito actualizado" and friends → brand panel, not Woo's green bar. */
.woocommerce .woocommerce-message,
.woocommerce-page .woocommerce-message {
	background: #F1E7D6;
	border-top-color: var(--rm-terracotta);
	border-radius: var(--rm-radius-field);
	color: var(--rm-ink);
	font-family: var(--rm-sans);
}
.woocommerce .woocommerce-message::before { color: var(--rm-terracotta); }
.woocommerce .woocommerce-message .button {
	background: transparent !important;
	color: var(--rm-terracotta) !important;
	border: 1px solid var(--rm-ink-20) !important;
	border-radius: var(--rm-radius-pill) !important;
	padding: 8px 18px !important;
	font-family: var(--rm-sans);
	font-weight: 500;
	font-size: 13px;
}

/* Cross-sells run full width below the grid (see cart-layout.php). */
.rm-cart__cross-sells { margin-top: 56px; }
.woocommerce .rm-cart__cross-sells .cross-sells { width: 100%; float: none; }
.woocommerce .rm-cart__cross-sells .cross-sells > h2 {
	font-family: var(--rm-serif);
	font-weight: 600;
	font-size: 32px;
	color: var(--rm-ink);
	margin-bottom: 22px;
}

@media (max-width: 900px) {
	.rm-cart__grid { grid-template-columns: 1fr; gap: 30px; }
	.rm-cart__aside { position: static; }
}
/* WooCommerce ships a small-screen sheet that reshapes the classic cart into
   stacked rows. Ours is already responsive, so undo the parts that fight it.
   The `#content`-prefixed variants of these selectors carry an ID, which is why
   `!important` rather than a longer selector. */
@media (max-width: 768px) {
	/* Woo hides the cart thumbnail on mobile; the design keeps it. */
	.woocommerce .rm-cart-item .product-thumbnail { display: block !important; }

	/* ...and re-shows "Actualizar carrito" as a full-width button, even though
	   the stepper updates the cart on its own. */
	body.rm-cart-live .rm-cart-items td.actions .button[name="update_cart"] { display: none !important; }

	/* The totals table is `shop_table_responsive`, so Woo prepends each cell's
	   `data-title`: every line read "Subtotal Subtotal:". The card already shows
	   the label as a real table header. */
	.woocommerce .rm-cart__aside .cart_totals table.shop_table tr td::before { content: none !important; }
	.woocommerce .rm-cart__aside .cart_totals table.shop_table td { text-align: right !important; }
	.woocommerce .rm-cart__aside .cart_totals table.shop_table tr.woocommerce-shipping-totals td { text-align: left !important; }
	.woocommerce .rm-cart__aside .cart_totals table.shop_table tr:nth-child(2n) td { background: transparent !important; }
}

@media (max-width: 560px) {
	.rm-cart-item { gap: 14px; }
	.woocommerce .rm-cart-item .product-thumbnail { flex: 0 0 66px; }
	.woocommerce .rm-cart-item .product-thumbnail img { width: 66px; height: 88px; }
	.woocommerce table.shop_table.rm-cart-items td.product-subtotal { font-size: 17px; }
	.woocommerce table.shop_table.rm-cart-items td.actions .coupon { display: flex; width: 100%; }
	.woocommerce table.shop_table.rm-cart-items td.actions .coupon .input-text { flex: 1; width: auto !important; }
	.woocommerce table.shop_table.rm-cart-items td.actions .button[name="update_cart"] {
		float: none;
		width: 100%;
		margin-top: 12px;
	}
}
