/* ============================================================
   Casa Lopez — assets/css/woocommerce.css
   Estilos específicos de WooCommerce. Solo cargado en páginas WC
   (is_woocommerce, is_cart, is_checkout, is_account_page — ver inc/enqueue.php).

   ESTRUCTURA:
     1. Archivo de tienda: .cl-shop-header, .cl-shop-desc-strip, .cl-shop-toolbar,
        .cl-shop-layout (sidebar + main), .cl-shop-cat-nav, .cl-shop-sidebar,
        .cl-sort-pill, .cl-shop-pagination.
     2. Grilla de productos: .cl-prod-grid, .cl-prod-card (compartido con home/featured).
     3. Producto individual (single): .cl-sp-*, .cl-sp-gallery, .cl-sp-info,
        .cl-sp-trust-bar, .cl-sp-usps, .cl-sp-chars, .cl-sp-about, .cl-sp-related.
     4. Carrito: .cl-cart-page, .cl-cart-hero, .cl-ship-bar, .cl-cart-layout,
        .cl-cart-table, .cl-cart-form, .cl-cart-sidebar, .cl-cart-trust.
     5. Checkout: .cl-checkout-hero, .cl-checkout-steps, .cl-checkout-form,
        .cl-checkout-layout, .cl-checkout-fields, .cl-checkout-summary,
        .cl-checkout-section, .cl-checkout-secure.
     6. Thank you: .cl-thankyou-*, .cl-steps-track, .cl-step.
     7. Mi cuenta: .cl-account-header, .cl-account-nav, .cl-account-content,
        .cl-login-grid, .cl-edit-account-form, .cl-orders-*, .cl-address-*.
     8. Gift Cards (PW plugin): overrides de .pimwick-gift-card-*.

   VARIABLES CSS USADAS (de main.css):
     --color-primary, --color-blush, --color-gold, --bg-light, --bg-dark,
     --font-serif, --font-sans, --container-w, --radius-sm, --radius-md,
     --shadow-card

   BREAKPOINTS:
     .cl-prod-grid: 2 col (base) → 3 col (768px) → 4 col (1024px)
     .cl-shop-layout: 1 col (base) → sidebar+main (1024px)
     .cl-cart-layout: 1 col (base) → 2 col (1025px)
     .cl-checkout-layout: 1 col (base) → 2 col (960px)

   CÓMO MODIFICAR:
     - Columnas de la grilla de shop: editar grid-template-columns en .cl-prod-grid--shop.
     - Estilos de botones WC: los botones usan .cl-btn (de main.css); overrides aquí.
     - Si se agrega un template WC nuevo: añadir sus estilos al final con comentario de sección.
   ============================================================ */

/* 1. Archivo de tienda
   ============================================================ */
.woocommerce-page .cl-container,
.woocommerce #cl-wc-content {
	padding-block: 3rem;
}

/* Título de archivo (Tienda, Mujer, Hombre…) — sans-serif, sin italic */
.woocommerce-products-header__title,
.woocommerce-products-header .page-title {
	font-family: var(--font-serif);
	font-style: normal;
	font-weight: 400;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	letter-spacing: 0.04em;
	color: var(--text-primary);
}

/* Breadcrumb */
.woocommerce-breadcrumb {
	font-family: var(--font-sans);
	font-size: 0.75rem;
	color: var(--text-muted);
	letter-spacing: 0.05em;
	margin-bottom: 0.5rem;
}
.woocommerce-breadcrumb a {
	color: var(--text-muted);
	text-decoration: none;
}
.woocommerce-breadcrumb a:hover {
	color: var(--text-primary);
}

/* Grid de productos — mobile-first */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(2, 1fr); /* 2-col on mobile */
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 769px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(3, 1fr);
		gap: 1.5rem;
	}
}

@media (min-width: 1440px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (min-width: 2560px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(5, 1fr);
	}
}

@media (min-width: 3840px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(6, 1fr);
	}
}

/* Card de producto */
.woocommerce ul.products li.product {
	margin: 0;
	display: flex;
	flex-direction: column;
	transition: transform var(--dur-standard) var(--ease-out-warm, cubic-bezier(0.22,1,0.36,1));
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
}

/* El <a> que envuelve imagen + título + precio crece para llenar el card */
.woocommerce ul.products li.product > a:first-child {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 1/1;
	object-fit: cover;
	border-radius: var(--radius-card);
	display: block;
	transition: transform var(--dur-standard) var(--ease-out-warm, cubic-bezier(0.22,1,0.36,1)),
	            opacity 500ms var(--ease-out-warm, cubic-bezier(0.22,1,0.36,1));
}

.woocommerce ul.products li.product a:hover img {
	transform: scale(1.03);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 500;
	margin: auto 0 0.25rem; /* margin-top: auto empuja título+precio al fondo del anchor */
	padding: 0;
}

.woocommerce ul.products li.product .price {
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	color: var(--text-primary);
	min-height: 1.4rem; /* reserva espacio si el precio está vacío */
}

.woocommerce ul.products li.product .price del {
	color: var(--text-muted);
	font-size: 0.8125rem;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
	font-weight: 700;
}

/* Botón agregar al carrito en loop */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
	display: inline-flex;
	align-items: center;
	padding: 0.5rem 1.25rem;
	background-color: var(--color-primary);
	color: var(--text-white);
	font-family: var(--font-sans);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	border-radius: 0;
	transition: background var(--ease), color var(--ease);
	margin-top: 0.75rem;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover {
	background-color: var(--color-blush);
	color: var(--color-primary);
}

/* 2. Producto individual
   ============================================================ */
.woocommerce div.product {
	display: grid;
	grid-template-columns: 1fr; /* stacked on mobile */
	gap: 1.5rem;
	align-items: start;
}

@media (min-width: 769px) {
	.woocommerce div.product {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
	}
}

/* Sticky DESACTIVADO: con la galería scroll-snap y el cartel "foto de referencia"
   adentro, el sticky descolocaba el cartel (a veces arriba, a veces abajo de la
   foto) y antes causó el overlap de thumbnails en mobile. La galería ahora scrollea
   normal con la página. Para reactivar el sticky habría que sacar el cartel del
   contenedor sticky primero. */
.woocommerce div.product .woocommerce-product-gallery {
	position: static;
}

/* ── FlexSlider gallery layout (WC CSS deshabilitado — estilos propios) ─── */

/* Imagen: object-fit contain (aplica siempre, mobile y desktop) */
.cl-sp-gallery .woocommerce-product-gallery__image img,
.woocommerce div.product .woocommerce-product-gallery__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	display: block;
	border-radius: var(--radius-card);
}

/* Thumbnails — estilos base (visible en ambos breakpoints) */
.cl-sp-gallery .flex-control-nav.flex-control-thumbs {
	display: flex !important;
	gap: 0.4375rem;
	list-style: none;
	margin: 0.75rem 0 0;
	padding: 0;
	flex-wrap: wrap;
}
.cl-sp-gallery .flex-control-thumbs li {
	width: 64px;
	height: 64px;
	overflow: hidden;
	cursor: pointer;
	border: 1.5px solid transparent;
	transition: border-color 0.15s ease;
	flex-shrink: 0;
}
.cl-sp-gallery .flex-control-thumbs li.flex-active {
	border-color: var(--color-primary);
}
.cl-sp-gallery .flex-control-thumbs li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: var(--radius-card);
}

/* Slides */
.cl-sp-gallery .woocommerce-product-gallery__image {
	overflow: hidden;
}
/* height:100% hace que img height:100% se resuelva contra un alto definido.
 * Sin esto, <a> tiene height:auto y el img colapsa a 0px cuando la imagen
 * no cargó todavía (post-zoom, post-variación) → slide en blanco. */
.cl-sp-gallery .woocommerce-product-gallery__image a {
	display: block;
	width: 100%;
	height: 100%;
}

/* Ocultar flechas prev/next — la navegación es por thumbnails */
.cl-sp-gallery .flex-direction-nav { display: none; }

/* Desktop ≥1025px: flex row con thumbnails en columna izquierda.
   flex-direction:row se limita a desktop porque FlexSlider calcula
   el ancho del viewport al init — en mobile el cálculo sería incorrecto
   si los thumbs ya ocupan 76px del contenedor al momento del init. */
@media (min-width: 1025px) {
	/* Layout de galería en desktop: ver pages.css (carga después y sobreescribe). */
	.cl-sp-gallery .flex-viewport { overflow: hidden; }
}

.woocommerce div.product .product_title {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 500;
	margin-bottom: 0.5rem;
}

.woocommerce div.product .price {
	font-family: var(--font-serif);
	font-size: 1.375rem;
	margin-bottom: 1.25rem;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: 0.9375rem;
	color: var(--text-muted);
	margin-bottom: 1.5rem;
	line-height: 1.7;
}

/* Form de variaciones */
.woocommerce div.product form.cart .variations {
	width: 100%;
	margin-bottom: 1.25rem;
}

.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
	padding: 0.375rem 0;
	vertical-align: middle;
}

.woocommerce div.product form.cart .variations label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.woocommerce div.product form.cart .variations select {
	padding: 0.6rem 0.75rem;
	border: 1.5px solid var(--border);
	background: var(--bg-white);
	border-radius: 0;
	width: 100%;
	color: var(--text-primary);
	cursor: pointer;
}

/* Botón ATC principal */
.woocommerce div.product form.cart .single_add_to_cart_button {
	width: 100%;
	padding: 1rem 2rem;
	background-color: var(--color-primary);
	color: var(--text-white);
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: var(--ls-caps-md);
	text-transform: uppercase;
	border-radius: 0;
	transition: background var(--ease), color var(--ease);
}

/* Texto OSCURO sobre el dorado, no blanco: blanco sobre #c9a060 da 2,42:1 y el
   botón principal se volvía menos legible al pasar el mouse que en reposo.
   Oscuro da 7,04:1. La misma regla estaba duplicada en pages.css:1503. */
.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:focus-visible {
	background-color: var(--color-gold);
	color: var(--color-primary);
}

/* :active para el dedo. En mobile este botón YA es dorado en reposo, así que
   apoyar el dedo tiene que llevarlo a dorado oscuro — si no, el CTA principal
   de la ficha no da ninguna respuesta al tocarlo, que es como se compra desde
   el teléfono. En escritorio el hover ya lo cubre. */
.woocommerce div.product form.cart .single_add_to_cart_button:active,
.cl-sp-info .cart .button:active {
	background-color: var(--color-gold-hover);
	color: var(--color-primary);
}

/* En táctil no hay hover: el estado dorado no lo veía nadie desde el teléfono,
   que es donde más se compra. Acá va dorado de entrada.
   El selector repite el de arriba porque .cl-sp-info .single_add_to_cart_button
   (dos clases) pierde contra .woocommerce div.product form.cart … y el fondo
   nunca se aplicaba — quedaba negro sobre negro, 1:1. */
@media (max-width: 768px) {
	.woocommerce div.product form.cart .single_add_to_cart_button,
	.cl-sp-info .cart .button {
		background-color: var(--color-gold);
		color: var(--color-primary);
	}
}

/* Qty */
.woocommerce div.product form.cart .quantity {
	margin-right: 0.75rem;
}

.woocommerce div.product form.cart .qty {
	width: 56px;
	padding: 0.6rem;
	border: 1.5px solid var(--border);
	text-align: center;
	border-radius: var(--radius-card);
}

/* El foco del campo de cantidad. Va acá y no en pages.css porque la regla de
   arriba —(0,4,2) de especificidad— le ganaba a la que estaba allá, que era
   (0,4,0), y por eso el campo nunca mostraba foco por más que la regla
   existiera desde siempre. El diagnóstico de v2.6.4 decía que "no tenía ninguna
   regla :focus": la tenía, sólo que perdía.
   Señala oscureciendo su propio filete, como el resto de los campos del sitio:
   12.09:1 y sin dibujar ninguna caja. */
.woocommerce div.product form.cart .qty:focus {
	border-color: var(--color-primary);
}

/* 3. Carrito
   ============================================================ */
.woocommerce-cart table.cart {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce-cart table.cart th {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--text-muted);
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--border);
}

.woocommerce-cart table.cart td {
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--border);
	vertical-align: middle;
}

.woocommerce-cart table.cart td.product-thumbnail img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: var(--radius-card);
}

.woocommerce-cart table.cart td.product-name a {
	font-weight: 700;
}

.woocommerce-cart .cart-collaterals {
	background-color: var(--bg-light);
	padding: 1.5rem;
	border-radius: var(--radius-card);
}

/* 4. Checkout
   ============================================================ */
.woocommerce-checkout #payment {
	background: var(--bg-light);
	border-radius: var(--radius-card);
}

.woocommerce-checkout .wc_payment_method label {
	font-weight: 600;
}

/* 5. Mi Cuenta
   ============================================================
   Todos los estilos de Mi Cuenta están en la sección 11 de este
   archivo. El bloque antiguo que vivía en pages.css fue eliminado
   en v1.4.14 — quedaba obsoleto y su .cl-account-nav oscuro
   sobreescribía la versión correcta al cargarse después.
*/

/* 6. Notices & Alerts — WooCommerce + CF7
   ============================================================ */

.woocommerce-notices-wrapper { margin-bottom: 1.5rem; }

/* ── Base compartida ── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	position: relative;
	padding: 0.875rem 1.25rem 0.875rem 3rem;
	margin: 0 0 1rem;
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	line-height: 1.6;
	list-style: none;
	border-left: 4px solid transparent;
	border-radius: 0 var(--radius-card) var(--radius-card) 0;
	overflow: hidden;
}

/* Indicador circular con icono */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	position: absolute;
	left: 0.75rem;
	top: 0.9375rem;
	width: 1.125rem;
	height: 1.125rem;
	border-radius: 50%;
	font-size: 0.625rem;
	font-weight: 900;
	color: #fff;
	text-align: center;
	line-height: 1.125rem;
	letter-spacing: 0;
}

/* ── Success ── */
.woocommerce-message {
	background: rgba(131, 155, 145, 0.08);
	border-left-color: var(--color-sage);
	color: var(--color-primary);
}
.woocommerce-message::before {
	content: '✓';
	background: var(--color-sage);
}

/* Botón "Ver carrito" dentro del notice */
.woocommerce-message .button,
.woocommerce-message .wc-forward {
	float: right;
	margin: 0 0 0 1rem;
	padding: 0.25rem 0.875rem;
	background: transparent;
	border: 1px solid var(--color-sage);
	color: var(--color-sage);
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	border-radius: var(--radius-card);
	transition: background 0.2s, color 0.2s;
}
.woocommerce-message .button:hover,
.woocommerce-message .wc-forward:hover {
	background: var(--color-sage);
	color: #fff;
}

/* ── Info ── */
.woocommerce-info {
	background: rgba(201, 160, 96, 0.07);
	border-left-color: var(--color-gold);
	color: var(--color-primary);
}
.woocommerce-info::before {
	content: 'i';
	background: var(--color-gold);
	font-style: italic;
	font-family: var(--font-serif);
	font-size: 0.75rem;
}
.woocommerce-info .button,
.woocommerce-info .wc-forward {
	float: right;
	margin: 0 0 0 1rem;
	padding: 0.25rem 0.875rem;
	background: transparent;
	border: 1px solid var(--color-gold);
	color: var(--color-gold);
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	border-radius: var(--radius-card);
	transition: background 0.2s, color 0.2s;
}
.woocommerce-info .button:hover,
.woocommerce-info .wc-forward:hover {
	background: var(--color-gold);
	color: #fff;
}

/* ── Error ── */
.woocommerce-error {
	background: rgba(117, 0, 0, 0.05);
	border-left-color: var(--color-bordeaux);
	color: var(--color-bordeaux);
}
.woocommerce-error::before {
	content: '!';
	background: var(--color-bordeaux);
}
.woocommerce-error li {
	list-style: none;
	padding: 0;
	margin: 0 0 0.25rem;
}
.woocommerce-error li:last-child { margin-bottom: 0; }
.woocommerce-error li a {
	color: var(--color-bordeaux);
	text-decoration: underline;
}

/* ── Warning (plugins como cupones inválidos) ── */
.woocommerce-warning {
	position: relative;
	padding: 0.875rem 1.25rem 0.875rem 3rem;
	margin: 0 0 1rem;
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	line-height: 1.6;
	background: rgba(201, 160, 96, 0.1);
	border-left: 4px solid var(--color-gold);
	border-radius: 0 var(--radius-card) var(--radius-card) 0;
	color: #7a5c1e;
}
.woocommerce-warning::before {
	content: '⚠';
	position: absolute;
	left: 0.75rem;
	top: 0.9375rem;
	width: 1.125rem;
	height: 1.125rem;
	font-size: 0.75rem;
	text-align: center;
	line-height: 1.125rem;
	color: var(--color-gold);
}

