/* ======================================================
   TIGO VAPE – Tarjetas Woo: aplicar en todo el sitio,
   excepto en páginas de producto individual (.single-product)
   ====================================================== */
:root{
  --tv-grid-max:1190px;
  --tv-card-gap:28px;
  --tv-card-inset:12px;
  --tv-card-radius:14px;
  --tv-img-ratio:1/1;
  --tv-edge-m:16px;
  --tv-stack-gap:3px;
  --tv-cta-radius:14px;
  --tv-cta-gap:10px;
  --tv-cta-h-d:15px;
  --tv-cta-h-m:25px;
  --tv-cta-h:var(--tv-cta-h-d);
  --tv-price-ins-d:18px;
  --tv-price-del-d:18px;
  --tv-stars-size-d:15px;
  --tv-price-ins-m:15px;
  --tv-price-del-m:15px;
  --tv-stars-size-m:13px;
}

/* ===== Grid universal (excepto single-product) ===== */
body:not(.single-product) ul.products{
  /* forzar grid y limpiar overrides del tema */
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:var(--tv-card-gap) !important;
  list-style:none;
  padding:0 !important;
  margin:0 auto !important;
  max-width:var(--tv-grid-max);
  box-sizing:border-box;

  /* reset de reglas del tema (flex & offsets) */
  flex-wrap:unset !important;
  width:100% !important;
  margin-left:0 !important;
  clear:both !important;
}

/* Algunos listados (Elementor/plantillas) envuelven la UL dentro de .woocommerce o .site-main */
body:not(.single-product) .woocommerce > ul.products,
body:not(.single-product) .woocommerce ul.products,
body:not(.single-product) .site-main ul.products{
  display:grid !important;
}

/* Quitar pseudo-elementos de Woo que a veces añaden espacio */
body:not(.single-product) .woocommerce ul.products::before,
body:not(.single-product) .woocommerce ul.products::after{
  display:none !important;
}

/* ===== Tarjeta ===== */
body:not(.single-product) .woocommerce ul.products li.product{
  margin:0 !important;
  padding:0 !important;
  width:auto !important;
  min-width:0;
  box-sizing:border-box;

  background:#fff;
  border-radius:var(--tv-card-radius);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  height:100%;
  position:relative;

  box-shadow:0 1px 0 rgba(0,0,0,.04);
  transition:box-shadow .2s ease, transform .2s ease;

  padding-bottom:calc(var(--tv-cta-h) + var(--tv-card-inset) + var(--tv-cta-gap)) !important;
}
body:not(.single-product) .woocommerce ul.products li.product:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.06);
  transform:translateY(-2px);
}

/* Imagen */
body:not(.single-product) .woocommerce ul.products li.product .woocommerce-image__wrapper{
  padding:var(--tv-card-inset) var(--tv-card-inset) 0;
  display:grid;
  place-items:center;
  aspect-ratio:var(--tv-img-ratio);
  background:transparent;
}
body:not(.single-product) .woocommerce ul.products li.product .woocommerce-image__wrapper img{
  width:100%;
  height:100%;
  object-fit:contain;
}

/* Fallback si no hay aspect-ratio */
@supports not (aspect-ratio:1 / 1){
  body:not(.single-product) .woocommerce ul.products li.product .woocommerce-image__wrapper{min-height:240px}
  body:not(.single-product) .woocommerce ul.products li.product .woocommerce-image__wrapper img{height:100%}
}

/* Contenido */
body:not(.single-product) .woocommerce ul.products li.product .woocommerce-card__header{
  padding:var(--tv-card-inset);
  display:grid;
  row-gap:var(--tv-stack-gap);
  align-content:start;
  text-align:left;
}
body:not(.single-product) .woocommerce ul.products li.product .product__categories{margin:0}
body:not(.single-product) .woocommerce ul.products li.product .woocommerce-loop-product__title{margin:0}

/* Precio */
body:not(.single-product) .woocommerce ul.products li.product .price{
  line-height:1.25;
  font-weight:700;
  display:block;
  margin-top:0;
  font-size:var(--tv-price-ins-m);
}
body:not(.single-product) .woocommerce ul.products li.product .price ins{
  font-size:var(--tv-price-ins-m);
  font-weight:700;
  text-decoration:none;
}
body:not(.single-product) .woocommerce ul.products li.product .price del{
  font-size:var(--tv-price-del-m);
  opacity:.7;
  margin-right:.35em;
}
@media (min-width:1024px){
  body:not(.single-product) .woocommerce ul.products li.product .price,
  body:not(.single-product) .woocommerce ul.products li.product .price ins{font-size:var(--tv-price-ins-d)}
  body:not(.single-product) .woocommerce ul.products li.product .price del{font-size:var(--tv-price-del-d)}
}

