:root{
  --nutri-primary:#56AA9D;
  --nutri-secondary:#007b9e;
  --nutri-border:#e5e9f2;
  --nutri-bg-light:#f9fbfd;
  --nutri-star:#f5b301;
  --nutri-price:#56AA9D;
}

/* ========= GRID WRAP / LOADING ========= */
.nutri-product-grid-wrap{position:relative}
.nutri-product-grid-wrap.is-loading::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.55) 50%,rgba(255,255,255,0) 100%),
    rgba(255,255,255,.75);
  background-size:180% 100%,cover;
  animation:nutri-skeleton 1.1s linear infinite;
  z-index:5; border-radius:12px;
}
@keyframes nutri-skeleton{0%{background-position:-80% 0,0 0}100%{background-position:260% 0,0 0}}

/* ========= GRID ========= */
.nutri-product-grid{display:grid; gap:10px; margin:15px 0}
.nutri-product-grid.columns-2{grid-template-columns:repeat(2,1fr)}
.nutri-product-grid.columns-3{grid-template-columns:repeat(3,1fr)}
.nutri-product-grid.columns-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1200px){.nutri-product-grid.columns-4{grid-template-columns:repeat(3,1fr)}}
@media (max-width:1024px){.nutri-product-grid.columns-3,.nutri-product-grid.columns-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:680px){.nutri-product-grid{grid-template-columns:repeat(2,1fr)}}
.nutri-no-products{
  text-align:center; color:var(--nutri-primary); font-weight:600;
  background:#fff; border:1px solid var(--nutri-border); border-radius:12px;
  padding:24px; box-shadow:0 4px 12px rgba(11,53,87,.06);
}

/* ========= CARD ========= */
.nutri-product-grid .nutri-product-card{
  background:#fff; border:1px solid var(--nutri-border);
  border-radius:14px; box-shadow:0 4px 14px rgba(11,53,87,.06);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease; position:relative;
}
.nutri-product-grid .nutri-product-card:hover{transform:translateY(-4px); box-shadow:0 8px 20px rgba(11,53,87,.1)}

/* ========= IMAGE + CTA ========= */
.nutri-product-grid .nutri-product-card .image-box{position:relative; background:white; border-radius: 14px 14px 0px 0px;}
.nutri-product-grid .nutri-product-card .image-wrap{position:relative; display:block; text-align:center;}
.nutri-product-grid .nutri-product-card .image-wrap img{max-width:100%; height:auto; transition:transform .3s ease}
.nutri-product-grid .nutri-product-card:hover .image-wrap img{transform:scale(1.04)}
.nutri-product-grid .nutri-product-card .image-cta-holder{position:absolute; right:14px; bottom:14px; pointer-events:none; z-index:3}

