/* ---------- Botones ---------- */
.zp-btn,.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:0 1.5rem;border:1px solid transparent;border-radius:999px;background:var(--zp-btn);color:#fff;font:600 var(--zp-fs-sm)/1 var(--zp-font-body);text-decoration:none;cursor:pointer;transition:background .2s,box-shadow .2s,transform .15s var(--zp-ease)}
.zp-btn:hover,.button:hover{background:var(--zp-btn-hover);color:#fff;box-shadow:0 8px 28px -8px rgba(138,63,252,.8)}
.zp-btn:active,.button:active{transform:translateY(1px)}
.zp-btn--lg{min-height:3.25rem;padding:0 2rem;font-size:var(--zp-fs-md)}
.zp-btn--sm{min-height:2.5rem;padding:0 1.125rem}
.zp-btn--ghost{background:transparent;border-color:var(--zp-line-strong);color:var(--zp-text)}
.zp-btn--ghost:hover{background:var(--zp-surface-2);border-color:var(--zp-cyan);box-shadow:none}
.zp-btn--off,.zp-btn--off:hover{background:var(--zp-surface-2);color:var(--zp-muted);border-color:var(--zp-line);box-shadow:none;cursor:not-allowed}
.button.loading{opacity:.7;pointer-events:none}
.button.added{background:var(--zp-surface-2);border-color:var(--zp-ok);color:var(--zp-ok)}
.added_to_cart{display:none}

/* ---------- Card de producto ---------- */
.zp-card{position:relative;display:flex;flex-direction:column;width:100%;background:var(--zp-surface);border:1px solid var(--zp-line);border-radius:var(--zp-r-l);overflow:hidden;transition:border-color .2s,box-shadow .25s,transform .25s var(--zp-ease)}
.zp-card:hover,.zp-card:focus-within{border-color:rgba(138,63,252,.7);box-shadow:0 18px 50px -20px rgba(138,63,252,.55);transform:translateY(-3px)}
.zp-card__media{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,rgba(255,46,147,.18),rgba(138,63,252,.18) 50%,rgba(47,123,255,.2));overflow:hidden}
.zp-card__img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--zp-ease)}
.zp-card:hover .zp-card__img{transform:scale(1.04)}
.zp-card__ph{position:absolute;inset:0;display:grid;place-items:center;font:800 4.5rem/1 var(--zp-font-display);background:var(--zp-grad);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.85}
.zp-card__badge{position:absolute;top:.75rem;left:.75rem;padding:.25rem .625rem;border-radius:999px;background:var(--zp-bg);border:1px solid var(--zp-magenta);color:#ff7ab8;font:700 var(--zp-fs-xs)/1.2 var(--zp-font-body)}
.zp-card__body{display:flex;flex-direction:column;gap:.375rem;padding:1rem 1.125rem .5rem;flex:1}
.zp-card__brand{margin:0;font:700 var(--zp-fs-xs)/1.2 var(--zp-font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--zp-cyan)}
.zp-card__title{margin:0;font-size:var(--zp-fs-h3);line-height:1.25;letter-spacing:-.01em}
.zp-card__link{color:var(--zp-text);text-decoration:none}
.zp-card__link::after{content:"";position:absolute;inset:0;z-index:1} /* toda la card es clicable */
.zp-card__link:hover{color:#fff}
.zp-card__link:focus-visible{outline:none}
.zp-card:has(.zp-card__link:focus-visible){box-shadow:var(--zp-ring)}
.zp-card__meta{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem .5rem;margin:0;color:var(--zp-muted);font-size:var(--zp-fs-sm)}
.zp-card__meta li+li::before{content:"";display:inline-block;width:.25rem;height:.25rem;margin-right:.5rem;vertical-align:middle;border-radius:50%;background:var(--zp-line-strong)}
.zp-stock{display:inline-flex;align-items:center;gap:.4rem;margin:.25rem 0 0;font-size:var(--zp-fs-xs);font-weight:600;color:var(--zp-muted)}
.zp-stock::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}
.zp-stock--in{color:var(--zp-ok)}
.zp-stock--backorder{color:var(--zp-warn)}
.zp-stock--out{color:var(--zp-err)}
.zp-card__foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.125rem 1.125rem}
.zp-card__foot .zp-btn{position:relative;z-index:2}
.zp-card__price{font:700 1.125rem/1.1 var(--zp-font-display);letter-spacing:-.01em}
.zp-card__price del{display:block;font:400 var(--zp-fs-xs)/1.2 var(--zp-font-body);color:var(--zp-muted)}
.zp-card__price ins{text-decoration:none}
.woocommerce-Price-currencySymbol{margin-right:.05em}
