/* ==========================================================================
   fn-home.css (v3 — negro + #f94200)
   Ruta: wp-content/themes/hontheme/fn-home.css
   ========================================================================== */
:root {
	--fn-color-bg: #ffffff;
	--fn-color-bg-alt: #f6f6f4;
	--fn-color-text: #1a1a1a;
	--fn-color-text-muted: #6b6b6b;
	--fn-color-primary: #0a0a0a;
	--fn-color-accent: #f94200;
	--fn-radius: 10px;
	--fn-gap: 1.25rem;
	--fn-container-width: 1200px;
}
.fn-home {
	color: var(--fn-color-text);
}
.fn-container {
	max-width: var(--fn-container-width);
	margin: 0 auto;
	padding: 0 1.25rem;
}
/* ---------- SECTION LAYOUT ---------- */
.fn-section {
	padding: 3rem 0;
}
.fn-section--alt {
	background: var(--fn-color-bg-alt);
}
.fn-section__title {
	margin: 0 0 1.5rem;
	font-size: 1.5rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-align: center;
}
/* ---------- INTRO TEXT ---------- */
.fn-section--intro p {
	line-height: 1.7;
	color: var(--fn-color-text-muted);
}
/* ---------- HOME PRODUCT SECTIONS
   Generadas por fn_cached_home_new_products(),
   fn_cached_home_sale_products() y fn_cached_home_best_sellers()
   con wc_get_template_part('content','product') => ul.products li.product
   ---------------------------------------------------------------- */
.fn-home-products-wrap .home-products {
	width: 100%;
}
.fn-home-products-wrap .home-products h2 {
	margin: 0 0 1.5rem;
	font-size: 1.5rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-align: center;
}
.fn-home-products-wrap .home-products .products {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.fn-home-products-wrap .home-products .products li.product {
	background: var(--fn-color-bg);
	border: 1px solid #ececec;
	border-radius: var(--fn-radius);
	padding: 0.75rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	font-size: 0.85rem;
}
.fn-home-products-wrap .home-products .products li.product img {
	border-radius: calc(var(--fn-radius) - 4px);
	height: auto;
}
.fn-home-products-wrap .home-products .products li.product .price {
	font-weight: 600;
	margin: 0.4rem 0 0.75rem;
}
.fn-home-products-wrap .home-products .products li.product .price del {
	color: var(--fn-color-text-muted);
	font-weight: 400;
	margin-right: 0.4rem;
}
.fn-home-products-wrap .home-products .products li.product .price ins {
	text-decoration: none;
	color: var(--fn-color-accent);
}
.fn-home-products-wrap .home-products .products li.product .button,
.fn-home-products-wrap .home-products .products li.product a.add_to_cart_button,
.fn-home-products-wrap .home-products .products li.product a.button {
	margin-top: auto;
	display: inline-block;
	padding: 0.5rem 1rem;
	border-radius: var(--fn-radius);
	background: var(--fn-color-primary);
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.8rem;
}
.fn-home-products-wrap .home-products .onsale {
	background: var(--fn-color-accent);
	color: #fff;
	border-radius: 999px;
	font-size: 0.7rem;
	text-transform: uppercase;
	font-weight: 600;
}
/* ---------- RESPONSIVE ---------- */
@media (max-width: 992px) {
	.fn-home-products-wrap .home-products .products {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media (max-width: 640px) {
	.fn-home-products-wrap .home-products .products {
		grid-template-columns: repeat(2, 1fr);
	}
	.fn-section {
		padding: 2rem 0;
	}
}
/* ==========================================================================
   PARCHE: anular estilos de ancho/float que Biona aplica a li.product
   ========================================================================== */
.fn-home-products-wrap .home-products .products li.product {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.fn-home-products-wrap .home-products .products li.product img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: none !important;
	object-fit: cover;
	aspect-ratio: 1 / 1;
}
/* Algunos temas envuelven la imagen en un contenedor con tamaño fijo */
.fn-home-products-wrap .home-products .products li.product .woocommerce-loop-product__link,
.fn-home-products-wrap .home-products .products li.product a {
	display: block;
	width: 100%;
}
.fn-home-products-wrap .home-products .products li.product a img,
.fn-home-products-wrap .home-products .products li.product > img,
.fn-home-products-wrap .home-products .products li.product .attachment-woocommerce_thumbnail {
	width: 100% !important;
	height: auto !important;
}
/* ==========================================================================
   PARCHE 2: diferenciar visualmente Novedades / Ofertas / Más vendidos
   y convertir la franja de confianza en bloque de color
   (los colores por sección quedan sobrescritos por el PARCHE 8 más abajo,
   se dejan aquí solo por si algún día se retira ese parche)
   ========================================================================== */
.fn-home-products-wrap .home-new h2 {
	color: var(--fn-color-primary);
	border-bottom: 3px solid var(--fn-color-primary);
	display: inline-block;
	padding-bottom: 0.25rem;
}
.fn-home-products-wrap .home-sale h2 {
	color: var(--fn-color-accent);
	border-bottom: 3px solid var(--fn-color-accent);
	display: inline-block;
	padding-bottom: 0.25rem;
}
.fn-home-products-wrap .home-sale .onsale {
	display: inline-block;
}
.fn-home-products-wrap .home-best h2 {
	color: var(--fn-color-primary);
	border-bottom: 3px solid var(--fn-color-accent);
	display: inline-block;
	padding-bottom: 0.25rem;
}
/* Centrar los títulos con su subrayado */
.fn-home-products-wrap .home-products h2 {
	text-align: center;
	width: 100%;
}
/* ==========================================================================
   PARCHE 5: estilos también para ul.products generado por shortcodes
   [sale_products] y [best_selling_products]
   ========================================================================== */
.fn-home-products-wrap .products,
.fn-home-products-wrap ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: var(--fn-gap) !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.fn-home-products-wrap ul.products li.product {
	background: var(--fn-color-bg);
	border: 1px solid #ececec;
	border-radius: var(--fn-radius);
	padding: 1rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.fn-home-products-wrap ul.products li.product img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: none !important;
	object-fit: cover;
	aspect-ratio: 1 / 1;
	border-radius: calc(var(--fn-radius) - 4px);
}
.fn-home-products-wrap ul.products li.product .price {
	font-weight: 600;
	margin: 0.4rem 0 0.75rem;
}
.fn-home-products-wrap ul.products li.product .price del {
	color: var(--fn-color-text-muted);
	font-weight: 400;
	margin-right: 0.4rem;
}
.fn-home-products-wrap ul.products li.product .price ins {
	text-decoration: none;
	color: var(--fn-color-accent);
}
.fn-home-products-wrap ul.products li.product .button,
.fn-home-products-wrap ul.products li.product a.add_to_cart_button,
.fn-home-products-wrap ul.products li.product a.button {
	margin-top: auto;
	display: inline-block;
	padding: 0.5rem 1rem;
	border-radius: var(--fn-radius);
	background: var(--fn-color-primary);
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.8rem;
}
.fn-home-products-wrap ul.products li.product .onsale {
	background: var(--fn-color-accent);
	color: #fff;
	border-radius: 999px;
	font-size: 0.7rem;
	text-transform: uppercase;
	font-weight: 600;
}
@media (max-width: 992px) {
	.fn-home-products-wrap .products,
	.fn-home-products-wrap ul.products {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}
@media (max-width: 640px) {
	.fn-home-products-wrap .products,
	.fn-home-products-wrap ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
/* ==========================================================================
   PARCHE 6: contenido editable desde WordPress (the_content)
   ========================================================================== */
.fn-editor-content {
	padding-top: 0;
}
.fn-editor-content .fn-container {
	padding-left: 0;
	padding-right: 0;
	max-width: 100%;
}
/* Si el editor está vacío, no dejar espacio en blanco */
.fn-editor-content:empty,
.fn-editor-content .fn-container:empty {
	display: none;
}
/* Sliders/imágenes a ancho completo si se insertan a pantalla completa */
.fn-editor-content .alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
}
/* ==========================================================================
   PARCHE 7: eliminar margin-top de .site-content en la nueva home
   ========================================================================== */
body:not(.elementor-page) .site-content:has(#fn-home) {
	margin-top: 0;
}
/* Fallback para navegadores sin soporte de :has() */
/* ==========================================================================
   PARCHE 8: aplicar el estilo h1/.h1-style a los títulos de
   Novedades, Ofertas y Más vendidos
   ========================================================================== */
.fn-home-products-wrap .home-products h2,
.fn-home-products-wrap .fn-section__title {
	font-style: normal;
	font-weight: 600;
	font-size: 54px;
	line-height: 1;
	font-family: Poppins, sans-serif;
	letter-spacing: 0px;
	text-align: center;
	color: #191919;
	text-transform: none;
	/* sobrescribe los estilos previos de estas secciones */
	border-bottom: none;
	display: block;
	width: auto;
}
@media (min-width: 1200px) {
	.fn-home-products-wrap .home-products h2,
	.fn-home-products-wrap .fn-section__title {
		font-size: 76px;
	}
}

/* ==========================================================================
   PARCHE 9: sección "house of nutrition" + Complementos nutricionales
   + 4 productos aleatorios (etiquetas aminoacidos/amino)
   ========================================================================== */

.fn-section--intro p {
	line-height: 1.7;
	color: var(--fn-color-text-muted);
}

.fn-intro__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2.5rem;
	align-items: start;
}

.fn-intro__text {
	text-align: left;
}

/* Productos aleatorios (etiquetas aminoacidos/amino): tarjetas al 50% */
.fn-intro__products ul.products {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: var(--fn-gap) !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.fn-intro__products ul.products li.product {
	background: var(--fn-color-bg);
	border: 1px solid #ececec;
	border-radius: var(--fn-radius);
	padding: 1rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 0 calc(-50% + 15px) 0 !important; /* compensa el scale dejando ~15px de espacio */
	transform: scale(0.7);
	transform-origin: top center;
}

.fn-intro__products ul.products li.product img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	object-fit: cover;
	aspect-ratio: 1 / 1;
	border-radius: calc(var(--fn-radius) - 4px);
}

.fn-intro__products ul.products li.product .price {
	font-weight: 600;
	margin: 0.4rem 0 0.75rem;
}

.fn-intro__products ul.products li.product .price del {
	color: var(--fn-color-text-muted);
	font-weight: 400;
	margin-right: 0.4rem;
}

.fn-intro__products ul.products li.product .price ins {
	text-decoration: none;
	color: var(--fn-color-accent);
}

.fn-intro__products ul.products li.product .button,
.fn-intro__products ul.products li.product a.add_to_cart_button,
.fn-intro__products ul.products li.product a.button {
	margin-top: auto;
	display: inline-block;
	padding: 0.5rem 1rem;
	border-radius: var(--fn-radius);
	background: var(--fn-color-primary);
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.8rem;
}

.fn-intro__products ul.products li.product .onsale {
	background: var(--fn-color-accent);
	color: #fff;
	border-radius: 999px;
	font-size: 0.7rem;
	text-transform: uppercase;
	font-weight: 600;
}

/* Responsive: apilar columnas en móvil/tablet */
@media (max-width: 992px) {
	.fn-intro__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.fn-intro__products ul.products {
		grid-template-columns: 1fr !important;
	}

	.fn-intro__products ul.products li.product {
		margin-bottom: calc(-100% + 15px) !important;
	}
}

/* ==========================================================================
   PARCHE 11: aplicar el estilo de tarjetas de producto a TODA la web
   (tienda, categorías, relacionados, etc.), no solo dentro de la home
   ========================================================================== */

ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: var(--fn-gap) !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

ul.products li.product {
	background: var(--fn-color-bg);
	border: 1px solid #ececec;
	border-radius: var(--fn-radius);
	padding: 1rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

ul.products li.product img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: none !important;
	object-fit: cover;
	aspect-ratio: 1 / 1;
	border-radius: calc(var(--fn-radius) - 4px);
}

ul.products li.product .woocommerce-loop-product__link,
ul.products li.product > a {
	display: block;
	width: 100%;
}

ul.products li.product .price {
	font-weight: 600;
	margin: 0.4rem 0 0.75rem;
}

ul.products li.product .price del {
	color: var(--fn-color-text-muted) !important;
	font-weight: 400;
	margin-right: 0.4rem;
}

ul.products li.product .price ins,
ul.products li.product .price ins span,
ul.products li.product .price > span:not(del) {
	text-decoration: none;
	color: var(--fn-color-accent) !important;
}

ul.products li.product .button,
ul.products li.product a.add_to_cart_button,
ul.products li.product a.button {
	margin-top: auto;
	display: inline-block;
	padding: 0.5rem 1rem;
	border-radius: var(--fn-radius);
	background: var(--fn-color-primary) !important;
	color: #fff !important;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.8rem;
}

ul.products li.product .onsale {
	background: var(--fn-color-accent) !important;
	color: #fff !important;
	border-radius: 999px;
	font-size: 0.7rem;
	text-transform: uppercase;
	font-weight: 600;
}

@media (max-width: 992px) {
	ul.products {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

@media (max-width: 640px) {
	ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* ==========================================================================
   PARCHE 12: corrige el bloque de aminoácidos en la sección intro.
   ========================================================================== */

.fn-intro__products {
	display: flex;
	justify-content: center;
}

.fn-intro__products ul.products {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 10px !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 50% !important;
	max-width: 50% !important;
}

.fn-intro__products ul.products li.product {
	background: var(--fn-color-bg);
	border: 1px solid #ececec;
	border-radius: var(--fn-radius);
	padding: 0.5rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
	transform: none !important; /* anula cualquier scale anterior */
}

.fn-intro__products ul.products li.product img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	object-fit: cover;
	aspect-ratio: 1 / 1;
	border-radius: calc(var(--fn-radius) - 4px);
}

.fn-intro__products ul.products li.product .price {
	font-weight: 600;
	font-size: 0.8rem;
	margin: 0.3rem 0 0.5rem;
}

.fn-intro__products ul.products li.product .price del {
	color: var(--fn-color-text-muted);
	font-weight: 400;
	margin-right: 0.3rem;
}

.fn-intro__products ul.products li.product .price ins {
	text-decoration: none;
	color: var(--fn-color-accent);
}

.fn-intro__products ul.products li.product .button,
.fn-intro__products ul.products li.product a.add_to_cart_button,
.fn-intro__products ul.products li.product a.button {
	margin-top: auto;
	display: inline-block;
	padding: 0.35rem 0.7rem;
	border-radius: var(--fn-radius);
	background: var(--fn-color-primary);
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.7rem;
}

.fn-intro__products ul.products li.product .onsale {
	background: var(--fn-color-accent);
	color: #fff;
	border-radius: 999px;
	font-size: 0.65rem;
	text-transform: uppercase;
	font-weight: 600;
}

/* Responsive: en tablet/móvil ampliamos el ancho relativo */
@media (max-width: 992px) {
	.fn-intro__products ul.products {
		width: 70% !important;
		max-width: 70% !important;
	}
}

@media (max-width: 480px) {
	.fn-intro__products ul.products {
		width: 100% !important;
		max-width: 100% !important;
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* ==========================================================================
   PARCHE 13: barra de iconos superior, nav rápida de categorías,
   banner split de 2 categorías y grid "Compra por categoría"
   ========================================================================== */

/* --- Barra de iconos superior (envío / entrega / pago) --- */
.fn-topbar {
	background: var(--fn-color-accent);
	color: #fff;
}
.fn-topbar ul {
	display: flex;
	flex-wrap: nowrap;
	gap: 24px;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 10px 20px;
	font-size: 13px;
	overflow-x: auto;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.fn-topbar ul::-webkit-scrollbar {
	display: none;
}
.fn-topbar li {
	display: flex;
	align-items: center;
	gap: 8px;
	opacity: 0.92;
	flex: none;
}
.fn-topbar img.emoji {
	width: 14px;
	height: 14px;
	flex: none;
}
@media (max-width: 640px) {
	.fn-topbar ul {
		justify-content: flex-start;
	}
}

/* --- Nav rápida de categorías (círculos con scroll horizontal) --- */

.fn-cats {
	padding: 2rem 0 0.5rem;
}
.fn-cats__track {
	display: flex;
	gap: 22px;
	overflow-x: auto;
	padding: 6px 4px 14px;
	justify-content: space-between;
}
.fn-cats__track::-webkit-scrollbar {
	display: none;
}
.fn-cat {
	flex: none;
	width: 96px;
	text-align: center;
}
.fn-cat__img {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	overflow: hidden;
	border: 1px solid #ececec;
	margin: 0 auto 8px;
	background: #fff;
}
.fn-cat__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fn-cat span {
	font-size: 13px;
	font-weight: 600;
	color: var(--fn-color-text);
}

/* --- Banner split (2 categorías destacadas) --- */
.fn-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--fn-gap);
}
.fn-tile {
	position: relative;
	border-radius: var(--fn-radius);
	overflow: hidden;
	min-height: 220px;
	display: flex;
	align-items: flex-end;
}
.fn-tile img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fn-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.78), rgba(0, 0, 0, 0.1) 60%);
}
.fn-tile__content {
	position: relative;
	z-index: 1;
	padding: 22px;
	color: #fff !important;
}
.fn-tile__content h3 {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 4px;
	color: #fff !important;
}
.fn-tile__content span {
	font-size: 13px;
	font-weight: 600;
	color: var(--fn-color-accent) !important;
}

/* --- Grid "Compra por categoría" --- */
.fn-goals {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--fn-gap);
}
.fn-goal {
	position: relative;
	border-radius: var(--fn-radius);
	overflow: hidden;
	aspect-ratio: 3 / 4;
	display: flex;
	align-items: flex-end;
	padding: 16px;
}
.fn-goal img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fn-goal::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.05));
}
.fn-goal span {
	position: relative;
	z-index: 1;
	color: #fff;
	font-weight: 700;
	font-size: 16px;
}

