/**
 * Tienda: lo que el diseño de THE TIAS pide y Elementor no puede guardar en una Clase.
 *
 * Tarjeta destacada de la rejilla de la tienda (Send220426 desktop 1200×657; móvil 330×300).
 * El producto lleva la estrella de WooCommerce, que llega a la rejilla como su clase
 * `featured`; el orden de las tarjetas lo pone `inc/tienda.php`. La colocación densa
 * cierra la fila anterior a la destacada también a 2 columnas, donde el orden pensado
 * para 3 dejaría un hueco.
 *
 * Nombre a una línea con «…» en móvil (RJ_WFM_Tienda.pdf pág. 1): con `white-space: nowrap`
 * el nombre empuja la columna (los elementos de una rejilla tienen `min-width: auto`); el
 * Loop Grid no ofrece `minmax(0, 1fr)`, así que se anula aquí en el propio elemento.
 */

.elementor-loop-container > .e-loop-item {
	min-width: 0;
}

.woocommerce-shop .elementor-loop-container {
	grid-auto-flow: row dense;
}

.woocommerce-shop .e-loop-item.featured {
	grid-column: 1 / -1;
}

.woocommerce-shop .e-loop-item.featured .rj-product__img {
	/* Respaldo: solo actúa si la foto no da para los recortes de la destacada (inc/tienda.php)
	   y llega la de la rejilla (13:15); con el recorte real la proporción ya es esta. */
	aspect-ratio: 1200 / 657;
	object-fit: cover;
}

@media (max-width: 1024px) {
	.woocommerce-shop .e-loop-item.featured .rj-product__img {
		aspect-ratio: 330 / 300;
	}
}

/* ------------------------------------------------------------------
 * Ficha de producto (RJ_Tienda_Pantallas.pdf págs. 4–12; RJ_WFM_Tienda.pdf págs. 5–9)
 * Lo que sigue viste el formulario nativo de WooCommerce y los widgets V3
 * (galería, carrusel, acordeón), que no admiten Clases del Kit en su interior.
 * ------------------------------------------------------------------ */

/* Miga: sin subrayados, separador «›» con aire. */
.rj-product__breadcrumb a {
	color: inherit;
	text-decoration: none;
}
.rj-product__breadcrumb-sep {
	margin-inline: 0.5em;
}

/* Precio anterior en oferta, como en la tarjeta. */
.rj-product__price del {
	display: block;
	color: var(--rj-contrast-muted);
	text-decoration: line-through;
}
.rj-product__price ins {
	text-decoration: none;
}

/* Acordeón de componentes (págs. 11–12): el nombre abierto pasa a Semibold. */
.rj-component .e-n-accordion-item[open] > .e-n-accordion-item-title {
	font-weight: 600;
}

/* Formulario de compra. Todo lo que WooCommerce anida pasa a ser hijo directo del
 * formulario para ordenarlo como el wireframe: tallas, cantidad + «disponibles», botón. */
.rj-product__cart .elementor-add-to-cart {
	--button-spacing: -1px; /* el widget separa los botones 10 px; los cuadrados de talla van pegados */
	display: grid;
	grid-template-columns: max-content 1fr;
	grid-auto-flow: row dense;
	align-items: center;
	gap: var(--rj-space-40) var(--rj-space-25);
}
.rj-product__cart form.cart,
.rj-product__cart .e-atc-qty-button-holder,
.rj-product__cart .variations,
.rj-product__cart .variations tbody,
.rj-product__cart .variations tr,
.rj-product__cart .variations td,
.rj-product__cart .single_variation_wrap,
.rj-product__cart .single_variation,
.rj-product__cart .woocommerce-variation-availability,
.rj-product__cart .woocommerce-variation-add-to-cart {
	display: contents;
}
/* El widget fija este contenedor a flex con un selector de mucha especificidad (`:is(…)` con
   `.woocommerce div.product …`); no hay forma limpia de superarlo sin `!important`. */
.rj-product__cart form.cart,
.rj-product__cart .woocommerce-variation-add-to-cart,
.rj-product__cart .e-atc-qty-button-holder {
	display: contents !important;
}
.rj-product__cart .variations th,            /* «Talla prenda»: el grupo de cuadrados ya lleva el nombre */
.rj-product__cart .reset_variations,
.rj-product__cart .woocommerce-variation-price,
.rj-product__cart .woocommerce-variation-description,
.rj-product__cart .rj-pills__select {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

/* Tallas: cuadrados de 60×39 pegados, 20 Regular (pág. 10). */
.rj-pills {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	margin-block-start: calc(var(--rj-space-35) - var(--rj-space-40)); /* a 35 de la descripción, no a 40 */
}
.rj-product__cart .rj-pills > .rj-pills__option {
	width: 60px;
	height: 39px;
	margin: 0 0 -1px -1px;
	padding: 0;
	border: var(--rj-line-ui) solid var(--rj-contrast);
	background: transparent;
	color: var(--rj-contrast);
	font: 400 20px/1 var(--rj-font-body);
	cursor: pointer;
}
.rj-product__cart .rj-pills > .rj-pills__option:first-child {
	margin-inline-start: 0;
}
/* Los estados necesitan la misma especificidad que la regla de arriba
   (`.rj-product__cart .rj-pills > .rj-pills__option`), o el fondo transparente de esa gana y la
   talla elegida no se distingue. */
.rj-product__cart .rj-pills > .rj-pills__option.is-selected {
	background: var(--rj-contrast);
	color: var(--rj-base);
}
.rj-product__cart .rj-pills > .rj-pills__option:disabled {
	color: var(--rj-contrast-muted);
	cursor: not-allowed;
}
.rj-pills__option:focus-visible {
	outline: 2px solid var(--rj-contrast);
	outline-offset: 2px;
	position: relative;
}

/* «GUÍA DE TALLAS» (pág. 10): debajo de los cuadrados de talla, a 15 de ellos. El enlace lo trae
   `tienda.js` desde fuera del formulario, así que aquí solo se le da su sitio en la rejilla. */
.rj-product__cart .rj-product__size-guide {
	grid-column: 1 / -1;
	justify-self: start;
	margin-block-start: calc(var(--rj-space-15) - var(--rj-space-40));
}

/* Cantidad (pág. 4): el −/+ de 100×34 es el mismo de la cesta y vive en cesta.css (.rj-qty);
   aquí solo su sitio en la rejilla del formulario. */
.rj-product__cart form.cart .quantity {
	grid-column: 1;
}

/* «57 disponibles» a la derecha de la cantidad, 18 Regular en gris (pág. 4). */
.rj-product__cart .stock {
	grid-column: 2;
	margin: 0;
	color: var(--rj-contrast-muted);
	font-size: 18px;
}
.rj-product__cart .stock.out-of-stock {
	grid-column: 1 / -1;
}

/* «AÑADIR A LA CESTA»: 195×40, 18 Medium mayúsculas, con los tokens de rj-btn (pág. 4). */
.rj-product__cart .single_add_to_cart_button {
	grid-column: 1 / -1;
	justify-self: start;
	height: 40px;
	padding: 0 var(--rj-space-25);
	border: 0;
	border-radius: 0;
	background: var(--rj-contrast); /* como los botones oscuros del wireframe (rj-btn--contrast) */
	color: var(--rj-base);
	font: 500 18px/1 var(--rj-font-body);
	text-transform: uppercase;
	cursor: pointer;
}
.rj-product__cart .single_add_to_cart_button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}
.rj-product__cart .single_add_to_cart_button:focus-visible {
	outline: 2px solid var(--rj-contrast);
	outline-offset: 2px;
}

