/* =========================================================
   MJ46 · MEJORAS DEL CLIENTE (v3) · versión 2.3.0
   ---------------------------------------------------------
   Se carga DESPUÉS de woocommerce.css, así que aquí se
   sobreescribe lo anterior sin tocar esos archivos.

   Nota sobre el peso de la tipografía: el sitio tiene un
   CSS adicional que fuerza `font-weight` con !important en
   .mj46 (600 en todo y 400 en p/li/span sin clase "mj-").
   Por eso las negritas de precio de este archivo llevan
   !important y una especificidad de (0,3,0), que es lo que
   hace falta para ganar a esas dos reglas.
   ========================================================= */

:root{
  --mj-icon-swap:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 4 3 8l4 4M3 8h14M17 20l4-4-4-4M21 16H7'/%3E%3C/svg%3E");
  --mj-price-strong:800;
}

@keyframes mjSpin{to{transform:rotate(360deg);}}
@keyframes mjPop{0%{transform:scale(.86);}55%{transform:scale(1.12);}100%{transform:scale(1);}}

/* =========================================================
   1 · ENCABEZADO DE SECCIÓN EN LA HOME
   Tipografía normal: sin mayúsculas forzadas, sin espaciado
   entre letras y sin el azul de marca. El texto (por ejemplo
   "Descubre todos nuestros productos") se muestra tal cual
   está escrito, con solo la primera letra en mayúscula.
   ========================================================= */
.mj-section .mj-eyebrow,
.mj-section-head .mj-eyebrow{
  text-transform:none;
  letter-spacing:0;
  font-size:15px;
  color:var(--mj-muted);
  margin-bottom:2px;
}

/* =========================================================
   2 · COMPARADOR: botón visible con icono + texto
   Antes era un círculo con un gráfico de barras que no decía
   nada. Ahora es una píldora "⇄ Comparar", siempre visible,
   y se ve también en móvil.
   ========================================================= */
.mj-compare-btn{
  width:auto;height:32px;padding:0 12px 0 10px;gap:6px;
  border-radius:16px;
  background:rgba(255,255,255,.96);
  border:1px solid var(--mj-line);
  color:var(--mj-ink);
  font-size:12.5px;line-height:1;letter-spacing:.01em;
  opacity:1;                      /* siempre visible, no solo al pasar el cursor */
  box-shadow:0 4px 12px -8px rgba(0,0,0,.45);
}
.mj-compare-btn::before{display:none;}   /* fuera el icono de barras */
.mj-compare-btn__ico{
  flex:0 0 15px;width:15px;height:15px;background:currentColor;
  -webkit-mask:var(--mj-icon-swap) center/15px 15px no-repeat;
          mask:var(--mj-icon-swap) center/15px 15px no-repeat;
}
.mj-compare-btn__txt{
  position:static;width:auto;height:auto;overflow:visible;clip:auto;
  white-space:nowrap;
}
.mj-compare-btn:hover{border-color:var(--mj-ink);}
.mj-compare-btn.is-on{background:var(--mj-brand);border-color:var(--mj-brand);color:#fff;}
.mj-compare-btn.is-on .mj-compare-btn__ico{
  -webkit-mask:var(--mj-icon-check) center/15px 15px no-repeat;
          mask:var(--mj-icon-check) center/15px 15px no-repeat;
}
@media (max-width:768px){
  /* Antes se ocultaba en móvil; ahora se muestra más compacto. */
  .mj-compare-btn{display:inline-flex;height:28px;padding:0 9px 0 8px;font-size:11px;left:8px;bottom:8px;gap:5px;}
  .mj-compare-btn__ico{flex-basis:13px;width:13px;height:13px;-webkit-mask-size:13px 13px;mask-size:13px 13px;}
}
/* La barra flotante no debe tapar el botón del carrito ni el panel. */
.mj-compare-bar{z-index:90;}

/* =========================================================
   3 · CARRITO LATERAL (sidebar deslizante)
   ========================================================= */
html.mj-mc-lock,html.mj-fp-lock{overflow:hidden;}

.mj-mc{position:fixed;inset:0;z-index:300;visibility:hidden;pointer-events:none;}
.mj-mc.is-open{visibility:visible;pointer-events:auto;}
.mj-mc__overlay{
  position:absolute;inset:0;background:rgba(20,20,24,.5);
  opacity:0;transition:opacity .22s ease;
}
.mj-mc.is-open .mj-mc__overlay{opacity:1;}
.mj-mc__panel{
  position:absolute;top:0;right:0;bottom:0;
  width:min(420px,100vw);
  background:#fff;display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .26s cubic-bezier(.22,.8,.3,1);
  box-shadow:-24px 0 60px -30px rgba(0,0,0,.5);
  outline:none;
}
.mj-mc.is-open .mj-mc__panel{transform:none;}
.mj-mc__inner{display:flex;flex-direction:column;min-height:0;height:100%;transition:opacity .15s ease;}
.mj-mc.is-busy .mj-mc__inner{opacity:.55;pointer-events:none;}

.mj-mc__head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:18px 20px;border-bottom:1px solid var(--mj-line);
}
.mj-mc__title{margin:0;font-size:20px;line-height:1;}
.mj-mc__n{color:var(--mj-muted);font-size:16px;}
.mj-mc__close{
  width:38px;height:38px;border:none;border-radius:50%;cursor:pointer;
  background:var(--mj-soft);color:var(--mj-ink);position:relative;flex:0 0 38px;
}
.mj-mc__close::before{
  content:"";position:absolute;inset:0;margin:auto;width:16px;height:16px;background:currentColor;
  -webkit-mask:var(--mj-icon-x) center/16px 16px no-repeat;mask:var(--mj-icon-x) center/16px 16px no-repeat;
}
.mj-mc__close:hover{background:var(--mj-ink);color:#fff;}

.mj-mc__scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:6px 20px 20px;}