/* ── CF7 (Contact Form 7) ── */
.wpcf7-response-output {
	position: relative;
	padding: 0.875rem 1.25rem 0.875rem 3rem;
	margin: 1rem 0 0;
	font-family: var(--font-sans);
	font-size: 0.9rem;
	line-height: 1.6;
	border-left: 4px solid transparent;
	border-radius: 0 var(--radius-card) var(--radius-card) 0;
}
.wpcf7-response-output::before {
	position: absolute;
	left: 0.75rem;
	top: 0.9375rem;
	width: 1.125rem;
	height: 1.125rem;
	border-radius: 50%;
	font-size: 0.625rem;
	font-weight: 900;
	color: #fff;
	text-align: center;
	line-height: 1.125rem;
}
/* CF7: enviado OK */
.wpcf7-mail-sent-ok {
	background: rgba(131, 155, 145, 0.08);
	border-left-color: var(--color-sage);
	color: var(--color-primary);
}
.wpcf7-mail-sent-ok::before {
	content: '✓';
	background: var(--color-sage);
}
/* CF7: error de validación */
.wpcf7-validation-errors,
.wpcf7-acceptance-missing {
	background: rgba(201, 160, 96, 0.07);
	border-left-color: var(--color-gold);
	color: var(--color-primary);
}
.wpcf7-validation-errors::before,
.wpcf7-acceptance-missing::before {
	content: '!';
	background: var(--color-gold);
}
/* CF7: fallo de envío */
.wpcf7-mail-sent-ng,
.wpcf7-aborted,
.wpcf7-spam-blocked {
	background: rgba(117, 0, 0, 0.05);
	border-left-color: var(--color-bordeaux);
	color: var(--color-bordeaux);
}
.wpcf7-mail-sent-ng::before,
.wpcf7-aborted::before,
.wpcf7-spam-blocked::before {
	content: '!';
	background: var(--color-bordeaux);
}
/* CF7: campos con error */
.wpcf7 .wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.3rem;
	font-size: 0.8125rem;
	color: var(--color-bordeaux);
}

/* 7. Badge Sale
   ============================================================ */
.woocommerce span.onsale {
	background-color: var(--color-bordeaux);
	color: var(--text-white);
	font-family: var(--font-sans);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-radius: var(--radius-pill);
	padding: 0.25rem 0.75rem;
	min-width: auto;
	min-height: auto;
	line-height: 1.6;
}

/* 8. Carrito (página completa)
   ============================================================ */

/* ── Hero ── */
.cl-cart-hero {
	padding: 2.5rem 0;
}

.cl-cart-hero__title {
	font-family: var(--font-serif);
	font-size: var(--fs-title);
	font-weight: 400;
	color: var(--text-white);
	margin-bottom: 0.5rem;
}

/* ── Empty cart state ── */
.cl-cart-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding-block: 5rem 6rem;
	max-width: 480px;
	margin-inline: auto;
}
.cl-cart-empty__icon {
	width: 72px;
	height: 72px;
	border: 1.5px solid var(--color-blush);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--text-muted);
	margin-bottom: 2rem;
}
.cl-cart-empty .cl-eyebrow {
	margin-bottom: 0.75rem;
}
.cl-cart-empty__title {
	font-family: var(--font-serif);
	font-size: var(--fs-section-sm);
	font-weight: 400;
	color: var(--color-primary);
	margin-bottom: 0.875rem;
}
.cl-cart-empty__sub {
	font-size: 0.9375rem;
	color: var(--text-muted);
	line-height: 1.7;
	margin-bottom: 2rem;
}
/* Hide WC default notice — we show our own message in the template */
.cl-cart-empty ~ .woocommerce-info,
.woocommerce-cart-empty-notice { display: none; }

/* ── Shipping bar (page variant — full-width strip) ── */
.cl-ship-bar--page {
	background: var(--bg-light);
	border-bottom: 1px solid var(--border);
	padding: 0.75rem 0;
}

.cl-ship-bar--page .cl-container {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.cl-ship-bar--page .cl-ship-bar__msg {
	font-size: 0.8125rem;
	color: var(--text-primary);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.375rem;
}

.cl-ship-bar--page .cl-ship-bar__msg--free {
	color: var(--color-sage);
	font-weight: 600;
}

.cl-ship-bar--page .cl-ship-bar__track {
	height: 4px;
	background: var(--border);
	border-radius: var(--radius-card);
	overflow: hidden;
}

.cl-ship-bar--page .cl-ship-bar__fill {
	height: 100%;
	background: var(--color-gold);
	border-radius: var(--radius-card);
	transition: width 0.4s ease;
}

/* ── Suppress WP page title injected by Gutenberg on WC pages with custom heroes ── */
body.woocommerce-cart #content > h1,
body.woocommerce-cart #content > h2,
body.woocommerce-cart #content > .wp-block-heading,
body.woocommerce-cart #content > .wp-block-post-title,
body.woocommerce-checkout #content > h1,
body.woocommerce-checkout #content > h2,
body.woocommerce-checkout #content > .wp-block-heading,
body.woocommerce-checkout #content > .wp-block-post-title {
	display: none;
}

/* ── Layout 2-col ── */
.cl-cart-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	padding-block: 2.5rem;
	align-items: start;
	overflow-x: clip; /* clip keeps sticky sidebar working; hidden would break it */
}

/* Form is transparent to the grid so .cl-cart-items and .cl-cart-sidebar
   become direct grid children (col 1 and col 2). */
.cl-cart-form {
	display: contents;
}

/* Notices from woocommerce_before_cart span both columns so they don't
   push the form into the narrow 340px column after "Actualizar carrito". */
.cl-cart-layout > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

/* ── Table (desktop) ── */
.cl-cart-table {
	width: 100%;
	border-collapse: collapse;
}

.cl-cart-table th {
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--text-muted);
	padding: 0.625rem 0.75rem;
	border-bottom: 1.5px solid var(--border);
	text-align: left;
}

.cl-cart-row td {
	padding: 1.125rem 0.75rem;
	border-bottom: 1px solid var(--border);
	vertical-align: middle;
	font-size: 0.9375rem;
}

.cl-cart-row td.product-thumbnail {
	width: 100px;
}

.cl-cart-row td.product-thumbnail img {
	width: 88px;
	height: 96px;
	object-fit: cover;
	object-position: center top;
	border-radius: var(--radius-card);
	display: block;
}

/* Product name */
.cl-cart-name {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 500;
	color: var(--color-primary);
	display: block;
	margin-bottom: 0.25rem;
	transition: color var(--ease);
}

.cl-cart-name:hover { color: var(--color-blush-dk); }

/* Variation meta (Grabado: Sí, etc.) */
.cl-cart-row .variation {
	margin: 0.25rem 0 0;
	padding: 0;
	font-size: 0.8125rem;
	color: var(--text-muted);
}

.cl-cart-row .variation dt {
	display: inline;
	font-weight: 600;
	margin: 0;
}

.cl-cart-row .variation dd {
	display: inline;
	margin: 0 0.5rem 0 0.25rem;
}

.cl-cart-row .variation dd p { display: inline; margin: 0; }

/* Engraving badge in cart row */
.cl-cart-engraving {
	display: inline-flex;
	align-items: center;
	gap: 0.3125rem;
	margin-top: 0.375rem;
	font-size: 0.75rem;
	color: var(--text-primary);
	font-weight: 600;
}

.cl-cart-engraving svg {
	flex-shrink: 0;
	stroke: currentColor;
	opacity: 0.65;
}

.cl-cart-engraving__fee {
	color: var(--text-muted);
	font-weight: 400;
	margin-left: 0.125rem;
}

/* Qty input */
.cl-cart-row td.product-quantity .quantity {
	display: inline-flex;
	align-items: center;
}

.cl-cart-row td.product-quantity input.qty {
	width: 52px;
	height: 40px;
	/* El alto sube a 44 en táctil — ver la regla de (pointer: coarse) más abajo. */
	border: 1.5px solid var(--border);
	border-radius: 0;
	text-align: center;
	font-size: 0.9375rem;
	font-family: inherit;
	color: var(--color-primary);
	background: #fff;
	-moz-appearance: textfield;
	outline: none;
	transition: border-color var(--ease);
}

.cl-cart-row td.product-quantity input.qty:focus {
	border-color: var(--color-primary);
}

/* Subtotal — bolder */
.cl-cart-row td.product-subtotal {
	font-weight: 600;
}

/* Remove × */
.cl-cart-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	font-size: 1.25rem;
	line-height: 1;
	color: var(--text-muted);
	border-radius: 50%;
	transition: color var(--ease), background var(--ease);
}

.cl-cart-remove:hover {
	color: var(--color-bordeaux);
	background: #fdf2f2;
}

/* ── Actions row (coupon + update) ── */
.cl-cart-actions {
	padding: 1.125rem 0;
	border-bottom: none;
}

.cl-cart-bottom-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	background: var(--bg-light);
	padding: 1rem 1.25rem;
	border-radius: var(--radius-card);
}

.cl-cart-coupon {
	display: flex;
	gap: 0;
	align-items: stretch;
	flex: 1;
	min-width: 200px;
}

.cl-cart-coupon__input {
	flex: 1;
	height: 44px;
	padding: 0 0.875rem;
	border: 1.5px solid var(--border);
	border-right: none;
	border-radius: 0;
	font-size: 0.875rem;
	font-family: inherit;
	color: var(--color-primary);
	background: #fff;
	transition: border-color var(--ease);
}

.cl-cart-coupon__input::placeholder {
	color: var(--text-muted);
}

.cl-cart-coupon__input:focus {
	/* blush-dk da 1.96:1 sobre blanco y menos todavía contra el filete en
	   reposo. El negro, 12.09:1. */
	border-color: var(--color-primary);
}

.cl-cart-coupon .cl-btn {
	height: 44px;
	padding-block: 0;
	border-radius: 0;
	border-left: none;
	white-space: nowrap;
}

.cl-cart-update {
	height: 44px;
	padding-block: 0;
	white-space: nowrap;
	flex-shrink: 0; /* evita que el texto se clipee cuando el contenedor es angosto */
}

/* ── Gift card form (PW Gift Cards plugin) ── */
.pw_gift_cards_form,
form.pw_gift_cards_form {
	display: flex;
	gap: 0;
	align-items: stretch;
	flex-wrap: nowrap;
	margin: 0.875rem 0;
}

.pw_gift_cards_form input[type="text"] {
	flex: 1;
	height: 48px;
	padding: 0 0.875rem;
	border: 1.5px solid var(--border);
	border-right: none;
	border-radius: 0;
	font-size: 1rem;
	font-family: inherit;
	color: var(--color-primary);
	transition: border-color var(--ease);
}

.pw_gift_cards_form input[type="text"]::placeholder {
	color: var(--text-muted);
}

.pw_gift_cards_form input[type="text"]:focus {
	border-color: var(--color-primary);
	outline: none;
}

.pw_gift_cards_form input[type="submit"],
.pw_gift_cards_form button[type="submit"] {
	height: 40px;
	padding: 0 1.125rem;
	border: 1.5px solid var(--color-primary);
	border-radius: 0;
	background: var(--color-primary);
	color: #fff;
	font-family: var(--font-sans);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--ease), border-color var(--ease);
	white-space: nowrap;
}

.pw_gift_cards_form input[type="submit"]:hover,
.pw_gift_cards_form button[type="submit"]:hover {
	background: var(--color-gold);
	border-color: var(--color-gold);
}

/* ── PW Gift Cards — formulario de compra (producto) ── */
#pwgc-purchase-container {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	margin-top: 1.5rem;
	padding: 1.25rem;
	background: var(--bg-light);
	border-left: 3px solid var(--color-blush);
}

.pwgc-field-container {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}

.pwgc-label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: var(--ls-caps-lg);
	text-transform: uppercase;
	color: var(--color-primary);
}

.pwgc-input-text,
#pwgc-custom-amount {
	width: 100%;
	height: 44px;
	padding: 0 0.875rem;
	border: 1.5px solid var(--border);
	border-radius: var(--radius-card);
	font-size: 0.9375rem;
	font-family: inherit;
	color: var(--color-primary);
	background: #fff;
	transition: border-color var(--ease);
	box-sizing: border-box;
}

.pwgc-input-text::placeholder,
#pwgc-custom-amount::placeholder {
	color: var(--text-muted);
}

.pwgc-input-text:focus,
#pwgc-custom-amount:focus {
	border-color: var(--color-primary);
	outline: none;
}

#pwgc-form-message textarea {
	width: 100%;
	min-height: 100px;
	padding: 0.75rem 0.875rem;
	border: 1.5px solid var(--border);
	border-radius: 0;
	font-size: 0.9375rem;
	font-family: inherit;
	color: var(--color-primary);
	background: #fff;
	resize: vertical;
	transition: border-color var(--ease);
	box-sizing: border-box;
}

#pwgc-form-message textarea:focus {
	border-color: var(--color-primary);
	outline: none;
}

.pwgc-subtitle {
	font-size: 0.75rem;
	color: var(--text-muted);
	line-height: 1.4;
}

#pwgc-custom-amount-error {
	font-size: 0.75rem;
	color: var(--color-error) !important;
	font-weight: 600;
}

#pwgc-email-preview-button {
	align-self: flex-start;
	height: 36px;
	padding: 0 1.125rem;
	border: 1.5px solid var(--color-primary);
	border-radius: var(--radius-card);
	background: var(--bg-light);
	color: var(--color-primary);
	font-family: inherit;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: border-color var(--ease), background var(--ease), color var(--ease);
}

#pwgc-email-preview-button:hover {
	background: var(--color-primary);
	color: #fff;
}

#pwgc-email-preview-container {
	width: 100%;
	min-height: 200px;
	border: 1.5px solid var(--border);
	border-radius: var(--radius-card);
	margin-top: 0.5rem;
}

/* ── PDF / Catalog plugin buttons ── */
/* WooCommerce PDF Invoices & WC Catalog PDF generate links near the table */
.woocommerce-cart .wpo_wcpdf_buttons,
.woocommerce-cart .wcpdf-buttons,
.cl-cart-items .woocommerce-message {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
	margin: 0.875rem 0;
}

/* Generic catch-all: links/buttons that appear via woocommerce_after_cart_table */
.cl-cart-items > a[href*=".pdf"],
.cl-cart-items > p > a[href*=".pdf"],
.wpo_wcpdf_buttons a,
.wcpdf-buttons a {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.4375rem 0.875rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	font-family: var(--font-sans);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-muted);
	text-decoration: none;
	transition: border-color var(--ease), color var(--ease);
	white-space: nowrap;
}

.wpo_wcpdf_buttons a:hover,
.wcpdf-buttons a:hover,
.cl-cart-items > a[href*=".pdf"]:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
}

/* ── Trust bar under the table ── */
.cl-cart-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem 1.5rem;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--border);
}

.cl-cart-trust span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.75rem;
	color: var(--text-muted);
}

/* ── Sidebar totales ── */
.cl-cart-sidebar .cart_totals {
	margin-top: 2rem;
	padding: 1.75rem;
	background-color: var(--bg-light);
	border-radius: var(--radius-card);
	border: 1.5px solid var(--border);
}

.cl-cart-sidebar .cart_totals h2 {
	font-family: var(--font-serif);
	font-size: 1.125rem;
	font-weight: 400;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1.5px solid var(--border);
}

.cl-cart-sidebar .shop_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.25rem;
}

.cl-cart-sidebar .shop_table th,
.cl-cart-sidebar .shop_table td {
	padding: 0.5625rem 0;
	border-bottom: 1px solid var(--border);
	font-size: 0.9375rem;
	vertical-align: top;
}

.cl-cart-sidebar .shop_table th {
	/* Mismo caso que el tfoot del checkout: <th> centrado por defecto y sin
	   corrección. Acá se nota menos porque todas las filas son th+td y quedan
	   parejas entre sí, pero igual descolgaba las etiquetas del borde
	   izquierdo de la caja. */
	text-align: left;
	font-size: 0.625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-muted);
	font-weight: 700;
	border-bottom-width: 1.5px;
	/* La columna de etiquetas mide 185px y "GRABADO PERSONALIZADO" la ocupa
	   entera, así que se pegaba al importe. Con 1.25rem parte en dos líneas
	   antes de tocarlo, y el vertical-align:middle de más abajo la deja
	   centrada contra el número. */
	padding-right: 1.25rem;
}

