/*
Theme Name: Bloxic Child
Theme URI: https://festivalesdelsur.com
Description: Tema hijo de Bloxic para Festivales del Sur. Aquí van los overrides que deben sobrevivir a las actualizaciones del tema padre.
Author: HEXER
Template: bloxic
Version: 1.0.3
Text Domain: bloxic-child
*/

/* ============================================================
   SIN AZUL EN TODA LA WEB — convención de hover negro <-> rojo

   Dos librerías traen azul por defecto y pueden asomar en cualquier
   página, sobre todo al pasar el ratón:

   1. Bootstrap (lo carga el tema padre): a:hover usa
      --bs-link-hover-color (#0a58ca, azul oscuro) y el tema no lo
      corrige, así que cualquier enlace sin color de hover propio se
      volvería azul.
   2. Elementor Pro: los widgets de WooCommerce (Mi cuenta, Carrito,
      Finalizar compra, Añadir al carrito, Resumen de compra) usan
      variables cuyo valor por defecto es #5bc0de.

   En vez de añadir reglas nuevas —que pisarían hovers ya correctos del
   tema— se redefinen aquí LAS PROPIAS VARIABLES. Así el azul deja de
   existir como opción y todo lo que ya funciona se mantiene igual.

   Convención: lo que está en rojo pasa a negro al pasar el ratón, y lo
   que está en negro pasa a rojo.
   ============================================================ */