/* Botón CTA */
body:not(.single-product) .woocommerce ul.products li.product a.button,
body:not(.single-product) .woocommerce ul.products li.product a.add_to_cart_button,
body:not(.single-product) .woocommerce ul.products li.product a.ajax_add_to_cart,
body:not(.single-product) .woocommerce ul.products li.product a.added_to_cart{
  position:absolute;
  left:var(--tv-card-inset);
  right:var(--tv-card-inset);
  bottom:var(--tv-card-inset);
  min-height:var(--tv-cta-h);
  border-radius:var(--tv-cta-radius) !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transform:translateY(6px);
  transition:opacity .2s ease, transform .2s ease;
  width:auto;
}
body:not(.single-product) .woocommerce ul.products li.product:hover a.button,
body:not(.single-product) .woocommerce ul.products li.product:hover a.add_to_cart_button,
body:not(.single-product) .woocommerce ul.products li.product:hover a.ajax_add_to_cart,
body:not(.single-product) .woocommerce ul.products li.product:hover a.added_to_cart{
  opacity:1;
  transform:translateY(0);
}
@media (hover:none),(max-width:767.98px){
  :root{--tv-cta-h:var(--tv-cta-h-m)}
  body:not(.single-product) .woocommerce ul.products li.product a.button,
  body:not(.single-product) .woocommerce ul.products li.product a.add_to_cart_button,
  body:not(.single-product) .woocommerce ul.products li.product a.ajax_add_to_cart,
  body:not(.single-product) .woocommerce ul.products li.product a.added_to_cart{
    opacity:1 !important; transform:none !important; display:inline-flex !important; z-index:2;
  }
}

/* Estrellas (usando tu plugin/markup existente) */
body:not(.single-product) .woocommerce ul.products li.product .star-rating{display:none !important}
body:not(.single-product) .woocommerce ul.products li.product .glsrw-loop-rating,
body:not(.single-product) .woocommerce ul.products li.product .glsr .glsr-star-rating{
  display:inline-flex !important;
  align-items:center;
  justify-content:flex-start;
  gap:.35em;
  margin:0 !important;
  text-align:left !important;
  line-height:1;
}
body:not(.single-product) .woocommerce ul.products li.product .glsrw-loop-rating .glsr-stars,
body:not(.single-product) .woocommerce ul.products li.product .glsr .glsr-star-rating .glsr-stars{
  font-size:var(--tv-stars-size-m) !important;
  line-height:1; height:1em;
}
body:not(.single-product) .woocommerce ul.products li.product .glsrw-loop-rating .glsr-star,
body:not(.single-product) .woocommerce ul.products li.product .glsr .glsr-star-rating .glsr-star{
  width:1em; height:1em; display:inline-block; background-size:contain; background-repeat:no-repeat;
}
body:not(.single-product) .woocommerce ul.products li.product .glsrw-loop-rating .glsr-star svg,
body:not(.single-product) .woocommerce ul.products li.product .glsr .glsr-star-rating .glsr-star svg{
  width:1em; height:1em; display:block;
}
@media (min-width:1024px){
  body:not(.single-product) .woocommerce ul.products li.product .glsrw-loop-rating .glsr-stars,
  body:not(.single-product) .woocommerce ul.products li.product .glsr .glsr-star-rating .glsr-stars{
    font-size:var(--tv-stars-size-d) !important;
  }
}

/* ===== Responsivo (todas las páginas excepto single) ===== */
@media (min-width:768px) and (max-width:1023.98px){
  body:not(.single-product) ul.products{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}
@media (max-width:767.98px){
  body:not(.single-product) ul.products{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:20px !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 var(--tv-edge-m) !important;
    box-sizing:border-box;
  }
  /* Títulos truncados a 2 líneas en móvil */
  body:not(.single-product) .woocommerce ul.products li.product .woocommerce-loop-product__title{
    line-height:1.3 !important;
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:2 !important;
    overflow:hidden !important;
    white-space:normal !important;
    max-height:calc(2 * 1.3em + 3px) !important;
    text-overflow:ellipsis !important;
    padding-bottom:3px !important;
  }
}