/* ===== Contenedor tienda (múltiples tarjetas en fila) ===== */
.mm-shop{
  display:grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap:16px;
  width:100%;
}
.elementor .mm-shop,
.entry-content .mm-shop{ max-width:100%; }

/* ===== Tarjeta blanca: imagen arriba, contenido abajo ===== */
.mm-shop .mm-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch;
  overflow:hidden;
  position:relative; /* overlay de Detalles */
}

/* Bloque de imagen (ocupa todo el ancho) */
.mm-shop .mm-card-media{
  flex:0 0 auto;
  width:100%;
  display:block;
  background:#fafafa;
  border-bottom:1px solid #f1f5f9;
}
.mm-shop .mm-card-media img{
  width:100%;
  height:auto;
  display:block;
}

/* === Galería dentro de la tarjeta === */
.mm-gallery{ position:relative; }
.mm-gallery .mm-g-img{ width:100%; height:auto; display:block; }
.mm-gallery .mm-g{
  position:absolute;
  top:10%;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#000;
  color:#fcbb3f;
  border:1px solid #e5e7eb;
  border-radius:9999px;
  cursor:pointer;
  padding:0;
  line-height:1;
  font-size:20px;            /* tamaño pedido */
  font-weight:800;           /* bold */
  font-family:Montserrat;
}
.mm-gallery .mm-g.mm-g-prev{ left:8px; }
.mm-gallery .mm-g.mm-g-next{ right:8px; }

/* Contenido debajo de la imagen */
.mm-shop .mm-card-body{
  flex:1 1 auto;
  padding:14px 16px 16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.mm-shop .mm-title{
  margin:0;
  font-size:1.5rem;
  line-height:1.3;
  text-align:center;
  font-family:montserrat;
  font-weight:800;
}
.mm-shop .mm-price{
  font-weight:800;
  text-align:center;
  font-size:1.5em;
  font-family:Montserrat;
}

/* Acciones (p.ej. Mostrar variaciones) */
.mm-shop .mm-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:8px;
}

.mm-shop .mm-qty-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:8px;
}

.mm-shop .mm-qty,
.mm-shop .mm-var-qty{
  width:90px;
  padding:6px 8px;
  border:1px solid #d1d5db;
  border-radius:8px;
  background:#fff;
  font-size:.95rem;
}
.mm-shop .mm-btn{
  appearance:none;
  border:0;
  border-radius:10px;
  padding:8px 12px;
  background:#111827;
  color:#fff;
  cursor:pointer;
  font-size:.95rem;
}
.mm-shop .mm-btn.mm-busy{ opacity:.6; cursor:default; }

/* ===== Panel “Detalles” (descripción corta) ===== */
.mm-details-wrap{ margin-top:8px; position:relative; }
.mm-details-toggle{
  display:flex;
  width:100%;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  text-align:right;
}
.mm-details-toggle .mm-details-caret{ margin-left:6px; }

/* Overlay absoluto: no refluye el grid */
.mm-details{
  position:absolute;
  left:0px;
  right:0px;
  bottom:30px;
  background:#000;
  border:0px solid #e5e7eb;
  border-radius:10px 10px 0 0;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  padding:10px 12px;
  opacity:0;
  transform:translateY(24px);        /* sale desde abajo */
  transform-origin:50% 100%;         /* anclado al borde inferior */
  pointer-events:none;
  visibility:hidden;
  will-change:transform, opacity;
  transition:
    transform .28s cubic-bezier(.2,.8,.2,1),
    opacity   .28s cubic-bezier(.2,.8,.2,1),
    visibility 0s .28s;
  z-index:2;
  font-family:Montserrat, sans-serif;
  font-weight:600;
  color:#fff;
}
.mm-details.is-open{
  opacity:1;
  transform:translateY(0);           /* se eleva hasta su posición */
  pointer-events:auto;
  visibility:visible;
  transition:
    transform .28s cubic-bezier(.2,.8,.2,1),
    opacity   .28s cubic-bezier(.2,.8,.2,1),
    visibility 0s;
}

.mm-details-content{
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  font-size:.95rem;
  color:inherit;
}