/* Compartir (pág. 4): el widget reserva una caja de 4,5 em por icono; aquí la caja es el icono. */
.rj-product__share .elementor-share-btn,
.rj-product__share .elementor-share-btn__icon {
	width: auto;
	height: auto;
	padding: 0;
}

@media (max-width: 1024px) {
	/* Carrusel de fotos: puntos dentro de la foto, abajo a la izquierda (RJ_WFM_Tienda.pdf pág. 5). */
	.rj-product__slides .swiper-pagination {
		inset-block-end: 15px;
		inset-inline-start: 15px;
		width: auto;
		text-align: start;
		line-height: 0;
	}
	.rj-product__slides .swiper-pagination-bullet {
		margin: 0 4px 0 0;
		border: 1px solid var(--rj-contrast);
		opacity: 1;
	}

	/* Botón fijo abajo mientras dura la descripción; sube con ella al acabar (págs. 5–7).
	 * Un elemento «sticky» solo se sujeta dentro de su padre, así que en móvil el formulario
	 * y sus envoltorios se disuelven (display: contents) y tallas, cantidad, stock y botón
	 * pasan a ser hijos directos de la columna, que sí abarca toda la descripción. */
	.elementor .rj-product__summary .rj-product__cart,
	.rj-product__cart > .elementor-widget-woocommerce-product-add-to-cart,
	.rj-product__cart .elementor-add-to-cart {
		display: contents;
	}
	.rj-product__summary .rj-pills {
		margin-block-start: var(--rj-space-35);
	}
	.rj-product__summary .quantity {
		margin-block-start: var(--rj-space-40);
	}
	.rj-product__summary .stock {
		margin-block-start: var(--rj-space-10);
	}
	.rj-product__summary .single_add_to_cart_button {
		position: sticky;
		inset-block-end: calc(var(--rjp-player-h, 65px) + 15px); /* encima del reproductor (su alto lo publica rj-player) */
		align-self: stretch;
		max-width: none;
		margin-block-start: var(--rj-space-40);
		box-shadow: 0 0 0 15px var(--rj-base); /* banda blanca de 15 (pág. 5: banda de 70 con botón de 40) */
	}
}

/* ==================================================================
 * Página de la cesta (RJ_Tienda_Pantallas.pdf pág. 15, Send220426; RJ_WFM_Tienda.pdf
 * págs. 10–11, Móvil). El shortcode [woocommerce_cart] pinta las plantillas del tema
 * (woocommerce/cart/): aquí va lo que Elementor no puede guardar sobre ese marcado.
 */

/* Dos columnas: artículos 600 · 180 · resumen 420 (pág. 15: x=120→720 y 900→1320). */
.rj-cart-page__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	column-gap: calc(var(--rj-space-150) + var(--rj-space-30)); /* 180 */
	align-items: start;
}
@media (min-width: 1025px) and (max-width: 1260px) {
	.rj-cart-page__layout {
		column-gap: var(--rj-space-60);
	}
}
.rj-cart-page__items {
	display: flex;
	flex-direction: column;
	gap: var(--rj-space-30);
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Artículo: foto 270 (600×756 → 270×340), texto a 30. */
.rj-cart-page__item {
	position: relative;
	display: grid;
	grid-template-columns: 270px minmax(0, 1fr);
	column-gap: var(--rj-space-30);
	align-items: start;
	margin: 0;
	padding: 0;
}
.rj-cart-page__img {
	line-height: 0;
}
.rj-cart-page__img a {
	display: block;
}
.rj-cart-page__img img {
	display: block;
	width: 100%;
	height: auto;
}
.rj-cart-page__name,
.rj-cart-page__price {
	margin: 0;
	font-size: 20px;
	line-height: 26px;
}
.rj-cart-page__name a {
	color: inherit;
	text-decoration: none;
}
.rj-cart-page__name a:hover,
.rj-cart-page__name a:focus-visible {
	text-decoration: underline;
}
.rj-cart-page__price {
	font-weight: 600;
}
/* «Talla: XL», «Cantidad: 1», «Total: 20,00 €» a 20 Regular (total en Semibold), a 10 del precio. */
.rj-cart-page__details {
	margin-block-start: var(--rj-space-10);
	font-size: 20px;
	line-height: 24px;
}
.rj-cart-page__details p,
.rj-cart-page__details .variation {
	margin: 0;
}
.rj-cart-page__details .variation {
	display: flex;
	flex-wrap: wrap;
	gap: 0 0.25em;
}
.rj-cart-page__details .variation dt,
.rj-cart-page__details .variation dd,
.rj-cart-page__details .variation p {
	display: inline;
	margin: 0;
	font-weight: 400;
}
.rj-cart-page__subtotal strong {
	font-weight: 600;
}
.rj-cart-page__qty {
	margin-block-start: var(--rj-space-25);
}
/* Quitar: el wireframe no dibuja papelera; el enlace de WooCommerce queda para el teclado y
   el lector de pantalla (screen-reader-text de Hello: aparece al recibir el foco). */

/* Columna derecha, fija mientras dura la lista (comentario de SAM); a 80 de arriba como
   la ficha. */
.rj-cart-page__aside {
	position: sticky;
	inset-block-start: var(--rj-space-80);
	display: flex;
	flex-direction: column;
}
/* Cupón (pág. 15): campo 300×35 «Código de cupón» a 18 + «APLICAR» 120×35 con borde fino. */
.rj-cart-page__coupon {
	display: flex;
	align-items: stretch;
}
.rj-cart-page__coupon-input {
	box-sizing: border-box;
	flex: 1 1 auto;
	min-width: 0;
	height: 35px;
	margin: 0;
	padding: 0 var(--rj-space-12);
	border: var(--rj-line-thin) solid var(--rj-contrast);
	border-inline-end: 0;
	border-radius: 0;
	background: var(--rj-base);
	color: var(--rj-contrast);
	font: 400 18px/1 var(--rj-font-body);
}
.rj-cart-page__coupon-input::placeholder {
	color: var(--rj-placeholder);
	opacity: 1;
}
.rj-cart-page__coupon-input:focus-visible {
	outline: 2px solid var(--rj-contrast);
	outline-offset: -2px;
}
.rj-cart-page__coupon-btn {
	box-sizing: border-box;
	flex: 0 0 120px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 35px;
	padding: 0;
	border: var(--rj-line-thin) solid var(--rj-contrast);
	border-radius: 0;
	background: transparent;
	color: var(--rj-contrast);
	font: 500 18px/1 var(--rj-font-body);
	text-transform: uppercase;
	cursor: pointer;
}
.rj-cart-page__coupon-btn:hover,
.rj-cart-page__coupon-btn:focus-visible {
	font-weight: 700;
}
.rj-cart-page__coupon-btn:focus-visible {
	outline: 2px solid var(--rj-contrast);
	outline-offset: 2px;
}
/* Resumen (pág. 15): a 50 del cupón, 20 Regular con líneas de 26; el total en negrita a 14 → 15. */
.rj-cart-page__totals {
	display: flex;
	flex-direction: column;
}
.rj-cart-page__totals .rj-cart__totals {
	margin: var(--rj-space-50) 0 0;
	padding: 0;
	font-size: 20px;
	line-height: 26px;
}
.rj-cart-page__totals .rj-cart__row--total {
	margin-block-start: var(--rj-space-15);
}
.rj-cart-page__totals .includes_tax {
	font-size: 16px;
	line-height: 20px;
}
.rj-cart-page__totals .woocommerce-remove-coupon {
	margin-inline-start: 0.5em;
	color: inherit;
	font-size: 16px;
}
/* «CONTINUAR CON EL PAGO» (pág. 15: 420×50 a 45 → 50 del total) y la nota a 26 → 25. */
.rj-cart-page__checkout {
	margin-block-start: var(--rj-space-50);
}
.rj-cart-page__checkout-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: var(--rj-space-50);
	padding: 0;
	font: 500 20px/1 var(--rj-font-body);
	text-transform: uppercase;
	text-decoration: none;
}
.rj-cart-page__checkout-btn:hover,
.rj-cart-page__checkout-btn:focus-visible {
	font-weight: 700;
}
.rj-cart-page__note {
	margin: var(--rj-space-25) 0 0;
	font-size: 18px;
	line-height: 24px;
}

