/* Candy · Tarjeta de producto, carrusel y favoritos — mobile first */
.cm-novedades,.cm-wishlist{width:min(var(--cm-width),100% - 2 * var(--cm-space));margin:clamp(44px,7vw,84px) auto 0;font-family:var(--cm-font-body)}
.cm-novedades *,.cm-wishlist *{box-sizing:border-box}
.cm-heading-actions{display:flex;align-items:center;gap:16px}
.cm-products-empty{padding:28px;border-radius:var(--cm-radius);background:var(--cm-lilac-soft);text-align:center;color:var(--cm-muted)}

/* Carrusel */
.cm-product-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 12px) / 2.15);gap:12px;padding:4px 2px 12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.cm-product-carousel::-webkit-scrollbar{display:none}
.cm-product-carousel>.cm-product-card{scroll-snap-align:start}

/* Tarjeta */
.cm-product-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:8px;border-radius:var(--cm-radius);background:#fff;box-shadow:0 0 0 1px var(--cm-line);transition:box-shadow .25s,transform .25s}
.cm-product-card:hover{box-shadow:0 0 0 1px var(--cm-line),var(--cm-shadow);transform:translateY(-3px)}
.cm-product-photo{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--cm-lilac-soft)}
.cm-product-photo>a{display:block;width:100%;height:100%}
.cm-product-photo img{display:block;width:100%;height:100%!important;object-fit:cover;transition:transform .5s}
.cm-product-card:hover .cm-product-photo img{transform:scale(1.05)}
.cm-product-card.is-out .cm-product-photo img{opacity:.55;filter:grayscale(.3)}
.cm-product-badges{position:absolute;top:8px;left:8px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;pointer-events:none}
.cm-badge{padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;line-height:1.3;text-transform:uppercase}
.cm-badge--new{background:var(--cm-primary);color:#fff}
.cm-badge--sale{background:var(--cm-pink);color:#fff}
.cm-badge--out{background:#fff;color:var(--cm-ink);box-shadow:0 0 0 1px var(--cm-line)}
.cm-wish-toggle{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--cm-pink-dark);cursor:pointer;box-shadow:0 3px 10px rgba(63,49,80,.12);transition:transform .2s,background .2s}
.cm-wish-toggle svg{fill:transparent;stroke:currentColor;stroke-width:1.8;transition:fill .2s}
.cm-wish-toggle:hover{transform:scale(1.08);background:#fff}
.cm-wish-toggle[aria-pressed=true] svg{fill:currentColor}
.cm-wish-toggle[aria-pressed=true]{animation:cm-pop .3s ease}
.cm-wish-toggle:disabled{cursor:wait}
@keyframes cm-pop{50%{transform:scale(1.2)}}
.cm-product-body{display:flex;flex-direction:column;flex:1;padding:10px 4px 2px}
.cm-product-cat{margin:0 0 3px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--cm-pink-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-product-title{margin:0 0 8px;font-family:var(--cm-font-head);font-size:15px;font-weight:500;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}
.cm-product-title a{color:var(--cm-ink);text-decoration:none}
.cm-product-title a::after{content:"";position:absolute;inset:0;z-index:0}
.cm-product-title a:hover{color:var(--cm-primary)}
.cm-wish-toggle,.cm-card-cart{z-index:1}
.cm-product-foot{display:flex;flex-direction:column;gap:8px;margin-top:auto}
.cm-product-price{font-size:17px;font-weight:800;color:var(--cm-primary);line-height:1.2}
.cm-product-price del{margin-right:4px;color:var(--cm-muted);font-size:13px;font-weight:600;opacity:1}
.cm-product-price ins{text-decoration:none;color:var(--cm-pink-dark)}
.cm-card-cart{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 14px;border-radius:999px;background:var(--cm-primary);color:#fff!important;font-size:14px;font-weight:800;text-decoration:none;transition:background .2s}
.cm-card-cart:hover{background:var(--cm-primary-dark)}
.cm-card-cart--link{background:var(--cm-lilac-soft);color:var(--cm-primary)!important}
.cm-card-cart--link:hover{background:var(--cm-pink-soft);color:var(--cm-pink-dark)!important}
.cm-card-cart.loading{opacity:.6;pointer-events:none}
.cm-card-cart.added{background:#2f8f6f}
.cm-card-cart.added span{font-size:0}.cm-card-cart.added span::after{content:"Añadido";font-size:14px}
.cm-product-foot .added_to_cart{display:none}

/* Favoritos */
.cm-wishlist h1{margin:0;font-size:clamp(30px,5vw,44px)}
.cm-wishlist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cm-wishlist-empty{padding:48px 20px;border-radius:var(--cm-radius);background:var(--cm-pink-soft);text-align:center}
.cm-wishlist-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:#fff;color:var(--cm-pink)}
.cm-wishlist-empty-icon svg{width:34px;height:34px;fill:currentColor}
.cm-wishlist-empty p{margin:16px 0 22px;font-size:17px}
.cm-wishlist [hidden],.cm-wishlist-empty[hidden]{display:none}

@media(max-width:699px){.cm-novedades .cm-carousel-controls{display:none}.cm-heading-actions{align-self:flex-end}}
@media(min-width:700px){
  .cm-product-carousel{grid-auto-columns:calc((100% - 32px) / 3);gap:16px}
  .cm-product-card{padding:10px}
  .cm-product-title{font-size:16px}
  .cm-product-foot{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}
  .cm-product-price{font-size:18px}
  .cm-wishlist-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
}
@media(min-width:1024px){
  .cm-product-carousel{grid-auto-columns:calc((100% - 54px) / 4);gap:18px}
  .cm-wishlist-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
}
@media(prefers-reduced-motion:reduce){.cm-product-card,.cm-product-photo img,.cm-wish-toggle{transition:none;animation:none}}

/* Fotos con su proporción natural (las de la tienda son verticales 3:4), sin recortar en cuadrado */
.cm-product-photo{aspect-ratio:auto}
.cm-product-photo>a{height:auto}
/* Sin aspect-ratio en la imagen: el navegador usa width/height (480×640) y reserva el hueco antes de cargar */
.cm-product-photo img{height:auto!important;object-fit:contain}
.cm-product-photo img.woocommerce-placeholder{aspect-ratio:3/4;object-fit:cover}