.mm-details-content p{ margin:0 0 .6em; }

/* ===== Modal para variaciones ===== */
.mm-modal{ position:fixed; inset:0; z-index:9999; display:none; }
.mm-modal.is-open{ display:block; }
.mm-modal__overlay{ position:absolute; inset:0; background:rgba(0,0,0,.8); }
.mm-modal__dialog{
  position:fixed; left:20px; right:20px; top:20px; bottom:20px;
  transform:none;
  width:auto; height:auto;
  box-shadow:none;
  display:flex; flex-direction:column; overflow:hidden;
}
.mm-modal__close{ position:absolute; right:10px; top:8px; background:transparent; color:#111; border:0; font-size:22px; cursor:pointer; }
.mm-modal__header{
  padding:70px 20px 10px 20px;
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  flex-direction:column;
}
.mm-modal__search{
  flex:1 1 auto;
  width:100%;
  color:#fff;
  background:#2b4f954a;
  border:1px solid #666;
  border-radius:3px;
  padding:.5rem 1rem;
  transition:all .3s;
  font-size:.95rem;
}
.mm-modal__totals{
  display:flex;
  gap:14px;
  font-weight:800;
  font-size:1.5em;
  font-family:Montserrat;
  color:aliceblue;
}
.mm-modal__body{ padding:12px 20px 20px 20px; overflow:auto; }
.mm-modal__footer{
  padding:12px 20px;
  display:flex;
  justify-content:center;
}

/* Override tipográfico del botón dentro del modal */
.mm-modal .mm-btn.mm-add-variations{
  font-family:Montserrat, sans-serif !important;
  font-size:1.5em !important;
  font-weight:800 !important;
  color:rgb(255 255 255 / 80%) !important;
  text-align:center !important;
  background:rgba(0,0,0,.5);
  border:0;
  border-radius:15px;
}
.mm-modal .mm-btn.mm-add-variations:hover,
.mm-modal .mm-btn.mm-add-variations:focus{
  color:#fff !important;
}

/* Rejilla de variaciones dentro del modal */
.mm-modal .mm-var-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:16px;
}
.mm-modal .mm-var-item{
  border:1px solid #e5e7eb; border-radius:10px; padding:8px; background:#fff;
  display:grid; grid-template-rows:auto auto auto auto; text-align:center; gap:6px;
}
.mm-modal .mm-var-img{ width:100%; display:block; }
.mm-modal .mm-var-img img{ width:100%; height:auto; margin:0 auto; display:block; }
.mm-modal .mm-var-code{ font-weight:600; font-size:.95rem; }
.mm-modal .mm-var-price{ font-size:.9rem; color:#374151; }
.mm-modal .mm-var-qty{ width:80px; margin:0 auto; padding:6px 8px; border:1px solid #d1d5db; border-radius:8px; background:#fff; }

/* Responsive */
@media (max-width:640px){
  .mm-shop{ grid-template-columns:1fr; }
  .mm-modal__dialog{ width:min(100vw - 20px, 1000px); }
}

/* ===== Mini-cart debajo de la tienda ===== */
.mm-mini-cart{ margin-top:24px; padding-top:12px; border-top:1px solid #e5e7eb; }
.mm-mini-cart.is-hidden{ display:none; }
.mm-mini-cart.is-visible{ display:block; }

.mm-mini-cart-content{ width:100%; }
.mm-mini-empty{ color:#555; padding:8px 0; }

.mm-mini-list{
  list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px;
}
.mm-mini-item{
  display:grid;
  grid-template-columns:64px 1fr auto;
  gap:12px;
  align-items:center;
  padding:8px 0;
  border-bottom:1px dashed #e5e7eb;
}
.mm-mini-thumb img{ width:64px; height:auto; display:block; }

.mm-mini-info{ display:flex; flex-direction:column; gap:6px; }
.mm-mini-title{ font-weight:600; font-size:.95rem; }

.mm-mini-ctrls{ display:flex; align-items:center; gap:8px; }
.mm-mini-btn{
  appearance:none; border:1px solid #d1d5db; background:#fff; border-radius:8px;
  padding:4px 8px; cursor:pointer; font-size:.9rem;
}
.mm-mini-qty{
  width:64px; padding:6px 8px; border:1px solid #d1d5db; border-radius:8px; text-align:center;
}

.mm-mini-line{ font-weight:600; white-space:nowrap; }

.mm-mini-summary{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:10px; }
.mm-mini-subtotal span{ color:#374151; margin-right:8px; }
.mm-mini-actions{ display:flex; gap:10px; }
.mm-mini-link{
  display:inline-block; padding:8px 12px; border:1px solid #d1d5db; border-radius:10px; text-decoration:none; color:#111827;
}
.mm-mini-link.mm-mini-primary{ background:#111827; color:#fff; border-color:#111827; }

/* Responsive mini-cart */
@media (max-width:640px){
  .mm-mini-cart .woocommerce-mini-cart{ grid-template-columns:1fr; }
  .mm-mini-cart .woocommerce-mini-cart .woocommerce-mini-cart-item img{ width:128px; }
}

/* ===== Mini-cart: tarjetas blancas y controles ===== */
.mm-mini-cart .woocommerce-mini-cart{
  list-style:none; margin:0; padding:0;
  display:grid !important;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:16px;
}
.mm-mini-cart .woocommerce-mini-cart .woocommerce-mini-cart-item{
  position:relative;
  background:#fff; border:1px solid #e5e7eb; border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
  padding:14px;
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
.mm-mini-cart .woocommerce-mini-cart .woocommerce-mini-cart-item .remove{
  position:absolute; right:10px; top:10px; line-height:1; order:initial;
}
.mm-mini-cart .woocommerce-mini-cart .woocommerce-mini-cart .woocommerce-mini-cart-item img,
.mm-mini-cart .woocommerce-mini-cart .woocommerce-mini-cart-item img{
  width:140px; height:auto; border-radius:8px; display:block; margin:4px auto 10px;
}
.mm-mini-cart .woocommerce-mini-cart .woocommerce-mini-cart-item > a:not(.remove){
  display:block; margin-bottom:6px; color:#111827; text-decoration:none;
}
.mm-mini-cart .woocommerce-mini-cart .woocommerce-mini-cart-item .quantity{
  margin-top:4px; color:#374151;
}

/* Controles de cantidad centrados */
.mm-mini-cart .mmc-qty{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:8px; }
.mm-mini-cart .mmc-btn{
  appearance:none; border:1px solid #d1d5db; background:#fff; border-radius:8px; padding:6px 10px; cursor:pointer; font-size:.95rem;
}
.mm-mini-cart .mmc-input{
  width:72px; text-align:center; padding:6px 8px; border:1px solid #d1d5db; border-radius:8px; background:#fff; font-size:.95rem;
}
.mm-mini-cart .mmc-remove{ margin-left:8px; color:#c81e1e !important; text-decoration:none; font-weight:700; }

/* Totales y botones debajo */
.mm-mini-cart .woocommerce-mini-cart__total{ grid-column:1/-1; margin-top:4px; padding:10px 0; border-top:0px solid #e5e7eb; }
.mm-mini-cart .woocommerce-mini-cart__buttons{
  grid-column:1/-1; display:flex; gap:10px;
  justify-content:flex-end; align-items:center;
}
.mm-mini-cart .woocommerce-mini-cart__buttons .button{ border-radius:10px; }
.mm-mini-cart .woocommerce-mini-cart__buttons .button.checkout{
  background:#fff; color:#111827; border:1px solid #e5e7eb; border-radius:12px; padding:10px 16px; box-shadow:none; text-decoration:none;
}

/* Fondo negro para la sección del mini-cart */
#mm-mini-cart,
.mm-mini-cart{
  background:#000;
  padding:20px;
  border-radius:12px;
}

/* Asegurar contraste en totales y mensajes */
.mm-mini-cart .woocommerce-mini-cart__total,
.mm-mini-cart .woocommerce-mini-cart__total *,
.mm-mini-cart .woocommerce-mini-cart__empty-message{
  color:#fff;
  text-align:center;
  font-family:Montserrat;
  font-weight:800;
  font-size:1.2em;
  padding-top:50px;
}