/* Avisos de WooCommerce (cupón aplicado, artículo quitado con «Deshacer»): sin su hoja de
   estilos, solo el texto. */
.rj-cart-page .woocommerce-message,
.rj-cart-page .woocommerce-error,
.rj-cart-page .woocommerce-info {
	margin: 0 0 var(--rj-space-30);
	padding: 0;
	list-style: none;
	font-size: 18px;
	line-height: 24px;
}
.rj-cart-page .woocommerce-message a,
.rj-cart-page .woocommerce-error a,
.rj-cart-page .woocommerce-info a {
	color: inherit;
}
.rj-cart-page .cart-empty + .return-to-shop {
	margin: var(--rj-space-25) 0 0;
}
.rj-cart-page .return-to-shop .button {
	color: inherit;
}

@media (max-width: 1024px) {
	/* Móvil (RJ_WFM_Tienda.pdf págs. 10–11): «TU CESTA» con línea (Clase rj-cart-page__title); una columna; foto 120×151
	   a 15 del texto; nombre 15 Semibold; datos a 12; sin precio unitario ni «Total:», solo el
	   importe de la línea; el botón de pago queda fijo abajo hasta el final. */
	.rj-cart-page__layout {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}
	/* El botón fijo solo se sujeta dentro de su padre: la columna y el bloque de totales se
	   disuelven para que el botón cuelgue del formulario entero, que abarca la lista. */
	.rj-cart-page__aside,
	.rj-cart-page__collaterals,
	.rj-cart-page__totals {
		display: contents;
	}
	.rj-cart-page__items {
		gap: var(--rj-space-20);
	}
	.rj-cart-page__item {
		grid-template-columns: 120px minmax(0, 1fr);
		column-gap: var(--rj-space-15);
	}
	.rj-cart-page__img img {
		width: 120px;
		height: 151px;
		object-fit: cover;
	}
	.rj-cart-page__name {
		font-size: 15px;
		line-height: 18px;
		font-weight: 600;
	}
	.rj-cart-page__price,
	.rj-cart-page__subtotal-label {
		display: none;
	}
	.rj-cart-page__details {
		margin-block-start: 3px;
		font-size: 12px;
		line-height: 16px;
	}
	.rj-cart-page__subtotal strong {
		font-weight: 400;
	}
	.rj-cart-page__qty {
		margin-block-start: var(--rj-space-15);
	}
	/* Cupón (pág. 10): campo 236×34 a 15 + «APLICAR» 94×34 relleno, a 25 de la lista. */
	.rj-cart-page__coupon {
		margin-block-start: var(--rj-space-25);
	}
	.rj-cart-page__coupon-input {
		height: 34px;
		font-size: 15px;
	}
	.rj-cart-page__coupon-btn {
		flex: 0 0 94px;
		height: 34px;
		border: 0;
		background: var(--rj-contrast);
		color: var(--rj-base);
		font-size: 15px;
	}
	/* Resumen (págs. 10–11): a 25 del cupón, 15 con líneas de 20; total a 11 → 10; nota a 12
	   con líneas de 16, a 16 → 15; el botón, de 40, en una banda blanca de 70 sobre el reproductor. */
	.rj-cart-page__totals .rj-cart__totals {
		margin-block-start: var(--rj-space-25);
		font-size: 15px;
		line-height: 20px;
	}
	.rj-cart-page__totals .rj-cart__row--total {
		margin-block-start: var(--rj-space-10);
	}
	.rj-cart-page__note {
		margin-block-start: var(--rj-space-15);
		font-size: 12px;
		line-height: 16px;
	}
	.rj-cart-page__checkout {
		order: 1;
		position: sticky;
		inset-block-end: calc(var(--rjp-player-h, 65px) + 15px);
		align-self: stretch;
		margin-block-start: var(--rj-space-25);
		background: var(--rj-base);
		box-shadow: 0 0 0 15px var(--rj-base);
	}
	.rj-cart-page__checkout-btn {
		height: var(--rj-space-40);
		font-size: 15px;
	}
}

/* ==================================================================
 * «Te puede interesar» de la ficha (RJ_Tienda_Pantallas.pdf pág. 8): sin bucle infinito
 * (decisión del usuario, 21/09/2026). El «Offset Width» del Loop Carousel solo existe con
 * bucle, así que la 4.ª tarjeta asomando 105 + hueco 15 se pone aquí como lo hace el widget:
 * relleno derecho de 120 en el contenedor, que Swiper descuenta al medir las tarjetas.
 */
.rj-product__related .elementor-widget-loop-carousel .elementor-loop-container {
	padding-inline-end: calc(var(--rj-space-120));
}

/* ==================================================================
 * Acordeón de los componentes de un pack (RJ_Tienda_Pantallas.pdf págs. 11–12): nombre a la
 * izquierda y «+» de 15×15 (AcordeonMas.svg de THE TIAS) pegado al borde derecho; abierto, «−»
 * (AcordeonMenos.svg de THE TIAS) y el nombre en Semibold. El widget Acordeón anidado solo
 * admite iconos de la Biblioteca de medios; los de interfaz viven en assets/img (regla del 21/09),
 * así que el icono va aquí y el widget no lleva ninguno.
 */
.rj-component .e-n-accordion-item-title::after {
	content: "";
	flex: none;
	width: 15px;
	height: 15px;
	margin-inline-start: auto;
	background: url("../img/acordeon-mas.svg") center / contain no-repeat;
}
.rj-component .e-n-accordion-item[open] > .e-n-accordion-item-title::after {
	background-image: url("../img/acordeon-menos.svg");
}
/* Nombre del componente: Regular cerrado y Semibold abierto (pág. 12); el widget fija 500 en el
   texto del título por encima de la Clase. La descripción, en el color del texto (el widget
   Editor de texto la pintaba gris) y a 10 del nombre (pág. 12: 12), sin el margen de 25 que
   rj-product__description tiene para la descripción principal. */
