/* Wrapper */
.ammgs-wrap{
  width:100%;
  max-width:100%;
  min-width:0;
  display:block;
  box-sizing:border-box;
}

/* ==========================================================================
   CRITICAL: Elementor flex containers can collapse widgets to 0px on mobile.
   Keep this INSIDE the plugin CSS.
   ========================================================================== */
.elementor-widget-am-media-gallery-advanced,
.elementor-widget-am_media_gallery_advanced,
.elementor-widget-media_gallery{
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex: 0 0 100% !important;
}

.elementor-widget-am-media-gallery-advanced > .elementor-widget-container,
.elementor-widget-am_media_gallery_advanced > .elementor-widget-container,
.elementor-widget-media_gallery > .elementor-widget-container{
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex: 0 0 100% !important;
  display: block !important;
}

.elementor-widget-am-media-gallery-advanced .ammgs-wrap,
.elementor-widget-am_media_gallery_advanced .ammgs-wrap,
.elementor-widget-media_gallery .ammgs-wrap{
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

/* Base gallery */
.ammgs{
  width:100%;
  max-width:100%;
  /* defaults (overridden inline by widget style="--vars") */
  --cols-d:3; --cols-t:2; --cols-m:1;
  --gap-x:12px; --gap-y:12px;
  --item-h:auto;
  --fil-gap-x:8px; --fil-gap-y:8px; --filters-mb:14px;
  --groups-gap-y:10px; --groups-gap-x:16px;
  min-width:0;
  box-sizing:border-box;
}

/* GRID */
.ammgs.layout-grid{
  display:grid;
  grid-template-columns: repeat(var(--cols-d), minmax(0, 1fr));
  column-gap: var(--gap-x);
  row-gap: var(--gap-y);
  min-width:0;
}
@media (max-width:1360px){
  .ammgs.layout-grid{ grid-template-columns: repeat(var(--cols-t), minmax(0, 1fr)); }
}
@media (max-width:767px){
  .ammgs.layout-grid{ grid-template-columns: repeat(var(--cols-m), minmax(0, 1fr)); }
  /* etichette (fil-group) */
  .ammgs-filters.is-row[data-align-m="left"]    .fil-group{ justify-content:flex-start; }
  .ammgs-filters.is-row[data-align-m="center"]  .fil-group{ justify-content:center; }
  .ammgs-filters.is-row[data-align-m="right"]   .fil-group{ justify-content:flex-end; }
  .ammgs-filters.is-row[data-align-m="between"] .fil-group{ justify-content:space-between; }

  .ammgs-filters.is-column[data-align-m="left"]    .fil-group{ justify-content:flex-start; }
  .ammgs-filters.is-column[data-align-m="center"]  .fil-group{ justify-content:center; }
  .ammgs-filters.is-column[data-align-m="right"]   .fil-group{ justify-content:flex-end; }
  .ammgs-filters.is-column[data-align-m="between"] .fil-group{ justify-content:space-between; }

}

/* Ratio + crop */
.ammgs .ammgs-item{ width:100%; max-width:100%; position:relative; display:block; text-decoration:none; overflow:hidden; }
.ammgs .ammgs-item .ratio{ position:relative; display:block; width:100%; height: var(--item-h); }
.ammgs.aspect-1-1  .ammgs-item .ratio{ aspect-ratio:1/1; height:auto; }
.ammgs.aspect-4-3  .ammgs-item .ratio{ aspect-ratio:4/3; height:auto; }
.ammgs.aspect-16-9 .ammgs-item .ratio{ aspect-ratio:16/9; height:auto; }

.ammgs .ammgs-item .ratio > img,
.ammgs .ammgs-item .ratio > picture,
.ammgs .ammgs-item .ratio > video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center; display:block;
}
.ammgs .ammgs-item .ratio > picture > img{
  width:100%; height:100%; object-fit:cover; object-position:center; display:block;
}

/* Aspect naturale */
.ammgs.aspect-natural .ammgs-item .ratio{ height:auto !important; }
.ammgs.aspect-natural .ammgs-item .ratio > img,
.ammgs.aspect-natural .ammgs-item .ratio > picture,
.ammgs.aspect-natural .ammgs-item .ratio > picture > img,
.ammgs.aspect-natural .ammgs-item .ratio > video{
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
}