/* Las filas de cargo (hoy el grabado) llevan una etiqueta larga que parte en
   dos líneas. El vertical-align:top de arriba es correcto para el ENVÍO, cuya
   celda trae la lista de métodos y tiene que empezar arriba; en un cargo deja
   el importe colgado del techo, descolgado de su etiqueta. */
.cl-cart-sidebar .shop_table tr.fee th,
.cl-cart-sidebar .shop_table tr.fee td,
.cl-checkout-order-review tr.fee th,
.cl-checkout-order-review tr.fee td {
	vertical-align: middle;
}

.cl-cart-sidebar .order-total th,
.cl-cart-sidebar .order-total td {
	border-bottom: none;
	padding-top: 0.875rem;
}

.cl-cart-sidebar .order-total .amount {
	font-family: var(--font-serif);
	font-size: 1.5rem;
	font-weight: 400;
	color: var(--color-primary);
}

/* Shipping options.
   OJO: el th NO va acá. Esta regla existe para las OPCIONES de envío (que
   viven en el td); al incluir la etiqueta, "ENVÍO" se dibujaba en 14px contra
   los 10px de SUBTOTAL, GRABADO y TOTAL, y saltaba a la vista. */
.cl-cart-sidebar .woocommerce-shipping-totals td {
	font-size: 0.875rem;
}

.cl-cart-sidebar .woocommerce-shipping-methods {
	padding: 0.25rem 0;
}

.cl-cart-sidebar .woocommerce-shipping-methods li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	padding: 0.3125rem 0;
}

.cl-cart-sidebar .shipping-calculator-button {
	display: inline-flex;
	align-items: center;
	margin-top: 0.625rem;
	padding: 0.3rem 0.75rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-muted);
	border: 1.5px solid var(--border);
	border-radius: var(--radius-card);
	transition: color var(--ease), border-color var(--ease), background var(--ease);
}

.cl-cart-sidebar .shipping-calculator-button:hover {
	color: var(--color-primary);
	border-color: var(--color-primary);
	background: var(--color-primary);
	color: #fff;
}

/* Checkout button */
.cl-cart-sidebar .wc-proceed-to-checkout {
	margin-top: 1.25rem;
}

.cl-cart-sidebar .wc-proceed-to-checkout a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 1rem;
	background-color: var(--color-gold);
	color: var(--color-primary);
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	border-radius: var(--radius-card);
	transition: background var(--ease), box-shadow var(--ease);
	text-decoration: none;
}

.cl-cart-sidebar .wc-proceed-to-checkout a:hover {
	background-color: var(--color-gold-hover);
	box-shadow: 0 4px 20px rgba(201, 160, 96, 0.35);
}

/* ── Trust block under checkout button ── */
.cl-cart-sidebar-trust {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--border);
}

.cl-cart-sidebar-trust__heading {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
	margin-bottom: 0.625rem;
}

.cl-cart-sidebar-trust__list {
	list-style: none;
	padding: 0;
	margin: 0 0 0.875rem;
}

.cl-cart-sidebar-trust__list li {
	font-size: 0.8125rem;
	color: var(--text-muted);
	padding: 0.25rem 0;
	padding-left: 1rem;
	position: relative;
}

.cl-cart-sidebar-trust__list li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--color-gold);
	font-weight: 700;
}

.cl-cart-sidebar-trust__wa {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--color-primary);
	text-decoration: none;
	transition: color var(--ease);
}

.cl-cart-sidebar-trust__wa:hover { color: var(--color-sage); }

/* ── AVISO DE ENVÍOS AL EXTERIOR (.cl-intl-note) ───────────────────
   Lo emite template-parts/components/envio-exterior.php desde el carrito
   (variante "bloque", al pie del sidebar) y desde el checkout (variante
   "linea", arriba de los datos de facturación).

   Deliberadamente sin fondo de color ni caja: el checkout sólo acepta
   Argentina, así que esto le habla a una minoría del tráfico y no puede
   competir visualmente con el botón de pagar. Es una nota al pie, no un
   cartel. */
.cl-intl-note__title {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-gold);
	margin: 0 0 0.5rem;
}

.cl-intl-note__text {
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--text-muted);
	margin: 0 0 0.75rem;
}

.cl-intl-note__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem 1.25rem;
}

.cl-intl-note__link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--color-primary);
	text-decoration: none;
	transition: color var(--ease);
	/* El mail es largo y en mobile no entra: que corte antes de empujar
	   la columna y romper el layout del carrito. */
	word-break: break-word;
}

.cl-intl-note__link:hover,
.cl-intl-note__link:focus-visible {
	color: var(--color-sage);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.cl-intl-note__link svg { flex-shrink: 0; }

/* Carrito: cuelga del bloque de confianza con el mismo filete que separa
   las secciones del sidebar. */
.cl-intl-note--bloque {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--border);
}

/* Checkout: acá arriba no hay nada de qué colgarse —un filete superior
   quedaría flotando—, así que el acento va al costado. */
.cl-intl-note--linea {
	margin: 0 0 1.75rem;
	padding: 0 0 0 0.875rem;
	border-left: 2px solid var(--color-blush);
}

/* ── Desktop 2-col (≥1025px): tabla + sidebar side-by-side ──
   Por debajo de 1025px la tabla full-width tiene ~720px+ disponibles
   para 6 columnas sin comprimir la thumbnail ni hacer overlap. */
@media (min-width: 1025px) {
	.cl-cart-layout {
		grid-template-columns: minmax(0, 1fr) minmax(0, 40%);
		gap: 3rem;
	}
	/* Sticky sidebar column */
	.cl-cart-sidebar {
		position: sticky;
		top: calc(var(--topbar-h) + var(--header-h) + 1rem);
		align-self: start;
	}
}

/* Intermediate desktop (1025–1110px): apilar cupón y actualizar en columna para
   evitar que "ACTUALIZAR CARRITO" se clipee contra el botón APLICAR. */
@media (min-width: 1025px) and (max-width: 1110px) {
	.cl-cart-bottom-row {
		flex-direction: column;
		align-items: stretch;
	}
	.cl-cart-coupon {
		flex: none;
	}
}

/* ── Gift card redeem (PW plugin) in sidebar ── */
.cl-cart-sidebar #pwgc-redeem-gift-card-form {
	margin-top: 1.25rem;
	margin-bottom: 1rem;
	padding: 1rem 1.125rem;
	background: var(--color-primary);
	border: none;
	border-radius: var(--radius-card);
	overflow: hidden; /* hard clip — prevents button from escaping the panel */
}

/* Make the form (or container div, depending on plugin version) a flex row
   so the input + button lay out in a row and respect the panel width. */
.cl-cart-sidebar #pwgc-redeem-form,
.cl-cart-sidebar #pwgc-redeem-gift-card-container {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 0;
}

.cl-cart-sidebar #pwgc-redeem-gift-card-form label {
	display: block;
	width: 100%;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-blush);
	margin-bottom: 0.5rem;
}

/* Hide <br> tags the plugin inserts */
.cl-cart-sidebar #pwgc-redeem-gift-card-form br {
	display: none;
}

.cl-cart-sidebar #pwgc-redeem-gift-card-number {
	flex: 1;
	min-width: 0;
	height: 2.75rem;
	padding: 0 0.875rem;
	border: 1.5px solid rgba(235, 204, 194, 0.3);
	border-radius: var(--radius-card);
	font-size: 0.875rem;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	transition: border-color var(--ease), background var(--ease);
}

.cl-cart-sidebar #pwgc-redeem-gift-card-number::placeholder {
	color: rgba(255, 255, 255, 0.4);
}

.cl-cart-sidebar #pwgc-redeem-gift-card-number:focus {
	outline: none;
	border-color: var(--color-blush);
	background: rgba(255, 255, 255, 0.12);
}

.cl-cart-sidebar #pwgc-redeem-button {
	flex-shrink: 0;
	width: auto;   /* en el carrito va al lado del campo, no debajo */
}

.cl-cart-sidebar #pwgc-redeem-error:not(:empty) {
	font-size: 0.8125rem;
	color: var(--color-error);
	margin-bottom: 0.5rem;
}

/* PDF/catalog plugin buttons when they appear in the sidebar collaterals area */
.cl-cart-sidebar .wpo_wcpdf_buttons,
.cl-cart-sidebar .wcpdf-buttons {
	padding-bottom: 1rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid var(--border);
}

/* ── Mobile: stack table as cards ── */
@media (max-width: 767px) {
	/* Gift card input + button: full-width stacked on mobile */
	.cl-cart-sidebar #pwgc-redeem-form,
	.cl-checkout-summary #pwgc-redeem-form {
		flex-direction: column;
	}
	.cl-cart-sidebar #pwgc-redeem-gift-card-number,
	.cl-checkout-summary #pwgc-redeem-gift-card-number {
		width: 100%;
		flex: none !important;
	}
	.cl-cart-sidebar #pwgc-redeem-button,
	.cl-checkout-summary #pwgc-redeem-button {
		width: 100%;
	}

	/* Hide desktop table headers */
	.cl-cart-table thead { display: none; }

	.cl-cart-table,
	.cl-cart-table tbody { display: block; }

	/* Each row becomes a card */
	.cl-cart-row {
		display: grid;
		grid-template-columns: 80px 1fr 32px;
		grid-template-rows: auto auto auto auto;
		column-gap: 0.875rem;
		row-gap: 0.375rem;
		padding: 1.125rem 0;
		border-bottom: 1px solid var(--border);
	}

	.cl-cart-row td {
		padding: 0;
		border: none;
		vertical-align: top;
	}

	/* Thumbnail: left column, spans all rows */
	.cl-cart-row td.product-thumbnail {
		grid-column: 1;
		grid-row: 1 / -1;
		display: flex;
		align-items: flex-start;
	}

	.cl-cart-row td.product-thumbnail img {
		width: 80px;
		height: 80px;
	}

	/* Name: top-center */
	.cl-cart-row td.product-name {
		grid-column: 2;
		grid-row: 1;
	}

	/* Price/qty/subtotal: stacked with labels */
	.cl-cart-row td.product-price {
		grid-column: 2;
		grid-row: 2;
	}

	.cl-cart-row td.product-quantity {
		grid-column: 2;
		grid-row: 3;
	}

	.cl-cart-row td.product-subtotal {
		grid-column: 2;
		grid-row: 4;
	}

	/* Remove: top-right */
	.cl-cart-row td.product-remove {
		grid-column: 3;
		grid-row: 1;
		display: flex;
		justify-content: flex-end;
	}

	/* Data-title labels */
	.cl-cart-row td.product-price::before,
	.cl-cart-row td.product-quantity::before,
	.cl-cart-row td.product-subtotal::before {
		content: attr(data-title) ': ';
		font-size: 0.625rem;
		font-weight: 700;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--text-muted);
		display: block;
		margin-bottom: 1px;
	}

	/* Actions row */
	.cl-cart-table tr:has(.cl-cart-actions),
	.cl-cart-table .cl-cart-actions {
		display: block;
	}

	.cl-cart-coupon {
		width: 100%;
	}

	.cl-cart-coupon__input {
		flex: 1;
	}

	.cl-cart-bottom-row {
		flex-direction: column;
		align-items: stretch;
	}

	.cl-cart-bottom-row .cl-cart-update {
		width: 100%;
	}

	/* PDF buttons: wrap on mobile */
	.wpo_wcpdf_buttons,
	.wcpdf-buttons {
		flex-wrap: wrap;
	}

	/* Shipping methods: long text wraps instead of overflowing */
	.cl-cart-sidebar .woocommerce-shipping-methods li label {
		word-break: break-word;
		overflow-wrap: break-word;
	}

	/* Gift card: label toma fila completa, input+botón debajo */
	.cl-cart-sidebar #pwgc-redeem-gift-card-container {
		flex-wrap: wrap;
	}
	.cl-cart-sidebar #pwgc-redeem-gift-card-form label {
		flex: 0 0 100%;
		margin-bottom: 0.375rem;
	}
}

/* 9. Checkout
   ============================================================ */
/* Checkout/cart: quita todas las restricciones del wrapper de page.php
   para que el hero oscuro sea full-width y flush con el nav.
   Los elementos internos (hero, form) tienen su propio cl-container. */
.woocommerce-checkout #main,
.woocommerce-cart #main {
	padding-block: 0;
	padding-inline: 0;
	max-width: none;
	width: 100%;
}

.cl-checkout-hero {
	padding: 3rem 0 0;
	text-align: center;
	margin-top: -1px; /* cierra gap subpixel del body blanco */
}

.cl-checkout-hero h1 {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	color: var(--text-white);
	margin-bottom: 0.375rem;
}

.cl-checkout-hero .rank-math-breadcrumb,
.cl-checkout-hero .woocommerce-breadcrumb {
	justify-content: center;
	display: flex;
}

/* Steps */
.cl-checkout-steps {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 0;
	padding: 2.25rem 0 0;
	max-width: 560px;
	margin-inline: auto;
}

.cl-checkout-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	color: rgba(255,255,255,0.4);
	min-width: 96px;
}

.cl-checkout-step--active {
	color: #fff;
}

.cl-checkout-step--done {
	color: var(--color-sage);
}

/* Step 1 is an <a> — reset link styles, add hover affordance */
a.cl-checkout-step--link {
	text-decoration: none;
	cursor: pointer;
	transition: opacity var(--ease);
}
a.cl-checkout-step--link:hover {
	opacity: 0.75;
}

.cl-checkout-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1.5px solid currentColor;
	font-size: 0.875rem;
	font-weight: 700;
	background: transparent;
}

.cl-checkout-step--active .cl-checkout-step__num {
	background-color: #fff;
	border-color: #fff;
	color: var(--color-primary);
}

.cl-checkout-step--done .cl-checkout-step__num {
	background-color: var(--color-sage);
	border-color: var(--color-sage);
	color: #fff;
}

.cl-checkout-step__label {
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
	text-align: center;
}
@media (max-width: 359px) {
	.cl-checkout-step__label { white-space: normal; font-size: 0.5625rem; }
	.cl-checkout-step__line  { min-width: 12px; }
}

/* Connector — flex:1 llena el espacio; margin-top alinea al centro del círculo */
.cl-checkout-step__line {
	flex: 1;
	min-width: 32px;
	height: 1px;
	background-color: rgba(255,255,255,0.2);
	align-self: flex-start;
	margin-top: 19px;
	margin-inline: 0;
}

/* Layout 2 columnas */
.cl-checkout-form {
	padding-bottom: 4rem;
}

.cl-checkout-layout {
	display: grid;
	grid-template-columns: 1fr; /* stacked on mobile */
	gap: 2rem;
	align-items: start;
}

.cl-checkout-section {
	margin-bottom: 2rem;
}

.cl-checkout-section__title {
	font-family: var(--font-serif);
	font-size: 1.25rem;
	margin-bottom: 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--border);
}

/* Spacing entre field rows y bloques del checkout */
.woocommerce-checkout .form-row {
	margin-bottom: 1.25rem;
}
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
	margin-bottom: 1.25rem;
}

/* Ocultar h3 nativo de WC (tenemos nuestro cl-checkout-section__title).
 *
 * ⚠️ .woocommerce-shipping-fields > h3 NO va en esta lista, y estuvo hasta el
 * 2026-08-11. Ese h3 no es un título: WooCommerce mete adentro el checkbox
 * "¿Enviar a una dirección diferente?" con su etiqueta (ver form-shipping.php
 * de WC). Esconderlo escondía el control entero, y sin poder tildarlo el bloque
 * .shipping_address nunca se despliega — el cliente no tenía forma de mandar el
 * pedido a una dirección distinta de la de facturación.
 * El elemento seguía en el DOM, así que cualquier chequeo por querySelector
 * daba "existe" y parecía que andaba. Hay que mirar el display. */
.woocommerce-billing-fields > h3,
.woocommerce-additional-fields > h3 {
	display: none;
}

/* El checkbox de "enviar a otra dirección" vive dentro de un h3: sólo hay que
   sacarle la pinta de título. La casilla y su fila NO se estilan acá: WooCommerce
   ya le pone .woocommerce-form__label-for-checkbox y .input-checkbox, que tienen
   su estilo más abajo en esta misma hoja (el mismo de "¿Creá una cuenta?" y el de
   términos y condiciones). Escribir reglas propias acá las pisaba por
   especificidad y devolvía la casilla nativa del navegador. */
#ship-to-different-address {
	margin: 0 0 1.5rem;
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	font-weight: 400;
	line-height: 1.4;
	color: var(--color-primary);
}

/* Separación entre bloques: cuenta, envío diferente, notas */
.woocommerce-account-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--border);
}

