@charset "UTF-8";
/**
 * Hotel El Lagar de Isilla - Estilos de la tienda (WooCommerce)
 *
 * Se carga desde inc/woocommerce.php despues de las hojas de WooCommerce,
 * de modo que casi todo se resuelve por orden de cascada sin !important.
 *
 * Indice
 *  1. Variables y utilidades
 *  2. Cabecera de las paginas de tienda
 *  3. Botones
 *  4. Formularios y campos
 *  5. Avisos (mensajes, info, errores)
 *  6. Barra superior de la tienda (migas, contador, orden)
 *  7. Rejilla de productos (tienda, categorias, relacionados)
 *  8. Paginacion
 *  9. Ficha de producto
 * 10. Pestanas, valoraciones y comentarios
 * 11. Carrito clasico
 * 12. Finalizar compra clasico
 * 13. Bloques de carrito y pago (WooCommerce Blocks)
 *     13.1 Carrito de bloques
 *     13.2 Resumen del pedido
 * 14. Pedido recibido y seguimiento
 * 15. Mi cuenta
 * 16. Widgets y carrito flotante
 * 17. Reservas (WooCommerce Bookings)
 *     17.1 Ficha del producto reservable
 *     17.2 Calendario
 *     17.3 Horarios
 *     17.4 Precio calculado y boton
 * 18. Responsive
 */

/* ==========================================================================
   1. Variables y utilidades
   ========================================================================== */

:root {
	--wc-azul: #3e5683;
	--wc-azul-oscuro: #26385e;
	--wc-azul-medio: #637eaf;
	--wc-azul-suave: #eaf0f9;
	--wc-azul-claro: #f6f9fc;
	--wc-borde: #dce4f1;
	--wc-borde-fuerte: #cad9ed;
	--wc-vino: #74522a;
	--wc-vino-suave: #fff4e7;
	--wc-dorado: #ec8710;
	--wc-verde: #5c7d3f;
	--wc-rojo: #924134;
	--wc-texto: #222222;
	--wc-texto-suave: #605d57;
	--wc-blanco: #ffffff;
	--wc-radio: 3px;
	--wc-radio-caja: 6px;
	--wc-sombra: 0 2px 12px rgba(38, 56, 94, 0.07);
	--wc-sombra-alta: 0 12px 32px rgba(38, 56, 94, 0.16);
	--wc-transicion: 0.25s ease-in-out;
	/* Iconos de los avisos en SVG, para no depender de la fuente WooCommerce. */
	--wc-icono-aviso: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm-1 6h2v7h-2Zm0-4h2v2h-2Z'/%3e%3c/svg%3e");
	--wc-icono-exito: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm4.3 4.3-5.6 5.6-2.3-2.3-1.4 1.4 3.7 3.7 7-7Z'/%3e%3c/svg%3e");
	--wc-icono-error: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm-1 3h2v7h-2Zm0 9h2v2h-2Z'/%3e%3c/svg%3e");
	--wc-icono-izq: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='black' d='M14.7 3.9 6.6 12l8.1 8.1 1.4-1.4L9.4 12l6.7-6.7z'/%3e%3c/svg%3e");
	--wc-icono-der: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='black' d='M9.3 3.9 17.4 12l-8.1 8.1-1.4-1.4L14.6 12 7.9 5.3z'/%3e%3c/svg%3e");
	--wc-icono-reloj: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm-1 3h2v5.6l3.7 2.2-1 1.7L11 13.7Z'/%3e%3c/svg%3e");
}

.woocommerce,
.woocommerce-page {
	color: var(--wc-texto);
}

.woocommerce .entry-content > .woocommerce,
.woocommerce-page .entry-content > .woocommerce {
	width: 100%;
}

/* Limpiamos los clearfix heredados que estorban dentro de las rejillas. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
.woocommerce div.product::before,
.woocommerce div.product::after,
.woocommerce .col2-set::before,
.woocommerce .col2-set::after,
.woocommerce-page .col2-set::before,
.woocommerce-page .col2-set::after {
	content: none;
	display: none;
}

/* Titulos de seccion con el zarcillo del tema. */
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2,
.woocommerce #reviews h2,
.woocommerce .cart_totals > h2,
.woocommerce-checkout #order_review_heading,
.woocommerce-order-details__title,
.woocommerce-customer-details h2,
.woocommerce-column__title,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
	font-size: 1.7em;
	font-weight: 400;
	line-height: 1.2em;
	color: var(--wc-azul-oscuro);
	margin: 0 0 22px;
	padding-bottom: 12px;
	position: relative;
}

.woocommerce .related > h2::after,
.woocommerce .upsells > h2::after,
.woocommerce .cross-sells > h2::after,
.woocommerce #reviews h2::after,
.woocommerce .cart_totals > h2::after,
.woocommerce-checkout #order_review_heading::after,
.woocommerce-order-details__title::after,
.woocommerce-customer-details h2::after,
.woocommerce-column__title::after,
.woocommerce-billing-fields h3::after,
.woocommerce-shipping-fields h3::after,
.woocommerce-additional-fields h3::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 54px;
	height: 2px;
	background: var(--wc-dorado);
}

/* ==========================================================================
   2. Cabecera de las paginas de tienda
   ========================================================================== */

/* La cabecera con foto la genera inc/woocommerce.php reutilizando el
   marcado del tema, asi que solo hacen falta pequenos ajustes. */
.featured-image.page-header-woocommerce {
	background: #283040;
}

.featured-image.page-header-woocommerce > img {
	opacity: 0.55;
}

/* Si por lo que sea no hay cabecera con foto, dejamos hueco para el
   encabezado del sitio, que va posicionado en absoluto sobre el contenido. */
.woocommerce-page .site-content > .content-area:first-child,
.woocommerce .site-content > .content-area:first-child {
	padding-top: 170px;
}

.woocommerce-page .featured-image ~ #page .site-content > .content-area,
.woocommerce .featured-image ~ #page .site-content > .content-area {
	padding-top: 0;
}

.woocommerce .page-title,
.woocommerce-page .page-title {
	display: none;
}

/* El titulo del producto ya va en la cabecera con foto. */
.single-product .product_title.entry-title {
	font-size: 2em;
	line-height: 1.15em;
	color: var(--wc-azul-oscuro);
	margin: 0 0 14px;
}

/* ==========================================================================
   3. Botones
   ========================================================================== */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button,
.wc-block-components-button:not(.is-link) {
	font-family: 'Alegreya', serif;
	font-size: 1em;
	font-weight: 400;
	line-height: 1.3em;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--wc-blanco);
	background: var(--wc-azul);
	border: 1px solid var(--wc-azul);
	border-radius: var(--wc-radio);
	padding: 11px 24px;
	margin: 0;
	text-decoration: none;
	text-align: center;
	display: inline-block;
	cursor: pointer;
	transition: color var(--wc-transicion), background-color var(--wc-transicion), border-color var(--wc-transicion);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button:focus,
.woocommerce button.button:focus,
.woocommerce input.button:focus,
.woocommerce-page a.button:hover,
.woocommerce-page button.button:hover,
.woocommerce-page input.button:hover,
.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus {
	color: var(--wc-azul);
	background: var(--wc-azul-suave);
	border-color: var(--wc-borde-fuerte);
}

/* Botones secundarios: fondo claro y borde. */
.woocommerce a.button.wc-backward,
.woocommerce a.button.wc-forward:not(.checkout):not(.checkout-button),
.woocommerce .cart .button[name="update_cart"],
.woocommerce button.button[name="update_cart"],
.woocommerce input.button[name="update_cart"],
.woocommerce a.reset_variations,
.wc-block-components-button.is-secondary {
	color: var(--wc-azul);
	background: var(--wc-blanco);
	border-color: var(--wc-borde-fuerte);
}

.woocommerce a.button.wc-backward:hover,
.woocommerce a.button.wc-forward:not(.checkout):not(.checkout-button):hover,
.woocommerce .cart .button[name="update_cart"]:hover,
.woocommerce button.button[name="update_cart"]:hover,
.woocommerce input.button[name="update_cart"]:hover,
.wc-block-components-button.is-secondary:hover {
	color: var(--wc-blanco);
	background: var(--wc-azul);
	border-color: var(--wc-azul);
}

/* Botones deshabilitados. */
.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button:disabled,
.woocommerce input.button:disabled[disabled] {
	color: var(--wc-blanco);
	background: var(--wc-azul-medio);
	border-color: var(--wc-azul-medio);
	opacity: 0.55;
	padding: 11px 24px;
	cursor: not-allowed;
}

/* Llamadas principales: llevan la flecha del tema, como a.boton. */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #payment #place_order,
.woocommerce-checkout #place_order,
.woocommerce .woocommerce-form-login button.woocommerce-form-login__submit,
.woocommerce .woocommerce-form-register button.woocommerce-form-register__submit {
	font-size: 1.15em;
	padding: 14px 28px;
	background: var(--wc-azul);
	border-color: var(--wc-azul);
	color: var(--wc-blanco);
}

.woocommerce div.product form.cart .single_add_to_cart_button::after,
.woocommerce .wc-proceed-to-checkout a.checkout-button::after,
.woocommerce #payment #place_order::after,
.woocommerce-checkout #place_order::after {
	content: "";
	background: url(../img/flecha-blanca.svg) no-repeat center;
	background-size: contain;
	width: 18px;
	height: 13px;
	display: inline-block;
	margin-left: 12px;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover::after,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover::after,
.woocommerce #payment #place_order:hover::after,
.woocommerce-checkout #place_order:hover::after {
	background-image: url(../img/flecha-color.svg);
}

/* El "anadido" que aparece junto al boton del listado. */
.woocommerce a.added_to_cart {
	display: inline-block;
	margin-top: 8px;
	font-size: 0.9em;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wc-vino);
	text-decoration: underline;
}

.woocommerce a.added_to_cart:hover {
	color: var(--wc-dorado);
}

/* Indicador de carga de WooCommerce. */
.woocommerce a.button.loading::after,
.woocommerce button.button.loading::after,
.woocommerce input.button.loading::after {
	top: 0.7em;
}

/* ==========================================================================
   4. Formularios y campos
   ========================================================================== */

.woocommerce form .form-row,
.woocommerce-page form .form-row {
	padding: 0;
	margin: 0 0 18px;
}

.woocommerce form .form-row label,
.woocommerce-page form .form-row label,
.woocommerce-cart-form label,
.woocommerce form fieldset legend {
	display: block;
	font-size: 0.95em;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--wc-azul-oscuro);
	margin-bottom: 6px;
}

.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row .woocommerce-form__label-for-checkbox {
	font-weight: 400;
	color: var(--wc-texto);
}

.woocommerce form .form-row .required {
	color: var(--wc-rojo);
	text-decoration: none;
	border: 0;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single,
.woocommerce table.cart td.actions .coupon .input-text,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce textarea,
.woocommerce select {
	width: 100%;
	min-height: 46px;
	font-family: 'Alegreya', serif;
	font-size: 1em;
	line-height: 1.4em;
	color: var(--wc-texto);
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio);
	padding: 10px 14px;
	box-shadow: none;
	transition: border-color var(--wc-transicion), background-color var(--wc-transicion);
}

.woocommerce form .form-row textarea,
.woocommerce textarea {
	min-height: 120px;
	line-height: 1.5em;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce input[type="text"]:focus,
.woocommerce input[type="email"]:focus,
.woocommerce input[type="tel"]:focus,
.woocommerce input[type="password"]:focus,
.woocommerce input[type="number"]:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
	background: var(--wc-blanco);
	border-color: var(--wc-azul-medio);
	outline: none;
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
	border-color: var(--wc-rojo);
	background: #fdf6f5;
}

.woocommerce form .form-row.woocommerce-validated input.input-text {
	border-color: #bcd3a8;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last,
.woocommerce-page form .form-row-first,
.woocommerce-page form .form-row-last {
	width: calc(50% - 10px);
}

/* Select2 (pais, provincia). */
.woocommerce .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
	height: 46px;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
	line-height: 1.4em;
	padding: 0;
	color: var(--wc-texto);
}

.woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	height: 44px;
	right: 8px;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--wc-azul);
}

/* Selector de cantidad. */
.woocommerce .quantity {
	display: inline-flex;
	align-items: center;
}