.rj-component .e-n-accordion-item-title-text {
	font-weight: 400;
}
.rj-component .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-text {
	font-weight: 600;
}
.rj-component .rj-product__description {
	margin-block-start: 0;
}
.rj-component .elementor-widget-text-editor {
	color: var(--rj-contrast); /* el widget pinta con el color «Texto» del Kit V3 (#7A7A7A por defecto de Elementor) */
}

/* ==================================================================
 * Página de pago (RJ_Tienda_Pantallas.pdf págs. 20–23, Send220426; RJ_WFM_Tienda.pdf
 * págs. 12–15, Móvil). El shortcode [woocommerce_checkout] pinta las plantillas del tema
 * (woocommerce/checkout/): aquí, lo que Elementor no puede guardar sobre ese marcado.
 * Colores: los del Kit (el wireframe no tiene color).
 */

/* Aviso «Enviamos solo a España…» y «¿Ya tienes una cuenta?» de WooCommerce, encima del formulario. */
.rj-checkout__aviso,
.rj-cart-page .woocommerce-form-login-toggle .woocommerce-info {
	margin: 0 0 var(--rj-space-30);
	padding: 0;
	font-size: 18px;
	line-height: 24px;
}
.rj-cart-page .woocommerce-form-login-toggle .woocommerce-info a {
	color: inherit;
}
.rj-cart-page .woocommerce-form-login {
	margin: 0 0 var(--rj-space-30);
	padding: 0;
	border: 0;
}

/* Dos columnas como la cesta: 600 · 180 · 420, la derecha fija (comentario de SAM, pág. 20). */
.rj-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	column-gap: calc(var(--rj-space-150) + var(--rj-space-30));
	align-items: start;
}
@media (min-width: 1025px) and (max-width: 1260px) {
	.rj-checkout {
		column-gap: var(--rj-space-60);
	}
}
.rj-checkout__aside {
	position: sticky;
	inset-block-start: var(--rj-space-80);
	display: flex;
	flex-direction: column;
}

/* Rótulos «DIRECCIÓN DE ENVÍO», «EMPRESA», «ELIGE UN MÉTODO DE PAGO» (pág. 20: 18 Regular
   mayúsculas con línea fina debajo; primer campo a 23 → 25). */
.rj-checkout__heading {
	margin: 0 0 var(--rj-space-25);
	padding-block-end: 4px;
	border-block-end: var(--rj-line-thin) solid var(--rj-contrast);
	font: 400 18px/21px var(--rj-font-body);
	text-transform: uppercase;
}
.rj-checkout__heading-row {
	position: relative;
}
.rj-checkout__heading-row .rj-switch {
	position: absolute;
	inset-inline-end: 0;
	inset-block-start: 0;
}
.rj-checkout__section + .rj-checkout__section,
.rj-checkout__check + .rj-checkout__section {
	margin-block-start: var(--rj-space-20); /* + los 20 del último campo = 40 (pág. 20: correo → EMPRESA) */
}
/* Casilla «Usar la misma dirección para facturación» a 40 de los métodos de pago (pág. 23: 40 desde
   el último campo; tras los cuadros no hay campo que aporte margen, así que van los 40 enteros). */
.rj-checkout .rj-checkout__section + .rj-checkout__check {
	margin-block-start: var(--rj-space-40);
}
.rj-checkout__section[hidden] {
	display: none;
}

/* Campos (pág. 20): etiqueta 18 Regular, caja 600×35 con borde fino a 6 → 8, 20 entre campos;
   ayuda 16 Regular en gris a 5 → 8. Asterisco y «(opcional)» como en la web anterior. */
.rj-checkout .form-row {
	float: none;
	width: 100%;
	margin: 0 0 var(--rj-space-20);
	padding: 0;
}
.rj-checkout .form-row label {
	display: block;
	margin: 0 0 var(--rj-space-8);
	font-size: 18px;
	line-height: 21px;
}
.rj-checkout .form-row label.checkbox {
	display: inline-flex;
	margin: 0;
}
.rj-checkout .form-row .required {
	color: inherit;
	text-decoration: none;
}
.rj-checkout .form-row .optional {
	color: var(--rj-contrast-muted);
}
.rj-checkout .woocommerce-input-wrapper {
	display: block;
}
.rj-checkout .input-text,
.rj-checkout textarea,
.rj-checkout select,
.rj-checkout .select2-container--default .select2-selection--single {
	box-sizing: border-box;
	display: block;
	width: 100%;
	height: 35px;
	margin: 0;
	padding: 0 var(--rj-space-12);
	border: var(--rj-line-thin) solid var(--rj-contrast);
	border-radius: 0;
	background: var(--rj-base);
	color: var(--rj-contrast);
	font: 400 18px/33px var(--rj-font-body);
}
.rj-checkout textarea {
	height: 105px; /* tres líneas */
	padding-block: var(--rj-space-8);
	line-height: 24px;
	resize: vertical;
}
.rj-checkout .input-text:focus-visible,
.rj-checkout textarea:focus-visible,
.rj-checkout .select2-container--default.select2-container--focus .select2-selection--single,
.rj-checkout .select2-container--default.select2-container--open .select2-selection--single {
	outline: 2px solid var(--rj-contrast);
	outline-offset: -2px;
}
.rj-checkout .form-row.woocommerce-invalid .input-text,
.rj-checkout .form-row.woocommerce-invalid .select2-selection--single {
	border-color: var(--rj-accent-3);
	border-width: var(--rj-line-ui);
}
.rj-checkout .description {
	display: block;
	margin-block-start: var(--rj-space-8);
	color: var(--rj-contrast-muted);
	font-size: 16px;
	line-height: 19px;
}
/* Provincia: el desplegable de WooCommerce (selectWoo) con la misma caja que los demás campos. */
.rj-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0;
	color: var(--rj-contrast);
	line-height: 33px;
}
.rj-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 33px;
	inset-inline-end: var(--rj-space-8);
}
.rj-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: var(--rj-contrast) transparent transparent;
}
/* País de envío: solo se envía a España y el wireframe no lo dibuja. El script de WooCommerce
   (address-i18n) le pone display:block en línea, de ahí el !important. */
.rj-checkout #shipping_country_field {
	display: none !important;
}

/* Interruptor «EMPRESA» (pág. 22: 34×18 a la derecha del rótulo; móvil pág. 12: 25×14).
   Colores del Kit: apagado, borde berenjena; encendido, pista lima con el botón berenjena. */
.rj-switch {
	display: inline-flex;
	cursor: pointer;
}
.rj-switch__input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}
.rj-switch__track {
	position: relative;
	display: block;
	width: 34px;
	height: 18px;
	box-sizing: border-box;
	border: var(--rj-line-ui) solid var(--rj-contrast);
	border-radius: 9px;
	background: var(--rj-base);
	transition: background-color 0.16s ease-out;
}
.rj-switch__track::after {
	content: "";
	position: absolute;
	inset-block-start: 2px;
	inset-inline-start: 2px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--rj-contrast);
	transition: transform 0.16s ease-out;
}
.rj-switch__input:checked + .rj-switch__track {
	background: var(--rj-accent);
}
.rj-switch__input:checked + .rj-switch__track::after {
	transform: translateX(16px);
}
.rj-switch__input:focus-visible + .rj-switch__track {
	outline: 2px solid var(--rj-contrast);
	outline-offset: 3px;
}