/* ========= CTA OVERLAY ========= */
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay{
  pointer-events:auto; display:inline-flex; align-items:center; gap:2px;
  background:white; backdrop-filter:blur(6px);
  color:#56AA9D; border:2px solid #56AA9D;
  border-radius:9999px; padding:12px 14px; min-height:44px;
  box-shadow:0 8px 18px rgba(11,53,87,.12);
  transition:all .25s ease; overflow:hidden; position:relative; line-height:1;
}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay .icon-pluscart{width:14px; height:14px; opacity:1; visibility:visible; transition:opacity .25s, visibility .25s}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay .icon-cart{display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay .icon-cart svg{width:22px; height:22px; display:block; overflow:visible}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay .label{
  max-width:0; opacity:0; transform:translateX(8px);
  overflow:hidden; white-space:nowrap; transition:max-width .25s, opacity .2s, transform .25s;
  font-weight:600; font-size:1rem; letter-spacing:.2px; text-transform:uppercase;
}
.nutri-product-grid .nutri-product-card:hover .nutri-addtocart--overlay,
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay:hover{padding:12px 22px}
.nutri-product-grid .nutri-product-card:hover .nutri-addtocart--overlay .label,
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay:hover .label{max-width:260px; opacity:1; transform:translateX(0)}
.nutri-product-grid .nutri-product-card:hover .nutri-addtocart--overlay .icon-pluscart,
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay:hover .icon-pluscart{opacity:0; display:none}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay:hover,
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay:focus{background:#56AA9D; color:#fff; border-color:#56AA9D; outline:none}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay:active{transform:translateY(0) scale(.98)}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay.is-adding{
  background:#56AA9D; color:#fff; border-color:#56AA9D;
  pointer-events:none; cursor:progress; animation:nutri-pulse 900ms ease-in-out infinite;
}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay.is-adding .icon-pluscart{opacity:0; visibility:hidden}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay.is-adding .icon-cart svg{animation:cart-bounce .6s ease-in-out infinite}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay.force-label .label{max-width:260px; opacity:1; transform:translateX(0)}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay.is-adding .label::after{content:"…"; display:inline-block; width:1.2em; overflow:hidden; animation:ellipsis steps(4,end) 900ms infinite}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay.just-added{
  background:var(--nutri-secondary); color:#fff; border-color:var(--nutri-secondary);
  animation:none; box-shadow:0 8px 20px rgba(0,123,158,.25);
}
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay.added:after,
.nutri-product-grid .nutri-product-card .nutri-addtocart--overlay.loading:after{content:none !important; display:none !important}
.nutri-product-grid .added_to_cart.wc-forward{display:none !important}
@keyframes nutri-pulse{0%{box-shadow:0 0 0 0 rgba(11,53,87,.22)}70%{box-shadow:0 0 0 14px rgba(11,53,87,0)}100%{box-shadow:0 0 0 0 rgba(11,53,87,0)}}
@keyframes cart-bounce{0%,100%{transform:none}50%{transform:translateY(-2px)}}
@keyframes ellipsis{0%{content:" "}33%{content:"."}66%{content:".."}100%{content:"..."}}

/* ========= CONTENT ========= */
.nutri-product-grid .nutri-product-card__content{padding:10px 20px 10px; display:flex; flex-direction:column}

/* CABECERA: forzamos wrap y control de orden */
.nutri-product-grid .nutri-product-card .header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 4px;
  flex-wrap:wrap;               /* permite que baje/“suba” según orden */
}

