/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Bützmann Brand Colors */
:root {
    --hello-elementor-accent-color: #5CB85C;
    --butzmann-green: #5CB85C;
    --butzmann-dark: #2B2B2B;
    --butzmann-grey: #7A7A7A;
}

/* Override Hello Theme defaults */
a { color: var(--butzmann-green); }
a:hover { color: var(--butzmann-dark); }

/* WooCommerce & General Buttons */
button, .button, input[type='submit'] {
    background-color: var(--butzmann-green) !important;
}

button:hover, .button:hover, input[type='submit']:hover {
    background-color: var(--butzmann-dark) !important;
}

/* Quitar rosa del tema padre */
[type=button], [type=submit], button{
    border-color: #fff !important;
    color: #fff !important;
}

/* Acordeón Bützmann: estado abierto (details[open]) */
.elementor .bz-acc-item[open] {
	border-block-start-color: var(--e-global-color-primary);
}
.elementor .bz-acc-item[open] .bz-acc-icon {
	transform: rotate(45deg);
}
.elementor .bz-acc-header::-webkit-details-marker {
	display: none;
}

/* Scroll horizontal: mientras la sección está fijada, el espaciador de GSAP
   se pinta del mismo gris para que no aparezca un hueco blanco debajo. */
.pin-spacer:has(> .bz-hscroll) {
	background-color: var(--e-global-color-butzmann_grey_light);
}

/* Tienda: tarjetas de categoría apiladas al hacer scroll (solo CSS, sin JS).
   Solo en escritorio y con altura de ventana suficiente para que la tarjeta quepa entera
   (tarjeta más alta ≈ 700px + top 80px de la 5ª → mín. 780px de alto). */
@media (min-width: 1025px) and (min-height: 780px) {
	.elementor .bz-shop-card {
		position: sticky;
		top: var(--bz-stack-top, 32px);
	}
	.elementor .bz-shop-card:nth-child(2) { top: calc(var(--bz-stack-top, 32px) + 12px); }
	.elementor .bz-shop-card:nth-child(3) { top: calc(var(--bz-stack-top, 32px) + 24px); }
	.elementor .bz-shop-card:nth-child(4) { top: calc(var(--bz-stack-top, 32px) + 36px); }
	.elementor .bz-shop-card:nth-child(5) { top: calc(var(--bz-stack-top, 32px) + 48px); }
}

/* Franja «Los más vendidos» (shortcode [bz_top_ventas], inc/top-ventas.php).
   El fondo y el H2 de la franja son clases globales de Elementor (bz-top*). */