.woocommerce .quantity .qty,
.woocommerce table.cart .quantity .qty,
.woocommerce-page .quantity .qty {
	width: 84px;
	min-height: 46px;
	text-align: center;
	font-size: 1.05em;
	color: var(--wc-texto);
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde-fuerte);
	border-radius: var(--wc-radio);
	padding: 10px 6px;
}

/* Campos de busqueda de producto. */
.woocommerce .woocommerce-product-search {
	display: flex;
	gap: 8px;
}

.woocommerce .woocommerce-product-search .search-field {
	flex: 1 1 auto;
}

/* ==========================================================================
   5. Avisos (mensajes, info, errores)
   ========================================================================== */

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-info,
.woocommerce-page .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 20px;
	font-size: 1em;
	line-height: 1.5em;
	color: var(--wc-texto);
	background: var(--wc-azul-suave);
	border: 1px solid var(--wc-borde-fuerte);
	border-left: 4px solid var(--wc-azul);
	border-radius: var(--wc-radio);
	padding: 16px 20px 16px 52px;
	margin: 0 0 26px;
	list-style: none;
	position: relative;
}

/* El clearfix de WooCommerce sobra al maquetar el aviso con flex. */
.woocommerce .woocommerce-message::after,
.woocommerce .woocommerce-info::after,
.woocommerce .woocommerce-error::after,
.woocommerce-page .woocommerce-message::after,
.woocommerce-page .woocommerce-info::after,
.woocommerce-page .woocommerce-error::after {
	content: none;
	display: none;
}

.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before,
.woocommerce-page .woocommerce-message::before,
.woocommerce-page .woocommerce-info::before,
.woocommerce-page .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before,
.woocommerce-notices-wrapper .woocommerce-error::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 20px;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	background-color: var(--wc-azul);
	-webkit-mask: var(--wc-icono-aviso) center / 20px 20px no-repeat;
	mask: var(--wc-icono-aviso) center / 20px 20px no-repeat;
}

.woocommerce .woocommerce-message {
	background: #f2f7ec;
	border-color: #d5e3c4;
	border-left-color: var(--wc-verde);
}

.woocommerce .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-message::before {
	background-color: var(--wc-verde);
	-webkit-mask-image: var(--wc-icono-exito);
	mask-image: var(--wc-icono-exito);
}

.woocommerce .woocommerce-error {
	background: #fdf4f2;
	border-color: #eccec7;
	border-left-color: var(--wc-rojo);
	flex-direction: column;
	align-items: flex-start;
}

.woocommerce .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-error::before {
	background-color: var(--wc-rojo);
	-webkit-mask-image: var(--wc-icono-error);
	mask-image: var(--wc-icono-error);
}

.woocommerce .woocommerce-error li {
	margin: 0;
	padding: 0;
}

/* WooCommerce imprime el enlace antes del texto: lo reordenamos con flex. */
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-error .button,
.woocommerce-notices-wrapper .woocommerce-message .button,
.woocommerce-notices-wrapper .woocommerce-info .button,
.woocommerce-notices-wrapper .woocommerce-error .button {
	order: 1;
	flex: 0 0 auto;
	margin-left: auto;
	padding: 8px 18px;
	font-size: 0.92em;
	white-space: nowrap;
}

/* Aviso de la tienda. */
.woocommerce-store-notice,
p.demo_store {
	background: var(--wc-azul-oscuro);
	color: var(--wc-blanco);
	font-size: 1em;
	padding: 14px 24px;
}

.woocommerce-store-notice a {
	color: var(--wc-blanco);
	text-decoration: underline;
}

/* ==========================================================================
   6. Barra superior de la tienda
   ========================================================================== */

.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb {
	font-size: 0.92em;
	color: var(--wc-texto-suave);
	margin: 0 0 24px;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--wc-borde);
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--wc-azul);
	text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--wc-dorado);
	text-decoration: underline;
}

.woocommerce .term-description,
.woocommerce .woocommerce-products-header__title + .term-description {
	max-width: 780px;
	margin: 0 0 28px;
	color: var(--wc-texto-suave);
}

/* Contador de resultados + desplegable de orden. */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
	float: none;
	margin: 0;
	font-size: 0.95em;
	color: var(--wc-texto-suave);
}

.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
	float: none;
	margin: 0;
}

.woocommerce .woocommerce-ordering select {
	min-height: 42px;
	width: auto;
	min-width: 230px;
	padding: 8px 14px;
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde-fuerte);
	border-radius: var(--wc-radio);
	font-size: 0.95em;
}

/* Colocamos contador y orden en la misma linea. */
.woocommerce .woocommerce-result-count + .woocommerce-ordering,
.woocommerce-page .woocommerce-result-count + .woocommerce-ordering {
	margin-left: auto;
}

.woocommerce .woocommerce-notices-wrapper + .woocommerce-result-count,
.woocommerce .woocommerce-result-count {
	display: inline-block;
}

.woocommerce-shop .site-main .woocommerce-result-count,
.tax-product_cat .site-main .woocommerce-result-count {
	vertical-align: middle;
}

/* ==========================================================================
   7. Rejilla de productos
   ========================================================================== */

.woocommerce ul.products,
.woocommerce-page ul.products,
.woocommerce .related ul.products,
.woocommerce .upsells ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px 30px;
	margin: 30px 0 40px;
	padding: 0;
	list-style: none;
	clear: both;
}

.woocommerce ul.products.columns-1 { grid-template-columns: minmax(0, 1fr); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.woocommerce ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product,
.woocommerce[class*="columns-"] ul.products li.product,
.woocommerce-page[class*="columns-"] ul.products li.product,
.woocommerce ul.products li.product-category {
	width: auto;
	float: none;
	clear: none;
	margin: 0;
	padding: 0 0 26px;
	display: flex;
	flex-direction: column;
	text-align: center;
	position: relative;
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	overflow: hidden;
	transition: box-shadow var(--wc-transicion), border-color var(--wc-transicion), transform var(--wc-transicion);
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
	border-color: var(--wc-borde-fuerte);
	box-shadow: var(--wc-sombra-alta);
	transform: translateY(-4px);
}

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

.woocommerce ul.products li.product .woocommerce-LoopProduct-link,
.woocommerce ul.products li.product a.woocommerce-loop-product__link,
.woocommerce ul.products li.product-category > a {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

/* Imagen del producto sobre fondo suave: las botellas se ven completas. */
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img,
.woocommerce ul.products li.product-category a img {
	width: 100%;
	height: 300px;
	object-fit: contain;
	object-position: center;
	margin: 0 0 20px;
	padding: 26px 26px 10px;
	background: linear-gradient(180deg, var(--wc-azul-suave) 0%, var(--wc-blanco) 100%);
	box-shadow: none;
	transition: transform var(--wc-transicion);
}

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

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
.woocommerce ul.products li.product h3,
.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title {
	font-size: 1.35em;
	font-weight: 400;
	line-height: 1.25em;
	color: var(--wc-azul-oscuro);
	padding: 0 22px;
	margin: 0 0 10px;
	transition: color var(--wc-transicion);
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
	color: var(--wc-azul);
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
	display: block;
	font-size: 1.25em;
	font-weight: 600;
	color: var(--wc-vino);
	margin: auto 0 16px;
	padding: 0 22px;
}

.woocommerce ul.products li.product .price del {
	color: var(--wc-texto-suave);
	font-weight: 400;
	font-size: 0.85em;
	opacity: 0.8;
	margin-right: 6px;
}

.woocommerce ul.products li.product .price ins {
	background: none;
	text-decoration: none;
	font-weight: 600;
	color: var(--wc-dorado);
}

.woocommerce ul.products li.product .woocommerce-product-details__short-description {
	padding: 0 22px;
	font-size: 0.95em;
	color: var(--wc-texto-suave);
	margin-bottom: 14px;
}

.woocommerce ul.products li.product .star-rating {
	margin: 0 auto 12px;
	font-size: 0.85em;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce-page ul.products li.product .button {
	margin: 0 22px;
	padding: 10px 18px;
	font-size: 0.95em;
}

/* Etiqueta de oferta. */
.woocommerce span.onsale,
.woocommerce-page span.onsale,
.woocommerce ul.products li.product .onsale {
	position: absolute;
	top: 16px;
	left: 16px;
	right: auto;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	font-size: 0.82em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wc-blanco);
	background: var(--wc-dorado);
	border-radius: var(--wc-radio);
	padding: 7px 12px;
	margin: 0;
	z-index: 2;
}

/* Categorias de producto en la rejilla. */
.woocommerce ul.products li.product-category mark {
	background: none;
	color: var(--wc-texto-suave);
}

/* Relacionados y venta cruzada. */
.woocommerce .related,
.woocommerce .upsells,
.woocommerce .cross-sells {
	clear: both;
	margin-top: 50px;
	padding-top: 40px;
	border-top: 1px solid var(--wc-borde);
}

/* Sin resultados. */
.woocommerce .woocommerce-no-products-found,
.woocommerce-page .woocommerce-no-products-found {
	padding: 0;
}

/* ==========================================================================
   8. Paginacion
   ========================================================================== */

.woocommerce nav.woocommerce-pagination,
.woocommerce-page nav.woocommerce-pagination {
	margin: 10px 0 20px;
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul,
.woocommerce-page nav.woocommerce-pagination ul {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
	border: 0;
	margin: 0;
	padding: 0;
}

.woocommerce nav.woocommerce-pagination ul li,
.woocommerce-page nav.woocommerce-pagination ul li {
	border: 0;
	margin: 0;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce-page nav.woocommerce-pagination ul li a,
.woocommerce-page nav.woocommerce-pagination ul li span {
	display: block;
	min-width: 44px;
	padding: 10px 14px;
	font-size: 1em;
	line-height: 1.2em;
	color: var(--wc-azul);
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio);
	transition: color var(--wc-transicion), background-color var(--wc-transicion), border-color var(--wc-transicion);
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce-page nav.woocommerce-pagination ul li a:hover,
.woocommerce-page nav.woocommerce-pagination ul li span.current {
	color: var(--wc-blanco);
	background: var(--wc-azul);
	border-color: var(--wc-azul);
}

/* ==========================================================================
   9. Ficha de producto
   ========================================================================== */

.woocommerce div.product,
.woocommerce-page div.product,
.woocommerce #content div.product {
	display: grid;
	grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
	gap: 10px 50px;
	align-items: start;
	position: relative;
}

.woocommerce div.product > *,
.woocommerce-page div.product > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.woocommerce div.product > div.images,
.woocommerce-page div.product > div.images,
.woocommerce div.product > .woocommerce-product-gallery,
.woocommerce-page div.product > .woocommerce-product-gallery,
.woocommerce #content div.product div.images {
	grid-column: 1;
	grid-row: 1;
	float: none;
	width: auto;
	margin: 0;
	position: relative;
}

.woocommerce div.product > div.summary,
.woocommerce-page div.product > div.summary,
.woocommerce div.product > .summary,
.woocommerce #content div.product div.summary {
	grid-column: 2;
	grid-row: 1;
	float: none;
	width: auto;
	margin: 0;
	padding: 6px 0 0;
}

.woocommerce div.product > span.onsale,
.woocommerce-page div.product > span.onsale {
	grid-column: 1;
	grid-row: 1;
}

/* Galeria. */
.woocommerce div.product div.images img {
	border-radius: var(--wc-radio-caja);
	background: linear-gradient(180deg, var(--wc-azul-suave) 0%, var(--wc-blanco) 100%);
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 12px 0 0;
	padding: 0;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	width: auto;
	float: none;
	margin: 0;
	list-style: none;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio);
	opacity: 0.75;
	transition: opacity var(--wc-transicion), border-color var(--wc-transicion);
}

.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
	opacity: 1;
	border-color: var(--wc-azul-medio);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	top: 14px;
	right: 14px;
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde);
	border-radius: 50%;
	box-shadow: var(--wc-sombra);
}

/* Resumen: precio, descripcion corta, meta. */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce-page div.product p.price {
	font-size: 1.9em;
	font-weight: 600;
	line-height: 1.2em;
	color: var(--wc-vino);
	margin: 0 0 18px;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	font-size: 0.6em;
	font-weight: 400;
	color: var(--wc-texto-suave);
	margin-right: 8px;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	background: none;
	text-decoration: none;
	color: var(--wc-dorado);
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--wc-texto-suave);
	line-height: 1.6em;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--wc-borde);
}