.mj-mc__empty{text-align:center;padding:40px 8px 24px;}
.mj-mc__empty p{margin:0 0 8px;color:var(--mj-muted);}
.mj-mc__empty strong{color:var(--mj-ink);font-size:18px;}
.mj-mc__empty .mj-btn{margin-top:10px;}

.mj-mc__items{list-style:none;margin:0;padding:0;}
.mj-mc__item{
  position:relative;display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;
  padding:16px 34px 16px 0;border-bottom:1px solid var(--mj-line);
}
.mj-mc__media{display:block;border-radius:10px;overflow:hidden;background:var(--mj-soft);aspect-ratio:1/1;}
.mj-mc__media img{width:100%;height:100%;object-fit:cover;}
.mj-mc__info{min-width:0;display:flex;flex-direction:column;gap:6px;}
.mj-mc__name{font-size:14.5px;line-height:1.25;color:var(--mj-ink);}
.mj-mc__name:hover{color:var(--mj-brand);}
.mj-mc__info dl.variation{margin:0;display:flex;flex-wrap:wrap;gap:2px 8px;font-size:12.5px;color:var(--mj-muted);}
.mj-mc__info dl.variation dt,.mj-mc__info dl.variation dd{margin:0;}
.mj-mc__info dl.variation dd p{margin:0;}
.mj-mc__buy{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px;}
.mj-mc__qty{display:inline-flex;align-items:center;border:1px solid var(--mj-line);border-radius:10px;overflow:hidden;}
.mj-mc__qty button{
  width:32px;height:34px;border:none;background:var(--mj-soft);cursor:pointer;
  font-size:17px;line-height:1;color:var(--mj-ink);
}
.mj-mc__qty button:hover:not(:disabled){background:var(--mj-line);}
.mj-mc__qty button:disabled{opacity:.35;cursor:not-allowed;}
.mj-mc__qty span{min-width:34px;text-align:center;font-size:14px;}
.mj-mc__qty-fixed{font-size:13px;color:var(--mj-muted);}
.mj-mc__price{font-size:16px;}
.mj-mc__unit{font-size:12px;color:var(--mj-muted);}
.mj-mc__remove{
  position:absolute;top:14px;right:0;width:30px;height:30px;border:none;border-radius:50%;
  background:none;cursor:pointer;color:var(--mj-muted);
}
.mj-mc__remove::before{
  content:"";position:absolute;inset:0;margin:auto;width:15px;height:15px;background:currentColor;
  -webkit-mask:var(--mj-icon-x) center/15px 15px no-repeat;mask:var(--mj-icon-x) center/15px 15px no-repeat;
}
.mj-mc__remove:hover{background:var(--mj-soft);color:var(--mj-sale);}