/* Campos WC en checkout */
.woocommerce-checkout .woocommerce-input-wrapper input,
.woocommerce-checkout .woocommerce-input-wrapper textarea,
.woocommerce-checkout .woocommerce-input-wrapper select {
	width: 100%;
	padding: 0.75rem 0;
	border: none;
	border-bottom: 1.5px solid var(--border);
	background: transparent;
	font-size: 1rem;
	transition: border-color var(--ease);
}

/* Texto de ayuda de un campo (el `description` de woocommerce_billing_fields).
   WooCommerce lo emite DESPUÉS del input, y en este diseño eso no funciona: cada
   campo se lee «rótulo → valor → filete», así que el filete significa "acá
   termina el campo" y cualquier texto posterior parece pertenecer al siguiente.
   Pasó con "Si no tenés DNI argentino…" (v2.7.84): aun en gris y a 13px se leía
   como el encabezado de País / Región.

   No alcanzaba con achicarlo — el problema era la POSICIÓN. Se lo sube arriba
   del input con orden de flex, así queda entre el rótulo y el campo, que es
   donde se lee como instrucción de lo que hay que escribir.

   El :has() acota el flex a las filas que realmente tienen ayuda; el resto de
   los campos no se toca. */
.woocommerce-checkout .woocommerce-input-wrapper:has(.description) {
	display: flex;
	flex-direction: column;
}

/* ⚠️ Los !important no son pereza: WooCommerce le hace slideUp/slideDown a este
   texto cuando el campo gana o pierde el foco, con estilos EN LÍNEA sobre
   display, height, margin y padding. Con la ayuda arriba del input, ese
   mostrar/ocultar empujaba el campo 25px cada vez que hacías clic — medido:
   el input pasaba de y=1143 a y=1118. Escribir con el campo saltando abajo del
   cursor es peor que cualquier problema de estilo.

   No hay filtro de PHP para desactivar ese comportamiento, así que se neutraliza
   cada propiedad que toca la animación. El texto queda siempre visible, que
   además es lo correcto: una ayuda que sólo aparece al enfocar no ayuda a quien
   todavía no sabe si tiene que completar ese campo. */
.woocommerce-checkout .woocommerce-input-wrapper .description,
.woocommerce-checkout .form-row .description {
	order: -1;                 /* antes del input */
	display: block !important;
	height: auto !important;
	overflow: visible !important;
	opacity: 1 !important;
	margin: 0 0 0.35rem !important;
	padding: 0 !important;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--text-muted);
}

/* País cuando hay UN solo país permitido.
   WooCommerce 11 lo emite como <select> de una sola opción —cambió respecto de
   versiones viejas, que lo ponían como texto— y le agrega la clase
   `country_to_state--single` justamente para que el theme lo resuelva.
   Sin esto, al hacer clic se abre una lista con un único ítem: una elección que
   no es una elección. Se lo deja como dato fijo: sin flecha y sin abrirse.
   El select sigue en el formulario y se envía igual, así que WooCommerce recibe
   el país como siempre. */
.woocommerce-checkout select.country_to_state--single {
	pointer-events: none;
	cursor: default;
	appearance: none;
	-webkit-appearance: none;
	background-image: none;
}

.woocommerce-checkout .woocommerce-input-wrapper input:focus,
.woocommerce-checkout .woocommerce-input-wrapper select:focus,
.woocommerce-checkout .woocommerce-input-wrapper textarea:focus {
	/* Negro y no blush: el blush da 1.07:1 contra el filete en reposo, o sea que
	   el campo enfocado se ve idéntico al que no lo está. Mismo criterio que los
	   otros siete formularios desde v2.5.1. */
	border-color: var(--color-primary);
}

.woocommerce-checkout label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--text-muted);
	display: block;
	margin-bottom: 0.375rem;
}

/* ============================================================
   CHECKOUT — Resumen del pedido
   ============================================================ */
.cl-checkout-order-review {
	background-color: var(--bg-light);
	border-radius: var(--radius-card);
	padding: 1.75rem;
	border: 1.5px solid var(--border);
	position: sticky;
	top: calc(var(--topbar-h) + var(--header-h) + 1rem);
}
@media (max-width: 1024px) {
	.cl-checkout-order-review { position: static; }
}

/* Tabla */
.cl-checkout-order-review table {
	width: 100%;
	border-collapse: collapse;
}

/* El encabezado PRODUCTO / SUBTOTAL se oculta: con una sola columna de precios
   no informa nada y hacía que el resumen se leyera como una planilla de cálculo.
   Se oculta por CSS y no se saca del marcado porque lo emite review-order.php de
   WooCommerce, y overridear ese template obliga a seguirlo versión a versión. */
.cl-checkout-order-review table thead {
	display: none;
}

/* Header de tabla — sin uso mientras el thead esté oculto; se deja por si se
   decide mostrarlo de nuevo. */
.cl-checkout-order-review table thead th {
	font-size: 0.625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-muted);
	font-weight: 700;
	padding: 0 0 0.75rem;
	border-bottom: 2px solid var(--border);
}
.cl-checkout-order-review table thead th.product-total {
	text-align: right;
}

/* Filas */
.cl-checkout-order-review table tbody td,
.cl-checkout-order-review table tfoot td,
.cl-checkout-order-review table tfoot th {
	padding: 0.875rem 0;
	border-bottom: 1px solid var(--border);
	vertical-align: top;
	font-size: 0.875rem;
}

/* Nombre del producto, ahora con la foto que inyecta cl_checkout_foto_en_resumen
   (inc/wc-cart.php). La celda pasa a ser flex: foto | nombre | cantidad.
   nowrap con el nombre en flex:1 deja la cantidad pegada a la derecha del
   renglón, que es donde se la busca. */
.cl-checkout-order-review .product-name {
	/* Grilla y no flex: la cantidad es un <strong> hermano del nombre, no un hijo,
	   así que en una fila los tres competían por el ancho y el nombre se partía
	   al medio. Con la foto ocupando las dos filas de la izquierda, el nombre se
	   lleva todo el ancho restante y la cantidad va debajo. */
	display: grid;
	grid-template-columns: 56px 1fr;
	column-gap: 0.875rem;
	align-items: center;
	font-size: 0.875rem;
	line-height: 1.45;
}

.cl-checkout-order-review .product-name .cl-checkout-foto {
	grid-row: 1 / -1;
}

.cl-checkout-order-review .product-name .cl-checkout-nombre,
.cl-checkout-order-review .product-name .product-quantity {
	grid-column: 2;
}

.cl-checkout-order-review .cl-checkout-foto {
	width: 56px;
	height: 56px;
	object-fit: cover;
	flex-shrink: 0;
	display: block;
	background-color: var(--bg-light);
}

.cl-checkout-order-review .cl-checkout-nombre {
	flex: 1;
	min-width: 0;
}
.cl-checkout-order-review .product-quantity {
	font-weight: 400;
	color: var(--text-muted);
}

/* Precio alineado a la derecha */
.cl-checkout-order-review .product-total,
.cl-checkout-order-review tfoot td {
	text-align: right;
}

/* Labels de totales */
.cl-checkout-order-review tfoot th {
	/* <th> viene CENTRADO de fábrica en todos los navegadores, y esta regla
	   nunca lo corregía. Mientras la primera columna medía lo mismo que la
	   etiqueta no se notaba; en cuanto un nombre de producto largo la ensancha,
	   SUBTOTAL / ENVÍO / TOTAL quedan flotando en el medio mientras el resto
	   arranca pegado a la izquierda. Medido el 2026-08-14: con la columna en
	   157px, las etiquetas empezaban 34 y 52px más a la derecha que el nombre
	   del producto. */
	text-align: left;
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--text-muted);
	font-weight: 700;
	padding-right: 1rem;
}

/* Fila total — sin borde inferior, tipografía destacada */
.cl-checkout-order-review .order-total th,
.cl-checkout-order-review .order-total td {
	border-bottom: none;
	padding-top: 1.125rem;
}
.cl-checkout-order-review .order-total .amount {
	/* 1.75rem y no 1.25: a 20px el total pesaba lo mismo que el título "Tu
	   pedido" y el número más importante de la página no se distinguía del
	   resto. */
	font-family: var(--font-serif);
	font-size: 1.75rem;
	font-weight: 700;
}

/* Datos del ítem en el resumen (grabado, y los campos de la gift card:
   destinatario, remitente, mensaje).
   Hasta 2026-08-13 esto se dibujaba como un pill negro. Funcionaba con UN
   valor corto —"Con grabado personalizado"— pero se aplica a TODOS los datos
   del ítem, y una gift card agrega mail, nombre y un mensaje libre: el mensaje
   entero quedaba metido en una burbuja negra deforme. Va como texto quieto,
   que aguanta cualquier largo. */
/* El meta del ítem en la thank-you (destinatario de la gift card, mensaje,
   fecha). wc_display_item_meta() emite <ul><li><strong>Clave:</strong> valor.
   Se le saca la viñeta y el margen del <p> que WooCommerce mete adentro. */
.cl-thankyou-item-meta-list {
	list-style: none;
	margin: 0.25rem 0 0;
	padding: 0;
	font-size: 0.8125rem;
	color: var(--text-muted);
	line-height: 1.5;
}

.cl-thankyou-item-meta-list li { margin: 0; }
.cl-thankyou-item-meta-list p  { display: inline; margin: 0; }
.cl-thankyou-item-meta-list strong { font-weight: 600; }

.cl-checkout-order-review dl.variation {
	margin: 0.375rem 0 0;
	font-size: 0.75rem;
	line-height: 1.5;
	color: var(--text-muted);
	/* La celda del producto es un GRID (foto · nombre/cantidad), medido: 244px
	   de ancho con la foto en una columna de 56. Sin esto el bloque cae en la
	   columna de la foto y "Con grabado personalizado" sale partido en cuatro
	   líneas de 56px, debajo de la imagen.
	   grid-column: 1/-1 lo hace ocupar todas las columnas. El flex-basis queda
	   por si la celda cambia a flex; en grid no molesta. */
	grid-column: 1 / -1;
	flex: 1 0 100%;
	min-width: 0;
}
/* Las etiquetas del meta SE MUESTRAN. Estaban en display:none, que para una
   variación común era defendible —"Habano" se entiende sin el rótulo "Color"—
   pero para una gift card dejaba cuatro valores sueltos, uno debajo del otro,
   sin decir cuál era cuál:

       P.cantenys@gmail.com
       Pato
       Te amo mucho
       19-08-2026

   El destinatario, el comprador, el mensaje y la fecha de entrega, todos
   iguales. Lo detectó Pato en el pedido #94. El carrito ya lo hacía bien
   (.cl-cart-row .variation dt, más arriba), así que eran dos pantallas del
   mismo pedido con distinto criterio.

   Va en grilla y no inline: el mensaje del comprador puede ser largo y con
   `display: inline` se enredaba con la línea siguiente. Con dos columnas la
   etiqueta queda fija a la izquierda y el valor envuelve prolijo. */
.cl-checkout-order-review dl.variation {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.125rem 0.35rem;
}
.cl-checkout-order-review dl.variation dt {
	display: block;
	font-weight: 600;
	margin: 0;
}
.cl-checkout-order-review dl.variation dd {
	margin: 0;
	min-width: 0;
}
.cl-checkout-order-review dl.variation dd p {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	font-size: inherit;
	font-weight: 400;
	color: inherit;
	line-height: inherit;
	/* Un mensaje de gift card puede ser largo: que corte y no desborde.
	   `break-word` y NO `anywhere`: anywhere también reduce el ancho mínimo del
	   elemento, y en la celda del producto eso colapsaba la columna — "Con
	   grabado personalizado" salía partido en cuatro líneas de 55px. */
	overflow-wrap: break-word;
}

/* Métodos de envío */
.cl-checkout-order-review .woocommerce-shipping-methods {
	list-style: none;
	margin: 0.375rem 0 0;
	padding: 0;
}
.cl-checkout-order-review .woocommerce-shipping-methods li {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: 0.8125rem;
	line-height: 1.45;
	padding: 0.4375rem 0;
	border-bottom: 1px solid var(--border);
	flex-wrap: wrap;
}
.cl-checkout-order-review .woocommerce-shipping-methods li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.cl-checkout-order-review .woocommerce-shipping-methods li input[type="radio"] {
	margin-top: 0.2em;
	flex-shrink: 0;
	accent-color: var(--color-primary);
}
.cl-checkout-order-review .woocommerce-shipping-methods li label {
	flex: 1;
	cursor: pointer;
	/* Sin versalita: `.woocommerce-checkout label` (línea 1931) pone MAYÚSCULAS
	   y 0.2em de tracking a TODA etiqueta del checkout. Sirve para "NOMBRE";
	   con el nombre completo de una operativa de OCA queda
	   "ENTREGA A DOMICILIO VÍA OCA — 1 DÍA HÁBIL - $10110.8: GRATIS", que es
	   justo el renglón que el cliente necesita leer bien. Es el mismo criterio
	   que ya se aplicó a las etiquetas de checkbox más abajo. */
	text-transform: none;
	letter-spacing: normal;
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--text-primary);
	margin-bottom: 0;
}

/* ── MEDIOS DE PAGO: misma lista, mismo trato ─────────────────────
   La lista de pasarelas NO tenía ninguna regla de layout, así que heredaba el
   `display:block` de `.woocommerce-checkout label` y cada radio quedaba solo en
   su renglón con el texto debajo, en mayúsculas. Se le da la misma estructura
   que a la de envío —flex, radio arriba a la izquierda, etiqueta ocupando el
   resto— para que las dos listas de opciones de la pantalla se lean igual. */
.cl-checkout-order-review .wc_payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
}
.cl-checkout-order-review .wc_payment_methods > li {
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0.4375rem 0;
	border-bottom: 1px solid var(--border);
}
.cl-checkout-order-review .wc_payment_methods > li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.cl-checkout-order-review .wc_payment_methods > li > input[type="radio"] {
	margin-top: 0.2em;
	flex-shrink: 0;
	accent-color: var(--color-primary);
}
.cl-checkout-order-review .wc_payment_methods > li > label {
	flex: 1;
	cursor: pointer;
	display: inline;
	text-transform: none;
	letter-spacing: normal;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--text-primary);
	margin-bottom: 0;
	line-height: 1.45;
}
/* La descripción y el logo de la pasarela van debajo, ocupando el ancho entero
   y alineados con la etiqueta, no con el radio. */
.cl-checkout-order-review .wc_payment_methods .payment_box {
	flex-basis: 100%;
	margin: 0.5rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--text-muted);
}
.cl-checkout-order-review .wc_payment_methods > li > label img {
	max-height: 20px;
	width: auto;
	vertical-align: middle;
	margin-left: 0.375rem;
}

.cl-checkout-order-review .woocommerce-shipping-destination {
	font-size: 0.8125rem;
	color: var(--text-muted);
	margin: 0.5rem 0 0;
	line-height: 1.4;
}

/* Selector de sucursal OCA */
#oca-branches-selection-wrapper {
	background: var(--bg-mid) !important;
	border: 1.5px solid var(--border) !important;
	border-radius: var(--radius-card) !important;
	box-shadow: none !important;
	padding: 0.75rem !important;
	margin: 0.5rem 0 0 !important;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
#oca-branches-selection-wrapper .oca-select-office-message {
	font-size: 0.75rem !important;
	color: var(--text-muted) !important;
	margin: 0 0 0.5rem !important;
	display: block !important;
}
#oca-branches-selection-wrapper select {
	width: 100% !important;
	max-width: 100% !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 0 !important;
	padding: 0.4375rem 0.625rem !important;
	font-size: 0.8125rem !important;
	background-color: #fff !important;
	color: var(--color-primary) !important;
	margin: 0 !important;
	box-sizing: border-box !important;
}

/* Gift card */
#pwgc-redeem-gift-card-form {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--border);
}
#pwgc-redeem-gift-card-form label {
	display: block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-muted);
	margin-bottom: 0.5rem;
}
/* La caja de canje es NEGRA (#pwgc-redeem-gift-card-form, arriba), así que el
   campo va translúcido sobre ella, no blanco. Había dos definiciones para el
   mismo input —una acotada al carrito y esta global— y ganaba la global por
   especificidad (id + atributo + elemento), dejando un bloque blanco de
   esquinas rectas contra el negro: el campo y el botón se veían disparejos.
   Queda una sola, la que corresponde al fondo oscuro. Mismo problema que ya
   habían consolidado con el botón, ver el comentario de abajo. */