:root {
	/* --- Bootstrap --- */
	--bs-link-color: var(--main-color, #ed1d24);
	--bs-link-hover-color: var(--black-color, #000);

	/* --- Elementor Pro / widgets de WooCommerce --- */
	/* Enlaces: rojo -> negro */
	--links-normal-color: var(--main-color, #ed1d24);
	--links-hover-color: var(--black-color, #000);
	--tables-links-normal-color: var(--main-color, #ed1d24);
	--tables-links-hover-color: var(--black-color, #000);
	--order-details-product-links-normal-color: var(--main-color, #ed1d24);
	--order-details-product-links-hover-color: var(--black-color, #000);

	/* Pestañas y menús: negro -> rojo (activo en rojo) */
	--tabs-normal-color: var(--black-color, #000);
	--tabs-hover-color: var(--main-color, #ed1d24);
	--tabs-active-color: var(--main-color, #ed1d24);
	--tabs-border-color: #ececec;
	--tabs-hover-border-color: var(--main-color, #ed1d24);
	--tabs-active-border-color: var(--main-color, #ed1d24);
	--tabs-divider-color: #ececec;

	/* Botones y sus bordes: negro -> rojo */
	--buttons-border-color: var(--black-color, #000);
	--forms-buttons-border-color: var(--black-color, #000);
	--forms-buttons-hover-border-color: var(--main-color, #ed1d24);
	--tables-buttons-border-color: var(--black-color, #000);
	--purchase-button-hover-border-color: var(--main-color, #ed1d24);
	--checkout-button-hover-border-color: var(--main-color, #ed1d24);
	--order-summary-remove-icon-hover-color: var(--main-color, #ed1d24);
}

/* Único azul que Elementor deja escrito a fuego (no sale de variable):
   el botón de añadir método de pago dentro de "Mi cuenta". */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab__add-payment-method #add_payment_method #payment #place_order {
	background: var(--black-color, #000);
	transition: background .2s ease;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab__add-payment-method #add_payment_method #payment #place_order:hover {
	background: var(--main-color, #ed1d24);
}

/* ============================================================
   Mini presupuesto en el header (YITH Request a Quote)
   Plantilla propia en woocommerce/widgets/mini-quote-list.php
   con markup .bloxic-mq. El wrapper .widget_ywraq_mini_list_quote
   lo conserva YITH para el auto-refresco AJAX.
   ============================================================ */

/* Anular estilos por defecto de YITH y del contenedor "cart-box" del tema */
.main-header .cart-box { padding-left: 0; margin-left: 24px; }
.main-header .cart-box:before {
	left: -24px; top: 50%; bottom: auto; height: 24px;
	transform: translateY(-50%); opacity: .12;
}
.main-header .cart-box .box-inner { padding-left: 0; text-transform: none; display: flex; align-items: center; }
.main-header .widget_ywraq_mini_list_quote,
.main-header .yith-ywraq-list-widget-wrapper {
	margin: 0 !important; padding: 0 !important; display: inline-block !important;
	position: static !important; z-index: auto !important; vertical-align: middle;
}

/* ---- Disparador (icono + contador), sin caja ---- */
.bloxic-mq { position: relative; display: inline-block; line-height: 1; }
.bloxic-mq__trigger {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; color: var(--black-color, #1a1a1a);
	text-decoration: none; transition: color .2s ease;
}
.bloxic-mq__trigger:hover { color: var(--main-color, #e10000); }
.bloxic-mq__icon { width: 24px; height: 24px; display: block; }
.bloxic-mq__count {
	position: absolute; top: 0; right: 0;
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 18px; height: 18px; padding: 0 5px;
	font-size: 11px; font-weight: 700; line-height: 1;
	color: #fff; background: var(--main-color, #e10000);
	border-radius: 50%; border: 2px solid #fff;
}

/* ---- Panel desplegable (resumen en hover) ---- */
.bloxic-mq__panel {
	position: absolute; top: calc(100% + 12px); right: 0; z-index: 1200;
	width: 360px; max-width: calc(100vw - 30px);
	background: #fff; border-radius: 12px;
	box-shadow: 0 18px 50px rgba(0, 0, 0, .14);
	padding: 18px 18px 20px;
	opacity: 0; visibility: hidden; transform: translateY(10px);
	transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.bloxic-mq__panel:before { /* puente invisible para no perder el hover */
	content: ''; position: absolute; top: -14px; left: 0; right: 0; height: 16px;
}
.bloxic-mq__panel:after { /* flechita */
	content: ''; position: absolute; top: -7px; right: 14px; width: 14px; height: 14px;
	background: #fff; transform: rotate(45deg); box-shadow: -2px -2px 4px rgba(0,0,0,.04);
}
.bloxic-mq:hover .bloxic-mq__panel,
.bloxic-mq__panel:hover {
	opacity: 1; visibility: visible; transform: translateY(0);
}

.bloxic-mq__head {
	font-size: 13px; color: #555; font-weight: 500; text-transform: none;
	margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid #f0f0f0; letter-spacing: 0;
}
.bloxic-mq__head strong { color: var(--main-color, #e10000); }
.bloxic-mq__empty { color: #999; font-size: 14px; padding: 8px 0 16px; }

.bloxic-mq__list { list-style: none; margin: 0 0 6px; padding: 0; max-height: 320px; overflow-y: auto; }
.bloxic-mq__item { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid #f5f5f5; }
.bloxic-mq__item:last-child { border-bottom: 0; }
.bloxic-mq__thumb { flex: 0 0 auto; line-height: 0; }
.bloxic-mq__thumb img { width: 54px; height: 54px; object-fit: cover; border-radius: 8px; border: 1px solid #eee; }
.bloxic-mq__info { flex: 1 1 auto; min-width: 0; text-decoration: none; }
.bloxic-mq__name {
	display: block; font-size: 13.5px; font-weight: 600; line-height: 1.3; color: #222;
	text-transform: none;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.bloxic-mq__info:hover .bloxic-mq__name { color: var(--main-color, #e10000); }
.bloxic-mq__qty { display: block; font-size: 12px; color: #999; margin-top: 3px; }
.bloxic-mq__remove {
	flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 16px; line-height: 1; color: #bbb; text-decoration: none;
	background: #f6f6f6; transition: all .15s ease;
}
.bloxic-mq__remove:hover { color: #fff; background: var(--main-color, #e10000); }

.bloxic-mq__btn {
	display: block; text-align: center; margin-top: 14px;
	padding: 12px 16px; border-radius: 8px;
	background: var(--main-color, #e10000); color: #fff !important;
	font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .3px;
	text-decoration: none; transition: filter .2s ease;
}
.bloxic-mq__btn:hover { filter: brightness(.92); }
.bloxic-mq.is-empty .bloxic-mq__btn { display: none; }

/* ---- En el header fijo (sticky) ---- */
.main-header .sticky-header .right-box { gap: 8px; }
.main-header .sticky-header .cart-box.sticky-quote-box { margin-left: 14px; }
.main-header .sticky-header .cart-box.sticky-quote-box:before { display: none; }

/* ============================================================
   MÓVIL: unificar el header de arriba (.header-lower) con el fijo del scroll
   (.sticky-header). El fijo trae fondo blanco + sombra/separador horizontal
   debajo (box-shadow); el de arriba iba transparente y sin sombra, por eso al
   hacer scroll "cambiaba" el diseño. Le damos el mismo fondo y sombra para que
   los dos se vean iguales (logo ya a la izquierda en ambos). Solo en móvil; en
   escritorio el header-lower mantiene su diseño con el menú.
   ============================================================ */
@media (max-width: 767px) {
	.main-header .header-lower {
		background-color: var(--white-color, #fff);
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.10);
		position: relative;
		z-index: 5;
	}
	/* El logo del header de arriba llevaba margin-left:30px (.logo-box .logo) y
	   quedaba metido (empezaba en x=45); el del sticky va pegado a la izquierda
	   (x=15). Lo alineamos igual, flush a la izquierda como el sticky. */
	.main-header .header-lower .logo-box .logo {
		margin-left: 0;
	}
	/* Separador vertical entre el logo y el carrito/hamburguesa, IGUAL en los dos
	   headers. El tema solo lo trae en el estático (.logo-box:before); lo dejamos
	   con una geometría común y se lo añadimos también al sticky (.logo:before)
	   para que coincidan. */
	.main-header .header-lower .logo-box:before,
	.main-header .sticky-header .logo:before {
		content: '';
		display: block;
		position: absolute;
		right: -20px;
		top: 50%;
		bottom: auto;
		transform: translateY(-50%);
		width: 1px;
		height: 28px;
		opacity: 0.12;
		background-color: var(--black-color, #000);
	}
}

/* ============================================================
   Títulos de los widgets de la barra lateral (blog, tienda).
   El tema los pinta en Outfit 500 (.sidebar-title-two h5), pero el kit
   global de Elementor (.elementor-kit-6 h5) los reescribe a Jost 400 con
   la misma especificidad y, al cargar después, gana. Recuperamos Outfit
   como en la demo, con un selector más específico. */
.sidebar-side .sidebar-title-two h5,
.sidebar-page-container .sidebar-title-two h5,
.footer-widget .sidebar-title-two h5 {
	font-family: var(--font-family-Outfit), sans-serif;
	font-weight: 500;
	/* El kit de Elementor también fuerza el tamaño a 16px; el tema quiere
	   --font-22 (22px), que es el de la demo. */
	font-size: var(--font-22, 22px);
	line-height: 1.4;
}

/* ============================================================
   Flechas de la paginación (blog, archivos...).
   El tema imprime <i class="far fa-angle-double-right"> (peso 400,
   Regular). Con Font Awesome 5 PRO —la de la demo— ese glifo existe en
   Regular; con la versión FREE que hay instalada aquí, angle-double-right
   solo está en el peso Solid (900), así que en Regular sale vacío y la
   flecha desaparece. Forzamos 900 para usar la variante Solid, que sí está
   disponible. Cubre también la flecha anterior por si se activa.
   ============================================================ */
.styled-pagination .fa-angle-double-right,
.styled-pagination .fa-angle-double-left,
.page-numbers .fa-angle-double-right,
.page-numbers .fa-angle-double-left {
	font-weight: 900;
}

/* ---- Buscador de la cabecera: barra fija en lugar de la cortina ----
   assets/js/header-search.js sustituye la lupa suelta de Header Style 1 por
   el formulario del popup envuelto en .search-box-two (el estilo ya lo trae
   header.css del tema). Ocultamos aquí la lupa para que no parpadee mientras
   carga el JS; el resto del aspecto —píldora, borde rojo al enfocar— es del
   propio tema, así que no hace falta CSS nuevo. */
.main-header .search-box-outer .search-box-btn { display: none; }

/* Botón propio para vaciar el campo (lo inyecta header-search.js). Se oculta
   la "x" nativa del navegador: quedaba debajo del botón de la lupa y al
   pulsarla enviaba la búsqueda en lugar de limpiarla. */
.main-header .search-box-two input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	display: none;
}
/* Hueco a la derecha para las dos acciones, que el texto no se meta debajo */
.main-header .search-box-two input[type="search"] { padding-right: 76px; }
/* Lupa algo más estrecha para dejar sitio a la x sin solaparse */
.main-header .search-box-two button[type="submit"] { width: 44px; }
.main-header .search-box-two .bloxic-search-clear {
	position: absolute;
	right: 46px;
	top: 0;
	width: 24px;
	height: 50px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	color: var(--main-color, #ed1d24);
	font-size: 22px;
	line-height: 1;
	display: none;
	align-items: center;
	justify-content: center;
	transition: color .2s ease;
}
.main-header .search-box-two .bloxic-search-clear.is-visible { display: inline-flex; }
.main-header .search-box-two .bloxic-search-clear:hover { color: var(--black-color, #000); }

/* ---- Logo del menú fijo (sticky) ----
   Fallo del tema padre, común a Header Style 1 y 2: el ancho del logo se
   imprime en línea sobre ".main-header .logo-box .logo", pero el marcado
   del sticky (header-one.php:97 / header-two.php:176) usa un ".logo"
   suelto, SIN el contenedor .logo-box, así que nunca recibe ese ancho.
   Con un logo SVG —que no tiene dimensiones intrínsecas— eso lo deja en
   0x0 y desaparece al hacer scroll. Le damos altura y ancho automático
   para que respete su proporción sin depender del ajuste del tema. */
.main-header .sticky-header .logo img {
	height: 40px;
	width: auto;
	max-width: 250px;
	display: inline-block;
}

/* ===== Móvil/tablet: el tema oculta .cart-box a partir de 1200px ===== */
@media (max-width: 1200px) {
	.main-header .cart-box { display: inline-block !important; margin-left: 14px; }
	.main-header .cart-box:before { display: none; }
	/* en táctil no hay hover: el icono lleva a la página de presupuesto al tocar */
	.bloxic-mq__panel { display: none !important; }
}

/* ============================================================
   Botones +/- en la tabla de la página de presupuesto
   ============================================================ */
/* Stepper como el carrito de Bloxic: signos − / + planos y cantidad en
   caja gris clara, sin bordes. */
#yith-ywrq-table-list .product-quantity .quantity {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
#yith-ywrq-table-list .product-quantity input.qty {
	width: 44px; height: 36px; text-align: center; border: 0; border-radius: 0;
	background: #f4f4f4; padding: 0; margin: 0;
	font-family: var(--font-family-Outfit, inherit); font-size: 14px; color: var(--black-color, #111);
	-moz-appearance: textfield; box-shadow: none;
}
#yith-ywrq-table-list .product-quantity input.qty::-webkit-outer-spin-button,
#yith-ywrq-table-list .product-quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
#yith-ywrq-table-list .product-quantity .bloxic-qty-btn {
	width: 28px; height: 36px; padding: 0; margin: 0; cursor: pointer;
	border: 0; background: transparent; color: var(--black-color, #111);
	font-size: 20px; line-height: 1; font-weight: 500;
	display: inline-flex; align-items: center; justify-content: center;
	transition: color .15s ease;
}
#yith-ywrq-table-list .product-quantity .bloxic-qty-btn:hover { color: var(--main-color, #e10000); }

/* Mismo stepper en la ficha de producto (.quantity-box la pinta nuestro
   override global/quantity-input.php; los botones, qty-stepper.js). */
.quantity.quantity-box .item-quantity {
	display: inline-flex; align-items: center; justify-content: center;
}
.quantity.quantity-box input.qty {
	/* Look de la demo: caja gris sin borde, cuadrada, 14px/500. Se mantiene
	   ENCIMA del botón (esto solo cambia el diseño, no la posición). */
	width: 42px; height: 42px; text-align: center; border: 0; border-radius: 0;
	padding: 0; margin: 0; background: #ededed; color: #0b0b0b;
	font-size: var(--font-14, 14px); font-weight: 500;
	-moz-appearance: textfield; box-shadow: none; min-height: 0;
}
.quantity.quantity-box input.qty::-webkit-outer-spin-button,
.quantity.quantity-box input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity.quantity-box .bloxic-qty-btn {
	/* −/+ desnudos como la demo: sin caja ni borde, solo el símbolo. */
	width: 34px; height: 42px; padding: 0; margin: 0; cursor: pointer;
	border: 0; background: transparent; color: #0b0b0b;
	font-size: 18px; line-height: 1; font-weight: 500;
	display: inline-flex; align-items: center; justify-content: center;
	transition: color .15s ease; box-shadow: none;
}
.quantity.quantity-box .bloxic-qty-btn:hover { color: var(--main-color, #e10000); background: transparent; }

/* ============================================================
   Botón de compra de la ficha + botones de YITH con el look del botón de la
   plantilla: NEGRO con hover ROJO (--main-color) y esquinas rectas.
   · El nativo .single_add_to_cart_button ya es negro/rojo; solo le quitamos el
     radio (6px) y lo separamos del contador (que va encima).
   · Los de YITH (.add-request-quote-button) salen grises (los pinta el .button
     del tema); adoptan el mismo color/hover MANTENIENDO su tamaño (no tocamos
     el padding). En listados de categoría, ficha y relacionados. Acotado a sus
     propias clases: no afecta a ningún otro elemento.
   ============================================================ */
/* Color/hover/esquinas de TODOS los botones de YITH (ficha, relacionados y
   listados) y del nativo. El tema los pinta con !important, así que aquí también
   usamos !important pero ACOTADO a la clase del propio botón: no puede afectar a
   ningún otro elemento. NO tocamos el padding: se mantiene el tamaño actual. */
.woocommerce a.add-request-quote-button,
.woocommerce a.add-request-quote-button.button {
	background-color: #000 !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: #FFFFFF !important;
}
.woocommerce a.add-request-quote-button:hover,
.woocommerce a.add-request-quote-button.button:hover {
	background-color: var(--main-color, #ED1D24) !important;
	color: #FFFFFF !important;
	/* El tema/YITH añade un borde de 1px en hover y el botón "salta" 2px;
	   lo anulamos también en hover para que no cambie de tamaño. */
	border: 0 !important;
}
/* Radio de los botones DE LA FICHA (dentro de form.cart): responsive.css les
   pone 6px con (0,5,1)!important; subimos a (0,6,1) añadiendo .button. */
.wp-singular div.product form.cart .single_add_to_cart_button.button,
.wp-singular div.product form.cart a.add-request-quote-button.button {
	border-radius: 0 !important;
}
/* Separar el botón de compra del contador (que va encima), solo en la ficha. */
.single-product div.product form.cart .single_add_to_cart_button,
.single-product div.product form.cart a.add-request-quote-button {
	margin-top: 20px !important;
}
/* En los LISTADOS/relacionados el botón va dentro del widget YITH de Elementor,
   cuyo CSS fija texto #444 y el hover con (0,3,1)!important y carga después del
   child; subimos a (0,4,1) para texto y hover. El fondo negro ya lo gana la
   regla general de arriba. */
.elementor-widget-yith-ywraq-button-quote.elementor-widget a.add-request-quote-button.button {
	color: #FFFFFF !important;
	/* El widget fija un borde de 1px en normal (empata la regla general y carga
	   después); lo anulamos aquí para que no haya salto normal↔hover. */
	border: 0 !important;
}
.elementor-widget-yith-ywraq-button-quote.elementor-widget a.add-request-quote-button.button:hover {
	background-color: var(--main-color, #ED1D24) !important;
	color: #FFFFFF !important;
	border: 0 !important;
}

/* ---- Tabla/resumen de productos en /request-quote/ ----
   Mismo lenguaje visual que la tabla del carrito de Bloxic: sin caja ni
   fondos, cabecera en negro con línea inferior y filas separadas por
   líneas finas. */
.ywraq-wrapper { margin-bottom: 10px; }
#yith-ywrq-table-list.shop_table {
	width: 100%; border: 0; border-radius: 0;
	border-collapse: collapse; margin: 0;
}
#yith-ywrq-table-list.shop_table thead th {
	background: none; color: var(--black-color, #111);
	font-family: var(--font-family-Outfit, inherit);
	font-size: 15px; font-weight: 600; text-transform: capitalize; letter-spacing: 0;
	text-align: left; padding: 14px 34px; border: 0; border-bottom: 1px solid #e8e8e8;
}
#yith-ywrq-table-list.shop_table tbody td {
	padding: 22px 34px; vertical-align: middle; background: none;
	border: 0; border-bottom: 1px solid #efefef;
}

/* La celda de borrar se colapsa y la × se superpone en la esquina superior
   DERECHA de la miniatura (en vez de ir en una columna aparte). */
#yith-ywrq-table-list .product-remove {
	width: 0 !important; padding: 0 !important; position: relative; overflow: visible;
}
#yith-ywrq-table-list .product-remove a.remove,
#yith-ywrq-table-list a.yith-ywraq-item-remove {
	position: absolute; top: 12px; left: 80px; z-index: 3;
	display: inline-flex !important; align-items: center; justify-content: center;
	width: 20px; height: 20px; border-radius: 50%; padding: 0 !important;
	background: var(--main-color, #e10000) !important; color: #fff !important;
	font-size: 13px; line-height: 1 !important; text-align: center; text-decoration: none;
	transition: background .15s ease;
}
#yith-ywrq-table-list .product-remove a.remove:hover,
#yith-ywrq-table-list a.yith-ywraq-item-remove:hover {
	background: var(--black-color, #111) !important; color: #fff !important;
}

#yith-ywrq-table-list .product-thumbnail {
	/* Ancho fijo para que quepa el recuadro de 90px; padding izquierdo fijo para
	   que la bolita no se descoloque al cambiar el gap de las demás columnas. */
	width: 122px; position: relative;
	padding: 22px 20px 22px 0 !important;
}
#yith-ywrq-table-list .product-thumbnail img {
	/* Recuadro blanco CUADRADO con borde y padding; la foto va CONTENIDA dentro
	   (no recortada), como en la imagen de referencia. */
	width: 90px !important; height: 90px !important; max-width: none !important;
	box-sizing: border-box; padding: 8px; background: #fff; border: 1px solid #e6e6e6;
	object-fit: contain; border-radius: 0; display: block;
}
#yith-ywrq-table-list .product-name a {
	color: var(--black-color, #111); font-weight: 600; text-decoration: none;
	font-family: var(--font-family-Outfit, inherit); font-size: 15px;
}
#yith-ywrq-table-list .product-name a:hover { color: var(--main-color, #e10000); }
#yith-ywrq-table-list .product-name .variation { font-size: 12px; color: #999; margin-top: 4px; }
#yith-ywrq-table-list .product-quantity { width: 170px; }

/* ============================================================
   Botones del login del presupuesto (widget Login "Acceder" + widget Botón
   "Crear cuenta") con la estética del botón NEGRO del sitio (carrito/login):
   fondo negro, texto blanco en MAYÚSCULAS, Jost, hover ROJO y esquinas rectas.
   Son botones de Elementor con estilo por-widget (Acceder salía rojo con borde),
   por eso usamos !important acotado SOLO a estos dos botones concretos.
   ============================================================ */
.elementor-widget-login .elementor-button,
.elementor-element-758b2f9 .elementor-button,
.elementor-widget-login .elementor-button .elementor-button-text,
.elementor-element-758b2f9 .elementor-button .elementor-button-text {
	font-family: var(--font-family-Jost), sans-serif !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	letter-spacing: normal !important;
	color: #FFFFFF !important;
}
.elementor-widget-login .elementor-button,
.elementor-element-758b2f9 .elementor-button {
	background-color: #000000 !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 15px 34px !important;
	line-height: 1.4 !important;
}
.elementor-widget-login .elementor-button:hover,
.elementor-element-758b2f9 .elementor-button:hover {
	background-color: var(--main-color, #ED1D24) !important;
	color: #FFFFFF !important;
	border: 0 !important;
}
/* CREAR CUENTA al mismo tamaño que ACCEDER: auto (según su texto), no a todo el
   ancho, y alineado a la izquierda igual que el botón Acceder. */
.elementor-element-758b2f9 .elementor-button {
	width: auto !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}
.elementor-element-758b2f9 .elementor-button-wrapper,
.elementor-element-758b2f9 .elementor-widget-container {
	text-align: left;
}
/* Los dos botones al MISMO ancho: el del texto más largo ("CREAR CUENTA", 177px).
   Con min-width el corto ("ACCEDER") crece hasta igualarlo y ninguno se recorta
   si en el futuro cambia el texto. */
.elementor-widget-login .elementor-button,
.elementor-element-758b2f9 .elementor-button {
	min-width: 180px;
}

/* ============================================================
   Bloque "Debes iniciar sesión" (columna derecha de /request-quote/ cuando el
   usuario no está logueado) dentro de una CAJA como el "Cart totals" de Bloxic
   (.cart-total-box del tema: padding 30px + borde 1px rgba(negro,.06)).
   El contenedor de Elementor fija su padding con variables --padding-* con
   especificidad (0,3,0); repetimos .elementor-element para llegar a (0,4,0) y
   ganar sin !important.
   ============================================================ */
/* El contenido de /request-quote/ arrancaba pegado a la cabecera: su contenedor
   lleva padding-bottom:80px (el aire hasta el bloque de Instagram) pero arriba
   quedaba en 0. Le damos el MISMO aire arriba. Elementor fija el padding con
   variables a (0,3,0); repetimos .elementor-element para llegar a (0,4,0) y, como
   en contenedores tipo e-con el vertical no siempre se aplica desde la variable,
   lo ponemos también de forma explícita. */
.elementor-13062 .elementor-element.elementor-element-80d90f1.elementor-element {
	--padding-top: 80px;
	padding-top: 80px;
}

.elementor-13062 .elementor-element.elementor-element-7e65398.elementor-element {
	--padding-left: 30px;
	--padding-right: 30px;
	/* .e-con solo aplica el padding LÓGICO horizontal (padding-inline-*) a partir
	   de las variables; el vertical se queda en 0 por el reset *{padding:0}. Por
	   eso el de arriba/abajo se pone aquí de forma explícita. */
	padding-top: 30px;
	padding-bottom: 30px;
	border: 1px solid rgba(var(--black-color-rgb, 0, 0, 0), 0.06);
	background-color: #FFFFFF;
}

/* Titular "¡Atención! / Debes iniciar sesión…". Elementor lo pinta en Arial 35px
   con letter-spacing:-3px (letras muy juntas). Lo pasamos a Outfit —la fuente de
   los títulos del tema (global.css: h1..h6)— con letter-spacing normal, que es el
   que usan los títulos de la plantilla. El <br> se sustituye en functions.php por
   dos bloques para poder poner "¡Atención!" en negrita y la segunda línea más
   pequeña y en regular. Especificidad (0,5,0) repitiendo .elementor-heading-title
   para ganar a la regla de Elementor (0,4,0), sin !important. */
.elementor-13062 .elementor-element.elementor-element-f84372d .elementor-heading-title.elementor-heading-title {
	font-family: var(--font-family-Outfit), sans-serif;
	font-size: 30px;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: normal;
}
.fds-quote-login__title {
	display: block;
	font-weight: 500;
}
.fds-quote-login__sub {
	display: block;
	margin-top: 6px;
	font-size: 20px;
	font-weight: 400;
}

/* Separación entre el bloque de la lista de productos y el de iniciar sesión.
   El contenedor padre (80d90f1) es un flex row con --column-gap:0; el padding en
   las columnas no vale (Elementor usa padding lógico y lo pisa), así que ponemos
   el hueco con column-gap en el propio contenedor. Solo en escritorio; en móvil
   las columnas se apilan. */
@media (min-width: 1025px) {
	.elementor-element-80d90f1 { column-gap: 60px !important; }
}

/* Botonera bajo la tabla (Actualizar lista / Vaciar / PDF): botones planos
   como los del carrito de Bloxic — primario negro, secundarios gris claro. */
.ywraq-wrapper .update-list-wrapper,
.update-list-wrapper { margin-top: 26px; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.update-list-wrapper input[type="submit"].button,
.update-list-wrapper button.button {
	background: var(--black-color, #000); color: #fff; border: 0;
	border-radius: 0; padding: 14px 28px; margin: 0;
	font-family: var(--font-family-Outfit, inherit);
	font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px;
	cursor: pointer; transition: background .2s ease, color .2s ease;
}
/* Hover del botón primario ("Actualizar lista"): rojo del logo, como el resto de
   la web (antes era naranja #E74E25, ajeno a la paleta). */
.update-list-wrapper input[type="submit"].button:hover,
.update-list-wrapper button.button:hover {
	background: var(--main-color, #ED1D24); color: #fff;
}

/* YITH mete margin-top:20px al input de "Actualizar lista" con el selector
   #yith-ywraq-form .update-list-wrapper input[type="submit"] (especificidad
   1,2,1), lo que lo dejaba 20px más bajo que "Limpiar lista". Su CSS carga
   DESPUÉS que este child, así que igualar la especificidad no basta: la
   SUPERAMOS a (1,3,1) añadiendo [name="update_raq"] y así ganamos sin
   !important. Va FUERA de cualquier media query: escritorio y móvil por igual. */
#yith-ywraq-form .update-list-wrapper input[type="submit"][name="update_raq"] {
	margin: 0;
}

/* Botones secundarios ("Limpiar lista" y PDF): grises, y al pasar el ratón un
   gris MÁS CLARO. Ambos tonos ya se usan en la web (#ececec / #f5f5f5). */
.update-list-wrapper button.ywraq_clean_list,
.update-list-wrapper #ywraq-list-to-pdf.button {
	background: #ececec; color: #555;
}
.update-list-wrapper button.ywraq_clean_list:hover,
.update-list-wrapper #ywraq-list-to-pdf.button:hover {
	background: #f5f5f5; color: #555;
}

/* En MÓVIL los dos botones no caben en una fila (143 + 171px) y se partían:
   "Limpiar lista" arriba y "Actualizar lista" abajo, desalineados. Los repartimos
   a mitades iguales en la misma fila (sin wrap) y ajustamos el padding lateral
   para que quepa el texto, así quedan alineados a la misma altura. */
@media (max-width: 767px) {
	.update-list-wrapper { flex-wrap: nowrap; align-items: center; }
	.update-list-wrapper .after-table-right { flex: 1 1 0; min-width: 0; margin: 0; }
	.update-list-wrapper .after-table-right .ywraq_clean_list { width: 100%; margin: 0; }
	/* El margin-top:20px de YITH ya se anula arriba (regla global), aquí solo
	   repartimos los dos botones a mitades iguales. */
	.update-list-wrapper input[type="submit"][name="update_raq"] {
		flex: 1 1 0;
		min-width: 0;
	}
	.update-list-wrapper input[type="submit"].button,
	.update-list-wrapper button.button { padding: 14px 8px; }
}

/* ============================================================
   Página "Mi cuenta" (/cuenta/) — mismos estilos que la demo Bloxic.

   La página usa el widget "WooCommerce My Account" de Elementor Pro, que
   genera el MISMO markup estándar de WooCommerce que la demo
   (#customer_login, .woocommerce-form-login/register), pero encola
   widget-woocommerce-my-account.min.css DESPUÉS del tema y pisa sus
   estilos (botón azul #5bc0de, campos grises rectos, cajas con borde).

   El tema padre ya trae exactamente el diseño de la demo
   (woocommerce.css: botones .woocommerce button.button y campos
   .woocommerce-form-login.login input). Aquí solo lo restauramos dentro
   del widget: primero con las VARIABLES del propio widget (forma nativa,
   sin !important) y después con reglas explícitas para lo que Elementor
   deja fijo en su CSS (fondo del botón, borde de los campos y las cajas).
   ============================================================ */
.elementor-widget-woocommerce-my-account {
	/* Campos: píldora blanca con borde fino (valores del tema/demo) */
	--forms-fields-normal-background-color: var(--white-color, #fff);
	--forms-fields-normal-color: var(--color-seventyfour, #a1a1a1);
	--forms-fields-border-radius: 50px;
	--forms-fields-padding: 8px 30px;
	--forms-labels-color: var(--black-color, #000);
	/* Botones: negro, cuadrado, en mayúsculas */
	--forms-buttons-border-radius: 0;
	--forms-buttons-padding: 17px 44px;
	--forms-buttons-normal-text-color: var(--white-color, #fff);
	/* Enlaces ("¿Olvidaste la contraseña?", política de privacidad) */
	--links-normal-color: var(--main-color, #ed1d24);
	/* Sin relleno propio del widget alrededor de los formularios */
	--sections-padding: 0;
	/* Textos en negro como la demo: "Recuérdame" y los avisos/mensajes */
	--checkboxes-color: var(--black-color, #000);
	--login-messages-color: var(--black-color, #000);
	/* Menú de la zona privada (pestañas): negro, activo y hover en rojo */
	--tabs-normal-color: var(--black-color, #000);
	--tabs-active-color: var(--main-color, #ed1d24);
	--tabs-hover-color: var(--main-color, #ed1d24);
	--tabs-padding: 14px 20px;
}

/* Separación con lo que venga debajo (galería de Instagram, pie...).
   clamp() la mantiene proporcionada en cualquier resolución: 40px en móvil
   y hasta 90px en pantallas grandes.
   Se usa padding y no margin porque Elementor anula el margen inferior de
   los widgets dentro de sus contenedores flex
   (.e-con .elementor-widget.elementor-widget { margin-block-end: 0 }). */
.elementor-widget.elementor-widget-woocommerce-my-account {
	padding-bottom: clamp(40px, 6vw, 90px);
}

/* Elementor fija estos valores en su hoja (no salen de variables) y sus
   selectores llevan un :not() que suma especificidad; por eso aquí se
   repite la clase del widget (.elementor-widget + la del widget), que
   añade una clase más y permite ganarle sin recurrir a !important. */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .login .button.button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .register .button.button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-form-login .button.button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-form-register .button.button {
	background: var(--black-color, #000);
	font-family: var(--font-family-Jost, inherit);
	font-weight: 500;
	margin-top: 10px;
	text-transform: uppercase;
	transition: background .3s ease;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .login .button.button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .register .button.button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-form-login .button.button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-form-register .button.button:hover {
	background: var(--main-color, #ed1d24);
}

/* Resto de pantallas de la cuenta (recuperar contraseña, editar cuenta,
   direcciones…): Elementor las pinta en AZUL #5bc0de con un selector de (0,6,0)
   —p.ej. .e-my-account-tab:not(…) .woocommerce .woocommerce-ResetPassword
   .button—. Su hoja carga DESPUÉS, así que hay que SUPERAR esa especificidad, no
   empatarla: la del formulario de contraseña llega a (0,7,0) repitiendo .button,
   y la genérica a (0,6,1) al añadir el elemento form. Así ningún botón de la zona
   de cuenta queda azul: todos negros con hover rojo corporativo. */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-ResetPassword .button.button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form .button.button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .order-again .button.button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .shop_table .button.button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-MyAccount-content-wrapper .button.button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-pagination .button.button {
	background: var(--black-color, #000);
	color: var(--white-color, #fff);
	font-family: var(--font-family-Jost, inherit);
	font-weight: 500;
	text-transform: uppercase;
	transition: background .3s ease;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-ResetPassword .button.button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form .button.button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .order-again .button.button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .shop_table .button.button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-MyAccount-content-wrapper .button.button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-pagination .button.button:hover {
	background: var(--main-color, #ed1d24);
	color: var(--white-color, #fff);
}

/* El formulario de recuperar contraseña venía con una caja con borde (de
   WooCommerce) mientras que los de acceso y registro van sin borde: le quitamos
   el borde y el padding para que toda la zona de cuenta se vea igual. */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form.woocommerce-ResetPassword {
	border: none;
	padding: 0;
}

/* Campos: borde y alto de la demo (Elementor los pone a border:none) */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form .form-row input.input-text,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form .form-row select,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-Input {
	background: var(--white-color, #fff);
	border: 2px solid #f4f4f4;
	height: 56px;
	font-size: 15px;
	box-shadow: none;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form .form-row textarea {
	height: auto;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form .form-row input.input-text:focus,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-Input:focus {
	border-color: rgba(0, 0, 0, .15);
	outline: none;
}

/* Sin caja alrededor de cada formulario (la demo va a sangre) */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form.login,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form.register {
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
}

/* Títulos "Acceder" / "Registrarse" */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab #customer_login h2 {
	font-family: var(--font-family-Outfit, inherit);
	font-size: 36px;
	font-weight: 500;
	color: var(--black-color, #000);
	margin-bottom: 22px;
}

/* Etiquetas de los campos */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form .form-row label {
	font-family: var(--font-family-Jost, inherit);
	font-size: 16px;
	font-weight: 500;
	color: var(--black-color, #000);
	margin-bottom: 8px;
}

/* --- Responsive (mobile-first): en móvil/tablet las dos columnas se
   apilan a ancho completo; a partir de 768px vuelven a ir en paralelo. --- */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab #customer_login .u-column1,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab #customer_login .u-column2 {
	float: none;
	width: 100%;
	margin: 0 0 40px;
}
/* En MÓVIL el botón va al MISMO ancho que los campos (100%). Antes llevaba un
   tope de 320px y en pantallas más anchas que eso se quedaba corto respecto a los
   inputs, y el bloque parecía descuadrado. A partir de 768px vuelve a ancho auto
   (regla de abajo). */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .button {
	width: 100%;
	max-width: none;
}

@media (min-width: 768px) {
	.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab #customer_login {
		display: flex;
		flex-wrap: wrap;
		gap: 0 60px;
	}
	.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab #customer_login .u-column1,
	.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab #customer_login .u-column2 {
		flex: 1 1 0;
		min-width: 0;
		margin-bottom: 0;
	}
	.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .button {
		width: auto;
		max-width: none;
		/* Todos al mismo ancho que el botón más largo ("Registrarse", 183px): con
		   min-width el corto ("Acceso") crece hasta igualarlo. En móvil no afecta,
		   porque allí van al 100% del ancho de los campos. */
		min-width: 185px;
	}
}

/* Tamaño de los textos de aviso al de la demo (16px). Elementor los fija a
   12px en su hoja, y como sus selectores llevan :not() hay que repetir la
   clase del widget para ganarles. El color ya lo pone --login-messages-color. */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce em,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce .login .woocommerce-privacy-policy-text,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce .register .woocommerce-privacy-policy-text,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce .login .woocommerce-privacy-policy-text p,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce .register .woocommerce-privacy-policy-text p,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce .login p:not([class]),
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce .register p:not([class]),
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce .lost_password,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce .lost_password a {
	font-size: 16px;
	font-style: normal;
}

/* Asterisco de campo obligatorio: rojo pleno, como la demo */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .required {
	color: #f00;
	border: 0;
}

/* ============================================================
   Zona privada (usuario identificado).

   Se superponían tres capas sin relación: el borde rojo + barra roja que
   el tema pinta en cada .woocommerce-MyAccount-navigation li, el fondo
   gris (#f9fafa / activo #f1f2f3) que Elementor pone en los enlaces, y un
   marco de 1px alrededor del contenido. Aquí se unifica con el lenguaje
   del resto del sitio: lista limpia con separadores finos, activo en rojo
   y contenido sin caja.
   ============================================================ */

/* --- Menú lateral --- */
.elementor-widget.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
	border-top: 1px solid #ececec;
}
.elementor-widget.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
	border: 0;
	border-bottom: 1px solid #ececec;
	padding: 0;
	margin: 0;
}
/* El tema pinta una barra roja de 48px en todos los elementos; aquí solo
   marca el activo, a la altura real del elemento. */
.elementor-widget.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:before {
	content: none;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-MyAccount-navigation ul li a {
	background: transparent;
	font-family: var(--font-family-Outfit, inherit);
	font-size: 16px;
	border-left: 2px solid transparent;
	transition: color .2s ease, border-color .2s ease;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-MyAccount-navigation ul li.is-active a,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-MyAccount-navigation ul li a:hover {
	background: transparent;
	border-left-color: var(--main-color, #ed1d24);
}

/* --- Contenido --- */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content .woocommerce-MyAccount-content-wrapper {
	border: 0;
	padding: 0;
	font-size: 16px;
	color: var(--color-two, #828a8d);
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content p {
	font-size: 16px;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content h2,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content h3 {
	font-family: var(--font-family-Outfit, inherit);
	color: var(--black-color, #000);
	margin-bottom: 18px;
}

/* --- Pestaña "Direcciones": elementos superpuestos ---
   Elementor coloca el enlace "Añadir/Editar dirección" en position:absolute
   dando por hecho que el bloque <address> tiene 45px de padding superior
   (--sections-padding). Como aquí esa variable vale 0 —para que los
   formularios de acceso no lleven caja— el enlace caía sobre el texto.
   Se devuelve al flujo normal del documento. */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-Address .edit,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-Addresses .edit {
	position: static;
	float: none;
	display: inline-block;
	margin: 16px 0 0;
	font-size: 16px;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-Address address,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-Addresses address {
	padding: 0;
	margin: 0;
	border: 0;
	font-style: normal;
	font-size: 16px;
	line-height: 1.9;
	color: var(--color-two, #828a8d);
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-Address .title h3 {
	margin-bottom: 14px;
}

/* --- Botones de la zona privada (Guardar dirección, Guardar cambios...):
   rojos con hover a negro. Elementor los deja en azul #5bc0de escrito a
   fuego, así que hay que ganarle con su mismo :not() más la clase repetida. --- */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-EditAccountForm .button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-address-fields .button,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-MyAccount-content .button {
	background: var(--main-color, #ed1d24);
	color: var(--white-color, #fff);
	border: 0;
	border-radius: 0;
	padding: 17px 44px;
	font-family: var(--font-family-Jost, inherit);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .5px;
	transition: background .2s ease;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-EditAccountForm .button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-address-fields .button:hover,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-MyAccount-content .button:hover {
	background: var(--black-color, #000);
}

/* Los formularios de la zona privada van a sangre, sin marco, igual que
   los de acceso (WooCommerce les pone un borde de 1px por defecto). */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-address-fields,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .woocommerce-EditAccountForm,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce form.edit-account {
	border: 0;
	padding: 0;
}

/* --- Desplegables (País/Región, Provincia) con el mismo aspecto de
   píldora que los campos de texto. WooCommerce los sustituye por Select2,
   así que hay que estilar el reemplazo, no solo el <select>. --- */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce select,
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .select2-container--default .select2-selection--single {
	width: 100%;
	height: 56px;
	background: var(--white-color, #fff);
	border: 2px solid #f4f4f4;
	border-radius: 50px;
	padding: 8px 30px;
	font-size: 15px;
	color: var(--color-seventyfour, #a1a1a1);
	box-shadow: none;
	outline: none;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 36px;
	color: inherit;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
	height: auto;
}
/* Panel desplegable de Select2, en línea con los campos */
.select2-container--default .select2-dropdown {
	border: 2px solid #f4f4f4;
	border-radius: 12px;
	overflow: hidden;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--main-color, #ed1d24);
}

/* --- Tablas internas (Presupuestos, Pedidos, Descargas): mismo trato
   minimalista que /request-quote/ y con scroll horizontal en móvil. --- */
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content table {
	border: 0;
	border-collapse: collapse;
	width: 100%;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content table th {
	background: none;
	color: var(--black-color, #111);
	font-family: var(--font-family-Outfit, inherit);
	font-size: 15px;
	font-weight: 600;
	text-align: left;
	padding: 14px 12px;
	border: 0;
	border-bottom: 1px solid #e8e8e8;
}
.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content table td {
	padding: 18px 12px;
	border: 0;
	border-bottom: 1px solid #efefef;
	font-size: 15px;
}

@media (max-width: 767px) {
	/* La tabla se desplaza dentro de su contenedor, sin romper la página */
	.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content table th,
	.elementor-widget.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content table td {
		min-width: 120px;
	}
}

/* Navegación de la cuenta (usuario ya identificado): apilada en móvil */
@media (max-width: 767px) {
	.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation,
	.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
		float: none;
		width: 100%;
	}
	.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content { margin-top: 26px; }
}

/* ============================================================
   Tablas del contenido en páginas clásicas (Política de cookies,
   Aviso legal, Política de privacidad...). Vienen del editor con anchos
   fijos (width="966", width="20%") y alto inline que desbordan en móvil.
   Mobile-first: la tabla se desplaza en horizontal dentro de su propio
   contenedor; en escritorio vuelve a ser tabla fluida al 100%.
   ============================================================ */
.bloxic-page-section .elementor-widget-text-editor table {
	display: block; overflow-x: auto; -webkit-overflow-scrolling: touch;
	width: 100% !important; height: auto !important;
	border-collapse: collapse; margin: 0 0 28px;
}
.bloxic-page-section .elementor-widget-text-editor table td,
.bloxic-page-section .elementor-widget-text-editor table th {
	padding: 12px 14px;
	border-bottom: 1px solid #ececec;
	vertical-align: top;
	font-size: 14px; line-height: 1.6;
	min-width: 110px; /* legibilidad al desplazar en pantallas pequeñas */
}
.bloxic-page-section .elementor-widget-text-editor table thead td,
.bloxic-page-section .elementor-widget-text-editor table thead th {
	background: #f7f7f7;
	color: var(--black-color, #111);
	border-bottom: 1px solid #dcdcdc;
	white-space: nowrap;
}
.bloxic-page-section .elementor-widget-text-editor table thead strong { font-weight: 600; }
.bloxic-page-section .elementor-widget-text-editor table tbody tr:nth-child(even) td { background: #fafafa; }
.bloxic-page-section .elementor-widget-text-editor table a { color: var(--main-color, #e10000); text-decoration: none; }
.bloxic-page-section .elementor-widget-text-editor table a:hover { text-decoration: underline; }

@media (min-width: 768px) {
	.bloxic-page-section .elementor-widget-text-editor table {
		display: table; overflow-x: visible;
	}
	.bloxic-page-section .elementor-widget-text-editor table td,
	.bloxic-page-section .elementor-widget-text-editor table th { min-width: 0; }
}

/* ============================================================
   Ficha de producto VARIABLE: tabla de opciones encima del botón.
   El "CSS adicional" del Personalizador pone .woocommerce div.product
   form.cart en flex column-reverse (pensado para la ficha simple), lo
   que mandaba la tabla .variations debajo del botón de presupuesto.
   Solo en variables (form.cart.variations_form, mayor especificidad,
   sin !important) restauramos el orden natural: opciones, cantidad,
   botón. Y la etiqueta ("Opciones") centrada con el selector.
   ============================================================ */
.woocommerce div.product form.cart.variations_form { flex-direction: column; }
.woocommerce div.product form.cart.variations_form .variations th.label,
.woocommerce div.product form.cart.variations_form .variations td.value {
	vertical-align: middle; padding: 0 14px 0 0; line-height: 1.4;
}
.woocommerce div.product form.cart.variations_form .variations label { margin: 0; }
/* El tema añade margin-bottom:15px al select, engordando la celda y
   descentrando la etiqueta respecto al selector. */
.woocommerce div.product form.cart.variations_form .variations select { margin: 0; }
/* El enlace "Limpiar" de Woo reserva una línea bajo el selector aunque esté
   oculto (visibility:hidden) y descentra la etiqueta: fuera del flujo. Queda
   en el hueco del margen inferior de la tabla cuando se hace visible. */
.woocommerce div.product form.cart.variations_form .variations td.value { position: relative; }
.woocommerce div.product form.cart.variations_form .variations td.value .reset_variations {
	position: absolute; left: 0; top: 100%; font-size: 12px;
}

/* ---- Formulario de solicitud en /request-quote/ ----
   Cubre el formulario por defecto de YITH (form.yith-ywraq-form, el que se
   está usando) y el de Contact Form 7 (.wpcf7) por si se cambia en ajustes.
   Campos limpios: blancos, borde fino, esquinas rectas; radios en el rojo
   de marca y botón de envío negro como el resto de botones del tema. */
.ywraq-form-table-wrapper .ywraq-form-title { margin-bottom: 18px; }
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) label { font-size: 14px; color: #555; }
/* !important + #formPresupuestoUnico dentro del :is() (adopta la
   especificidad del ID): la página Request a Quote (13062) tiene CSS
   personalizado guardado en Elementor que estila ese formulario vía
   #formPresupuestoUnico con !important (botón rojo, radios 6px). Estas
   reglas lo neutralizan; si algún día se borra ese CSS de Elementor,
   estas siguen valiendo igual. */
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) input[type="text"],
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) input[type="email"],
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) input[type="tel"],
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) input[type="date"],
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) input[type="number"],
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) select,
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) textarea {
	width: 100%; background: #fff !important; color: var(--black-color, #111) !important;
	border: 1px solid #e2e2e2 !important; border-radius: 0 !important; box-shadow: none !important;
	padding: 12px 14px; font-size: 14px;
	transition: border-color .2s ease;
}
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) input:focus,
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) select:focus,
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) textarea:focus {
	border-color: var(--black-color, #111) !important; outline: none;
}
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) input[type="radio"],
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) input[type="checkbox"] {
	accent-color: var(--main-color, #e10000); width: auto;
}
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) :is(input[type="submit"].wpcf7-submit, input[type="submit"], button[type="submit"], .wpcf7-submit) {
	background: var(--black-color, #000) !important; color: #fff !important; border: 0 !important;
	border-radius: 0 !important; padding: 15px 34px; width: auto;
	font-family: var(--font-family-Outfit, inherit);
	font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px;
	cursor: pointer; transition: background .2s ease;
}
.ywraq-form-table-wrapper :is(form.yith-ywraq-form, .wpcf7, #formPresupuestoUnico) :is(input[type="submit"].wpcf7-submit, input[type="submit"], button[type="submit"], .wpcf7-submit):hover { background: var(--main-color, #ED1D24) !important; }

@media (max-width: 600px) {
	#yith-ywrq-table-list.shop_table tbody td { padding: 12px; }
	#yith-ywrq-table-list .product-thumbnail img { width: 60px; height: 60px; }
}

/* ============================================================
   En páginas construidas con Elementor, el espaciado lo controla
   Elementor; el padding 110px de .bloxic-page-section (page.php del
   tema padre) sobra y crea hueco. Lo anulamos solo ahí.
   ============================================================ */
.elementor-page .bloxic-page-section { padding: 0; }

/* ============================================================
   Tarjeta de producto en grids
   ============================================================ */

/* Ocultar precio, cantidad, comparar/favoritos y los contenedores-overlay del
   botón (.options-box, .cart-box, .cart-options) en TODAS las variantes de
   tarjeta de los widgets de bloxic. El botón se mueve por JS (product-grid.js)
   al área de contenido, donde lo estilamos. */
.shop-item .price, .shop-item-two .price, .shop-item-three .price,
.shop-item .product-quantity-loop, .shop-item-two .product-quantity-loop, .shop-item-three .product-quantity-loop,
.shop-item .quantity-box, .shop-item-two .quantity-box, .shop-item-three .quantity-box,
.shop-item .options-box, .shop-item-two .options-box, .shop-item-three .options-box,
.shop-item .cart-box, .shop-item-two .cart-box, .shop-item-three .cart-box,
.shop-item .cart-options, .shop-item-two .cart-options, .shop-item-three .cart-options,
.shop-item .woosc-btn, .shop-item-two .woosc-btn, .shop-item-three .woosc-btn,
.shop-item .woosw-btn, .shop-item-two .woosw-btn, .shop-item-three .woosw-btn { display: none !important; }

/* Botón de presupuesto (.bloxic-quote-action: clase propia, vale en cualquier
   tarjeta). Color gris oscuro discreto. Cubre el botón YITH (simple) y el
   enlace "Seleccionar opciones" (variable). */
.bloxic-quote-action { margin-top: 12px; }
.bloxic-quote-action .yith-ywraq-add-to-quote,
.bloxic-quote-action .yith-ywraq-add-button { margin: 0; display: block; }
.bloxic-quote-action a.add-request-quote-button,
.bloxic-quote-action a.add_to_cart_button,
.bloxic-quote-action .yith-ywraq-add-button > a {
	display: block !important; width: 100% !important; text-align: center;
	padding: 9px 16px !important; border-radius: 0; margin: 0 !important;
	background: #000 !important; color: #fff !important; border: none !important;
	font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .3px; line-height: 1.4;
	text-decoration: none; box-shadow: none; transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.bloxic-quote-action a.add-request-quote-button:hover,
.bloxic-quote-action a.add_to_cart_button:hover,
.bloxic-quote-action .yith-ywraq-add-button > a:hover { background: var(--main-color, #ED1D24) !important; border-color: none !important; color: #fff !important; }
.bloxic-quote-action a.add-request-quote-button.added { opacity: .7; }

/* Color BASE del botón "Añadir al presupuesto" en CUALQUIER contexto: ficha de
   producto, relacionados, archivo de tienda y plantillas de bucle de Elementor
   (páginas de categoría). YITH ya no inyecta su <style> inline (functions.php:
   filtro 'ywraq_add_to_quote_args' quita 'colors'), así que este CSS manda.
   En los grids, la regla .bloxic-quote-action (más específica) le añade el
   ancho completo y el tamaño reducido. */
.add-request-quote-button.button {
	display: inline-block; text-align: center;
	padding: 10px 22px !important; margin: 0;
	background: #000 !important; color: #fff !important; border: none !important;
	font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .3px; line-height: 1.4;
	text-decoration: none; box-shadow: none;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.add-request-quote-button.button:hover {
	background: var(--main-color, #ED1D24) !important; border-color: none !important; color: #fff !important;
}

/* Spinner de carga de YITH (se inserta al añadir): limitar tamaño en todo el sitio */
.ywraq-loader,
img.ywraq-loader {
	width: 18px !important; height: 18px !important; max-width: 18px !important; max-height: 18px !important;
	display: inline-block; margin-left: 8px; vertical-align: middle;
}

.elementor-kit-6 h1 {
	font-family: var(--e-global-typography-secondary-font-family), Sans-serif !important;
	font-size: var(--e-global-typography-secondary-font-size) !important;
	font-weight: var(--e-global-typography-secondary-font-weight) !important;
	
}

/* Main Slider Two */
.main-slider-two .slide{
	min-height: clamp(350px, 30.71vw + 233.29px, 780px);
}

.button-box .btn-style-one {
	font-family: "Jost", Sans-serif !important;
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
}

.button-box .flaticon-right-arrow {
	display: none !important;
}

.main-slider-two .social-box {
	display: inline-block !important;
}

.slide .auto-container .content-box .box-inner h1 {
	color: #fff !important;
}

/* ============================================================
   Banner Hero: ficha de producto, páginas y blog. Mismas medidas y
   tipografía que la cabecera nativa del tema (.page-title), con imagen
   de fondo y overlay.
   ============================================================ */
/* --page-title-display: Elementor lo pone a none con "Ocultar título". */
.page-title.product-banner-hero {
	--page-title-display: block;

	display: block;
	position: relative;
	text-align: center;
	background-color: var(--color-thirtyone);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	padding: 120px 0px 120px;
}
.page-title.product-banner-hero:before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(0, 0, 0, .35);
}
.page-title.product-banner-hero .auto-container {
	position: relative;
	z-index: 1;
}
/* Prefijo 'body' para ganar a .elementor-kit-6 h2, que se carga después. */
body .page-title h2 {
	font-family: var(--font-family-Outfit);
	font-size: var(--font-36);
	line-height: 50px;
	font-weight: 500;
	letter-spacing: normal;
}
.page-title.product-banner-hero h2 {
	margin: 0;
	text-transform: capitalize;
	color: #FFFFFF;
}
.page-title.product-banner-hero .woocommerce-breadcrumb {
	display: block;
	margin: var(--margin-top-20) 0 0;
	font-family: var(--font-family-Jost);
	font-size: var(--font-16);
	font-weight: 400;
	text-transform: capitalize;
	color: #FFFFFF;
}
.page-title.product-banner-hero .woocommerce-breadcrumb a {
	color: #FFFFFF;
}

/* Chevron entre migas; el <span> lo inserta functions.php. Sin color propio:
   hereda el del breadcrumb. */
.woocommerce-breadcrumb .bloxic-crumb-sep {
	display: inline-block;
	margin: 0 13px;
	font-family: 'Font Awesome 5 Pro';
	font-weight: 400;
	font-size: var(--font-16);
	line-height: 1;
}
.woocommerce-breadcrumb .bloxic-crumb-sep:before {
	content: "\f105";
}

@media only screen and (max-width: 767px) {
	.page-title.product-banner-hero {
		padding: 100px 0px;
	}
	body .page-title h2 {
		font-size: var(--font-28);
	}
}

/* ============================================================
   El mismo Banner Hero en las plantillas de Elementor de categorías:
   13209 (Grid productos), 13500 (Categorías padre), 13519 (Subcategorías).
   La clase extra (.e-con / .elementor-widget) sube la especificidad sobre el
   CSS que compila Elementor.
   ============================================================ */
.elementor-13209 .elementor-element.elementor-element-7730237.e-con,
.elementor-13500 .elementor-element.elementor-element-61c15bb.e-con,
.elementor-13519 .elementor-element.elementor-element-5a6c51e.e-con {
	--padding-top: 120px;
	--padding-bottom: 120px;
	--text-align: center;
}

.elementor-13209 .elementor-element.elementor-element-cb5f2b3.elementor-widget > .elementor-widget-container,
.elementor-13500 .elementor-element.elementor-element-0188549.elementor-widget > .elementor-widget-container,
.elementor-13519 .elementor-element.elementor-element-0e11e0e.elementor-widget > .elementor-widget-container {
	margin: 0;
}
/* El título es un <h1>: los !important son las propiedades que chocan con
   .elementor-kit-6 h1, que también los lleva. */
.elementor-13209 .elementor-element.elementor-element-cb5f2b3.elementor-widget .elementor-heading-title,
.elementor-13500 .elementor-element.elementor-element-0188549.elementor-widget .elementor-heading-title,
.elementor-13519 .elementor-element.elementor-element-0e11e0e.elementor-widget .elementor-heading-title {
	font-family: var(--font-family-Outfit) !important;
	font-size: var(--font-36) !important;
	font-weight: 500 !important;
	line-height: 50px;
	letter-spacing: normal;
	text-transform: capitalize;
	text-align: center;
	/* !important + mayor especificidad: así el título del banner sigue blanco
	   aunque la regla general de títulos de tienda ponga el color en negro. */
	color: #FFFFFF !important;
}

/* Migas: 20px de separación y Jost 16px/400 centradas (estaban en 800). */
.elementor-13209 .elementor-element.elementor-element-cfaf7df.elementor-widget > .elementor-widget-container,
.elementor-13500 .elementor-element.elementor-element-a6231d8.elementor-widget > .elementor-widget-container,
.elementor-13519 .elementor-element.elementor-element-42075e2.elementor-widget > .elementor-widget-container {
	margin: var(--margin-top-20) 0 0;
	padding: 0;
}
.elementor-13209 .elementor-element.elementor-element-cfaf7df.elementor-widget .woocommerce-breadcrumb,
.elementor-13500 .elementor-element.elementor-element-a6231d8.elementor-widget .woocommerce-breadcrumb,
.elementor-13519 .elementor-element.elementor-element-42075e2.elementor-widget .woocommerce-breadcrumb,
.elementor-13209 .elementor-element.elementor-element-cfaf7df.elementor-widget .woocommerce-breadcrumb > a,
.elementor-13500 .elementor-element.elementor-element-a6231d8.elementor-widget .woocommerce-breadcrumb > a,
.elementor-13519 .elementor-element.elementor-element-42075e2.elementor-widget .woocommerce-breadcrumb > a {
	font-family: var(--font-family-Jost);
	font-size: var(--font-16);
	font-weight: 400;
	text-transform: capitalize;
	text-align: center;
	color: #FFFFFF;
}

@media only screen and (max-width: 767px) {
	.elementor-13209 .elementor-element.elementor-element-7730237.e-con,
	.elementor-13500 .elementor-element.elementor-element-61c15bb.e-con,
	.elementor-13519 .elementor-element.elementor-element-5a6c51e.e-con {
		--padding-top: 100px;
		--padding-bottom: 100px;
	}
	.elementor-13209 .elementor-element.elementor-element-cb5f2b3.elementor-widget .elementor-heading-title,
	.elementor-13500 .elementor-element.elementor-element-0188549.elementor-widget .elementor-heading-title,
	.elementor-13519 .elementor-element.elementor-element-0e11e0e.elementor-widget .elementor-heading-title {
		font-size: var(--font-28) !important;
	}
}

/* ============================================================
   Pestañas de Elementor (Nested Tabs, .e-n-tabs) en MÓVIL — p. ej. "Sobre
   nosotros". Con el "Punto de interrupción" del widget en Ninguno se quedan como
   pestañas (no acordeón), pero los títulos se amontonaban en filas (1+2). Los
   apilamos en vertical y a todo el ancho, como la demo, para que se vean los
   tres botones y el contenido debajo. El cambio de pestaña ya funciona por JS.
   ============================================================ */
@media (max-width: 767px) {
	.elementor-widget-n-tabs .e-n-tabs > .e-n-tabs-heading {
		flex-direction: column;
		flex-wrap: nowrap;
	}
	.elementor-widget-n-tabs .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title {
		width: 100%;
	}
}

/* En MÓVIL la barra de meta de la entrada (autor · comentarios · tiempo de
   lectura) se partía en dos líneas con nombres de autor largos. Reducimos fuente
   y paddings para que entre en una sola línea. Cubre el LISTADO del blog
   (.news-block-three) y la ENTRADA individual (.blog-detail). */
@media (max-width: 767px) {
	.blog-detail .post-meta li,
	.news-block-three .post-meta li {
		font-size: 13px;
		padding-left: 18px;
		margin-right: 5px;
		padding-right: 5px;
	}
	.blog-detail .post-meta li:first-child,
	.news-block-three .post-meta li:first-child {
		padding-left: 28px;
	}
}

/* Punto separador entre etiquetas del blog (como la demo). El del tema es un
   círculo en position:absolute right:0 con opacity 0.1: casi no se ve y, con
   nuestras etiquetas largas que hacen salto de línea, queda mal colocado. Lo
   sustituimos por un punto gris INLINE detrás de cada etiqueta (menos la última),
   que fluye con el texto aunque la etiqueta ocupe varias líneas. Cubre listado
   (.news-block-three) e individual (.blog-detail). */
.blog-detail .tags a,
.news-block-three .tags a {
	margin-right: 4px;
	padding-right: 0;
	/* El tema no fija font-family en las etiquetas, así que heredaban Arial del
	   kit global de Elementor; las pasamos a Jost. */
	font-family: var(--font-family-Jost), sans-serif;
}

/* Migas de pan de la cabecera (blog y resto de páginas con .page-title): también
   heredaban Arial del kit; en Jost como el resto de la web. */
.page-title .bread-crumb,
.page-title .bread-crumb li,
.page-title .bread-crumb li a {
	font-family: var(--font-family-Jost), sans-serif;
}

/* ============================================================
   Navegación entre entradas del blog (bloque .more-posts: anterior / siguiente).
   ============================================================ */

/* Algo más de aire entre la foto del autor y su nombre (el tema deja 5px). */
.blog-detail .more-posts .post-info .author {
	margin-right: 8px;
}

/* La fecha va SIEMPRE en su propia línea, debajo del autor. El icono de
   calendario es un ::before con position:absolute;left:0, así que si la fecha
   ocupara todo el ancho el icono se quedaría lejos del texto: con
   width:fit-content la caja se ajusta al contenido y el icono queda pegado.
   Aquí (escritorio) va alineada a la IZQUIERDA — se anula el margin-left:10px
   del tema, que la desplazaba respecto al autor. Los 5px restantes centran el
   calendario (12px) bajo la foto del autor (22px): (22 - 12) / 2. */
.blog-detail .more-posts .post-info .date {
	display: block;
	width: fit-content;
	margin: 6px 0 0 5px;
}

/* La flecha va envuelta en un enlace (assets/js/post-nav.js) para poder pulsarla;
   el enlace no debe alterar el aspecto del icono. */
.blog-detail .more-posts .fds-post-nav-arrow {
	/* En bloque: como enlace en línea generaba una caja de línea extra y bajaba
	   la flecha unos píxeles respecto a la del otro bloque. */
	display: block;
	text-decoration: none;
	color: inherit;
}

@media (max-width: 767px) {
	/* Las dos columnas se alinean ARRIBA. Con align-items:center los bloques de
	   distinta altura quedaban desnivelados y las flechas aparecían a alturas
	   distintas, con aspecto "cojo". El centrado lo impone la clase de utilidad
	   .align-items-center de Bootstrap, que ya lleva !important: es el único caso
	   en que no basta con la especificidad. */
	.blog-detail .more-posts .more-posts-inner {
		align-items: flex-start !important;
	}
	/* Además, el tema le da margin-top:30px solo a la flecha "siguiente", lo que
	   la dejaba 30px por debajo de la de "anterior". Las igualamos. */
	.blog-detail .more-posts .new-post .prev-arrow,
	.blog-detail .more-posts .new-post .next-arrow {
		margin-top: 0;
	}

	/* En móvil todo el bloque va centrado, así que la caja de la fecha (que se
	   ajusta al texto) se centra con márgenes automáticos. */
	.blog-detail .more-posts .post-info .date {
		margin-left: auto;
		margin-right: auto;
	}
}

/* Línea bajo el título (autor · comentarios · tiempo de lectura) en Jost, igual
   en el LISTADO y en la ENTRADA. En el listado el tema no fijaba la fuente y
   heredaba Arial del kit; en la entrada la fijaba en Outfit (.blog-detail
   .post-meta li). Nuestra regla tiene la misma especificidad que la del tema pero
   carga después, así que gana sin !important. */
.news-block-three .post-meta li,
.news-block-three .post-meta li a,
.news-block-three .post-meta li span,
.blog-detail .post-meta li,
.blog-detail .post-meta li a,
.blog-detail .post-meta li span {
	font-family: var(--font-family-Jost), sans-serif;
}
.blog-detail .tags a::before,
.news-block-three .tags a::before {
	display: none;
}
.blog-detail .tags a::after,
.news-block-three .tags a::after {
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: 4px;
	height: 4px;
	margin-left: 8px;
	border-radius: 50%;
	background-color: rgba(var(--black-color-rgb, 0, 0, 0), 0.30);
}
.blog-detail .tags a:last-child::after,
.news-block-three .tags a:last-child::after {
	display: none;
}

/* Título de la entrada del blog en Outfit (venía en Jost por el kit global de
   Elementor). Prefijamos con .lower-content para ganar al kit (.elementor-kit-6
   h3) por especificidad, sin !important. Listado e individual. */
.blog-detail .lower-content h3,
.blog-detail .lower-content h3 a,
.news-block-three .lower-content h3,
.news-block-three .lower-content h3 a {
	font-family: var(--font-family-Outfit), sans-serif;
}

.collection-info-tabs .collection-tabs .tabs-content .active-tab .content .image {
	height: 100%;
	width: 100%;
}

.collection-info-tabs .collection-tabs .tabs-content .active-tab .content .image > img {
	height: 100%;
	width: 100%;
	object-fit: cover 100%;
	object-position: center;
}

/* Títulos-pestaña de las secciones con pestañas (Mobiliario / Lo que nos
   distingue) en Jost como la demo. El tema no fija font-family en .tab-btn, así
   que heredaban Arial del kit global de Elementor. Cubrimos ambas variantes de
   sección por si una es collection-section-two y otra services-section. */
.collection-section-two .collection-tabs .tab-btns .tab-btn,
.services-section .services-tabs .tab-btns .tab-btn {
	font-family: var(--font-family-Jost), sans-serif;
}

/* En MÓVIL: títulos-pestaña ARRIBA e imagen ABAJO, como la demo. En desktop los
   títulos van position:absolute sobre la imagen; el tema los pasa a relative en
   móvil, pero en una de las secciones la imagen seguía quedando arriba. Forzamos
   el orden con flex-column para que sea consistente en las dos secciones. */
@media (max-width: 767px) {
	/* Hay una regla .collection-tabs.tabs-box{flex-direction:column-reverse} que
	   invierte el orden en móvil (imagen arriba). Empata en especificidad y carga
	   después, así que la superamos con .tabs-box en el selector (0,3,0) y la
	   dejamos en column (títulos arriba, imagen abajo, como la demo). */
	.collection-section-two .collection-tabs.tabs-box {
		display: flex;
		flex-direction: column;
	}
	.collection-section-two .collection-tabs .feature-icon {
		order: 0;
	}
	.collection-section-two .collection-tabs .tab-btns {
		order: 1;
		position: relative;
		top: 0;
	}
	.collection-section-two .collection-tabs .tabs-content {
		order: 2;
	}
}

/* Los :not() dejan fuera el titular de /request-quote/ ("¡Atención!" en negrita y
   su subtítulo en regular), que necesita sus propios pesos. */
.sec-title h2 span,
.sec-title h2 strong,
.elementor-kit-6 h2 span:not(.fds-quote-login__sub),
.elementor-kit-6 h2 strong:not(.fds-quote-login__title)
{
	font-weight: 600 !important;
}

.sec-title h4,
.elementor-kit-6 h4 {
	font-size: 1.875rem !important;
}

.sec-title h2:before, .sec-title h4:before {
	position: absolute;
	content: '';
	left: 0px;
	top: 0px;
	width: 2px;
	bottom: 0px;
	background-color: var(--main-color);
}

.sec-title h2,
.sec-title h4 {
	padding-left: var(--padding-left-20);
}

/* En MÓVIL, todos los títulos de sección con la rayita roja a la izquierda
   (.sec-title h2/h3/h4, sean del tema o pintados por Bloxic) a 25px (1.5625rem).
   Los headings de Elementor de la home NO llevan rayita, así que no se tocan. El
   !important es obligado: el tamaño base de estos títulos ya se fija con
   !important (kit de Elementor, que carga después), y un !important no se vence
   solo con especificidad. Va después de esas reglas base, así gana en móvil. */
@media (max-width: 767px) {
	.sec-title h2,
	.sec-title h3,
	.sec-title h4 {
		font-size: 1.5625rem !important;
	}
}

.collection-section-two .collection-tabs .feature-icon {
	right: 18%;
	top: 0px;
	max-width: 115px;
}

/* Portada, sección de pestañas "Mobiliario para eventos" (widget Bloxic Tab).
   El CSS personalizado del widget en Elementor convierte el bloque en flex y
   deja los títulos-pestaña con margin:0 !important: en pantallas de poca altura
   (Mac 1440x802) el círculo "Últimas tendencias" —absoluto en top:0— quedaba
   pegado al primer título. Como esa regla ya lleva !important, aquí no hay más
   remedio que otro: entre dos importantes gana la especificidad, (0,3,0) frente
   a su (0,2,0).

   Con el centrado vertical del flex (align-items:center) un margin-top se
   reparte y sólo se nota la mitad, y además el hueco cambiaría con la altura de
   la pantalla (la imagen mide 60dvh). Se anclan arriba y se les da el alto del
   círculo (115px de ancho → 109px de alto) más 75px de hueco: así la separación
   es siempre la misma, como en el tema original (círculo en top:50px y títulos
   en top:250px). Sólo a partir de 1024px: por debajo el círculo se oculta
   (responsive.css) y no hace falta. */
@media (min-width: 1024px) {
	.collection-section-two .collection-tabs .tab-btns {
		align-self: flex-start;
		margin-top: 184px !important;
	}
}

/* Por debajo de 1050px "Mobiliario para eventos" pasa a dos líneas y se pisaba:
   el título mide 34px pero heredaba el line-height del body (22.4px). */
@media (max-width: 1049px) {
	.collection-section-two .collection-tabs .tab-btns .tab-btn {
		line-height: 30px;
	}
}

.shop-item h6,
.elementor-kit-6 h6 {
	font-size: var(--font-16) !important;
}

/* ============================================================
   Títulos de las páginas de la tienda. Los widgets de encabezado de
   Elementor (.elementor-heading-title) salen en Jost gris (kit de Elementor);
   los igualamos a la tipografía y color del título de la ficha de producto de
   Bloxic: Outfit, negro.

   Dos tipos de página de tienda, con dos anclajes:
   · .woocommerce.archive       -> archivos de categoría/producto (subniveles).
   · .elementor-page-13500      -> páginas de categoría de primer nivel
                                   (Mobiliario, Mantelería, Menaje, Exteriores,
                                   Complementos), que NO son archivos sino
                                   páginas que comparten la plantilla Theme
                                   Builder 13500; cualquier nueva categoría de
                                   primer nivel clonada de esa plantilla queda
                                   cubierta sin tocar este CSS.

   El título blanco del banner hero NO se ve afectado: su regla propia
   (.elementor-13500 …-0188549 … .elementor-heading-title, y equivalentes en
   13209/13519) tiene mucha más especificidad y también lleva !important, así
   que sigue mandando. Tampoco toca el slider de la home.
   ============================================================ */
.woocommerce.archive .elementor-heading-title,
.elementor-page-13500 .elementor-heading-title {
	/* !important porque el CSS por-elemento de Elementor (post-13209 /
	   post-13210) carga después y fija Jost/gris con igual especificidad.
	   El banner queda a salvo: su regla lleva !important y más especificidad. */
	font-family: var(--font-family-Outfit), sans-serif !important;
	color: var(--black-color, #000) !important;
}

/* Igualar el hueco entre el título de sección ("Alquiler … para Eventos") y
   el primer párrafo. En los archivos (.woocommerce.archive) Elementor lo fija
   en un 2% del ancho —responsivo—; en las páginas de categoría de primer nivel
   (plantilla 13500) venía a 10px fijos, más apretado. Las llevamos al mismo 2%.
   Excluimos el título del banner (…-0188549), que no lleva hueco inferior.
   !important porque el CSS por-elemento de Elementor (…-0ed9ca6) tiene mayor
   especificidad y carga después. */
.elementor-page-13500 .elementor-widget-heading:not(.elementor-element-0188549) > .elementor-widget-container {
	padding-bottom: 2% !important;
}

/* ============================================================
   Ficha de producto (resumen): igualar título y meta a la demo de Bloxic.
   ============================================================ */
/* Título: 30px y sin letter-spacing negativo. El kit .elementor-kit-6 h3 lo
   dejaba en 25px/-1.5px; (0,2,0) le gana a (0,1,1) sin !important. Solo afecta
   al título de la ficha (.product_title), no a las tarjetas del listado. */
.single-product .product_title {
	font-size: 30px;
	letter-spacing: normal;
}

/* En móvil la demo usa el título a 22px (en local caía a 30px). */
@media (max-width: 767px) {
	.single-product .product_title {
		font-size: 22px;
		line-height: 1.3;
	}
}

/* Botón flotante de WhatsApp (Contact Buttons de Elementor): al quitar el texto
   del CTA queda un "pico" verde a la derecha del círculo — es el contenedor del
   texto, que sigue pintándose (vacío) con fondo verde. Lo ocultamos para dejar
   solo el círculo. */
.e-contact-buttons .e-contact-buttons__chat-button-text {
	display: none;
}

/* SKU y Categorías en Jost como la demo (en local caían a Arial). */
.single-product .product_meta,
.single-product .product_meta a {
	font-family: var(--font-family-Jost), sans-serif;
}

/* ============================================================
   Ficha de producto en MÓVIL/TABLET (≤1023px): como la demo, la GALERÍA (imagen
   + miniaturas) va ARRIBA de los datos, y la tira de miniaturas se ve.
   El tema (responsive.css, @media ≤1023) hace lo contrario: sube los datos con
   order:1/2 y oculta las miniaturas con display:none —pese a que su propio JS ya
   las pone en horizontal en este ancho—. Revertimos ambas cosas con el mismo
   breakpoint; misma especificidad que el tema, ganamos por orden de carga (el
   child va después), sin !important. */
@media (max-width: 1023px) {
	.shop-detail-section .gallery-column {
		order: 1;
	}
	.shop-detail-section .content-column {
		order: 2;
	}
	/* Miniaturas: el tema las oculta. Las mostramos y las sacamos del posicionado
	   absoluto (en escritorio van verticales a la derecha) para que fluyan como
	   una fila horizontal debajo de la imagen principal. */
	.shop-detail-section .gallery-column .thumbs-carousel {
		display: block;
		position: static;
		right: auto;
		top: auto;
		width: auto;
		margin-top: 15px;
	}
}

/* ============================================================
   Ficha de producto: tipografía de los TÍTULOS de las pestañas Descripción e
   Información adicional, igualadas a la demo de Bloxic (Outfit, peso 500,
   negro, sin el letter-spacing negativo). El kit global de Elementor
   (.elementor-kit-6 hN) los pinta en Jost gris y apretados y, al cargarse
   DESPUÉS del child, gana a igualdad de especificidad; por eso prefijamos con
   .single-product (va en el <body>) y así ganamos sin !important. Cubre el h2
   de cada pestaña y el h5 "More Details" del contenido. NO tocamos la pestaña
   Reseñas (sus títulos tienen tamaños propios). Los párrafos ya coinciden
   (Jost 18px), no se tocan.
   ============================================================ */
.single-product :is(.woocommerce-Tabs-panel--description, .woocommerce-Tabs-panel--additional_information) :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--font-family-Outfit), sans-serif;
	font-weight: 500;
	letter-spacing: normal;
	color: var(--black-color, #000);
}

/* Tamaños de la demo: título de cada pestaña (h2 = 36) y subtítulos (h5 = 22). */
.single-product :is(.woocommerce-Tabs-panel--description, .woocommerce-Tabs-panel--additional_information) h2 {
	font-size: var(--font-36, 36px);
	line-height: 50px;
}

.single-product .woocommerce-Tabs-panel--description h5 {
	font-size: var(--font-22, 22px);
	line-height: 1.4;
}

/* Tabla de "Información adicional": Jost como la demo (en local caía a Arial
   porque nada le fijaba la familia). Tamaños/pesos ya coincidían (14px). */
.single-product .woocommerce-Tabs-panel--additional_information th,
.single-product .woocommerce-Tabs-panel--additional_information td {
	font-family: var(--font-family-Jost), sans-serif;
}

/* ============================================================
   Galería de la ficha de producto (.bloxic-gallery)
   Markup: woocommerce/single-product/product-image.php (child).
   El carrusel (Swiper) y su layout base son del padre:
   .gallery-column/.carousel-outer/.thumbs-carousel en style.css:6060+
   y el init en script.js:290. Mobile-first: en <1024px el padre ya
   oculta las miniaturas y deja la imagen principal deslizable.
   ============================================================ */

/* Base (móvil) */
.bloxic-gallery { position: relative; }
.bloxic-gallery__figure,
.bloxic-gallery__thumb { margin: 0; }
/* Cursor en cruz como la demo (allí lo pone el zoom del plugin wpgis:
   .wpgis-slider-for .zoomImg { cursor: crosshair }). */
.bloxic-gallery__zoom { position: relative; display: block; cursor: crosshair; }
.bloxic-gallery__img { display: block; width: 100%; height: auto; }

/* Icono de ampliar, calcado de .woocommerce .wpgis-popup del padre
   (woocommerce.css:574): negro, abajo-derecha 20px/20px, siempre visible. */
.bloxic-gallery__zoom-icon {
	position: absolute; right: 20px; bottom: 20px;
	display: inline-flex; line-height: 0;
	color: var(--black-color, #000);
}

/* Miniaturas como la demo (.wpgis-slider-nav): sin borde, la activa y el
   hover se marcan solo con opacidad (.9 -> 1). */
.bloxic-gallery__thumb-img {
	display: block; width: 100%; height: 100%;
	object-fit: contain; background: var(--white-color, #fff);
	opacity: .9; transition: opacity .2s ease;
}
.thumbs-carousel .swiper-slide-thumb-active .bloxic-gallery__thumb-img,
.thumbs-carousel .swiper-slide:hover .bloxic-gallery__thumb-img { opacity: 1; }
.shop-detail-section .gallery-column .thumb { border-color: transparent; }

/* Escritorio (≥1024px): miniaturas verticales a la derecha (layout del padre).
   El Swiper vertical necesita una altura explícita del contenedor para poder
   calcular los slides: la columna de miniaturas ocupa el alto de la imagen
   principal (.carousel-outer es position:relative en el padre). */
@media (min-width: 1024px) {
	.shop-detail-section .gallery-column .thumbs-carousel { height: 100%; }
	.shop-detail-section .gallery-column .thumbs-carousel .swiper-slide { overflow: hidden; }
	.bloxic-gallery__thumb { height: 100%; }
}

/* ============================================================
   Filtros de las páginas de categoría (.bloxic-filters)
   Shortcode [bloxic_filtros_tienda] (functions.php) que pinta el área de
   widgets "Barra lateral de la tienda" (shop-sidebar-1); la plantilla de
   Elementor 13209 lo coloca en la columna derecha del grid. Los estilos de
   los widgets (.sidebar-widget.shop-widget, .sidebar-title) los trae el
   padre; aquí solo lo que falta. En <1025px la columna cae debajo del
   grid (lo gobierna la propia plantilla).
   ============================================================ */
.bloxic-filters { width: 100%; }

/* Título del widget al tamaño h6 base del tema (18px, global.css:788, el de
   la demo): la regla global de este child ".elementor-kit-6 h6" lo bajaba a
   16px y necesita !important para recuperarse. El resto (peso 400,
   capitalize, margen 30px) ya lo pone el padre en .sidebar-title. */
.bloxic-filters .sidebar-title h6 {
	font-size: var(--font-18, 18px) !important;
	/* Igual que la demo: Outfit negro (el kit lo dejaba en Jost gris). La
	   especificidad (0,3,1) gana a .elementor-kit-6 h6 (0,1,1) sin !important. */
	font-family: var(--font-family-Outfit), sans-serif;
	color: var(--black-color, #000);
}

/* Contador de productos a la IZQUIERDA del nombre y en la misma línea:
   el padre pone el enlace display:block y el <span class="count"> saltaba
   a la línea de abajo. Con flex, el count (order:-1) pasa delante y las
   subcategorías (.children) ocupan su propia línea completa. */
.bloxic-filters .product-categories li {
	display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; margin-bottom: 6px !important;
}
.bloxic-filters .product-categories li > .count {
	order: -1;
	font-size: var(--font-14, 14px);
	color: rgba(54, 57, 68, .55);
}
.bloxic-filters .product-categories li > .children {
	flex: 0 0 100%;
	padding-left: 16px;
	/* Hueco entre la categoría superior (p. ej. MOBILIARIO) y su primer hijo
	   (Chillout), igual que la separación entre subcategorías (~12,5px). */
	margin-top: calc(var(--margin-bottom-25, 25px) / 2) !important;
}
.bloxic-filters .product-categories .current-cat > a {
	color: var(--main-color, #e10000);
	font-weight: 600;
}

/* Espaciado entre categorías de PRIMER NIVEL = 25px, como la demo (en local
   estaba a 6px). Misma especificidad que .product-categories li de arriba pero
   posterior en el archivo, así gana solo en los <li> de primer nivel (> li);
   las subcategorías (.children li) se quedan a 6px para marcar la jerarquía. */
.bloxic-filters .product-categories > li {
	margin-bottom: var(--margin-bottom-25, 25px) !important;
}

/* Subcategorías: la MITAD del hueco de las de primer nivel (~12,5px vs 25px).
   .children li tiene más especificidad (0,4,1) que la regla general de arriba
   (0,3,1), así que con !important gana solo aquí. calc(.../2) lo deja atado a
   la mitad exacta aunque cambie el valor de las categorías. */
.bloxic-filters .product-categories .children li {
	margin-bottom: calc(var(--margin-bottom-25, 25px) / 2) !important;
}

/* ============================================================
   Paginación de los listados de la tienda (Cuadrícula de bucle de Elementor).
   Elementor la pinta en Arial 15px gris plano; la igualamos a la demo: cajas
   de 50px, Jost 18/500, la página activa en negro. La MISMA en toda la tienda
   porque todos los listados usan .elementor-widget-loop-grid; acotada a esa
   clase para NO tocar otras paginaciones (blog, tema).

   Especificidad: la fuente/tamaño de Elementor va sobre el CONTENEDOR
   (.elementor-pagination) y se HEREDA, así que al fijarla directamente en
   .page-numbers ganamos sin subir especificidad (lo directo vence a lo
   heredado). El COLOR, en cambio, Elementor lo fija sobre .page-numbers con un
   selector por-elemento (0,6,0); para activa/hover subimos a (0,7,0) repitiendo
   clases que el propio nodo YA tiene (.elementor-widget / .elementor-element),
   sin !important y sin depender de IDs de plantilla.
   ============================================================ */
.elementor-widget-loop-grid .elementor-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 50px;
	height: 50px;
	padding: 0 14px;
	font-family: var(--font-family-Jost), sans-serif;
	font-size: var(--font-18, 18px);
	font-weight: 500;
	line-height: 1;
	background-color: transparent;
	border: 2px solid rgba(0, 0, 0, 0.08);
	transition: color .3s ease, background-color .3s ease, border-color .3s ease;
}

.elementor .elementor-widget-loop-grid.elementor-widget.elementor-element .elementor-pagination a.page-numbers:hover,
.elementor .elementor-widget-loop-grid.elementor-widget.elementor-element .elementor-pagination .page-numbers.current {
	color: #FFFFFF;
	background-color: #0d0e0f;
	border-color: #0d0e0f;
}

/* Prev/Next como flechas (← →) igual que la demo, en vez de "Anterior/Siguiente".
   Elementor las etiqueta con texto; ocultamos el texto (font-size:0) y pintamos
   la flecha en ::before. Cuando NO hay página a la que ir, Elementor renderiza
   la flecha como <span> (no <a>) desactivado: lo ocultamos, así desaparece si no
   se puede avanzar/retroceder (en la página 1 no sale "anterior", como la demo).
   El span de la página ACTUAL no se ve afectado (no lleva .prev/.next). */
.elementor-widget-loop-grid .elementor-pagination span.page-numbers.prev,
.elementor-widget-loop-grid .elementor-pagination span.page-numbers.next {
	display: none;
}
.elementor-widget-loop-grid .elementor-pagination a.page-numbers.prev,
.elementor-widget-loop-grid .elementor-pagination a.page-numbers.next {
	font-size: 0;
}
.elementor-widget-loop-grid .elementor-pagination a.page-numbers.prev::before {
	content: "\2190"; /* ← */
	font-size: var(--font-18, 18px);
}
.elementor-widget-loop-grid .elementor-pagination a.page-numbers.next::before {
	content: "\2192"; /* → */
	font-size: var(--font-18, 18px);
}

/* En MÓVIL la paginación se partía en dos líneas (retorno de carro): las 6 cajas
   de 50px (← 1 2 3 4 →) no caben en el ancho. La forzamos a UNA sola línea:
   contenedor en fila flex SIN wrap y cajas más pequeñas. Escritorio no se toca (50px).

   El grupo va centrado (justify-content:center): con pocos números se comprime y
   se centra en vez de estirarse a lo ancho. El contenedor .elementor-pagination ya
   está alineado con el título y el botón, y como el grupo nunca supera su ancho,
   tampoco queda pegado al borde.

   Elementor añade a cada número un margin lateral (ajuste "Espacio entre" = 20px →
   10px por lado) con un selector propio de (0,7,1) que, sumado a las cajas,
   desbordaba el contenedor. Su CSS generado carga DESPUÉS que este child, así que
   empatar la especificidad no basta (ganaría Elementor por orden de cascada): lo
   SUPERAMOS a (0,8,1) —repitiendo .elementor-element y .page-numbers— SIN usar el
   ID de plantilla, así vale para todas las categorías (13209, 13500, …) sin
   !important. El espaciado entre números lo controla el gap. */
@media (max-width: 767px) {
	.elementor-widget-loop-grid .elementor-pagination {
		display: flex;
		flex-wrap: nowrap;
		justify-content: center;
		gap: 12px;
	}
	.elementor-widget-loop-grid .elementor-pagination .page-numbers {
		min-width: 40px;
		height: 40px;
		padding: 0 6px;
		font-size: var(--font-16, 16px);
	}
	body .elementor .elementor-widget-loop-grid.elementor-widget.elementor-element.elementor-element .elementor-pagination .page-numbers.page-numbers {
		margin: 0;
	}
}

/* En MÓVIL, entre los filtros de la tienda y la galería de Instagram había un
   hueco enorme: la sección fa9405b (contenedor Elementor de la plantilla 13209
   de archivo de producto) trae margin-bottom:120px vía variable. Lo reducimos a
   la mitad (60px) solo en móvil. Su CSS generado carga después y su selector es
   (0,3,0); repetimos la clase del elemento para llegar a (0,4,0) y ganar sin
   !important. */
@media (max-width: 767px) {
	.elementor-13209 .elementor-element.elementor-element-fa9405b.elementor-element-fa9405b {
		--margin-bottom: 60px;
	}
}

/* ============================================================
   Barra superior del listado (contador + ordenación) que pinta el shortcode
   [fds_orden_tienda] (functions.php). Contador a la izquierda, desplegable a la
   derecha, como la demo. En móvil se apila.
   ============================================================ */
.fds-shop-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 20px;
	margin-bottom: 30px;
}
.fds-shop-topbar .woocommerce-result-count {
	margin: 0;
	font-family: var(--font-family-Outfit), sans-serif;
	font-size: var(--font-16, 16px);
	color: #0d0e0f;
}
.fds-shop-topbar .woocommerce-ordering {
	margin: 0;
}
.fds-shop-topbar .woocommerce-ordering select,
.fds-shop-topbar select.orderby {
	/* Como la demo: caja BLANCA con borde fino y padding, texto a la izquierda y
	   una flecha ▾ sencilla a la derecha. appearance:none para que se vea igual
	   en todos los navegadores. Jost 14/400 negro. */
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	font-family: var(--font-family-Jost), sans-serif;
	font-size: var(--font-14, 14px);
	font-weight: 400;
	color: #000000;
	background-color: #ffffff;
	border: 2px solid #dcdcdc;
	border-radius: 0;
	padding: 10px 40px 10px 14px;
	line-height: 1.2;
	box-shadow: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath fill='none' stroke='%23333333' stroke-width='1.5' d='M1 1l4.5 4.5L10 1'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 11px 7px;
}

.woocommerce div.product p.stock {
	display: none !important;
}

.sale-block h5 a:hover {
	color: white;
}

.sale-block .buy-now:hover {
	color: white;
}

.grecaptcha-badge {
	visibility: hidden !important;
}

.scroll-to-top {
	left: 15px;
}

/* ============================================================
   Marquee de marcas ("Diseño / Experiencia / Calidad"). El widget de Bloxic
   mete el título en <h1> a fuego; lo pasamos a <div class="brand-title"> por
   SEO (functions.php) y replicamos aquí el estilo base que el tema daba en
   .brand-section h1. El contorno (span) y el rojo (strong) ya funcionan porque
   sus reglas del tema no dependen de la etiqueta.
   ============================================================ */
.brand-section .brand-title {
	position: relative;
	display: inline-block;
	padding: 10px 30px;
	line-height: 1em;
	font-family: var(--font-family-Outfit), sans-serif;
	font-size: var(--font-60, 60px);
	font-weight: 400;
	color: rgba(var(--black-color-rgb, 0, 0, 0), 0.15);
}

/* Cada bloque del marquee (.js-marquee, flex con align-items:center) sólo medía
   lo que su contenido (~82px) y quedaba pegado ARRIBA dentro de la fila de 115px
   (.animation_mode), dejando hueco abajo → el conjunto subía ~16px respecto al
   centro entre las barras punteadas. Le damos el alto de la fila para que su
   propio align-items:center centre el logo y el texto justo entre las barras. */
.brand-section .js-marquee {
	min-height: 115px;
}

/* ============================================================
   "Productos Populares" (widget .products-section-four) en MÓVIL: el título
   salía a 30px (a todo el ancho) y chocaba con las flechas del slider, y el
   contenido quedaba pegado al borde. Lo reducimos y le damos padding lateral,
   igual que la plantilla Bloxic. Solo en móvil.
   ============================================================ */
@media (max-width: 767px) {
	.products-section-four .sec-title h2,
	.products-section-five .sec-title h2 {
		/* El tamaño (25px) lo fija ahora la regla general .sec-title h2/h3/h4 de
		   arriba; aquí solo mantenemos el interlineado para el título a 2 líneas. */
		line-height: 1.3;
		/* Las flechas del slider van arriba a la derecha (~88px de ancho) en la
		   misma banda del título. Reservamos ese ancho a la derecha para que el
		   título largo haga retorno de carro y no se pise con las flechas. */
		padding-right: 100px;
	}
	/* Retorno de carro limpio en el título largo de section-five: la parte en
	   <strong> ("seleccionados para ti") baja a su propia línea, así la 1ª línea
	   ("Los mejores productos") es corta y no choca con las flechas — sin
	   necesidad de reservar padding a la derecha. */
	.products-section-five .sec-title h2 strong {
		display: block;
	}
	/* section-four va pegado al borde, le damos 15px. section-five NO se toca:
	   su widget ya trae un .auto-container con 15px de padding, así que con
	   añadirle más quedaba doble (30px, más metido que el bloque de la mesa). */
	.products-section-four {
		padding-left: 15px;
		padding-right: 15px;
	}

	/* Flechas de "Los mejores productos" (section-five) arriba a la derecha,
	   inline, como en "Productos Populares" (section-four), en vez de a los
	   lados. Anulamos el posicionado lateral del tema. */
	.products-section-five .owl-nav {
		position: absolute; left: auto; right: 0; top: -50px; margin-top: 0;
	}
	.products-section-five .owl-nav .owl-prev,
	.products-section-five .owl-nav .owl-next {
		position: relative; left: auto; right: auto;
		width: auto; height: auto; line-height: 1;
		border-radius: 0; display: inline-block;
		margin-left: 20px; opacity: 0.2;
	}
}

/* ============================================================
   Iconos de categoría (SVG inline) de las secciones de productos. Algunos
   exports de Illustrator traen trazos en AZUL (#009FE3 — p. ej. la silla de
   Mobiliario, clases internas .st4/.st5). Forzamos TODOS los trazos a rojo para
   que el icono se vea SIEMPRE en rojo; los rellenos blancos no se tocan (solo
   stroke) y todos los paths ya llevan trazo, así que no se añaden bordes nuevos.
   El !important vence al <style> interno del SVG: por eso en staging salía azul
   (allí sí se aplica el estilo interno) y en local ya salía rojo.
   ============================================================ */
.products-section-four svg *,
.products-section-five svg * {
	stroke: #D71A2E !important;
}

/* ============================================================
   Contacto: la línea de aceptación del Aviso Legal / Política de Privacidad se
   veía más pequeña (12.6px) que el subtítulo del formulario ("Nos pondremos en
   contacto…", 16px). El tamaño lo fija el CSS personalizado de la página en
   Elementor con #formContacto .aviso-legal-contacto{font-size:0.9em} —
   especificidad (1,1,0)— y su hoja carga DESPUÉS del child, así que la SUPERAMOS
   a (1,2,0) repitiendo la clase, sin !important. El texto y sus enlaces heredan
   el tamaño, así que toda la línea queda igual que el subtítulo.
   ============================================================ */
#formContacto .aviso-legal-contacto.aviso-legal-contacto {
	font-size: var(--font-16, 16px);
}
/* ============================================================
   Lightbox de las imágenes del blog: mientras está abierta, sólo debe verse la
   galería. El botón flotante de WhatsApp (z-index 10000) y la flecha de subir
   quedaban por encima de la capa de la lightbox (9999).

   La clase .fds-lightbox-abierta la pone y la quita assets/js/lightbox-ui.js:
   la .dialog-lightbox-body de Elementor no vale porque al cerrar no se elimina.
   El selector queda en (0,2,1) y supera al (0,1,0) del widget, sin !important.
   Se ocultan con visibility/opacity y no con display:none para no interferir
   con su propio JS.
   ============================================================ */
html.fds-lightbox-abierta .e-contact-buttons,
html.fds-lightbox-abierta .scroll-to-top {
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
}

/* ============================================================
   Cabecera de la página de resultados de búsqueda (plantilla Elementor 13815).
   El fondo del contenedor es la "Imagen destacada" por etiqueta dinámica, así que
   en cuanto un resultado tenía miniatura salía esa foto a pantalla completa (y
   cuando no la tenía, la capa negra al 70% dejaba un bloque gris oscuro). Se
   quita la imagen y la capa y se deja igual que la cabecera de las entradas del
   blog (.page-title): gris claro, texto centrado y 120px arriba y abajo.

   La hoja post-13815.css y el <style> con la imagen dinámica cargan DESPUÉS del
   child, así que se repite la clase del contenedor / del widget para superarlos
   por especificidad —(0,5,0) frente a su (0,4,0)— sin !important.
   ============================================================ */
.elementor-13815 .elementor-element.elementor-element-2060454c.elementor-element-2060454c.elementor-element-2060454c {
	background-color: var(--color-thirtyone, #F5F5F5);
	background-image: none;
	text-align: center;
	/* Mismo aire que .page-title. La variable la usa el propio contenedor y el
	   valor explícito cubre a .e-con, que sólo aplica el padding horizontal. */
	--padding-top: 120px;
	--padding-bottom: 120px;
	padding-top: 120px;
	padding-bottom: 120px;
}

.elementor-13815 .elementor-element.elementor-element-2060454c.elementor-element-2060454c::before {
	background-color: transparent;
}

/* El título llevaba margin-top:150px para caer sobre la parte baja de la foto.
   Sin foto sobraba: dejaba la cabecera en 467px de alto en vez de los ~330 de
   las entradas. Se anula repitiendo la clase del widget: (0,5,0) sobre (0,4,0). */
.elementor-13815 .elementor-element.elementor-element-34de18b7.elementor-element-34de18b7 > .elementor-widget-container {
	margin-top: 0;
}

/* El mismo color que acaba teniendo el h2 de .page-title en las entradas: ahí
   gana .elementor-kit-6 h2 (--e-global-color-text), no la variable del tema. */
.elementor-13815 .elementor-element.elementor-element-34de18b7 .elementor-heading-title.elementor-heading-title {
	color: var(--e-global-color-text, #434141);
}

.elementor-13815 .elementor-element.elementor-element-61896498 .woocommerce-breadcrumb.woocommerce-breadcrumb {
	color: var(--color-thirtyseven, #444141);
	text-align: center;
}

.elementor-13815 .elementor-element.elementor-element-61896498 .woocommerce-breadcrumb.woocommerce-breadcrumb > a {
	color: var(--black-color, #000);
}

.elementor-13815 .elementor-element.elementor-element-61896498 .woocommerce-breadcrumb.woocommerce-breadcrumb > a:hover {
	color: var(--main-color, #ED1D24);
}

/* ============================================================
   Menú móvil desplegado (body.mobile-menu-visible).

   1) El logo iba centrado (.mobile-menu .nav-logo{text-align:center}) mientras
      que el buscador y los enlaces van pegados a la izquierda. Se alinea con
      ellos: el propio contenedor ya tiene 20px de padding lateral, los mismos
      que llevan los enlaces del menú.
   2) La flecha de "ir arriba" se veía POR ENCIMA del panel. No es cuestión de
      subir el menú: .mobile-menu ya tiene z-index 999999, pero cuelga de
      .main-header, que con position:relative y z-index:99 crea su propio
      contexto de apilamiento, así que todo el menú compite como 99 y la flecha
      (fixed, z-index 100, colgada del body) ganaba por uno. Se la baja mientras
      el menú está abierto para que quede detrás.
   ============================================================ */
.mobile-menu .nav-logo.nav-logo {
	text-align: left;
}

body.mobile-menu-visible .scroll-to-top {
	z-index: 1;
}

/* ============================================================
   Elementos de menú solo para móvil (clase CSS "solo-movil" puesta desde
   Apariencia → Menús). El menú del móvil es una copia por JS del menú principal,
   así que un enlace añadido en el panel sale en los dos sitios: aquí se oculta
   en el menú de escritorio (y en el de la cabecera fija, que también es
   .main-menu) y se deja visible dentro de .mobile-menu.
   ============================================================ */
.main-header .main-menu .navigation > li.solo-movil {
	display: none;
}

.main-header .mobile-menu .navigation > li.solo-movil {
	display: block;
}

/* ============================================================
   Aire en la parte derecha de la cabecera. El buscador quedaba pegado al último
   elemento del menú ("Catálogo") en pantallas medianas. Se separa el bloque de
   opciones del menú y, para no ganar ancho, se recortan un poco los huecos de
   dentro: así el buscador y el icono de cuenta quedan más pegados al carrito.
   Vale para la cabecera de arriba y para la fija, que comparten marcado.
   ============================================================ */
.main-header .options-box {
	margin-left: 40px;
}

.main-header .options-box .search-box-two {
	margin-right: 16px;
}

.main-header .options-box .user-box {
	margin-right: 10px;
}