/* Casillas «Usar la misma dirección para facturación» (pág. 23: 17×17 y texto 20 a 12) y
   «¿Crear una cuenta?». Dibujada con CSS en los colores del Kit. */
.rj-checkout__check {
	margin: 0 0 var(--rj-space-20);
}
.rj-checkout__check .checkbox {
	display: inline-flex;
	align-items: center;
	gap: var(--rj-space-12);
	margin: 0;
	font-size: 20px;
	line-height: 24px;
	cursor: pointer;
}
.rj-checkout__check .input-checkbox {
	appearance: none;
	flex: none;
	width: 17px;
	height: 17px;
	margin: 0;
	border: var(--rj-line-ui) solid var(--rj-contrast);
	border-radius: 0;
	background: var(--rj-base);
	display: grid;
	place-content: center;
}
.rj-checkout__check .input-checkbox::before {
	content: "";
	width: 5px;
	height: 9px;
	margin-block-start: -2px;
	border: solid var(--rj-base);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) scale(0);
}
.rj-checkout__check .input-checkbox:checked {
	background: var(--rj-contrast);
}
.rj-checkout__check .input-checkbox:checked::before {
	transform: rotate(45deg) scale(1);
}
.rj-checkout__check .input-checkbox:focus-visible {
	outline: 2px solid var(--rj-contrast);
	outline-offset: 2px;
}
.rj-checkout .create-account .checkbox {
	font-size: 18px;
	line-height: 21px;
}

/* Métodos de pago (pág. 22): cuadros de 188×107 en 3 columnas, huecos 18/17, icono y nombre
   15 Regular mayúsculas; el elegido con borde de 1. La descripción de cada método (Redsys /
   Bizum) va debajo del mosaico a todo el ancho. */
.rj-checkout__methods {
	display: grid;
	grid-template-columns: repeat(3, 188px);
	gap: 17px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rj-checkout__method {
	display: contents;
}
.rj-checkout__method-input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}
.rj-checkout__method-label {
	order: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--rj-space-15);
	box-sizing: border-box;
	height: 107px;
	margin: 0;
	padding: 0 var(--rj-space-10);
	border: var(--rj-line-ui) solid var(--rj-border-muted); /* sin elegir: borde claro (pág. 22) */
	cursor: pointer;
	text-align: center;
}
.rj-checkout__method-icon {
	display: block;
	line-height: 0;
}
.rj-checkout__method-icon img {
	display: block;
	max-width: 88px;
	max-height: 28px;
	width: auto;
	height: auto;
}
.rj-checkout__method-title {
	font-size: 15px;
	line-height: 18px;
	text-transform: uppercase;
}
.rj-checkout__method-input:checked + .rj-checkout__method-label {
	border-color: var(--rj-contrast); /* elegido: borde oscuro (pág. 22) */
}
.rj-checkout__method-input:focus-visible + .rj-checkout__method-label {
	outline: 2px solid var(--rj-contrast);
	outline-offset: 2px;
}
.rj-checkout__method-box {
	order: 1;
	grid-column: 1 / -1;
	margin: 0;
	padding: 0;
	font-size: 18px;
	line-height: 24px;
}
.rj-checkout__method-box p {
	margin: 0;
}
.rj-checkout__no-methods {
	grid-column: 1 / -1;
}

/* Columna derecha: cupón (como la cesta), resumen a 50, botón a 45 → 50, texto legal a 25. */
.rj-checkout__review {
	width: 100%;
	margin: var(--rj-space-50) 0 0;
	border-collapse: collapse;
	font-size: 20px;
	line-height: 26px;
}
.rj-checkout__review th,
.rj-checkout__review td {
	display: table-cell; /* la fila del envío llegaba con display:block */
	width: auto;
	padding: 0;
	border: 0;
	font-weight: 400;
	text-align: start;
	vertical-align: top;
}
.rj-checkout__review tr,
.rj-checkout__review th,
.rj-checkout__review td {
	background: transparent;
}
.rj-checkout__review td {
	text-align: end;
	white-space: nowrap;
}
.rj-checkout__review td.product-name {
	text-align: start;
	white-space: normal;
}
.rj-checkout__items td,
.rj-checkout__items th {
	padding-block-end: var(--rj-space-8);
	font-size: 18px;
	line-height: 24px;
}
.rj-checkout__items .variation {
	display: inline;
	margin: 0;
}
.rj-checkout__items .variation dt,
.rj-checkout__items .variation dd,
.rj-checkout__items .variation p {
	display: inline;
	margin: 0;
	font-weight: 400;
}
.rj-checkout__items .variation dt::before {
	content: "· ";
}
.rj-checkout__totals .cart-subtotal th,
.rj-checkout__totals .cart-subtotal td {
	padding-block-start: var(--rj-space-15);
}
.rj-checkout__totals .order-total th,
.rj-checkout__totals .order-total td {
	padding-block-start: var(--rj-space-15);
	font-weight: 700;
	text-transform: uppercase;
}
.rj-checkout__totals .order-total .includes_tax {
	display: block;
	font-size: 16px;
	font-weight: 400;
	line-height: 20px;
	text-transform: none;
}
.rj-checkout__totals .woocommerce-remove-coupon {
	margin-inline-start: 0.5em;
	color: inherit;
	font-size: 16px;
}
.rj-checkout__shipping-methods {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: end;
}
.rj-checkout__shipping-methods li {
	display: block;
	margin: 0;
	text-align: end;
}
.rj-checkout__shipping-methods label {
	display: inline;
	margin: 0 0 0 var(--rj-space-8);
	font-size: 18px;
}
.rj-checkout .rj-checkout__place-order {
	margin: var(--rj-space-50) 0 0;
	padding: 0;
}
.rj-checkout__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: var(--rj-space-50);
	padding: 0;
	font: 500 20px/1 var(--rj-font-body);
	text-transform: uppercase;
	cursor: pointer;
}
.rj-checkout__btn:hover,
.rj-checkout__btn:focus-visible {
	font-weight: 700;
}
/* Inactivo hasta rellenar los campos (comentario de SAM, págs. 22–23): berenjena al 22 % con
   el texto al 60 % (Variables derivadas del Kit). */
.rj-checkout__btn.is-disabled {
	background: var(--rj-border-muted);
	/* El botón sigue enfocable (aria-disabled, no disabled), así que su texto SÍ tiene que
	 * cumplir AA: con `rj-contrast-muted` (60 %) el contraste era 3,88:1 sobre este fondo.
	 * Al 80 % son 6,7:1 y el botón se sigue leyendo como apagado, que es lo que dibuja el
	 * wireframe (págs. 20 y 22). */
	color: color-mix(in srgb, var(--rj-contrast) 80%, transparent);
	cursor: not-allowed;
}
.rj-checkout__btn.is-disabled:hover {
	font-weight: 500;
}
.rj-checkout .woocommerce-terms-and-conditions-wrapper {
	margin: var(--rj-space-25) 0 0;
}
.rj-checkout .woocommerce-privacy-policy-text p {
	margin: 0;
	font-size: 18px;
	line-height: 24px;
}
.rj-checkout .woocommerce-privacy-policy-text a {
	color: inherit;
}

