/* ============================================================
   MODAL DE PRODUCTO · v12.0
   2 columnas · Info anclada · Alturas consistentes
   ============================================================ */

.gzm-modal svg,
.gzl-modal svg{flex-shrink:0;display:block}
.gzm-modal *,
.gzl-modal *{box-sizing:border-box}
.gzm-modal img,
.gzl-modal img{max-width:100%;height:auto}

/* ═══════════════════════════════════════════════════════════
   OVERLAY
   ═══════════════════════════════════════════════════════════ */
.gzm-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:5000;
  background:rgba(12,10,18,.72);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  padding:24px;
  place-items:center;
}
.gzm-modal.is-open{display:grid;animation:gzmFade .25s ease}
@keyframes gzmFade{from{opacity:0}to{opacity:1}}

/* ═══════════════════════════════════════════════════════════
   CAJA
   ═══════════════════════════════════════════════════════════ */
.gzm-box{
  background:#fff;
  border-radius:18px;
  width:100%;
  max-width:1200px;
  height:88vh;
  max-height:720px;
  min-height:600px;
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr 460px;
  position:relative;
  box-shadow:0 50px 100px -25px rgba(0,0,0,.65);
  animation:gzmScale .35s cubic-bezier(.2,.8,.2,1);
}
@keyframes gzmScale{
  from{transform:translateY(16px) scale(.97);opacity:0}
  to{transform:none;opacity:1}
}