@media (max-width: 992px) {
	.fn-goals {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 640px) {
	.fn-split {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   PARCHE 14: soporte al markup REAL de la tarjeta de producto en esta
   instalación (plugin de variaciones + BeRocket Load More), que anida así:
   li.product > .product-content > .product-content-desc > .product-description
   > (h5.woocommerce-loop-product__title, .price, .content-button > a.button)
   El botón existía en el HTML pero el tema lo oculta hasta hover en algunos
   layouts — aquí se fuerza a que esté siempre visible.
   ========================================================================== */
.fn-home-products-wrap .products li.product,
.fn-intro__products ul.products li.product {
	display: flex !important;
	flex-direction: column;
	height: 100%;
	text-align: center;
}
.fn-home-products-wrap .products li.product .product-content,
.fn-intro__products ul.products li.product .product-content {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.fn-home-products-wrap .products li.product .product-content-desc,
.fn-intro__products ul.products li.product .product-content-desc,
.fn-home-products-wrap .products li.product .product-description,
.fn-intro__products ul.products li.product .product-description {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.fn-home-products-wrap .products li.product .woocommerce-loop-product__title,
.fn-intro__products ul.products li.product .woocommerce-loop-product__title {
	font-size: 0.85rem;
	font-weight: 600;
	margin: 0.5rem 0 0.2rem;
	line-height: 1.3;
}
.fn-home-products-wrap .products li.product .price,
.fn-intro__products ul.products li.product .price {
	font-weight: 700;
	font-size: 0.9rem;
	margin: 0.2rem 0 0.6rem;
}
.fn-home-products-wrap .products li.product .content-button,
.fn-intro__products ul.products li.product .content-button {
	margin-top: auto;
	padding-top: 0;
	opacity: 1 !important;
	visibility: visible !important;
	position: static !important;
	transform: none !important;
}
.fn-home-products-wrap .products li.product .content-button .button,
.fn-intro__products ul.products li.product .content-button .button {
	display: inline-block !important;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	padding: 0.5rem 0.6rem;
	border-radius: var(--fn-radius);
	background: var(--fn-color-accent) !important;
	color: #fff !important;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.75rem;
}
.fn-home-products-wrap .products li.product .content-button .add_to_cart_button,
.fn-intro__products ul.products li.product .content-button .add_to_cart_button {
	background: var(--fn-color-accent) !important;
}
.fn-home-products-wrap .products li.product .content-button .screen-reader-text,
.fn-intro__products ul.products li.product .content-button .screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
}

/* ---------- Bloque intro/aminoácidos: título centrado arriba,
   columna de texto + columna de productos dinámica (sin huecos) --------- */
.fn-intro__title {
	text-align: center;
	max-width: 900px;
	margin: 0 auto 2rem;
}
.fn-intro__grid {
	grid-template-columns: minmax(280px, 1fr) minmax(340px, 1.4fr);
	gap: 2.5rem;
	align-items: start;
}
.fn-intro__text p {
	margin: 0 0 1rem;
}
.fn-intro__products {
	display: block !important;
}
.fn-intro__products .woocommerce,
.fn-intro__products .woocommerce.columns-2 {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	display: block !important;
}
.fn-intro__products ul.products,
.fn-intro__products ul.products.columns-2 {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important;
	gap: 0.9rem !important;
	width: 100% !important;
	max-width: 100% !important;
}
.fn-intro__products ul.products li.product {
	padding: 0.65rem !important;
	margin: 0 !important;
}
@media (max-width: 992px) {
	.fn-intro__grid {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 480px) {
	.fn-intro__products ul.products {
		grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)) !important;
	}
}

/* ==========================================================================
   PARCHE 15: subtítulo propio del bloque intro (ya no reutiliza
   .fn-section__title), párrafos justificados con espaciado real, y grid
   de productos a columnas fijas (evita huecos que dejaba el auto-fill)
   ========================================================================== */
.fn-intro__lead {
	text-align: justify;
	max-width: 900px;
	margin: 0 auto 2rem;
}
.fn-intro__subtitle {
	text-align: left;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 1rem;
	color: var(--fn-color-text);
	text-transform: none;
}
.fn-intro__text p {
	text-align: justify;
	line-height: 1.7;
	margin: 0 0 1.1rem !important;
}
.fn-intro__text p:last-child {
	margin-bottom: 0 !important;
}
.fn-intro__products ul.products,
.fn-intro__products ul.products.columns-2,
.fn-intro__products ul.products.columns-3 {
	grid-template-columns: repeat(3, 1fr) !important;
}
@media (max-width: 700px) {
	.fn-intro__products ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (max-width: 420px) {
	.fn-intro__products ul.products {
		grid-template-columns: repeat(1, 1fr) !important;
	}
}

/* ==========================================================================
   PARCHE 16: bloque promocional dentro del editor (ej. ProSupps / Mr Hyde).
   Añade la clase "fn-promo" al bloque Columnas desde el editor de WordPress
   (Avanzado > Clase CSS adicional) para que se le aplique este estilo.
   ========================================================================== */
.fn-editor-content .fn-promo {
	max-width: 1200px;
	margin: 0 auto !important;
	padding: 1.5rem 20px !important;
	gap: 1.5rem !important;
}
.fn-editor-content .fn-promo .wp-block-heading {
	font-size: 1.05rem !important;
	line-height: 1.5 !important;
	font-weight: 500 !important;
	margin: 0 0 0.5rem !important;
}
.fn-editor-content .fn-promo img {
	width: 100% !important;
	height: auto !important;
	max-width: 260px !important;
	margin: 0 auto !important;
}
.fn-editor-content .fn-promo .wp-block-image figure {
	margin: 0 auto !important;
	max-width: 320px;
}
@media (max-width: 782px) {
	.fn-editor-content .fn-promo {
		padding: 1rem 16px !important;
	}
	.fn-editor-content .fn-promo .wp-block-heading {
		font-size: 0.95rem !important;
	}
}

/* ==========================================================================
   PARCHE 17: animación de zoom en hover para imágenes de categorías,
   banner split, grid "Compra por categoría" y botones de producto
   ========================================================================== */
.fn-cat__img img,
.fn-tile img,
.fn-goal img {
	transition: transform 0.35s ease;
}
.fn-cat:hover .fn-cat__img img,
.fn-tile:hover img,
.fn-goal:hover img {
	transform: scale(1.08);
}
.fn-tile,
.fn-goal {
	overflow: hidden;
}
.fn-home-products-wrap .products li.product .content-button .button,
.fn-intro__products ul.products li.product .content-button .button {
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.fn-home-products-wrap .products li.product .content-button .button:hover,
.fn-intro__products ul.products li.product .content-button .button:hover {
	transform: scale(1.04);
	opacity: 0.92;
}

/* ==========================================================================
   PARCHE 18: tipografía dinámica y más contenida para h1/h2 — antes el
   h2 de Novedades/Ofertas/Más vendidos (54-76px fijos) salía más grande
   que el h1 de la intro. Ahora ambos usan clamp() (fluido según el ancho
   de pantalla) y respetan la jerarquía h1 > h2.
   ========================================================================== */
.fn-intro__title {
	font-size: clamp(2rem, 4.5vw, 4.5rem);
	line-height: 1.15;
}
.fn-home-products-wrap .home-products h2,
.fn-home-products-wrap .fn-section__title {
	font-size: clamp(1.75rem, 4vw, 4rem) !important;
	line-height: 1.15 !important;
}

/* ==========================================================================
   PARCHE 19: FICHA DE PRODUCTO (single product) — estética tipo MTX Store
   + animaciones de entrada tipo Barebells.
   Requiere el override wp-content/themes/hontheme/woocommerce/single-product.php
   que envuelve todo en .fn-product y añade el JS de scroll-reveal.
   Los selectores son las clases ESTÁNDAR de WooCommerce; si Biona
   renombra alguna, se ajusta sobre lo que se vea en el inspector.
   ========================================================================== */

/* --- Layout general: Biona YA maqueta con Bootstrap
   (div.product > .row > .col-md-6 galería + .col-md-6 resumen).
   El .row pasa a flex para que ambas columnas midan lo mismo y el
   summary pueda ser sticky con recorrido. Las tabs se mueven a la
   columna izquierda vía JS (ver single-product.php). --- */
.fn-product .site-main {
	max-width: 1200px;
	margin: 0 auto;
	padding: 1.5rem 20px 3rem;
}
@media (min-width: 992px) {
	.fn-product div.product > .row {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
	}
	.fn-product div.product > .row::before,
	.fn-product div.product > .row::after {
		display: none; /* anula el clearfix de Bootstrap, rompe el flex */
	}
	/* Relacionados dentro de la columna derecha (los mueve el JS) */
	.fn-product .fn-related-side {
		margin-top: 2rem;
	}
	.fn-product .fn-related-side > h2 {
		font-size: 1.3rem !important;
		text-align: left !important;
		margin: 0 0 1rem !important;
	}
	.fn-product .fn-related-side ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* --- Barra de compra fija superior (minifoto + nombre + precio + botón) --- */
.fn-buybar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 9999;
	background: #fff;
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.12);
	transform: translateY(-110%);
	transition: transform 0.3s ease;
}
.fn-buybar.is-visible {
	transform: translateY(0);
}
.fn-buybar__inner {
	max-width: var(--fn-container-width);
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 8px 20px;
}
.fn-buybar__img {
	width: 44px;
	height: 44px;
	object-fit: contain;
	border-radius: 8px;
	background: #f5f5f5;
	flex: none;
}
.fn-buybar__info {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1;
}
.fn-buybar__title {
	font-weight: 700;
	font-size: 0.9rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.fn-buybar__price {
	font-weight: 800;
	font-size: 0.85rem;
	color: var(--fn-color-accent);
}
.fn-buybar__btn {
	flex: none;
	background: var(--fn-color-accent);
	color: #fff;
	border: none;
	border-radius: var(--fn-radius);
	padding: 10px 22px;
	font-weight: 700;
	font-size: 0.85rem;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.fn-buybar__btn:hover {
	transform: scale(1.03);
	opacity: 0.93;
}
@media (max-width: 560px) {
	.fn-buybar__title { max-width: 40vw; }
	.fn-buybar__btn { padding: 10px 14px; font-size: 0.78rem; }
}

/* --- Acordeón (sustituye a las pestañas; ver JS en single-product.php) --- */
.fn-product .fn-accordion ul.tabs {
	display: none !important;
}
.fn-product .fn-acc-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: none;
	border: none;
	border-top: 1px solid #ececec;
	padding: 16px 4px;
	font-size: 1rem;
	font-weight: 700;
	color: var(--fn-color-text);
	text-align: left;
	cursor: pointer;
	transition: color 0.2s ease;
}
.fn-product .fn-acc-header::after {
	content: "+";
	font-size: 1.3rem;
	font-weight: 400;
	color: var(--fn-color-accent);
	transition: transform 0.25s ease;
	flex: none;
	margin-left: 12px;
}
.fn-product .fn-acc-header.is-open::after {
	transform: rotate(45deg);
}
.fn-product .fn-acc-header:hover {
	color: var(--fn-color-accent);
}
.fn-product .fn-acc-header:first-of-type {
	border-top: none;
}
.fn-product .fn-accordion .fn-acc-panel {
	padding: 0 4px 18px !important;
	line-height: 1.7;
}
.fn-product .fn-accordion {
	border: 1px solid #ececec;
	border-radius: var(--fn-radius);
	padding: 4px 16px;
	margin-top: 1.5rem !important;
	background: #fff;
}

/* --- Galería --- */
.fn-product .woocommerce-product-gallery {
	border: 1px solid #ececec;
	border-radius: var(--fn-radius);
	overflow: hidden;
	background: #fff;
	padding: 8px;
}
/* (sin hover-zoom propio: WooCommerce ya aplica su zoom nativo .zoomImg) */
.fn-product .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 12px 0 0 !important;
	padding: 0 !important;
	list-style: none;
}
.fn-product .flex-control-thumbs li {
	width: 64px !important;
	float: none !important;
	margin: 0 !important;
}
.fn-product .flex-control-thumbs img {
	border: 2px solid transparent;
	border-radius: 8px;
	opacity: 0.7;
	transition: all 0.2s ease;
	cursor: pointer;
}
.fn-product .flex-control-thumbs img:hover,
.fn-product .flex-control-thumbs img.flex-active {
	border-color: var(--fn-color-accent);
	opacity: 1;
}

/* --- Resumen: título, precio, stock --- */
.fn-product .summary .product_title {
	font-family: Poppins, sans-serif;
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 0.75rem;
	color: var(--fn-color-text);
}
.fn-product .summary .price {
	font-size: 1.6rem;
	font-weight: 800;
	color: var(--fn-color-accent) !important;
	margin: 0 0 1rem;
	display: block;
}
.fn-product .summary .price del {
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--fn-color-text-muted);
	margin-right: 0.5rem;
}
.fn-product .summary .price ins {
	text-decoration: none;
}
.fn-product .summary .stock.in-stock {
	display: inline-block;
	background: #e8f7ee;
	color: #1c7a45;
	font-weight: 600;
	font-size: 0.8rem;
	padding: 4px 12px;
	border-radius: 999px;
	margin-bottom: 1rem;
}
.fn-product .summary .stock.out-of-stock {
	display: inline-block;
	background: #fdeaea;
	color: #b93030;
	font-weight: 600;
	font-size: 0.8rem;
	padding: 4px 12px;
	border-radius: 999px;
	margin-bottom: 1rem;
}
.fn-product .summary .woocommerce-product-details__short-description {
	color: var(--fn-color-text-muted);
	line-height: 1.7;
	margin-bottom: 1.25rem;
}

/* --- Formulario de compra: cantidad + botón grande tipo MTX ---
   En productos variables el bloque real es .woocommerce-variation-add-to-cart;
   en simples, el form.cart directamente. Se cubren ambos. --- */
.fn-product .summary form.cart {
	margin: 0 0 1.5rem !important;
}
.fn-product .summary .woocommerce-variation-add-to-cart,
.fn-product .summary form.cart:not(.variations_form) {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: stretch;
}
.fn-product .summary form.cart .quantity {
	display: flex;
	align-items: stretch;
	margin: 0 !important;
}
.fn-product .summary form.cart .quantity .qty {
	width: 80px;
	height: 100%;
	min-height: 52px;
	border: 1px solid #dcdcdc;
	border-radius: var(--fn-radius);
	text-align: center;
	font-size: 1rem;
	font-weight: 600;
}
.fn-product .summary form.cart .single_add_to_cart_button {
	flex: 1;
	min-height: 52px;
	background: var(--fn-color-accent) !important;
	color: #fff !important;
	border: none;
	border-radius: var(--fn-radius);
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}
.fn-product .summary form.cart .single_add_to_cart_button:hover {
	transform: scale(1.02);
	box-shadow: 0 8px 22px rgba(249, 66, 0, 0.32);
	opacity: 0.95;
}
/* Variación agotada o sin seleccionar: botón gris, sin hover */
.fn-product .summary form.cart .single_add_to_cart_button.disabled,
.fn-product .summary form.cart .single_add_to_cart_button.wc-variation-is-unavailable,
.fn-product .summary form.cart .single_add_to_cart_button.wc-variation-selection-needed {
	background: #c9c9c9 !important;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}
/* Variaciones: tabla y swatches respiran */
.fn-product .summary form.cart .variations {
	width: 100%;
	margin-bottom: 0.5rem;
}
.fn-product .summary form.cart .variations td {
	padding: 4px 0;
}
.fn-product .summary .woocommerce-variation-price .price {
	font-size: 1.4rem;
}

/* --- Meta (SKU, categorías, etiquetas) --- */
.fn-product .summary .product_meta {
	border-top: 1px solid #ececec;
	padding-top: 1rem;
	font-size: 0.82rem;
	color: var(--fn-color-text-muted);
}
.fn-product .summary .product_meta a {
	color: var(--fn-color-accent);
	font-weight: 600;
}

/* --- Pestañas: estilos de fallback por si el JS del acordeón no corre
   (sin JS las tabs siguen funcionando con el comportamiento nativo) --- */
.fn-product .woocommerce-tabs:not(.fn-accordion) {
	margin-top: 2.5rem !important;
}
.fn-product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 6px;
	list-style: none;
	margin: 0 0 0 !important;
	padding: 0 !important;
	border-bottom: 2px solid #ececec;
	background: none !important;
	flex-wrap: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.fn-product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
	display: none;
}
.fn-product .woocommerce-tabs ul.tabs::before,
.fn-product .woocommerce-tabs ul.tabs::after,
.fn-product .woocommerce-tabs ul.tabs li::before,
.fn-product .woocommerce-tabs ul.tabs li::after {
	display: none !important; /* elimina los bordes dibujados por WooCommerce */
}
.fn-product .woocommerce-tabs ul.tabs li {
	background: none !important;
	border: none !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	flex: none;
}
.fn-product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 12px 18px;
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--fn-color-text-muted) !important;
	border-bottom: 3px solid transparent;
	transition: color 0.2s ease, border-color 0.2s ease;
	white-space: nowrap;
}
.fn-product .woocommerce-tabs ul.tabs li.active a,
.fn-product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--fn-color-text) !important;
	border-bottom-color: var(--fn-color-accent);
}
.fn-product .woocommerce-tabs .panel {
	padding: 1.5rem 0 0 !important;
	line-height: 1.7;
	color: var(--fn-color-text);
}

