html { --mm-grid-styled: 1; }
/* Each .gridProductos has its own maximum, across all its visible cards. */
.gridProductos .e-loop-item .elementor-element-771a8f0,
.gridProductos .e-loop-item .elementor-element-c17ba64,
.gridProductos .e-loop-item .elementor-element-5a5e54c {
  box-sizing: border-box;
  flex-grow: 0 !important;
  flex-shrink: 0 !important;
  min-height: 0 !important;
}

.gridProductos .e-loop-item .elementor-element-771a8f0 {
  height: var(--mm-image-height, auto) !important;
}

.gridProductos .elementor-element-771a8f0 a {
  display: block;
}

.gridProductos .elementor-element-771a8f0 img {
  display: block;
  width: 100%;
  height: var(--mm-image-height, auto) !important;
  max-height: none;
  object-fit: contain;
}

.gridProductos .e-loop-item .elementor-element-c17ba64 {
  height: var(--mm-title-height, auto) !important;
}

.gridProductos .e-loop-item .elementor-element-5a5e54c {
  height: var(--mm-stock-price-height, auto) !important;
}

/* Elementor and WooCommerce add bottom spacing at different nesting levels.
   Remove it from the stock and price widgets in grids and single products. */
.elementor-widget-woocommerce-product-stock,
.elementor-widget-woocommerce-product-price,
.elementor-widget-woocommerce-product-stock > .elementor-widget-container,
.elementor-widget-woocommerce-product-price > .elementor-widget-container {
  margin-bottom: 0 !important;
  margin-block-end: 0 !important;
  padding-bottom: 0 !important;
  padding-block-end: 0 !important;
}

.elementor-widget-woocommerce-product-stock .stock,
.elementor-widget-woocommerce-product-price .price {
  margin: 0 !important;
  margin-block: 0 !important;
  padding: 0 !important;
  padding-block: 0 !important;
}

/* Enlarge both button icons while Elementor keeps control of their layout. */
.btnIconoGrande .elementor-button-content-wrapper,
.btnIconoBlanco .elementor-button-content-wrapper {
  align-items: center;
  gap: 0 !important;
}

.btnIconoGrande .elementor-button-icon {
  margin: 0 !important;
}

.btnIconoGrande .elementor-button-icon svg {
  display: block;
  width: 85px !important;
  height: 30px !important;
  max-width: none;
}

.btnIconoBlanco .elementor-button-icon {
  margin: 0 5px 0 0 !important;
  background-position: center;
  background-repeat: no-repeat;
  background-size: auto 30px;
}

.btnIconoBlanco .elementor-button-icon svg {
  display: block;
  width: auto !important;
  height: 30px !important;
  max-width: none;
  transform: none !important;
  transition: none !important;
}

.btnIconoBlanco .elementor-button:hover .elementor-button-icon {
  background-image: url("https://magicmirrordesign.es/wp-content/uploads/2026/10/Icono-botones-marron.svg");
}

.btnIconoBlanco .elementor-button:hover .elementor-button-icon svg {
  opacity: 0;
}

/* Match the two actions in the product details, including wrapped labels. */
body.single-product .elementor-element-1ed0bd8 .elementor-element-10b8c9d .elementor-button,
body.single-product .elementor-element-1ed0bd8 .mm-wishlist-control .mm-wishlist-button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--mm-product-action-height, 52px);
}
body.single-product .elementor-element-1ed0bd8 .elementor-element-10b8c9d .elementor-button-content-wrapper {
  align-items: center;
  justify-content: center;
}


/* Quiet image motion. Only transforms change; Elementor owns the layout. */
.gridProductos .elementor-element-771a8f0 a {
  overflow: hidden;
  border-radius: 5px;
}
.gridProductos .elementor-element-771a8f0 img,
.magicmirror-child-categories .magicmirror-child-categories__image {
  transform: none !important;
  transition: transform 650ms cubic-bezier(.22, 1, .36, 1);
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .gridProductos .elementor-element-771a8f0 img[data-mm-motion-active],
  .magicmirror-child-categories .magicmirror-child-categories__image[data-mm-motion-active] {
    transform: perspective(1100px)
      translate3d(var(--mm-motion-x, 0px), var(--mm-motion-y, 0px), 0)
      rotateX(var(--mm-motion-rx, 0deg)) rotateY(var(--mm-motion-ry, 0deg))
      scale(var(--mm-motion-scale, 1.035)) !important;
    transition-duration: 300ms;
  }
  .magicmirror-child-categories__image { --mm-motion-scale: 1.055; }
  .gridProductos .btnIconoGrande .elementor-button-icon svg,
  .elementor-122 .elementor-element-10b8c9d .elementor-button-icon svg {
    transition: transform 400ms cubic-bezier(.22, 1, .36, 1);
  }
  .gridProductos .btnIconoGrande .elementor-button:is(:hover, :focus-visible) .elementor-button-icon svg,
  .elementor-122 .elementor-element-10b8c9d .elementor-button:is(:hover, :focus-visible) .elementor-button-icon svg {
    transform: translate3d(4px, -1px, 0) rotate(-2deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gridProductos .elementor-element-771a8f0 img,
  .magicmirror-child-categories .magicmirror-child-categories__image,
  .gridProductos .btnIconoGrande .elementor-button-icon svg,
  .elementor-122 .elementor-element-10b8c9d .elementor-button-icon svg {
    transform: none !important;
    transition: none !important;
  }
}


/* Lift the inner card so its stationary outer hit area prevents hover flicker. */
.gridProductos .e-loop-item > .e-con {
  position: relative;
  border-radius: 5px;
  transition: transform 350ms cubic-bezier(.22, 1, .36, 1),
    box-shadow 350ms cubic-bezier(.22, 1, .36, 1);
}
.gridProductos .elementor-element-771a8f0 img { --mm-motion-scale: 1.065; }
@media (hover: hover) and (pointer: fine) {
  .gridProductos .e-loop-item:is(:hover, :focus-within) > .e-con {
    z-index: 1;
    box-shadow: 0 14px 28px rgba(64, 56, 47, .14), 0 4px 8px rgba(64, 56, 47, .07);
  }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .gridProductos .e-loop-item:is(:hover, :focus-within) > .e-con { transform: translate3d(0, -6px, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .gridProductos .e-loop-item > .e-con { transition: none !important; }
}