/* MASONRY + Safari hardening */
.ammgs.layout-masonry{
  column-count: var(--cols-d);
  column-gap: var(--gap-x);
  column-fill: balance;
  -webkit-column-count: var(--cols-d);
  -webkit-column-gap: var(--gap-x);
  -webkit-column-fill: balance;
  min-height: 1px;
}
@media (max-width:1360px){
  .ammgs.layout-masonry{ column-count: var(--cols-t); -webkit-column-count: var(--cols-t); }
}
@media (max-width:767px){
  .ammgs.layout-masonry{ column-count: var(--cols-m); -webkit-column-count: var(--cols-m); }
}
.ammgs.layout-masonry .ammgs-item{
  display:inline-block;
  width:100%;
  vertical-align:top;
  break-inside: avoid-column;
  page-break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin: 0 0 var(--gap-y) 0;
  will-change: transform;
}
.ammgs.layout-masonry .ammgs-item .ratio{ height:auto; position:relative; }
.ammgs.layout-masonry .ammgs-item .ratio > img,
.ammgs.layout-masonry .ammgs-item .ratio > picture,
.ammgs.layout-masonry .ammgs-item .ratio > video{ position:static; width:100%; height:auto; object-fit:contain; }

/* Filtri: struttura + allineamenti a classi */
.ammgs-filters{
  display:flex;
  flex-wrap:wrap;
  width:100%;
  margin: 0 0 var(--filters-mb) 0;
}
.ammgs-filters.pos-bottom{ margin: var(--filters-mb) 0 0 0; }

.ammgs-filters.is-row{ flex-direction:row; column-gap: var(--groups-gap-x); align-items:center; }
.ammgs-filters.is-column{ flex-direction:column; row-gap: var(--groups-gap-y); }

/* Allineamento per RIGA */
.ammgs-filters.is-row.align-left   { justify-content: flex-start; }
.ammgs-filters.is-row.align-center { justify-content: center; }
.ammgs-filters.is-row.align-right  { justify-content: flex-end; }
.ammgs-filters.is-row.align-between{ justify-content: space-between; }

/* Allineamento: applica anche al contenuto dei gruppi (etichette) */
.ammgs-filters.is-row.align-left   .fil-group{ justify-content:flex-start; }
.ammgs-filters.is-row.align-center .fil-group{ justify-content:center; }
.ammgs-filters.is-row.align-right  .fil-group{ justify-content:flex-end; }
.ammgs-filters.is-row.align-between .fil-group{ justify-content:space-between; }

.ammgs-filters.is-column.align-left   .fil-group{ justify-content:flex-start; }
.ammgs-filters.is-column.align-center .fil-group{ justify-content:center; }
.ammgs-filters.is-column.align-right  .fil-group{ justify-content:flex-end; }
.ammgs-filters.is-column.align-between .fil-group{ justify-content:space-between; }

/* Allineamento per COLONNA */
.ammgs-filters.is-column.align-left   { align-items: flex-start; }
.ammgs-filters.is-column.align-center { align-items: center; }
.ammgs-filters.is-column.align-right  { align-items: flex-end; }
.ammgs-filters.is-column.align-between{ align-items: stretch; }

.ammgs-filters .fil-group{
  display:flex;
  justify-content: flex-start;
  flex-wrap:wrap;
  gap: var(--fil-gap-y) var(--fil-gap-x);
}


/* ==========================================================================
   RESET: evita che il tema/Elementor applichi stili globali ai <button>
   (padding enorme, background, font-size, border-radius, ecc.)
   ========================================================================== */