/* --- Productos relacionados: reutiliza el estilo de tarjeta global --- */
.fn-product .related.products > h2,
.fn-product .up-sells > h2 {
	font-family: Poppins, sans-serif;
	font-size: clamp(1.5rem, 3vw, 2.4rem);
	font-weight: 600;
	text-align: center;
	margin: 2.5rem 0 1.5rem;
}

/* --- Animaciones de entrada (estilo Barebells) --- */
.fn-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
.fn-reveal--visible {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.fn-reveal { opacity: 1; transform: none; transition: none; }
}

/* --- Responsive ficha de producto --- */
@media (max-width: 900px) {
	.fn-product div.product {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.fn-product div.product .woocommerce-product-gallery,
	.fn-product div.product .summary.entry-summary {
		grid-column: 1;
		position: static;
	}
}

/* ==========================================================================
   PARCHE 20: TIENDA Y CATEGORÍAS — solo CSS, sin tocar plantillas
   (el bucle lo controla BeRocket Load More; ya usa el markup
   .product-content / .content-button que estilamos en la home).
   Extiende esos estilos de tarjeta a TODA la web.
   ========================================================================== */
ul.products li.product .content-button {
	margin-top: auto;
	opacity: 1 !important;
	visibility: visible !important;
	position: static !important;
	transform: none !important;
}
ul.products li.product .content-button .button {
	display: inline-block !important;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	padding: 0.5rem 0.6rem;
	border-radius: var(--fn-radius);
	background: var(--fn-color-accent) !important;
	color: #fff !important;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.75rem;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
ul.products li.product .content-button .button:hover {
	transform: scale(1.04);
	opacity: 0.92;
}
ul.products li.product .product-content,
ul.products li.product .product-content-desc,
ul.products li.product .product-description {
	display: flex;
	flex-direction: column;
	flex: 1;
	height: 100%;
}
ul.products li.product .woocommerce-loop-product__title {
	font-size: 0.85rem;
	font-weight: 600;
	margin: 0.5rem 0 0.2rem;
	line-height: 1.3;
}
ul.products li.product img {
	transition: transform 0.35s ease;
}
ul.products li.product:hover img {
	transform: scale(1.06);
}
ul.products li.product .woocommerce-LoopProduct-link {
	overflow: hidden;
	border-radius: calc(var(--fn-radius) - 4px);
}
/* Ordenación y contador de resultados de la tienda */
.woocommerce-result-count {
	color: var(--fn-color-text-muted);
	font-size: 0.85rem;
}
.woocommerce-ordering select {
	border: 1px solid #dcdcdc;
	border-radius: var(--fn-radius);
	padding: 8px 12px;
	font-size: 0.85rem;
}
/* Paginación */
.woocommerce-pagination ul.page-numbers {
	display: flex;
	gap: 6px;
	justify-content: center;
	list-style: none;
	border: none !important;
	margin: 2rem 0 0;
	padding: 0;
}
.woocommerce-pagination ul.page-numbers li {
	border: none !important;
}
.woocommerce-pagination .page-numbers .page-numbers {
	display: inline-block;
	min-width: 38px;
	padding: 8px 10px;
	text-align: center;
	border-radius: var(--fn-radius);
	border: 1px solid #ececec;
	background: #fff;
	color: var(--fn-color-text);
	font-weight: 600;
	font-size: 0.85rem;
	transition: all 0.2s ease;
}
.woocommerce-pagination .page-numbers .page-numbers.current,
.woocommerce-pagination .page-numbers .page-numbers:hover {
	background: var(--fn-color-accent);
	border-color: var(--fn-color-accent);
	color: #fff;
}

/* ==========================================================================
   PARCHE 21: ancho de contenido tipo MTX en toda la web (~1440px)
   Añadido al FINAL de fn-home.css
   ========================================================================== */
:root {
	--fn-container-width: 1440px;
}
/* Contenedores del tema (Bootstrap) dentro del área de contenido.
   No toca header ni footer a propósito: si también los quieres a 1440px,
   quita el prefijo .site-content de estas reglas. */
.site-content .container,
.site-content .site-content__wrap {
	max-width: var(--fn-container-width) !important;
	width: 100%;
}
/* Ficha de producto y home ya usan la variable */
.fn-product .site-main {
	max-width: var(--fn-container-width);
}

/* =====================================================
   ARCHIVOS WOOCOMMERCE
   Categorías + Etiquetas de producto
   NO afecta a /shop
   ===================================================== */

/* ---------- DESKTOP ---------- */
@media (min-width: 992px) {

    .tax-product_cat .row,
    .tax-product_tag .row {
        display: flex !important;
        align-items: flex-start;
        flex-wrap: nowrap;
    }

    .tax-product_cat #secondary,
    .tax-product_tag #secondary {
        flex: 0 0 320px;
        width: 320px;
        max-width: 320px;
        margin-right: 30px;
        order: 1;
    }

    .tax-product_cat #primary,
    .tax-product_tag #primary {
        flex: 1 1 auto;
        width: auto !important;
        max-width: none !important;
        order: 2;
    }
}

/* ==========================================
   MOVER FILTROS ARRIBA EN MÓVIL
   ========================================== */

@media screen and (max-width: 991px) {

    body.tax-product_tag .row {
        display: flex !important;
        flex-direction: column !important;
    }

    body.tax-product_cat .row {
        display: flex !important;
        flex-direction: column !important;
    }

    body.tax-product_tag #secondary,
    body.tax-product_cat #secondary {
        -webkit-box-ordinal-group: 0 !important;
        -ms-flex-order: -1 !important;
        order: -1 !important;
    }

    body.tax-product_tag #primary,
    body.tax-product_cat #primary {
        -webkit-box-ordinal-group: 2 !important;
        -ms-flex-order: 1 !important;
        order: 1 !important;
    }
}
	@media screen and (max-width: 991px){

    #secondary{
      
        order:-1 !important;
    }
}

/* ==========================================================================
   PARCHE 25: anular el efecto "hover reveal" real de Biona, que hace
   que TODO el contenido de la tarjeta (título, precio, botón) se mueva
   -50px y desaparezca al pasar el ratón, en /shop.
   ========================================================================== */
.products.products-grid .product:hover .product-content-desc .product-description > * {
	transform: none !important;
	opacity: 1 !important;
	visibility: visible !important;
}

/* ==========================================================================
   PARCHE 26: UNIFICACIÓN TOTAL de tarjetas de producto en toda la web.
   Una sola regla maestra para ul.products li.product, sin importar
   dónde aparezca (home, tienda, categorías, relacionados, aminoácidos...).
   Va al FINAL del archivo a propósito, para tener prioridad sobre
   cualquier regla más antigua y limitada a un contexto concreto.
   ========================================================================== */