.woocommerce div.product .stock {
	display: inline-block;
	font-size: 0.92em;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 5px 12px;
	border-radius: var(--wc-radio);
	margin-bottom: 14px;
}

.woocommerce div.product .stock.in-stock {
	color: var(--wc-verde);
	background: #f2f7ec;
}

.woocommerce div.product .stock.out-of-stock {
	color: var(--wc-rojo);
	background: #fdf4f2;
}

/* Formulario de compra. */
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after {
	content: none;
	display: none;
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 22px 0 26px;
}

.woocommerce div.product form.cart .variations {
	width: 100%;
	margin-bottom: 8px;
	border: 0;
}

.woocommerce div.product form.cart .variations tr {
	display: block;
	margin-bottom: 14px;
}

.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	text-align: left;
	background: none;
}

.woocommerce div.product form.cart .variations label {
	font-weight: 600;
	color: var(--wc-azul-oscuro);
	margin-bottom: 6px;
}

.woocommerce div.product form.cart .woocommerce-variation-price {
	width: 100%;
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	width: 100%;
}

.woocommerce div.product form.cart .group_table {
	width: 100%;
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	overflow: hidden;
}

.woocommerce div.product form.cart .group_table td {
	border-top: 1px solid var(--wc-borde);
	padding: 12px 14px;
	vertical-align: middle;
}

/* Meta del producto (SKU, categorias, etiquetas). */
.woocommerce div.product .product_meta {
	font-size: 0.95em;
	color: var(--wc-texto-suave);
	border-top: 1px solid var(--wc-borde);
	padding-top: 18px;
	margin-top: 4px;
}

.woocommerce div.product .product_meta > span {
	display: block;
	margin-bottom: 6px;
}

.woocommerce div.product .product_meta a {
	color: var(--wc-azul);
}

.woocommerce div.product .product_meta a:hover {
	color: var(--wc-dorado);
}

/* ==========================================================================
   10. Pestanas, valoraciones y comentarios
   ========================================================================== */

.woocommerce div.product .woocommerce-tabs {
	margin-top: 50px;
	padding-top: 10px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0 0 0;
	padding: 0;
	border-bottom: 1px solid var(--wc-borde-fuerte);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
	box-shadow: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 14px 22px;
	font-size: 1.1em;
	color: var(--wc-texto-suave);
	text-transform: uppercase;
	letter-spacing: 0.03em;
	border-bottom: 3px solid transparent;
	transition: color var(--wc-transicion), border-color var(--wc-transicion), background-color var(--wc-transicion);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--wc-azul);
	background: var(--wc-azul-claro);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--wc-azul-oscuro);
	border-bottom-color: var(--wc-dorado);
	font-weight: 600;
}

.woocommerce div.product .woocommerce-tabs .panel {
	padding: 30px 0 0;
	margin: 0;
	border: 0;
	box-shadow: none;
	background: none;
}

.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
	display: none;
}

.woocommerce table.shop_attributes {
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	overflow: hidden;
	margin: 0;
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	border: 0;
	border-top: 1px solid var(--wc-borde);
	padding: 12px 16px;
	font-style: normal;
	line-height: 1.5em;
}

.woocommerce table.shop_attributes tr:first-child th,
.woocommerce table.shop_attributes tr:first-child td {
	border-top: 0;
}

.woocommerce table.shop_attributes th {
	width: 30%;
	background: var(--wc-azul-claro);
	color: var(--wc-azul-oscuro);
	font-weight: 600;
}

.woocommerce table.shop_attributes td p {
	margin: 0;
	padding: 0;
}

/* Estrellas. */
.woocommerce .star-rating,
.woocommerce p.stars a {
	color: var(--wc-dorado);
}

.woocommerce .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}

.woocommerce .woocommerce-product-rating .woocommerce-review-link {
	font-size: 0.95em;
	color: var(--wc-texto-suave);
}

/* Comentarios / valoraciones. */
.woocommerce #reviews #comments ol.commentlist {
	padding: 0;
	margin: 0;
}

.woocommerce #reviews #comments ol.commentlist li {
	margin-bottom: 22px;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text {
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 22px 26px;
	margin-left: 76px;
	background: var(--wc-blanco);
}

.woocommerce #reviews #comments ol.commentlist li img.avatar {
	width: 56px;
	border: 0;
	border-radius: 50%;
	padding: 0;
	background: none;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta {
	color: var(--wc-azul-oscuro);
	font-size: 0.95em;
	margin-bottom: 10px;
}

.woocommerce #review_form #respond {
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 26px 30px;
}

.woocommerce #review_form #respond .comment-reply-title {
	font-size: 1.25em;
	color: var(--wc-azul-oscuro);
	display: block;
	margin-bottom: 14px;
}

.woocommerce #review_form #respond input[type="text"],
.woocommerce #review_form #respond input[type="email"],
.woocommerce #review_form #respond textarea {
	background: var(--wc-blanco);
}

/* ==========================================================================
   11. Carrito clasico
   ========================================================================== */

.woocommerce-cart .entry-content > .woocommerce,
.woocommerce-cart .woocommerce > form.woocommerce-cart-form {
	min-width: 0;
}

.woocommerce-cart .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 40px;
	align-items: start;
}

.woocommerce-cart .entry-content > .woocommerce > *:not(form.woocommerce-cart-form):not(.cart-collaterals) {
	grid-column: 1 / -1;
}

.woocommerce-cart .entry-content > .woocommerce > form.woocommerce-cart-form {
	grid-column: 1;
}

.woocommerce-cart .entry-content > .woocommerce > .cart-collaterals {
	grid-column: 2;
	width: auto;
	float: none;
	margin: 0;
}

/* Tablas de la tienda. */
.woocommerce table.shop_table,
.woocommerce-page table.shop_table {
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	border-collapse: separate;
	border-spacing: 0;
	margin: 0 0 26px;
	width: 100%;
}

.woocommerce table.shop_table th,
.woocommerce-page table.shop_table th {
	font-size: 0.92em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wc-azul-oscuro);
	background: var(--wc-azul-suave);
	border: 0;
	padding: 14px 16px;
	text-align: left;
}

.woocommerce table.shop_table thead th:first-child {
	border-top-left-radius: var(--wc-radio-caja);
}

.woocommerce table.shop_table thead th:last-child {
	border-top-right-radius: var(--wc-radio-caja);
}

.woocommerce table.shop_table td,
.woocommerce-page table.shop_table td {
	border: 0;
	border-top: 1px solid var(--wc-borde);
	padding: 18px 16px;
	vertical-align: middle;
}

.woocommerce table.shop_table tbody tr:first-child td {
	border-top: 0;
}

.woocommerce table.cart img,
.woocommerce-page table.cart img {
	width: 72px;
	border-radius: var(--wc-radio);
	background: var(--wc-azul-suave);
}

.woocommerce table.cart td.product-name a {
	color: var(--wc-azul-oscuro);
	font-size: 1.1em;
}

.woocommerce table.cart td.product-name a:hover {
	color: var(--wc-azul);
}

.woocommerce table.cart td.product-name .variation {
	font-size: 0.9em;
	color: var(--wc-texto-suave);
	margin: 6px 0 0;
}

.woocommerce table.cart td.product-price,
.woocommerce table.cart td.product-subtotal {
	color: var(--wc-vino);
	font-weight: 600;
}

.woocommerce a.remove,
.woocommerce-page a.remove {
	width: 28px;
	height: 28px;
	line-height: 26px;
	font-size: 1.2em;
	color: var(--wc-rojo);
	background: #fdf4f2;
	border-radius: 50%;
	text-decoration: none;
}

.woocommerce a.remove:hover,
.woocommerce-page a.remove:hover {
	color: var(--wc-blanco);
	background: var(--wc-rojo);
}

/* Fila de acciones: cupon y actualizar. */
.woocommerce table.cart td.actions,
.woocommerce-page table.cart td.actions {
	background: var(--wc-azul-claro);
	padding: 18px 16px;
	text-align: right;
}

.woocommerce table.cart td.actions .coupon {
	display: inline-flex;
	gap: 10px;
	float: left;
	flex-wrap: wrap;
	text-align: left;
}

.woocommerce table.cart td.actions .coupon label {
	display: none;
}

.woocommerce table.cart td.actions .coupon .input-text {
	width: auto;
	min-width: 220px;
	flex: 0 1 260px;
	margin: 0;
	background: var(--wc-blanco);
}

.woocommerce table.cart td.actions > .button {
	float: none;
	display: inline-block;
	margin: 0;
}

/* Totales del carrito. */
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 26px 26px 30px;
	position: sticky;
	top: 20px;
}

.woocommerce .cart-collaterals .cart_totals table.shop_table {
	border: 0;
	margin-bottom: 20px;
	background: none;
}

.woocommerce .cart-collaterals .cart_totals table.shop_table th,
.woocommerce .cart-collaterals .cart_totals table.shop_table td {
	background: none;
	padding: 12px 0;
	border-top: 1px solid var(--wc-borde);
	text-transform: none;
	font-size: 1em;
	letter-spacing: 0;
}

.woocommerce .cart-collaterals .cart_totals table.shop_table tr:first-child th,
.woocommerce .cart-collaterals .cart_totals table.shop_table tr:first-child td {
	border-top: 0;
}

.woocommerce .cart-collaterals .cart_totals table.shop_table td {
	text-align: right;
}

.woocommerce .cart-collaterals .cart_totals .order-total th,
.woocommerce .cart-collaterals .cart_totals .order-total td {
	font-size: 1.2em;
	color: var(--wc-azul-oscuro);
	border-top: 2px solid var(--wc-borde-fuerte);
}

.woocommerce .cart-collaterals .cart_totals .order-total .amount {
	color: var(--wc-vino);
}

.woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-destination {
	font-size: 0.9em;
	color: var(--wc-texto-suave);
}

.woocommerce .wc-proceed-to-checkout {
	padding: 0;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	font-size: 1.1em;
}

.woocommerce .cart-collaterals .cross-sells {
	width: 100%;
	float: none;
	margin-top: 36px;
	border-top: 1px solid var(--wc-borde);
	padding-top: 28px;
}

.woocommerce .cart-collaterals .cross-sells ul.products {
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
}

/* Carrito vacio. */
.woocommerce .cart-empty,
.woocommerce .wc-empty-cart-message {
	text-align: center;
	font-size: 1.2em;
	color: var(--wc-texto-suave);
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 40px 20px;
	margin-bottom: 24px;
}

.woocommerce .return-to-shop {
	text-align: center;
}

/* ==========================================================================
   12. Finalizar compra clasico
   ========================================================================== */

.woocommerce-checkout form.checkout,
.woocommerce-checkout form.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	gap: 0 40px;
	align-items: start;
}

.woocommerce-checkout form.checkout > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.woocommerce-checkout form.checkout > #customer_details {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.woocommerce-checkout form.checkout > #order_review_heading {
	grid-column: 2;
	grid-row: 1;
	margin-top: 0;
}

.woocommerce-checkout form.checkout > #order_review {
	grid-column: 2;
	grid-row: 2;
}

.woocommerce-checkout .col2-set,
.woocommerce-page .col2-set {
	width: 100%;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2 {
	float: none;
	width: 100%;
	margin-bottom: 10px;
}

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 26px 28px 10px;
	margin-bottom: 24px;
}

.woocommerce-checkout .woocommerce-shipping-fields h3 label,
.woocommerce-checkout .woocommerce-shipping-fields h3 {
	margin-bottom: 14px;
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
	padding-bottom: 10px;
}

/* Aviso de cupon e inicio de sesion. */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-form-login-toggle {
	margin-bottom: 18px;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	background: var(--wc-azul-claro);
	padding: 26px 28px;
	margin: 0 0 26px;
}

.woocommerce form.checkout_coupon .form-row {
	display: inline-block;
	width: auto;
	vertical-align: bottom;
	margin-right: 10px;
}

/* Resumen del pedido. */
.woocommerce-checkout #order_review {
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 26px;
	position: sticky;
	top: 20px;
}

.woocommerce-checkout #order_review table.shop_table {
	border: 0;
	background: none;
	margin-bottom: 20px;
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
	background: none;
	border-top: 1px solid var(--wc-borde);
	padding: 12px 0;
}

.woocommerce-checkout #order_review table.shop_table thead th {
	border-top: 0;
	border-bottom: 1px solid var(--wc-borde-fuerte);
}