.bz-top-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bz-top-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 16px;
	background-color: var(--e-global-color-accent);
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(11, 11, 11, 0.12);
}
.bz-top-media {
	position: relative;
	overflow: hidden;
	border-radius: 12px;
	background-color: var(--e-global-color-accent);
}
.bz-top-main {
	display: block;
	aspect-ratio: 1 / 1;
}
.bz-top-main img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform 0.5s ease, opacity 0.15s ease;
}
.bz-top-main img.is-fading {
	opacity: 0;
}
@media (hover: hover) {
	.bz-top-card:hover .bz-top-main img {
		transform: scale(1.06);
	}
}
.bz-top-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 1;
	padding: 6px 12px;
	border-radius: 999px;
	background-color: var(--e-global-color-butzmann_black);
	color: var(--e-global-color-accent);
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-transform: uppercase;
	pointer-events: none;
}
.bz-top-thumbs {
	display: flex;
	gap: 8px;
	margin-top: 12px;
	overflow-x: auto;
	scrollbar-width: none;
}
.bz-top-thumbs::-webkit-scrollbar {
	display: none;
}
.bz-top-card .bz-top-thumb {
	flex: 0 0 calc((100% - 24px) / 4);
	aspect-ratio: 1 / 1;
	margin: 0;
	padding: 4px;
	border: 1px solid var(--e-global-color-butzmann_grey_light);
	border-radius: 8px;
	background-color: var(--e-global-color-accent) !important;
	cursor: pointer;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.bz-top-card .bz-top-thumb:hover {
	background-color: var(--e-global-color-accent) !important;
	border-color: var(--e-global-color-text);
}
.bz-top-card .bz-top-thumb[aria-pressed="true"] {
	border-color: var(--e-global-color-primary);
	box-shadow: inset 0 0 0 1px var(--e-global-color-primary);
}
.bz-top-card .bz-top-thumb:focus-visible {
	outline: 2px solid var(--e-global-color-secondary);
	outline-offset: 2px;
}
.bz-top-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.bz-top-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 6px;
	margin-top: 16px;
}
.bz-top-cat {
	margin: 0;
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 0.875rem;
	line-height: 1.3;
}
.bz-top-cat a {
	color: var(--e-global-color-text);
	text-decoration: none;
}
.bz-top-cat a:hover {
	color: var(--e-global-color-primary);
}
.bz-top-title {
	margin: 0;
	font-family: var(--e-global-typography-primary-font-family), sans-serif;
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.25;
}
.bz-top-title a {
	color: var(--e-global-color-secondary);
	text-decoration: none;
}
.bz-top-title a:hover {
	color: var(--e-global-color-primary);
}
.bz-top-price {
	margin: 4px 0 0;
	color: var(--e-global-color-secondary);
	font-family: var(--e-global-typography-primary-font-family), sans-serif;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
}
.bz-top-price small {
	color: var(--e-global-color-text);
	font-size: 0.75rem;
	font-weight: 400;
}
.bz-top-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: auto;
	padding-top: 12px;
}
.bz-top-card .bz-top-btn {
	display: inline-flex;
	justify-content: center;
	width: 100%;
	padding: 12px 16px;
	border: 0;
	border-radius: 8px;
	color: var(--e-global-color-accent);
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.2s ease;
}
.bz-top-card .bz-top-btn:hover,
.bz-top-card .bz-top-btn:focus-visible {
	color: var(--e-global-color-accent);
}
@media (max-width: 1024px) {
	.bz-top-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
/* Móvil: carrusel deslizable con el dedo (scroll-snap, sin JS). */
@media (max-width: 767px) {
	.bz-top-grid {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 82%;
		gap: 16px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		padding-bottom: 8px;
	}
	.bz-top-grid::-webkit-scrollbar {
		display: none;
	}
	.bz-top-card {
		scroll-snap-align: start;
	}
}
@media (prefers-reduced-motion: reduce) {
	.bz-top-main img {
		transition: none;
	}
}

/* Pilares fijados (página «Nuestros compromisos»): clases globales bz-steps*, script assets/js/steps.js.
   Fondo fijo de la sección (composición «Universo Bützmann», ID 1022) como estilo local en Elementor.
   Por defecto (móvil/tablet/sin JS) los pasos se ven apilados.
   En escritorio el script añade .is-pinned: la sección ocupa la pantalla, se fija y cada paso
   cambia la tarjeta de texto. El contenido va en la columna izquierda para dejar ver la esfera. */
.pin-spacer:has(> .bz-steps) {
	background-color: var(--e-global-color-butzmann_black);
}
.elementor .bz-steps.is-pinned {
	display: flex;
	align-items: center;
	height: 100vh;
}
.elementor .bz-steps.is-pinned .bz-steps-inner {
	width: 100%;
	gap: 40px;
	padding-block: 64px;
}
.elementor .bz-steps.is-pinned .bz-steps-head,
.elementor .bz-steps.is-pinned .bz-steps-body {
	max-width: 560px;
}
.elementor .bz-steps.is-pinned .bz-steps-body {
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.elementor .bz-steps.is-pinned .bz-steps-nav {
	display: flex;
}
.elementor .bz-steps.is-pinned .bz-steps-nav-item {
	font-size: 2rem;
}
.elementor .bz-steps.is-pinned .bz-steps-nav-item.is-active {
	color: var(--e-global-color-accent);
}
.elementor .bz-steps.is-pinned .bz-steps-nav-item:focus-visible {
	outline: 2px solid var(--e-global-color-primary);
	outline-offset: 4px;
}
.elementor .bz-steps.is-pinned .bz-steps-panels {
	display: grid;
}
.elementor .bz-steps.is-pinned .bz-steps-panel {
	grid-area: 1 / 1;
}
.elementor .bz-steps.is-pinned .bz-steps-card {
	padding: 28px 32px;
	border-radius: 16px;
	border-inline-start: 3px solid var(--e-global-color-primary);
	background-color: rgba(11, 11, 11, 0.6);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	opacity: 0;
	visibility: hidden;
	transform: translateY(16px);
	transition: opacity 0.5s ease, transform 0.5s ease, visibility 0s linear 0.5s;
}
.elementor .bz-steps.is-pinned .bz-steps-panel.is-active .bz-steps-card {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity 0.5s ease 0.15s, transform 0.5s ease 0.15s, visibility 0s;
}
/* Marca de verificación (círculo verde del kit + check blanco, assets/img/check-verificado.svg)
   delante de cada compromiso en la lista lateral (índice) de escritorio. */
.elementor .bz-steps.is-pinned .bz-steps-nav-item {
	display: flex;
	align-items: center;
	gap: 0.55em;
}
.elementor .bz-steps.is-pinned .bz-steps-nav-item::before {
	content: "";
	flex: 0 0 auto;
	width: 1.05em;
	height: 1.05em;
	border-radius: 50%;
	background: var(--e-global-color-primary) url("/wp-content/themes/butzmann/assets/img/check-verificado.svg") center / 80% no-repeat;
}
.elementor .bz-steps.is-pinned .bz-steps-nav-item::before {
	width: 0.8em;
	height: 0.8em;
	opacity: 0.35;
	transition: opacity 0.3s;
}
.elementor .bz-steps.is-pinned .bz-steps-nav-item.is-active::before,
.elementor .bz-steps.is-pinned .bz-steps-nav-item:hover::before {
	opacity: 1;
}
/* Escritorio: contenido más a la izquierda para dar protagonismo a la esfera del fondo. */
.elementor .bz-steps.is-pinned .bz-steps-inner {
	max-width: none;
	margin-inline: 0;
	padding-inline: clamp(24px, 5vw, 96px);
}
.elementor .bz-steps.is-pinned .bz-steps-head,
.elementor .bz-steps.is-pinned .bz-steps-body {
	max-width: 520px;
}

/* Franja «Los más vendidos»: reflejos de acero inoxidable sobre el verde.
   Líneas a ~18º (ángulo del gradiente 162deg), en tres haces: arriba-derecha, centro y abajo-izquierda.
   Cada línea tiene 1px de transición en los bordes para que no se vea pixelada; grosor mínimo 2px.
   Colores del kit: w = blanco, k = negro, g = gris acero (text), s = gris oscuro (secondary), l = gris acero claro. */
.elementor .bz-top {
	--bz-steel-w: var(--e-global-color-accent);
	--bz-steel-k: var(--e-global-color-butzmann_black);
	--bz-steel-g: var(--e-global-color-text);
	--bz-steel-s: var(--e-global-color-secondary);
	--bz-steel-l: color-mix(in srgb, var(--e-global-color-butzmann_grey_light) 55%, var(--e-global-color-text));
	background-image:
		linear-gradient(162deg, transparent calc(50% - 207px), color-mix(in srgb, var(--bz-steel-w) 90%, transparent) calc(50% - 206px), color-mix(in srgb, var(--bz-steel-w) 90%, transparent) calc(50% - 204px), transparent calc(50% - 203px)),
		linear-gradient(162deg, transparent calc(50% - 185px), color-mix(in srgb, var(--bz-steel-g) 85%, transparent) calc(50% - 184px), color-mix(in srgb, var(--bz-steel-g) 85%, transparent) calc(50% - 180px), transparent calc(50% - 179px)),
		linear-gradient(162deg, transparent calc(50% - 171px), color-mix(in srgb, var(--bz-steel-s) 70%, transparent) calc(50% - 170px), color-mix(in srgb, var(--bz-steel-s) 70%, transparent) calc(50% - 168px), transparent calc(50% - 167px)),
		linear-gradient(162deg, transparent calc(50% - 153px), color-mix(in srgb, var(--bz-steel-l) 70%, transparent) calc(50% - 152px), color-mix(in srgb, var(--bz-steel-l) 70%, transparent) calc(50% - 146px), transparent calc(50% - 145px)),
		linear-gradient(162deg, transparent calc(50% - 135px), color-mix(in srgb, var(--bz-steel-g) 70%, transparent) calc(50% - 134px), color-mix(in srgb, var(--bz-steel-g) 70%, transparent) calc(50% - 132px), transparent calc(50% - 131px)),
		linear-gradient(162deg, transparent calc(50% - 45px), color-mix(in srgb, var(--bz-steel-g) 75%, transparent) calc(50% - 44px), color-mix(in srgb, var(--bz-steel-g) 75%, transparent) calc(50% - 41px), transparent calc(50% - 40px)),
		linear-gradient(162deg, transparent calc(50% - 23px), color-mix(in srgb, var(--bz-steel-w) 70%, transparent) calc(50% - 22px), color-mix(in srgb, var(--bz-steel-w) 70%, transparent) calc(50% - 20px), transparent calc(50% - 19px)),
		linear-gradient(162deg, transparent calc(50% + 5px), color-mix(in srgb, var(--bz-steel-k) 60%, transparent) calc(50% + 6px), color-mix(in srgb, var(--bz-steel-k) 60%, transparent) calc(50% + 9px), transparent calc(50% + 10px)),
		linear-gradient(162deg, transparent calc(50% + 25px), color-mix(in srgb, var(--bz-steel-l) 45%, transparent) calc(50% + 26px), color-mix(in srgb, var(--bz-steel-l) 45%, transparent) calc(50% + 34px), transparent calc(50% + 35px)),
		linear-gradient(162deg, transparent calc(50% + 45px), color-mix(in srgb, var(--bz-steel-g) 70%, transparent) calc(50% + 46px), color-mix(in srgb, var(--bz-steel-g) 70%, transparent) calc(50% + 48px), transparent calc(50% + 49px)),
		linear-gradient(162deg, transparent calc(50% + 203px), color-mix(in srgb, var(--bz-steel-w) 90%, transparent) calc(50% + 204px), color-mix(in srgb, var(--bz-steel-w) 90%, transparent) calc(50% + 207px), transparent calc(50% + 208px)),
		linear-gradient(162deg, transparent calc(50% + 227px), color-mix(in srgb, var(--bz-steel-g) 80%, transparent) calc(50% + 228px), color-mix(in srgb, var(--bz-steel-g) 80%, transparent) calc(50% + 233px), transparent calc(50% + 234px)),
		linear-gradient(162deg, transparent calc(50% + 245px), color-mix(in srgb, var(--bz-steel-k) 55%, transparent) calc(50% + 246px), color-mix(in srgb, var(--bz-steel-k) 55%, transparent) calc(50% + 248px), transparent calc(50% + 249px)),
		linear-gradient(162deg, transparent calc(50% + 261px), color-mix(in srgb, var(--bz-steel-l) 75%, transparent) calc(50% + 262px), color-mix(in srgb, var(--bz-steel-l) 75%, transparent) calc(50% + 265px), transparent calc(50% + 266px)),
		linear-gradient(162deg, transparent calc(50% + 283px), color-mix(in srgb, var(--bz-steel-s) 60%, transparent) calc(50% + 284px), color-mix(in srgb, var(--bz-steel-s) 60%, transparent) calc(50% + 286px), transparent calc(50% + 287px)),
		linear-gradient(162deg, transparent calc(50% + 303px), color-mix(in srgb, var(--bz-steel-g) 60%, transparent) calc(50% + 304px), color-mix(in srgb, var(--bz-steel-g) 60%, transparent) calc(50% + 308px), transparent calc(50% + 309px)),
		linear-gradient(162deg, transparent calc(50% - 270px), color-mix(in srgb, var(--bz-steel-w) 26%, transparent) calc(50% - 205px), transparent calc(50% - 140px)),
		linear-gradient(162deg, transparent calc(50% - 70px), color-mix(in srgb, var(--bz-steel-w) 14%, transparent) calc(50% - 20px), transparent calc(50% + 40px)),
		linear-gradient(162deg, transparent calc(50% + 140px), color-mix(in srgb, var(--bz-steel-w) 30%, transparent) calc(50% + 205px), transparent calc(50% + 270px)),
		linear-gradient(162deg, transparent calc(50% + 280px), color-mix(in srgb, var(--bz-steel-l) 18%, transparent) calc(50% + 330px), transparent calc(50% + 400px));
	background-repeat: no-repeat;
}

/* Plantilla de categoría de producto (Theme Builder 1053, clases globales bz-cat*, bz-pcard*).
   Respaldo para categorías sin datos: oculta imágenes ACF vacías y el loop de subcategorías sin hijas. */
.elementor .bz-cat img:not([src]),
.elementor .bz-cat-body > :is(h2, p):empty,
.elementor .bz-pcard-body > p:empty {
	display: none;
}
.elementor .bz-cat:has(> img.bz-cat-media:not([src])) {
	grid-template-columns: 1fr;
	justify-items: center;
}
.elementor .bz-cat-subcats:not(:has([role="listitem"])) {
	display: none;
}
/* Tarjeta de producto: enlace de la categoría (sobre el título). */
.elementor .bz-pcard-cat a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}
.elementor .bz-pcard-cat a:hover,
.elementor .bz-pcard-cat a:focus-visible {
	color: var(--e-global-color-primary);
}

/* =====================================================================
   Ficha de producto (Theme Builder 1108, clases globales bz-prod*, bz-pinfo*, bz-mini*, bz-xsell*).
   Galería [bz_galeria], ventajas [bz_ventajas] e inc/producto.php. Widgets de WooCommerce de
   Elementor Pro: precio, añadir al carrito, meta y pestañas (clases bz-buy-*, bz-tabs).
   ===================================================================== */

/* Campos vacíos (definición, descripción corta) y «Más opciones» sin productos. */
.elementor .bz-prod-body > :is(h2, p):empty,
.elementor .bz-mini-body > p:empty {
	display: none;
}
.elementor .bz-pinfo-aside:not(:has(.bz-mini)) {
	display: none;
}
.elementor .bz-pinfo-inner:not(:has(.bz-mini)) {
	grid-template-columns: minmax(0, 1fr);
}

/* Migas de pan (Yoast). */
.elementor .bz-crumbs {
	color: var(--e-global-color-text);
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 0.8125rem;
	line-height: 1.4;
}
.elementor .bz-crumbs a {
	color: var(--e-global-color-text);
	text-decoration: none;
}
.elementor .bz-crumbs a:hover,
.elementor .bz-crumbs a:focus-visible {
	color: var(--e-global-color-primary);
}
.elementor .bz-crumbs .breadcrumb_last {
	color: var(--e-global-color-secondary);
	font-weight: 600;
}

/* Categoría (párrafo con aspecto de H3): enlace. */
.elementor .bz-prod-cat a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}
.elementor .bz-prod-cat a:hover,
.elementor .bz-prod-cat a:focus-visible {
	color: var(--e-global-color-primary);
}