#pwgc-redeem-gift-card-form input[type="text"] {
	width: 100%;
	height: 2.75rem;
	border: 1.5px solid rgba(235, 204, 194, 0.3);
	/* Recto como el botón que va al lado y como el resto de los botones del
	   sitio. Con var(--radius-card) el campo quedaba redondeado y el botón no:
	   el mismo desparejo, al revés. */
	border-radius: 0;
	padding: 0 0.875rem;
	font-size: 0.875rem;
	font-family: var(--font-sans);
	color: #fff;
	background: rgba(255, 255, 255, 0.08);
	box-sizing: border-box;
	transition: border-color var(--ease), background var(--ease);
}
#pwgc-redeem-gift-card-form input[type="text"]::placeholder {
	color: rgba(255, 255, 255, 0.4);
}
#pwgc-redeem-gift-card-form input[type="text"]:focus {
	outline: none;
	border-color: var(--color-blush);
	background: rgba(255, 255, 255, 0.12);
}
/* El botón de canjear gift card lo imprime el plugin PW Gift Cards, así que no
   puede llevar nuestras clases. Hasta el 2026-08-11 tenía TRES definiciones
   pisándose —una global, una en el carrito y otra en el checkout— y ninguna
   estaba completa: la del carrito cambiaba el fondo en hover pero no el color,
   así que ganaba el `color:#fff` del bloque global y quedaba blanco sobre blush
   oscuro, 1,96:1. En el checkout el mismo cruce daba blanco sobre dorado, 2,42:1.
   Además era el único "Aplicar" del sitio con aspecto propio: el del cupón, al
   lado, es .cl-btn--primary.
   Ahora hereda de .cl-btn / .cl-btn--primary / .cl-btn--sm (main.css lo suma a
   esas listas, como ya hacía con .wpcf7-submit y .oca-tracking-form-submit).
   Acá queda sólo lo que es disposición, no color. */
/* El plugin imprime SIEMPRE su <div id="pwgc-redeem-error">, vacío mientras no
   haya error. El contenedor es flex con gap:8px, así que ese div de 0px de
   ancho seguía siendo un ítem del flex y se comía su gap: empujaba el campo 8px
   a la derecha y lo dejaba 8px más angosto que el botón de abajo. Medido en el
   checkout: label y botón en x=840 con 505px, campo en x=848 con 497.
   Con display:none deja de ocupar lugar en el flex. Las reglas de :not(:empty)
   de más abajo siguen pintándolo cuando sí hay un error. */
#pwgc-redeem-error:empty {
	display: none;
}

#pwgc-redeem-button {
	width: 100%;
	margin: 0 !important;   /* el plugin trae un margin inline */
	/* Misma altura que el campo de al lado, que mide 2.75rem. Es el mismo
	   recurso que usa el par del cupón (.cl-cart-coupon__input y su botón, los
	   dos en 44px): el contenedor del plugin es flex con align-items:center, y
	   sin una altura explícita el botón se queda en los 36px de .cl-btn--sm y
	   los bordes no coinciden. `align-self: stretch` no sirve — estira a la
	   caja del contenedor, que en el carrito incluye el mensaje de error. */
	height: 2.75rem;
}

/* ── Mobile: resumen de orden en checkout ≤600px ── */
@media (max-width: 600px) {
	/* Tabla → layout de bloque sin overflow horizontal */
	.cl-checkout-order-review table {
		display: block;
		overflow: hidden;
	}
	.cl-checkout-order-review thead { display: none; }
	.cl-checkout-order-review tbody,
	.cl-checkout-order-review tfoot { display: block; width: 100%; }

	/* Cada fila: flex row con separador inferior */
	.cl-checkout-order-review tbody tr,
	.cl-checkout-order-review tfoot tr {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: flex-start;
		padding: 0.75rem 0;
		border-bottom: 1px solid var(--border);
	}
	.cl-checkout-order-review tfoot .order-total { border-bottom: none; }

	/* Celdas: sin borde propio (lo separa el tr) */
	.cl-checkout-order-review table tbody td,
	.cl-checkout-order-review table tfoot td,
	.cl-checkout-order-review table tfoot th {
		display: block;
		padding: 0;
		border: none !important;
		vertical-align: unset;
		font-size: 0.875rem;
	}

	/* Totales: label izquierda, monto derecha */
	.cl-checkout-order-review tfoot th {
		flex-shrink: 0;
		padding-right: 0;
	}
	.cl-checkout-order-review tfoot td {
		flex: 1;
		min-width: 0;
		text-align: right;
	}

	/* Fila ENVÍO: label arriba ancho completo, métodos abajo */
	.cl-checkout-order-review .woocommerce-shipping-totals {
		flex-direction: column;
		align-items: stretch;
	}
	.cl-checkout-order-review .woocommerce-shipping-totals th,
	.cl-checkout-order-review .woocommerce-shipping-totals td {
		width: 100%;
		text-align: left;
	}
	.cl-checkout-order-review .woocommerce-shipping-totals th {
		margin-bottom: 0.375rem;
	}

	/* Etiquetas de método de envío: sin herencia de uppercase del th */
	.cl-checkout-order-review .woocommerce-shipping-methods li label {
		text-transform: none;
	}

	/* Producto: nombre flex, precio derecha */
	.cl-checkout-order-review .product-name {
		flex: 1;
		min-width: 0;
	}
	.cl-checkout-order-review .product-total {
		flex-shrink: 0;
		text-align: right;
	}

	/* OCA list items: ancho completo */
	.cl-checkout-order-review .woocommerce-shipping-methods li {
		width: 100%;
	}
}

/* Botón place order.
   El color, la tipografía, el foco de teclado y el :disabled los hereda de
   .cl-btn / .cl-btn--primary en main.css: este botón entró al sistema de
   botones y dejó de pintarse solo.

   Antes vivía entero acá, en DORADO. Y el dorado es el color al que llega el
   hover de casi todos los botones del sitio, así que el botón más importante
   se veía, quieto, igual que cualquier otro mientras lo estás tocando — y su
   propio hover no tenía a dónde ir: iba a #b8902a, que no es un dorado más
   oscuro sino un mostaza (el tono rota hacia el amarillo en vez de hacia el
   rojo). De paso arrastraba su propio letter-spacing y no tenía :disabled.

   Queda sólo lo que es propio de ESTE botón: ocupa todo el ancho de la columna
   del resumen y lleva más aire vertical que un botón normal, porque es el
   último clic de la compra. */
#place_order {
	width: 100%;
	padding: 1rem;
}

/* Back-to-cart link at the bottom of the billing fields column */
.cl-checkout-back {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	margin-top: 1.5rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--color-primary);
	text-decoration: underline;
	text-decoration-color: var(--color-blush);
	text-underline-offset: 3px;
	transition: color var(--ease), text-decoration-color var(--ease);
}
.cl-checkout-back:hover {
	color: var(--color-primary);
	text-decoration-color: var(--color-primary);
}

.cl-checkout-secure {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.75rem;
	color: var(--text-muted);
	margin-top: 0.75rem;
	justify-content: center;
}

.cl-checkout-login-notice {
	padding: 1rem 1.25rem;
	background-color: rgba(235,204,194,0.1);
	border-left: 3px solid var(--color-blush);
	border-radius: 0 var(--radius-card) var(--radius-card) 0;
	margin-bottom: 1.5rem;
	font-size: 0.9375rem;
}

@media (max-width: 480px) {
	.cl-checkout-hero { padding-block: 1.75rem 1.5rem; }
	.cl-checkout-steps { gap: 0; }
	.cl-checkout-step__num { width: 32px; height: 32px; font-size: 0.6875rem; }
}
@media (min-width: 1025px) {
	.cl-checkout-layout {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
		align-items: stretch;
	}
	.cl-checkout-summary {
		border-left: 1px solid var(--border);
		padding-left: 3rem;
	}
}

/* ── Login toggle banner ── */
.woocommerce-form-login-toggle {
	margin-bottom: 0;
}
.woocommerce-form-login-toggle .woocommerce-info {
	background: rgba(201,160,96,0.07);
	border-left-color: var(--color-gold);
	font-size: 0.875rem;
	color: var(--text-muted);
}
.woocommerce-form-login-toggle .showlogin {
	color: var(--color-gold);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color var(--ease);
}
.woocommerce-form-login-toggle .showlogin:hover {
	color: var(--color-primary);
}

/* ── Login form (se despliega al hacer clic) ──────────────────────────────
 * Acá había un comentario diciendo que estos estilos se habían sacado porque
 * "el estilo de la caja ahora vive en .cl-login-box (form-login.php)". Eso es
 * cierto para /mi-cuenta/, que tiene template propio del tema — pero NO es el
 * único lugar donde aparece este formulario: WooCommerce lo emite también en
 * el checkout, con su propio checkout/form-login.php, que el tema no
 * sobrescribe. Ahí no existen ni .cl-login-page ni .cl-field, así que los
 * campos quedaban con el reset y nada más: medidos, 178x27 sin borde, sin
 * relleno y sin fondo, contra los 648x52 con filete de los demás campos del
 * checkout. Y "Acceder" era texto plano.
 *
 * Se replica el estilo de los campos del checkout (mismo filete inferior,
 * mismo relleno, mismo foco). El botón hereda de .cl-btn--primary sumándose a
 * sus listas en main.css, como ya se hace con .wpcf7-submit y
 * #pwgc-redeem-button. Va en tinta y no en dorado —el de /mi-cuenta/ es
 * dorado— porque en esta página el dorado ya es de "Realizar el pedido", y
 * acceder es una acción secundaria. */
.woocommerce-checkout .woocommerce-form-login {
	/* Sin tope, los dos campos se estiran a los 1344px del contenedor: un
	   renglón de 1344px para escribir un usuario. Se acota al ancho de
	   formulario del sitio. */
	max-width: var(--container-form);
	margin: 0 0 1.5rem;
}

/* WooCommerce ya marca los dos campos como form-row-first / form-row-last:
   están pensados para compartir renglón. El checkout no los pone en grilla
   porque sus propios campos usan otro contenedor. */
@media (min-width: 641px) {
	.woocommerce-checkout .woocommerce-form-login .form-row-first,
	.woocommerce-checkout .woocommerce-form-login .form-row-last {
		width: calc(50% - 0.75rem);
		float: left;
	}
	.woocommerce-checkout .woocommerce-form-login .form-row-last {
		margin-left: 1.5rem;
	}
	.woocommerce-checkout .woocommerce-form-login .form-row:not(.form-row-first):not(.form-row-last) {
		clear: both;
	}
}

.woocommerce-checkout .woocommerce-form-login > p:first-child {
	font-size: 0.875rem;
	color: var(--text-muted);
	margin-bottom: 1.5rem;
}

.woocommerce-checkout .woocommerce-form-login .input-text {
	width: 100%;
	padding: 0.75rem 0;
	border: none;
	border-bottom: 1.5px solid var(--border);
	border-radius: 0;
	background: transparent;
	font-family: var(--font-sans);
	font-size: 1rem;
	color: var(--color-primary);
	transition: border-color var(--ease);
}

.woocommerce-checkout .woocommerce-form-login .input-text:focus {
	outline: none;
	border-bottom-color: var(--color-primary);
}

/* El ojo de "ver contraseña" se apoya sobre el campo; sin posición se iba al
   renglón siguiente y empujaba el filete. */
.woocommerce-checkout .woocommerce-form-login .form-row {
	position: relative;
	margin-bottom: 1.25rem;
}

.woocommerce-checkout .woocommerce-form-login .show-password-input {
	position: absolute;
	right: 0;
	bottom: 0.85rem;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	color: var(--text-muted);
}

.woocommerce-checkout .woocommerce-form-login .woocommerce-form-login__submit {
	margin-top: 0.5rem;
}

.woocommerce-checkout .woocommerce-form-login .lost_password {
	margin: 1rem 0 0;
	font-size: 0.8125rem;
}

.woocommerce-checkout .woocommerce-form-login .lost_password a {
	color: var(--text-muted);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color var(--ease);
}

.woocommerce-checkout .woocommerce-form-login .lost_password a:hover {
	color: var(--color-primary);
}

/* ── Coupon toggle banner ── */
/* Override the default WC gold-left-border info box so the link reads as a
   clear CTA rather than a system notice. */
.woocommerce-form-coupon-toggle {
	margin-bottom: 1.5rem;
}
.woocommerce-form-coupon-toggle .woocommerce-info {
	background: rgba(201,160,96,0.07);
	border-left-color: var(--color-gold);
	font-size: 0.875rem;
	color: var(--text-muted);
}
.woocommerce-form-coupon-toggle .showcoupon {
	color: var(--color-gold);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color var(--ease);
}
.woocommerce-form-coupon-toggle .showcoupon:hover {
	color: var(--color-primary);
}

/* ── Coupon form (revealed on click) ── */
.checkout_coupon.woocommerce-form-coupon {
	display: flex;
	gap: 0.5rem;
	align-items: stretch;
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	background: var(--bg-light);
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
}
.checkout_coupon .form-row {
	margin: 0;
	flex: 1;
}
.checkout_coupon input[type="text"] {
	width: 100%;
	height: 44px;
	padding: 0 0.875rem;
	border: 1.5px solid var(--border);
	border-radius: 0;
	font-size: 0.9375rem;
	font-family: inherit;
	transition: border-color var(--ease);
}
.checkout_coupon input[type="text"]:focus {
	outline: none;
	border-color: var(--color-primary);
}
.checkout_coupon .button {
	height: 44px;
	padding: 0 1.25rem;
	background: var(--color-primary);
	color: #fff;
	border: none;
	border-radius: var(--radius-card);
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	white-space: nowrap;
	transition: background var(--ease);
}
.checkout_coupon .button:hover {
	background: var(--color-gold);
}

/* ── Privacy policy text ── */
.woocommerce-privacy-policy-text {
	padding: 0.875rem 1rem;
	margin-bottom: 1rem;
	background: var(--bg-light);
	border-left: 3px solid var(--border);
	border-radius: 0 var(--radius-card) var(--radius-card) 0;
}
.woocommerce-privacy-policy-text p {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--text-muted);
	line-height: 1.6;
}
.woocommerce-privacy-policy-text a {
	color: var(--color-primary);
	font-weight: 400;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* ── TyC checkbox row ── */
.woocommerce-terms-and-conditions-wrapper .form-row {
	margin: 0 0 1rem;
}
.woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	cursor: pointer;
}
/* Hide native checkbox — also covers .input-checkbox used in login "Recordarme" */
.woocommerce-form__input-checkbox,
.input-checkbox {
	appearance: none;
	-webkit-appearance: none;
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.0625rem;
	border: 1.5px solid var(--border);
	border-radius: var(--radius-card);
	background: #fff;
	cursor: pointer;
	transition: background var(--ease), border-color var(--ease);
	position: relative;
}
.woocommerce-form__input-checkbox:checked,
.input-checkbox:checked {
	background: var(--color-primary);
	border-color: var(--color-primary);
}
/* El tilde se dibuja con dos bordes de un cuadrado rotado 45°. La versión
   anterior usaba `inset` con cuatro valores distintos y bordes izquierdo+abajo:
   a 18px la figura salía deformada y se leía como un borrón oscuro, no como un
   check. Con alto/ancho fijos y proporción 6×11 el trazo queda parejo. */
.woocommerce-form__input-checkbox:checked::after,
.input-checkbox:checked::after {
	content: '';
	position: absolute;
	inset: 0;
	margin: auto;
	width: 6px;
	height: 11px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) translateY(-1px);
}
/* Que se note sin tener que mirar el cuadradito: al marcar, la frase pasa de
   gris apagado a negro de texto. Es la señal que faltaba — el cambio de 18 a
   20px ayuda, pero el contraste del texto es lo que se ve de reojo. */
.woocommerce-form__label-for-checkbox:has(input:checked),
.woocommerce-form__label-for-checkbox:has(input:checked) span,
.woocommerce-form__label-for-checkbox:has(input:checked) .woocommerce-terms-and-conditions-checkbox-text {
	color: var(--text-primary);
}
/* .woocommerce-checkout label pone versalita y tracking a TODAS las etiquetas
   del checkout, que es correcto para "NOMBRE" o "EMAIL" pero no para una oración
   entera: "HE LEÍDO Y ESTOY DE ACUERDO CON LOS TÉRMINOS…" en mayúscula con
   2.2px de tracking se lee mucho peor que en minúscula, y es justo el texto que
   conviene que se lea. Lo mismo para el "¿Crear una cuenta?".
   Se acota a las etiquetas de checkbox, que son frases; las de los campos
   siguen igual. */
