.pqv-modal {
  position: fixed;
  z-index: 9999;
  inset: 0;
  background: rgba(0,0,0,0.65);
  display: none;
  padding: 2rem 1rem;
  overflow-y: auto;
}
.pqv-modal.open { display: block; }
.modal-open { overflow: hidden; }

.pqv-dialog {
  max-width: 980px;
  margin: 0 auto;
  background: #fff;
  border-radius: 16px;
  padding: 1.5rem;
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  box-shadow: 0 10px 40px rgba(0,0,0,.35);
  position: relative;
  animation: pqvIn .25s ease;
}
@keyframes pqvIn {
  from { transform: translateY(20px); opacity:0; }
  to { transform: translateY(0); opacity:1; }
}
.pqv-close {
  position:absolute;
  top:8px; right:10px;
  background:none;
  border:none;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  color:#444;
}
.pqv-left { flex:1 1 380px; min-width:300px; }
.pqv-right { flex:1 1 340px; min-width:280px; display:flex; flex-direction:column; gap:1rem; }

.pqv-main-img {
  width:100%;
  max-height:500px;
  object-fit:cover;
  border-radius:12px;
  cursor:zoom-in;
  transition:.25s;
}
.pqv-main-img.zoomed {
  position:relative;
  z-index:10;
  transform: scale(1.8);
  cursor:zoom-out;
  box-shadow:0 0 0 4px #fff, 0 0 25px rgba(0,0,0,.4);
}

.pqv-zoom-hint {
  margin-top:.5rem;
  font-size:.75rem;
  text-align:center;
  color:#666;
}

.pqv-price {
  font-size:1.65rem;
  font-weight:700;
  color:#d19a2e;
}
.pqv-stock {
  display:inline-block;
  font-size:.75rem;
  padding:.35rem .8rem;
  border-radius:14px;
  font-weight:600;
}
.pqv-stock.in-stock { background:#d4edda; color:#155724; }
.pqv-stock.out-of-stock { background:#f8d7da; color:#721c24; }

.pqv-desc { font-size:.95rem; line-height:1.4; color:#333; }

.pqv-form { margin-top:.5rem; }
.pqv-qty-row {
  display:flex;
  align-items:flex-end;
  gap:.75rem;
}
.pqv-qty-row input[type=number] {
  width:80px;
  padding:.4rem .5rem;
}
.pqv-btn-add {
  background:#1e3a8a;
  color:#fff;
  border:none;
  padding:.7rem 1.2rem;
  border-radius:8px;
  font-weight:600;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  transition:.2s;
}
.pqv-btn-add:hover { background:#294fb6; }

.pqv-full-link {
  font-size:.85rem;
  color:#1e3a8a;
  text-decoration:none;
  margin-top:.5rem;
  font-weight:600;
}
.pqv-full-link:hover { text-decoration:underline; }

.pqv-sizes { display:flex; flex-direction:column; gap:.4rem; }
.pqv-sizes-label { font-size:.75rem; font-weight:600; text-transform:uppercase; color:#444; }
.pqv-sizes-list { display:flex; flex-wrap:wrap; gap:.4rem; }
.pqv-size-btn {
  background:#f1f5f9;
  border:1px solid #cbd5e1;
  padding:.35rem .7rem;
  font-size:.75rem;
  border-radius:6px;
  cursor:pointer;
  font-weight:600;
  transition:.15s;
}
.pqv-size-btn.active,
.pqv-size-btn:hover {
  background:#1e3a8a;
  color:#fff;
  border-color:#1e3a8a;
}

.pqv-sizes { display:flex; flex-direction:column; gap:.4rem; }
.pqv-sizes-label { font-size:.75rem; font-weight:600; text-transform:uppercase; color:#444; }
.pqv-sizes-list { display:flex; flex-wrap:wrap; gap:.4rem; }
.pqv-size-btn {
  background:#f1f5f9;
  border:1px solid #cbd5e1;
  padding:.35rem .7rem;
  font-size:.75rem;
  border-radius:6px;
  cursor:pointer;
  font-weight:600;
  transition:.15s;
}
.pqv-size-btn.active,
.pqv-size-btn:hover {
  background:#1e3a8a;
  color:#fff;
  border-color:#1e3a8a;
}

@media (max-width: 820px){
  .pqv-dialog { flex-direction:column; }
  .pqv-main-img.zoomed { transform:none; cursor:default; box-shadow:none; }
}