/* Galería: foto principal + columna de miniaturas con el mismo alto (scroll si no caben). */
.bz-gallery {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 96px;
	gap: 12px;
}
.bz-gallery--single {
	grid-template-columns: minmax(0, 1fr);
}
.bz-gallery-main {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border: 1px solid var(--e-global-color-butzmann_grey_light);
	border-radius: 16px;
	background-color: var(--e-global-color-accent);
}
.bz-gallery-open {
	display: block;
	width: 100%;
	height: 100%;
	cursor: zoom-in;
}
.bz-gallery-main img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: opacity 0.15s ease;
}
.bz-gallery-main img.is-fading {
	opacity: 0;
}
.bz-gallery-zoom {
	position: absolute;
	right: 12px;
	bottom: 12px;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: var(--e-global-color-accent);
	box-shadow: 0 2px 10px rgba(11, 11, 11, 0.14);
	color: var(--e-global-color-secondary);
	pointer-events: none;
	transition: color 0.2s ease;
}
.bz-gallery-open:hover .bz-gallery-zoom {
	color: var(--e-global-color-primary);
}
.bz-gallery-open:focus-visible {
	outline: 2px solid var(--e-global-color-secondary);
	outline-offset: -4px;
}
.bz-gallery-thumbs {
	display: flex;
	flex-direction: column;
	gap: 8px;
	contain: size;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: var(--e-global-color-text) transparent;
}
.bz-gallery .bz-gallery-thumb {
	flex: 0 0 auto;
	width: 100%;
	aspect-ratio: 1 / 1;
	margin: 0;
	padding: 4px;
	border: 1px solid var(--e-global-color-butzmann_grey_light);
	border-radius: 8px;
	background-color: var(--e-global-color-accent) !important;
	cursor: pointer;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.bz-gallery .bz-gallery-thumb:hover {
	background-color: var(--e-global-color-accent) !important;
	border-color: var(--e-global-color-text);
}
.bz-gallery .bz-gallery-thumb[aria-pressed="true"] {
	border-color: var(--e-global-color-primary);
	box-shadow: inset 0 0 0 1px var(--e-global-color-primary);
}
.bz-gallery .bz-gallery-thumb:focus-visible {
	outline: 2px solid var(--e-global-color-secondary);
	outline-offset: 1px;
}
.bz-gallery-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
@media (min-width: 768px) and (max-width: 1024px) {
	.bz-gallery-main {
		aspect-ratio: 4 / 3;
	}
}
@media (max-width: 767px) {
	.bz-gallery {
		grid-template-columns: minmax(0, 1fr);
	}
	.bz-gallery-thumbs {
		flex-direction: row;
		contain: none;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: none;
	}
	.bz-gallery-thumbs::-webkit-scrollbar {
		display: none;
	}
	.bz-gallery .bz-gallery-thumb {
		width: 72px;
	}
}
/* Visor PhotoSwipe. */
.bz-pswp {
	--pswp-bg: var(--e-global-color-butzmann_black);
}
.bz-pswp .pswp__button {
	background-color: transparent !important;
}

/* Ventajas: entrega, sin gastos de envío y garantía. */
.bz-perks {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
}
.bz-perk {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--e-global-color-secondary);
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.3;
}
.bz-perk-icon {
	flex: none;
	box-sizing: content-box;
	width: 22px;
	height: 22px;
	padding: 9px;
	border-radius: 50%;
	background-color: var(--e-global-color-butzmann_grey_light);
	color: var(--e-global-color-primary);
}