.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout .woocommerce-form__label-for-checkbox span,
.woocommerce-terms-and-conditions-checkbox-text {
	font-size: 0.8125rem;
	text-transform: none;
	letter-spacing: normal;
	font-weight: 400;
	color: var(--text-muted);
	line-height: 1.55;
}
.woocommerce-terms-and-conditions-link {
	color: var(--color-primary);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.woocommerce-terms-and-conditions-link:hover {
	color: var(--color-gold);
}

/* ── Gift card redeem form on checkout — negro + blush ──
   En checkout el plugin NO genera el wrapper #pwgc-redeem-gift-card-form;
   el <form id="pwgc-redeem-form"> es el elemento raíz. El panel negro va
   directamente en el form. Submit tiene inline style que pisamos con !important. ── */
.cl-checkout-summary #pwgc-redeem-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	width: 100%;
	box-sizing: border-box;
	margin: 1.25rem 0 1rem;
	padding: 1rem 1.125rem;
	background: var(--color-primary);
	border-radius: var(--radius-card);
	overflow: hidden;
}
.cl-checkout-summary #pwgc-redeem-form label {
	display: block;
	width: 100%;
	margin-bottom: 0.5rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-blush);
}
.cl-checkout-summary #pwgc-redeem-error:not(:empty) {
	width: 100%;
	font-size: 0.8125rem;
	color: var(--color-error);
	margin-bottom: 0.25rem;
}
.cl-checkout-summary #pwgc-redeem-gift-card-number {
	flex: 1;
	min-width: 0;
	height: 2.75rem;
	padding: 0 0.875rem;
	border: 1.5px solid rgba(235,204,194,0.3);
	border-radius: var(--radius-card);
	background: rgba(255,255,255,0.08);
	color: #fff;
	font-size: 0.875rem;
	transition: border-color var(--ease), background var(--ease);
}
.cl-checkout-summary #pwgc-redeem-gift-card-number::placeholder {
	color: rgba(255,255,255,0.4);
}
.cl-checkout-summary #pwgc-redeem-gift-card-number:focus {
	outline: none;
	border-color: var(--color-blush);
	background: rgba(255,255,255,0.12);
}
.cl-checkout-summary #pwgc-redeem-button {
	flex-shrink: 0;
}

/* ── TyC inline expandable block — suppressed ──
   The checkbox already links to /terminos-y-condiciones/ which renders the
   full PHP template. The inline block loads raw DB content (Flatsome
   shortcodes), so we hide it entirely. ── */
.woocommerce-terms-and-conditions {
	display: none !important;
}

/* 10. Login / Registro
   ============================================================ */
/* Mi Cuenta — login page */
.cl-login-page {
	background-color: var(--bg-parch);
}

.cl-login-hero {
	background-color: var(--color-primary);
	padding-block: 3rem 2.5rem;
	text-align: left;
}
.cl-login-hero__title {
	font-family: var(--font-serif);
	font-size: var(--fs-title);
	color: #ffffff;
	font-weight: 400;
	margin-bottom: 0;
}

.cl-login-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	max-width: var(--container-form);
	margin-inline: auto;
	padding-block: 3rem 4.5rem;
}

.cl-login-box {
	padding: 2.5rem;
	background-color: #ffffff;
	border: 1.5px solid var(--border);
	border-top: 2px solid var(--color-blush);
	border-radius: var(--radius-card);
}

/* Safety net: prevent WC/plugin box-style on .input-text in account forms.
   Base styles (transparent bg, border-bottom, padding) come from .cl-field in main.css. */
.cl-login-page .cl-field input,
.cl-edit-account-form .cl-field input {
	border: none;
	border-bottom: 1.5px solid var(--border);
	border-radius: 0;
}
/* El foco tiene que repetirse acá: .cl-login-page .cl-field input (arriba) y
   .cl-field input:focus (main.css) tienen la MISMA especificidad —dos clases y
   un elemento— y este archivo carga después, así que la regla de reposo le
   ganaba a la de foco y el campo no cambiaba nada al enfocarlo. Quien navega
   con teclado no veía dónde estaba parado. */
.cl-login-page .cl-field input:focus,
.cl-edit-account-form .cl-field input:focus {
	box-shadow: none;
	border-bottom-color: var(--color-primary);
}

.cl-login-box--register {
	background-color: #ffffff;
}

.cl-login-box__title {
	font-family: var(--font-serif);
	font-size: 1.75rem;
	margin-bottom: 0.5rem;
	color: var(--color-primary);
}

.cl-login-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}

.cl-login-remember {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	cursor: pointer;
}

/* Status pills */
.cl-pill--status-pending    { background: rgba(201,160,96,0.12); border-color: var(--color-gold); color: var(--color-gold); }
.cl-pill--status-processing { background: rgba(131,155,145,0.12); border-color: var(--color-sage); color: var(--color-sage); }
.cl-pill--status-on-hold    { background: rgba(235,204,194,0.2); border-color: var(--color-blush); color: #a07060; }
.cl-pill--status-completed  { background: rgba(131,155,145,0.15); border-color: var(--color-sage); color: var(--color-sage); }
.cl-pill--status-cancelled,
.cl-pill--status-refunded,
.cl-pill--status-failed     { background: rgba(117,0,0,0.08); border-color: var(--color-bordeaux); color: var(--color-bordeaux); }

/* View order */
.cl-view-order__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--border);
}

.cl-view-order__title {
	font-family: var(--font-serif);
	font-size: 1.5rem;
}

.cl-view-order__notes {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--border);
}

.cl-view-order__notes-list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.cl-view-order__note {
	padding: 1rem 1.25rem;
	background-color: var(--bg-light);
	border-radius: var(--radius-card);
}

.cl-view-order__note-content p { margin: 0; }
.cl-view-order__note-date { font-size: .75rem; margin-top: .375rem; margin-bottom: 0; }

.cl-view-order__back { margin-top: 2rem; }

@media (min-width: 641px) {
	.cl-login-grid { grid-template-columns: 1fr 1fr; gap: 3rem; }
}
@media (max-width: 480px) {
	.cl-login-box { padding: 1.5rem; }
	.cl-login-hero { padding-block: 2rem 1.75rem; }
	.cl-login-grid { padding-block: 2rem 3rem; gap: 1.5rem; }
}

/* 11. Mi cuenta — Account header, nav, dashboard, tables, addresses
   ============================================================ */

/* ── Neutralize page.php outer containers so account header/body are full-width ── */
.woocommerce-account main.cl-container {
	max-width: 100%;
	padding-inline: 0;
	padding-block: 0;
}
.woocommerce-account .cl-page,
.woocommerce-checkout .cl-page,
.woocommerce-cart .cl-page            { margin: 0; padding: 0; }
.woocommerce-account .cl-page__header,
.woocommerce-checkout .cl-page__header,
.woocommerce-cart .cl-page__header    { display: none; }
.woocommerce-account .cl-page__content,
.woocommerce-checkout .cl-page__content,
.woocommerce-cart .cl-page__content   { padding: 0; margin: 0; }
/* WC inyecta un <div class="woocommerce"> dentro del shortcode —
   sin esto tiene margin-top implícito que crea la línea blanca */
.woocommerce-account .cl-page__content > .woocommerce,
.woocommerce-checkout .cl-page__content > .woocommerce,
.woocommerce-cart .cl-page__content > .woocommerce {
	margin: 0;
	padding: 0;
}
/* Notices vacíos no reservan espacio */
.woocommerce-account .woocommerce-notices-wrapper:empty,
.woocommerce-checkout .woocommerce-notices-wrapper:empty,
.woocommerce-cart .woocommerce-notices-wrapper:empty {
	display: none;
}
/* Con notices: fondo blanco + padding para que no queden flush */
.woocommerce-checkout .cl-page__content > .woocommerce > .woocommerce-notices-wrapper:not(:empty),
.woocommerce-cart .cl-page__content > .woocommerce > .woocommerce-notices-wrapper:not(:empty) {
	padding: 1rem 1.5rem;
	background: var(--bg-white);
}
.woocommerce-account #cl-wc-content {
	max-width: 100%;
	padding: 0;
}

/* ── Account Header ── */
.cl-account-header {
	background: var(--color-primary);
	color: #fff;
	padding: 2rem 0 2.25rem;
}

.cl-account-header__inner {
	display: flex;
	align-items: center;
	gap: 1.125rem;
}

.cl-account-header__avatar-img {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,0.15);
	display: block;
	flex-shrink: 0;
}

.cl-account-header__info { flex: 1; min-width: 0; }

.cl-account-header__name {
	font-family: var(--font-serif);
	font-size: clamp(1.25rem, 3vw, 1.625rem);
	font-weight: 400;
	color: #fff;
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cl-account-header__logout {
	flex-shrink: 0;
	font-family: var(--font-sans);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.4);
	text-decoration: none;
	padding: 0.45rem 0.875rem;
	border: 1px solid rgba(255,255,255,0.15);
	transition: color var(--ease), border-color var(--ease);
	white-space: nowrap;
}

.cl-account-header__logout:hover {
	color: #fff;
	border-color: rgba(255,255,255,0.4);
}

/* ── Account body: parch bg wraps sidebar + content ── */
.cl-account-body {
	background: var(--bg-parch);
	border-top: 3px solid var(--color-primary);
}

.cl-account-body__inner {
	display: grid;
	grid-template-columns: 1fr;
	align-items: start;
	padding-top: 0;
	padding-bottom: 4rem;
}

@media (min-width: 769px) {
	.cl-account-body__inner {
		grid-template-columns: 220px 1fr;
		gap: 0 3rem;
		padding-top: 0;
	}
}

/* ── Account Nav: mobile = horizontal scrollable tabs ── */

/* On mobile: zero out container padding so the tab bar is naturally edge-to-edge */
@media (max-width: 768px) {
	.cl-account-body__inner {
		padding-inline: 0;
	}
	.cl-account-content {
		padding-inline: var(--container-pad);
	}
}

.cl-account-nav {
	background: #fff;
	border-bottom: 1px solid var(--border);
	position: relative;
	min-width: 0; /* Prevent CSS Grid item from expanding beyond 1fr via UL min-content */
}

/* Gradient hint: more tabs exist to the right */
@media (max-width: 768px) {
	.cl-account-nav::after {
		content: '';
		position: absolute;
		right: 0;
		top: 0;
		bottom: 0;
		width: 3rem;
		background: linear-gradient(to right, transparent, #fff 85%);
		pointer-events: none;
	}

	/* El dedo sobre las tabs solo mueve la fila de costado. Sin esto rige el
	   default (touch-action:auto), que habilita pan-x Y pan-y: el navegador
	   elige según el arranque del gesto, y uno apenas inclinado scrollea la
	   página en vez de la fila. Acotado a mobile: en desktop las tabs entran
	   sin scrollear y pan-x bloquearía el scroll vertical en pantallas táctiles. */
	.cl-account-nav .woocommerce-MyAccount-navigation ul {
		touch-action: pan-x;
		-webkit-overflow-scrolling: touch; /* inercia en iOS, igual que el nav de tienda */
		overscroll-behavior-x: contain;    /* al llegar al tope no encadena a la página */
	}
}

.cl-account-nav .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	overflow-x: auto;
	scrollbar-width: none;
}

.cl-account-nav .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }

.cl-account-nav .woocommerce-MyAccount-navigation li { flex-shrink: 0; }

.cl-account-nav .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.875rem 1rem;
	font-family: var(--font-sans);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--text-muted);
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color var(--ease), border-color var(--ease);
}

.cl-account-nav .woocommerce-MyAccount-navigation li.is-active a,
.cl-account-nav .woocommerce-MyAccount-navigation li a:hover {
	color: var(--color-primary);
	border-bottom-color: var(--color-blush);
}

.cl-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a {
	color: rgba(100,90,85,0.45);
}

.cl-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a:hover {
	color: var(--color-bordeaux);
	border-bottom-color: var(--color-bordeaux);
}

/* Desktop: vertical sidebar nav */
@media (min-width: 769px) {
	.cl-account-nav {
		background: transparent;
		border-bottom: none;
		padding-top: 2.5rem;
		padding-right: 0;
		border-right: 1px solid var(--border);
	}

	.cl-account-nav .woocommerce-MyAccount-navigation ul {
		flex-direction: column;
		overflow-x: visible;
	}

	.cl-account-nav .woocommerce-MyAccount-navigation li a {
		border-bottom: none;
		border-right: 2px solid transparent;
		padding: 0.625rem 1rem 0.625rem 0;
		margin-bottom: 0;
		margin-right: -1px;
		white-space: normal;
	}

	.cl-account-nav .woocommerce-MyAccount-navigation li.is-active a,
	.cl-account-nav .woocommerce-MyAccount-navigation li a:hover {
		color: var(--color-primary);
		border-bottom-color: transparent;
		border-right-color: var(--color-blush);
	}

	.cl-account-nav .woocommerce-MyAccount-navigation-link--customer-logout {
		margin-top: 1rem;
		padding-top: 1rem;
		border-top: 1px solid var(--border);
	}
}

/* ── Account content area ── */
.cl-account-content {
	padding-top: 2rem;
	padding-bottom: 0;
	min-width: 0; /* Prevent CSS Grid item from expanding beyond its track */
}

@media (min-width: 769px) {
	.cl-account-content {
		padding-top: 2.5rem;
	}
}

/* ── Dashboard welcome + cards ── */
.cl-dashboard__welcome {
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	color: var(--text-muted);
	margin: 0 0 2rem;
	line-height: 1.75;
}

/* ── Support card (atención al cliente + WA) ── */
.cl-dashboard__support-card {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	background: var(--color-primary);
	border-top: 3px solid var(--color-blush);
	padding: 1.5rem;
	margin: 2rem 0 0;
}

@media (min-width: 560px) {
	.cl-dashboard__support-card {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 2rem;
	}
}

.cl-dashboard__support-card__body p:not(.cl-eyebrow) {
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	line-height: 1.6;
	color: rgba(255,255,255,0.6);
	margin: 0;
}

.cl-dashboard__support-card__wa {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
	padding: 0.6rem 1.25rem;
	background: transparent;
	border: 1.5px solid var(--color-blush);
	color: var(--color-blush);
	font-family: var(--font-sans);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--ease), color var(--ease);
}

.cl-dashboard__support-card__wa:hover {
	background: var(--color-blush);
	color: var(--color-primary);
}

.cl-dashboard__support-card__wa svg {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
}

.cl-dashboard__cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	margin-bottom: 0;
}

@media (min-width: 480px) {
	.cl-dashboard__cards { grid-template-columns: repeat(2, 1fr); }
}

.cl-dashboard__card {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.25rem;
	background: #fff;
	border: 1px solid var(--border);
	text-decoration: none;
	color: var(--color-primary);
	transition: border-color var(--ease), box-shadow var(--ease), transform var(--ease);
}

.cl-dashboard__card:hover {
	border-color: var(--color-primary);
	box-shadow: 0 4px 16px rgba(0,0,0,0.07);
	transform: translateY(-2px);
}

.cl-dashboard__card-icon {
	flex-shrink: 0;
	width: 2.25rem;
	height: 2.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bg-parch);
}

.cl-dashboard__card-icon svg {
	width: 1.125rem;
	height: 1.125rem;
	stroke: var(--color-primary);
}

.cl-dashboard__card-title {
	font-family: var(--font-sans);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0 0 0.3rem;
	color: var(--color-primary);
}

.cl-dashboard__card-desc {
	font-size: 0.8125rem;
	color: var(--text-muted);
	margin: 0;
	line-height: 1.45;
}

.cl-dashboard__card-arrow {
	margin-left: auto;
	flex-shrink: 0;
	align-self: center;
	font-size: 0.875rem;
	opacity: 0.25;
	transition: transform var(--ease), opacity var(--ease);
}

.cl-dashboard__card:hover .cl-dashboard__card-arrow {
	transform: translateX(4px);
	opacity: 0.6;
}

/* ── Recent orders section ── */
.cl-dashboard__recent {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--border);
}

.cl-dashboard__section-title {
	font-family: var(--font-serif);
	font-size: 0.9375rem;
	font-weight: 400;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin: 0 0 1.25rem;
	color: var(--color-primary);
}

/* ── Table (orders + dashboard) ── */
.cl-table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--font-sans);
	font-size: 0.875rem;
}

.cl-table thead th {
	padding: 0.5rem 0.75rem;
	text-align: left;
	font-size: 0.5625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-muted);
	border-bottom: 1px solid var(--border);
	white-space: nowrap;
}

.cl-table thead th:first-child { padding-left: 0; }

.cl-table tbody td {
	padding: 0.875rem 0.75rem;
	border-bottom: 1px solid var(--border);
	color: var(--color-primary);
	vertical-align: middle;
}