.woocommerce-checkout #order_review table.shop_table td.product-total,
.woocommerce-checkout #order_review table.shop_table th.product-total {
	text-align: right;
}

.woocommerce-checkout #order_review table.shop_table .order-total th,
.woocommerce-checkout #order_review table.shop_table .order-total td {
	font-size: 1.2em;
	color: var(--wc-azul-oscuro);
	border-top: 2px solid var(--wc-borde-fuerte);
}

.woocommerce-checkout #order_review table.shop_table .order-total .amount {
	color: var(--wc-vino);
}

.woocommerce-checkout #order_review .product-name .variation {
	font-size: 0.9em;
	color: var(--wc-texto-suave);
	margin: 4px 0 0;
}

/* Metodos de pago. */
.woocommerce-checkout #payment,
.woocommerce #payment {
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 4px 0 0;
}

.woocommerce-checkout #payment ul.payment_methods,
.woocommerce #payment ul.payment_methods {
	border-bottom: 1px solid var(--wc-borde);
	padding: 18px 20px;
	margin: 0;
	list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li,
.woocommerce #payment ul.payment_methods li {
	margin: 0 0 10px;
	padding: 0;
	list-style: none;
	line-height: 1.5em;
}

.woocommerce-checkout #payment ul.payment_methods li label {
	display: inline;
	font-weight: 600;
	color: var(--wc-azul-oscuro);
	margin-left: 6px;
	cursor: pointer;
}

.woocommerce-checkout #payment div.payment_box,
.woocommerce #payment div.payment_box {
	background: var(--wc-azul-suave);
	color: var(--wc-texto-suave);
	border-radius: var(--wc-radio);
	font-size: 0.95em;
	line-height: 1.5em;
	padding: 14px 18px;
	margin: 12px 0 4px;
}

.woocommerce-checkout #payment div.payment_box::before,
.woocommerce #payment div.payment_box::before {
	border-bottom-color: var(--wc-azul-suave);
}

.woocommerce-checkout #payment div.form-row,
.woocommerce #payment div.form-row {
	padding: 20px;
	margin: 0;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout #payment .wc-terms-and-conditions {
	font-size: 0.92em;
	color: var(--wc-texto-suave);
}

.woocommerce-checkout #place_order,
.woocommerce #payment #place_order {
	width: 100%;
	float: none;
	margin-top: 10px;
}

/* ==========================================================================
   13. Bloques de carrito y pago (WooCommerce Blocks)
   ========================================================================== */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	--wc-blocks-border-color: var(--wc-borde);
	max-width: 100%;
}

.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-cart .wc-block-cart__main,
.wc-block-checkout__main {
	min-width: 0;
}

.wc-block-components-title,
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title,
.wc-block-components-order-summary__title {
	font-family: 'Alegreya', serif;
	color: var(--wc-azul-oscuro);
	font-weight: 400;
}

.wc-block-components-checkout-step__title {
	font-size: 1.35em;
}

.wc-block-components-checkout-step__description {
	color: var(--wc-texto-suave);
}

.wc-block-components-sidebar,
.wc-block-cart__sidebar .wc-block-cart__totals-title + *,
.wc-block-checkout__sidebar {
	border-radius: var(--wc-radio-caja);
}

.wc-block-components-sidebar .wc-block-components-totals-wrapper {
	padding-left: 24px;
	padding-right: 24px;
}

.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-components-sidebar > .wc-block-components-totals-wrapper:first-child {
	border-top-left-radius: var(--wc-radio-caja);
	border-top-right-radius: var(--wc-radio-caja);
}

.wc-block-cart__sidebar > .wc-block-components-sidebar,
.wc-block-checkout__sidebar > .wc-block-components-sidebar,
.wc-block-components-sidebar {
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	/* padding-top: 10px;
	padding-bottom: 10px; */
}

.wc-block-components-totals-item__label {
	color: var(--wc-texto-suave);
}

.wc-block-components-totals-item__value {
	color: var(--wc-texto);
}

.wc-block-components-sidebar .wc-block-components-totals-footer-item,
.wc-block-components-sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--wc-azul-oscuro);
	font-size: 1.25em;
	line-height: 1.4em;
}

.wc-block-components-sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--wc-vino);
	font-weight: 600;
}

.wc-block-components-product-name {
	color: var(--wc-azul-oscuro);
	text-decoration: none;
}

.wc-block-components-product-name:hover {
	color: var(--wc-azul);
}

.wc-block-components-product-price__value,
.wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-product-price__value {
	color: var(--wc-vino);
	font-weight: 600;
}

.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	border-radius: var(--wc-radio);
	background: var(--wc-azul-suave);
}

.wc-block-components-quantity-selector {
	border-radius: var(--wc-radio);
	border-color: var(--wc-borde-fuerte);
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	color: var(--wc-azul);
}

.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-textarea,
.wc-blocks-components-select .wc-blocks-components-select__container {
	background: var(--wc-azul-claro);
	border-color: var(--wc-borde);
	border-radius: var(--wc-radio);
}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wc-blocks-components-select .wc-blocks-components-select__container:focus-within {
	background: var(--wc-blanco);
	border-color: var(--wc-azul-medio);
	box-shadow: none;
	outline: none;
}

.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option {
	border-radius: var(--wc-radio);
}

.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	border-color: var(--wc-azul-medio);
	box-shadow: 0 0 0 1px var(--wc-azul-medio);
}

.wc-block-components-notice-banner {
	border-radius: var(--wc-radio);
}

.wc-block-components-notice-banner.is-info {
	background: var(--wc-azul-suave);
	border-color: var(--wc-azul);
}

.wc-block-components-notice-banner.is-success {
	background: #f2f7ec;
	border-color: var(--wc-verde);
}

.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button.wc-block-components-button {
	background: var(--wc-azul);
	border-color: var(--wc-azul);
	color: var(--wc-blanco);
	border-radius: var(--wc-radio);
	text-transform: uppercase;
	font-family: 'Alegreya', serif;
}

.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover {
	background: var(--wc-azul-suave);
	border-color: var(--wc-borde-fuerte);
	color: var(--wc-azul);
}

.wc-block-components-button.is-link,
.wc-block-components-panel__button {
	color: var(--wc-azul);
}

.wc-block-components-sale-badge {
	background: var(--wc-dorado);
	color: var(--wc-blanco);
	border-radius: var(--wc-radio);
}

/* --------------------------------------------------------------------------
   13.1 Carrito de bloques (wp-block-woocommerce-cart)
   --------------------------------------------------------------------------
   Aqui no basta con el orden de carga: cart.css se encola junto al bloque,
   puede imprimirse despues de esta hoja y usa selectores largos del tipo
   "table.wc-block-cart-items .wc-block-cart-items__row .x" (0,3,1). Por eso
   las reglas de esta seccion llevan a proposito el prefijo
   ".wc-block-cart .wc-block-cart__main table.wc-block-cart-items", para ganar
   por especificidad. El unico !important es el del fondo de la cabecera,
   porque WooCommerce declara "background: none !important" en tabla, td y th.

   El reparto en columnas tambien es suyo: lo controla con @container sobre
   .wp-block-woocommerce-cart (container-type: inline-size) en el corte de los
   700px, mas las clases is-medium / is-small / is-mobile como respaldo. El
   responsive de esta parte replica esos dos mecanismos, no el ancho de la
   ventana.
   -------------------------------------------------------------------------- */

/* Los separadores propios de WooCommerce salen de esta variable. */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	--wc-separator-color: var(--wc-borde);
}

.wp-block-woocommerce-cart {
	margin-bottom: 40px;
}

.wc-block-cart.wc-block-components-sidebar-layout {
	align-items: flex-start;
	margin-bottom: 0;
}

/* --- Reparto en dos columnas --- */

@container (min-width: 700px) {
	.wc-block-cart.wc-block-components-sidebar-layout .wc-block-cart__main {
		padding-right: 36px;
	}

	/* El hueco entre columnas lo pone la columna principal: si lo deja el
	   lateral se convierte en un padding suelto dentro de la caja gris. */
	.wc-block-cart.wc-block-components-sidebar-layout .wc-block-cart__sidebar {
		padding-left: 0;
		position: sticky;
		top: 20px;
	}
}

.wc-block-cart.is-medium .wc-block-cart__sidebar,
.wc-block-cart.is-small .wc-block-cart__sidebar,
.wc-block-cart.is-mobile .wc-block-cart__sidebar {
	padding-left: 0;
	position: static;
	width: 100%;
}