/* Valoraciones (solo aparecen si el producto tiene). */
.woocommerce div.product .bz-prod-rating .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 0.875rem;
}
.woocommerce div.product .bz-prod-rating .star-rating {
	margin: 0;
	color: var(--e-global-color-primary);
}
.woocommerce div.product .bz-prod-rating .woocommerce-review-link {
	color: var(--e-global-color-text);
}

/* Bloque de compra. */
.woocommerce div.product .bz-prod-buy .price {
	margin: 0;
	color: var(--e-global-color-secondary);
	font-family: var(--e-global-typography-primary-font-family), sans-serif;
	font-size: 1.75rem;
	font-weight: 800;
	line-height: 1.2;
}
.woocommerce div.product .bz-prod-buy .price del {
	margin-right: 8px;
	color: var(--e-global-color-text);
	font-size: 1.125rem;
	font-weight: 600;
	opacity: 1;
}
.woocommerce div.product .bz-prod-buy .price ins {
	text-decoration: none;
}
.woocommerce div.product .bz-prod-buy .price small,
.woocommerce div.product .bz-prod-buy .price .woocommerce-price-suffix {
	color: var(--e-global-color-text);
	font-size: 0.875rem;
	font-weight: 500;
}
.woocommerce div.product .bz-prod-buy form.cart {
	margin: 0;
}
.woocommerce div.product .bz-prod-buy form.cart:not(.variations_form),
.woocommerce div.product .bz-prod-buy .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
}
.woocommerce div.product .bz-prod-buy form.cart::before,
.woocommerce div.product .bz-prod-buy form.cart::after,
.woocommerce div.product .bz-prod-buy .woocommerce-variation-add-to-cart::before,
.woocommerce div.product .bz-prod-buy .woocommerce-variation-add-to-cart::after {
	display: none;
}
.woocommerce div.product .bz-prod-buy form.cart div.quantity {
	float: none;
	margin: 0;
}
.woocommerce div.product .bz-prod-buy .quantity .qty {
	width: 5rem;
	height: 52px;
	padding: 0 8px;
	border: 1px solid var(--e-global-color-text);
	border-radius: 8px;
	background-color: var(--e-global-color-accent);
	color: var(--e-global-color-secondary);
	font-size: 1rem;
	font-weight: 700;
	text-align: center;
}
.woocommerce div.product .bz-prod-buy .single_add_to_cart_button {
	flex: 1 1 220px;
	float: none;
	min-height: 52px;
	margin: 0;
	padding: 0 24px;
	border: 0;
	border-radius: 8px;
	color: var(--e-global-color-accent);
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.2;
	transition: background-color 0.2s ease;
}
.woocommerce div.product .bz-prod-buy .single_add_to_cart_button.disabled {
	opacity: 0.45;
}
.woocommerce div.product .bz-prod-buy table.variations {
	width: 100%;
	margin: 0 0 16px;
	border: 0;
	border-collapse: collapse;
}
.woocommerce div.product .bz-prod-buy table.variations tr {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 12px;
}
.woocommerce div.product .bz-prod-buy table.variations th,
.woocommerce div.product .bz-prod-buy table.variations td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	line-height: 1.3;
	text-align: left;
}
.woocommerce div.product .bz-prod-buy table.variations label {
	color: var(--e-global-color-secondary);
	font-size: 0.875rem;
	font-weight: 700;
}
.woocommerce div.product .bz-prod-buy table.variations select {
	width: 100%;
	min-width: 0;
	height: 48px;
	margin: 0;
	padding: 0 40px 0 14px;
	border: 1px solid var(--e-global-color-text);
	border-radius: 8px;
	background-color: var(--e-global-color-accent);
	color: var(--e-global-color-secondary);
	font-size: 1rem;
}
.woocommerce div.product .bz-prod-buy .reset_variations {
	display: inline-block;
	margin-top: 8px;
	color: var(--e-global-color-text);
	font-size: 0.8125rem;
}
.woocommerce div.product .bz-prod-buy .single_variation_wrap .woocommerce-variation {
	margin-bottom: 12px;
}
.woocommerce div.product .bz-prod-buy .woocommerce-variation-price .price {
	font-size: 1.5rem;
}
.woocommerce div.product .bz-prod-buy .stock {
	margin: 0 0 12px;
	font-size: 0.875rem;
	font-weight: 700;
}
.woocommerce div.product .bz-prod-buy .stock.in-stock {
	color: var(--e-global-color-primary);
}
.woocommerce div.product .bz-buy-meta .product_meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	color: var(--e-global-color-text);
	font-size: 0.8125rem;
	line-height: 1.4;
}
.woocommerce div.product .bz-buy-meta .product_meta a {
	color: inherit;
}
.woocommerce div.product .bz-buy-meta .product_meta a:hover {
	color: var(--e-global-color-primary);
}

