/* ==========================================================================
   Jabiar Tienda — mismo aspecto que el tema de Shopify (blanco, negro, botones rojo y verde)
   ========================================================================== */

@font-face { font-family: "Poppins"; font-weight: 500; font-style: normal; font-display: swap; src: url("../fonts/poppins-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/poppins-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 700; font-style: normal; font-display: swap; src: url("../fonts/poppins-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/nunito-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/nunito-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-weight: 700; font-style: normal; font-display: swap; src: url("../fonts/nunito-sans-latin-700-normal.woff2") format("woff2"); }

:root {
	--fondo: #ffffff;
	--fondo-2: #f3f3f3;
	--texto: #000000;
	--texto-suave: rgba(0, 0, 0, 0.72);
	--borde: rgba(0, 0, 0, 0.12);
	--rojo: #dd1d1d;
	--rojo-aviso: #dd1d1d;
	--verde: #53af01;
	--pie: #121212;
	--estrella: #ffcc00;
	--estrella-fondo: #ececec;
	--titulos: "Poppins", "Helvetica Neue", Arial, sans-serif;
	--cuerpo: "Nunito Sans", "Helvetica Neue", Arial, sans-serif;
	--radio-boton: 6px;
	--radio-media: 12px;
	--radio-caja: 24px;
	--ancho: 1400px;
	--margen: clamp(15px, 3.5vw, 50px);
}

/* Base ---------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 90px; }
body {
	margin: 0; background: var(--fondo); color: var(--texto);
	font-family: var(--cuerpo); font-size: 16px; line-height: 1.6; letter-spacing: 0.01em;
	-webkit-font-smoothing: antialiased;
}
body.sin-scroll { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--texto); }
h1, h2, h3 { font-family: var(--titulos); font-weight: 700; line-height: 1.2; letter-spacing: 0.04em; margin: 0 0 0.5em; }
h1 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); }
h2 { font-size: clamp(1.6rem, 2.8vw, 2.1rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
button { font-family: inherit; }
:focus-visible { outline: 2px solid var(--texto); outline-offset: 3px; }
[hidden] { display: none !important; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; width: 1px;
	margin: -1px; overflow: hidden; padding: 0; position: absolute !important; word-wrap: normal !important;
}
.saltar { position: absolute; left: 12px; top: -100px; z-index: 200; background: #000; color: #fff; padding: 10px 14px; border-radius: var(--radio-boton); }
.saltar:focus { top: 12px; }

.contenedor { width: 100%; max-width: 1000px; margin: 0 auto; padding: 0 var(--margen); }
.contenedor-ancho { width: 100%; max-width: var(--ancho); margin: 0 auto; padding: 0 var(--margen); }

.icon { width: 22px; height: 22px; flex: none; }

/* Botones ------------------------------------------------------------- */

.boton {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 50px; padding: 12px 30px;
	border: 2px solid transparent; border-radius: var(--radio-boton);
	font-family: var(--cuerpo); font-size: 16px; font-weight: 700; line-height: 1.2; letter-spacing: 0.06em;
	text-decoration: none; text-align: center; cursor: pointer;
	transition: filter 0.15s ease, transform 0.1s ease;
}
.boton:hover { filter: brightness(0.92); }
.boton:active { transform: translateY(1px); }
.boton .icon { width: 20px; height: 20px; }
.boton-rojo { background: var(--rojo); border-color: var(--rojo); color: #fff; }
.boton-rojo:hover { color: #fff; }
.boton-verde { background: var(--verde); border-color: var(--verde); color: #fff; }
.boton-verde:hover { color: #fff; }
.boton-borde { background: #fff; border: 1px solid #ddd; color: #111; border-radius: 8px; min-height: 42px; padding: 8px 20px; font-size: 14px; font-weight: 600; letter-spacing: 0; }
.boton-borde:hover { background: #f5f5f5; filter: none; }
.boton-ancho { width: 100%; }
.boton-agotado { background: #e6e6e6; color: #555; cursor: not-allowed; margin: 0; }
.boton.cargando { opacity: 0.7; pointer-events: none; }

.icono-boton {
	display: inline-flex; align-items: center; justify-content: center; position: relative;
	width: 44px; height: 44px; padding: 0; border: 0; background: none; color: var(--texto); cursor: pointer; text-decoration: none;
}
.icono-boton .icon { width: 24px; height: 24px; }

/* Barra de anuncio y cabecera ------------------------------------------ */

.anuncio { background: var(--rojo-aviso); color: #fff; }
.anuncio-texto { margin: 0; padding: 14px var(--margen); display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 15px; text-align: center; }
.anuncio-texto .icon { width: 22px; height: 22px; }

.cabecera {
	position: sticky; top: 0; z-index: 50; background: #fff;
	border-bottom: 1px solid var(--borde);
	transition: transform 0.25s ease;
}
.cabecera.oculta { transform: translateY(-100%); }
.admin-bar .cabecera { top: 32px; }
@media (max-width: 782px) { .admin-bar .cabecera { top: 0; } }

.cabecera-fila { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; padding-top: 14px; padding-bottom: 14px; }
.cabecera-izq { display: flex; align-items: center; }
.cabecera-der { display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.cabecera-logo { text-align: center; }
.cabecera-logo img, .custom-logo { max-width: 140px; max-height: 70px; width: auto; height: auto; margin: 0 auto; }
.marca { font-family: var(--titulos); font-weight: 700; font-size: 1.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--texto); text-decoration: none; }

.nav-escritorio .menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 24px; }
.nav-escritorio a { color: var(--texto-suave); text-decoration: none; font-size: 15px; padding: 6px 0; }
.nav-escritorio a:hover,
.nav-escritorio .current-menu-item > a { color: var(--texto); text-decoration: underline; text-underline-offset: 4px; }
.menu-abrir { display: none; margin-left: -10px; }

.cesta-contador {
	position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px;
	border-radius: 9px; background: #000; color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
}
.cesta-contador[data-count="0"] { display: none; }

@media (max-width: 989px) {
	.nav-escritorio { display: none; }
	.menu-abrir { display: inline-flex; }
	.cabecera-logo img, .custom-logo { max-width: 110px; }
	.marca { font-size: 1.4rem; }
	.cabecera-fila { padding-top: 10px; padding-bottom: 10px; }
}

/* Buscador */
.buscador { position: sticky; top: 0; z-index: 60; background: #fff; border-bottom: 1px solid var(--borde); }
.buscador-fila { display: flex; align-items: center; gap: 12px; padding-top: 14px; padding-bottom: 14px; }
.buscador-form { flex: 1; display: flex; border: 1px solid rgba(0, 0, 0, 0.6); border-radius: var(--radio-boton); }
.buscador-form input { flex: 1; border: 0; padding: 12px 16px; font: inherit; background: none; min-width: 0; }
.buscador-form input:focus { outline: none; }
.buscador-form:focus-within { outline: 2px solid #000; outline-offset: 1px; }

/* Cajones (menú y carrito) */
.velo { position: fixed; inset: 0; z-index: 90; background: rgba(0, 0, 0, 0.5); opacity: 0; transition: opacity 0.25s ease; }
.velo.visible { opacity: 1; }
.cajon {
	position: fixed; top: 0; bottom: 0; z-index: 100; width: min(420px, 92vw);
	background: #fff; display: flex; flex-direction: column;
	transition: transform 0.3s ease; box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
}
.cajon-izquierda { left: 0; transform: translateX(-100%); }
.cajon-derecha { right: 0; transform: translateX(100%); }
.cajon.abierto { transform: translateX(0); }
.cajon-cabeza { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px 12px 24px; border-bottom: 1px solid var(--borde); }
.cajon-titulo { margin: 0; font-family: var(--titulos); font-weight: 700; font-size: 1.15rem; letter-spacing: 0.04em; }
.cajon-cuerpo { flex: 1; overflow-y: auto; padding: 20px 24px; display: flex; flex-direction: column; }
.cajon-cuerpo .widget_shopping_cart_content { display: flex; flex-direction: column; flex: 1; }
.nav-movil .menu { list-style: none; margin: 0; padding: 8px 24px; }
.nav-movil a { display: block; padding: 14px 0; border-bottom: 1px solid var(--borde); color: var(--texto); text-decoration: none; font-size: 1.1rem; }

/* Mini carrito de WooCommerce */
.woocommerce-mini-cart { list-style: none; margin: 0 0 16px; padding: 0; }
.woocommerce-mini-cart-item { position: relative; display: grid; grid-template-columns: 76px 1fr; gap: 4px 14px; padding: 14px 32px 14px 0; border-bottom: 1px solid var(--borde); font-size: 15px; }
.woocommerce-mini-cart-item a:not(.remove) { display: contents; color: var(--texto); text-decoration: none; font-weight: 700; }
.woocommerce-mini-cart-item img { grid-row: span 2; width: 76px; height: 76px; object-fit: cover; border-radius: 8px; background: var(--fondo-2); }
.woocommerce-mini-cart-item .quantity { grid-column: 2; color: var(--texto-suave); }
.woocommerce-mini-cart-item .remove { position: absolute; right: 0; top: 12px; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #777 !important; text-decoration: none; font-size: 20px; background: none !important; }
.woocommerce-mini-cart-item .remove:hover { background: var(--fondo-2) !important; color: #000 !important; }
.woocommerce-mini-cart__total { display: flex; justify-content: space-between; margin: auto 0 16px; padding-top: 16px; font-size: 17px; }
.woocommerce-mini-cart__buttons { display: flex; flex-direction: column-reverse; gap: 10px; margin: 0; }
.woocommerce-mini-cart__buttons .button { display: flex !important; align-items: center; justify-content: center; min-height: 52px; border-radius: var(--radio-boton) !important; font-weight: 700 !important; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; padding: 12px !important; margin: 0 !important; }
.woocommerce-mini-cart__buttons .checkout { background: var(--rojo) !important; color: #fff !important; }
.woocommerce-mini-cart__buttons .button:not(.checkout) { background: #fff !important; color: #000 !important; border: 2px solid #000 !important; }
.woocommerce-mini-cart__empty-message { text-align: center; margin: auto 0; color: var(--texto-suave); font-size: 17px; }

/* Portada: diapositivas ------------------------------------------------- */

.diapositivas { position: relative; }
.diapositiva { position: relative; }
.diapositiva-media { height: clamp(360px, 46vw, 640px); background: var(--fondo-2); }
.diapositiva-media img { width: 100%; height: 100%; object-fit: cover; }
.diapositiva-media-tema { background: #fff; }
.diapositiva-media-tema img { object-fit: contain; }
.diapositiva-caja {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	width: min(560px, calc(100% - 2 * var(--margen)));
	background: #fff; color: #2e2a39; border-radius: var(--radio-caja);
	padding: 40px 48px; text-align: center;
}
.diapositiva-titulo { font-size: clamp(2rem, 4vw, 3.25rem); margin-bottom: 0.4em; color: inherit; }
.diapositiva-texto { font-size: 1.1rem; }
.diapositiva-caja .boton { margin-top: 8px; min-width: 220px; }
.diapositivas-controles { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 0; }
.puntos { display: flex; gap: 10px; }
.punto { width: 10px; height: 10px; padding: 0; border-radius: 50%; border: 1px solid #000; background: transparent; cursor: pointer; }
.punto.activo { background: #000; }
@media (max-width: 749px) {
	.diapositiva-media { height: auto; aspect-ratio: 4 / 3; }
	.diapositiva-caja { position: static; transform: none; width: 100%; border-radius: 0; padding: 28px 20px 36px; }
	.diapositiva-caja .boton { width: 100%; }
}
.portada-contenido { padding-top: 48px; padding-bottom: 48px; }

/* Ficha de producto ------------------------------------------------------ */

.producto-main { padding-top: 32px; }
.ficha-grid { display: grid; grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); gap: 56px; align-items: start; }
/* La columna más corta (fotos o información) se queda fija al bajar: sin huecos en blanco. */
.ficha-media { position: sticky; top: 100px; align-self: start; }
.ficha-info { position: sticky; top: 100px; padding-bottom: 32px; --hueco: 30px; }
@media (max-width: 749px) { .ficha-info { --hueco: 26px; } }
@media (max-width: 989px) {
	.producto-main { padding-top: 0; }
	.ficha-grid { grid-template-columns: 1fr; gap: 28px; padding: 0; }
	.ficha-media { position: static; }
	.ficha-info { position: static; padding: 0 var(--margen) 24px; }
}

/* Galería */
.galeria { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 14px; }
.galeria-miniaturas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.galeria-mini { display: block; width: 100%; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: var(--fondo-2); cursor: pointer; aspect-ratio: 1; }
.galeria-mini img { width: 100%; height: 100%; object-fit: cover; opacity: 0.7; }
.galeria-mini.activa { border-color: #000; }
.galeria-mini.activa img, .galeria-mini:hover img { opacity: 1; }
.galeria-principal { grid-column: 2; min-width: 0; }

.galeria:not(:has(.galeria-miniaturas)) { grid-template-columns: 1fr; }
.galeria:not(:has(.galeria-miniaturas)) .galeria-principal { grid-column: 1; }
.galeria-pista { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: var(--radio-media); background: #fff; }
.galeria-pista::-webkit-scrollbar { display: none; }
.galeria-foto { flex: 0 0 100%; margin: 0; scroll-snap-align: start; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; }
.galeria-foto img { width: 100%; height: 100%; object-fit: contain; border-radius: var(--radio-media); }
.galeria-puntos { display: none; justify-content: center; gap: 8px; padding: 12px 0 0; }
.galeria-puntos .punto { width: 8px; height: 8px; }
@media (max-width: 989px) {
	.galeria { grid-template-columns: 1fr; gap: 10px; }
	.galeria-principal { grid-column: 1; grid-row: 1; }
	.galeria-pista, .galeria-foto img { border-radius: 0; }
	.galeria-miniaturas { grid-row: 3; flex-direction: row; overflow-x: auto; padding: 0 var(--margen); gap: 8px; scrollbar-width: none; }
	.galeria-miniaturas li { flex: 0 0 calc((100% - 32px) / 5); }
	.galeria-puntos { display: flex; }
}

/* Información */
.resena-destacada { margin: 0 0 var(--hueco, 28px); padding: 0 0 20px; border-bottom: 1px solid var(--borde); }
.resena-destacada blockquote { margin: 0 0 8px; font-family: var(--titulos); font-size: 14px; line-height: 1.45; letter-spacing: 0.02em; }
.resena-destacada-autor { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; font-family: var(--titulos); font-size: 13px; color: rgba(0, 0, 0, 0.55); letter-spacing: 0.04em; }
.resena-destacada.con-foto { display: flex; align-items: center; gap: 16px; }
.resena-destacada-cuerpo { flex: 1; min-width: 0; }
.resena-destacada-foto { flex: none; width: 60px; height: 60px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; box-shadow: 0 0 0 1px #e4e4e0, 0 2px 8px rgba(0, 0, 0, 0.08); }
@media (max-width: 749px) { .resena-destacada.con-foto { gap: 12px; } .resena-destacada-foto { width: 52px; height: 52px; } }
.resena-nombre .resena-foto { width: 34px; height: 34px; margin-right: 8px; border-radius: 50%; object-fit: cover; vertical-align: middle; }
.verificado { display: inline-flex; color: #6d388b; }
.verificado .icon { width: 17px; height: 17px; }

.ficha-titulo { font-size: clamp(1.45rem, 2.1vw, 1.85rem); line-height: 1.25; margin: 0 0 14px; }
.ficha-estrellas { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px; font-family: var(--titulos); font-size: 16px; letter-spacing: 0.03em; text-decoration: none; color: var(--texto); }
.ficha-estrellas strong { font-weight: 600; }

.estrellas { position: relative; display: inline-flex; line-height: 0; vertical-align: middle; }
.estrellas .icon { width: var(--tam, 16px); height: var(--tam, 16px); }
.estrellas-fondo { display: inline-flex; color: var(--estrella-fondo); }
.estrellas-relleno { position: absolute; inset: 0 auto 0 0; display: inline-flex; overflow: hidden; color: var(--estrella); white-space: nowrap; }

.ficha-destacado {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 12px;
	width: 100%; margin: 0 0 var(--hueco, 28px); padding: 12px 16px;
	background: #fdf1f0; border: 1px solid #f4d2ce; border-radius: 10px; color: #b3261e;
	text-align: center; font-family: var(--titulos); font-weight: 700; font-size: 13.5px; line-height: 1.3; letter-spacing: 0.1em; text-transform: uppercase;
}
.ficha-destacado-punto { flex: none; width: 9px; height: 9px; border-radius: 50%; background: #e0352b; animation: destacado-pulso 1.8s ease-out infinite; }
.ficha-destacado-sep { flex: none; width: 1px; height: 14px; background: rgba(179, 38, 30, 0.3); }
@keyframes destacado-pulso { 0% { box-shadow: 0 0 0 0 rgba(224, 53, 43, 0.45); } 70% { box-shadow: 0 0 0 7px rgba(224, 53, 43, 0); } 100% { box-shadow: 0 0 0 0 rgba(224, 53, 43, 0); } }
@media (max-width: 749px) { .ficha-destacado { gap: 6px 9px; padding: 11px 12px; font-size: 12px; letter-spacing: 0.06em; } }
@media (prefers-reduced-motion: reduce) { .ficha-destacado-punto { animation: none; } }

.insignias {
	list-style: none; margin: 0 0 var(--hueco, 28px); padding: 2px 20px;
	display: flex; flex-direction: column;
	background: #fff; border: 1px solid #e9e9e4; border-radius: 12px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.insignias li { display: flex; align-items: center; gap: 12px; padding: 13px 0; color: #121212; font-family: var(--titulos); font-size: 14.5px; letter-spacing: 0.02em; line-height: 1.3; }
.insignias li + li { border-top: 1px solid #efefea; }
.insignias li strong { font-weight: 600; }
.insignias .icon { flex: none; width: 22px; height: 22px; color: #121212; }
@media (max-width: 749px) {
	.insignias { padding: 2px 16px; }
	.insignias li { gap: 11px; padding: 12px 0; font-size: 13.5px; }
	.insignias .icon { width: 21px; height: 21px; }
}

.ficha-precio { margin: 0 0 var(--hueco, 28px); padding: 0 0 22px; border-bottom: 1px solid var(--borde); }
.precio-fila { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.precio-grande { display: inline-flex; align-items: flex-start; font-family: var(--titulos); font-weight: 700; color: #000; line-height: 1; white-space: nowrap; }
.precio-entero { font-size: 40px; letter-spacing: -0.02em; }
.precio-resto, .precio-grande .precio-moneda { font-size: 18px; padding-top: 4px; margin-left: 1px; }
.precio-antes { color: rgba(0, 0, 0, 0.5); font-family: var(--titulos); font-size: 18px; font-weight: 500; }
.etiqueta-ahorro { background: var(--rojo); color: #fff; border-radius: 6px; padding: 5px 9px; font-family: var(--titulos); font-size: 13px; font-weight: 700; letter-spacing: 0.02em; }
.precio-envio { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px 6px 9px; border-radius: 999px; background: #eaf6e2; color: #2b7a0b; font-family: var(--titulos); font-size: 13px; font-weight: 600; letter-spacing: 0.02em; }
.precio-envio .icon { width: 17px; height: 17px; }
.precio-nota { margin: 12px 0 0; font-family: var(--titulos); font-size: 14px; font-weight: 500; letter-spacing: 0.02em; color: #333; }
@media (max-width: 749px) { .precio-entero { font-size: 36px; } }

.ficha-compra { margin: 0 0 20px; }
.ficha-form { display: flex; flex-direction: column; gap: 10px; }
.ficha-form .boton { min-height: 56px; text-transform: uppercase; font-family: var(--titulos); font-weight: 700; font-size: 17px; letter-spacing: 0.04em; border-radius: 6px; }
.ficha-form-error { margin: 4px 0 0; color: #c00; font-size: 14px; }
.aviso-admin { padding: 12px 14px; border: 1.5px dashed var(--rojo); border-radius: var(--radio-boton); background: #fff5f5; font-size: 15px; }

.pagos { list-style: none; margin: 0 0 var(--hueco, 28px); padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; }
.pagos li { border: 1px solid #dcdcdc; border-radius: 4px; padding: 3px 8px; font-size: 12px; font-weight: 700; line-height: 1.4; background: #fff; color: #333; }
.pagos .pagos-candado { border: 0; padding: 0; background: none; color: #555; }
.pagos .pagos-candado .icon { width: 18px; height: 18px; }
.pagos li.pago-logo { border: 0; padding: 0; background: none; line-height: 0; }
.pago-logo img, .pago-logo svg { display: block; height: 24px; width: auto; }
.pagos-oscuro .logo-applepay rect { stroke: rgba(255, 255, 255, 0.45); }

.ficha-descripcion { margin: 0 0 var(--hueco, 28px); }
.desplegables { margin-top: 0; }
.desplegable { border-top: 1px solid var(--borde); }
.desplegable:last-child { border-bottom: 1px solid var(--borde); }
.desplegable summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 16px 0; cursor: pointer; font-weight: 700; font-size: 16px; }
.desplegable summary::-webkit-details-marker { display: none; }
.desplegable summary span { flex: 1; }
.desplegable summary .icon-caret { width: 18px; height: 18px; transition: transform 0.2s ease; }
.desplegable[open] summary .icon-caret { transform: rotate(180deg); }
.desplegable-contenido { padding: 0 0 18px 34px; }

/* Secciones bajo el producto */
.texto-rico { padding: 48px 0 40px; text-align: center; }
.texto-rico h2 { max-width: 820px; margin-left: auto; margin-right: auto; }
.texto-rico-cuerpo { max-width: 740px; margin: 0 auto; font-size: 17px; }
.texto-rico-cuerpo p:last-child { margin-bottom: 0; }
.banner img { width: 100%; border-radius: var(--radio-media); }
@media (max-width: 749px) { .banner .contenedor-ancho { padding: 0; } .banner img { border-radius: 0; } }

/* Reseñas */
.resenas { padding: 48px 0 40px; }
.resenas-titulo { text-align: center; margin-bottom: 28px; }
.resenas-cabeza { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 28px; }
.resenas-resumen { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: var(--texto-suave); }
.resenas-resumen .estrellas-relleno { color: #f5a623; }
.resenas-mosaico { list-style: none; margin: 0; padding: 0; columns: 4; column-gap: 16px; }
.resena-tarjeta { break-inside: avoid; margin: 0 0 16px; border: 1px solid #e8e8e8; border-radius: 12px; background: #fff; padding: 14px 16px; }
.resena-tarjeta .estrellas-relleno { color: #f5a623; }
.resena-nombre { margin: 0 0 6px; font-size: 14px; font-weight: 700; }
.resena-tarjeta .resena-texto > :last-child { margin-bottom: 0; }
.resena-verificada { display: flex; align-items: center; gap: 4px; font-weight: 400; color: var(--texto-suave); font-size: 12px; }
.resena-verificada .icon { width: 14px; height: 14px; color: #6d388b; }
.resena-texto { margin-top: 8px; font-size: 14px; line-height: 1.6; }
.resena-texto p { margin: 0 0 0.6em; }
.resena-fecha { margin: 0; font-size: 12px; color: rgba(0, 0, 0, 0.5); }
@media (max-width: 1024px) { .resenas-mosaico { columns: 3; } }
@media (max-width: 768px) { .resenas-mosaico { columns: 2; column-gap: 10px; } .resena-tarjeta { margin-bottom: 10px; padding: 12px; } }

.resena-formulario { max-width: 720px; margin: 0 auto 32px; padding: 24px; border: 1px solid #e8e8e8; border-radius: 12px; }
.resena-formulario .woocommerce-Reviews-title,
.resena-formulario .commentlist,
.resena-formulario .woocommerce-noreviews,
.resena-formulario .woocommerce-pagination { display: none; }
.resena-formulario .comment-reply-title { font-family: var(--titulos); font-weight: 700; font-size: 1.2rem; display: block; margin-bottom: 12px; }
.resena-formulario input[type="text"], .resena-formulario input[type="email"], .resena-formulario textarea { width: 100%; }
.resena-formulario .form-submit input { background: var(--rojo); color: #fff; border: 0; border-radius: var(--radio-boton); padding: 14px 28px; font-weight: 700; cursor: pointer; }
.woocommerce p.stars a { color: var(--estrella); }

.separador { border: 0; border-top: 1px solid #e6e6e6; margin: 0; }

/* Barra fija */
.barra-fija {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: #fff;
	box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
	transform: translateY(110%); transition: transform 0.25s ease;
}
.barra-fija.visible { transform: translateY(0); }
.barra-fija-fila { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 10px; padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
.barra-fija-producto { display: flex; align-items: center; gap: 12px; min-width: 0; }
.barra-fija-foto { width: 52px; height: 52px; object-fit: cover; border-radius: 8px; }
.barra-fija-nombre { margin: 0; font-weight: 700; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.barra-fija-estrellas { margin: 0; display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--texto-suave); }
.barra-fija-form { display: flex; align-items: center; gap: 16px; }
.barra-fija-precio { font-family: var(--titulos); font-weight: 600; font-size: 1.1rem; }
.barra-fija-precio del { display: none; }
.barra-fija-precio ins { text-decoration: none; }
.barra-fija .boton { min-height: 48px; text-transform: uppercase; }
@media (max-width: 749px) {
	.barra-fija-producto, .barra-fija-precio { display: none; }
	.barra-fija-form { flex: 1; }
	.barra-fija .boton { width: 100%; }
}
body.con-barra .pie { padding-bottom: 80px; }

/* Páginas --------------------------------------------------------------- */

.pagina { padding: 40px 0 64px; }
.pagina-texto { max-width: 820px; margin: 0 auto; }
.pagina-ancha { max-width: 1200px; margin: 0 auto; }
.pagina-titulo { text-align: center; margin-bottom: 28px; }
.contenido-texto { font-size: 16px; line-height: 1.7; }
.contenido-texto h2 { font-size: 1.4rem; margin: 1.8em 0 0.6em; }
.contenido-texto h3 { font-size: 1.15rem; margin: 1.5em 0 0.5em; }
.contenido-texto ul, .contenido-texto ol { padding-left: 1.3em; }
.contenido-texto li { margin-bottom: 0.35em; }
.pagina-texto .contenido-texto > p:first-child { text-align: center; }
mark.jabiar-falta { background: #fff2a8; padding: 0 4px; font-size: 0.9em; }

/* Preguntas frecuentes (bloque Detalles) */
.wp-block-details { border-top: 1px solid var(--borde); padding: 0; }
.wp-block-details:last-of-type { border-bottom: 1px solid var(--borde); }
.wp-block-details summary { cursor: pointer; padding: 16px 0; font-weight: 700; font-size: 17px; }
.wp-block-details > *:not(summary) { margin: 0 0 18px; }

/* Formulario de contacto */
.formulario { margin: 24px 0 32px; }
.formulario form { display: flex; flex-direction: column; gap: 4px; }
.formulario-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.formulario label { display: block; font-size: 14px; margin-bottom: 4px; color: var(--texto-suave); }
.formulario input, .formulario textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.track_order input.input-text, .resena-formulario input[type="text"], .resena-formulario input[type="email"], .resena-formulario textarea {
	width: 100%; padding: 12px 14px; font: inherit; color: var(--texto);
	border: 1px solid rgba(0, 0, 0, 0.6); border-radius: var(--radio-boton); background: #fff;
}
.formulario textarea { resize: vertical; }
.formulario-trampa { position: absolute; left: -9999px; }
.formulario-ok, .formulario-error { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-radius: 8px; border: 1px solid; margin-bottom: 16px; }
.formulario-ok { color: #1f8a00; background: #f2ffed; border-color: #28c100; }
.formulario-error { color: #d00; background: #fff5f5; border-color: #ff0000; }
@media (max-width: 600px) { .formulario-fila { grid-template-columns: 1fr; } }

.contacto-canales { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 16px 0; }
.contacto-canal { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border: 1px solid #e8e8e8; border-radius: 12px; text-decoration: none; color: var(--texto); line-height: 1.4; font-size: 15px; }
.contacto-canal:hover { border-color: #000; }

.entrada-resumen { border-bottom: 1px solid var(--borde); padding: 20px 0; }
.entrada-resumen h2 { font-size: 1.3rem; }
.entrada-resumen h2 a { text-decoration: none; }

/* Pie --------------------------------------------------------------------- */

.pie { background: var(--pie); color: rgba(255, 255, 255, 0.78); padding: 40px 0 20px; font-size: 15px; }
.pie a { color: rgba(255, 255, 255, 0.78); text-decoration: none; }
.pie a:hover { color: #fff; text-decoration: underline; }
.pie-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; padding-bottom: 32px; }
.pie-nombre { font-family: var(--titulos); font-weight: 700; font-size: 1.4rem; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; margin-bottom: 10px; }
.pie-titulo { font-family: var(--titulos); font-weight: 600; font-size: 16px; color: #fff; margin-bottom: 12px; letter-spacing: 0.04em; }
.pie-menu { list-style: none; margin: 0; padding: 0; }
.pie-menu li { margin-bottom: 8px; }
.pie-final { position: relative; padding-top: 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; }
.pie-final::before { content: ""; position: absolute; top: 0; left: var(--margen); right: var(--margen); border-top: 1px solid rgba(255, 255, 255, 0.14); }
.pie-final p { margin: 0; }
.pagos-oscuro { justify-content: flex-start; margin: 0; }
.pagos-oscuro li { background: transparent; border-color: rgba(255, 255, 255, 0.3); color: #fff; }
.pagos-oscuro .pagos-candado { color: rgba(255, 255, 255, 0.6); }
@media (max-width: 900px) { .pie-grid { grid-template-columns: 1fr 1fr; } .pie-marca { grid-column: 1 / -1; } }
@media (max-width: 480px) { .pie-grid { grid-template-columns: 1fr; gap: 24px; } }

/* WooCommerce: carrito, pago, cuenta, seguimiento -------------------------- */

.wc-main { padding: 32px 0 64px; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt,
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	background-color: var(--rojo) !important; color: #fff !important; border-radius: var(--radio-boton) !important;
	font-weight: 700 !important; border: 0 !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.wc-block-components-button:not(.is-link):hover { filter: brightness(0.92); }
.woocommerce-message, .woocommerce-info { border-top-color: #000; }
.woocommerce-message::before, .woocommerce-info::before { color: #000; }
.woocommerce-error { border-top-color: var(--rojo); }
.track_order { max-width: 640px; margin: 24px auto 0; }
.track_order .form-row { width: 100% !important; float: none !important; }
.track_order button { width: 100%; min-height: 52px; text-transform: uppercase; }

/* Vídeo del producto ------------------------------------------------------ */

.galeria-video { position: relative; background: #1b2533; }
.galeria-video video { width: 100%; height: 100%; object-fit: contain; display: block; }
.galeria-mini-video { position: relative; background: #1b2533; }
.galeria-mini-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; background: rgba(0, 0, 0, 0.3); }
.galeria-mini-play .icon { width: 26px; height: 26px; fill: currentColor; }

.video-pausa {
	position: absolute; right: 12px; bottom: 12px; z-index: 2;
	width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: rgba(0, 0, 0, 0.55); color: #fff; cursor: pointer;
}
.video-pausa .icon { width: 18px; height: 18px; stroke-width: 2.2; }
.video-pausa .icon-play { display: none; fill: currentColor; }
.video-pausa.pausado .icon-pausa { display: none; }
.video-pausa.pausado .icon-play { display: block; }

.video-seccion { background: #f3f3f3; padding: 64px 0; }
.video-grid { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 520px); gap: 64px; align-items: center; justify-content: center; }
.video-marco { position: relative; aspect-ratio: 9 / 16; border-radius: 18px; overflow: hidden; background: #1b2533; box-shadow: 0 24px 48px rgba(0, 0, 0, 0.18); }
.video-marco video { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-texto h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); line-height: 1.15; margin: 0 0 14px; }
.video-texto > p { font-size: 17px; color: var(--texto-suave); margin: 0; }
.video-puntos { list-style: none; margin: 24px 0 30px; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.video-puntos li { display: flex; align-items: flex-start; gap: 10px; font-family: var(--titulos); font-size: 15px; font-weight: 500; letter-spacing: 0.02em; line-height: 1.4; }
.video-puntos .icon { width: 22px; height: 22px; color: #000; flex: none; }
.video-compra { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.video-compra .precio-entero { font-size: 32px; }
.video-compra .precio-resto { font-size: 15px; padding-top: 3px; }
.video-compra .boton { background: #000; border-color: #000; color: #fff; min-height: 54px; padding: 0 32px; font-family: var(--titulos); font-size: 16px; text-transform: uppercase; border-radius: 6px; }
@media (max-width: 849px) {
	.video-seccion { padding: 44px 0; }
	.video-grid { grid-template-columns: 1fr; gap: 28px; }
	.video-marco { width: min(340px, 100%); margin: 0 auto; }
	.video-compra { flex-direction: column; align-items: flex-start; }
	.video-compra .boton { width: 100%; }
}

/* Fechas de entrega bajo los logos de pago ------------------------------- */

.entrega { margin: var(--hueco, 28px) 0; }
/* Siempre en una sola línea: el JS elige la versión más larga del texto que quepa (data-nivel 0–4). */
.entrega-cabeza {
	display: flex; flex-wrap: nowrap; align-items: center; justify-content: center;
	margin-bottom: 26px; padding: 12px 16px; overflow: hidden; contain: inline-size;
	background: #f6f6f3; border: 1px solid #e9e9e4; border-radius: 12px;
}
.entrega-cabeza p { flex: none; margin: 0; display: flex; align-items: center; gap: 7px; white-space: nowrap; font-family: var(--titulos); font-size: 13px; letter-spacing: 0.01em; color: #222; }
.entrega-cabeza strong { font-weight: 700; color: #000; }
.entrega-donde { padding-left: 16px; margin-left: 16px !important; border-left: 1px solid #dcdcd6; }
.entrega-cabeza .e-corta { display: none; }
.entrega-cabeza[data-nivel="1"] .e1.e-larga,
.entrega-cabeza[data-nivel="2"] .e1.e-larga, .entrega-cabeza[data-nivel="2"] .e3.e-larga,
.entrega-cabeza[data-nivel="3"] .e-larga, .entrega-cabeza[data-nivel="4"] .e-larga { display: none; }
.entrega-cabeza[data-nivel="1"] .e1.e-corta,
.entrega-cabeza[data-nivel="2"] .e1.e-corta, .entrega-cabeza[data-nivel="2"] .e3.e-corta,
.entrega-cabeza[data-nivel="3"] .e-corta, .entrega-cabeza[data-nivel="4"] .e-corta { display: inline; }
.entrega-cabeza[data-nivel="4"] { padding-left: 10px; padding-right: 10px; }
.entrega-cabeza[data-nivel="4"] p { font-size: 11px; gap: 5px; }
.entrega-cabeza[data-nivel="4"] .entrega-donde { padding-left: 9px; margin-left: 9px !important; }
@media (max-width: 749px) {
	.entrega-cabeza:not([data-nivel]) .e-larga { display: none; }
	.entrega-cabeza:not([data-nivel]) .e-corta { display: inline; }
	.entrega-cabeza { padding: 10px 12px; }
	.entrega-cabeza p { font-size: 12.5px; gap: 6px; }
	.entrega-donde { padding-left: 12px; margin-left: 12px !important; }
}
@media (max-width: 359px) {
	.entrega-cabeza { padding: 9px 10px; }
	.entrega-cabeza p { font-size: 11px; gap: 5px; }
	.entrega-donde { padding-left: 9px; margin-left: 9px !important; }
	.entrega-punto { width: 10px; height: 10px; }
	.bandera { width: 18px; height: 12px; }
}
.entrega-punto { width: 12px; height: 12px; border-radius: 50%; background: #2fb36b; flex: none; animation: entrega-pulso 2s ease-out infinite; }
@keyframes entrega-pulso { 0% { box-shadow: 0 0 0 0 rgba(47, 179, 107, 0.5); } 70% { box-shadow: 0 0 0 7px rgba(47, 179, 107, 0); } 100% { box-shadow: 0 0 0 0 rgba(47, 179, 107, 0); } }
.bandera { width: 21px; height: 14px; border-radius: 2px; flex: none; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08); }
.entrega-pasos { list-style: none; margin: 0; padding: 0; position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); text-align: center; }
.entrega-pasos::before { content: ""; position: absolute; top: 25px; left: 16.66%; right: 16.66%; height: 2px; background: #000; }
.entrega-pasos li { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.entrega-icono { position: relative; z-index: 1; width: 52px; height: 52px; margin-bottom: 10px; border-radius: 50%; background: #000; color: #fff; display: flex; align-items: center; justify-content: center; }
.entrega-icono .icon { width: 24px; height: 24px; }
.entrega-pasos strong { font-family: var(--titulos); font-size: 15px; font-weight: 700; }
.entrega-pasos li > span:last-child { font-size: 14px; color: #333; }
@media (prefers-reduced-motion: reduce) { .entrega-punto { animation: none; } }