.gzm-close{
  position:absolute;
  top:16px;
  right:16px;
  z-index:10;
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(20,16,28,.08);
  display:grid;
  place-items:center;
  cursor:pointer;
  color:#14101C;
  transition:.25s;
  box-shadow:0 4px 12px -4px rgba(20,16,28,.15);
}
.gzm-close:hover{background:#14101C;color:#fff;transform:rotate(90deg)}
.gzm-close svg{width:18px;height:18px}

/* ═══════════════════════════════════════════════════════════
   GALERÍA (izquierda)
   ═══════════════════════════════════════════════════════════ */
.gzm-gallery{
  background:#FAF9F7;
  display:grid;
  grid-template-rows:1fr auto;
  gap:16px;
  overflow:hidden;
  border-right:1px solid rgba(20,16,28,.06);
  padding:24px;
  min-height:0;
}
.gzm-hero{
  position:relative;
  background:#fff;
  border-radius:12px;
  display:grid;
  place-items:center;
  padding:24px;
  cursor:zoom-in;
  overflow:hidden;
  min-height:0;
  transition:box-shadow .3s;
}
.gzm-hero:hover{box-shadow:0 12px 30px -12px rgba(20,16,28,.15)}
.gzm-hero img{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.gzm-hero:hover img{transform:scale(1.02)}

.gzm-tag{
  position:absolute;
  top:12px;
  left:12px;
  z-index:2;
  padding:4px 10px;
  border-radius:4px;
  background:#14101C;
  color:#fff;
  font-family:'Inter',sans-serif;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
}
.gzm-tag.is-hot{background:linear-gradient(135deg,#FF6B35,#FF2E63)}

/* Indicador de navegación — esquina inferior izquierda */
.gzm-nav-indicator{
  position:absolute;
  bottom:12px;
  left:12px;
  z-index:6;
  padding:5px 11px;
  border-radius:100px;
  background:rgba(20,16,28,.75);
  backdrop-filter:blur(10px);
  color:#fff;
  font-family:'JetBrains Mono',monospace;
  font-size:.6rem;
  font-weight:700;
  letter-spacing:1px;
  border:1px solid rgba(255,255,255,.15);
  pointer-events:none;
  opacity:0;
  transform:translateY(6px);
  transition:.3s;
}
.gzm-nav-indicator.is-visible{
  opacity:1;
  transform:none;
}
.gzm-nav-indicator b{color:#fff;font-weight:800}
.gzm-nav-indicator span{color:rgba(255,255,255,.5)}

.gzm-thumbs{
  display:flex;
  gap:10px;
  overflow-x:auto;
  flex-shrink:0;
  padding:2px;
}
.gzm-thumbs::-webkit-scrollbar{height:3px}
.gzm-thumbs::-webkit-scrollbar-thumb{background:rgba(109,40,217,.25);border-radius:100px}
.gzm-thumbs::-webkit-scrollbar-track{background:transparent}

.gzm-thumb{
  flex-shrink:0;
  width:64px;
  height:64px;
  border-radius:8px;
  border:1.5px solid rgba(20,16,28,.08);
  background:#fff;
  cursor:pointer;
  padding:5px;
  transition:.2s;
  display:grid;
  place-items:center;
}
.gzm-thumb img{max-width:100%;max-height:100%;object-fit:contain}
.gzm-thumb:hover{border-color:rgba(109,40,217,.4)}
.gzm-thumb.is-active{border-color:#6d28d9;box-shadow:0 0 0 2px rgba(109,40,217,.12)}

/* ═══════════════════════════════════════════════════════════
   INFO (derecha) — ALTURAS CONSISTENTES
   ═══════════════════════════════════════════════════════════ */
.gzm-info{
  padding:26px 32px 22px;
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}

.gzm-brand{
  font-family:'JetBrains Mono',monospace;
  font-size:.6rem;
  letter-spacing:2.2px;
  text-transform:uppercase;
  color:#6d28d9;
  font-weight:700;
  padding-right:44px;
  min-height:16px;
  line-height:16px;
  margin-bottom:6px;
}

.gzm-title{
  font-family:'Sora',sans-serif;
  font-weight:700;
  font-size:1.25rem;
  line-height:1.22;
  letter-spacing:-.03em;
  color:#0F0D17;
  padding-right:44px;
  min-height:3.1em;
  margin-bottom:10px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.gzm-stock-row{
  min-height:26px;
  margin-bottom:10px;
}
.gzm-stock{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 11px;
  border-radius:6px;
  font-family:'Inter',sans-serif;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.4px;
  text-transform:uppercase;
  background:#ECFDF5;
  color:#065F46;
  white-space:nowrap;
  width:fit-content;
}
.gzm-stock::before{
  content:'';
  width:6px;
  height:6px;
  border-radius:50%;
  background:#059669;
}
.gzm-stock.is-low{background:#FFF1E5;color:#C2410C}
.gzm-stock.is-low::before{background:#EA580C}
.gzm-stock.is-out{background:#FEE2E2;color:#991B1B}
.gzm-stock.is-out::before{background:#DC2626}

.gzm-price-area{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
  min-height:2.2rem;
  margin-bottom:2px;
}
.gzm-price-old{
  font-family:'Inter',sans-serif;
  font-size:.82rem;
  color:#8A83A0;
  text-decoration:line-through;
}
.gzm-price{
  font-family:'Sora',sans-serif;
  font-weight:800;
  font-size:2.2rem;
  line-height:1;
  letter-spacing:-.05em;
  color:#0F0D17;
  display:flex;
  align-items:baseline;
  gap:4px;
}
.gzm-price::before{
  content:'$';
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:1rem;
  color:#8A83A0;
}
.gzm-price-note{
  font-family:'Inter',sans-serif;
  font-size:.72rem;
  color:#8A83A0;
  min-height:14px;
  line-height:14px;
  margin-bottom:14px;
}

.gzm-qty-row{
  display:flex;
  align-items:center;
  gap:16px;
  min-height:40px;
  margin-bottom:12px;
}
.gzm-qty-lbl{
  font-family:'Inter',sans-serif;
  font-size:.84rem;
  color:#4A4359;
  font-weight:600;
}
.gzm-qty{
  display:inline-flex;
  align-items:center;
  border:1.5px solid rgba(20,16,28,.1);
  border-radius:10px;
  overflow:hidden;
  height:40px;
}
.gzm-qty__btn{
  width:38px;
  height:100%;
  border:0;
  background:#fff;
  color:#14101C;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:.15s;
}
.gzm-qty__btn:hover{background:#F4F1EA}
.gzm-qty__btn svg{width:14px;height:14px}
.gzm-qty__input{
  width:46px;
  height:100%;
  border:0;
  border-left:1.5px solid rgba(20,16,28,.1);
  border-right:1.5px solid rgba(20,16,28,.1);
  text-align:center;
  font-family:'Inter',sans-serif;
  font-size:.92rem;
  font-weight:700;
  color:#14101C;
  outline:none;
  background:#fff;
}

.gzm-actions{
  display:grid;
  grid-template-columns:1fr 52px;
  gap:10px;
  min-height:52px;
  margin-bottom:14px;
}
.gzm-buy{
  padding:14px 22px;
  border-radius:12px;
  background:linear-gradient(135deg,#7C3AED 0%,#4C1D95 100%);
  color:#fff;
  border:0;
  cursor:pointer;
  font-family:'Sora',sans-serif;
  font-weight:800;
  font-size:.9rem;
  letter-spacing:.3px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  transition:.3s cubic-bezier(.2,.8,.2,1);
  box-shadow:
    0 12px 28px -10px rgba(109,40,217,.55),
    inset 0 1px 0 rgba(255,255,255,.15);
  position:relative;
  overflow:hidden;
}
.gzm-buy::before{
  content:'';
  position:absolute;
  top:0;left:-100%;
  width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);
  transition:.7s;
}
.gzm-buy:hover{
  transform:translateY(-2px);
  box-shadow:
    0 18px 38px -10px rgba(109,40,217,.75),
    inset 0 1px 0 rgba(255,255,255,.15);
}
.gzm-buy:hover::before{left:100%}
.gzm-buy svg{width:15px;height:15px;position:relative;z-index:2}
.gzm-buy span{position:relative;z-index:2}

.gzm-wish{
  width:52px;
  height:52px;
  border-radius:12px;
  background:#fff;
  border:1.5px solid rgba(20,16,28,.1);
  cursor:pointer;
  display:grid;
  place-items:center;
  color:#14101C;
  transition:.25s cubic-bezier(.2,.8,.2,1);
}
.gzm-wish:hover{
  background:#14101C;
  color:#fff;
  border-color:#14101C;
  transform:translateY(-2px);
}
.gzm-wish svg{width:20px;height:20px}

.gzm-trust{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:12px 0;
  border-top:1px solid rgba(20,16,28,.06);
  border-bottom:1px solid rgba(20,16,28,.06);
  min-height:96px;
  margin-bottom:12px;
}
.gzm-trust-item{
  display:flex;
  align-items:center;
  gap:9px;
  font-family:'Inter',sans-serif;
  font-size:.76rem;
  color:#4A4359;
  line-height:1.4;
  min-height:18px;
}
.gzm-trust-item svg{
  width:14px;
  height:14px;
  color:#059669;
  flex-shrink:0;
}
.gzm-trust-item b{color:#0F0D17;font-weight:700}

.gzm-datasheet-wrap{
  min-height:44px;
  margin-bottom:10px;
}
.gzm-datasheet{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 13px;
  border-radius:10px;
  background:#F4F1EA;
  border:1px solid rgba(20,16,28,.06);
  text-decoration:none;
  color:#14101C;
  transition:.2s;
  font-family:'Inter',sans-serif;
  width:fit-content;
}
.gzm-datasheet:hover{background:#EDE9FE;border-color:rgba(109,40,217,.25)}
.gzm-datasheet > svg:first-child{
  width:16px;height:16px;color:#6d28d9;flex-shrink:0;
}
.gzm-datasheet b{font-size:.8rem;font-weight:700}
.gzm-datasheet small{
  display:block;
  font-size:.66rem;
  color:#8A83A0;
  margin-top:1px;
}
.gzm-datasheet__arrow{width:12px;height:12px;color:#8A83A0}

.gzm-specs-line{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  padding:8px 0;
  border-top:1px dashed rgba(20,16,28,.08);
  min-height:32px;
  margin-bottom:10px;
  font-family:'JetBrains Mono',monospace;
  font-size:.68rem;
  color:#8A83A0;
}
.gzm-specs-line b{color:#4A4359;font-weight:600}
.gzm-specs-line__sep{color:#D0D0D0;font-size:.9rem}

.gzm-desc-block{
  padding-top:12px;
  border-top:1px solid rgba(20,16,28,.06);
  flex-shrink:0;
  margin-top:auto;
}

/* ═══════════════════════════════════════════════════════════
   LIGHTBOX
   ═══════════════════════════════════════════════════════════ */
.gzl-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:6000;
  background:rgba(10,8,15,.96);
  backdrop-filter:blur(20px);
  place-items:center;
  padding:20px;
}
.gzl-modal.is-open{display:grid;animation:gzlFade .3s ease}
@keyframes gzlFade{from{opacity:0}to{opacity:1}}

.gzl-close{
  position:fixed;
  top:20px;
  right:20px;
  z-index:10;
  width:46px;
  height:46px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:.25s;
}
.gzl-close:hover{background:rgba(255,255,255,.22);transform:rotate(90deg)}
.gzl-close svg{width:20px;height:20px}

.gzl-nav{
  position:fixed;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  width:54px;
  height:54px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:.25s;
}
.gzl-nav:hover{background:rgba(255,255,255,.22);transform:translateY(-50%) scale(1.08)}
.gzl-nav svg{width:22px;height:22px}
.gzl-nav--prev{left:24px}
.gzl-nav--next{right:24px}

.gzl-stage{
  position:absolute;
  inset:80px 100px 130px 100px;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.gzl-img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  filter:drop-shadow(0 20px 60px rgba(0,0,0,.6));
  transition:opacity .25s ease;
}

.gzl-bar{
  position:fixed;
  bottom:20px;
  left:0;
  right:0;
  z-index:10;
  display:flex;
  align-items:center;
  gap:20px;
  justify-content:center;
  padding:0 24px;
  pointer-events:none;
}
.gzl-thumbs{
  display:flex;
  gap:10px;
  overflow-x:auto;
  max-width:60vw;
  padding-bottom:4px;
  pointer-events:auto;
}
.gzl-thumbs::-webkit-scrollbar{height:3px}
.gzl-thumbs::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:100px}

.gzl-thumb{
  flex-shrink:0;
  width:60px;
  height:60px;
  border-radius:10px;
  border:2px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.05);
  cursor:pointer;
  padding:5px;
  transition:.2s;
  display:grid;
  place-items:center;
}
.gzl-thumb img{max-width:100%;max-height:100%;object-fit:contain}
.gzl-thumb:hover{border-color:rgba(255,255,255,.4);transform:translateY(-3px)}
.gzl-thumb.is-active{
  border-color:#A78BFA;
  box-shadow:0 0 0 3px rgba(167,139,250,.3);
  background:rgba(167,139,250,.15);
}

.gzl-counter{
  font-family:'JetBrains Mono',monospace;
  font-size:.72rem;
  letter-spacing:1.5px;
  color:rgba(255,255,255,.75);
  padding:10px 18px;
  border-radius:100px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(10px);
  font-weight:700;
  pointer-events:auto;
  white-space:nowrap;
}
.gzl-counter b{color:#fff;font-weight:800}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */
@media (max-width:1080px){
  .gzm-box{grid-template-columns:1fr 400px}
  .gzm-info{padding:22px 26px 20px}
  .gzm-title{font-size:1.15rem}
  .gzm-price{font-size:1.9rem}
}
@media (max-width:900px){
  .gzm-modal{padding:12px}
  .gzm-box{
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    max-height:94vh;
    height:auto;
    min-height:0;
    border-radius:14px;
  }
  .gzm-gallery{
    padding:16px;
    border-right:0;
    border-bottom:1px solid rgba(20,16,28,.06);
    max-height:45vh;
  }
  .gzm-hero{padding:16px}
  .gzm-thumb{width:54px;height:54px}
  .gzm-info{padding:20px 20px 22px}
  .gzm-title{font-size:1.15rem;padding-right:40px;min-height:auto}
  .gzm-brand{padding-right:40px}
  .gzm-price{font-size:1.9rem}
  .gzl-stage{inset:70px 70px 130px 70px}
  .gzl-thumbs{max-width:70vw}
}
@media (max-width:600px){
  .gzm-info{padding:18px 16px 20px}
  .gzm-actions{grid-template-columns:1fr}
  .gzm-wish{width:100%;height:44px}
  .gzl-thumb{width:50px;height:50px}
  .gzl-stage{inset:70px 20px 130px 20px}
  .gzl-nav{width:44px;height:44px}
  .gzl-nav svg{width:16px;height:16px}
}
/* ═══════════════════════════════════════════════════════════
   Rating (estrellas) en el modal
   ═══════════════════════════════════════════════════════════ */
.gzm-rating-row{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
  min-height:20px;
}
.gzm-rating-stars{
  display:flex;
  gap:2px;
  align-items:center;
}
.gzm-rating-stars svg{
  width:15px;
  height:15px;
  flex-shrink:0;
}
.gzm-rating-text{
  font-family:'Inter',system-ui,sans-serif;
  font-size:.74rem;
  color:#6b7280;
  font-weight:600;
}
.gzm-rating-text b{
  color:#0F0D17;
  font-weight:800;
}
.gzm-rating-text a{
  color:#6d28d9;
  font-weight:700;
  text-decoration:none;
  margin-left:4px;
}
.gzm-rating-text a:hover{text-decoration:underline}