/* Pestañas de WooCommerce (descripción, información adicional, valoraciones). */
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 4px 32px;
	margin: 0 0 28px;
	padding: 0;
	overflow-x: auto;
	border-bottom: 1px solid var(--e-global-color-butzmann_grey_light);
	scrollbar-width: none;
}
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs::-webkit-scrollbar {
	display: none;
}
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs li::after {
	display: none;
}
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs li {
	flex: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs li a {
	display: block;
	margin-bottom: -1px;
	padding: 12px 0;
	border-bottom: 3px solid transparent;
	color: var(--e-global-color-text);
	font-family: var(--e-global-typography-primary-font-family), sans-serif;
	font-size: 1.0625rem;
	font-weight: 700;
	white-space: nowrap;
	transition: color 0.2s ease, border-color 0.2s ease;
}
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs li a:hover,
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs li a:focus-visible {
	color: var(--e-global-color-secondary);
}
.woocommerce div.product .bz-tabs .woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--e-global-color-primary);
	color: var(--e-global-color-secondary);
}
.woocommerce div.product .bz-tabs .woocommerce-tabs .panel {
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--e-global-color-secondary);
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 1rem;
	line-height: 1.7;
}
.woocommerce div.product .bz-tabs .woocommerce-tabs .panel > h2:first-child {
	margin: 0 0 16px;
	color: var(--e-global-color-secondary);
	font-family: var(--e-global-typography-primary-font-family), sans-serif;
	font-size: 1.5rem;
	font-weight: 800;
	line-height: 1.25;
}
.woocommerce div.product .bz-tabs table.shop_attributes {
	margin: 0;
	border-top: 1px solid var(--e-global-color-butzmann_grey_light);
}
.woocommerce div.product .bz-tabs table.shop_attributes th,
.woocommerce div.product .bz-tabs table.shop_attributes td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--e-global-color-butzmann_grey_light);
	background: none;
	font-style: normal;
	text-align: left;
}
.woocommerce div.product .bz-tabs table.shop_attributes th {
	width: 35%;
	color: var(--e-global-color-secondary);
	font-weight: 700;
}
.woocommerce div.product .bz-tabs table.shop_attributes td p {
	margin: 0;
	padding: 0;
}

/* «Más opciones»: precio de la tarjeta reducida. */
.elementor .bz-mini-price del {
	margin-right: 6px;
	color: var(--e-global-color-text);
	font-size: 0.8125rem;
	font-weight: 500;
}
.elementor .bz-mini-price ins {
	text-decoration: none;
}

/* Botón «Ver ficha producto» de las tarjetas [bz_top_ventas] en páginas de WooCommerce:
   «.woocommerce a.button» (gris, inline-block, alineado a la izquierda) ganaba por especificidad. */
