/* ======= GALERIA (grid + filtros + lightbox) ======= */

.gallery-filters{
  display:flex; gap:.5rem; justify-content:center; margin:1rem 0 2rem; flex-wrap:wrap;
}
.gf-btn{
  border:1px solid var(--color-border,#e2e8f0);
  background:#fff; padding:.5rem .9rem; border-radius:999px; cursor:pointer;
  font:500 0.9rem/1.2 Inter,system-ui; transition:all .2s ease;
}
.gf-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 16px rgba(0,0,0,.06); }
.gf-btn.active{ background:var(--color-primary,#0055aa); color:#fff; border-color:transparent; }

.gallery-grid.enhanced{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:14px;
}
.g-item{
  position:relative; overflow:hidden; border-radius:14px; background:#f3f5f8;
  aspect-ratio: 4 / 3; /* uniforme e bonito */
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
}
.g-item img{
  width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.02);
  transition: transform .35s ease, filter .35s ease;
}
.g-item::after{
  content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.35), rgba(0,0,0,0));
  opacity:0; transition:opacity .25s ease;
}
.g-item figcaption{
  position:absolute; left:12px; bottom:10px; color:#fff; font-weight:600; font-size:.95rem;
  text-shadow:0 1px 2px rgba(0,0,0,.35); opacity:0; transform:translateY(6px); transition:all .25s ease;
}
.g-item:hover img{ transform:scale(1.07); filter:contrast(1.02) saturate(1.03); }
.g-item:hover::after, .g-item:focus-within::after{ opacity:1; }
.g-item:hover figcaption, .g-item:focus-within figcaption{ opacity:1; transform:translateY(0); }

/* LIGHTBOX */
.g-lightbox{
  position:fixed; inset:0; background:rgba(8,12,20,.85); backdrop-filter:saturate(1.2) blur(2px);
  display:none; align-items:center; justify-content:center; z-index:9999;
}
.g-lightbox.open{ display:flex; }
.g-image{
  max-width: min(90vw, 1400px);
  max-height: 86vh; border-radius:12px; box-shadow:0 12px 60px rgba(0,0,0,.45);
}
.g-close, .g-prev, .g-next{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.14); border:0; color:#fff; width:44px; height:44px;
  border-radius:50%; cursor:pointer; font-size:1.4rem; display:grid; place-items:center;
  transition:background .2s ease, transform .1s ease; backdrop-filter: blur(2px);
}
.g-close{ top:24px; right:24px; transform:none; font-size:2rem; }
.g-prev{ left:24px; }
.g-next{ right:24px; }
.g-close:hover, .g-prev:hover, .g-next:hover{ background:rgba(255,255,255,.22); }
.g-counter{
  position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
  color:#fff; font-weight:600; background:rgba(0,0,0,.35); padding:.3rem .6rem; border-radius:8px;
  font-size:.85rem;
}

/* acessibilidade */
.g-close:focus, .g-prev:focus, .g-next:focus, .gf-btn:focus{
  outline:2px solid var(--color-primary,#0055aa); outline-offset:2px;
}

/* responsivo */
@media (max-width: 640px){
  .gallery-grid.enhanced{ gap:10px; }
  .g-item{ border-radius:10px; }
  .g-prev, .g-next{ width:40px; height:40px; }
}
