/* Visor de fotografías a pantalla completa.
   Lo comparten la galería (galeria.html) y el carrusel de Ganadores (index.html),
   así que no puede depender de las variables de .pagina-galeria: define las suyas.
   El latón (#c7995d) está muestreado de los trofeos de las propias fotos. */

.visor {
  --visor-laton-claro: #f9bf74;
  --visor-filete: rgba(199, 153, 93, 0.38);
}

.visor {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 3.5rem);
}
.visor[hidden] { display: none; }
.visor__fondo {
  position: absolute;
  inset: 0;
  background: rgba(3, 7, 16, 0.96);
  opacity: 0;
  transition: opacity 0.42s ease;
}
.visor--abierto .visor__fondo { opacity: 1; }

/* El pie y los controles entran después de la fotografía, no con ella. */
.visor__pie,
.visor__btn,
.visor__cerrar {
  opacity: 0;
  transition: opacity 0.3s ease 0.26s, color 0.3s ease, border-color 0.3s ease;
}
.visor--abierto .visor__pie,
.visor--abierto .visor__btn,
.visor--abierto .visor__cerrar { opacity: 1; }

/* Cambio de fotografía dentro del visor. */
.visor__img { transition: opacity 0.22s ease; }
.visor--cambiando .visor__img { opacity: 0.15; }
.visor__marco {
  position: relative;
  max-width: min(1240px, 92vw);
  display: flex;
  flex-direction: column;
  gap: clamp(0.6rem, 1.2vw, 1rem);
}
.visor__img {
  max-width: 100%;
  max-height: 76vh;
  width: auto;
  height: auto;
  object-fit: contain;
}
.visor__pie {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding-top: clamp(0.5rem, 1vw, 0.8rem);
  border-top: 1px solid var(--visor-filete);
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.45);
  font-variant-numeric: tabular-nums;
}
.visor__pie b { font-weight: 500; color: var(--visor-laton-claro); }

.visor__btn,
.visor__cerrar {
  position: absolute;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
  transition: color 0.3s ease, border-color 0.3s ease;
}
.visor__btn:hover,
.visor__cerrar:hover { color: var(--visor-laton-claro); border-color: var(--visor-filete); }
.visor__btn:focus-visible,
.visor__cerrar:focus-visible { outline: 2px solid var(--visor-laton-claro); outline-offset: 3px; }
.visor__btn--prev { left: clamp(0.5rem, 3vw, 3rem); top: 50%; transform: translateY(-50%); }
.visor__btn--next { right: clamp(0.5rem, 3vw, 3rem); top: 50%; transform: translateY(-50%); }
.visor__cerrar { top: clamp(0.75rem, 3vw, 2.25rem); right: clamp(0.75rem, 3vw, 2.25rem); }

@media (max-width: 599.98px) {
  .visor__btn { bottom: 1rem; top: auto; transform: none; }
  .visor__btn--prev { left: 22%; }
  .visor__btn--next { right: 22%; }
  .visor__img { max-height: 62vh; }
}

@media (prefers-reduced-motion: reduce) {
  .visor__img,
  .visor__fondo { transition: none; }
  .visor__pie,
  .visor__btn,
  .visor__cerrar { opacity: 1; }
}