.ammgs-filters .fil{
  -webkit-appearance:none;
  appearance:none;
  font: inherit;
  color: inherit;
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  line-height: 1.15;
  letter-spacing: inherit;
  text-transform: none;
  box-shadow: none;
  outline: none;
  cursor: pointer;
}
.ammgs-filters .fil:focus-visible{
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* Etichette base (pill) */
.ammgs-wrap.is-pill .ammgs-filters .fil{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #cfd6e4;
  background:#fff;
  padding:6px 10px;
  border-radius:999px;
  cursor:pointer;
  font-size:13px;
  text-align:center;
}
.ammgs-wrap.is-pill .ammgs-filters .fil:hover{ border-color:#99a7c2; }
.ammgs-wrap.is-pill .ammgs-filters .fil.active{ background:#184b73; color:#fff; border-color:#184b73; }

/* Etichette SOLO TESTO (nessuna pill) — rispettano gli stessi gap */
.ammgs-wrap.is-text .ammgs-filters .fil{
  display:inline-block;
  border:0;
  background:transparent;
  padding:0;
  border-radius:0;
  box-shadow:none;
  cursor:pointer;
  font-size:13px;
  text-align:left;
}
.ammgs-wrap.is-text .ammgs-filters .fil.active{
  background:transparent;
  color:inherit;
  border-color:transparent;
  text-decoration:none;
}

/* MOBILE: layout filtri
   - NON forziamo la direzione della barra filtri (rispetta la scelta widget)
   - Applichiamo la griglia 2-colonne SOLO quando i filtri sono in colonna
   - Gap sempre da variabili (controlli Elementor)
*/
@media (max-width: 767px){
  .ammgs-filters.is-column{
    row-gap: var(--groups-gap-y);
  }
  .ammgs-filters.is-column .fil-group{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--fil-gap-y) var(--fil-gap-x);
    width: 100%;
  }
  .ammgs-filters.is-column .fil[data-filter="*"]{ grid-column: 1 / -1; }
  .ammgs-filters .fil{ white-space: normal; line-height: 1.15; }
}

/* Hover effetti su item */
.ammgs.hover-zoom .ammgs-item img{ transition: transform .35s ease; }
.ammgs.hover-zoom .ammgs-item:hover img{ transform: scale(1.06); }
.ammgs.hover-lift .ammgs-item{ transition: transform .2s ease, box-shadow .2s ease; }
.ammgs.hover-lift .ammgs-item:hover{ transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.ammgs.hover-fade .ammgs-item::after{ content:''; position:absolute; inset:0; background:rgba(0,0,0,.15); opacity:0; transition: opacity .2s ease; }
.ammgs.hover-fade .ammgs-item:hover::after{ opacity:1; }

/* Lightbox */
.ammgs-modal{ position:fixed; inset:0; background:rgba(0,0,0,.92); display:none; align-items:center; justify-content:center; z-index:999999; }
.ammgs-modal.is-open{ display:flex; }
.ammgs-modal .frame{ max-width:90vw; max-height:85vh; position:relative; }
.ammgs-modal img, .ammgs-modal video, .ammgs-modal iframe{ max-width:90vw; max-height:80vh; display:block; margin:0 auto; }
.ammgs-modal .close{ position:absolute; top:12px; right:16px; font-size:28px; color:#fff; cursor:pointer; }
.ammgs-modal .caption{ color:#fff; text-align:center; margin-top:10px; font-size:14px; opacity:.9; }
.ammgs-modal .nav{ position:absolute; top:50%; transform:translateY(-50%); font-size:34px; color:#fff; cursor:pointer; padding:6px 10px; user-select:none; }
.ammgs-modal .nav.prev{ left:-44px; } .ammgs-modal .nav.next{ right:-44px; }

/* Lock page scroll when lightbox is open (mobile/iOS safe) */
body.ammgs-lightbox-open{ overflow:hidden !important; position:fixed; width:100%; touch-action:none; }

/* Load more */
.ammgs-load-wrap{ display:flex; justify-content:center; margin-top:16px; }
.ammgs-load{ background:#184b73; color:#fff; border:1px solid transparent; border-radius: 8px; padding:10px 14px; cursor:pointer; }

/* Animazioni */
@keyframes ammgsFadeIn { from { opacity:0; transform: translateY(6px);} to {opacity:1; transform: translateY(0);} }
.ammgs .ammgs-item.revealed{ animation: ammgsFadeIn .45s ease-out both; }

@keyframes ammgsFilterIn { from { opacity:0; transform: translateY(6px);} to {opacity:1; transform: translateY(0);} }
.ammgs .ammgs-item.filtered-reveal{ animation: ammgsFilterIn .45s ease-out both; }

/* Lazy hint per Safari */
.ammgs.layout-masonry img[loading="lazy"]{
  content-visibility: auto;
  contain-intrinsic-size: 1px 300px;
}

/* Media safe defaults */
.ammgs img{ max-width:100%; height:auto; display:block; }

/* (removed) Mobile filters editorial overrides: now controlled by Elementor responsive settings */
/* === AMMGA: FIX tap filtri su mobile (evita overlap con grid) === */
.ammgs-wrap { position: relative; }

.ammgs-filters{
  position: relative;
  z-index: 20;
  pointer-events: auto;
}

.ammgs{
  position: relative;
  z-index: 1;
}

/* i bottoni devono essere “cliccabili” sempre */
.ammgs-filters .fil{
  position: relative;
  z-index: 21;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

/* opzionale: aumenta area tappabile su mobile senza tornare alle pills */
@media (max-width: 767px){
  .ammgs-filters .fil{ padding: 6px 2px; }
}



/* Responsive alignment overrides (Elementor responsive controls) */
@media (max-width:1024px){
  .ammgs-filters.is-row[data-align-t="left"]    { justify-content:flex-start; }
  .ammgs-filters.is-row[data-align-t="center"]  { justify-content:center; }
  .ammgs-filters.is-row[data-align-t="right"]   { justify-content:flex-end; }
  .ammgs-filters.is-row[data-align-t="between"] { justify-content:space-between; }

  .ammgs-filters.is-column[data-align-t="left"]    { align-items:flex-start; }
  .ammgs-filters.is-column[data-align-t="center"]  { align-items:center; }
  .ammgs-filters.is-column[data-align-t="right"]   { align-items:flex-end; }
  .ammgs-filters.is-column[data-align-t="between"] { align-items:stretch; }
  /* etichette (fil-group) */
  .ammgs-filters.is-row[data-align-t="left"]    .fil-group{ justify-content:flex-start; }
  .ammgs-filters.is-row[data-align-t="center"]  .fil-group{ justify-content:center; }
  .ammgs-filters.is-row[data-align-t="right"]   .fil-group{ justify-content:flex-end; }
  .ammgs-filters.is-row[data-align-t="between"] .fil-group{ justify-content:space-between; }

  .ammgs-filters.is-column[data-align-t="left"]    .fil-group{ justify-content:flex-start; }
  .ammgs-filters.is-column[data-align-t="center"]  .fil-group{ justify-content:center; }
  .ammgs-filters.is-column[data-align-t="right"]   .fil-group{ justify-content:flex-end; }
  .ammgs-filters.is-column[data-align-t="between"] .fil-group{ justify-content:space-between; }

}
@media (max-width:767px){
  .ammgs-filters.is-row[data-align-m="left"]    { justify-content:flex-start; }
  .ammgs-filters.is-row[data-align-m="center"]  { justify-content:center; }
  .ammgs-filters.is-row[data-align-m="right"]   { justify-content:flex-end; }
  .ammgs-filters.is-row[data-align-m="between"] { justify-content:space-between; }

  .ammgs-filters.is-column[data-align-m="left"]    { align-items:flex-start; }
  .ammgs-filters.is-column[data-align-m="center"]  { align-items:center; }
  .ammgs-filters.is-column[data-align-m="right"]   { align-items:flex-end; }
  .ammgs-filters.is-column[data-align-m="between"] { align-items:stretch; }
}


/* === v2.0.7c: Fix alignment when "Disposizione gruppi" = column (stacked) ===
   In column layout, justify-content affects vertical axis; horizontal alignment must use align-items.
   Also apply the same alignment to each .fil-group for label wrapping.
*/
.ammgs-filters.is-column{
  display:flex;
  flex-direction:column;
}

/* Desktop */
.ammgs-filters.is-column[data-align="left"]{ align-items:flex-start; }
.ammgs-filters.is-column[data-align="center"]{ align-items:center; }
.ammgs-filters.is-column[data-align="right"]{ align-items:flex-end; }
.ammgs-filters.is-column[data-align="between"]{ align-items:stretch; } /* best-effort: full-width groups */

/* Make groups follow parent horizontal alignment */
.ammgs-filters.is-column[data-align="left"] .fil-group{ justify-content:flex-start; }
.ammgs-filters.is-column[data-align="center"] .fil-group{ justify-content:center; }
.ammgs-filters.is-column[data-align="right"] .fil-group{ justify-content:flex-end; }
.ammgs-filters.is-column[data-align="between"] .fil-group{ justify-content:space-between; width:100%; }

/* Tablet */
@media (max-width: 1024px){
  .ammgs-filters.is-column[data-align-t="left"]{ align-items:flex-start; }
  .ammgs-filters.is-column[data-align-t="center"]{ align-items:center; }
  .ammgs-filters.is-column[data-align-t="right"]{ align-items:flex-end; }
  .ammgs-filters.is-column[data-align-t="between"]{ align-items:stretch; }

  .ammgs-filters.is-column[data-align-t="left"] .fil-group{ justify-content:flex-start; }
  .ammgs-filters.is-column[data-align-t="center"] .fil-group{ justify-content:center; }
  .ammgs-filters.is-column[data-align-t="right"] .fil-group{ justify-content:flex-end; }
  .ammgs-filters.is-column[data-align-t="between"] .fil-group{ justify-content:space-between; width:100%; }
}

/* Mobile */
@media (max-width: 767px){
  .ammgs-filters.is-column[data-align-m="left"]{ align-items:flex-start; }
  .ammgs-filters.is-column[data-align-m="center"]{ align-items:center; }
  .ammgs-filters.is-column[data-align-m="right"]{ align-items:flex-end; }
  .ammgs-filters.is-column[data-align-m="between"]{ align-items:stretch; }

  .ammgs-filters.is-column[data-align-m="left"] .fil-group{ justify-content:flex-start; }
  .ammgs-filters.is-column[data-align-m="center"] .fil-group{ justify-content:center; }
  .ammgs-filters.is-column[data-align-m="right"] .fil-group{ justify-content:flex-end; }
  .ammgs-filters.is-column[data-align-m="between"] .fil-group{ justify-content:space-between; width:100%; }
}