/* --- Contenedor de la tarjeta: columna, altura completa, sin animaciones raras --- */
ul.products li.product {
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
	text-align: center !important;
	background: var(--fn-color-bg) !important;
	border: 1px solid #ececec !important;
	border-radius: var(--fn-radius) !important;
	padding: 1rem !important;
	transform: none !important;
}
ul.products li.product .product-content,
ul.products li.product .product-content-desc,
ul.products li.product .product-description {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 !important;
	height: 100% !important;
}

/* --- Imagen --- */
ul.products li.product img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	object-fit: cover !important;
	aspect-ratio: 1 / 1 !important;
	border-radius: calc(var(--fn-radius) - 4px) !important;
	transition: transform 0.35s ease;
}
ul.products li.product:hover img {
	transform: scale(1.06);
}

/* --- Título --- */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h5.woocommerce-loop-product__title {
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	margin: 0.5rem 0 0.2rem !important;
	line-height: 1.3 !important;
	color: var(--fn-color-text) !important;
}

/* --- Precio --- */
ul.products li.product .price {
	display: block !important;
	font-weight: 700 !important;
	font-size: 0.9rem !important;
	color: var(--fn-color-text) !important;
	margin: 0.2rem 0 0.6rem !important;
}
ul.products li.product .price del {
	color: var(--fn-color-text-muted) !important;
	font-weight: 400 !important;
	margin-right: 0.4rem !important;
}
ul.products li.product .price ins {
	text-decoration: none !important;
	color: var(--fn-color-accent) !important;
}

/* --- Botón: siempre visible, siempre naranja, siempre al fondo de la tarjeta --- */
ul.products li.product .content-button,
ul.products li.product > .button,
ul.products li.product a.button {
	margin-top: auto !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
}
ul.products li.product .content-button .button,
ul.products li.product > .button,
ul.products li.product a.button {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
	text-align: center !important;
	padding: 0.55rem 0.6rem !important;
	border-radius: var(--fn-radius) !important;
	background: var(--fn-color-accent) !important;
	color: #fff !important;
	text-decoration: none !important;
	font-weight: 600 !important;
	font-size: 0.75rem !important;
	text-transform: uppercase !important;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
ul.products li.product .content-button .button:hover,
ul.products li.product > .button:hover,
ul.products li.product a.button:hover {
	transform: scale(1.03);
	opacity: 0.92;
}

/* --- Etiqueta de oferta --- */
ul.products li.product .onsale {
	background: var(--fn-color-accent) !important;
	color: #fff !important;
	border-radius: 999px !important;
	font-size: 0.7rem !important;
	text-transform: uppercase !important;
	font-weight: 600 !important;
}

/* --- Valoraciones --- */
ul.products li.product .star-rating {
	margin: 0 auto 4px !important;
}

/* PARCHE 27: el panel del menú móvil de Biona recorta el contenido con
   overflow:hidden sin scroll — se convierte en scrolleable */
.main-navigation__vertical .main-navigation-inner {
	overflow-y: auto !important;
	overflow-x: hidden !important;
	max-height: 100vh !important;
	-webkit-overflow-scrolling: touch;
}

/* PARCHE 28: evitar el salto de layout del menú móvil al cargar —
   se oculta hasta que termine de posicionarse */
@media (max-width: 991px) {
	.main-navigation__vertical .header-vertical-menu-popup {
		transition: none !important; /* evita que la corrección se vea como una animación */
	}
}

/* PARCHE 29: evitar el reflow de la fuente Poppins en el menú */
@font-face {
	font-family: 'Poppins';
	font-display: swap;
	size-adjust: 100%; /* si tras probar sigue habitiendo salto, ajusta este % */
}

/* ==========================================================================
   PARCHE 30: footer negro + naranja, igualado al de hon-theme,
   sobre las clases REALES que genera Biona (.site-footer, .footer-area,
   .footer-menu, .social-icon, .contact-icon...)
   ========================================================================== */

.site-footer {
	background: var(--fn-color-primary);
	color: #fff;
	margin-top: 60px;
	padding-top: 20px;
}

/* --- Widgets (3 columnas ya las da Bootstrap: .row / .col-lg-4) --- */
.footer-widgets .container {
	max-width: 100%;
	padding: 0;
}
.footer-area h4 {
	color: #fff;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 16px;
}
.footer-area p {
	color: #cfcdc2;
	font-size: 13.5px;
}
.footer-area a {
	color: #cfcdc2;
}
.footer-area a:hover {
	color: var(--fn-color-accent);
}

/* --- Logo + descripción (columna 1) --- */
.footer-area-1 img[alt="fnlogo"] {
	max-width: 170px;
	height: auto;
	margin-bottom: 12px;
}
.footer-info p {
	color: #cfcdc2;
	font-size: 13.5px;
}

/* --- Iconos sociales: cuadrado redondeado naranja --- */
.social-icons {
	display: flex;
	gap: 12px;
	margin-top: 10px;
}
.social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 8px;
	background: var(--fn-color-accent) !important;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.social-icon:hover {
	opacity: 0.85;
	transform: translateY(-2px);
}
.social-icon .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
	color: #fff !important;
}

/* --- Métodos de pago / envío (columna 2): tarjetas en fondo blanco --- */
.footer-area-2 .row.justify-content-center img {
	background: #fff;
	border-radius: 6px;
	padding: 6px;
}

/* --- Información de contacto (columna 3) --- */
.contact-icon .dashicons {
	font-size: 26px;
	width: 26px;
	height: 26px;
	color: var(--fn-color-accent) !important;
	margin-bottom: 8px;
}
.text-box p {
	margin: 0 0 4px;
	font-size: 13.5px;
	color: #cfcdc2;
}
.text-box a {
	color: #fff;
}
.text-box a:hover {
	color: var(--fn-color-accent);
}

