/* visor.css — visor de fotos de un producto (pareja de visor.js). Fuente única: ClaudeEspacio/_comun-webs/. */
.visor { position: fixed; inset: 0; z-index: 60; }
.visor[hidden] { display: none; }
.visor-fondo { position: absolute; inset: 0; background: rgba(10, 14, 22, 0.88); }
.visor-panel {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 0.75rem; padding: 2rem 1rem;
  pointer-events: none;
}
.visor-panel > * { pointer-events: auto; }
.visor-img {
  max-width: min(92vw, 640px); max-height: 72vh; object-fit: contain;
  border-radius: 12px; background: #fff; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.45);
  touch-action: pan-y; user-select: none;
}
.visor-titulo { color: #fff; font-weight: 600; margin: 0; text-align: center; }
.visor-contador { color: rgba(255, 255, 255, 0.85); font-size: 0.85rem; margin: 0; min-height: 1em; }
.visor-cerrar, .visor-flecha {
  position: absolute; border: none; border-radius: 50%; cursor: pointer; line-height: 1;
  background: rgba(255, 255, 255, 0.16); color: #fff;
}
.visor-cerrar { top: 1rem; right: 1rem; width: 44px; height: 44px; font-size: 1.6rem; }
.visor-flecha { top: 50%; transform: translateY(-50%); width: 48px; height: 48px; font-size: 2rem; }
.visor-flecha[hidden] { display: none; }
.visor-anterior { left: 0.75rem; }
.visor-siguiente { right: 0.75rem; }
.visor-cerrar:hover, .visor-flecha:hover { background: rgba(255, 255, 255, 0.3); }
.visor-cerrar:focus-visible, .visor-flecha:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* Aviso en la tarjeta de que hay más fotos ("▣ 3"), y la foto como botón. */
.foto-varias { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.fotos-cuantas {
  position: absolute; right: 8px; bottom: 8px; z-index: 3;
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 8px; border-radius: 999px; font-size: 0.78rem; font-weight: 600; line-height: 1.3;
  background: rgba(17, 24, 39, 0.72); color: #fff; pointer-events: none;
}
.fotos-cuantas svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; }

/* Página de producto /p/: tira de fotos debajo de la principal. */
.producto-miniaturas { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.producto-miniaturas button { padding: 0; border: 2px solid transparent; border-radius: 8px; background: none; cursor: zoom-in; overflow: hidden; }
.producto-miniaturas button:focus-visible { outline: 3px solid currentColor; }
.producto-miniaturas button img { display: block; width: 72px; height: 72px; aspect-ratio: auto; object-fit: cover; border-radius: 6px; box-shadow: none; }
@media (max-width: 480px) { .visor-flecha { width: 40px; height: 40px; font-size: 1.6rem; } }
