/* ═══════════════════════════════════════════════════════════
   plg_fields_photogallery — griglia foto + effetto hover
   ───────────────────────────────────────────────────────────
   Per personalizzare su un sito NON modificare questo file:
   ridefinire le variabili nel CSS del tema (es. custom.css):

     .lpg-gallery { --lpg-accent: #0a5c36; --lpg-gap: 1rem; }

   Colonne e proporzione si scelgono nelle opzioni del campo
   (--lpg-cols, --lpg-ratio arrivano dall'HTML).
   ═══════════════════════════════════════════════════════════ */

.lpg-gallery {
  --lpg-accent: var(--red, #e1081b);   /* sui siti LanceKit prende il colore del cliente */
  --lpg-gap: 0.5rem;
  --lpg-margin: 2rem 0;
  --lpg-border: 2px;
  --lpg-radius: 0;
  --lpg-dim: 0.55;                     /* luminosità dell'immagine al passaggio del mouse */
  --lpg-zoom: 1.06;
  --lpg-icon-color: #fff;
  --lpg-cols-mobile: 2;
  --lpg-cols-tablet: min(3, var(--lpg-cols, 4));

  display: grid;
  grid-template-columns: repeat(var(--lpg-cols-mobile), minmax(0, 1fr));
  gap: var(--lpg-gap);
  margin: var(--lpg-margin);
}

@media (min-width: 576px) {
  .lpg-gallery { grid-template-columns: repeat(var(--lpg-cols-tablet), minmax(0, 1fr)); }
}

@media (min-width: 992px) {
  .lpg-gallery { grid-template-columns: repeat(var(--lpg-cols, 4), minmax(0, 1fr)); }
}

/* Il contenitore nativo dei campi Joomla è una <ul>: niente pallini/rientro */
ul.fields-container:has(.lpg-gallery) {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}

.lpg-item {
  position: relative;
  margin: 0;
  overflow: hidden;
  aspect-ratio: var(--lpg-ratio, 1 / 1);
  border: var(--lpg-border) solid transparent;
  border-radius: var(--lpg-radius);
  transition: border-color 0.25s ease;
}

.lpg-link {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.lpg-img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  transition: transform 0.35s ease, filter 0.35s ease;
}

.lpg-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.lpg-icon {
  display: flex;
  padding: 0.5rem;
  color: var(--lpg-icon-color);
  border: 2px solid var(--lpg-icon-color);
  line-height: 0;
}

.lpg-item:has(.lpg-link):hover,
.lpg-item:focus-within {
  border-color: var(--lpg-accent);
}

.lpg-link:hover .lpg-img,
.lpg-link:focus-visible .lpg-img {
  transform: scale(var(--lpg-zoom));
  filter: brightness(var(--lpg-dim));
}

.lpg-link:hover .lpg-overlay,
.lpg-link:focus-visible .lpg-overlay {
  opacity: 1;
}

.lpg-link:hover .lpg-icon,
.lpg-link:focus-visible .lpg-icon {
  background-color: var(--lpg-accent);
  border-color: var(--lpg-accent);
}

.lpg-link:focus-visible {
  outline: 3px solid var(--lpg-accent);
  outline-offset: -3px;
}

@media (prefers-reduced-motion: reduce) {
  .lpg-img, .lpg-overlay, .lpg-item { transition: none; }
  .lpg-link:hover .lpg-img, .lpg-link:focus-visible .lpg-img { transform: none; }
}

/* Lightbox: niente barra titolo/descrizione */
.glightbox-container .gslide-description { display: none; }
