/* umivale/galeria-fotos — grid de miniaturas + modal lightbox navegable.
   Réplica del componente "Galería de imágenes" de Liferay (contador n/N,
   siguiente/anterior, tira de mini-miniaturas dentro del modal). */

/* Medido contra producción (2026-07-14): NO hereda el 2em/bold genérico de
   .umivale-section-title — este título puntual del componente de galería es
   29.2px/500 (ni el tamaño ni el peso del section-title institucional).
   Selector con elemento (h3.) para ganarle a .umivale-section-title por
   especificidad sin tocar esa clase compartida. */
.umivale-gf__title {
  text-align: center;
  margin-bottom: 20px;
}
h3.umivale-gf__title {
  font-size: 29.2px;
  font-weight: 500;
  line-height: 1.4;
  margin-bottom: 20px;
}

.umivale-gf__empty {
  opacity: 0.6;
  font-style: italic;
}

/* Grid de miniaturas — réplica EXACTA del mecanismo original (medido contra
   producción, no aproximado): fila flex con margin -15px + columnas al
   (100/cols)% con padding 0 15px (gutter de 30px entre imágenes) + imagen a
   175px de alto con object-fit:cover. Breakpoints como el original
   (col-lg-3/col-md-3 = 25%, col-sm-6 = 50%, col-xs-12 = 100%). */
.umivale-gf__grid {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -15px;
}
.umivale-gf__thumb-wrap {
  width: calc(100% / var(--uv-gf-cols, 4));
  padding: 0 15px;
  margin-bottom: 20px;
  box-sizing: border-box;
}
@media (max-width: 767px) {
  .umivale-gf__thumb-wrap { width: 50%; }
}
@media (max-width: 480px) {
  .umivale-gf__thumb-wrap { width: 100%; }
}
.umivale-gf__thumb {
  width: 100%;
  height: 175px;
  /* fill, no cover — medido contra producción (2026-07-14, 6 miniaturas +
     imagen del slide del modal): el original estira la imagen al cuadro
     exacto en vez de recortarla manteniendo proporción. */
  object-fit: fill;
  cursor: pointer;
  transition: 0.3s;
}
.umivale-gf__thumb:hover,
.umivale-gf__thumb:focus {
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  outline: none;
}

/* Modal / lightbox */
.umivale-gf__modal {
  display: none;
  position: fixed;
  z-index: 99999;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: #000;
}
body.umivale-gf-modal-open { overflow: hidden; }

.umivale-gf__modal-content {
  position: relative;
  margin: 40px auto 0;
  padding: 0;
  width: 90%;
  max-width: 920px;
}
.umivale-gf__slide { display: none; }
.umivale-gf__slide-img { width: 100%; height: auto; display: block; }
.umivale-gf__numbertext {
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  padding: 8px 12px;
  position: absolute;
  top: 0;
}
.umivale-gf__caption {
  text-align: center;
  background-color: #000;
  padding: 8px 16px 16px;
  color: #fff;
  max-width: 920px;
  margin: 0 auto;
}
.umivale-gf__close {
  color: #fff;
  position: absolute;
  top: 10px;
  right: 25px;
  font-size: 35px;
  font-weight: bold;
  cursor: pointer;
  z-index: 2;
}
.umivale-gf__close:hover,
.umivale-gf__close:focus { color: #999; }

.umivale-gf__prev,
.umivale-gf__next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -50px;
  color: #fff;
  font-weight: bold;
  font-size: 20px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
  z-index: 2;
  text-decoration: none;
}
.umivale-gf__next { right: 0; border-radius: 3px 0 0 3px; }
.umivale-gf__prev:hover,
.umivale-gf__next:hover { background-color: rgba(0, 0, 0, 0.8); color: #fff; }

/* Tira de mini-miniaturas del modal — medido contra producción: 4 columnas
   (25%) de 230px dentro de un modal-content de 920px, padding 0 15px,
   imagen resultante 200x140. Réplica del mismo mecanismo fila/columna que
   el grid principal, a escala del ancho del modal. */
.umivale-gf__thumbstrip {
  max-width: 920px;
  margin: 0 auto;
  padding: 10px 0 20px;
  display: flex;
  flex-wrap: wrap;
}
.umivale-gf__minithumb-wrap {
  width: 25%;
  padding: 0 15px;
  box-sizing: border-box;
}
.umivale-gf__minithumb {
  width: 100%;
  height: 140px;
  object-fit: cover;
  cursor: pointer;
  opacity: 0.6;
  transition: 0.3s;
}
.umivale-gf__minithumb:hover,
.umivale-gf__minithumb.active { opacity: 1; }