.bz-top-card .bz-top-actions a.bz-top-btn,
.bz-top-card .bz-top-actions a.bz-top-btn:hover,
.bz-top-card .bz-top-actions a.bz-top-btn:focus-visible {
	color: var(--e-global-color-accent);
}
.bz-top-card .bz-top-actions a.bz-top-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
/* Carrusel ([bz_top_ventas carrusel="1"]) — franja «Tenemos todo lo que necesitas». */
.bz-top-carousel {
	position: relative;
}
.bz-top-grid.bz-top-grid--carousel {
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 72px) / 4);
	padding: 4px 0 12px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.bz-top-grid--carousel::-webkit-scrollbar {
	display: none;
}
.bz-top-grid--carousel .bz-top-card {
	scroll-snap-align: start;
}
.bz-top-carousel .bz-top-nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	box-shadow: 0 4px 16px rgba(11, 11, 11, 0.3);
	color: var(--e-global-color-accent);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color 0.2s ease, opacity 0.2s ease;
}
.bz-top-carousel .bz-top-nav[hidden] {
	display: none;
}
.bz-top-carousel .bz-top-prev {
	left: -20px;
}
.bz-top-carousel .bz-top-next {
	right: -20px;
}
.bz-top-carousel .bz-top-nav:disabled {
	opacity: 0;
	pointer-events: none;
}
.bz-top-carousel .bz-top-nav:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 2px;
}
@media (max-width: 1024px) {
	.bz-top-grid.bz-top-grid--carousel {
		grid-auto-columns: calc((100% - 24px) / 2.15);
	}
}
@media (max-width: 767px) {
	.bz-top-grid.bz-top-grid--carousel {
		grid-auto-columns: 82%;
		gap: 16px;
	}
	.bz-top-carousel .bz-top-nav {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bz-gallery-main img,
	.bz-gallery .bz-gallery-thumb {
		transition: none;
	}
}


/* Home – franja de soluciones (scroll horizontal): enlace «Ver máquinas» al final del párrafo. */
.elementor .bz-hscroll-text a {
	color: var(--e-global-color-primary);
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.elementor .bz-hscroll-text a:hover,
.elementor .bz-hscroll-text a:focus-visible {
	color: var(--e-global-color-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}


/* =====================================================================
   Cabecera (Theme Builder «Cabecera – Bützmann», clases globales bz-header*,
   shortcodes [bz_cesta] y [bz_menu_movil] de inc/cabecera.php, assets/js/cabecera.js).
   Fija arriba; se compacta al hacer scroll y se oculta mientras una sección
   está fijada por GSAP (clase html.bz-header-hidden).
   ===================================================================== */
:root {
	--bz-header-h: 72px;
	--bz-header-h-compact: 64px;
	/* Elementos sticky del sitio (tienda, ficha de producto): debajo de la cabecera compacta. */
	--bz-stack-top: calc(var(--bz-header-h-compact) + var(--wp-admin--admin-bar--height, 0px) + 24px);
}
@media (max-width: 1024px) {
	:root {
		--bz-header-h: 64px;
		--bz-header-h-compact: 56px;
	}
}
html {
	scroll-padding-top: calc(var(--bz-header-h-compact) + 16px);
}
body:not(.elementor-editor-active):has(> .elementor-location-header) {
	padding-top: var(--bz-header-h);
}
body:not(.elementor-editor-active) > .elementor-location-header {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	left: 0;
	right: 0;
	z-index: 990;
	transition: top 0.3s ease;
}
html.bz-header-hidden body:not(.elementor-editor-active) > .elementor-location-header {
	top: calc(-1 * var(--bz-header-h) - 8px);
}
.elementor .bz-header {
	transition: box-shadow 0.25s ease;
}
html.bz-scrolled .elementor .bz-header {
	box-shadow: 0 1px 0 rgb(255 255 255 / 0.08), 0 8px 24px rgb(0 0 0 / 0.25);
}
.elementor .bz-header-inner {
	height: var(--bz-header-h);
	transition: height 0.25s ease;
}
html.bz-scrolled .elementor .bz-header-inner {
	height: var(--bz-header-h-compact);
}
.elementor .bz-header-logo {
	display: block;
	height: 34px;
	width: auto;
	transition: height 0.25s ease;
}
html.bz-scrolled .elementor .bz-header-logo {
	height: 30px;
}
@media (max-width: 767px) {
	.elementor .bz-header-logo,
	html.bz-scrolled .elementor .bz-header-logo {
		height: 28px;
	}
}

/* Enlaces de escritorio (e-button): colores fijos (el tema pone a:hover en gris oscuro). */
.elementor .bz-header-link,
.elementor .bz-header-link:visited {
	color: var(--e-global-color-accent);
}
.elementor .bz-header-link:hover,
.elementor .bz-header-link:focus-visible,
.elementor .bz-header-nav .bz-header-link[aria-current] {
	color: var(--e-global-color-primary);
}
.elementor .bz-header-link:focus-visible,
.bz-cart:focus-visible,
.bz-burger:focus-visible,
.bz-drawer :focus-visible {
	outline: 2px solid var(--e-global-color-primary);
	outline-offset: 3px;
}
/* Iconos de teléfono y Mi cuenta (máscara: toman el color del texto). */
.elementor .bz-header-tel::before,
.elementor .bz-header-account::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--bz-ico) center / contain no-repeat;
	mask: var(--bz-ico) center / contain no-repeat;
}
.elementor .bz-header-tel {
	--bz-ico: url(/wp-content/themes/butzmann/assets/img/icono-telefono.svg);
}
.elementor .bz-header-account {
	--bz-ico: url(/wp-content/themes/butzmann/assets/img/icono-usuario.svg);
}
/* Widget Shortcode con la cesta y la hamburguesa. */
.elementor .bz-header-tools .elementor-shortcode {
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Escritorio estrecho: el teléfono no cabe. */
@media (min-width: 1025px) and (max-width: 1199px) {
	.elementor .bz-header-tel {
		display: none;
	}
}

/* Texto solo para lectores de pantalla. */
.bz-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.bz-ico {
	display: block;
	flex: none;
	width: 20px;
	height: 20px;
}

/* Cesta: píldora verde (texto negro para contraste AA). */
.bz-cart,
.bz-cart:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 44px;
	min-width: 44px;
	padding: 0 14px;
	border-radius: 999px;
	background-color: var(--e-global-color-primary);
	color: var(--e-global-color-butzmann_black);
	font-family: var(--e-global-typography-primary-font-family), sans-serif;
	font-size: 0.9375rem;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.bz-cart:not(.has-items) {
	padding: 0;
}
.bz-cart:hover,
.bz-cart:focus-visible {
	background-color: var(--e-global-color-accent);
	color: var(--e-global-color-butzmann_black);
}
.bz-cart-count[hidden] {
	display: none;
}

/* Hamburguesa y botones del cajón: anulan el fondo verde global de button (con !important). */
.bz-burger,
.bz-drawer-close,
.bz-drawer-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 44px;
	height: 44px;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 8px;
	background-color: transparent !important;
	color: var(--e-global-color-accent);
	box-shadow: none;
	cursor: pointer;
}
.bz-burger:hover,
.bz-drawer-close:hover,
.bz-drawer-toggle:hover {
	background-color: rgb(255 255 255 / 0.08) !important;
	color: var(--e-global-color-primary);
}
.bz-burger .bz-ico,
.bz-drawer-close .bz-ico {
	width: 26px;
	height: 26px;
}
.bz-burger {
	display: none;
}
@media (max-width: 1024px) {
	.bz-burger {
		display: inline-flex;
	}
}

/* Cajón lateral (tablet y móvil). El JS lo mueve al final de <body>. */
.bz-drawer {
	position: fixed;
	inset: 0;
	top: var(--wp-admin--admin-bar--height, 0px); /* solo con la barra de administración */
	z-index: 1000;
	font-family: var(--e-global-typography-text-font-family), sans-serif;
}
.bz-drawer[hidden] {
	display: none;
}
html.bz-drawer-open {
	overflow: hidden;
}
.bz-drawer-backdrop {
	position: absolute;
	inset: 0;
	background-color: rgb(0 0 0 / 0.6);
	opacity: 0;
	transition: opacity 0.3s ease;
}
.bz-drawer-panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(420px, 100%);
	padding: 0 24px 32px;
	background-color: var(--e-global-color-butzmann_black);
	color: var(--e-global-color-accent);
	overflow-y: auto;
	overscroll-behavior: contain;
	transform: translateX(100%);
	transition: transform 0.3s ease;
}
.bz-drawer.is-open .bz-drawer-backdrop {
	opacity: 1;
}
.bz-drawer.is-open .bz-drawer-panel {
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.bz-drawer-backdrop,
	.bz-drawer-panel,
	body:not(.elementor-editor-active) > .elementor-location-header,
	.elementor .bz-header-inner,
	.elementor .bz-header-logo {
		transition: none;
	}
}
.bz-drawer-head {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: space-between;
	height: var(--bz-header-h);
	margin-right: -10px;
	border-bottom: 1px solid rgb(255 255 255 / 0.12);
}
.bz-drawer-title {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 0.65);
}
.bz-drawer-menu,
.bz-drawer-sub,
.bz-drawer-contact ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bz-drawer-menu > .bz-drawer-item {
	border-bottom: 1px solid rgb(255 255 255 / 0.12);
}
.bz-drawer-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-right: -10px;
}
.bz-drawer a {
	color: var(--e-global-color-accent);
	text-decoration: none;
}
.bz-drawer a:hover,
.bz-drawer a[aria-current] {
	color: var(--e-global-color-primary);
}
.bz-drawer-row > a {
	flex: 1;
	min-width: 0;
	padding: 16px 0;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.3;
}
.bz-drawer-sub .bz-drawer-row > a {
	padding: 10px 0;
	font-size: 1rem;
	font-weight: 600;
	color: rgb(255 255 255 / 0.85);
}
.bz-drawer-sub .bz-drawer-row > a:hover,
.bz-drawer-sub .bz-drawer-row > a[aria-current] {
	color: var(--e-global-color-primary);
}
.bz-drawer-subwrap {
	padding: 0 0 12px;
}
.bz-drawer-subwrap[hidden] {
	display: none;
}
.bz-drawer-sub .bz-drawer-subwrap {
	margin-left: 4px;
	padding: 0 0 6px 14px;
	border-left: 1px solid rgb(255 255 255 / 0.15);
}
.bz-drawer-toggle .bz-ico {
	transition: transform 0.2s ease;
}
.bz-drawer-toggle[aria-expanded="true"] .bz-ico {
	transform: rotate(180deg);
}
.bz-drawer-account {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 16px 0;
	font-size: 1.125rem;
	font-weight: 700;
	border-bottom: 1px solid rgb(255 255 255 / 0.12);
}
.bz-drawer-contact {
	margin-top: auto;
	padding-top: 32px;
}
.bz-drawer-label {
	margin: 0 0 14px;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 0.65);
}
.bz-drawer-contact ul {
	display: grid;
	gap: 12px;
	margin-bottom: 24px;
}
.bz-drawer-contact li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 0.9375rem;
	line-height: 1.4;
	color: rgb(255 255 255 / 0.85);
}
.bz-drawer-contact li .bz-ico {
	width: 18px;
	height: 18px;
	margin-top: 1px;
	color: var(--e-global-color-primary);
}
.bz-drawer .bz-drawer-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	border-radius: 999px;
	background-color: var(--e-global-color-primary);
	color: var(--e-global-color-butzmann_black);
	font-size: 1rem;
	font-weight: 800;
	transition: background-color 0.2s ease;
}
.bz-drawer .bz-drawer-cta:hover,
.bz-drawer .bz-drawer-cta:focus-visible {
	background-color: var(--e-global-color-accent);
	color: var(--e-global-color-butzmann_black);
}
@media (min-width: 1025px) {
	.bz-drawer {
		display: none;
	}
}