/* Errores de validación de WooCommerce: lista sin marco, en coral (rj-accent-3). */
.rj-cart-page .woocommerce-NoticeGroup-checkout .woocommerce-error {
	margin: 0 0 var(--rj-space-30);
	padding: 0;
	list-style: none;
	color: var(--rj-accent-3);
	font-size: 18px;
	line-height: 24px;
}
.rj-cart-page .woocommerce-NoticeGroup-checkout .woocommerce-error li {
	margin: 0 0 var(--rj-space-8);
}
.rj-cart-page .woocommerce-NoticeGroup-checkout .woocommerce-error a {
	color: inherit;
}

@media (max-width: 1024px) {
	/* Móvil (págs. 12–15): una columna; rótulos 15 con línea; etiquetas 13 a 4 de la caja; cajas
	   de 35 con 15 entre campos (paso 69); ayudas 11; interruptor 25×14; mosaico de 2 columnas
	   (159×80, huecos 11/12, rótulos 11); casilla 13; totales 15; botón fijo abajo de 40. */
	.rj-checkout {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}
	.rj-checkout__aside {
		display: contents;
	}
	.rj-checkout__aviso,
	.rj-cart-page .woocommerce-form-login-toggle .woocommerce-info {
		font-size: 15px;
		line-height: 20px;
		margin-block-end: var(--rj-space-20);
	}
	.rj-checkout__heading {
		margin-block-end: var(--rj-space-20);
		padding-block-end: 3px;
		font-size: 15px;
		line-height: 18px;
	}
	.rj-checkout .form-row {
		margin-block-end: var(--rj-space-15);
	}
	.rj-checkout .form-row label {
		margin-block-end: 4px;
		font-size: 13px;
		line-height: 16px;
	}
	.rj-checkout .input-text,
	.rj-checkout .select2-container--default .select2-selection--single {
		font-size: 15px;
	}
	.rj-checkout .description {
		margin-block-start: 4px;
		font-size: 11px;
		line-height: 14px;
	}
	.rj-switch__track {
		width: 25px;
		height: 14px;
		border-radius: 7px;
	}
	.rj-switch__track::after {
		width: 8px;
		height: 8px;
	}
	.rj-switch__input:checked + .rj-switch__track::after {
		transform: translateX(11px);
	}
	.rj-checkout__check .checkbox,
	.rj-checkout .create-account .checkbox {
		gap: var(--rj-space-8);
		font-size: 13px;
		line-height: 16px;
	}
	.rj-checkout__check .input-checkbox {
		width: 14px;
		height: 14px;
	}
	.rj-checkout__check .input-checkbox::before {
		width: 4px;
		height: 7px;
	}
	.rj-checkout__methods {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 11px 12px;
	}
	.rj-checkout__method-label {
		height: 80px;
		gap: var(--rj-space-8);
	}
	.rj-checkout__method-title {
		font-size: 11px;
		line-height: 13px;
	}
	.rj-checkout__method-box {
		font-size: 12px;
		line-height: 16px;
	}
	.rj-checkout__coupon {
		margin-block-start: var(--rj-space-25);
	}
	.rj-checkout__review {
		margin-block-start: var(--rj-space-25);
		font-size: 15px;
		line-height: 20px;
	}
	.rj-checkout__items td,
	.rj-checkout__items th {
		font-size: 12px;
		line-height: 16px;
	}
	.rj-checkout__totals .cart-subtotal th,
	.rj-checkout__totals .cart-subtotal td,
	.rj-checkout__totals .order-total th,
	.rj-checkout__totals .order-total td {
		padding-block-start: var(--rj-space-10);
	}
	.rj-checkout__shipping-methods label {
		font-size: 15px;
	}
	.rj-checkout .woocommerce-terms-and-conditions-wrapper {
		order: 1;
		margin-block-start: var(--rj-space-15);
	}
	.rj-checkout .woocommerce-privacy-policy-text p {
		font-size: 12px;
		line-height: 16px;
	}
	/* El botón fijo abajo (pág. 14) cuelga del formulario entero; el texto legal va antes. */
	.rj-checkout .rj-checkout__place-order {
		display: contents;
	}
	.rj-checkout__btn {
		order: 2;
		position: sticky;
		inset-block-end: calc(var(--rjp-player-h, 65px) + 15px);
		height: var(--rj-space-40);
		margin-block-start: var(--rj-space-25);
		font-size: 15px;
		box-shadow: 0 0 0 15px var(--rj-base);
	}
}

/* ==================================================================
 * Confirmación del pedido, pago fallido y paso a la pasarela (order-received / order-pay).
 * Sin wireframe: identidad de las páginas estáticas (título 24/32 Montserrat Bold, cuerpo
 * Switzer Light 22/32, subtítulos Switzer Semibold 20/26 a 60/20, columna de 720) y la
 * tabla del pedido como el resumen del pago.
 */
.rj-order {
	max-width: 720px;
}
.rj-order__title {
	margin: 0 0 var(--rj-space-20);
	font: 700 24px/32px var(--rj-font-heading);
}
.rj-order__text,
.rj-order .woocommerce-thankyou-order-received,
.rj-order .woocommerce-notice {
	margin: 0 0 var(--rj-space-12);
	padding: 0;
	font: 300 22px/32px var(--rj-font-body);
}
.rj-order__overview {
	margin: var(--rj-space-20) 0 0;
	padding: 0;
	list-style: none;
	font-size: 18px;
	line-height: 23px;
}
.rj-order__overview li {
	margin: 0 0 var(--rj-space-8);
}
.rj-order__overview strong {
	font-weight: 600;
}
.rj-order h2 {
	margin: var(--rj-space-60) 0 var(--rj-space-20);
	font: 600 20px/26px var(--rj-font-body);
}
.rj-order .woocommerce-table,
.rj-order .woocommerce-table th,
.rj-order .woocommerce-table td {
	border: 0;
	background: transparent;
}
.rj-order .woocommerce-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 20px;
	line-height: 26px;
}
.rj-order .woocommerce-table thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}
.rj-order .woocommerce-table th,
.rj-order .woocommerce-table td {
	padding: 0 0 var(--rj-space-8);
	font-weight: 400;
	text-align: start;
	vertical-align: top;
}
.rj-order .woocommerce-table td:last-child,
.rj-order .woocommerce-table tfoot td {
	text-align: end;
	white-space: nowrap;
}
.rj-order .woocommerce-table tbody td {
	font-size: 18px;
	line-height: 24px;
}
.rj-order .woocommerce-table .product-quantity {
	font-weight: 400;
}
.rj-order .woocommerce-table .wc-item-meta {
	display: inline;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rj-order .woocommerce-table .wc-item-meta li,
.rj-order .woocommerce-table .wc-item-meta p {
	display: inline;
	margin: 0;
}
.rj-order .woocommerce-table .wc-item-meta li::before {
	content: "· ";
}
.rj-order .woocommerce-table tfoot tr:first-child th,
.rj-order .woocommerce-table tfoot tr:first-child td {
	padding-block-start: var(--rj-space-15);
}
.rj-order .woocommerce-table tfoot tr:last-child th,
.rj-order .woocommerce-table tfoot tr:last-child td {
	padding-block-start: var(--rj-space-15);
	font-weight: 700;
}
.rj-order .woocommerce-table tfoot .includes_tax {
	display: block;
	font-size: 16px;
	font-weight: 400;
	line-height: 20px;
}
.rj-order .woocommerce-customer-details .woocommerce-columns {
	display: flex;
	gap: var(--rj-space-30);
}
.rj-order .woocommerce-customer-details .woocommerce-column {
	flex: 1 1 0;
	min-width: 0;
}
.rj-order address {
	font-size: 18px;
	font-style: normal;
	line-height: 23px;
}
.rj-order address p {
	margin: 0;
}
.rj-order__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rj-space-15);
	margin: var(--rj-space-40) 0 0;
	padding: 0;
}
.rj-order__btn,
.rj-cart-page #submit_redsys_payment_form,
.rj-cart-page .button.cancel {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 300px;
	height: var(--rj-space-50);
	padding: 0 var(--rj-space-25);
	border-radius: 0;
	font: 500 20px/1 var(--rj-font-body);
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
}
.rj-order__btn:hover,
.rj-order__btn:focus-visible {
	font-weight: 700;
}
/* Paso a la pasarela: el texto y los dos botones que pinta Redsys Lite bajo la lista. */
.rj-cart-page #submit_redsys_payment_form {
	border: 0;
	background: var(--rj-contrast);
	color: var(--rj-base);
}
.rj-cart-page .button.cancel {
	margin-inline-start: var(--rj-space-15);
	border: var(--rj-line-ui) solid var(--rj-contrast);
	background: transparent;
	color: var(--rj-contrast);
}
.rj-order--receipt > p {
	margin: var(--rj-space-20) 0 0;
	font: 300 22px/32px var(--rj-font-body);
}
.rj-order--receipt form {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rj-space-15);
	margin-block-start: var(--rj-space-40);
}
.rj-cart-page .button.cancel {
	margin-inline-start: 0;
}