.cl-table tbody td:first-child { padding-left: 0; }

.cl-table tbody tr:last-child td { border-bottom: none; }

.cl-table tbody tr:hover td { background: rgba(0,0,0,0.015); }

/* ── Status pills — override base .cl-pill shape (defined in main.css) ── */
[class*="cl-pill--status-"] {
	border-radius: 0;
	border: 1px solid currentColor;
	background: transparent;
	padding: 0.2em 0.6rem;
}

/* ── Post-orders CTA ── */
.cl-dashboard__cta {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
}

/* ── Empty state ── */
.cl-dashboard__empty {
	text-align: center;
	padding: 3rem 1rem;
}

.cl-dashboard__empty p {
	font-size: 0.9375rem;
	color: var(--text-muted);
	margin-bottom: 1.5rem;
}

/* ── Orders table — responsive card layout en mobile ── */
@media (max-width: 640px) {
	/* Ocultamos el thead; los labels vienen del data-title de cada td */
	.cl-orders-table thead { display: none; }

	/* Cada fila = tarjeta */
	.cl-orders-table tbody tr {
		display: block;
		background: #fff;
		border: 1px solid var(--border);
		border-radius: var(--radius-card);
		padding: 1rem 1.125rem 0.75rem;
		margin-bottom: 0.75rem;
	}
	.cl-orders-table tbody tr:last-child {
		border-bottom: 1px solid var(--border);
		margin-bottom: 0;
	}
	/* Cada celda = fila label : valor */
	.cl-orders-table tbody td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		border-bottom: none;
		padding: 0.3rem 0;
		padding-left: 0;
		background: transparent !important;
	}
	/* Label via data-title */
	.cl-orders-table tbody td::before {
		content: attr(data-title);
		font-size: 0.5625rem;
		font-weight: 700;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: var(--text-muted);
		white-space: nowrap;
		flex-shrink: 0;
	}
	/* Celda de acciones: sin label, botón alineado a la derecha,
	   separada del resto por un borde superior */
	.cl-orders-table td.order-actions {
		justify-content: flex-end;
		padding-top: 0.875rem;
		margin-top: 0.5rem;
		border-top: 1px solid var(--border);
	}
	.cl-orders-table td.order-actions::before { display: none; }
	/* Botón VER más fácil de tocar en mobile */
	.cl-orders-table td.order-actions .cl-btn {
		padding: 0.6rem 1.5rem;
		font-size: 0.6875rem;
	}
}

/* ── Orders pagination ── */
.cl-orders-pagination {
	margin-top: 1.5rem;
	display: flex;
	gap: 0.5rem;
}

/* ── Addresses (WC default + override) ── */

/* Intro text — WC default <p> y nuestro .cl-addresses__intro */
.woocommerce-MyAccount-content > p:first-child,
.cl-addresses__intro {
	font-size: 0.9375rem;
	color: var(--text-muted);
	margin-bottom: 1.75rem;
}

/* Grid — WC usa .woocommerce-Addresses con u-columns, nosotros .cl-addresses__grid */
.woocommerce-Addresses,
.cl-addresses__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
@media (min-width: 600px) {
	.woocommerce-Addresses,
	.cl-addresses__grid { grid-template-columns: repeat(2, 1fr); }
}

/* Tarjeta — WC usa .woocommerce-Address, nosotros .cl-address-card */
.woocommerce-Address,
.cl-address-card {
	padding: 1.5rem;
	background: #fff;
	border: 1px solid var(--border);
	border-top: 3px solid var(--color-blush);
}

/* Header de tarjeta */
.woocommerce-Address-title,
.cl-address-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--border);
}

/* Título eyebrow — !important para pisar h3 del tema o WC con más especificidad */
.woocommerce-Address-title h3,
.cl-address-card__title {
	font-family: var(--font-sans) !important;
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	font-style: normal !important;
	letter-spacing: 0.13em !important;
	text-transform: uppercase !important;
	color: var(--text-muted) !important;
	margin: 0 !important;
}

/* Link Editar */
.woocommerce-Address-title .edit,
.cl-address-card__edit {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-family: var(--font-sans);
	font-size: 0.6875rem;
	font-weight: 700;
	color: var(--text-muted);
	text-decoration: none;
	transition: color var(--ease);
}
.woocommerce-Address-title .edit:hover,
.cl-address-card__edit:hover { color: var(--color-primary); }

/* Texto de dirección — frena el font-style:italic de <address> */
.woocommerce-Address address,
.cl-address-card__address {
	font-style: normal;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--color-primary);
}

.cl-addresses__intro {
	font-size: 0.9375rem;
	color: var(--text-muted);
	margin-bottom: 1.75rem;
}

.cl-addresses__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

@media (min-width: 600px) {
	.cl-addresses__grid { grid-template-columns: repeat(2, 1fr); }
}

.cl-address-card {
	padding: 1.5rem;
	background: #fff;
	border: 1px solid var(--border);
}

.cl-address-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--border);
}

.cl-address-card__title {
	font-family: var(--font-sans);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	margin: 0;
}

.cl-address-card__edit {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-family: var(--font-sans);
	font-size: 0.6875rem;
	font-weight: 700;
	color: var(--text-muted);
	text-decoration: none;
	transition: color var(--ease);
}

.cl-address-card__edit:hover { color: var(--color-primary); }

.cl-address-card__address {
	font-style: normal;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--color-primary);
}

.cl-address-card__empty {
	font-size: 0.9375rem;
	color: var(--text-muted);
	margin-bottom: 1rem;
}

/* 12. WooCommerce Product Add-Ons
   ============================================================ */
.woocommerce-product-addon {
	margin-bottom: 1.25rem;
}

.woocommerce-product-addon .addon-option-container {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-product-addon .addon-label {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	cursor: pointer;
	padding: 1rem 1.125rem;
	border: 1.5px solid var(--border);
	transition: border-color 0.2s ease;
}

.woocommerce-product-addon .addon-label:hover {
	border-color: var(--color-primary);
}

.woocommerce-product-addon input[type="checkbox"],
.woocommerce-product-addon input[type="radio"] {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	margin-top: 3px;
	accent-color: var(--color-primary);
	cursor: pointer;
}

.woocommerce-product-addon .addon-description-container {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.woocommerce-product-addon .addon-description {
	font-size: 0.9375rem;
	color: var(--text-primary);
	font-weight: 500;
	line-height: 1.4;
}

/* Precio del addon — sobrescribe el <mark> por defecto */
.woocommerce-product-addon .addon-price mark,
.woocommerce-product-addon mark.woocommerce-Price-amount {
	background: rgba(235, 204, 194, 0.35);
	color: var(--color-primary);
	font-size: 0.75rem;
	font-weight: 700;
	font-style: normal;
	padding: 0.125rem 0.5rem;
	border-radius: var(--radius-card);
	display: inline-block;
}

.woocommerce-product-addon .woocommerce-Price-amount {
	font-size: 0.75rem;
	font-weight: 700;
}

.woocommerce-product-addon .addon-description-text {
	font-size: 0.8125rem;
	color: var(--text-muted);
	font-style: italic;
	padding: 0.5rem 1.125rem 0.75rem;
	margin-top: -0.25rem;
}

/* ── Thank You Page
   ============================================================ */
.cl-thankyou-hero {
	padding: 2.5rem 0 3rem;
	text-align: center;
}

.cl-thankyou-steps {
	margin-bottom: 2.5rem;
}

.cl-checkout-step__line--done {
	background-color: var(--color-sage);
}

.cl-thankyou-hero__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	background: var(--color-sage);
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 1.25rem;
}

.cl-thankyou-hero__title {
	font-family: var(--font-serif);
	font-size: var(--fs-title);
	color: var(--text-white);
	margin: 0 0 0.75rem;
	font-weight: 400;
}

/* La segunda línea del título va en blush: primera en blanco, segunda en
   cursiva rosada. Es el remate de marca de la página, y el hero no tenía una
   sola nota de la paleta mientras el eyebrow de la sección de abajo sí.
   El blush (#ebccc2) sobre el fondo oscuro (#1c1c1c) da 11,6:1, así que no hay
   problema de lectura al tamaño de título. Aplica igual a la variante de gift
   card ("llegará en minutos"). */
.cl-thankyou-hero__title em {
	color: var(--color-blush);
}

.cl-thankyou-hero__sub {
	color: var(--on-dark-soft);
	font-size: 1rem;
	margin: 0;
}

/* Meta strip: pedido / fecha / total / método de pago */
/* Instrucción de la pasarela (contra reembolso, transferencia…). Se lee como
   una nota, no como un párrafo suelto. */
.cl-thankyou-gateway {
	margin: 0 0 2.5rem;
	padding: 1rem 1.25rem;
	border-left: 2px solid var(--color-gold);
	background: var(--bg-light);
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--text-muted);
}

.cl-thankyou-meta {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	margin: 2.5rem 0;
	overflow: hidden;
}

@media (min-width: 641px) {
	.cl-thankyou-meta { grid-template-columns: repeat(4, 1fr); }
}

.cl-thankyou-meta__item {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 1.25rem 1.5rem;
	border-right: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
}

.cl-thankyou-meta__item:last-child {
	border-right: none;
}

@media (min-width: 641px) {
	.cl-thankyou-meta__item { border-bottom: none; }
}

.cl-thankyou-meta__label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.cl-thankyou-meta__value {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-primary);
}

/* Cuerpo: tabla de ítems + detalles cliente (generados por WC) */
.cl-thankyou-body {
	margin-bottom: 2.5rem;
}

.cl-thankyou-body .woocommerce-order-details,
.cl-thankyou-body .woocommerce-customer-details {
	margin-bottom: 2rem;
}

.cl-thankyou-body .woocommerce-order-details__title,
.cl-thankyou-body .woocommerce-column__title {
	font-family: var(--font-serif);
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid var(--color-primary);
}

.cl-thankyou-body .woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.cl-thankyou-body .woocommerce-table--order-details th,
.cl-thankyou-body .woocommerce-table--order-details td {
	padding: 0.75rem 0.5rem;
	border-bottom: 1px solid var(--border);
	text-align: left;
}

.cl-thankyou-body .woocommerce-table--order-details tfoot th,
.cl-thankyou-body .woocommerce-table--order-details tfoot td {
	font-size: 0.875rem;
	color: var(--text-muted);
}

.cl-thankyou-body .woocommerce-table--order-details tfoot .order-total th,
.cl-thankyou-body .woocommerce-table--order-details tfoot .order-total td {
	font-family: var(--font-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-primary);
	border-top: 2px solid var(--color-primary);
}

.cl-thankyou-body .woocommerce-customer-details address {
	font-style: normal;
	font-size: 0.9375rem;
	line-height: 1.8;
}

/* Columnas billing/shipping en pantallas grandes */
@media (min-width: 769px) {
	.cl-thankyou-body .col2-set {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem;
	}
}

/* CTAs */
.cl-thankyou-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 3rem;
}

.cl-thankyou-empty {
	text-align: center;
	color: var(--text-muted);
	padding: 2rem 0;
}

/* ── Thank You Page: secciones ampliadas
   ============================================================ */

/* Hero: pill de número de pedido */
.cl-thankyou-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1.5rem;
	padding: 0.5rem 1.25rem;
	/* Dorado en vez del blanco translúcido que tenía: el número de pedido es el
	   dato que el cliente vuelve a buscar, y en blanco al 60% quedaba como una
	   nota al pie. El borde es el mismo #c9a060 con transparencia, no un color
	   nuevo. */
	border: 1px solid rgba(201, 160, 96, 0.35);
	border-radius: 2rem;
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-gold);
}

/* Hero: aviso de hotel delivery */
.cl-thankyou-hotel-note {
	margin-top: 1rem;
	padding: 0.625rem 1.25rem;
	background: rgba(255, 255, 255, 0.07);
	border-radius: var(--radius-card);
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.65);
	display: inline-block;
	max-width: 36rem;
}

/* ── Sección 2: Resumen del pedido (parchment) */
.cl-thankyou-summary {
	background: var(--bg-light);
	padding: 4rem 0;
}

/* La tabla de totales mide 34rem y va pegada a la derecha (ver más abajo el
   porqué: alinear los importes con el precio de la pieza). Con el contenedor
   general en 1440px eso dejaba ~900px de vacío a la izquierda, y a 1920 el
   hueco se comía la sección. Acotando la caja al ancho de formulario, la
   tarjeta del producto y los totales quedan uno debajo del otro y el bloque se
   lee como el resumen de una factura. Mismo criterio que --container-form en
   main.css:139-143, creado para este mismo problema en contacto y mi cuenta. */
.cl-thankyou-summary .cl-container {
	max-width: var(--container-form);
}

.cl-thankyou-items {
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	overflow: hidden;
	margin: 1.5rem 0 0;
}

.cl-thankyou-item {
	display: grid;
	grid-template-columns: 80px 1fr auto;
	align-items: center;
	gap: 1.25rem;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--border);
}

.cl-thankyou-item:last-of-type { border-bottom: none; }

.cl-thankyou-item-img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: var(--radius-card);
	display: block;
	background: var(--bg-light);
}

.cl-thankyou-item-img--placeholder {
	border: 1px solid var(--border);
}

.cl-thankyou-item-name {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 600;
	color: var(--color-primary);
	margin: 0 0 0.2rem;
	line-height: 1.3;
}

.cl-thankyou-item-meta {
	display: block;
	font-size: 0.8125rem;
	color: var(--text-muted);
	letter-spacing: 0.04em;
	margin-bottom: 0.2rem;
}

.cl-thankyou-item-qty {
	font-size: 0.8125rem;
	color: var(--text-muted);
}

.cl-thankyou-item-price {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-primary);
	white-space: nowrap;
	text-align: right;
}

/* Tabla de totales */
.cl-thankyou-totals {
	width: 100%;
	border-collapse: collapse;
	margin-top: 1.5rem;
	/* 34rem y no 28: con 28 la tabla quedaba a 900px del bloque del producto
	   de arriba, y su columna de importes no se alineaba con el precio de la
	   pieza. Ahora las tres cifras —precio, subtotal, total— caen una debajo
	   de la otra y se leen de un vistazo. */
	max-width: 34rem;
	margin-left: auto;
}

.cl-thankyou-totals td {
	padding: 0.625rem 0;
	font-size: 0.9375rem;
	border-bottom: 1px solid var(--border);
}

.cl-thankyou-totals td:last-child { text-align: right; }

/* El nombre del método de envío, junto a su etiqueta en la tabla de totales de
   la página de gracias. En gris y un punto más chico: es una precisión de la
   etiqueta, no un dato aparte, y así no compite con los importes de la
   derecha. Ver el porqué en woocommerce/checkout/thankyou.php. */
.cl-thankyou-totals__meta {
	color: var(--text-muted);
	font-size: 0.8125rem;
}

.cl-thankyou-totals__row--order_total td {
	border-bottom: none;
	border-top: 2px solid var(--color-primary);
	font-family: var(--font-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-primary);
	padding-top: 0.875rem;
}

/* ── Sección 3: Qué sigue ─────────────────────────────────────────────────
 * Misma franja que el proceso de Regalos Corporativos: fondo tinta, encabezado
 * .cl-proc-header con eyebrow dorado y .cl-proc-title, y el riel
 * .cl-steps-track--center. Todo eso ya está en pages.css; acá sólo va el fondo
 * y el relleno, copiados de .cl-corp-proceso-section para que las dos franjas
 * midan igual.
 *
 * Historia, porque este bloque cambió tres veces en dos días: el componente
 * nació para fondo oscuro; entre v2.7.13 y v2.7.15 esta sección estuvo sobre
 * blanco y necesitó una inversión de colores completa (antes de eso el texto
 * era blanco sobre blanco, 1,00:1, y el cliente veía un hueco con tres
 * círculos justo después de pagar). En v2.7.16 se recoloreó a blush y dorado,
 * un esquema que no existía en ninguna otra página. Nada de eso queda: sobre
 * oscuro la base del componente alcanza, y usar el mismo encabezado que
 * corporativos evita reinventarlo. Si esta sección vuelve a fondo claro
 * alguna vez, hay que reponer la inversión — está en el historial de git. */
.cl-thankyou-next {
	background: var(--bg-dark);
	padding: clamp(4rem, 8vw, 6rem) clamp(1.25rem, 5vw, 4rem);
}

/* ── Sección 4: Detalles del pedido (blanco) */
/* Sin border-top: separaba dos secciones blancas contiguas y ya no lo son —
   arriba quedó la franja oscura, que separa sola. La línea ahí sólo agregaba
   un pelo claro sobre el borde del negro. */