.nutri-product-grid .nutri-product-card .title{
  order:1;                      /* por defecto, título a la izquierda */
  margin:0;
  color:var(--nutri-primary);
  font-weight:800;
  line-height:1.25;
  font-size:1.15rem;
  flex:1 1 auto;
  min-width:0;
  overflow-wrap:anywhere;
  hyphens:auto;
}
.nutri-product-grid .nutri-product-card .title a{color:black; text-decoration:none}
.nutri-product-grid .nutri-product-card .title a:hover{color:#54A89C}

.nutri-product-grid .nutri-product-card .rating-compact{
  order:2;                      /* a la derecha del título en ancho amplio */
  display:flex; align-items:center; justify-content:flex-end;
  gap:6px; flex-shrink:0; white-space:nowrap; padding-top:2px;
}
.nutri-product-grid .nutri-product-card .rating-compact .nutri-stars-svg{display:inline-flex; color:var(--nutri-star); line-height:1}
.nutri-product-grid .nutri-product-card .rating-compact .nutri-stars-svg .star{width:16px; height:16px}
.nutri-product-grid .nutri-product-card .rating-compact .nutri-rating-count{font-size:.9rem; color:#506073; opacity:.85}

/* Cuando el bloque se hace más estrecho, SUBIMOS el rating encima del nombre */
@media (max-width:900px){
  .nutri-product-grid .nutri-product-card .header-row{align-items:flex-start}
  .nutri-product-grid .nutri-product-card .rating-compact{
    order:0;                    /* ahora va antes del título */
    width:100%;
    justify-content:flex-start;
    margin-bottom:4px;
  }
  .nutri-product-grid .nutri-product-card .title{
    order:1; width:100%;
  }
}

/* Oculta la fila de rating completa si existiera */
.nutri-product-grid .nutri-product-card .nutri-rating{display:none !important}

/* PRECIO (debajo del título/variante) */
.nutri-product-grid .nutri-product-card .price.under-title{
  margin:2px 0 10px;
  font-size:1.2rem;
  font-weight:800;
  color:black;
  line-height:1.1;
}
.nutri-product-grid .nutri-product-card .price.under-title *,
.nutri-product-grid .nutri-product-card .price.under-title * .amount,
.nutri-product-grid .nutri-product-card .price.under-title * bdi,
.nutri-product-grid .nutri-product-card .price.under-title * .woocommerce-Price-amount{
  font-size:inherit !important; line-height:inherit !important;
}
.nutri-product-grid .nutri-product-card .price.under-title del,
.nutri-product-grid .nutri-product-card .price.under-title del .amount,
.nutri-product-grid .nutri-product-card .price.under-title del bdi,
.nutri-product-grid .nutri-product-card .price.under-title del .woocommerce-Price-amount{
  font-size:.9rem !important; color:#98a1ad !important;
  text-decoration:line-through !important; opacity:.9; margin-right:6px;
}
.nutri-product-grid .nutri-product-card .price.under-title ins,
.nutri-product-grid .nutri-product-card .price.under-title ins .amount,
.nutri-product-grid .nutri-product-card .price.under-title ins bdi,
.nutri-product-grid .nutri-product-card .price.under-title ins .woocommerce-Price-amount{
  font-size:inherit !important; color:black; !important;
  font-weight:800 !important; text-decoration:none !important; line-height:inherit !important;
}

.nutri-product-grid .nutri-product-card .product-meta.under-title{font-size:.98rem; font-weight:700; color:var(--nutri-primary); margin:4px 0 10px}
.nutri-product-grid .nutri-product-card .preview-desc{color:#5d7086; font-size:.92rem; line-height:1.55; margin:6px 0 18px; min-height:44px; letter-spacing:.1px}

/* ========= PAGINACIÓN ========= */
.nutri-product-grid-wrap .nutri-grid-pagination{
  margin:18px 0 8px; display:flex; justify-content:center; align-items:center; gap:10px 8px; flex-wrap:wrap;
}
.nutri-product-grid-wrap .nutri-grid-pagination .nutri-grid-page{
  background:#fff; color:var(--nutri-primary); border:1.8px solid var(--nutri-primary);
  border-radius:9999px; padding:0 14px; min-width:36px; height:36px;
  display:inline-flex; align-items:center; justify-content:center;
  font-weight:700; font-size:.92rem; line-height:1; cursor:pointer;
  transition:transform .15s, background .25s, color .25s, box-shadow .25s;
}
.nutri-product-grid-wrap .nutri-grid-pagination .nutri-grid-page:hover,
.nutri-product-grid-wrap .nutri-grid-pagination .nutri-grid-page:focus{
  background:var(--nutri-primary); color:#fff; outline:none; box-shadow:0 6px 14px rgba(11,53,87,.15); transform:translateY(-1px);
}
.nutri-product-grid-wrap .nutri-grid-pagination .nutri-grid-page.current{
  background:var(--nutri-primary); color:#fff; cursor:default; box-shadow:0 6px 14px rgba(11,53,87,.18);
}
.nutri-product-grid-wrap .nutri-grid-pagination .nutri-grid-page:disabled{opacity:.45; cursor:not-allowed; transform:none; box-shadow:none}
.nutri-product-grid-wrap .nutri-grid-pagination .prev::before{content:"←"; margin-right:6px}
.nutri-product-grid-wrap .nutri-grid-pagination .next::after{content:"→"; margin-left:6px}
.nutri-product-grid-wrap .nutri-grid-pagination .nutri-grid-gap{
  display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; border-radius:9999px; color:var(--nutri-primary); opacity:.55; margin:0 2px;
}

/* ========= RESPONSIVE extras ========= */
@media (max-width:768px){
  .nutri-product-grid .nutri-product-card__content{padding:16px 16px 22px}
  .nutri-product-grid .nutri-product-card .title{font-size:1.05rem}
  .nutri-product-grid .nutri-product-card .price{font-size:1.05rem}
  .nutri-product-grid .nutri-product-card .nutri-addtocart--overlay .label{max-width:260px; opacity:1; transform:translateX(0)}
  .nutri-product-grid .nutri-product-card .nutri-addtocart--overlay .icon-pluscart{display:none}
  .nutri-product-grid-wrap .nutri-grid-pagination{gap:8px}
  .nutri-product-grid-wrap .nutri-grid-pagination .nutri-grid-page{padding:0 12px; font-size:.9rem}
}

/* ===== Infinite scroll spinner (no rompe estilos) ===== */
.rb-inf-spinner{
  display:none;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px 0 6px;
}

.rb-inf-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#3ab6a6;
  opacity:.65;
  animation: rbDot 0.9s infinite ease-in-out;
}

.rb-inf-dot:nth-child(2){ animation-delay: .12s; }
.rb-inf-dot:nth-child(3){ animation-delay: .24s; }

@keyframes rbDot{
  0%, 100% { transform: translateY(0); opacity:.45; }
  50%      { transform: translateY(-6px); opacity:1; }
}

