/* ═══════════════════════════════════════════════════════════
   Zerova Shop System — Widget Styles
   Uses --zvs-* vars (Dashboard) with Zerova token fallbacks.
   All Elementor style-tab overrides via selectors.
   ═══════════════════════════════════════════════════════════ */

/* ─── PRODUCT GRID ──────────────────────────────────────── */
.zvs-pgrid { display:grid; gap:clamp(16px,2vw,24px); }
.zvs-pcard { background:var(--zvs-card-bg,var(--bg-2,#15171D)); border-radius:var(--r-card,16px); border:1px solid var(--zvs-card-border,var(--line-color,rgba(255,255,255,.08))); overflow:hidden; transition:transform .25s var(--ease-out,ease),box-shadow .25s,border-color .25s; }
.zvs-pcard:hover { transform:translateY(-3px); box-shadow:0 20px 50px -20px rgba(0,0,0,.25); border-color:var(--line-color-2,rgba(255,255,255,.14)); }

.zvs-pcard__img { display:block; overflow:hidden; position:relative; background:var(--bg-3,#22252E); }
.zvs-pcard__img img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease-out,ease); }
.zvs-pcard:hover .zvs-pcard__img img { transform:scale(1.04); }

.zvs-pcard__badge { position:absolute; top:12px; left:12px; z-index:2; padding:4px 10px; border-radius:var(--r-chip,10px); font-family:var(--f-mono,'JetBrains Mono',monospace); font-size:10px; font-weight:700; letter-spacing:.06em; background:var(--zvs-sale-bg,var(--lime,#B4ED5F)); color:var(--zvs-sale,var(--lime-ink,#0A0B0F)); }
.zvs-pcard__badge--feat { background:var(--zvs-accent,var(--lime,#B4ED5F)); }

.zvs-pcard__wish { position:absolute; top:12px; right:12px; z-index:2; width:36px; height:36px; border-radius:50%; background:rgba(0,0,0,.45); backdrop-filter:blur(8px); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:#fff; opacity:0; transform:translateY(4px); transition:all .2s var(--ease-out,ease); }
.zvs-pcard__wish svg { width:16px; height:16px; }
.zvs-pcard:hover .zvs-pcard__wish { opacity:1; transform:translateY(0); }
.zvs-pcard__wish:hover { background:var(--zvs-accent,var(--lime,#B4ED5F)); color:var(--zvs-accent-ink,var(--lime-ink,#0A0B0F)); }
.zvs-pcard__wish.zvs-wish--active { opacity:1; transform:translateY(0); }
.zvs-pcard__wish.zvs-wish--active svg { fill:currentColor; }

.zvs-pcard__body { padding:18px 20px 20px; }
.zvs-pcard__cat { font-family:var(--f-mono,'JetBrains Mono',monospace); font-size:10px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--fg-mute-2,rgba(255,255,255,.38)); margin-bottom:6px; }
.zvs-pcard__name { display:block; font-family:var(--f-display,'Plus Jakarta Sans',sans-serif); font-size:15px; font-weight:700; letter-spacing:-.01em; line-height:1.3; color:var(--fg,#F7F5F0); text-decoration:none; }
.zvs-pcard__name:hover { color:var(--zvs-accent,var(--lime,#B4ED5F)); }
.zvs-pcard__price { font-family:var(--f-display,'Plus Jakarta Sans',sans-serif); font-size:16px; font-weight:800; color:var(--zvs-price,var(--lime,#B4ED5F)); margin-top:6px; }
.zvs-pcard__price del { font-size:13px; font-weight:400; color:var(--fg-mute-2,rgba(255,255,255,.38)); opacity:1; }
.zvs-pcard__price ins { text-decoration:none; }

.zvs-pcard__stars { display:flex; align-items:center; gap:2px; margin-top:8px; }
.zvs-pcard__star { width:14px; height:14px; fill:var(--zvs-star,var(--lime,#B4ED5F)); }
.zvs-pcard__star--off { fill:var(--bg-3,#22252E); }
.zvs-pcard__rc { font-family:var(--f-mono); font-size:10px; color:var(--fg-mute-2); margin-left:4px; }

.zvs-pcard__btn { display:block; width:100%; margin-top:14px; padding:10px 0; border-radius:var(--r-btn,10px); background:transparent; border:1.5px solid var(--zvs-card-border,var(--line-color,rgba(255,255,255,.08))); color:var(--fg,#F7F5F0); font-family:var(--f-body,'Inter',sans-serif); font-size:13px; font-weight:600; text-align:center; cursor:pointer; transition:all .2s var(--ease-out,ease); }
.zvs-pcard__btn:hover { background:var(--zvs-btn-bg,var(--lime,#B4ED5F)); color:var(--zvs-btn-color,var(--lime-ink,#0A0B0F)); border-color:transparent; }

/* Mobile grid */
@media(max-width:768px) { .zvs-pgrid { grid-template-columns:repeat(2,1fr) !important; } }
@media(max-width:480px) { .zvs-pgrid { grid-template-columns:1fr !important; } }

/* ─── PRODUCT HERO ──────────────────────────────────────── */
.zvs-hero { display:grid; gap:clamp(24px,4vw,48px); align-items:center; }
.zvs-hero--split   { grid-template-columns:1fr 1fr; }
.zvs-hero--split_r { grid-template-columns:1fr 1fr; }
.zvs-hero--split_r .zvs-hero__img { order:2; }
.zvs-hero--stacked { grid-template-columns:1fr; max-width:680px; margin:0 auto; }

.zvs-hero__img { border-radius:var(--r-card,16px); overflow:hidden; background:var(--bg-3,#22252E); position:relative; }
.zvs-hero__img > img { width:100%; display:block; }
.zvs-hero__thumbs { display:flex; gap:8px; padding:12px; }
.zvs-hero__thumb { width:56px; height:56px; border-radius:var(--r-sm,8px); overflow:hidden; border:2px solid transparent; opacity:.5; cursor:pointer; transition:all .2s; padding:0; background:none; }
.zvs-hero__thumb--active { border-color:var(--zvs-accent,var(--lime,#B4ED5F)); opacity:1; }
.zvs-hero__thumb img { width:100%; height:100%; object-fit:cover; }

.zvs-hero__eyebrow { font-family:var(--f-mono,'JetBrains Mono',monospace); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--zvs-accent,var(--lime,#B4ED5F)); margin-bottom:12px; }
.zvs-hero__title { font-family:var(--f-display,'Plus Jakarta Sans',sans-serif); font-weight:800; letter-spacing:-.03em; line-height:1.08; font-size:clamp(28px,4vw,52px); margin:0 0 16px; }
.zvs-hero__desc { font-size:16px; line-height:1.65; color:var(--fg-mute,rgba(255,255,255,.58)); margin-bottom:20px; }
.zvs-hero__rating { display:flex; align-items:center; gap:4px; margin-bottom:16px; }
.zvs-hero__rc { font-family:var(--f-mono); font-size:12px; color:var(--fg-mute-2); margin-left:6px; }
.zvs-hero__price { font-family:var(--f-display); font-size:28px; font-weight:800; color:var(--zvs-price,var(--lime,#B4ED5F)); margin-bottom:20px; }
.zvs-hero__price del { font-size:18px; font-weight:400; color:var(--fg-mute-2); }
.zvs-hero__price ins { text-decoration:none; }

.zvs-hero__variants { margin-bottom:20px; }
.zvs-hero__var-group { margin-bottom:12px; }
.zvs-hero__var-label { font-family:var(--f-mono); font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--fg-mute-2); display:block; margin-bottom:8px; }
.zvs-hero__var-options { display:flex; flex-wrap:wrap; gap:6px; }
.zvs-hero__var-btn { padding:8px 16px; border-radius:var(--r-btn,10px); border:1.5px solid var(--zvs-card-border,var(--line-color,rgba(255,255,255,.08))); background:transparent; color:var(--fg); font-family:var(--f-body); font-size:13px; font-weight:500; cursor:pointer; transition:all .15s; }
.zvs-hero__var-btn:hover { border-color:var(--zvs-accent); }
.zvs-hero__var-btn.zvs-var--active { background:var(--zvs-accent,var(--lime,#B4ED5F)); color:var(--zvs-accent-ink,var(--lime-ink,#0A0B0F)); border-color:transparent; }

.zvs-hero__actions { display:flex; gap:12px; flex-wrap:wrap; }
.zvs-hero__btn { padding:14px 32px; border-radius:var(--r-btn,10px); font-family:var(--f-body); font-size:15px; font-weight:700; text-decoration:none; cursor:pointer; transition:transform .15s,box-shadow .2s; border:none; }
.zvs-hero__btn--primary { background:var(--zvs-btn-bg,var(--lime,#B4ED5F)); color:var(--zvs-btn-color,var(--lime-ink,#0A0B0F)); }
.zvs-hero__btn--primary:hover { transform:translateY(-2px); box-shadow:0 10px 30px -10px var(--zvs-accent,var(--lime,#B4ED5F)); }
.zvs-hero__btn--ghost { background:transparent; border:1.5px solid var(--zvs-card-border,var(--line-color,rgba(255,255,255,.08))); color:var(--fg); }
.zvs-hero__btn--ghost:hover { border-color:var(--fg); }

@media(max-width:768px) { .zvs-hero--split,.zvs-hero--split_r { grid-template-columns:1fr; } .zvs-hero--split_r .zvs-hero__img { order:0; } }

/* ─── MINI CART ─────────────────────────────────────────── */
.zvs-mcart { background:var(--zvs-card-bg,var(--bg-2,#15171D)); border:1px solid var(--zvs-card-border,var(--line-color,rgba(255,255,255,.08))); border-radius:var(--r-card,16px); padding:24px; }
.zvs-mcart__head { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.zvs-mcart__title { font-family:var(--f-display); font-weight:700; font-size:18px; }
.zvs-mcart__count { font-family:var(--f-mono); font-size:11px; font-weight:700; background:var(--zvs-accent,var(--lime,#B4ED5F)); color:var(--zvs-accent-ink,var(--lime-ink,#0A0B0F)); width:24px; height:24px; display:flex; align-items:center; justify-content:center; border-radius:50%; }

.zvs-mcart__empty { text-align:center; padding:32px 0; color:var(--fg-mute-2); }
.zvs-mcart__empty-icon { width:48px; height:48px; margin:0 auto 12px; opacity:.3; }

.zvs-mcart__item { display:grid; grid-template-columns:48px 1fr auto auto; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--zvs-card-border,var(--line-color,rgba(255,255,255,.08))); }
.zvs-mcart__thumb { width:48px; height:48px; object-fit:cover; border-radius:var(--r-sm,8px); }
.zvs-mcart__name { font-family:var(--f-display); font-size:14px; font-weight:600; display:block; }
.zvs-mcart__price { font-family:var(--f-mono); font-size:12px; color:var(--fg-mute); }
.zvs-mcart__qty { display:flex; align-items:center; gap:6px; }
.zvs-mcart__qty-btn { width:28px; height:28px; border-radius:var(--r-sm,8px); border:1px solid var(--zvs-card-border,var(--line-color,rgba(255,255,255,.08))); background:transparent; color:var(--fg); font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .15s; }
.zvs-mcart__qty-btn:hover { border-color:var(--zvs-accent); }
.zvs-mcart__qty-val { font-family:var(--f-mono); font-size:13px; min-width:20px; text-align:center; }
.zvs-mcart__remove { background:none; border:none; color:var(--fg-mute-2); font-size:16px; cursor:pointer; padding:4px; transition:color .15s; }
.zvs-mcart__remove:hover { color:var(--fg); }

.zvs-mcart__total { display:flex; justify-content:space-between; padding:16px 0 0; margin-top:4px; border-top:1px solid var(--zvs-card-border); }
.zvs-mcart__total-label { font-family:var(--f-mono); font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--fg-mute-2); }
.zvs-mcart__total-val { font-family:var(--f-display); font-size:20px; font-weight:800; color:var(--zvs-price,var(--lime,#B4ED5F)); }

.zvs-mcart__foot { margin-top:16px; display:flex; flex-direction:column; gap:8px; }
.zvs-mcart__checkout { display:block; text-align:center; padding:12px; border-radius:var(--r-btn,10px); background:var(--zvs-btn-bg,var(--lime,#B4ED5F)); color:var(--zvs-btn-color,var(--lime-ink,#0A0B0F)); font-family:var(--f-body); font-size:14px; font-weight:700; text-decoration:none; transition:transform .15s; }
.zvs-mcart__checkout:hover { transform:translateY(-2px); }
.zvs-mcart__viewcart { text-align:center; font-family:var(--f-mono); font-size:12px; color:var(--fg-mute); text-decoration:none; }
.zvs-mcart__viewcart:hover { color:var(--fg); }

/* ─── CATEGORY SHOWCASE ─────────────────────────────────── */
.zvs-catgrid { display:grid; gap:clamp(16px,2vw,24px); }
.zvs-catcard { position:relative; overflow:hidden; border-radius:var(--r-card,16px); display:flex; align-items:flex-end; text-decoration:none; color:#fff; }
.zvs-catcard img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease-out,ease); }
.zvs-catcard:hover img { transform:scale(1.06); }
.zvs-catcard::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 60%); pointer-events:none; z-index:1; }
.zvs-catcard__body { position:relative; z-index:2; padding:24px; width:100%; display:flex; align-items:flex-end; justify-content:space-between; }
.zvs-catcard__name { font-family:var(--f-display); font-size:clamp(18px,2vw,24px); font-weight:800; letter-spacing:-.02em; }
.zvs-catcard__count { font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; opacity:.7; display:block; margin-top:4px; }
.zvs-catcard__arrow { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.15); backdrop-filter:blur(8px); display:flex; align-items:center; justify-content:center; transform:translateX(-4px); opacity:0; transition:all .25s var(--ease-out,ease); }
.zvs-catcard__arrow svg { width:16px; height:16px; }
.zvs-catcard:hover .zvs-catcard__arrow { opacity:1; transform:translateX(0); }

@media(max-width:768px) { .zvs-catgrid { grid-template-columns:repeat(2,1fr) !important; } }

/* ─── SALE BANNER ───────────────────────────────────────── */
.zvs-sstrip { background:var(--zvs-accent,var(--lime,#B4ED5F)); color:var(--zvs-accent-ink,var(--lime-ink,#0A0B0F)); text-align:center; padding:10px 20px; font-family:var(--f-body); font-size:13px; font-weight:600; }
.zvs-sstrip__code { font-family:var(--f-mono); font-weight:700; letter-spacing:.06em; cursor:pointer; border-bottom:1px dashed currentColor; }

.zvs-sbanner { background:var(--bg-2,#15171D); border:1px solid var(--zvs-card-border,var(--line-color,rgba(255,255,255,.08))); border-radius:var(--r-card,16px); padding:clamp(32px,5vw,64px); text-align:center; }
.zvs-sbanner__inner { max-width:560px; margin:0 auto; }
.zvs-sbanner__eye { font-family:var(--f-mono,'JetBrains Mono',monospace); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--zvs-accent,var(--lime,#B4ED5F)); margin-bottom:12px; }
.zvs-sbanner__h { font-family:var(--f-display,'Plus Jakarta Sans',sans-serif); font-weight:800; font-size:clamp(28px,4vw,48px); letter-spacing:-.03em; line-height:1.08; margin:0 0 12px; }
.zvs-sbanner__sub { font-size:16px; line-height:1.6; color:var(--fg-mute,rgba(255,255,255,.58)); margin:0 0 20px; }
.zvs-sbanner__coupon { display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:20px; }
.zvs-sbanner__coupon-label { font-family:var(--f-mono); font-size:12px; color:var(--fg-mute-2); }
.zvs-sbanner__code { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:var(--r-chip,10px); background:rgba(255,255,255,.06); color:var(--zvs-accent,var(--lime,#B4ED5F)); font-family:var(--f-mono); font-size:14px; font-weight:700; letter-spacing:.08em; border:1px dashed var(--zvs-accent,var(--lime,#B4ED5F)); cursor:pointer; transition:all .15s; }
.zvs-sbanner__code svg { width:14px; height:14px; }
.zvs-sbanner__code:hover { background:var(--zvs-accent); color:var(--zvs-accent-ink); }
.zvs-sbanner__btn { display:inline-block; padding:14px 36px; border-radius:var(--r-btn,10px); background:var(--zvs-btn-bg,var(--lime,#B4ED5F)); color:var(--zvs-btn-color,var(--lime-ink,#0A0B0F)); font-family:var(--f-body); font-size:15px; font-weight:700; text-decoration:none; transition:transform .15s,box-shadow .2s; }
.zvs-sbanner__btn:hover { transform:translateY(-2px); box-shadow:0 10px 30px -10px var(--zvs-accent,var(--lime,#B4ED5F)); }

/* ─── TESTIMONIAL + PRODUCT ─────────────────────────────── */
.zvs-tp { background:var(--zvs-card-bg,var(--bg-2,#15171D)); border:1px solid var(--zvs-card-border,var(--line-color,rgba(255,255,255,.08))); border-radius:var(--r-card,16px); overflow:hidden; }
.zvs-tp--split { display:grid; grid-template-columns:1fr 1fr; }
.zvs-tp--stacked { display:grid; grid-template-columns:1fr; }

.zvs-tp__testimonial { padding:clamp(24px,4vw,48px); display:flex; flex-direction:column; justify-content:center; }
.zvs-tp__stars { display:flex; gap:2px; margin-bottom:16px; }
.zvs-star { width:16px; height:16px; fill:var(--zvs-star,var(--lime,#B4ED5F)); }
.zvs-star--off { fill:var(--bg-3,#22252E); }
.zvs-tp__quote { font-family:var(--f-display); font-size:clamp(18px,2.5vw,24px); font-weight:600; letter-spacing:-.01em; line-height:1.45; margin:0 0 24px; font-style:normal; border:none; padding:0; }
.zvs-tp__author { display:flex; align-items:center; gap:12px; }
.zvs-tp__avatar { width:44px; height:44px; border-radius:50%; object-fit:cover; }
.zvs-tp__author-name { font-family:var(--f-display); font-weight:700; font-size:14px; display:block; }
.zvs-tp__author-title { font-family:var(--f-mono); font-size:11px; color:var(--fg-mute-2); letter-spacing:.04em; }

.zvs-tp__product { background:var(--bg-3,#22252E); padding:clamp(24px,4vw,48px); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.zvs-tp__pimg { max-width:240px; border-radius:var(--r-card,16px); margin-bottom:16px; }
.zvs-tp__pname { font-family:var(--f-display); font-size:18px; font-weight:700; color:var(--fg); text-decoration:none; display:block; }
.zvs-tp__pname:hover { color:var(--zvs-accent); }
.zvs-tp__pprice { font-family:var(--f-display); font-size:22px; font-weight:800; color:var(--zvs-price,var(--lime,#B4ED5F)); margin:8px 0; }
.zvs-tp__btn { display:inline-block; padding:10px 24px; border-radius:var(--r-btn,10px); background:var(--zvs-btn-bg,var(--lime,#B4ED5F)); color:var(--zvs-btn-color,var(--lime-ink,#0A0B0F)); font-family:var(--f-body); font-size:14px; font-weight:700; text-decoration:none; margin-top:8px; transition:transform .15s; }
.zvs-tp__btn:hover { transform:translateY(-2px); }

@media(max-width:768px) { .zvs-tp--split { grid-template-columns:1fr; } }
