.dps-directory-grid{display:grid;gap:16px}
.dps-cols-1{grid-template-columns:repeat(1,1fr)}
.dps-cols-2{grid-template-columns:repeat(2,1fr)}
.dps-cols-3{grid-template-columns:repeat(3,1fr)}
.dps-cols-4{grid-template-columns:repeat(4,1fr)}
.dps-card{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.dps-card-thumb{background:#fafafa;text-align:center;padding:12px}
.dps-card-thumb img{max-width:100%;height:auto}
.dps-card-body{padding:12px;display:flex;flex-direction:column;gap:6px}
.dps-card-title{margin:0 0 4px 0;font-size:1.05rem}
.dps-card-sku{font-size:.85rem;color:#6b7280}
.dps-card-price{font-weight:600;margin-top:4px}
.dps-card-actions{margin-top:8px;display:flex;gap:8px}
.dps-btn{display:inline-block;padding:6px 10px;border-radius:6px;text-decoration:none;border:1px solid #d1d5db}
.dps-btn-primary{background:#111827;color:#fff;border-color:#111827}
.dps-btn-outline{background:#fff;color:#111827}

/* Product Page */
.dps-product-page{display:block;margin:10px 0}
.dps-pp-title{margin:0 0 10px 0}
.dps-pp-hero{text-align:center;margin-bottom:12px}
.dps-pp-hero img{max-width:100%;height:auto;border:1px solid #eee;border-radius:8px}
.dps-pp-brief{margin:10px 0;padding:8px 10px;background:#fafafa;border:1px solid #eee;border-radius:8px}
.dps-pp-detailed{margin:10px 0}
.dps-specs-list{display:grid;grid-template-columns:minmax(120px, 220px) 1fr;gap:6px 16px}
.dps-specs-list dt{font-weight:600}
.dps-specs-list dd{margin:0}

/* Slider (improved) */
.dps-slider{position:relative;overflow:hidden;border:1px solid #eee;border-radius:10px;background:#fff;--dps-pad:16px;--dps-h:420px}
.dps-slider-small{max-width:420px;margin:10px auto;--dps-h:280px}
.dps-slider-medium{max-width:720px;margin:10px auto;--dps-h:420px}
.dps-slider-large{max-width:1024px;margin:10px auto;--dps-h:560px}

.dps-slides{position:relative;padding:var(--dps-pad);height:calc(var(--dps-h) + 2px);}
.dps-slide{display:none;height:var(--dps-h);text-align:center;align-items:center;justify-content:center}
.dps-slide.active{display:flex}
.dps-slide img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;margin:0 auto}

.dps-prev,.dps-next{position:absolute;top:50%;transform:translateY(-50%);background:transparent;border:0;padding:8px;cursor:pointer;font-size:28px;line-height:1;color:#111827;z-index:2}
.dps-prev{left:4px}
.dps-next{right:4px}

.dps-dots{display:flex;gap:6px;justify-content:center;padding:8px}
.dps-dot{width:10px;height:10px;border-radius:999px;border:1px solid #6b7280;background:#fff;cursor:pointer}
.dps-dot.active{background:#6b7280}

/* Slider (polished v3g) */
.dps-slider{position:relative;overflow:hidden;border:1px solid #eee;border-radius:10px;background:#fff;
  --dps-pad:16px;
  --dps-h:420px;
  --dps-arrow-w:24px;
  --dps-dot-size:8px;
  --dps-dot-gap:6px;
}
.dps-slider-small{max-width:420px;margin:10px auto;--dps-h:280px}
.dps-slider-medium{max-width:720px;margin:10px auto;--dps-h:420px}
.dps-slider-large{max-width:1024px;margin:10px auto;--dps-h:560px}

.dps-slides{position:relative;
  padding-top:var(--dps-pad);
  padding-bottom:var(--dps-pad);
  padding-left:calc(var(--dps-pad) + var(--dps-arrow-w));
  padding-right:calc(var(--dps-pad) + var(--dps-arrow-w));
  height:calc(var(--dps-h) + (var(--dps-pad) * 2));
  box-sizing:border-box;
}
.dps-slide{display:none;height:var(--dps-h);text-align:center;align-items:center;justify-content:center}
.dps-slide.active{display:flex}
.dps-slide img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;margin:0 auto}

/* Edge arrows: occupy reserved gutters, aligned to outer edges */
.dps-prev,.dps-next{
  position:absolute;top:50%;transform:translateY(-50%);
  background:transparent;border:0;padding:0;margin:0;cursor:pointer;font-size:24px;line-height:1;color:#111827;z-index:2;
  width:var(--dps-arrow-w);height:calc(var(--dps-h) + (var(--dps-pad) * 2));
  display:flex;align-items:center;justify-content:center;
  -webkit-appearance:none;appearance:none;box-shadow:none;outline:none;
}
.dps-prev{left:0;justify-content:flex-start;padding-left:6px}
.dps-next{right:0;justify-content:flex-end;padding-right:6px}

/* Small, clean pagination dots (reset button styles) */
.dps-dots{display:flex;gap:var(--dps-dot-gap);justify-content:center;padding:8px}
.dps-dot{
  display:inline-block;width:var(--dps-dot-size);height:var(--dps-dot-size);
  border-radius:999px;border:1px solid #9ca3af;background:#fff;cursor:pointer;
  padding:0;margin:0;line-height:0;box-shadow:none;outline:none;
  -webkit-appearance:none;appearance:none;
}
.dps-dot.active{background:#6b7280;border-color:#6b7280}


/* --- Zoom overlay --- */
.dps-zoom-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:999999;display:none}
.dps-zoom-stage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;height:80vh;overflow:hidden;background:#111}
.dps-zoom-img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(1);transform-origin:center center;will-change:transform;max-width:none;max-height:none}
.dps-zoom-close{position:absolute;top:14px;right:18px;font-size:28px;background:rgba(255,255,255,.15);color:#fff;border:none;width:40px;height:40px;border-radius:999px;cursor:pointer}
.dps-zoom-help{position:absolute;left:18px;bottom:14px;color:#ddd;font-size:12px}
/* Zoom button placement */
.dps-zoom{position:absolute;right:10px;bottom:10px;background:rgba(17,24,39,.85);color:#fff;border:none;padding:6px 8px;border-radius:8px;cursor:pointer}
