/* Alapuerta - alineacion de las tarjetas de producto
   El titulo se recorta VISUALMENTE a 3 lineas (el texto completo sigue en el HTML,
   asi que ni el SEO ni los lectores de pantalla pierden nada) y el bloque de
   precio + boton se ancla abajo, de modo que todas las filas quedan alineadas. */

.ap-page ul.products,.ap-tpl ul.products{align-items:stretch!important;}

.ap-page ul.products li.product,.ap-tpl ul.products li.product{
  display:flex!important;flex-direction:column!important;height:100%!important;
}

/* Imagen con proporcion fija: iguala la altura visual de todas las tarjetas */
.ap-page ul.products li.product a img,.ap-tpl ul.products li.product a img{
  aspect-ratio:1/1;object-fit:contain;width:100%;height:auto;display:block;margin:0 0 14px!important;
}

/* Titulo: 3 lineas exactas, con altura reservada para que no baile */
.ap-page ul.products li.product .woocommerce-loop-product__title,
.ap-tpl ul.products li.product .woocommerce-loop-product__title{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;
  min-height:calc(3 * 1.45em);margin:0 0 10px!important;
}

/* Rating opcional sin romper la alineacion */
.ap-page ul.products li.product .star-rating,.ap-tpl ul.products li.product .star-rating{
  margin:0 18px 8px!important;font-size:12px!important;
}

/* El precio se pega al fondo: empuja todo lo de arriba */
.ap-page ul.products li.product .price,.ap-tpl ul.products li.product .price{
  margin-top:auto!important;padding-top:4px!important;
}

/* Reserva para la linea de precio con oferta (evita saltos entre tarjetas con y sin rebaja) */
.ap-page ul.products li.product .price,.ap-tpl ul.products li.product .price{
  min-height:30px;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;
}
.ap-page ul.products li.product .price del,.ap-tpl ul.products li.product .price del{
  order:1;margin:0!important;
}
.ap-page ul.products li.product .price ins,.ap-tpl ul.products li.product .price ins{
  order:2;margin:0!important;
}

/* El boton siempre al final, con aire respecto al borde de la tarjeta */
.ap-page ul.products li.product,.ap-tpl ul.products li.product{
  padding:0 0 20px!important;
}
.ap-page ul.products li.product .button,.ap-tpl ul.products li.product .button{
  margin:14px 18px 0!important;
}
.ap-page ul.products li.product .added_to_cart,.ap-tpl ul.products li.product .added_to_cart{
  display:block;margin:8px 18px 0!important;font-size:12px;text-align:center;
  color:var(--ap-text-muted)!important;text-decoration:none;
}

/* El badge no debe desplazar la imagen */
.ap-page ul.products li.product,.ap-tpl ul.products li.product{position:relative;}

@media(max-width:767px){
  .ap-page ul.products li.product .woocommerce-loop-product__title,
  .ap-tpl ul.products li.product .woocommerce-loop-product__title{
    -webkit-line-clamp:3;min-height:calc(3 * 1.4em);
  }
  .ap-page ul.products li.product .price,.ap-tpl ul.products li.product .price{min-height:26px;}
}