@media (max-width: 1024px) {
	.rj-order__title {
		font-size: 20px;
		line-height: 24px;
	}
	.rj-order__text,
	.rj-order .woocommerce-thankyou-order-received,
	.rj-order .woocommerce-notice {
		font-size: 18px;
		line-height: 26px;
	}
	.rj-order__overview,
	.rj-order address {
		font-size: 15px;
		line-height: 20px;
	}
	.rj-order h2 {
		margin-block: var(--rj-space-40) var(--rj-space-15);
		font-size: 18px;
		line-height: 23px;
	}
	.rj-order .woocommerce-table {
		font-size: 15px;
		line-height: 20px;
	}
	.rj-order .woocommerce-table tbody td {
		font-size: 12px;
		line-height: 16px;
	}
	.rj-order .woocommerce-customer-details .woocommerce-columns {
		flex-direction: column;
	}
	.rj-order__btn,
	.rj-cart-page #submit_redsys_payment_form,
	.rj-cart-page .button.cancel {
		width: 100%;
		min-width: 0;
		height: var(--rj-space-40);
		margin: 0;
		font-size: 15px;
	}
	.rj-cart-page .button.cancel {
		margin-block-start: var(--rj-space-15);
	}
}

/* Pagar un pedido pendiente (form-pay.php): mismo resumen, cuadros y botón que la página de pago. */
.rj-order--pay .rj-checkout__review {
	margin-block-start: 0;
}
.rj-order--pay .rj-checkout__place-order {
	margin: var(--rj-space-50) 0 0;
	padding: 0;
}
.rj-order--pay .woocommerce-terms-and-conditions-wrapper {
	margin: var(--rj-space-25) 0 0;
}
.rj-order--pay .woocommerce-privacy-policy-text p {
	margin: 0;
	font-size: 18px;
	line-height: 24px;
}
.rj-order--pay .woocommerce-privacy-policy-text a {
	color: inherit;
}

/* Mensaje «ahora está siendo redirigido a Servired/RedSys» que Redsys Lite muestra en una caja
   (blockUI) mientras salta a la pasarela: con nuestra tipografía y sin su icono girando. */
.blockUI.blockMsg.blockPage {
	box-sizing: border-box;
	width: min(600px, calc(100% - 30px)) !important;
	left: 50% !important;
	transform: translateX(-50%);
	padding: var(--rj-space-30) !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--rj-base) !important;
	color: var(--rj-contrast) !important;
	font: 300 22px/32px var(--rj-font-body) !important;
	text-align: start !important;
	cursor: default !important;
}
.blockUI.blockMsg.blockPage img {
	display: none;
}
.blockUI.blockOverlay {
	background: var(--rj-backdrop) !important;
	opacity: 1 !important;
}

/* Fila «Acciones» (Pagar / Cancelar) que WooCommerce añade al detalle de un pedido pendiente. */
.rj-order .woocommerce-table .order-actions--heading {
	font-weight: 400;
}
.rj-order .woocommerce-table .order-actions {
	white-space: normal;
}
.rj-order .woocommerce-table .order-actions .button,
.rj-cart-page .rj-order .button.cancel {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 0;
	height: var(--rj-space-40);
	margin: 0 0 0 var(--rj-space-10);
	padding: 0 var(--rj-space-20);
	border: var(--rj-line-ui) solid var(--rj-contrast);
	border-radius: 0;
	background: transparent;
	color: var(--rj-contrast);
	font: 500 15px/1 var(--rj-font-body);
	text-transform: uppercase;
	text-decoration: none;
}

/* Aviso solo para quien administra (modo de pruebas de Redsys): texto en coral, sin caja. */
.rj-checkout__aviso--admin {
	color: var(--rj-accent-3);
}

/* ==================================================================
 * Mi cuenta (página 384). No hay wireframe: se viste con el mismo lenguaje que la cesta y el
 * pago (decisión del usuario, 22/09/2026) — campos de 35 con borde fino, botones `rj-btn`,
 * rótulos en Switzer y las Variables del Kit. Cubre las dos caras del shortcode: sin sesión
 * (acceder / registrarse) y con sesión (menú lateral, pedidos, direcciones y datos).
 */
.woocommerce-account .rj-cart-page__content {
	margin-block-start: var(--rj-space-40);
}

/* -- Sin sesión: «Acceder» y «Registrarse», uno al lado del otro. */
.woocommerce-account .u-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--rj-space-60);
	align-items: start;
}
.woocommerce-account .u-columns > .col-1,
.woocommerce-account .u-columns > .col-2 {
	float: none;
	width: auto;
	padding: 0;
}
.woocommerce-account .u-columns h2 {
	margin: 0 0 var(--rj-space-25);
	font-size: 20px;
	line-height: 24px;
	font-weight: 600;
	text-transform: uppercase;
}
.woocommerce-account form.login,
.woocommerce-account form.register {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
}