/* --- Franja inferior: copyright + menú legal --- */
.site-footer__wrap {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding: 24px 0;
	max-width: 100%;
}
.footer-copyright {
	color: #cfcdc2;
	font-size: 13px;
}
.footer-menu__items {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.footer-menu__items a {
	color: #cfcdc2;
	font-size: 13px;
}
.footer-menu__items a:hover {
	color: var(--fn-color-accent);
}

/* --- Responsive --- */
@media (max-width: 767px) {
	.footer-widgets .row > [class*="col-"] {
		margin-bottom: 32px;
	}
	.space-between-content {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ==========================================================================
   PARCHE 31: contener imágenes sin tamaño (logo del footer) y forzar
   flujo normal en los iconos de contacto (algo los empujaba/superponía)
   ========================================================================== */
.footer-area img {
	max-width: 100%;
	height: auto;
}
.contact-icon {
	display: block;
	position: static;
	margin: 0 0 10px;
}
.text-box {
	position: static;
}

.dashicons,
.dashicons-before::before {
	font-family: dashicons !important;
}

/* PARCHE 32: el line-height heredado (54px) empujaba el glifo del
   icono hacia abajo dentro de su caja — se fuerza a 1 */
.social-icon .dashicons,
.contact-icon .dashicons {
	line-height: 1 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
}

/* ==========================================================================
   PARCHE 33 (v2): aviso de envío gratis — tarjeta naranja completa,
   sin residuos de fondo, + estilos para el modal emergente (ver JS)
   ========================================================================== */

.woocommerce-info:has(.fs-free-shipping-notice-and-button-wrapper) {
	position: sticky;
	top: 0;
	z-index: 300;
	background: var(--fn-color-accent, #f94200);
	border: none;
	border-radius: var(--fn-radius, 10px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
	padding: 18px 22px;
	margin: 0 0 24px;
	list-style: none;
}
/* Oculta CUALQUIER pseudo-elemento residual (icono "i" por defecto de
   WooCommerce, o cualquier ::after de fondo que asome por detrás) */
.woocommerce-info:has(.fs-free-shipping-notice-and-button-wrapper)::before,
.woocommerce-info:has(.fs-free-shipping-notice-and-button-wrapper)::after {
	content: none !important;
	display: none !important;
	background: none !important;
	box-shadow: none !important;
}
/* El contenedor que envuelve la lista de avisos tampoco debe dejar fondo */
.woocommerce-notices-wrapper {
	background: none !important;
	box-shadow: none !important;
}

.fs-free-shipping-notice-and-button-wrapper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
}

.fs-free-shipping-notice-text {
	font-size: 15px;
	font-weight: 700;
	color: #fff;
	margin-bottom: 10px;
}
.fs-free-shipping-notice-text::before {
	content: "🚚 ";
}
.fs-free-shipping-notice-text .woocommerce-Price-amount {
	color: #fff;
	text-decoration: underline;
}

/* --- Barra de progreso: blanca sobre fondo naranja --- */
.fs-free-shipping-notice-progress-bar-wrapper {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 280px;
	flex: 1;
}
.fs-free-shipping-notice-progress-bar {
	flex: 1;
	height: 12px;
	background: rgba(255, 255, 255, 0.3);
	border-radius: 999px;
	overflow: hidden;
}
.fs-free-shipping-notice-progress-bar span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: #fff;
	transition: width 0.5s ease;
}
.fs-free-shipping-notice-opening-value,
.fs-free-shipping-notice-closing-value {
	font-size: 12px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.85);
	white-space: nowrap;
}

/* --- Botón "Continuar comprando": blanco sobre el naranja --- */
.flexible-shipping-free-shipping-button {
	background: #fff !important;
	color: var(--fn-color-accent, #f94200) !important;
	border-radius: var(--fn-radius, 10px);
	padding: 10px 20px;
	font-size: 13px;
	white-space: nowrap;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.flexible-shipping-free-shipping-button:hover {
	transform: scale(1.03);
	opacity: 0.92;
}

@media (max-width: 640px) {
	.woocommerce-info:has(.fs-free-shipping-notice-and-button-wrapper) {
		padding: 14px 16px;
	}
	.fs-free-shipping-notice-and-button-wrapper {
		flex-direction: column;
		align-items: stretch;
	}
	.fs-free-shipping-notice-progress-bar-wrapper {
		min-width: 0;
	}
}

/* ==========================================================================
   Modal emergente: al cargar la página, se muestra una copia ampliada
   y centrada del aviso durante unos segundos, y luego se desvanece
   dejando ver el aviso normal ya colocado en su sitio (sticky arriba).
   ========================================================================== */
.hon-fs-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
	z-index: 9998;
	opacity: 0;
	transition: opacity 0.35s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.hon-fs-backdrop.is-visible {
	opacity: 1;
}
.hon-fs-modal {
	background: var(--fn-color-accent, #f94200);
	border-radius: 16px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
	padding: 32px;
	max-width: 480px;
	width: 100%;
	transform: scale(0.85);
	transition: transform 0.35s ease;
}
.hon-fs-backdrop.is-visible .hon-fs-modal {
	transform: scale(1);
}
.hon-fs-modal .fs-free-shipping-notice-text {
	font-size: 20px;
	text-align: center;
	margin-bottom: 18px;
}
.hon-fs-modal .fs-free-shipping-notice-and-button-wrapper {
	flex-direction: column;
	align-items: stretch;
}
.hon-fs-modal .flexible-shipping-free-shipping-button {
	display: none; /* en el modal no hace falta el botón, solo el aviso */
}

/* ==========================================================================
   PARCHE 34: animación de "respiración" discreta en el aviso sticky
   + "Continuar comprando" con aspecto de botón real
   ========================================================================== */

/* --- Respiración sutil: leve pulso de sombra y escala, muy lento --- */
.woocommerce-info:has(.fs-free-shipping-notice-and-button-wrapper) {
	animation: hon-fs-breathe 3.2s ease-in-out infinite;
}
@keyframes hon-fs-breathe {
	0%, 100% {
		box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
		transform: scale(1);
	}
	50% {
		box-shadow: 0 10px 32px rgba(249, 66, 0, 0.35);
		transform: scale(1.008);
	}
}
@media (prefers-reduced-motion: reduce) {
	.woocommerce-info:has(.fs-free-shipping-notice-and-button-wrapper) {
		animation: none;
	}
}

/* --- "Continuar comprando": botón real, no un enlace con relleno --- */
.flexible-shipping-free-shipping-button {
	display: inline-block;
	background: #fff !important;
	color: var(--fn-color-accent, #f94200) !important;
	border-radius: var(--fn-radius, 10px);
	padding: 12px 26px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	white-space: nowrap;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
	border: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.flexible-shipping-free-shipping-button:hover {
	transform: translateY(-2px) scale(1.02);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.24);
}
.flexible-shipping-free-shipping-button:active {
	transform: translateY(0) scale(0.98);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
/* PARCHE 35: contener el tamaño del logo del header — nunca tuvo
   límite propio en el CSS de Biona (solo lo teníamos para hon-theme) */
/*.site-logo img {
	max-height: 40px !important;
	width: auto !important;
	height: auto !important;
}*/
/* ==========================================================================
   PARCHE 36: la clase .space-between-content la reutiliza Biona tanto en
   el footer como en el header móvil. Se delimita cada una a su sitio
   (el bloque genérico anterior se ha eliminado más arriba).
   ========================================================================== */

/* Footer: la regla original, ahora delimitada a su sitio */
.site-footer__wrap .space-between-content {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
gap: 12px;
}

/* Header móvil: todo en una sola fila, sin envolver nunca */
.site-header__mobile .space-between-content {
	flex-direction: row !important;
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.site-header__mobile .mobile-menu-toggle-button {
display: none !important;
}
.site-header__mobile .menu-toggle-wrapper {
order: 1;
flex: none;
}
.site-header__mobile .site-branding {
order: 2;
flex: 1;
min-width: 0;
text-align: center;
}
.site-header__mobile .site-header__right_part {
order: 3;
flex: none;
display: flex;
align-items: center;
gap: 10px;
}

/* ==========================================================================
   PARCHE 37: corrige columnas desiguales en grids de producto (Novedades,
   Ofertas, Más vendidos, tienda, aminoácidos...). Causa: por defecto cada
   celda de CSS Grid tiene min-width:auto, que la obliga a medir como mínimo
   el ancho de su contenido más "pesado" (texto sin espacios, imagen, select
   de variaciones). Aunque el grid diga columnas iguales (1fr 1fr), el
   navegador le roba ancho a una columna para dárselo a la otra si su
   contenido lo "pide". min-width:0 elimina ese mínimo y fuerza el reparto
   real 1fr/1fr.
   ========================================================================== */
.fn-home-products-wrap .home-products .products li.product,
ul.products li.product,
.fn-intro__products ul.products li.product {
min-width: 0;
}

/* PATCH 38 — Desactivar guionado automático (rompía "Envío"->"En-vío", "Total"->"To-tal", etc.) */
body,
.cart_totals th,
.cart_totals td,
.woocommerce-loop-product__title,
.product_title,
.site-header__mobile .cart-contents,
#top-cart-trigger {
    hyphens: none !important;
    -webkit-hyphens: none !important;
    -ms-hyphens: none !important;
    overflow-wrap: normal;
    word-break: normal;
}

/* Que la etiqueta de "Envío" / "Total" en los totales del carrito no tenga que partirse */
.cart_totals th {
    white-space: nowrap;
    min-width: 70px;
}

/* PATCH 39 — Separar el tooltip de sabor del texto "Sabores :" */
.wvs-tooltip {
    margin-top: -4px; /* ajustar según el resultado visual real */
}

/* PATCH 40 — Margen del menú legal del footer en móvil */
@media (max-width: 480px) {
    .site-footer__bottom,
    .site-footer__legal-menu {
        padding-left: 20px;
        padding-right: 20px;
    }
}

/* PATCH 41 — MI CUENTA */
/* ══ 1. Icono de busqueda: fondo transparente e icono blanco ══ */
.site-header .dgwt-wcas-search-wrapp,
.site-header .js-dgwt-wcas-enable-mobile-form {
    background-color: transparent !important;
}

/* ══ 2. Minicarrito: right:-75% deja un 25% visible ══ */
.site-header .site-header__mobile .header-cart__content {
    right: -100%;
}

/* ══ 3. Menu movil con min-width de 400px ══ */
.main-navigation__vertical {
    min-width: 0;
}

/* ══ 4. Mi cuenta a ancho completo en movil ══ */
@media (max-width: 767px) {

    /* Anula el max-width:90% incrustado en la pagina */
    .woocommerce-account #content {
        max-width: 100% !important;
        margin: 24px auto 40px auto !important;
    }

    /* Rejilla y contenedores del tema */
    .woocommerce-account #primary,
    .woocommerce-account .col-xs-12,
    .woocommerce-account .site-main,
    .woocommerce-account .site-content__wrap,
    .woocommerce-account .fn-container,
    .woocommerce-account .container {
        padding-left: 0 !important;
        padding-right: 0 !important;
        max-width: 100% !important;
    }

    /* Unico margen lateral, minimo */
    .woocommerce-account .page-content {
        padding-left: 8px;
        padding-right: 8px;
    }

    /* Acceder y Registrarse, uno debajo del otro al 100% */
    .woocommerce-account .woocommerce .u-columns {
        display: block;
    }
    .woocommerce-account .woocommerce .u-column1,
    .woocommerce-account .woocommerce .u-column2 {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding: 0;
        margin: 0 0 36px;
    }

    /* Campos y botones */
    .woocommerce-account .woocommerce input,
    .woocommerce-account .woocommerce button {
        width: 100%;
        max-width: 100%;
    }
    .woocommerce-account .woocommerce input[type="text"],
    .woocommerce-account .woocommerce input[type="email"],
    .woocommerce-account .woocommerce input[type="password"] {
        padding-left: 12px;
        padding-right: 12px;
    }

    .woocommerce-account .cf-turnstile {
        max-width: 100%;
    }
}

/* ==========================================================================
   PARCHE 38: banner promocional inferior — ofertas activas de Discount
   Rules, rotando cada X segundos, cerrable de forma permanente (localStorage)
   ========================================================================== */
.hon-promo-banner {
	position: fixed;
	left: 50%;
	bottom: 20px;
	transform: translateX(-50%) translateY(140%);
	z-index: 400;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: min(92vw, 560px);
	background: var(--fn-color-primary, #1a1a1a);
	color: #fff;
	border-radius: var(--fn-radius, 10px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
	padding: 14px 18px;
	transition: transform 0.4s ease;
}
.hon-promo-banner.is-visible {
	transform: translateX(-50%) translateY(0);
}
.hon-promo-banner__img {
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 8px;
	object-fit: cover;
	background: rgba(255, 255, 255, 0.08);
}
.hon-promo-banner__img:not([src]) {
	display: none;
}
.hon-promo-banner__text {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	flex: 1 1 auto;
}
.hon-promo-banner__text::before {
	content: "🔥 ";
}
.hon-promo-banner__cta {
	flex: none;
	background: var(--fn-color-accent, #f94200);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	padding: 8px 14px;
	border-radius: var(--fn-radius, 10px);
	white-space: nowrap;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.hon-promo-banner__cta:hover {
	transform: scale(1.03);
	opacity: 0.92;
	color: #fff;
}
.hon-promo-banner__close {
	flex: none;
	background: none;
	border: none;
	color: rgba(255, 255, 255, 0.7);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	padding: 4px;
}
.hon-promo-banner__close:hover {
	color: #fff;
}
@media (prefers-reduced-motion: reduce) {
	.hon-promo-banner {
		transition: none;
	}
}
@media (max-width: 480px) {
	.hon-promo-banner {
		left: 12px;
		right: 12px;
		bottom: 12px;
		transform: translateY(140%);
		max-width: none;
	}
	.hon-promo-banner.is-visible {
		transform: translateY(0);
	}
}
/* ==========================================================================
   PARCHE 39: badge con el nombre de la promocion sobre cada tarjeta del
   bloque "Promociones" en home, para que el cliente sepa a que oferta
   pertenece el producto.
   ========================================================================== */
.fn-home-products-wrap .home-promo li.product {
position: relative;
}
.fn-promo-badge {
position: absolute;
top: 8px;
left: 8px;
z-index: 2;
background: var(--fn-color-accent);
color: #fff;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
padding: 4px 8px;
border-radius: 4px;
max-width: calc(100% - 16px);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* ==========================================================================
   PARCHE 41: Hero slider editable desde el editor de WordPress
   1 imagen -> hero fijo. 2+ imágenes -> slider con fade.
   Incluye reserva de espacio (evita CLS) y contain para rendimiento.
   ========================================================================== */

.fn-editor-content .wp-block-gallery.fn-hero-slider {
display: block;
position: relative;
width: 100%;
max-width: 100%;
margin: 0;
padding: 0;
overflow: hidden;
contain: layout;
}

.fn-editor-content .wp-block-gallery.fn-hero-slider .wp-block-image {
margin: 0;
width: 100%;
}

/* ---------- Modo imagen única ---------- */
.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--single .wp-block-image img {
display: block;
width: 100%;
height: auto;
}

/* ---------- Modo slider (2+) ---------- */
.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi {
aspect-ratio: 1983 / 793; /* reserva el espacio -> evita salto de layout (CLS) */
}

.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi .wp-block-image {
position: absolute;
inset: 0;
opacity: 0;
transition: opacity 0.8s ease;
z-index: 0;
}

.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi .wp-block-image.is-active {
opacity: 1;
z-index: 1;
}

.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi .wp-block-image:not(.is-active) {
pointer-events: none;
}

.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi .wp-block-image img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}

.fn-hero-slider__dots {
position: absolute;
left: 50%;
bottom: 16px;
transform: translateX(-50%);
display: flex;
gap: 8px;
z-index: 2;
}

.fn-hero-slider__dot {
width: 10px;
height: 10px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.5);
border: none;
cursor: pointer;
padding: 0;
}

.fn-hero-slider__dot.is-active {
background: #fff;
}

@media (prefers-reduced-motion: reduce) {
.fn-editor-content .wp-block-gallery.fn-hero-slider .wp-block-image {
transition: none;
}
}

@media (max-width: 640px) {
.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi {
aspect-ratio: 4 / 5;
}
}
/* ==========================================================================
   PARCHE 41: Hero slider editable desde el editor de WordPress
   1 imagen -> hero fijo. 2+ imágenes -> slider con fade.
   Incluye reserva de espacio (evita CLS) y contain para rendimiento.
   ========================================================================== */

.fn-editor-content .wp-block-gallery.fn-hero-slider {
display: block;
position: relative;
width: 100%;
max-width: 100%;
margin: 0;
padding: 0;
overflow: hidden;
contain: layout;
}

.fn-editor-content .wp-block-gallery.fn-hero-slider .wp-block-image {
margin: 0;
width: 100%;
}

/* ---------- Modo imagen única ---------- */
.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--single .wp-block-image img {
display: block;
width: 100%;
height: auto;
}

/* ---------- Modo slider (2+) ---------- */
.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi {
aspect-ratio: 1983 / 793; /* reserva el espacio -> evita salto de layout (CLS) */
}

.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi .wp-block-image {
position: absolute;
inset: 0;
opacity: 0;
transition: opacity 0.8s ease;
z-index: 0;
}

.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi .wp-block-image.is-active {
opacity: 1;
z-index: 1;
}

.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi .wp-block-image:not(.is-active) {
pointer-events: none;
}

.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi .wp-block-image img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}

.fn-hero-slider__dots {
position: absolute;
left: 50%;
bottom: 16px;
transform: translateX(-50%);
display: flex;
gap: 8px;
z-index: 2;
}

.fn-hero-slider__dot {
width: 10px;
height: 10px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.5);
border: none;
cursor: pointer;
padding: 0;
}

.fn-hero-slider__dot.is-active {
background: #fff;
}

@media (prefers-reduced-motion: reduce) {
.fn-editor-content .wp-block-gallery.fn-hero-slider .wp-block-image {
transition: none;
}
}

@media (max-width: 640px) {
.fn-editor-content .wp-block-gallery.fn-hero-slider.fn-hero-slider--multi {
aspect-ratio: 4 / 5;
}
}

/* Prueba de protocolo de backup — 2026-08-09 (sin efecto sobre estilos) */

/* ========================================================================
   PARCHE 42 — Hero slider: forzar ancho completo, anula el CSS responsive
   nativo del bloque Galería de Gutenberg (limita a ~50% en móvil por defecto)
   ========================================================================== */
.wp-block-gallery.fn-hero-slider,
.wp-block-gallery.fn-hero-slider .wp-block-image,
.wp-block-gallery.fn-hero-slider .wp-block-image img {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 100% !important;
}

.wp-block-gallery.fn-hero-slider.fn-hero-slider--single .wp-block-image img {
  height: auto;
  aspect-ratio: 1983 / 793;
  object-fit: cover;
}

/* ==========================================================================
   PARCHE 43 — Totales del carrito desbordados: el SCSS de Biona fija
   width:230px en la celda de envío (tr.shipping td), que no cabe con el
   texto real (descripción + dirección larga). Además .cart-collaterals
   competía en flex contra .woocommerce-cart-form sin ancho garantizado.
   Cambiamos a CSS Grid con minmax(): la columna de totales se adapta al
   contenido real dentro de un rango (mín 320px, máx 45% del espacio),
   en vez de un valor fijo — así futuros cambios de contenido no vuelven
   a desbordar.
   ========================================================================== */
.woocommerce-cart .woocommerce-cart-content {
display: grid !important;
grid-template-columns: minmax(0, 1fr) minmax(320px, 45%);
align-items: start;
gap: 30px;
}
.woocommerce-cart .woocommerce-cart-form {
width: 100%;
min-width: 0;
}
.woocommerce-cart .cart-collaterals {
width: 100%;
max-width: 100%;
min-width: 0;
margin: 0;
flex: none;
}
.woocommerce-cart .cart-collaterals .cart_totals table tr.shipping td {
width: auto !important;
max-width: 100%;
overflow-wrap: break-word;
}
.woocommerce-cart .cart-collaterals .cart_totals table tr,
.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce-cart .cart-collaterals .cart_totals table td {
min-width: 0;
}

@media (max-width: 767px) {
.woocommerce-cart .woocommerce-cart-content {
grid-template-columns: 1fr;
}
}

/* ==========================================================================
   PARCHE 44 — corrige dos efectos secundarios del PARCHE 43:
   1) El "Envío" (th) se solapaba con "Envío GLS (b2b)..." (td) porque
      PARCHE 43 le puso min-width:0 también a los <th>, colapsándolos
      dentro del display:flex heredado del tema. Los <th> deben conservar
      su ancho natural (el de su propio texto); solo los <td> deben poder
      encogerse y envolver el texto.
   2) Reduce el máximo de la columna de totales de 45% a 35%, y da más
      aire a la columna de productos, según ajuste solicitado.
   ========================================================================== */
.woocommerce-cart .woocommerce-cart-content {
grid-template-columns: minmax(0, 1fr) minmax(300px, 35%);
}

.woocommerce-cart .cart-collaterals .cart_totals table th {
flex: 0 0 auto !important;
min-width: auto !important;
white-space: nowrap;
}
.woocommerce-cart .cart-collaterals .cart_totals table td {
flex: 1 1 auto;
min-width: 0;
overflow-wrap: break-word;
}

/* ==========================================================================
   PARCHE 45 — corrige bug de cascada del PARCHE 43/44: la media query
   móvil (1 columna) estaba definida ANTES que la regla base del PARCHE 44
   (2 columnas), y con igual especificidad gana la que aparece después en
   el archivo — así que en móvil se seguían forzando 2 columnas con
   mínimo 300px, dejando la columna izquierda aplastada (texto partido
   letra a letra). Repetimos aquí, al final del archivo, el colapso a
   1 columna para que gane por orden de cascada.
   ========================================================================== */
@media (max-width: 767px) {
  .woocommerce-cart .woocommerce-cart-content {
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================================================
   PARCHE 46: desactivar guionado automático (hyphens) — rompía palabras
   por la mitad en header ("Carrito:"→"Ca-rrito:"), totales del carrito
   ("Envío"→"En-vío", "Total"→"To-tal") y títulos de producto en móvil
   (bug detectado en auditoría 27/07/2026, nunca llegó a aplicarse)
   ========================================================================== */
body {
-webkit-hyphens: none !important;
-ms-hyphens: none !important;
hyphens: none !important;
}

/* ==========================================================================
   PARCHE 50: iconos de métodos de pago del footer (Footer area 2, primer
   widget) solapándose y desbordando el bloque de al lado en Chrome — el
   HTML usa clases de Bootstrap (.row/.col-lg-4) que no tienen estilos
   reales en el sitio (Bootstrap no está cargado), así que se sustituyen
   por flexbox propio sobre la nueva clase .hon-payment-icons
   ========================================================================== */
.hon-payment-icons .row {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
	gap: 24px 32px;
}
.hon-payment-icons .row > div {
flex: 0 1 auto;
max-width: 140px;
width: auto;
}
.hon-payment-icons .row > div img {
display: block;
margin: 0 auto;
}

/* ==========================================================================
   PARCHE 51 (revisado): checkbox de terminos y condiciones - usa el
   checkbox nativo visible de WooCommerce (.woocommerce-form__label-for-checkbox).
   Fluid Checkout tiene sus propias reglas con !important (ej.
   align-items: flex-end) que cargan DESPUES de fn-home.css con la misma
   especificidad, asi que se sube la especificidad con el prefijo "body"
   para garantizar que esta regla gane siempre.
   (Nota: originalmente este parche tambien cubria .fc-checkbox-field,
   pero ese patron usa un checkbox oculto + ::before dibujado, y flex lo
   rompia. Ver PARCHE 52 para ese caso.)
   ========================================================================== */
body .woocommerce-checkout .woocommerce-form__label-for-checkbox.checkbox {
display: flex !important;
flex-wrap: wrap !important;
align-items: flex-start !important;
gap: 8px !important;
cursor: pointer;
line-height: 1.5 !important;
}
body .woocommerce-checkout .woocommerce-form__label-for-checkbox.checkbox input[type="checkbox"] {
flex: 0 0 auto !important;
width: 16px !important;
height: 16px !important;
margin: 3px 0 0 !important;
}
body .woocommerce-checkout .woocommerce-form__label-for-checkbox.checkbox .woocommerce-terms-and-conditions-checkbox-text {
flex: 1 1 auto !important;
}
body .woocommerce-checkout .woocommerce-form__label-for-checkbox.checkbox abbr.required {
display: none !important;
}
body .woocommerce-checkout .woocommerce-form__label-for-checkbox.checkbox:has(abbr.required) .woocommerce-terms-and-conditions-checkbox-text::after {
content: " *";
color: #b93030;
}

/* ==========================================================================
   PARCHE 52: checkbox "Crear una cuenta" (patron .fc-checkbox-field) -
   este patron usa un checkbox real oculto (display:none) y dibuja el
   cuadrado visual con un ::before position:absolute (22x22px) sobre
   .fc-checkbox-label-text. Los PARCHES 47/48/51 forzaban flex en este
   elemento tambien, lo cual dejaba el texto sin padding-left y tapado
   por el cuadrado. Se revierte a block + padding-left para dejarle
   hueco al cuadrado, respetando el sistema propio de Fluid Checkout.
   ========================================================================== */
body .fc-checkbox-field label.checkbox {
display: block !important;
position: relative;
}
body .fc-checkbox-field label.checkbox .fc-checkbox-label-text {
display: block !important;
position: relative;
padding-left: 32px !important;
flex: none !important;
}

/* ============ PARCHE 45: Filtro subtipo dentro de /etiqueta-producto/proteina/ ============ */
.hon-filtro-proteina {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin: 0 0 20px;
}

.hon-filtro-proteina__btn {
display: inline-block;
padding: 8px 18px;
border: 1px solid #ddd;
border-radius: 999px;
font-size: 14px;
text-decoration: none;
color: #333;
background: #fff;
transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.hon-filtro-proteina__btn:hover {
border-color: #999;
}

.hon-filtro-proteina__btn--activo {
background: #000;
border-color: #000;
color: #fff;
}

/* ==========================================================================
   PARCHE 53: Mega menú tipo HSN (18-sep-2026)
   Todo va bajo body.hon-mega-on, clase que sólo pone inc/hon-mega-menu.php
   con la opción hon_mega_menu en «on» (o en «preview» + ?hon_menu=preview).
   Con el interruptor en «off» este bloque no afecta a nada.
   Escritorio (>=1025px): cabecera en dos filas — logo + iconos arriba y
   barra de categorías debajo — con paneles anchos al pasar el ratón.
   Móvil: el drill-down de Biona, con las columnas abiertas dentro del panel.
   ========================================================================== */
@media (min-width: 1025px) {
	/* --- Cabecera en dos filas --- */
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) {
		padding-bottom: 0;
	}
	/* contexto para los paneles; sin pisar el position:fixed de la cabecera fija (.isStick) */
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile):not(.isStick) {
		position: relative;
	}
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .space-between-content {
		flex-wrap: wrap;
		position: static;
	}
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .site-branding {
		order: 1;
	}
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .site-header__right_part {
		order: 2;
		margin-left: auto;
	}
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .main-navigation__default {
		order: 3;
		/* Biona da a los hijos de .space-between-content 0,85rem de margen lateral
		   (y -0,85rem al contenedor): se conserva para alinear con los 50px de la cabecera */
		flex: 0 0 calc(100% - 1.7rem);
		max-width: calc(100% - 1.7rem);
		margin: 16px 0.85rem 0;
		text-align: left;
		position: static;
		border-top: 1px solid rgba(255, 255, 255, 0.12);
	}
	body.hon-mega-on .main-navigation__default .main-navigation-inner {
		position: static;
	}

	/* --- Barra de categorías --- */
	/* !important: al pasar a escritorio, responsive-menu.js de Biona (showMenu) pone
	   display:block en línea sobre el ul y anularía el flex */
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .main-navigation__default .hon-mega-menu {
		display: flex !important;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 0 28px;
		position: static;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li {
		position: static;
		margin: 0;
		padding: 0;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li > a {
		display: flex;
		align-items: center;
		height: 52px;
		padding: 0;
		font-size: 15px;
		font-weight: 500;
		color: #fff;
		white-space: nowrap;
		/* subrayado naranja con degradado: los pseudo-elementos ya los usa Biona para la flecha */
		background: linear-gradient(#f94200, #f94200) no-repeat left bottom / 0 3px;
		transition: color 0.15s ease, background-size 0.2s ease;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.menu-item-has-children > a {
		padding-right: 0;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.menu-item-has-children > a::before,
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.menu-item-has-children > a::after {
		display: none;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li:hover > a,
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li:focus-within > a,
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-open > a,
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.current-menu-item > a {
		color: #f94200 !important; /* el CSS adicional del personalizador pone el menú en blanco con !important */
		background-size: 100% 3px;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-destacado > a {
		color: #f94200 !important;
		font-weight: 600;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-cuenta {
		margin-left: auto;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-cuenta > a::before {
		content: "";
		width: 18px;
		height: 18px;
		margin-right: 8px;
		background-color: currentColor;
		-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2"><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 3.6-7 8-7s8 3 8 7"/></svg>') center / contain no-repeat;
		        mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2"><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 3.6-7 8-7s8 3 8 7"/></svg>') center / contain no-repeat;
	}

	/* --- Panel ancho --- */
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-mega-top > .hon-mega-panel {
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		width: auto;
		margin: 0;
		padding: 30px 50px 24px; /* 50px = padding lateral de .site-header__wrap en escritorio */
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(200px, 240px));
		gap: 8px 48px;
		text-align: left;
		background: #fff;
		border-top: 3px solid #f94200;
		border-radius: 0;
		box-shadow: 0 24px 40px rgba(0, 0, 0, 0.14);
		z-index: 99999;
		visibility: hidden;
		opacity: 0;
		transform: translateY(6px);
		transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-mega-top > .hon-mega-panel::after {
		display: none;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-mega-top:hover > .hon-mega-panel,
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-mega-top:focus-within > .hon-mega-panel,
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-mega-top.hon-open > .hon-mega-panel {
		visibility: visible;
		opacity: 1;
		transform: none;
		transition-delay: 0.08s, 0.08s, 0s;
	}

	/* Columnas: título + lista */
	body.hon-mega-on .main-navigation__default .hon-mega-col {
		display: block;
		padding: 0;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-col__title {
		display: block;
		width: auto;
		margin: 0 0 8px;
		padding: 0 0 10px;
		border-bottom: 1px solid #ececec;
		font-size: 12px;
		font-weight: 600;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: #191919;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-col > .sub-menu {
		position: static;
		left: auto;
		top: auto;
		display: block;
		margin: 0;
		padding: 0;
		background: none;
		box-shadow: none;
		border-radius: 0;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-col > .sub-menu::after {
		display: none;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-col > .sub-menu li {
		display: block;
		padding: 0;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-panel a {
		width: auto;
		padding: 6px 0;
		font-size: 15px;
		line-height: 1.35;
		color: #444;
		transition: color 0.15s ease;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-panel a:hover {
		color: #f94200;
	}

	/* Enlaces sueltos en rejilla (Marcas): fichas más juntas y todas de la misma altura.
	   Si el navegador no soporta :has() se queda con la rejilla de columnas normal. */
	body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-mega-top > .hon-mega-panel:has(> .hon-mega-link) {
		grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
		gap: 12px 16px;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-panel > .hon-mega-link {
		display: block;
		padding: 0;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-panel > .hon-mega-link > a {
		display: flex;
		align-items: center;
		height: 100%;
		min-height: 46px;
		padding: 10px 14px;
		border: 1px solid #ececec;
		border-radius: 8px;
		font-size: 13px;
		font-weight: 600;
		color: #191919;
		transition: color 0.15s ease, border-color 0.15s ease;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-panel > .hon-mega-link > a:hover {
		border-color: #f94200;
		color: #f94200;
	}

	/* «Ver todo» al pie del panel */
	body.hon-mega-on .main-navigation__default .hon-mega-panel > .hon-mega-all {
		display: block;
		grid-column: 1 / -1;
		margin-top: 16px;
		padding: 14px 0 0;
		border-top: 1px solid #ececec;
	}
	body.hon-mega-on .main-navigation__default .hon-mega-panel > .hon-mega-all > a {
		padding: 0;
		font-size: 14px;
		font-weight: 600;
		color: #f94200;
	}
}

/* --- Menú móvil (drill-down de Biona): columnas abiertas dentro del panel --- */
/* El panel sólo medía lo que la lista raíz y el nav tiene overflow:hidden, así que las
   subsecciones (position:absolute) se cortaban: con el menú antiguo, «Marcas» enseñaba
   5 de 13. Se estira el área desplazable (PARCHE 27) a toda la altura del panel
   (112px arriba + 20px abajo = padding del nav móvil de Biona). */
body.hon-mega-on .site-header__mobile .main-navigation__vertical .main-navigation-inner {
	min-height: calc(100vh - 132px);
	min-height: calc(100dvh - 132px);
}
body.hon-mega-on .main-navigation__vertical .hon-mega-all {
	display: none !important;
}
body.hon-mega-on .main-navigation__vertical .menu li.hon-mega-col {
	margin: 0 0 22px !important;
	padding: 0 !important;
	border-bottom: 0 !important;
}
body.hon-mega-on .main-navigation__vertical .hon-mega-col__title {
	display: block;
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #888;
}
/* .site-header + li: Biona pone position:absolute;top:0 a todo .sub-menu en el menú móvil con la misma especificidad */
body.hon-mega-on .site-header .main-navigation__vertical .menu li.hon-mega-col > .sub-menu {
	display: block;
	position: static;
	width: auto;
	transform: none;
}
body.hon-mega-on .site-header .main-navigation__vertical .menu li.hon-mega-col > .sub-menu li {
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 0 !important;
}
body.hon-mega-on .site-header .main-navigation__vertical .menu li.hon-mega-col > .sub-menu a {
	justify-content: flex-start;
	padding: 7px 0;
	font-size: 16px;
	font-weight: 500;
}
body.hon-mega-on .main-navigation__vertical .menu li.hon-destacado > a {
	color: #f94200;
}
/* ============ fin PARCHE 53 ============ */

/* ==========================================================================
   PARCHE 54: Mega menú en UNA sola fila (19-sep-2026)
   Pedido del usuario: logo | categorías | iconos en la misma línea, como antes
   del PARCHE 53. Sobrescribe la cabecera en dos filas del PARCHE 53 a partir
   de 1200px; entre 1025 y 1199px no cabe y sigue en dos filas.
   Medidas: la cabecera original mide 112px (28px arriba y abajo). Los enlaces
   de primer nivel bajan hasta el borde inferior de la cabecera para que el
   panel (top:100%) salga pegado y no se cierre al bajar el ratón.
   ========================================================================== */
@media (min-width: 1200px) {
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .space-between-content {
		flex-wrap: nowrap;
		align-items: flex-start;
	}
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .site-branding {
		order: 1;
		flex: 0 0 auto;
	}
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .main-navigation__default {
		order: 2;
		flex: 1 1 auto;
		max-width: none;
		min-width: 0;
		margin: 0 0.85rem;
		border-top: 0;
	}
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .site-header__right_part {
		order: 3;
		flex: 0 0 auto;
		margin-left: 0.85rem;
		margin-top: 12px; /* (56px del logo - 32px de los iconos) / 2 */
	}
	/* 56px de fila + 28px del antiguo padding inferior de la cabecera */
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .main-navigation__default .hon-mega-menu > li > a {
		height: 84px;
		padding-bottom: 28px;
		box-sizing: border-box;
	}
	/* categorías centradas entre el logo y «Mi cuenta» (pegada a los iconos) */
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .main-navigation__default .hon-mega-menu > li:first-child {
		margin-left: auto;
	}
}
/* «Mi cuenta» sólo con el icono cuando no hay sitio para el texto */
@media (min-width: 1200px) and (max-width: 1499px) {
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .main-navigation__default .hon-mega-menu > li.hon-cuenta > a {
		font-size: 0;
	}
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .main-navigation__default .hon-mega-menu > li.hon-cuenta > a::before {
		width: 20px;
		height: 20px;
		margin-right: 0;
	}
}
@media (min-width: 1200px) and (max-width: 1365px) {
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .main-navigation__default .hon-mega-menu {
		gap: 0 18px;
	}
	body.hon-mega-on .site-header__wrap:not(.site-header__mobile) .main-navigation__default .hon-mega-menu > li:not(.hon-cuenta) > a {
		font-size: 14px;
	}
}
/* ============ fin PARCHE 54 ============ */

/* ==========================================================================
   PARCHE 55: estética móvil tipo HSN (19-sep-2026)
   Cabecera: ☰ logo … cuenta cesta, y buscador ancho debajo; fija al
   hacer scroll. Menú lateral: barra negra con logo, flechas a la derecha,
   submenús con título y «Ver todo». Tarjetas de producto más compactas.
   Todo limitado a la cabecera móvil (.site-header__mobile, <1025px, la pone
   responsive-menu.js) o a max-width:767px.
   ========================================================================== */

/* --- Cabecera --- */
/* #page tiene overflow:hidden, que anula position:sticky; «clip» recorta igual sin
   crear contenedor de scroll (navegadores sin soporte: cabecera normal, no fija) */
@supports (overflow: clip) {
	@media (max-width: 1024px) {
		html body #page.site {
			overflow: clip;
		}
	}
}
html body .site-header:has(.site-header__mobile) {
	position: sticky;
	top: 0;
}
html body.admin-bar .site-header:has(.site-header__mobile) {
	top: var(--wp-admin--admin-bar--height, 46px);
}
html body .site-header .site-header__mobile.site-header__wrap {
	padding: 8px 16px 10px;
}
html body .site-header .site-header__mobile .space-between-content {
	flex-wrap: wrap;
	gap: 10px 12px;
	margin: 0;
}
html body .site-header .site-header__mobile .space-between-content > * {
	margin: 0;
}
html body .site-header .site-header__mobile .menu-toggle-wrapper {
	order: 1;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	width: auto;
	min-width: 0;
	margin-right: -4px; /* el logo trae ~12px de margen transparente a la izquierda */
}
html body .site-header .site-header__mobile .site-branding {
	order: 2;
	flex: 1 1 0;
	min-width: 0;
	max-width: none;
	text-align: left;
}
html body .site-header .site-header__mobile .site-branding img {
	width: auto;
	max-width: 100%;
	max-height: 32px;
}
/* los hijos (buscador y carrito) pasan a ser piezas sueltas de la fila */
html body .site-header .site-header__mobile .site-header__right_part {
	display: contents;
}
/* icono de «Mi cuenta» (template-parts/header/layout.php): sólo en la cabecera móvil */
html body .hon-header-account {
	display: none;
}
html body .site-header .site-header__mobile .hon-header-account {
	order: 3;
	position: relative;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	height: 36px;
	padding-right: 13px;
	color: #fff;
}
/* separador fino entre la cuenta y la cesta */
html body .site-header .site-header__mobile .hon-header-account::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 1px;
	height: 24px;
	transform: translateY(-50%);
	background: rgba(255, 255, 255, 0.3);
}
/* mismo tamaño visual que la cesta (29px; el dibujo ocupa todo el viewBox del SVG) */
html body .site-header .site-header__mobile .hon-header-account svg {
	width: 27px;
	height: 28px;
	fill: none;
}
html body .site-header .site-header__mobile .hon-header-account svg path,
html body .site-header .site-header__mobile .hon-header-account svg circle {
	fill: none;
	stroke: #fff;
}
html body .site-header .site-header__mobile .header-cart {
	order: 4;
	flex: 0 0 auto;
	margin-left: 10px; /* hueco para el contador naranja, que sobresale a la izquierda de la cesta */
	display: flex;
	justify-content: flex-end;
}
html body .site-header .site-header__mobile .header-cart__title {
	display: none;
}
/* Buscador: barra blanca a todo el ancho (abre el buscador a pantalla completa de FiboSearch) */
html:not(.dgwt-wcas-overlay-mobile-on) .site-header .site-header__mobile .dgwt-wcas-search-wrapp.dgwt-wcas-layout-icon {
	order: 5;
	flex: 0 0 100%;
	max-width: 100% !important;
	min-width: 0;
	margin: 0 !important;
}
html body .site-header .site-header__mobile .dgwt-wcas-search-wrapp > svg {
	display: none;
}
html body .site-header .site-header__mobile a.dgwt-wcas-search-icon {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	height: 40px;
	margin: 0;
	padding: 0 14px;
	background: #fff;
	border-radius: 10px;
}
html body .site-header .site-header__mobile a.dgwt-wcas-search-icon svg {
	flex: none;
	width: 18px;
	height: 18px;
}
html body .site-header .site-header__mobile a.dgwt-wcas-search-icon svg,
html body .site-header .site-header__mobile a.dgwt-wcas-search-icon svg path {
	fill: #777;
}
html body .site-header .site-header__mobile a.dgwt-wcas-search-icon::after {
	content: "¿Qué estás buscando?";
	font-size: 14px;
	color: #777;
	white-space: nowrap;
}
html body .site-header .site-header__mobile .dgwt-wcas-search-icon-arrow {
	display: none !important;
}

/* --- Menú lateral --- */
html body .site-header__style-3.site-header__mobile .header-vertical-menu-popup {
	background-color: rgba(0, 0, 0, 0.55);
}
html body .site-header__style-3.site-header__mobile .header-vertical-menu-popup__inner {
	display: block;
	width: min(88vw, 380px);
	min-width: 0;
	max-width: none;
	height: 100vh;
	height: 100dvh;
	margin: 0;
	box-shadow: 8px 0 30px rgba(0, 0, 0, 0.25);
	transform: translateX(-100%);
	transition: transform 0.28s ease;
}
html body.vertical-menu-active .site-header__style-3.site-header__mobile .header-vertical-menu-popup__inner {
	transform: none;
}
/* barra negra superior con el logo */
html body .site-header__style-3.site-header__mobile .header-vertical-menu-popup__inner::before {
	content: "";
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	right: 0;
	height: 60px;
	background: #000 url("/wp-content/uploads/2026/06/cropped-hon-logo.webp") no-repeat 20px center / auto 30px;
}
html body .site-header__mobile .header-vertical-menu-popup .menu-toggle-close,
html body.admin-bar .site-header__mobile .header-vertical-menu-popup .menu-toggle-close {
	z-index: 2;
	top: 15px;
	left: auto;
	right: 14px;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
}
html body .site-header__mobile .header-vertical-menu-popup .menu-toggle-close svg {
	width: 18px;
	height: 18px;
}
html body .site-header__mobile .header-vertical-menu-popup .menu-toggle-close svg path {
	fill: #fff;
	stroke: #fff;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical {
	min-width: 0;
	padding: 60px 0 0;
}
html body.hon-mega-on .site-header__mobile .main-navigation__vertical .main-navigation-inner {
	min-height: calc(100vh - 60px);
	min-height: calc(100dvh - 60px);
	max-height: calc(100vh - 60px) !important;
	max-height: calc(100dvh - 60px) !important;
	padding-bottom: 24px;
}
/* primer nivel */
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu > li:not(.menu-back-item):not(.menu-parent-item) {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid #efefef;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu > li > a {
	display: block;
	padding: 16px 44px 16px 20px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
}
/* flecha a la derecha en vez de hacia abajo */
html body .site-header .site-header__mobile .main-navigation__vertical .menu li.menu-item-has-children > a:after {
	content: "";
	top: 50%;
	right: 20px;
	width: 8px;
	height: 8px;
	border-top: 2px solid #191919;
	border-right: 2px solid #191919;
	transform: translateY(-50%) rotate(45deg);
}
/* «Mi cuenta»: separada y con icono */
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu > li.hon-cuenta {
	margin-top: 10px;
	border-top: 1px solid #efefef;
	background: #f7f7f7;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu > li.hon-cuenta > a {
	display: flex;
	align-items: center;
	gap: 10px;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu > li.hon-cuenta > a::before {
	content: "";
	width: 20px;
	height: 20px;
	background-color: currentColor;
	-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2"><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 3.6-7 8-7s8 3 8 7"/></svg>') center / contain no-repeat;
	        mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2"><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 3.6-7 8-7s8 3 8 7"/></svg>') center / contain no-repeat;
}
/* submenú: cabecera con flecha atrás + título, «Ver todo» y secciones */
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu .menu-item.active > .sub-menu {
	display: flex;
	flex-direction: column;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu li .sub-menu > li {
	order: 2;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu li .sub-menu > .menu-back-item {
	order: 0;
	top: 12px;
	left: 12px;
	z-index: 1;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu-back-btn {
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu-back-btn svg path {
	stroke: #191919;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu li .sub-menu > .menu-parent-item {
	order: 0;
	margin: 0;
	padding: 0 20px 0 52px;
	border-bottom: 1px solid #efefef;
}
html body .site-header__style-3.site-header__mobile .main-navigation__vertical .menu li .sub-menu > .menu-parent-item a {
	padding: 18px 0;
	font-size: 18px;
	font-weight: 700;
	color: #191919;
}
html body.hon-mega-on .site-header__mobile .main-navigation__vertical .menu li .sub-menu > .hon-mega-all {
	order: 1;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 0 !important;
}
html body.hon-mega-on .site-header__mobile .main-navigation__vertical .menu li .sub-menu > .hon-mega-all > a {
	padding: 14px 20px 6px;
	font-size: 14px;
	font-weight: 600;
	color: #f94200;
}
html body.hon-mega-on .site-header__mobile .main-navigation__vertical .menu li.hon-mega-col {
	margin: 18px 0 0 !important;
}
html body.hon-mega-on .site-header__mobile .main-navigation__vertical .hon-mega-col__title {
	margin: 0 0 4px;
	padding: 0 20px;
	font-size: 12px;
	font-weight: 700;
	color: #191919;
}
html body.hon-mega-on .site-header .site-header__mobile .main-navigation__vertical .menu li.hon-mega-col > .sub-menu a {
	padding: 9px 20px;
	font-size: 15px;
	font-weight: 400;
	color: #444;
}
/* Marcas (enlaces sueltos) */
html body.hon-mega-on .site-header__mobile .main-navigation__vertical .menu li .sub-menu > li.hon-mega-link {
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 1px solid #f3f3f3 !important;
}
html body.hon-mega-on .site-header__mobile .main-navigation__vertical .menu li .sub-menu > li.hon-mega-link > a {
	padding: 13px 20px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.02em;
}

/* --- Tarjetas de producto en móvil --- */
	/* Las rejillas de la portada son div.products y las de tienda ul.products: `.products` cubre las dos */
@media (max-width: 767px) {
	/* tres rellenos anidados (li 16px + 10px + 10px) dejaban el texto recortado */
	html body .products li.product {
		padding: 10px;
	}
	html body .products li.product .product-content,
html body .products li.product .product-content-desc {
		padding: 0;
	}
	html body .products li.product .product-description {
		width: 100% !important;
		max-width: 100%;
		margin: 0;
		left: auto;
		transform: none;
		text-align: left;
	}
	html body .products li.product .woocommerce-LoopProduct-link img {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 1 / 1;
		object-fit: contain;
	}
	/* !important: el PARCHE 26 fija título y botón con !important para toda la web */
	html body .products li.product h5.woocommerce-loop-product__title {
		margin: 8px 0 6px !important;
		padding: 0 !important;
		text-align: left;
		font-size: 13px !important;
		line-height: 1.35 !important;
		height: 2.7em;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
	html body .products li.product .price {
		display: block;
		text-align: left;
		font-size: 16px;
		font-weight: 700;
	}
	html body .products li.product .content-button {
		margin-top: 10px;
	}
	html body .products li.product .content-button a.button {
		padding: 10px 4px !important;
		font-size: 12px !important;
		letter-spacing: 0;
		text-transform: none !important;
		line-height: 1.25;
		border-radius: 8px !important;
	}

	/* móviles estrechos (360px): «Seleccionar opciones» no cabe a 12px */
	@media (max-width: 380px) {
		html body .products li.product .content-button a.button {
			font-size: 11px !important;
			padding: 10px 2px !important;
		}
	}

	/* banner promocional: deja sitio a la burbuja del chat (56px + 14px) */
	html body .hon-promo-banner {
		right: 82px;
		gap: 10px;
		padding: 10px 12px;
	}
	html body .hon-promo-banner__text {
		font-size: 12px;
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
	html body .hon-promo-banner__cta {
		padding: 7px 10px;
		font-size: 12px;
	}
}
/* --- Ficha de producto: la barra de compra fija (fn-buybar) baja al pie en móvil,
   porque arriba ahora está la cabecera fija. Cuando aparece, el banner de
   promociones y la burbuja del chat suben para no taparla. --- */
@media (max-width: 1024px) {
	html body .fn-buybar {
		top: auto;
		bottom: 0;
		transform: translateY(110%);
		box-shadow: 0 -2px 14px rgba(0, 0, 0, 0.12);
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}
	html body .fn-buybar.is-visible {
		transform: translateY(0);
	}
	html body .fn-buybar__inner {
		padding: 8px 16px;
	}
	html body:has(.fn-buybar.is-visible) .hon-promo-banner {
		bottom: calc(76px + env(safe-area-inset-bottom, 0px));
	}
	html body:has(.fn-buybar.is-visible) #hons-chat-widget {
		bottom: calc(76px + env(safe-area-inset-bottom, 0px));
	}
	html body .fn-buybar__title {
		max-width: none;
		font-size: 13px;
	}
}
/* ============ fin PARCHE 55 ============ */

/* ==========================================================================
   PARCHE 56: rejilla y estética unificadas (19-sep-2026)
   Basado en el análisis de MyProtein, Bulk, Prozis y HSN (informe en
   /home/debian/hons-audit-2026-09/staging-20260918/hontheme/):
   - UN solo contenedor para cabecera, contenido y pie: 1360px de contenido
     con 40px de margen (24px en tablet, 16px en móvil). Antes cada bloque
     tenía su ancho (logo a 50px, contenido 0..1440 o 240..1680, pie a 1200).
   - Escala tipográfica contenida (títulos de sección 26-34px, no 76px).
   - Tarjetas: texto más legible (15-17px), botones de 44px sin mayúsculas.
   - Ficha: galería 58% + compra 42% fija al hacer scroll; relacionados
     debajo a todo el ancho (single-product.php ya no los mete en la columna).
   ========================================================================== */
:root {
	--hon-max: 1360px;
	--hon-gutter: 40px;
	--hon-gap: 24px;
	--hon-ancho: calc(var(--hon-max) + 2 * var(--hon-gutter));
}
@media (max-width: 1024px) {
	:root {
		--hon-gutter: 24px;
		--hon-gap: 16px;
	}
}
@media (max-width: 767px) {
	:root {
		--hon-gutter: 16px;
		--hon-gap: 10px;
	}
}
/* sticky de la columna de compra: #page tiene overflow:hidden (ver PARCHE 55) */
@supports (overflow: clip) {
	html body #page.site {
		overflow: clip;
	}
}

/* --- 1. Contenedor único --- */
html body .site-content .site-content__wrap,
html body .site-content .container,
html body .fn-home .fn-container,
html body .fn-home .fn-home-products-wrap > *,
html body .fn-home .fn-section--intro > *,
html body .site-footer .site-footer__wrap.container {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--hon-ancho) !important;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--hon-gutter) !important;
	padding-right: var(--hon-gutter) !important;
}
/* contenedores anidados: sin doble margen */
html body .fn-home .fn-home-products-wrap > * .fn-container,
html body .fn-home .fn-section--intro > * .fn-container,
html body .fn-product .site-main {
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
/* Bootstrap de Biona: columnas con 0,85rem de relleno pero filas sin margen negativo,
   así que todo quedaba 14px hacia dentro del contenedor */
html body .site-content .row {
	width: calc(100% + 1.7rem);
	max-width: none;
	margin-left: -0.85rem;
	margin-right: -0.85rem;
}
/* cabecera móvil/tablet con el mismo margen lateral que el contenido */
@media (max-width: 1024px) {
	html body .site-header .site-header__mobile.site-header__wrap {
		padding-left: var(--hon-gutter);
		padding-right: var(--hon-gutter);
	}
}
/* el banner principal también dentro de la columna, con esquinas redondeadas */
html body .fn-home .fn-editor-content .fn-container {
	max-width: var(--hon-ancho) !important;
	padding-left: var(--hon-gutter) !important;
	padding-right: var(--hon-gutter) !important;
}
html body .fn-home .fn-section.fn-editor-content {
	padding-top: 24px;
	padding-bottom: 8px;
}
html body .fn-home .fn-editor-content .wp-block-gallery img {
	border-radius: 14px;
}
/* cabecera de escritorio alineada con el contenido */
@media (min-width: 1025px) {
	html body .site-header .site-header__wrap:not(.site-header__mobile) {
		padding-left: max(var(--hon-gutter), calc((100% - var(--hon-max)) / 2));
		padding-right: max(var(--hon-gutter), calc((100% - var(--hon-max)) / 2));
	}
	html body.hon-mega-on .main-navigation__default .hon-mega-menu > li.hon-mega-top > .hon-mega-panel {
		padding-left: max(var(--hon-gutter), calc((100% - var(--hon-max)) / 2));
		padding-right: max(var(--hon-gutter), calc((100% - var(--hon-max)) / 2));
	}
}

/* --- 2. Tipografía --- */
html body .fn-home-products-wrap .home-products h2,
html body .fn-home-products-wrap .fn-section__title,
html body .fn-home .fn-section__title,
html body .fn-home .fn-intro__title {
	margin: 0 0 20px;
	font-size: clamp(24px, 2.3vw, 34px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
	text-align: left;
}
html body .fn-home .fn-section {
	padding-top: clamp(28px, 4vw, 56px);
	padding-bottom: clamp(28px, 4vw, 56px);
}
html body .site-content h1.page-title,
html body .site-content .woocommerce-products-header__title {
	font-size: clamp(24px, 2.4vw, 34px);
	font-weight: 700;
	text-align: left;
	letter-spacing: -0.01em;
}
/* el punto naranja de los títulos acompaña al título alineado a la izquierda */
html body .site-content h1.page-title:before {
	left: 0;
	transform: none;
}
/* descripción de la ficha: el editor mete un h1 enorme con el nombre */
html body .fn-product .woocommerce-Tabs-panel h1 {
	font-size: clamp(22px, 2vw, 28px) !important;
	line-height: 1.2 !important;
}
html body .fn-product .woocommerce-Tabs-panel h2 {
	font-size: clamp(18px, 1.5vw, 21px) !important;
}

/* --- 3. Tarjetas de producto (tablet y escritorio; el móvil está en el PARCHE 55) --- */
html body .products {
	gap: var(--hon-gap) !important;
}
@media (min-width: 768px) {
	html body .products li.product {
		padding: 14px !important;
	}
	html body .products li.product .product-content,
	html body .products li.product .product-content-desc {
		padding: 0 !important;
	}
	html body .products li.product .product-description {
		width: 100% !important;
		max-width: 100%;
		text-align: left;
	}
	html body .products li.product .woocommerce-LoopProduct-link img {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 1 / 1;
		object-fit: contain;
	}
	html body .products li.product .star-rating {
		margin-left: 0;
		margin-right: auto;
	}
	html body .products li.product h5.woocommerce-loop-product__title {
		margin: 12px 0 6px !important;
		padding: 0 !important;
		text-align: left;
		font-size: 15px !important;
		font-weight: 600 !important;
		line-height: 1.35 !important;
		height: 2.7em;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
	html body .products li.product .price {
		text-align: left;
		font-size: 17px !important;
		font-weight: 700 !important;
	}
	html body .products li.product .content-button a.button {
		padding: 12px 10px !important;
		font-size: 14px !important;
		line-height: 1.4;
		text-transform: none !important;
		letter-spacing: 0;
	}
}

/* --- 4. Ficha de producto --- */
@media (min-width: 992px) {
	html body .fn-product div.product > .row > .col-md-6:first-child {
		flex: 0 0 58%;
		max-width: 58%;
		width: 58%;
	}
	html body .fn-product div.product > .row > .col-md-6:last-child {
		flex: 0 0 42%;
		max-width: 42%;
		width: 42%;
		position: sticky;
		top: 24px;
	}
	html body .fn-product .related.products {
		clear: both;
		width: 100%;
		margin-top: 48px;
	}
	html body .fn-product .related.products > h2 {
		font-size: clamp(22px, 2vw, 28px) !important;
		text-align: left !important;
		margin: 0 0 20px !important;
	}
	html body .fn-product .related.products ul.products {
		display: grid !important;
		grid-template-columns: repeat(4, 1fr) !important;
	}
}
/* botón principal de compra: sin mayúsculas, como el resto */
html body .fn-product .single_add_to_cart_button,
html body .fn-buybar__btn {
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-size: 16px !important;
}
/* ============ fin PARCHE 56 ============ */

/* ==========================================================================
   PARCHE 57: densidad de escritorio, pie de página y botón «Ver carrito»
   (20-sep-2026)
   - Escritorio: todo un punto más contenido (la ficha era lo más exagerado:
     título y precio a 36px y galería de 817px de alto).
   - Móvil: no se toca, ya estaba bien.
   - Tras «Añadir al carrito», el enlace «Ver carrito» SUSTITUYE al botón en
     vez de aparecer debajo con otro formato.
   - Pie de página reordenado (ver también los widgets del pie).
   ========================================================================== */

/* --- 1. Escala de escritorio --- */
@media (min-width: 1025px) {
	html body .fn-home .fn-section {
		padding-top: clamp(20px, 3vw, 40px);
		padding-bottom: clamp(20px, 3vw, 40px);
	}
	html body .fn-home-products-wrap .home-products h2,
	html body .fn-home-products-wrap .fn-section__title,
	html body .fn-home .fn-section__title,
	html body .fn-home .fn-intro__title {
		font-size: clamp(20px, 1.8vw, 26px);
		margin-bottom: 16px;
	}
	html body .site-content h1.page-title,
	html body .site-content .woocommerce-products-header__title {
		font-size: clamp(22px, 1.9vw, 28px);
	}
	/* Tarjetas: un punto menos de todo */
	html body .products {
		gap: 20px !important;
	}
	html body .products li.product {
		padding: 12px !important;
	}
	html body .products li.product h5.woocommerce-loop-product__title {
		margin: 10px 0 4px !important;
		font-size: 14px !important;
	}
	html body .products li.product .price {
		font-size: 16px !important;
	}
	/* en rejillas anchas (relacionados) la foto crecía hasta 325px de alto */
	html body .products li.product .woocommerce-LoopProduct-link img {
		max-height: 240px;
	}
	html body .products li.product .content-button a.button,
	html body .products li.product a.added_to_cart {
		padding: 10px 8px !important;
		font-size: 13px !important;
	}
	/* Ficha de producto */
	html body .fn-product .product_title {
		font-size: clamp(22px, 2vw, 28px) !important;
		line-height: 1.2;
	}
	html body .fn-product .summary .price {
		font-size: clamp(20px, 1.8vw, 26px) !important;
	}
	html body .fn-product .woocommerce-product-details__short-description {
		font-size: 15px;
	}
	/* la galería ocupaba 817px de alto: se limita y la foto se ajusta dentro */
	html body .fn-product .woocommerce-product-gallery__image img {
		max-height: 520px;
		object-fit: contain;
	}
	html body .fn-product .single_add_to_cart_button {
		padding: 12px 20px !important;
		font-size: 15px !important;
	}
}

/* --- 2. «Ver carrito» sustituye al botón, con el mismo formato --- */
html body .products li.product .content-button a.button.added,
html body .products li.product a.button.added {
	display: none !important;
}
/* !important: el tema lo oculta con .products.products-grid .product-content .added_to_cart */
html body .products li.product a.added_to_cart {
	display: block !important;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 12px 10px;
	text-align: center;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.4;
	text-decoration: none;
	border-radius: 8px;
	background: var(--fn-color-accent);
	color: #fff;
	transition: opacity 0.2s ease;
}
html body .products li.product a.added_to_cart:hover {
	opacity: 0.92;
	color: #fff;
}

/* --- 2b. Etiqueta de promoción: si la tarjeta ya lleva «¡Oferta!», baja para no solaparse --- */
html body li.product:has(.onsale) .fn-promo-badge {
	top: 40px;
}
html body li.product .fn-promo-badge {
	max-width: calc(100% - 16px);
}

/* --- 3. Pie de página --- */
html body .site-footer .footer-widgets {
	margin-top: 0;
	padding-top: 40px;
}
html body .site-footer .footer-area h4,
html body .site-footer .footer-area .widgettitle {
	margin: 0 0 14px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
}
html body .site-footer .footer-info p {
	margin: 14px 0 18px;
	font-size: 14px;
	line-height: 1.6;
	color: #bdbdbd;
}
/* Listas de enlaces (Comprar / Ayuda) */
html body .site-footer .hon-foot-cols {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
html body .site-footer .hon-foot-links {
	margin: 0;
	padding: 0;
	list-style: none;
}
html body .site-footer .hon-foot-links li {
	margin: 0 0 8px;
	padding: 0;
	border: 0;
}
html body .site-footer .hon-foot-links a {
	font-size: 14px;
	line-height: 1.5;
	color: #bdbdbd;
	text-decoration: none;
}
html body .site-footer .hon-foot-links a:hover {
	color: #fff;
}
/* Datos de contacto */
html body .site-footer .hon-foot-contacto p {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.6;
	color: #bdbdbd;
}
html body .site-footer .hon-foot-contacto a {
	color: #fff;
	text-decoration: none;
}
html body .site-footer .hon-foot-contacto a:hover {
	color: var(--fn-color-accent);
}
html body .site-footer .hon-foot-contacto strong {
	color: #fff;
}
/* Sellos de pago y envío, en fila y pequeños */
html body .site-footer .hon-foot-sellos {
	margin-top: 22px;
}
html body .site-footer .hon-foot-sellos__t {
	display: block;
	margin: 0 0 8px;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #8a8a8a;
}
html body .site-footer .hon-foot-sellos__fila {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}
html body .site-footer .hon-foot-sellos__fila img {
	height: 26px;
	width: auto;
	border-radius: 4px;
	background: #fff;
	padding: 2px 4px;
	box-sizing: content-box;
}
/* Redes */
html body .site-footer .social-icons {
	justify-content: flex-start;
	gap: 12px;
}

/* --- 4. El color de la barra de envío gratis se cambió en el CSS adicional (naranja #f94200) --- */
/* ============ fin PARCHE 57 ============ */

/* ==========================================================================
   PARCHE 58: bloque de garantías de la ficha (20-sep-2026)
   Lo imprime el hook de functions.php tras el botón de compra.
   ========================================================================== */
html body .hon-ficha-garantias {
	margin: 22px 0 0;
	padding: 16px 18px;
	list-style: none;
	background: #f7f7f7;
	border-radius: 10px;
}
html body .hon-ficha-garantias li {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0 0 10px;
	padding: 0;
	font-size: 14px;
	line-height: 1.45;
	color: #4a4a4a;
	border: 0;
}
html body .hon-ficha-garantias li:last-child {
	margin-bottom: 0;
}
html body .hon-ficha-garantias__ico {
	flex: 0 0 auto;
	font-size: 15px;
}
html body .hon-ficha-garantias__txt strong {
	color: #191919;
	font-weight: 600;
}
@media (max-width: 767px) {
	html body .hon-ficha-garantias {
		padding: 14px;
	}
	html body .hon-ficha-garantias li {
		font-size: 13px;
	}
}
/* ============ fin PARCHE 58 ============ */
