/* Página de detalle de producto (PDP) */
.pdp {
  padding: 32px 16px 64px;
}
.pdp__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (min-width: 900px) {
  .pdp__grid { grid-template-columns: 1.2fr .8fr; gap: 28px; }
}

/* Media grande, que nunca se corte ni deforme */
.pdp__media {
  background:#0a0a0a;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  min-height: 320px;
  display:grid;
  place-items:center;
}
.pdp__media img {
  width:100%;
  height:100%;
  max-height:75vh;
  object-fit:contain;
}

@media (hover:hover) and (pointer:fine) {
  .pdp__media.has-zoom { cursor:zoom-in; }
  .pdp__media.has-zoom.is-zoomed { cursor:zoom-in; }
  .pdp__media.has-zoom.is-zoomed-max { cursor:zoom-out; }
}

/* Info derecha */
.pdp__info { display:flex; flex-direction:column; gap:12px; }
.pdp__name  { margin:.2em 0 0; font-size: clamp(22px, 3.5vw, 32px); letter-spacing:.02em; }
.pdp__price { margin:0; color:#ddd; font-weight:700; font-size: clamp(18px, 2.5vw, 22px); }
.pdp__desc  { margin:.2em 0 .6em; color:#cfcfcf; line-height:1.6; }

.pdp__actions {
  display:flex;
  flex-direction:column;
  gap:16px;
  align-items:flex-start;
  width:fit-content;
  max-width:100%;
}
.pdp__size-block{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-start;
  width:100%;
}
.pdp__size-buttons{
  display:inline-flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-start;
}
#pAdd{
  align-self:stretch;
  width:100%;
  max-width:none;
}
.pdp__label  { display:flex; flex-direction:column; gap:6px; font-size:14px; color:#cfcfcf; }
.pdp__select, .pdp__qty {
  background:#111; border:1px solid rgba(255,255,255,.12); color:#fff;
  border-radius:10px; padding:8px 10px; min-width:110px;
}
.btn-primary {
  background:#fff; color:#000; font-weight:700; border:0; border-radius:14px;
  padding:10px 16px; cursor:pointer; transition:transform .2s ease, opacity .2s ease;
}
.btn-primary:active{ transform:scale(.98) }
.btn-primary:hover{ opacity:.92 }

.pdp__details { margin-top:24px; display:flex; flex-direction:column; }
.pdp__accordion { background:transparent; border:0; padding:0; }
.pdp__accordion + .pdp__accordion { border-top:1px solid rgba(255,255,255,.12); }
.pdp__accordion summary {
  list-style:none; cursor:pointer; padding:12px 0;
  font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  display:flex; justify-content:space-between; align-items:center;
  color:#eaeaea; font-size:13px;
}
.pdp__accordion summary::-webkit-details-marker{ display:none; }
.pdp__accordion summary::after{ content:"+"; font-weight:400; margin-left:12px; }
.pdp__accordion[open] summary{ border-bottom:1px solid rgba(255,255,255,.12); }
.pdp__accordion[open] summary::after{ content:"−"; }
.pdp__accordion-content{ padding:12px 0 16px; color:#cfcfcf; line-height:1.6; font-size:13px; }
.pdp__details-list{ margin:0; padding-left:18px; }
.pdp__details-list li{ margin-bottom:6px; }
.pdp__details-list li:last-child{ margin-bottom:0; }
.pdp__size-guide-placeholder{ margin:0; color:#bcbcbc; font-size:13px; }
.pdp__breadcrumb a{ color:#eaeaea; text-decoration:none; opacity:.9; }
.pdp__breadcrumb a:hover{ text-decoration:underline; }

/* Toast */
.toast{
  position:fixed; left:50%; bottom:24px;
  transform:translateX(-50%) translateY(20px);
  background:#111; border:1px solid rgba(255,255,255,.12);
  padding:10px 14px; border-radius:12px;
  opacity:0; pointer-events:none;
  transition:opacity .25s ease, transform .25s ease; z-index:1200;
}
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ===== Relacionados ===== */
.pdp-related { margin-top:42px; }
.pdp-related__title { font-size: clamp(18px, 2.6vw, 22px); margin: 0 0 24px; letter-spacing:.06em; }

@media (min-width: 900px) {
  /* Reserve normal document flow for the first-screen heading: header, main
     inset, gallery clearance, existing 32px title and 12px bottom breathing
     room. Shorter windows keep the gallery's natural height and scroll. */
  .page-product .pdp__grid {
    min-height: calc(100svh - var(--topbar-h) - 32px - 36px - 32px - 12px);
    align-items: start;
  }
  .page-product .pdp-related { margin-top: 0; padding-top: 36px; }
  .page-product .pdp-related > .store-headline { margin-top: 0; }
}

.product-name{
  margin:0;
  font-weight:700;
  font-size:14px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.product-price{
  margin:0;
  color:#e6e6e6;
  font-size:13px;
}