/* -- Campos: los mismos que en el pago. */
.woocommerce-account .form-row {
	float: none;
	width: 100%;
	margin: 0 0 var(--rj-space-20);
	padding: 0;
}
.woocommerce-account .form-row label {
	display: block;
	margin: 0 0 var(--rj-space-8);
	font-size: 18px;
	line-height: 21px;
}
.woocommerce-account .form-row label.woocommerce-form__label-for-checkbox {
	display: inline-flex;
	gap: var(--rj-space-8);
	align-items: center;
	margin: 0;
}
.woocommerce-account .form-row .required {
	color: inherit;
	text-decoration: none;
}
.woocommerce-account .input-text,
.woocommerce-account select {
	box-sizing: border-box;
	display: block;
	width: 100%;
	height: 35px;
	margin: 0;
	padding: 0 var(--rj-space-12);
	border: var(--rj-line-thin) solid var(--rj-contrast);
	border-radius: 0;
	background: var(--rj-base);
	color: var(--rj-contrast);
	font: 400 18px/33px var(--rj-font-body);
}
.woocommerce-account .input-text:focus-visible,
.woocommerce-account select:focus-visible {
	outline: 2px solid var(--rj-contrast);
	outline-offset: -2px;
}
.woocommerce-account .woocommerce-form-login__rememberme {
	margin-block-end: var(--rj-space-20);
}
.woocommerce-account .woocommerce-privacy-policy-text p,
.woocommerce-account .woocommerce-form-login__submit + .woocommerce-LostPassword,
.woocommerce-account .woocommerce-LostPassword {
	margin: var(--rj-space-15) 0 0;
	font-size: 16px;
	line-height: 20px;
}
.woocommerce-account .woocommerce-privacy-policy-text a,
.woocommerce-account .woocommerce-LostPassword a {
	color: inherit;
}

/* -- Botones: los de la tienda, no los de WooCommerce. */
.woocommerce-account .woocommerce-Button,
.woocommerce-account .woocommerce-button,
.woocommerce-account button.button {
	min-height: 50px;
	padding: 0 var(--rj-space-30);
	border: 0;
	border-radius: 0;
	background: var(--rj-contrast);
	color: var(--rj-base);
	font: 500 15px/50px var(--rj-font-body);
	letter-spacing: 0;
	text-transform: uppercase;
	cursor: pointer;
}
.woocommerce-account .woocommerce-Button:hover,
.woocommerce-account .woocommerce-button:hover,
.woocommerce-account button.button:hover {
	background: var(--rj-contrast);
	color: var(--rj-base);
}
.woocommerce-account .woocommerce-Button:focus-visible,
.woocommerce-account .woocommerce-button:focus-visible,
.woocommerce-account button.button:focus-visible {
	outline: 2px solid var(--rj-contrast);
	outline-offset: 2px;
}

/* -- Con sesión: menú lateral y contenido, como las dos columnas de la cesta. */
.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: auto;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li {
	border-block-end: var(--rj-line-thin) solid var(--rj-border-muted);
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: var(--rj-space-12) 0;
	color: var(--rj-contrast);
	font-size: 18px;
	line-height: 24px;
	text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	font-weight: 600;
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 4px;
}
.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
}
.woocommerce-account .woocommerce-MyAccount-content p {
	font-size: 18px;
	line-height: 26px;
}

/* -- Tablas (pedidos, descargas): sin marco, con la línea fina de la tienda. */
.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	border-radius: 0;
	border-collapse: collapse;
	font-size: 18px;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table th,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
	padding: var(--rj-space-12) var(--rj-space-10);
	border: 0;
	border-block-end: var(--rj-line-thin) solid var(--rj-border-muted);
	text-align: start;
	vertical-align: middle;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table th {
	font-weight: 600;
	text-transform: uppercase;
	font-size: 15px;
	letter-spacing: 0;
}

/* -- Direcciones: dos columnas con el mismo hueco que arriba. */
.woocommerce-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--rj-space-60);
}
.woocommerce-account .woocommerce-Address {
	float: none;
	width: auto;
}
.woocommerce-account .woocommerce-Address address {
	font-style: normal;
	font-size: 18px;
	line-height: 26px;
}

/* -- Avisos de WooCommerce dentro de la cuenta: sin recuadro, como en la cesta. */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-info {
	margin: 0 0 var(--rj-space-25);
	padding: 0;
	border: 0;
	background: none;
	color: var(--rj-contrast);
	font-size: 18px;
	line-height: 26px;
}
.woocommerce-account .woocommerce-error {
	color: var(--rj-accent-3);
}
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-error::before,
.woocommerce-account .woocommerce-info::before {
	content: none;
}

@media (max-width: 1024px) {
	.woocommerce-account .u-columns,
	.woocommerce-account .woocommerce-Addresses {
		grid-template-columns: minmax(0, 1fr);
		row-gap: var(--rj-space-40);
	}
	.woocommerce-account .woocommerce-MyAccount-content p,
	.woocommerce-account .woocommerce-Address address,
	.woocommerce-account .form-row label {
		font-size: 15px;
		line-height: 22px;
	}
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
		font-size: 15px;
	}
	.woocommerce-account .woocommerce-Button,
	.woocommerce-account .woocommerce-button,
	.woocommerce-account button.button {
		width: 100%;
	}
}

/* -- «Mostrar contraseña»: WooCommerce pinta un botón con su icono desde su propia hoja de
 *    estilos, que el tema no carga (`woocommerce_enqueue_styles` vacío en inc/tienda.php), así
 *    que sin esto queda una caja vacía suelta bajo el campo. Se resuelve con texto dentro del
 *    campo, sin icono nuevo. */
.woocommerce-account .password-input {
	position: relative;
	display: block;
}
.woocommerce-account .show-password-input {
	position: absolute;
	inset-block-start: 0;
	inset-inline-end: var(--rj-space-12);
	height: 35px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--rj-contrast-muted);
	font: 400 15px/35px var(--rj-font-body);
	cursor: pointer;
}
.woocommerce-account .show-password-input::after {
	content: "Mostrar";
}
.woocommerce-account .show-password-input.display-password::after {
	content: "Ocultar";
}
.woocommerce-account .show-password-input:focus-visible {
	outline: 2px solid var(--rj-contrast);
	outline-offset: 2px;
}
.woocommerce-account .password-input .input-text {
	padding-inline-end: 85px; /* deja sitio al «Mostrar» */
}

/* -- «Recuérdame» y el botón van en el mismo párrafo: cada uno en su línea. */
.woocommerce-account .woocommerce-form-login .form-row .woocommerce-form-login__rememberme {
	display: flex;
	margin-block-end: var(--rj-space-20);
}
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit {
	display: block;
	float: none;
	margin-block-start: var(--rj-space-20);
}

/* -- Con sesión: menú a la izquierda y contenido a la derecha, como las dos columnas de la
 *    cesta y el pago (el shortcode envuelve las dos partes en `.woocommerce`). */
.woocommerce-account.logged-in .rj-cart-page__content .elementor-shortcode > .woocommerce {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	column-gap: calc(var(--rj-space-150) + var(--rj-space-30)); /* 180, el de la cesta */
	align-items: start;
}
.woocommerce-account.logged-in .rj-cart-page__content .elementor-shortcode > .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Message,
.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
	margin-block-start: 0;
}
/* Filas de la tabla de pedidos: sin el fondo alterno de WooCommerce, solo la línea fina. */
.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody tr {
	background: none;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table .woocommerce-button {
	min-height: 34px;
	padding: 0 var(--rj-space-15);
	font-size: 14px;
	line-height: 34px;
}

@media (max-width: 1024px) {
	.woocommerce-account.logged-in .rj-cart-page__content .elementor-shortcode > .woocommerce {
		grid-template-columns: minmax(0, 1fr);
		row-gap: var(--rj-space-30);
	}
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table .woocommerce-button {
		width: auto;
	}
}