/* --- Tabla de productos --- */

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items {
	width: 100%;
	margin: 0;
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	border-collapse: separate;
	border-spacing: 0;
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__header {
	font-size: 0.88em;
	line-height: 1.4em;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__header th {
	/* WooCommerce declara "background: none !important" en tabla, td y th. */
	background: var(--wc-azul-suave) !important;
	color: var(--wc-azul-oscuro);
	font-weight: 600;
	border: 0;
	padding: 13px 16px;
	text-align: left;
	vertical-align: middle;
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__header .wc-block-cart-items__header-image {
	width: 116px;
	padding-left: 20px;
	border-top-left-radius: var(--wc-radio-caja);
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__header .wc-block-cart-items__header-total {
	width: 130px;
	padding-right: 20px;
	text-align: right;
	border-top-right-radius: var(--wc-radio-caja);
}

@container (min-width: 700px) {
	.wc-block-cart .wc-block-cart__main table.wc-block-cart-items td {
		border-top: 1px solid var(--wc-borde);
		padding: 22px 16px;
		vertical-align: top;
	}

	.wc-block-cart .wc-block-cart__main table.wc-block-cart-items tbody tr:first-child td {
		border-top: 0;
	}

	.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-item__image {
		width: 116px;
		padding-left: 20px;
		padding-right: 16px;
	}

	.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-item__total {
		padding-right: 20px;
	}
}

/* --- Imagen --- */

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img {
	width: 80px;
	max-width: 100%;
	height: auto;
	margin: 0;
	border-radius: var(--wc-radio);
	background: var(--wc-azul-suave);
}

/* --- Nombre, precio y datos del producto --- */

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__wrap {
	gap: 6px;
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name {
	font-size: 1.15em;
	font-weight: 400;
	line-height: 1.35em;
	color: var(--wc-azul-oscuro);
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name:hover {
	color: var(--wc-azul);
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__prices {
	font-size: 1em;
	line-height: 1.4em;
	margin: 0;
}

.wc-block-cart .wc-block-cart__main .wc-block-components-product-metadata {
	font-size: 0.95em;
	line-height: 1.5em;
	color: var(--wc-texto-suave);
	gap: 6px;
	margin: 2px 0 0;
}

.wc-block-cart .wc-block-cart__main .wc-block-components-product-metadata .wc-block-components-product-metadata__description > p {
	font-size: 1em;
	line-height: 1.5em;
	margin: 0;
}

/* Cada dato (reservas, variaciones...) en su propia linea. */
.wc-block-cart .wc-block-cart__main .wc-block-components-product-details {
	font-size: 1em;
	line-height: 1.5em;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wc-block-components-product-details > span,
.wc-block-components-product-details > li {
	display: block;
	margin: 0 0 2px;
}

.wc-block-components-product-details [aria-hidden="true"] {
	display: none;
}

.wc-block-cart .wc-block-cart__main .wc-block-components-product-details__name {
	color: var(--wc-texto-suave);
	font-weight: 600;
	font-style: normal;
}

.wc-block-cart .wc-block-cart__main .wc-block-components-product-details__value {
	color: var(--wc-texto);
}

/* --- Cantidad y boton de eliminar --- */

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity {
	gap: 14px;
	margin-top: 6px;
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fdf4f2;
	color: var(--wc-rojo);
	text-decoration: none;
	cursor: pointer;
	transition: var(--wc-transicion);
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link:hover,
.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link:focus {
	background: var(--wc-rojo);
	color: var(--wc-blanco);
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link svg {
	width: 19px;
	height: 19px;
	fill: currentColor;
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-quantity-selector {
	margin: 0;
}

/* --- Total de la linea --- */

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total {
	font-size: 1.05em;
	line-height: 1.4em;
	text-align: right;
}

.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total .wc-block-components-product-price__value {
	color: var(--wc-vino);
	font-weight: 600;
}

/* --- Resumen lateral --- */

/* WooCommerce clava font-size en 14px en este bloque y aqui todos los tamanos
   van en em: sin esto, cada em del resumen valdria 14px. */
.wc-block-cart .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
	font-size: 1em;
	line-height: 1.5em;
	border-bottom: 0;
	margin-bottom: 0;
}

.wc-block-cart .wc-block-cart__sidebar .wc-block-cart__totals-title {
	display: block;
	margin: 0;
	padding: 18px 24px 14px;
	color: var(--wc-azul-oscuro);
	font-size: 1em;
	font-weight: 600;
	line-height: 1.4em;
	letter-spacing: 0.06em;
	text-align: left;
	text-transform: uppercase;
}

/* El aire lateral lo pone el .wc-block-components-totals-wrapper del tema, asi
   que sus hijos van a cero y todo queda alineado en la misma vertical. */
.wc-block-cart .wc-block-components-sidebar .wc-block-components-panel,
.wc-block-cart .wc-block-components-sidebar .wc-block-components-totals-coupon,
.wc-block-cart .wc-block-components-sidebar .wc-block-components-totals-item,
.wc-block-checkout .wc-block-components-sidebar .wc-block-components-panel,
.wc-block-checkout .wc-block-components-sidebar .wc-block-components-totals-coupon,
.wc-block-checkout .wc-block-components-sidebar .wc-block-components-totals-item {
	padding-left: 0;
	padding-right: 0;
}

.wc-block-cart .wc-block-components-sidebar .wc-block-components-totals-coupon .wc-block-components-panel__button {
	color: var(--wc-azul);
	font-size: 1em;
	font-weight: 400;
	line-height: 1.5em;
	padding-top: 2px;
	padding-bottom: 2px;
}

.wc-block-cart .wc-block-components-sidebar .wc-block-components-totals-item__label,
.wc-block-cart .wc-block-components-sidebar .wc-block-components-totals-item__value {
	font-size: 1em;
	line-height: 1.5em;
}

.wc-block-cart .wc-block-components-sidebar .wc-block-components-totals-item__description {
	font-size: 0.9em;
	line-height: 1.5em;
}

/* --- Boton de finalizar compra --- */

.wc-block-cart .wc-block-cart__payment-options,
.wc-block-cart .wc-block-cart__submit {
	padding-left: 24px;
	padding-right: 24px;
}

.wc-block-cart .wc-block-cart__submit {
	margin: 0;
	padding-top: 4px;
	padding-bottom: 20px;
}

.wc-block-cart .wc-block-cart__submit-button {
	display: block;
	width: 100%;
	margin: 0;
	padding: 15px 20px;
	font-size: 1.05em;
	line-height: 1.4em;
	letter-spacing: 0.06em;
}

.wc-block-cart .wc-block-cart__submit-container--sticky {
	background: var(--wc-blanco);
	border-top: 1px solid var(--wc-borde);
}

/* --- Carrito vacio --- */

.wp-block-woocommerce-empty-cart-block {
	text-align: center;
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 40px 24px;
}

.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
	font-family: 'Alegreya', serif;
	color: var(--wc-azul-oscuro);
	font-weight: 400;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__products,
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new {
	text-align: left;
}

/* --- Una sola columna --- */

@container (max-width: 699px) {
	.wc-block-cart .wc-block-cart__main {
		margin-bottom: 30px;
	}

	.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row {
		padding: 18px 16px;
	}

	.wc-block-cart .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
		padding-left: 0;
	}
}

.wc-block-cart.is-medium .wc-block-cart__main,
.wc-block-cart.is-small .wc-block-cart__main,
.wc-block-cart.is-mobile .wc-block-cart__main {
	margin-bottom: 30px;
}

.wc-block-cart.is-medium .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row,
.wc-block-cart.is-small .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row,
.wc-block-cart.is-mobile .wc-block-cart__main table.wc-block-cart-items .wc-block-cart-items__row {
	padding: 18px 16px;
}

/* --------------------------------------------------------------------------
   13.2 Resumen del pedido (finalizar compra de bloques)
   --------------------------------------------------------------------------
   Mismo criterio que en 13.1: selectores por encima de los de checkout.css.
   Dos cosas que conviene tener presentes al tocar esta parte:

   - WooCommerce enmarca .wp-block-woocommerce-checkout-order-summary-block con
     su propio borde y radio; como el tema ya pinta la caja en
     .wc-block-components-sidebar, salian dos marcos, uno dentro de otro.
     Aqui se quita el de dentro.
   - Ese mismo bloque fija font-size en 14px, y como todos los tamanos de esta
     hoja van en em, hacia que cada em del resumen valiese 14px. Se devuelve a
     1em para que hereden el cuerpo del tema.
   -------------------------------------------------------------------------- */

.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	font-size: 1em;
	line-height: 1.5em;
	border: 0;
	border-radius: 0;
	margin: 0;
}

/* --- Reparto en dos columnas --- */

@container (min-width: 700px) {
	.wc-block-checkout.wc-block-components-sidebar-layout .wc-block-checkout__main {
		padding-right: 40px;
	}

	.wc-block-checkout.wc-block-components-sidebar-layout .wc-block-checkout__sidebar {
		padding-left: 0;
		top: 20px;
	}
}

.wc-block-checkout.is-medium .wc-block-checkout__sidebar,
.wc-block-checkout.is-small .wc-block-checkout__sidebar,
.wc-block-checkout.is-mobile .wc-block-checkout__sidebar {
	padding-left: 0;
	width: 100%;
}

/* --- Titulo --- */

.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title {
	margin-top: 0;
	padding: 16px 24px 10px;
}

.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title .wc-block-components-checkout-order-summary__title-text {
	margin: 0;
	font-family: 'Alegreya', serif;
	color: var(--wc-azul-oscuro);
	font-size: 1.35em;
	font-weight: 400;
	line-height: 1.3em;
}

.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title-price {
	color: var(--wc-vino);
	font-weight: 600;
}

/* --- Linea de producto --- */

/* El aire lateral lo pone el .wc-block-components-totals-wrapper del tema. */
@container (min-width: 700px) {
	.wc-block-checkout__sidebar .wc-block-components-order-summary {
		padding: 0;
	}
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-order-summary-item {
	padding: 2px 0;
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-order-summary-item__image {
	width: 56px;
	margin-top: 4px;
	padding-bottom: 18px;
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-order-summary-item__image > img {
	width: 56px;
	max-width: 56px;
	height: auto;
	border-radius: var(--wc-radio);
	background: var(--wc-azul-suave);
}

/* La chapa de la cantidad usa currentColor, o sea negro, en su hoja. */
.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
	background: var(--wc-azul);
	border: 2px solid var(--wc-blanco);
	color: var(--wc-blanco);
	font-size: 0.8em;
	font-weight: 600;
	min-width: 22px;
	min-height: 22px;
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity span {
	color: var(--wc-blanco);
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-order-summary-item__description {
	padding: 0 12px 18px 16px;
	gap: 5px;
}

.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-product-name {
	color: var(--wc-azul-oscuro);
	font-size: 1.08em;
	font-weight: 400;
	line-height: 1.35em;
	margin: 0;
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-cart-item__prices {
	font-size: 0.98em;
	line-height: 1.4em;
	margin: 0;
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-order-summary-item .wc-block-components-product-metadata {
	font-size: 0.92em;
	line-height: 1.5em;
	color: var(--wc-texto-suave);
	gap: 5px;
	margin: 0;
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-product-metadata .wc-block-components-product-metadata__description > p {
	font-size: 1em;
	line-height: 1.5em;
	margin: 0;
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-product-details {
	font-size: 1em;
	line-height: 1.5em;
	margin: 0;
	padding: 0;
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-product-details__name {
	color: var(--wc-texto-suave);
	font-weight: 600;
	font-style: normal;
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-product-details__value {
	color: var(--wc-texto);
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-order-summary-item__total-price {
	font-size: 1.02em;
	line-height: 1.4em;
	padding-top: 2px;
	white-space: nowrap;
}

/* --- Cupones y totales --- */

.wc-block-checkout__sidebar .wc-block-components-totals-coupon .wc-block-components-panel__button {
	color: var(--wc-azul);
	font-size: 1em;
	font-weight: 400;
	line-height: 1.5em;
	padding-top: 2px;
	padding-bottom: 2px;
}

.wc-block-checkout__sidebar .wc-block-components-totals-item__label,
.wc-block-checkout__sidebar .wc-block-components-totals-item__value {
	font-size: 1em;
	line-height: 1.5em;
}

.wc-block-checkout__sidebar .wc-block-components-totals-item__description {
	font-size: 0.9em;
	line-height: 1.5em;
}

.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-totals-block {
	border-top: 1px solid var(--wc-borde);
	padding-bottom: 0;
}

/* --- Plegado en pantallas estrechas --- */

@container (max-width: 699px) {
	.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title {
		border-top: 0;
		border-bottom-color: var(--wc-borde);
		padding: 16px 24px;
	}

	.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title-icon {
		fill: var(--wc-azul);
	}
}

/* ==========================================================================
   14. Pedido recibido y seguimiento
   ========================================================================== */

.woocommerce .woocommerce-order,
.woocommerce-order-received .woocommerce-order {
	max-width: 100%;
}

.woocommerce .woocommerce-thankyou-order-received,
.woocommerce ul.order_details + p,
.woocommerce-order .woocommerce-notice--success {
	font-size: 1.3em;
	color: var(--wc-azul-oscuro);
	background: #f2f7ec;
	border: 1px solid #d5e3c4;
	border-left: 4px solid var(--wc-verde);
	border-radius: var(--wc-radio);
	padding: 20px 24px;
	margin-bottom: 30px;
}

.woocommerce ul.order_details,
.woocommerce-page ul.order_details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 0;
	list-style: none;
	margin: 0 0 34px;
	padding: 0;
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	overflow: hidden;
}

.woocommerce ul.order_details li,
.woocommerce-page ul.order_details li {
	float: none;
	margin: 0;
	padding: 20px 22px;
	border: 0;
	border-left: 1px solid var(--wc-borde);
	background: var(--wc-azul-claro);
	font-size: 0.88em;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wc-texto-suave);
}

.woocommerce ul.order_details li:first-child {
	border-left: 0;
}

.woocommerce ul.order_details li strong {
	display: block;
	font-size: 1.45em;
	text-transform: none;
	letter-spacing: 0;
	color: var(--wc-azul-oscuro);
	margin-top: 6px;
}

.woocommerce .woocommerce-order-details,
.woocommerce .woocommerce-customer-details {
	margin-bottom: 36px;
}

.woocommerce .woocommerce-customer-details address {
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	background: var(--wc-azul-claro);
	padding: 20px 24px;
	font-style: normal;
	line-height: 1.7em;
}

.woocommerce ul.woocommerce-order-overview,
.woocommerce .woocommerce-bacs-bank-details {
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 20px 24px;
	background: var(--wc-vino-suave);
	list-style: none;
}

/* ==========================================================================
   15. Mi cuenta
   ========================================================================== */

.woocommerce-account .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
}

.woocommerce-account .entry-content > .woocommerce > *:not(.woocommerce-MyAccount-navigation):not(.woocommerce-MyAccount-content) {
	grid-column: 1 / -1;
}

/* Fuera de la zona privada (login) usamos una sola columna. */
.woocommerce-account:not(.logged-in) .entry-content > .woocommerce {
	grid-template-columns: minmax(0, 1fr);
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: auto;
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	position: sticky;
	top: 20px;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--wc-borde);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
	border-bottom: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 10px 18px;
	font-size: 1.05em;
	color: var(--wc-texto-suave);
	text-decoration: none;
	border-left: 3px solid transparent;
	transition: color var(--wc-transicion), background-color var(--wc-transicion), border-color var(--wc-transicion);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	color: var(--wc-azul);
	background: var(--wc-azul-suave);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	color: var(--wc-azul-oscuro);
	background: var(--wc-blanco);
	border-left-color: var(--wc-dorado);
	font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 30px 34px;
}

.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
	margin-top: 0;
}

.woocommerce-account .woocommerce-MyAccount-content mark,
.woocommerce mark {
	background: var(--wc-vino-suave);
	color: var(--wc-vino);
	padding: 1px 5px;
	border-radius: 2px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 24px;
	margin-top: 10px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
	float: none;
	width: auto;
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 22px 24px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
	font-size: 1.3em;
	color: var(--wc-azul-oscuro);
	margin-bottom: 10px;
}

.woocommerce-account .woocommerce-MyAccount-content address {
	font-style: normal;
	line-height: 1.7em;
	color: var(--wc-texto-suave);
}

.woocommerce-account .woocommerce-MyAccount-content fieldset {
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 20px 24px 6px;
	margin: 26px 0;
}

.woocommerce-account .woocommerce-MyAccount-content fieldset legend {
	padding: 0 8px;
	color: var(--wc-azul-oscuro);
}

/* Acceso y registro. */
.woocommerce-account .entry-content > .woocommerce .u-columns.col2-set,
.woocommerce .u-columns#customer_login {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 34px;
}

.woocommerce .u-columns#customer_login .col-1,
.woocommerce .u-columns#customer_login .col-2 {
	float: none;
	width: auto;
	max-width: 100%;
}

.woocommerce .u-columns#customer_login h2 {
	font-size: 1.7em;
	color: var(--wc-azul-oscuro);
	margin-bottom: 16px;
}

.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register,
.woocommerce form.woocommerce-ResetPassword,
.woocommerce form.lost_reset_password {
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	background: var(--wc-azul-claro);
	padding: 25px 30px;
    margin: 0 auto;
    max-width: 460px;
    width: 100%;
}
.woocommerce-account h2 {
    text-align: center;
    margin-bottom: 0;
}
.woocommerce form.woocommerce-form-login input.input-text,
.woocommerce form.woocommerce-form-register input.input-text {
	background: var(--wc-blanco);
}

.woocommerce form.woocommerce-form-login .woocommerce-form-login__rememberme {
	display: block;
	margin-bottom: 14px;
}

.woocommerce form.woocommerce-form-login .lost_password,
.woocommerce .woocommerce-LostPassword {
	margin: 12px 0 0;
	font-size: 0.95em;
}

.woocommerce form.woocommerce-form-login .lost_password a,
.woocommerce .woocommerce-LostPassword a {
	color: var(--wc-azul);
}

.woocommerce .woocommerce-privacy-policy-text {
	font-size: 0.92em;
	color: var(--wc-texto-suave);
}

/* Tabla de pedidos de la cuenta. */
.woocommerce table.woocommerce-orders-table,
.woocommerce table.my_account_orders,
.woocommerce table.woocommerce-MyAccount-orders {
	font-size: 0.98em;
}

.woocommerce table.woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions .button,
.woocommerce table.my_account_orders td .button {
	padding: 7px 14px;
	font-size: 0.88em;
	margin: 2px;
}

.woocommerce .woocommerce-pagination .button,
.woocommerce .woocommerce-Pagination a {
	margin-right: 8px;
}

/* Descargas. */
.woocommerce table.shop_table.order_details td.download-product a,
.woocommerce .woocommerce-MyAccount-downloads .download-file a {
	color: var(--wc-azul);
}

/* ==========================================================================
   16. Widgets y carrito flotante
   ========================================================================== */

.woocommerce ul.cart_list,
.woocommerce ul.product_list_widget,
.widget_shopping_cart ul.cart_list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce ul.cart_list li,
.woocommerce ul.product_list_widget li {
	padding: 14px 0;
	margin: 0;
	border-bottom: 1px solid var(--wc-borde);
	list-style: none;
	display: flow-root;
}

.woocommerce ul.cart_list li img,
.woocommerce ul.product_list_widget li img {
	width: 56px;
	margin-left: 12px;
	border-radius: var(--wc-radio);
	background: var(--wc-azul-suave);
	box-shadow: none;
}

.woocommerce ul.cart_list li a,
.woocommerce ul.product_list_widget li a {
	color: var(--wc-azul-oscuro);
	font-weight: 400;
}

.woocommerce ul.cart_list li a:hover,
.woocommerce ul.product_list_widget li a:hover {
	color: var(--wc-azul);
}

.woocommerce ul.cart_list li .quantity,
.woocommerce ul.product_list_widget li .quantity,
.woocommerce ul.product_list_widget li .amount {
	color: var(--wc-vino);
	font-size: 0.95em;
}

.woocommerce .widget_shopping_cart .total,
.woocommerce.widget_shopping_cart .total {
	border-top: 2px solid var(--wc-borde-fuerte);
	padding-top: 14px;
	margin-top: 10px;
	color: var(--wc-azul-oscuro);
}

.woocommerce .widget_shopping_cart .buttons a,
.woocommerce.widget_shopping_cart .buttons a {
	margin-right: 8px;
	margin-bottom: 8px;
}

/* Filtro de precio. */
.woocommerce .widget_price_filter .ui-slider .ui-slider-range,
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle {
	background: var(--wc-azul);
}

.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content {
	background: var(--wc-borde-fuerte);
}

.woocommerce .widget_price_filter .price_label {
	color: var(--wc-texto-suave);
}

/* Listado de categorias del widget. */
.woocommerce .widget_product_categories ul li,
.woocommerce .product-categories li {
	list-style: none;
	border-bottom: 1px solid var(--wc-borde);
	padding: 8px 0;
}

.woocommerce .widget_product_categories ul li a {
	color: var(--wc-azul-oscuro);
}

.woocommerce .widget_product_categories ul li a:hover {
	color: var(--wc-azul);
}

/* ==========================================================================
   17. Reservas (WooCommerce Bookings)
   ==========================================================================
   17.1 Ficha del producto reservable: maquetacion y tarjeta de reserva.
        Todo va bajo div.product.product-type-booking, la clase que WooCommerce
        pone al producto segun su tipo, asi que los productos normales no
        cambian.
   17.2 Calendario.
   17.3 Horarios.
   17.4 Precio calculado y boton.

   La hoja del plugin (woocommerce-bookings/dist/frontend.css) pinta el
   calendario en verde y los horarios con fondo alterno, y lo hace casi todo
   con !important: "td.bookable a", "td.ui-datepicker-current-day a",
   ".block-picker li a.selected"... Por eso hay !important en los colores de
   los dias y de los horarios; sin el no hay forma de cambiarlos. En lo que el
   plugin no marca como important basta con la especificidad.
   ========================================================================== */

/* --------------------------------------------------------------------------
   17.1 Ficha del producto reservable
   -------------------------------------------------------------------------- */

/* Caja por defecto del formulario, por si aparece fuera de la ficha. */
.woocommerce .wc-bookings-booking-form {
	background: var(--wc-azul-claro);
	border: 1px solid var(--wc-borde);
	border-radius: var(--wc-radio-caja);
	padding: 24px 24px 4px;
	margin: 0 0 22px;
	width: 100%;
}

.woocommerce .wc-bookings-booking-form .form-field {
	margin: 0 0 18px;
}

.woocommerce .wc-bookings-booking-form .form-field label {
	display: block;
	color: var(--wc-azul-oscuro);
	font-weight: 600;
	margin: 0 0 6px;
}

.woocommerce div.product.product-type-booking {
	grid-template-columns: minmax(0, 44%) minmax(0, 1fr);
	gap: 10px 56px;
}

/* La foto acompana mientras se baja por el calendario. */
.woocommerce div.product.product-type-booking > div.images,
.woocommerce div.product.product-type-booking > .woocommerce-product-gallery {
	position: sticky;
	top: 24px;
}

.woocommerce div.product.product-type-booking div.images img {
	border-radius: 12px;
}

.woocommerce div.product.product-type-booking .product_title.entry-title {
	font-size: 2.2em;
	line-height: 1.15em;
	margin: 0 0 10px;
}

/* "Desde:" como etiqueta discreta y el importe destacado. */
.woocommerce div.product.product-type-booking > .summary p.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 8px;
	color: var(--wc-texto-suave);
	font-size: 1em;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.3em;
	margin: 0 0 18px;
}

.woocommerce div.product.product-type-booking > .summary p.price .amount {
	color: var(--wc-vino);
	font-size: 1.9em;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.1em;
}

.woocommerce div.product.product-type-booking .woocommerce-product-details__short-description {
	font-size: 1.05em;
	line-height: 1.65em;
	border-bottom: 0;
	padding-bottom: 0;
	margin-bottom: 26px;
}

/* Tarjeta de reserva: el form.cart envuelve el formulario del plugin y el
   boton, asi que es el que hace de tarjeta. */
.woocommerce div.product.product-type-booking form.cart {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	margin: 0 0 28px;
	padding: 0;
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde);
	border-radius: 12px;
	box-shadow: 0 18px 40px -18px rgba(38, 56, 94, 0.28);
	overflow: hidden;
}

/* Banda de color en la cabeza de la tarjeta. */
.woocommerce div.product.product-type-booking form.cart::before {
	content: "";
	display: block;
	height: 4px;
	background: linear-gradient(90deg, var(--wc-azul-oscuro) 0%, var(--wc-azul-medio) 100%);
}

/* Personas en dos columnas; calendario, horarios y precio a todo el ancho. */
.woocommerce div.product.product-type-booking .wc-bookings-booking-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	/* la separacion entre pasos es el gap: lo oculto no deja hueco */
	gap: 22px 18px;
	width: auto;
	margin: 0;
	padding: 26px 28px 0;
	background: none;
	border: 0;
	border-radius: 0;
}

.woocommerce div.product.product-type-booking .wc-bookings-booking-form > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.woocommerce div.product.product-type-booking .wc-bookings-booking-form > .form-field[class*="wc_bookings_field_persons"] {
	grid-column: auto;
	/* si una etiqueta ocupa dos lineas, los campos siguen alineados abajo */
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.woocommerce div.product.product-type-booking .wc-bookings-booking-form .form-field,
.woocommerce div.product.product-type-booking .wc-bookings-booking-form .wc-bookings-date-picker {
	margin: 0;
}

.woocommerce div.product.product-type-booking .wc-bookings-booking-form .form-field > label {
	color: var(--wc-azul-oscuro);
	font-size: 0.92em;
	font-weight: 600;
	line-height: 1.35em;
	margin: 0 0 7px;
}

.woocommerce div.product.product-type-booking .wc-bookings-booking-form .form-field input[type="number"],
.woocommerce div.product.product-type-booking .wc-bookings-booking-form .form-field input[type="text"],
.woocommerce div.product.product-type-booking .wc-bookings-booking-form .form-field select {
	width: 100%;
	min-height: 48px;
	font-size: 1.05em;
	background: var(--wc-azul-claro);
	border-color: var(--wc-borde);
	border-radius: 8px;
}

.woocommerce div.product.product-type-booking .wc-bookings-booking-form .form-field input:focus,
.woocommerce div.product.product-type-booking .wc-bookings-booking-form .form-field select:focus {
	background: var(--wc-blanco);
	border-color: var(--wc-azul-medio);
	box-shadow: 0 0 0 3px var(--wc-azul-suave);
}

/* Cada paso separado del anterior por una linea. */
.woocommerce div.product.product-type-booking .wc-bookings-booking-form > .form-field + .wc-bookings-date-picker,
.woocommerce div.product.product-type-booking .wc-bookings-booking-form > .wc-bookings-date-picker + .form-field {
	border-top: 1px solid var(--wc-borde);
	padding-top: 22px;
}

/* La leyenda "Elige una hora" del plugin solo existia para lectores de
   pantalla; aqui hace de titulo del paso. La regla .screen-reader-text del
   tema lleva position: absolute !important. */
.woocommerce div.product.product-type-booking .time-picker-fieldset > legend.screen-reader-text {
	position: static !important;
	clip: auto;
	-webkit-clip-path: none;
	clip-path: none;
	width: auto;
	height: auto;
	margin: 0 0 12px;
	padding: 0;
	overflow: visible;
	color: var(--wc-azul-oscuro);
	font-size: 0.92em;
	font-weight: 600;
	line-height: 1.35em;
}

.woocommerce div.product.product-type-booking .product_meta {
	font-size: 0.9em;
}

/* --------------------------------------------------------------------------
   17.2 Calendario
   -------------------------------------------------------------------------- */

/* Aviso de zona horaria, con un reloj delante. */
.woocommerce .wc-bookings-date-picker-timezone-block {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	color: var(--wc-texto-suave);
	font-size: 0.88em;
	line-height: 1.4em;
	margin: 0 0 12px;
}

.woocommerce .wc-bookings-date-picker-timezone-block::before {
	content: "";
	flex: 0 0 auto;
	width: 15px;
	height: 15px;
	background-color: currentColor;
	-webkit-mask: var(--wc-icono-reloj) center / contain no-repeat;
	mask: var(--wc-icono-reloj) center / contain no-repeat;
}

.woocommerce .wc-bookings-date-picker-timezone {
	color: var(--wc-azul-oscuro);
	font-weight: 600;
}

.woocommerce .wc-bookings-date-picker {
	margin: 0 0 20px;
	padding: 0;
	line-height: 1.5em;
}

.woocommerce .wc-bookings-date-picker .picker.hasDatepicker {
	margin: 0;
	line-height: 1.5em;
}

/* jQuery UI pone Verdana a todo el widget: que herede la letra del tema. */
.woocommerce .wc-bookings-booking-form .ui-widget,
.woocommerce .wc-bookings-booking-form .ui-widget button {
	font-family: inherit;
	font-size: 1em;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker,
.woocommerce .wc-bookings-date-picker .ui-datepicker-inline,
.woocommerce .wc-bookings-date-picker .ui-widget-content {
	width: 100%;
	max-width: 100%;
	padding: 0;
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde);
	border-radius: 10px;
	box-shadow: none;
	/* recorta la cabecera de color contra las esquinas redondeadas */
	overflow: hidden;
}

/* Cabecera del mes. */
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-header {
	position: relative;
	background: var(--wc-azul);
	background-image: none;
	color: var(--wc-blanco);
	border: 0;
	border-radius: 0;
	padding: 0;
	text-transform: none;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-title {
	color: var(--wc-blanco);
	font-size: 1.2em;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.4em;
	padding: 13px 50px;
	margin: 0;
	text-align: center;
	text-transform: capitalize;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-prev,
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-next {
	top: 50%;
	width: 34px;
	height: 34px;
	margin-top: -17px;
	background: rgba(255, 255, 255, 0.12);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	transition: var(--wc-transicion);
}

.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-prev {
	left: 10px;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-next {
	right: 10px;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-prev:hover,
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-next:hover,
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-prev.ui-state-hover,
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-next.ui-state-hover {
	background: rgba(255, 255, 255, 0.26);
	border: 0;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-prev.ui-state-disabled,
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-next.ui-state-disabled {
	opacity: 0.3;
	cursor: default;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-prev.ui-state-disabled:hover,
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-next.ui-state-disabled:hover {
	background: rgba(255, 255, 255, 0.12);
}

/* El sprite PNG de jQuery UI se sustituye por un SVG enmascarado. */
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-prev span,
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-next span {
	top: 50%;
	left: 50%;
	width: 16px;
	height: 16px;
	margin: -8px 0 0 -8px;
	background-image: none;
	background-color: var(--wc-blanco);
	-webkit-mask: var(--wc-icono-izq) center / 11px 16px no-repeat;
	mask: var(--wc-icono-izq) center / 11px 16px no-repeat;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-datepicker-next span {
	-webkit-mask-image: var(--wc-icono-der);
	mask-image: var(--wc-icono-der);
}

/* Rejilla sin lineas: cada dia es una pastilla redondeada con aire alrededor. */
.woocommerce .wc-bookings-date-picker .ui-datepicker table {
	width: 100%;
	margin: 0;
	font-size: 1em;
	padding: 8px 10px 12px;
	border: 0;
	border-collapse: separate;
	border-spacing: 4px;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker th {
	background: none;
	border: 0;
	color: var(--wc-texto-suave);
	font-size: 0.8em;
	font-weight: 600;
	letter-spacing: 0.08em;
	padding: 6px 0 4px;
	text-align: center;
	text-transform: uppercase;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker td,
.woocommerce .wc-bookings-date-picker .ui-datepicker td:last-child,
.woocommerce .wc-bookings-date-picker .ui-datepicker td.ui-datepicker-other-month {
	background: none;
	border: 0;
	text-align: center;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker td .ui-state-default {
	background: none;
	border: 0;
	border-radius: 8px;
	color: var(--wc-texto);
	font-size: 1em;
	font-weight: 400;
	line-height: 1.4em;
	padding: 10px 0;
	margin: 0;
	text-align: center;
	transition: var(--wc-transicion);
}

/* No reservables: numero apagado, sin pastilla. */
.woocommerce .wc-bookings-date-picker .ui-datepicker .ui-state-disabled {
	opacity: 1;
	filter: none;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker td.ui-state-disabled .ui-state-default {
	color: var(--wc-texto-suave);
	opacity: 0.45;
}

/* Disponibles. */
.woocommerce .wc-bookings-date-picker .ui-datepicker td.bookable a,
.woocommerce .wc-bookings-date-picker .ui-datepicker td.partial_booked a {
	background-color: var(--wc-azul-suave) !important;
	color: var(--wc-azul-oscuro) !important;
	font-weight: 600;
	text-shadow: none;
	text-decoration: none !important;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker td.bookable a:hover,
.woocommerce .wc-bookings-date-picker .ui-datepicker td.partial_booked a:hover,
.woocommerce .wc-bookings-date-picker .ui-datepicker td.bookable a:focus {
	background-color: var(--wc-azul-medio) !important;
	color: var(--wc-blanco) !important;
}

/* Los del mes siguiente, un punto por detras. */
.woocommerce .wc-bookings-date-picker .ui-datepicker td.ui-datepicker-other-month a {
	opacity: 0.6;
}

/* Dia elegido. */
.woocommerce .wc-bookings-date-picker .ui-datepicker td.ui-datepicker-current-day a,
.woocommerce .wc-bookings-date-picker .ui-datepicker td.bookable-range .ui-state-default,
.woocommerce .wc-bookings-date-picker .ui-datepicker td a.ui-state-active,
.woocommerce .wc-bookings-date-picker .ui-datepicker td a.ui-state-active.ui-state-hover {
	background-color: var(--wc-azul) !important;
	color: var(--wc-blanco) !important;
	font-weight: 600;
	opacity: 1;
	text-decoration: none !important;
	box-shadow: 0 6px 14px -6px rgba(38, 56, 94, 0.6);
}

/* Hoy: anillo dorado, sin tocar el fondo. */
.woocommerce .wc-bookings-date-picker .ui-datepicker td.ui-datepicker-today a.ui-state-highlight {
	box-shadow: inset 0 0 0 2px var(--wc-dorado) !important;
}

/* Completo. */
.woocommerce .wc-bookings-date-picker .ui-datepicker td.fully_booked:not(.not_bookable_by_rules) {
	opacity: 1;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker td.fully_booked:not(.not_bookable_by_rules) span,
.woocommerce .wc-bookings-date-picker .ui-datepicker td.fully_booked:not(.not_bookable_by_rules) a {
	background-color: #fdf4f2 !important;
	color: var(--wc-rojo) !important;
	text-shadow: none;
	text-decoration: line-through !important;
}

/* Campos de fecha sueltos (dd / mm / aaaa) cuando el calendario va plegado. */
.woocommerce .wc-bookings-date-picker .wc-bookings-date-picker-date-fields {
	padding: 0;
	border: 0;
	margin: 12px 0 0;
}

.woocommerce .wc-bookings-date-picker .wc-bookings-date-picker-date-fields label {
	display: inline-block;
	width: auto;
	margin: 0 4px 0 0;
}

.woocommerce .wc-bookings-date-picker .wc-bookings-date-picker-date-fields label input {
	width: 86px;
	background: var(--wc-blanco);
}

.woocommerce .wc-bookings-date-picker .wc-bookings-date-picker-date-fields label span {
	color: var(--wc-texto-suave);
	font-size: 0.82em;
	font-weight: 400;
	padding: 2px 0 0;
}

/* Globo de ayuda de cada dia (el plugin lo inserta en body). */
.wc-bookings-date-tooltip {
	background-color: var(--wc-azul-oscuro);
	border: 0;
	border-radius: 6px;
	box-shadow: var(--wc-sombra-alta);
	color: var(--wc-blanco);
	font-size: 0.85em;
	line-height: 1.4em;
	padding: 8px 12px;
}

/* --------------------------------------------------------------------------
   17.3 Horarios
   -------------------------------------------------------------------------- */

.woocommerce .wc-bookings-booking-form .time-picker-fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

.woocommerce .wc-bookings-booking-form .block-picker {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
	overflow: visible;
	min-height: 0;
}

.woocommerce .wc-bookings-booking-form .block-picker li,
.woocommerce .wc-bookings-booking-form .block-picker li.block {
	float: none;
	min-width: 0;
	margin: 0;
	padding: 0;
	text-align: center;
}

/* Antes de elegir dia el plugin deja aqui un aviso ("Elige arriba una
   fecha..."); ocupa toda la fila y se presenta como pista, no como hueco. */
.woocommerce .wc-bookings-booking-form .block-picker > li:not(.block),
.woocommerce .wc-bookings-booking-form .wc-bookings-time-block-picker > p {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin: 0;
	padding: 16px 18px;
	background: var(--wc-azul-claro);
	border: 1px dashed var(--wc-borde-fuerte);
	border-radius: 10px;
	color: var(--wc-texto-suave);
	font-size: 0.95em;
	line-height: 1.45em;
	text-align: center;
	white-space: normal;
}

.woocommerce .wc-bookings-booking-form .block-picker > li:not(.block)::before,
.woocommerce .wc-bookings-booking-form .wc-bookings-time-block-picker > p::before {
	content: "";
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
	background-color: var(--wc-azul-medio);
	-webkit-mask: var(--wc-icono-reloj) center / contain no-repeat;
	mask: var(--wc-icono-reloj) center / contain no-repeat;
}

/* Cada hora, una pastilla. El plugin calcula ancho y alto por JS y los
   escribe en el propio elemento, de ahi el !important en esas dos. */
.woocommerce .wc-bookings-booking-form .block-picker li a,
.woocommerce .wc-bookings-booking-form .block-picker li:nth-child(odd) a,
.woocommerce .wc-bookings-booking-form .block-picker li:nth-child(even) a {
	display: block;
	width: auto !important;
	height: auto !important;
	margin: 0;
	padding: 11px 10px !important;
	background: var(--wc-blanco);
	border: 1px solid var(--wc-borde-fuerte);
	border-radius: 999px;
	box-shadow: none;
	color: var(--wc-azul-oscuro);
	font-size: 1em;
	font-weight: 600;
	line-height: 1.3em;
	text-align: center;
	text-decoration: none;
	transition: var(--wc-transicion);
}

.woocommerce .wc-bookings-booking-form .block-picker li a:hover,
.woocommerce .wc-bookings-booking-form .block-picker li a:focus,
.woocommerce .wc-bookings-booking-form .block-picker li:nth-child(odd) a:hover,
.woocommerce .wc-bookings-booking-form .block-picker li:nth-child(odd) a:focus,
.woocommerce .wc-bookings-booking-form .block-picker li:nth-child(even) a:hover,
.woocommerce .wc-bookings-booking-form .block-picker li:nth-child(even) a:focus {
	background: var(--wc-azul-suave);
	border-color: var(--wc-azul-medio);
	color: var(--wc-azul-oscuro);
	outline: none;
}

.woocommerce .wc-bookings-booking-form .block-picker li a.selected,
.woocommerce .wc-bookings-booking-form .block-picker li a.selected:hover {
	background: var(--wc-azul) !important;
	border-color: var(--wc-azul) !important;
	color: var(--wc-blanco) !important;
	box-shadow: 0 6px 14px -6px rgba(38, 56, 94, 0.6);
}

.woocommerce .wc-bookings-booking-form .block-picker li a .booking-spaces-left {
	display: block;
	font-size: 0.78em;
	font-weight: 400;
	opacity: 0.8;
	margin-top: 1px;
}

.woocommerce .wc-bookings-booking-form .block-picker li.fully_booked a,
.woocommerce .wc-bookings-booking-form .block-picker li.fully_booked a.selected {
	background-color: #fdf4f2 !important;
	border-color: #eccec7 !important;
	color: var(--wc-rojo) !important;
	text-shadow: none;
	text-decoration: line-through !important;
	cursor: not-allowed;
}

/* Meses, cuando la reserva se hace por meses. */
.woocommerce .wc-bookings-booking-form .block-picker.month-picker li a {
	background-color: var(--wc-blanco) !important;
	border-color: var(--wc-borde-fuerte);
	color: var(--wc-azul-oscuro) !important;
	text-shadow: none;
}

.woocommerce .wc-bookings-booking-form .block-picker.month-picker li a:hover,
.woocommerce .wc-bookings-booking-form .block-picker.month-picker li a.selected {
	background-color: var(--wc-azul) !important;
	color: var(--wc-blanco) !important;
}

.woocommerce .wc-bookings-booking-form .block-picker.month-picker li.unavailable a {
	background-color: var(--wc-azul-claro) !important;
	color: var(--wc-texto-suave) !important;
	opacity: 0.6;
}

/* --------------------------------------------------------------------------
   17.4 Precio calculado y boton
   -------------------------------------------------------------------------- */

/* El plugin lo inserta como:
   <p class="booking-selected-dates">...</p>        (solo en rangos)
   <p class="booking-cost-label">Coste: <strong>importe</strong></p> */
.woocommerce .wc-bookings-booking-form .wc-bookings-booking-cost {
	margin: 4px -24px 0;
	padding: 16px 24px;
	background: var(--wc-azul-claro);
	border: 0;
	border-top: 1px solid var(--wc-borde);
	border-radius: 0;
	color: var(--wc-texto-suave);
	font-size: 1em;
	font-weight: 400;
	line-height: 1.5em;
}

.woocommerce div.product.product-type-booking .wc-bookings-booking-form .wc-bookings-booking-cost {
	margin: 0 -28px;
	padding: 18px 28px;
}

.woocommerce .wc-bookings-booking-form .wc-bookings-booking-cost p.booking-selected-dates {
	color: var(--wc-texto-suave);
	font-size: 0.9em;
	margin: 0 0 6px;
}

.woocommerce .wc-bookings-booking-form .wc-bookings-booking-cost p.booking-cost-label {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 4px 12px;
	margin: 0;
}

.woocommerce .wc-bookings-booking-form .wc-bookings-booking-cost p.booking-cost-label strong {
	color: var(--wc-vino);
	font-size: 1.45em;
	font-weight: 600;
	line-height: 1.2em;
}

/* Boton de reservar. */
.woocommerce .wc-bookings-booking-form-button {
	display: block;
	width: 100%;
	font-size: 1.1em;
}

/* Dentro de la tarjeta, con el mismo margen que el contenido. */
.woocommerce div.product.product-type-booking form.cart .wc-bookings-booking-form-button {
	width: auto;
	margin: 22px 28px 28px;
	padding: 16px 24px;
	border-radius: 8px;
	letter-spacing: 0.06em;
}

/* Sin fecha y hora elegidas el boton va deshabilitado: que se note. */
.woocommerce .wc-bookings-booking-form-button.button.alt:disabled,
.woocommerce .wc-bookings-booking-form-button.button.alt.disabled,
.woocommerce .wc-bookings-booking-form-button.button.alt:disabled:hover,
.woocommerce .wc-bookings-booking-form-button.button.alt.disabled:hover {
	background-color: var(--wc-borde-fuerte);
	border-color: var(--wc-borde-fuerte);
	color: var(--wc-texto-suave);
	cursor: not-allowed;
	opacity: 1;
}
.woocommerce-account .woocommerce::after, .woocommerce-account .woocommerce::before {
    content: none;
    display: table;
}
.woocommerce-account .addresses .title .edit {
    float: none;
}
.wc-block-components-checkout-place-order-button .wc-block-components-checkout-place-order-button__text {
    justify-self: center;
    font-size: 21px;
    padding: 6px;
}
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt.disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt.disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled[disabled], .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled[disabled]:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt.disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt.disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled[disabled], .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled[disabled]:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled[disabled], .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled[disabled]:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt.disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt.disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled[disabled], .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled[disabled]:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt.disabled, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt.disabled:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled[disabled], :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled[disabled]:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt.disabled, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt.disabled:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled[disabled], :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled[disabled]:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt.disabled, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt.disabled:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled[disabled], :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled[disabled]:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt.disabled, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt.disabled:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled[disabled], :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled[disabled]:hover{
	background-color: #26385e;
}
/* ==========================================================================
   18. Responsive
   ========================================================================== */

@media (max-width: 1200px) {
	.woocommerce-cart .entry-content > .woocommerce {
		grid-template-columns: minmax(0, 1fr) 320px;
		gap: 30px;
	}

	.woocommerce-checkout form.checkout,
	.woocommerce-checkout form.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: 0 30px;
	}

	.woocommerce-account .entry-content > .woocommerce {
		grid-template-columns: 230px minmax(0, 1fr);
		gap: 30px;
	}
}

@media (max-width: 1024px) {
	.woocommerce ul.products li.product,
	.woocommerce-page ul.products li.product,
	.woocommerce ul.products[class*="columns-"] li.product,
	.woocommerce-page ul.products[class*="columns-"] li.product {
		width: auto;
		float: none;
		clear: none;
		margin: 0;
	}

	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 30px 24px;
	}

	.woocommerce div.product,
	.woocommerce-page div.product,
	.woocommerce #content div.product {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
	}

	.woocommerce div.product > .woocommerce-product-gallery,
	.woocommerce-page div.product > .woocommerce-product-gallery,
	.woocommerce div.product > div.images,
	.woocommerce div.product > .summary,
	.woocommerce-page div.product > .summary,
	.woocommerce #content div.product div.summary {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.woocommerce div.product div.images {
		max-width: 520px;
		margin: 0 auto;
	}

	/* Ficha reservable: una columna y la foto deja de acompanar. */
	.woocommerce div.product.product-type-booking {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
	}

	.woocommerce div.product.product-type-booking > div.images,
	.woocommerce div.product.product-type-booking > .woocommerce-product-gallery {
		position: relative;
		top: auto;
	}

	.woocommerce-cart .entry-content > .woocommerce,
	.woocommerce-checkout form.checkout,
	.woocommerce-checkout form.woocommerce-checkout,
	.woocommerce-account .entry-content > .woocommerce,
	.woocommerce-account:not(.logged-in) .entry-content > .woocommerce {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
	}

	.woocommerce-cart .entry-content > .woocommerce > form.woocommerce-cart-form,
	.woocommerce-cart .entry-content > .woocommerce > .cart-collaterals,
	.woocommerce-checkout form.checkout > #customer_details,
	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.checkout > #order_review {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.woocommerce .cart-collaterals .cart_totals,
	.woocommerce-checkout #order_review,
	.woocommerce-account .woocommerce-MyAccount-navigation {
		position: static;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: flex;
		flex-wrap: wrap;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul li {
		border-bottom: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
		border-left: 0;
		border-bottom: 3px solid transparent;
		padding: 12px 16px;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
		border-left: 0;
		border-bottom-color: var(--wc-dorado);
	}
}

@media (max-width: 768px) {
	.woocommerce-page .site-content > .content-area:first-child,
	.woocommerce .site-content > .content-area:first-child {
		padding-top: 120px;
	}

	.woocommerce ul.products li.product a img,
	.woocommerce-page ul.products li.product a img {
		height: 230px;
		padding: 18px 18px 6px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
		font-size: 1.2em;
		padding: 0 14px;
	}

	.woocommerce ul.products li.product .price {
		padding: 0 14px;
	}

	.woocommerce ul.products li.product .button {
		margin: 0 14px;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs {
		gap: 0;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li,
	.woocommerce div.product .woocommerce-tabs ul.tabs li a {
		width: 100%;
		text-align: center;
	}

	.woocommerce div.product form.cart {
		gap: 10px;
	}

	.woocommerce div.product form.cart .single_add_to_cart_button {
		flex: 1 1 auto;
	}

	/* Tablas apiladas. */
	.woocommerce table.shop_table_responsive tr,
	.woocommerce-page table.shop_table_responsive tr {
		display: block;
		border-top: 1px solid var(--wc-borde);
		padding: 8px 0;
	}

	.woocommerce table.shop_table_responsive tbody tr:first-child {
		border-top: 0;
	}

	.woocommerce table.shop_table_responsive tr td,
	.woocommerce-page table.shop_table_responsive tr td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 16px;
		text-align: right;
		border-top: 0;
		padding: 8px 16px;
	}

	.woocommerce table.shop_table_responsive tr td::before,
	.woocommerce-page table.shop_table_responsive tr td::before {
		font-weight: 600;
		color: var(--wc-azul-oscuro);
	}

	.woocommerce table.cart td.actions,
	.woocommerce-page table.cart td.actions {
		display: block;
		text-align: left;
	}

	.woocommerce table.cart td.actions .coupon {
		margin-bottom: 12px;
	}

	.woocommerce table.cart td.actions .coupon .input-text {
		flex: 1 1 100%;
		min-width: 0;
	}

	.woocommerce table.cart td.actions > .button {
		float: none;
		margin-top: 0;
		width: 100%;
	}

	.woocommerce .cart-collaterals .cart_totals,
	.woocommerce-checkout #order_review,
	.woocommerce-checkout .woocommerce-billing-fields,
	.woocommerce-checkout .woocommerce-shipping-fields,
	.woocommerce-checkout .woocommerce-additional-fields,
	.woocommerce-account .woocommerce-MyAccount-content,
	.woocommerce form.woocommerce-form-login,
	.woocommerce form.woocommerce-form-register {
		padding: 22px 20px;
	}

	.woocommerce ul.order_details li,
	.woocommerce-page ul.order_details li {
		border-left: 0;
		border-top: 1px solid var(--wc-borde);
	}

	.woocommerce ul.order_details li:first-child {
		border-top: 0;
	}

	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last,
	.woocommerce-page form .form-row-first,
	.woocommerce-page form .form-row-last {
		width: 100%;
	}

	.woocommerce form.checkout_coupon .form-row {
		display: block;
		width: 100%;
		margin-right: 0;
	}
}

@media (max-width: 580px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.woocommerce ul.products.columns-2,
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}

	.woocommerce ul.products li.product a img,
	.woocommerce-page ul.products li.product a img {
		height: 280px;
	}

	.woocommerce div.product p.price,
	.woocommerce-page div.product p.price {
		font-size: 1.6em;
	}

	.woocommerce .woocommerce-message,
	.woocommerce .woocommerce-info,
	.woocommerce .woocommerce-error {
		padding: 16px 18px 16px 48px;
	}

	.woocommerce .woocommerce-message .button,
	.woocommerce .woocommerce-info .button,
	.woocommerce .woocommerce-error .button,
	.woocommerce-notices-wrapper .woocommerce-message .button,
	.woocommerce-notices-wrapper .woocommerce-info .button,
	.woocommerce-notices-wrapper .woocommerce-error .button {
		flex: 1 0 100%;
		margin-left: 0;
		width: 100%;
	}

	.woocommerce div.product form.cart .single_add_to_cart_button,
	.woocommerce .wc-proceed-to-checkout a.checkout-button,
	.woocommerce-checkout #place_order {
		width: 100%;
	}

	/* Ficha reservable: tarjeta con menos aire y calendario mas compacto. */
	.woocommerce div.product.product-type-booking .product_title.entry-title {
		font-size: 1.8em;
	}

	.woocommerce div.product.product-type-booking .wc-bookings-booking-form {
		gap: 20px 12px;
		padding: 20px 18px 0;
	}

	.woocommerce div.product.product-type-booking .wc-bookings-booking-form .wc-bookings-booking-cost {
		margin: 0 -18px;
		padding: 16px 18px;
	}

	.woocommerce div.product.product-type-booking form.cart .wc-bookings-booking-form-button {
		margin: 20px 18px 18px;
	}

	.woocommerce .wc-bookings-date-picker .ui-datepicker table {
		padding: 4px 4px 8px;
		border-spacing: 2px;
	}

	.woocommerce .wc-bookings-date-picker .ui-datepicker td .ui-state-default {
		padding: 8px 0;
	}

	.woocommerce .wc-bookings-booking-form .block-picker {
		grid-template-columns: repeat(auto-fill, minmax(82px, 1fr));
		gap: 8px;
	}

	/* Carrito de bloques: menos aire lateral en el resumen. */
	.wc-block-components-sidebar .wc-block-components-totals-wrapper,
	.wc-block-cart .wc-block-cart__sidebar .wc-block-cart__totals-title,
	.wc-block-cart .wc-block-cart__payment-options,
	.wc-block-cart .wc-block-cart__submit {
		padding-left: 16px;
		padding-right: 16px;
	}
}