.cl-thankyou-details {
	padding: 3rem 0 4rem;
	background: #fff;
}

/* El riel se lee mejor angosto y centrado, al ancho del bloque de pasos de
   arriba (--container-read, 860px). A 1440px las dos direcciones quedaban a
   700px de distancia y había que barrer la pantalla para comparar una con la
   otra. minmax(0,1fr) y no 1fr: un mail largo no tiene dónde cortar y sin eso
   estira su columna. */
.cl-thankyou-details__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	max-width: var(--container-read);
	margin-inline: auto;
}

@media (min-width: 641px) {
	.cl-thankyou-details__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Tarjeta de dirección. Toma el borde y el radio de .cl-thankyou-meta y
   .cl-thankyou-items para que las tres cajas de la página sean la misma caja. */
.cl-addr {
	border: 1px solid var(--border);
	border-radius: var(--radius-card);
	background: var(--bg-light);
	padding: 1.5rem 1.75rem 1.75rem;
}

.cl-addr__heading {
	font-family: var(--font-sans);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-muted);
	margin: 0 0 1rem;
}

.cl-addr__body {
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--color-primary);
	font-style: normal;
}

.cl-addr__note {
	margin: 0.875rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--text-muted);
}

/* Cuando la nota reemplaza al domicilio en vez de acompañarlo, arranca donde
   arrancaría la primera línea de la dirección. */
.cl-addr__note--solo {
	margin-top: 0;
	font-size: 0.9375rem;
}

/* Contacto: etiqueta chica a la izquierda, dato a la derecha. Separado del
   domicilio por un filete para que se lea como otra cosa. */
.cl-addr__contact {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.5rem 1.25rem;
	margin: 1.25rem 0 0;
	padding-top: 1.25rem;
	border-top: 1px solid var(--border);
}

.cl-addr__contact dt {
	font-family: var(--font-sans);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
	align-self: center;
}

.cl-addr__contact dd {
	margin: 0;
	font-size: 0.875rem;
	color: var(--color-primary);
	/* Un mail largo no tiene espacios donde cortar: sin esto se sale de la
	   tarjeta en mobile. */
	overflow-wrap: anywhere;
}

/* ── Sección 5: CTA Strip (oscura) */
.cl-thankyou-cta { padding: 5rem 0; }

.cl-thankyou-cta__title {
	font-family: var(--font-serif);
	font-size: var(--fs-section-sm);
	color: var(--text-white);
	font-weight: 400;
	margin: 1.25rem 0 2rem;
	line-height: 1.3;
}

.cl-thankyou-cta__btns {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
}

/* ── Sección 6: WhatsApp (parchment) */
.cl-thankyou-wpp {
	padding: 3rem 0;
	text-align: center;
	background: var(--bg-light);
}

.cl-thankyou-wpp__heading {
	font-size: 1rem;
	color: var(--color-primary);
	margin: 0 0 1.25rem;
}

.cl-thankyou-wpp__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.cl-thankyou-wpp__note {
	margin: 1rem 0 0;
	font-size: 0.875rem;
	color: var(--text-muted);
}

/* ── Mobile */
@media (max-width: 480px) {
	.cl-thankyou-item {
		grid-template-columns: 60px 1fr;
		gap: 0.875rem;
	}
	.cl-thankyou-item-img { width: 60px; height: 60px; }
	.cl-thankyou-item-price { grid-column: 2; }
	.cl-thankyou-cta__btns .cl-btn { width: 100%; justify-content: center; }
}

/* 13. Modo Catálogo
   Selectores gatillados por .cl-catalog-mode (body class inyectada por el plugin
   cuando cl_catalog_mode = 1). La lógica de ocultado crítica vive en el plugin
   (clh_catalog_frontend_css vía wp_head) para evitar FOUC; este bloque cubre
   casos de fallback y elementos WC que no requieren prioridad alta.
   ─────────────────────────────────────────────────────────────────────────── */

/* Ocultar precio y ATC en archivo de tienda */
.cl-catalog-mode .woocommerce ul.products .price,
.cl-catalog-mode .woocommerce ul.products .add_to_cart_button { display: none !important; }

/* Ocultar bloque de variaciones en PDP (el inline CSS del plugin oculta el form;
   esto cubre el selector de variaciones que puede quedar visible en algunos temas) */
.cl-catalog-mode .single-product .variations_form .variations { display: none !important; }

/* Ocultar barra de envío gratis y contador de carrito (respaldo del inline CSS) */
.cl-catalog-mode .cl-ship-bar,
.cl-catalog-mode .cl-nav__cart,
.cl-catalog-mode .cl-cart-count { display: none !important; }

/* Quitar borde dorado superior del description strip en shop/archive */
.cl-catalog-mode .cl-shop-desc-strip { border-top: none; }


/* ═══════════════════════════════════════════════════════════════
   SELECT2 — el desplegable que WooCommerce usa para provincia
   ═══════════════════════════════════════════════════════════════
   WooCommerce reemplaza algunos <select> por select2, una librería con su
   propio CSS. El tema no tenía una sola regla para ese componente, así que el
   campo de provincia se dibujaba con el aspecto por defecto de la librería:
   28px de alto contra los 52 de todos los demás campos, con caja, borde
   completo y esquinas de 4px, en un formulario donde el resto son subrayados
   sin radio. Encima, 28px es poca superficie para el pulgar.

   Rareza que esto además empareja: el país es un <select> nativo —que sí toma
   los estilos del tema— y la provincia es select2. Eran dos controles distintos
   para la misma clase de elección, uno al lado del otro.

   Los selectores replican la especificidad de la librería
   (.select2-container--default + clase) para ganarle sin recurrir a !important. */

.select2-container--default .select2-selection--single {
	height: 52px;
	padding: 0;
	background: transparent;
	border: none;
	border-bottom: 1.5px solid var(--border);
	border-radius: 0;
	transition: border-color var(--ease);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	/* line-height igual al alto: es como centra select2 su texto. El padding
	   derecho reserva el lugar de la flecha. */
	line-height: 52px;
	padding-left: 0;
	padding-right: 1.75rem;
	font-family: var(--font-sans);
	font-size: 1rem;
	color: var(--color-primary);
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
	color: var(--text-muted);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 52px;
	right: 0;
}

/* Mismo foco negro que los demás campos: el blush no se ve contra el filete en
   reposo —1.07:1— y acá el filete es la única señal. */
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--single {
	border-bottom-color: var(--color-primary);
}

/* El panel desplegable */
.select2-dropdown {
	border: 1.5px solid var(--color-primary);
	border-radius: 0;
}

.select2-container--default .select2-results__option {
	/* 0.625rem arriba y abajo sobre 16px de texto da ~44px de alto por opción:
	   una lista de provincias se recorre con el pulgar. */
	padding: 0.625rem 0.75rem;
	font-family: var(--font-sans);
	font-size: 1rem;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background-color: var(--color-primary);
	color: #fff;
}

.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] {
	background-color: var(--bg-parch);
	color: var(--color-primary);
}

.select2-search--dropdown .select2-search__field {
	border: 1.5px solid var(--border);
	border-radius: 0;
	padding: 0.625rem;
	font-family: var(--font-sans);
	font-size: 1rem;
}

/* El aro de foco global (main.css :focus-visible) es blush, que sobre blanco da
   1.51:1 y acá quedaba como un marco rosa alrededor del buscador. Se pisa con
   el mismo negro que usan los campos del checkout: 17.04:1.
   NOTA: el problema del aro blush es de todo el sitio, no de este control. Acá
   sólo se corrige donde se vio. */
.select2-container--default .select2-search--dropdown .select2-search__field:focus,
.select2-container--default .select2-search--dropdown .select2-search__field:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 1px;
	border-color: var(--color-primary);
}

/* Elegir el método de envío es un paso obligatorio del checkout y la primera
   fila medía 37px de alto: incómoda con el pulgar. El radio en sí mide 13px,
   pero eso no importa porque tiene <label> asociado y se toca la fila entera;
   lo que hay que agrandar es la fila.
   Sólo en pantallas táctiles: con mouse la precisión sobra y estirar las filas
   separaría de más el resumen del pedido. */
@media (pointer: coarse) {
	.cl-checkout-order-review .woocommerce-shipping-methods li,
	.cl-cart-sidebar .woocommerce-shipping-methods li {
		min-height: 44px;
		align-items: center;
	}
}


/* ── Foco de teclado en el checkout y el carrito ─────────────────────────
   Estos campos señalan el foco oscureciendo su subrayado: de #e0d8cf a #1c1c1c,
   12.09:1. No llevan aro.

   Hasta v2.6.4 llevaban un cuadrado negro alrededor, agregado cuando se creyó
   que el borde no respondía. Sí respondía —era un error de medición, ver el
   comentario largo en el CHANGELOG de v2.6.5— y además el cuadrado aparecía al
   CLICKEAR, porque aquellas reglas usaban :focus en vez de :focus-visible. Con
   mouse no tiene que aparecer nada.

   Lo único que hacía falta era que el subrayado fuera a un color visible, y eso
   ya está resuelto arriba. */

/* El canje de gift card vive en la barra lateral OSCURA y su filete ya es claro
   en reposo, así que oscurecerlo no señala nada: éste sí necesita aro, y va
   dorado como el resto del sitio. Con :focus-visible, o sea sólo con teclado. */
#pwgc-redeem-gift-card-form input#pwgc-redeem-gift-card-number:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 0;
	box-shadow: 0 0 0 3px var(--color-primary);
}


/* ── MercadoPago: bajarle el volumen a la caja del plugin ─────────────────
   El bloque medía 450px de alto dentro de "Tu pedido", y 158 de esos eran
   publicidad del propio plugin: el título "Descubre la practicidad de Mercado
   Pago" y dos columnas explicando sus ventajas. El cliente que llegó hasta acá
   YA eligió MercadoPago; eso no le ayuda a decidir nada y está escrito en
   español neutro —"Descubre", "puedes", "tus tarjetas guardadas"— contra un
   sitio que vosea en todas sus páginas.

   Se ocultan sólo esas dos piezas. Lo que informa se queda:
     · los logos de las tarjetas, que son marcas de medios de pago aceptados;
     · el aviso "Te llevaremos a Mercado Pago", que es lo único del bloque que
       le dice al cliente qué va a pasar cuando apriete el botón;
     · el cartel de modo test, que es una advertencia y tiene que verse mientras
       el modo test esté activo.

   No se toca el plugin: todo por CSS, y si mañana cambian sus clases lo peor
   que pasa es que vuelva a verse el bloque entero. */

/* Con el selector pelado no alcanza: el CSS del plugin se encola DESPUÉS del
   del tema, así que a igual especificidad gana el suyo. Se antepone .payment_box
   —el contenedor que envuelve la pasarela— para ganarle sin recurrir a
   !important. */
/* El !important es necesario, no cómodo: el plugin declara estas columnas con
   #mp-checkout-pro-root.mp-checkout-pro-container .mp-checkout-pro-benefits, o
   sea un selector que arranca con un ID y le gana a cualquier cantidad de
   clases. Se probó con dos y con tres clases y el bloque siguió en display:flex;
   la regla ganadora se identificó recorriendo el CSSOM, no a ojo.
   El título sí cedía sin !important, pero se lo deja en la misma regla para que
   los dos se comporten igual si el plugin cambia. */
.woocommerce-checkout .payment_box .mp-checkout-pro-benefits-title,
.woocommerce-checkout .payment_box .mp-checkout-pro-benefits {
	display: none !important;
}

/* El bloque venía con fondo blanco propio, que dentro de la caja crema del
   resumen se leía como un panel ajeno pegado encima. */
.payment_box .mp-checkout-container,
.payment_box .mp-checkout-pro-container,
.payment_box .mp-checkout-pro-content {
	background: transparent;
}

/* Los logos, más compactos: ya no tienen que separar dos bloques de texto. */
.payment_box .mp-checkout-pro-payment-methods {
	margin: 0 0 1rem;
}

/* El aviso de redirección, con la tipografía del sitio en vez de la del plugin. */
.payment_box .mp-checkout-pro-redirect {
	background: var(--bg-mid);
	border-radius: 0;
	padding: 0.875rem 1rem;
}

.payment_box .mp-checkout-pro-redirect-title {
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--color-primary);
}

/* El cartel de modo test: se compacta pero conserva su carácter de advertencia
   —incluido el filete naranja— porque mientras esté encendido el checkout no
   cobra de verdad y eso tiene que saltar a la vista. */
.payment_box .mp-test-mode-card {
	border-radius: 0;
	padding: 0.75rem 0.875rem;
	margin-bottom: 1rem;
}

.payment_box .mp-test-mode-title {
	font-family: var(--font-sans);
	font-size: 0.8125rem;
}

.payment_box .mp-test-mode-description,
.payment_box .mp-test-mode-link {
	font-size: 0.75rem;
	line-height: 1.5;
}


/* El campo de cantidad del carrito mide 40px, que con el mouse alcanza pero con
   el dedo queda corto: 44 es el mínimo cómodo y es justo el control que se toca
   para cambiar cantidades. Se agranda sólo en pantallas táctiles, para no
   engordar la fila en escritorio. */
@media (pointer: coarse) {
	.cl-cart-row td.product-quantity input.qty {
		height: 44px;
	}
}

/* El grabado en el resumen del checkout YA tiene su estilo de la casa más
   arriba: .cl-checkout-order-review dl.variation dd p (línea ~2054) lo dibuja
   como pill negro con ✓ dorado. Acá hubo un bloque duplicado que agregaba un
   segundo ✓ sobre ese; se borró. Lo único que faltaba era el TEXTO, y eso se
   arregla del lado de PHP (cl_grabado_texto_resumen en inc/wc-cart.php). */

/* ── ENVÍO TODAVÍA SIN CALCULAR ───────────────────────────────────
   La fila que reemplaza a las opciones de envío mientras falta el código
   postal (woocommerce/checkout/review-order.php). Aparece sólo con el ajuste
   "ocultar los gastos de envío hasta que se introduzca una dirección" y
   desaparece sola en cuanto el cliente escribe el CP y WooCommerce refresca
   la tabla por AJAX.

   Se escribe en el gris apagado del texto secundario y NO en el negro de los
   importes, a propósito: es un estado de espera, no un dato. Si se pareciera
   a las otras filas, el ojo lo leería como una opción más. */
.cl-checkout-order-review tr.cl-shipping-pending th,
.cl-checkout-order-review tr.cl-shipping-pending td {
	vertical-align: top;
}
.cl-shipping-pending__msg,
.cl-shipping-pending__hint {
	display: block;
	font-size: 0.8125rem;
	line-height: 1.55;
}
.cl-shipping-pending__msg {
	color: var(--text-muted);
}
.cl-shipping-pending__hint {
	margin-top: 0.25rem;
	color: var(--color-gold);
}

/* ── RÓTULO "MEDIOS DE PAGO" ──────────────────────────────────────
   Lo emite cl_titulo_medios_de_pago() (inc/wc-cart.php) por el hook
   woocommerce_review_order_before_payment.

   Copia EXACTA de la tipografía de los labels del pie de la tabla
   (.cl-checkout-order-review tfoot th): mismo cuerpo, mismo tracking, mismas
   mayúsculas y el mismo gris. La idea es que se lea como un hermano de ENVÍO
   y de TOTAL, no como un título nuevo — si tuviera más peso, competiría con
   "Tu pedido", que es el título de la caja.

   El borde superior separa el bloque de pago del total sin agregar una línea
   más: reemplaza al que la fila del total no lleva. */
.cl-checkout-payment__title {
	margin: 0 0 0.875rem;
	padding-top: 1.125rem;
	border-top: 1px solid var(--border);
	font-family: inherit;
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--text-muted);
	font-weight: 700;
	line-height: 1.4;
}

/* ── UNIDAD APARTADA POR UN PEDIDO IMPAGO ────────────────────────
   La clase la pone cl_disponibilidad_descontando_reservas() en
   inc/wc-product.php, cuando hay stock en el depósito pero está todo
   reservado. Reemplaza al "1 en stock" que WooCommerce mostraba y que el
   carrito después rechazaba.

   Bordó porque es el color de atención de la marca y avisa que ahora no se
   puede comprar; --color-error ya resuelve a --color-bordeaux (main.css:51).
   En itálica y un punto más chico para que se lea como un estado de espera y
   no como una de las líneas de datos del producto. */
.cl-reservado {
	color: var(--color-error);
	font-style: italic;
	font-size: .92rem;
	line-height: 1.5;
	display: block;
	max-width: 42ch;
}