/* ==========================================================================
   Pie de página (Theme Builder «Pie de página – Bützmann», plantilla 1150)
   Shortcodes de inc/pie.php. Maquetación (rejilla, columnas, títulos) en las
   clases globales bz-footer*.
   ========================================================================== */
.elementor-location-footer {
	--bz-footer-link: color-mix(in srgb, var(--e-global-color-accent) 72%, transparent);
	--bz-footer-muted: color-mix(in srgb, var(--e-global-color-accent) 56%, transparent);
}
.bz-footer-list,
.bz-footer-contact,
.bz-footer-pay {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bz-footer-list {
	margin-block-end: 0;
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 0.9375rem;
	line-height: 1.35;
}
.bz-footer-list li + li {
	margin-block-start: 4px;
}
.bz-footer-list a,
.bz-footer-contact a,
.bz-footer-legal a {
	color: var(--bz-footer-link);
	text-decoration: none;
	transition: color 0.2s ease;
}
.bz-footer-list a {
	display: inline-block;
	padding-block: 5px;
}
.bz-footer-list a:hover,
.bz-footer-list a:focus-visible,
.bz-footer-contact a:hover,
.bz-footer-contact a:focus-visible,
.bz-footer-legal a:hover,
.bz-footer-legal a:focus-visible {
	color: var(--e-global-color-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.bz-footer-list a[aria-current="page"] {
	color: var(--e-global-color-primary);
}
.elementor-location-footer a:focus-visible {
	outline: 2px solid var(--e-global-color-primary);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Contacto */
.bz-footer-contact {
	display: grid;
	gap: 12px;
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 0.9375rem;
	line-height: 1.4;
	color: var(--bz-footer-link);
}
.bz-footer-contact li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.bz-footer-contact .bz-ico {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	color: var(--e-global-color-primary);
}

/* Copyright y enlaces legales */
.bz-footer-legal {
	padding-block-start: 24px;
	border-top: 1px solid color-mix(in srgb, var(--e-global-color-accent) 14%, transparent);
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--bz-footer-muted);
}
.bz-footer-legal p {
	margin: 0;
}
.bz-footer-legal-links {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 10px;
	margin-block-start: 6px !important;
}
.bz-footer-legal .bz-footer-legal-links a {
	color: var(--bz-footer-muted);
}

/* Compra segura: formas de pago */
.bz-footer-pay {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.bz-footer-pay li {
	display: flex;
	align-items: center;
}
.bz-footer-pay img {
	display: block;
	width: auto;
	height: 28px;
}
.bz-footer-pay-text {
	gap: 6px;
	height: 28px;
	padding-inline: 8px;
	border-radius: 2px;
	background-color: var(--e-global-color-accent);
	color: var(--e-global-color-butzmann_black);
	font-family: var(--e-global-typography-primary-font-family), sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}
.bz-footer-pay-text .bz-ico {
	width: 16px;
	height: 16px;
	color: var(--e-global-color-primary);
}

@media (max-width: 767px) {
	.bz-footer-list a {
		padding-block: 7px;
	}
}


/* Ficha de producto – pestaña «Contacto» (frase + iframe de Odoo) */
.woocommerce div.product .bz-tabs .bz-contact-h2 {
	margin: 0 0 8px;
	color: var(--e-global-color-secondary);
	font-family: var(--e-global-typography-primary-font-family), sans-serif;
	font-size: 1.5rem;
	font-weight: 800;
	line-height: 1.25;
}
.woocommerce div.product .bz-tabs .bz-contact-h3 {
	margin: 0 0 24px;
	color: var(--e-global-color-text);
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.5;
}
.woocommerce div.product .bz-tabs .bz-contact-frame {
	display: block;
	width: 100%;
	height: 900px;
	border: 0;
}
@media (max-width: 767px) {
	.woocommerce div.product .bz-tabs .bz-contact-h2 {
		font-size: 1.25rem;
	}
	.woocommerce div.product .bz-tabs .bz-contact-frame {
		height: 1000px;
	}
}


/* Checkout – NIF/CIF obligatorio (campo del plugin EU/UK VAT Compliance). Mobile first: sin media queries. */
.wc-block-checkout .vat-number-textcontrol label::after {
	content: " *";
}


/* ==========================================================================
   Carrito vacío – franja «Los más vendidos» (inc/carrito.php). Mobile first.
   Hello Elementor limita `body:not([class*=elementor-page-]) .site-main` a
   500/600/800/1140px según el ancho (theme.css). En el carrito vacío se quita
   ese límite: una sola regla con más especificidad vale para todos los anchos.
   ========================================================================== */
body.woocommerce-cart:has(.bz-carrito-vacio-top-ventas) .site-main {
	max-width: none;
}

/* El bloque de carrito usa alignwide (márgenes negativos): se anulan para que no desplace la franja. */
.wp-block-woocommerce-cart:has(.bz-carrito-vacio-top-ventas) {
	margin-inline: 0;
}

.bz-carrito-vacio-top-ventas {
	margin-top: 2.5rem;
}

@media (min-width: 768px) {
	.bz-carrito-vacio-top-ventas {
		margin-top: 4rem;
	}
}


/* ==========================================================================
   Carrito y checkout – botones principales (bloques de WooCommerce). Mobile first.
   Estilo de «Ver ficha producto» / «Añadir al carrito», con el fondo «Bützmann Negro».
   Se sobrescriben WooCommerce (fondo gris/negro, texto subrayado) y el `button {}`
   global de este archivo (verde con !important).
   Alcance: «Finalizar compra», «Realizar el pedido», «Aplicar» cupón y «Ver la tienda» (carrito vacío).
   ========================================================================== */
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link),
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link),
.wp-block-woocommerce-empty-cart-block .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 24px;
	border: 0 !important;
	border-radius: 8px;
	background-color: var(--e-global-color-butzmann_black) !important;
	color: var(--e-global-color-accent) !important;
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none !important;
	transition: background-color 0.2s ease;
}
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link):hover,
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link):focus-visible,
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link):hover,
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link):focus-visible,
.wp-block-woocommerce-empty-cart-block .wp-block-button__link:hover,
.wp-block-woocommerce-empty-cart-block .wp-block-button__link:focus-visible {
	background-color: var(--e-global-color-secondary) !important;
	color: var(--e-global-color-accent) !important;
	text-decoration: none !important;
}
.wp-block-woocommerce-cart .wc-block-components-button:not(.is-link) .wc-block-components-button__text,
.wp-block-woocommerce-checkout .wc-block-components-button:not(.is-link) .wc-block-components-button__text {
	color: inherit;
	text-decoration: none;
}