/* También te puede interesar */
.mj-mc__rec{margin-top:22px;}
.mj-mc__rec h3{font-size:15px;margin:0 0 10px;}
.mj-mc__rec-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.mj-mc__rec-item{
  display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;
  padding:8px;border:1px solid var(--mj-line);border-radius:12px;
}
.mj-mc__rec-media{display:block;border-radius:8px;overflow:hidden;background:var(--mj-soft);aspect-ratio:1/1;}
.mj-mc__rec-media img{width:100%;height:100%;object-fit:cover;}
.mj-mc__rec-info{min-width:0;display:flex;flex-direction:column;gap:2px;}
.mj-mc__rec-name{font-size:13.5px;line-height:1.2;color:var(--mj-ink);}
.mj-mc__rec-price{font-size:13.5px;color:var(--mj-muted);}
.mj-mc__add{
  display:inline-flex;align-items:center;justify-content:center;
  height:34px;padding:0 14px;border-radius:17px;
  background:var(--mj-ink);color:#fff;font-size:13px;white-space:nowrap;
  transition:background .15s ease,color .15s ease;
}
.mj-mc__add:hover{background:var(--mj-cta);color:var(--mj-on-cta);}
.mj-mc__add.loading{opacity:.55;pointer-events:none;}
.mj-mc__add.added{background:var(--mj-brand);color:#fff;}
.mj-mc__add--view{background:var(--mj-soft);color:var(--mj-ink);}
.mj-mc .added_to_cart{display:none !important;}

.mj-mc__foot{padding:16px 20px 20px;border-top:1px solid var(--mj-line);background:#fff;box-shadow:0 -14px 24px -22px rgba(0,0,0,.35);}
.mj-mc__subtotal{display:flex;align-items:baseline;justify-content:space-between;font-size:16px;}
.mj-mc__subtotal strong{font-size:22px;}
.mj-mc__note{margin:2px 0 14px;font-size:12.5px;color:var(--mj-muted);}
.mj-mc__go{padding:16px;font-size:16px;}
.mj-mc__keep{
  display:block;width:100%;margin-top:10px;padding:8px;border:none;background:none;cursor:pointer;
  font-size:14px;color:var(--mj-muted);text-decoration:underline;
}
.mj-mc__keep:hover{color:var(--mj-ink);}

/* Precios del panel en negrita real (ver nota al principio del archivo). */
.mj46 .mj-mc .mj-mc__price *,
.mj46 .mj-mc .mj-mc__subtotal strong *{font-weight:var(--mj-price-strong) !important;}
.mj46 .mj-mc .mj-mc__price,
.mj46 .mj-mc .mj-mc__subtotal strong{font-weight:var(--mj-price-strong) !important;}

@media (max-width:480px){
  .mj-mc__panel{width:100vw;}
  .mj-mc__head,.mj-mc__scroll,.mj-mc__foot{padding-left:16px;padding-right:16px;}
}
@media (prefers-reduced-motion:reduce){
  .mj-mc__panel,.mj-mc__overlay{transition:none;}
}

/* Contador del carrito: oculto cuando está a 0. */
.mj-iconbtn__count[hidden]{display:none !important;}

/* =========================================================
   4 · UN SOLO AMARILLO EN LA FICHA
   ---------------------------------------------------------
   El amarillo "premium" (--mj-tan) no se usa en la ficha: si
   cualquier regla lo toma por variable, aquí pasa a ser el
   amarillo regular de marca, el mismo que "OFERTA TERMINA EN".
   ========================================================= */
.single-product,
.single-product .mj-single{--mj-tan:var(--mj-cta);}

/* =========================================================
   6 · PACK / CONJUNTO: más fuerza visual y precios en bold
   ========================================================= */
.mj-fbt{
  background:#fff;
  border:2px solid var(--mj-cta);
  box-shadow:0 24px 50px -34px rgba(0,0,0,.45);
}
.mj-fbt__head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px;}
.mj-fbt__head h2{margin:0;font-size:24px;}
.mj-fbt__badge{
  display:inline-flex;align-items:center;padding:6px 13px;border-radius:20px;
  background:var(--mj-cta);color:var(--mj-on-cta);font-size:14px;line-height:1;
}
.mj-fbt__row{gap:18px;}
.mj-fbt__item{width:150px;}
.mj-fbt__media{border-width:2px;}
.mj-fbt__item b{font-size:14px;margin-top:10px;}
.mj-fbt__price{display:block;margin-top:4px;font-size:20px;color:var(--mj-ink);}
.mj-fbt__plus{font-size:32px;color:var(--mj-ink);}

.mj-fbt__total{
  margin-left:auto;min-width:280px;text-align:left;
  background:var(--mj-ink);color:#fff;
  border-radius:var(--mj-radius-lg);padding:22px 24px;
}
.mj-fbt__label{color:#C9CCD1;font-size:14px;}
.mj-fbt__was{display:block;margin-top:6px;font-size:17px;color:#9AA0A6;}
.mj-fbt__sum{margin:2px 0 8px;font-size:38px;line-height:1;color:var(--mj-cta);}
.mj-fbt__save{
  display:inline-block;margin-bottom:14px;padding:4px 10px;border-radius:7px;
  background:var(--mj-sale);color:#fff;font-size:13.5px;
}
.mj-fbt__cta{padding:16px;font-size:16px;}

/* Negrita real en TODOS los precios del pack (importe, símbolo y tachado). */
.mj46 .mj-fbt .mj-fbt__price,
.mj46 .mj-fbt .mj-fbt__price *,
.mj46 .mj-fbt .mj-fbt__sum,
.mj46 .mj-fbt .mj-fbt__sum *,
.mj46 .mj-fbt .mj-fbt__was,
.mj46 .mj-fbt .mj-fbt__was *,
.mj46 .mj-fbt .mj-fbt__save,
.mj46 .mj-fbt .mj-fbt__save *{font-weight:var(--mj-price-strong) !important;}

@media (max-width:768px){
  .mj-fbt__item{width:104px;}
  .mj-fbt__price{font-size:17px;}
  .mj-fbt__total{min-width:0;width:100%;}
  .mj-fbt__sum{font-size:32px;}
}

/* =========================================================
   7 · AÑADIR AL CARRITO: animación sutil, rápida y clara
   ---------------------------------------------------------
   Antes: el botón se ensanchaba al pasar el cursor, cambiaba de
   color y de tamaño. Ahora el botón NO cambia de tamaño:
     · reposo   → círculo oscuro con carrito
     · hover    → pasa a amarillo (nada más)
     · cargando → spinner, ~0,6 s
     · añadido  → círculo verde-azulado con ✓ y un pequeño "pop";
                  vuelve a reposo a los 2 s. Además se abre el
                  carrito lateral, que es la confirmación completa.
   ========================================================= */
.mj-card__media .mj-cardcta{
  width:42px;height:42px;padding:0;border-radius:50%;
  justify-content:center;
  transition:background .15s ease,color .15s ease,transform .12s ease;
}
.mj-card__media .mj-cardcta::before{margin:0;flex:0 0 20px;}
.mj-card__media .mj-cardcta::after{content:none !important;display:none !important;}   /* pseudo-elemento propio de WooCommerce */

.mj-card:hover .mj-card__media .mj-cardcta,
.mj-card__media .mj-cardcta:focus-visible{
  width:42px;padding:0;font-size:0;
  background:var(--mj-cta);color:var(--mj-on-cta);
}
.mj-card__media .mj-cardcta:active{transform:scale(.94);}

.mj-card__media .mj-cardcta.loading{pointer-events:none;}
.mj-card__media .mj-cardcta.loading::before{
  opacity:1;flex-basis:18px;width:18px;height:18px;
  background:transparent;-webkit-mask:none;mask:none;
  border:2px solid currentColor;border-right-color:transparent;border-radius:50%;
  animation:mjSpin .6s linear infinite;
}
.mj-card__media .mj-cardcta.added,
.mj-card:hover .mj-card__media .mj-cardcta.added{
  background:var(--mj-brand);color:#fff;
  animation:mjPop .28s ease;
}

@media (max-width:768px){
  .mj-card__media .mj-cardcta,
  .mj-card:hover .mj-card__media .mj-cardcta{width:38px;height:38px;bottom:8px;right:8px;}
}

/* Ficha: el botón principal también confirma sin ambigüedad. */
.mj-single__summary .single_add_to_cart_button{transition:background .15s ease,color .15s ease,transform .12s ease;}
.mj-single__summary .single_add_to_cart_button:active{transform:scale(.99);}
.mj-single__summary .single_add_to_cart_button.loading{opacity:.75;pointer-events:none;position:relative;}
.mj-single__summary .single_add_to_cart_button.loading::after{
  content:"";display:inline-block;width:16px;height:16px;margin-left:10px;vertical-align:-3px;
  border:2px solid currentColor;border-right-color:transparent;border-radius:50%;
  animation:mjSpin .6s linear infinite;
}
.mj-single__summary .single_add_to_cart_button.added{
  background:var(--mj-brand) !important;color:#fff !important;
}
.mj-single__summary .single_add_to_cart_button.added::after{content:none;}
.mj-single__summary .added_to_cart{display:none !important;}

/* =========================================================
   8 · PRODUCTOS SIN STOCK: visibles desde la tarjeta
   Etiqueta "Agotado" arriba a la izquierda + imagen atenuada
   (sigue viéndose) + "Sin existencias" junto al precio.
   ========================================================= */
.mj-badge--soldout{
  background:#fff;color:var(--mj-ink);
  border:1.5px solid var(--mj-ink);
  font-size:12px;padding:4px 9px;
  box-shadow:0 4px 12px -8px rgba(0,0,0,.5);
}
.mj-card--soldout .mj-card__media img{filter:grayscale(.6);opacity:.6;}
.mj-card--soldout .mj-card__title a{color:var(--mj-muted);}
.mj-card--soldout .mj-card__price{color:var(--mj-muted);}
.mj-card--soldout:hover{transform:none;box-shadow:none;}
.mj-card__stock{font-size:13px;color:var(--mj-sale);}
@media (max-width:768px){
  .mj-badge--soldout{font-size:10.5px;padding:3px 7px;}
}

/* =========================================================
   9 · FILTROS EN PANEL LATERAL IZQUIERDO
   ========================================================= */
.mj-shop__layout--panel{
  display:grid;grid-template-columns:264px minmax(0,1fr);gap:28px;align-items:start;
}

/* Barra de resultados: contador · [Filtros en móvil] · orden */
.mj-shop__toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.mj-shop__toolbar .woocommerce-result-count{margin:0;font-size:14px;color:var(--mj-muted);}
.mj-shop__toolbar .mj-filters__sort{margin-left:auto;}

/* El panel: fijo mientras se navega por el listado */
.mj-fp{
  position:sticky;top:var(--mj-fp-top,148px);
  max-height:calc(100vh - var(--mj-fp-top,148px) - 16px);
  display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--mj-line);border-radius:var(--mj-radius-lg);
  overflow:hidden;
}
.mj-fp__form{display:flex;flex-direction:column;min-height:0;flex:1;}
.mj-fp__head{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px;border-bottom:1px solid var(--mj-line);
}
.mj-fp__title{display:inline-flex;align-items:center;gap:8px;font-size:15px;}
.mj-fp__title .mj-i{width:16px;height:16px;}
.mj-fp__clear{margin-left:auto;font-size:13px;color:var(--mj-sale);text-decoration:underline;}
.mj-fp__clear:hover{color:var(--mj-ink);}
.mj-fp__close{display:none;}

.mj-fp__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 16px;}
.mj-fp__foot{padding:12px 16px;border-top:1px solid var(--mj-line);background:#fff;}
.mj-fp__apply{
  width:100%;height:42px;border:none;border-radius:10px;cursor:pointer;
  background:var(--mj-ink);color:#fff;font-size:14px;letter-spacing:.02em;
  transition:background .15s ease;
}
.mj-fp__apply:hover{background:#000;}

/* Interruptor "Solo disponible" */
.mj-fp__stock{
  display:flex;align-items:center;gap:10px;margin:12px 0 4px;padding:10px 12px;
  border:1px solid var(--mj-line);border-radius:10px;cursor:pointer;font-size:14px;
}
.mj-fp__stock input{width:16px;height:16px;margin:0;accent-color:var(--mj-ink);cursor:pointer;}
.mj-fp__stock.is-on{border-color:var(--mj-ink);background:var(--mj-soft);}

/* Grupos desplegables */
.mj-fg{border-bottom:1px solid var(--mj-line);}
.mj-fg:last-of-type{border-bottom:none;}
.mj-fg__head{
  display:flex;align-items:center;gap:8px;padding:14px 0;cursor:pointer;list-style:none;font-size:14.5px;
}
.mj-fg__head::-webkit-details-marker{display:none;}
.mj-fg__head span{flex:1;}
.mj-fg__head .mj-i{width:14px;height:14px;color:var(--mj-muted);transition:transform .18s ease;}
.mj-fg[open] > .mj-fg__head .mj-i{transform:rotate(180deg);}
.mj-fg__n{
  display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;
  border-radius:9px;background:var(--mj-cta);color:var(--mj-on-cta);font-size:11px;
}
.mj-fg__body{padding:0 0 14px;}
.mj-fg .mj-filter__list{max-height:230px;}
.mj-fg .mj-filter__opt{padding:6px 4px;}
.mj-fg .mj-filter__quick{margin:0;}

/* Widgets de la categoría, dentro del panel */
.mj-fp__widgets{padding:0 16px 16px;border-top:1px solid var(--mj-line);}

/* Botón "Filtros": solo en móvil / tablet */
.mj-fp-toggle{
  display:none;align-items:center;gap:8px;height:40px;padding:0 14px;
  border:1px solid var(--mj-ink);border-radius:10px;background:#fff;color:var(--mj-ink);
  font-size:14px;cursor:pointer;
}
.mj-fp-toggle .mj-i{width:16px;height:16px;}
.mj-fp-toggle__n{
  display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;
  border-radius:9px;background:var(--mj-cta);color:var(--mj-on-cta);font-size:11px;
}
.mj-fp-overlay{display:none;}

/* Hasta 1100 px el panel pasa a cajón lateral (mismo corte que el resto de la tienda). */
@media (max-width:1100px){
  .mj-shop__layout--panel{grid-template-columns:1fr;}
  .mj-fp-toggle{display:inline-flex;}

  .mj-fp-overlay{
    display:block;position:fixed;inset:0;z-index:290;background:rgba(20,20,24,.5);
    opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;
  }
  .mj-fp-overlay.is-open{opacity:1;visibility:visible;}

  .mj-fp{
    position:fixed;top:0;bottom:0;left:0;z-index:295;
    width:min(360px,92vw);max-height:none;border:none;border-radius:0;
    transform:translateX(-102%);transition:transform .26s cubic-bezier(.22,.8,.3,1);
    box-shadow:24px 0 60px -30px rgba(0,0,0,.5);
  }
  .mj-fp.is-open{transform:none;}
  .mj-fp__close{
    display:block;position:relative;width:36px;height:36px;border:none;border-radius:50%;
    background:var(--mj-soft);cursor:pointer;flex:0 0 36px;
  }
  .mj-fp__clear{margin-left:auto;}
  .mj-fp__close::before{
    content:"";position:absolute;inset:0;margin:auto;width:15px;height:15px;background:var(--mj-ink);
    -webkit-mask:var(--mj-icon-x) center/15px 15px no-repeat;mask:var(--mj-icon-x) center/15px 15px no-repeat;
  }
}
@media (prefers-reduced-motion:reduce){
  .mj-fp,.mj-fp-overlay{transition:none;}
}

/* =========================================================
   FIX · Desbordamiento lateral en móvil
   ---------------------------------------------------------
   La ficha usaba minmax(340px,1fr): en pantallas de menos de
   ~388 px (iPhone SE/mini, Android compactos) el contenido útil
   es de ~327 px y la columna, que no baja de 340, se salía.
   min(340px,100%) mantiene las dos columnas en escritorio y
   deja que en móvil la columna ocupe justo lo que hay.
   ========================================================= */
.mj-single__top{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));}
.mj-single__top > *{min-width:0;}

/* Paneles fuera de pantalla: que no puedan generar scroll en ningún navegador. */
.mj-mc{overflow:hidden;}
.mj-fp-overlay{overflow:hidden;}

/* =========================================================
   FIX · Franja blanca a la derecha en móvil (causa real)
   ---------------------------------------------------------
   WooCommerce mete en cada precio con oferta textos ocultos
   (<span class="screen-reader-text">El precio original era…</span>)
   y el tema los pinta con position:absolute. Como NINGÚN
   ancestro tenía position, su bloque contenedor era la página
   entera: los spans de las tarjetas que quedan fuera de pantalla
   en la fila deslizable de «Productos de la semana» NO se recortaban
   y estiraban el documento (738 px en un móvil de 393).
   Haciendo relativa la tarjeta (que ya recorta con overflow:hidden)
   el texto oculto queda contenido dentro de ella.
   ========================================================= */
.mj-card,
li.product.mj-card{position:relative;}

/* Mismo problema en cualquier otra fila deslizable con texto oculto dentro. */
.mj-week ul.products.mj-week__row,
.mj-cats,
.mj-brands{position:relative;}