/* Checkout – teléfono de envío: el placeholder («Número de contacto para el transportista») solo se ve al enfocar el campo,
   cuando la etiqueta ya ha subido; vacío y sin foco se solapaba con la etiqueta flotante. Mobile first. */
.wp-block-woocommerce-checkout #shipping-phone::placeholder {
	color: transparent;
	opacity: 1;
}
.wp-block-woocommerce-checkout #shipping-phone:focus::placeholder {
	color: var(--e-global-color-text);
}

/* Checkout – aviso de IGIC y aranceles (Canarias): nota bajo los totales del resumen. Mobile first, sin media queries. */
.wp-block-woocommerce-checkout .bz-igic-aviso {
	margin: 0;
	padding: 0.75rem 1rem;
	background-color: var(--e-global-color-butzmann_grey_light);
	border-left: 3px solid var(--e-global-color-primary);
	font-size: 0.875rem;
	line-height: 1.4;
	color: var(--e-global-color-secondary);
}

/* ==========================================================================
   Pop-up de contacto (inc/contacto-popup.php · assets/js/contacto-popup.js)
   Mobile first. Colores y tipografías del kit de Elementor.
   ========================================================================== */
.bz-popup {
	box-sizing: border-box;
	width: calc(100% - 1.5rem);
	max-width: none;
	height: calc(100dvh - 1.5rem);
	max-height: none;
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: 1rem; /* = tarjetas de la web (16px) */
	background-color: var(--e-global-color-accent);
	color: var(--e-global-color-secondary);
	overflow: hidden;
}
.bz-popup[open] {
	display: flex;
	flex-direction: column;
}
.bz-popup::backdrop {
	background-color: rgba(11, 11, 11, 0.6);
}
html:has(.bz-popup[open]) {
	overflow: hidden;
}
.bz-popup-head {
	flex: none;
	padding: 3.5rem 1.25rem 1rem;
	text-align: center;
}
.bz-popup-title {
	margin: 0;
	font-family: var(--e-global-typography-primary-font-family), sans-serif;
	font-weight: var(--e-global-typography-primary-font-weight);
	font-size: clamp(1.5rem, 6vw, 2rem);
	line-height: 1.15;
	color: var(--e-global-color-secondary);
}
.bz-popup-sub {
	margin: 0.5rem 0 0;
	font-size: 1rem;
	line-height: 1.4;
	color: var(--e-global-color-secondary);
}
.bz-popup-body {
	position: relative;
	flex: 1 1 auto;
	min-height: 0;
	padding: 0 1rem 1rem;
}
.bz-popup-body::before {
	content: "Cargando formulario…";
	position: absolute;
	inset: 2rem 0 auto;
	text-align: center;
	font-size: 0.9375rem;
	color: var(--e-global-color-text);
}
.bz-popup-frame {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background-color: transparent;
}
/* `button { background-color … !important }` es global en el tema: el botón propio lo anula. */
.bz-popup-close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid var(--e-global-color-butzmann_grey_light);
	border-color: var(--e-global-color-butzmann_grey_light) !important; /* el tema fuerza border-color: #fff en los botones */
	border-radius: 50%;
	background-color: var(--e-global-color-accent) !important;
	color: var(--e-global-color-secondary) !important;
	cursor: pointer;
	transition: background-color 0.15s ease;
}
.bz-popup-close:hover,
.bz-popup-close:focus-visible {
	background-color: var(--e-global-color-butzmann_grey_light) !important;
}
.bz-popup-close:focus-visible {
	outline: 2px solid var(--e-global-color-secondary);
	outline-offset: 2px;
}
.bz-popup-close svg {
	width: 1.25rem;
	height: 1.25rem;
}
@media (prefers-reduced-motion: no-preference) {
	.bz-popup[open] {
		animation: bz-popup-in 0.2s ease-out;
	}
	@keyframes bz-popup-in {
		from { opacity: 0; transform: translateY(0.75rem); }
		to { opacity: 1; transform: none; }
	}
}
@media (min-width: 768px) {
	.bz-popup {
		width: min(40rem, calc(100% - 3rem));
		height: min(calc(100dvh - 3rem), 52rem);
	}
	.bz-popup-head {
		padding: 3rem 2rem 1.25rem;
	}
	.bz-popup-sub {
		font-size: 1.0625rem;
	}
	.bz-popup-body {
		padding: 0 2rem 1.5rem;
	}
}

/* Formularios de Odoo incrustados (pop-up de contacto y pestaña «Contacto» de la ficha).
   El formulario es de otro dominio: su CSS no se puede tocar y los filtros SVG (`filter: url()`) no funcionan sobre iframes
   de otro dominio en Safari (se ven en blanco) ni de forma fiable en Chrome. Se superpone una capa verde con
   `mix-blend-mode: hue`: cambia el tono del magenta de Odoo (#BE1B4F) a verde y deja blancos, grises y negros igual.
   El contenedor lleva fondo blanco para que la mezcla tenga un fondo mientras el iframe carga. */
.bz-odoo-wrap {
	position: relative;
	isolation: isolate;
	height: 100%;
	background-color: var(--e-global-color-accent);
}
.bz-odoo-wrap::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--e-global-color-primary);
	mix-blend-mode: hue;
	pointer-events: none;
}
