/* --- Controls --- */
.pg-wrap { display: grid; gap: 0.75rem; }
.pg-controls { display:flex; gap:0.5rem; flex-wrap:wrap; align-items:center; }
.pg-controls .pg-btn{
  appearance: none;
  border:1px solid #e5e7eb;
  background:#fff;
  border-radius:10px;
  padding:.5rem .8rem;
  font-size:.95rem;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.pg-controls .pg-btn:hover{ background:#f9fafb; }
.pg-controls .pg-btn[aria-pressed="true"]{
  background:#111827; color:#fff; border-color:#111827;
}

/* --- Grid --- */
.pg-gallery{
  display:grid;
  gap: 1rem;
  grid-template-columns: repeat(var(--pg-max-cols, 5), minmax(0, 1fr));
  align-items:start;
}
@media (max-width: 900px){
  .pg-gallery{
    grid-template-columns: repeat(var(--pg-min-cols, 2), minmax(0, 1fr));
  }
}
.pg-item{
  display:flex; flex-direction:column; gap:0.5rem;
  background:#ffffff; border-radius:12px; border:1px solid #e5e7eb;
  padding:0.75rem; box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.pg-item img.pg-photo{
  width:100%; height:auto; display:block; border-radius:8px;
  transition: transform .26s ease, opacity .26s ease, filter .26s ease;
  will-change: transform, opacity, filter;
}
.pg-caption{ font-size:.95rem; color:#111827; line-height:1.3; word-break: break-word; text-align:center; }

/* --- Animation presets --- */

/* Fade */
.pg-item img.pg-photo.pg-anim-out-fade { opacity: 0; transform: scale(0.98); }
.pg-item img.pg-photo.pg-anim-in-fade  { opacity: 1; transform: none; }

/* Flip horizontal (Y axis) */
.pg-item img.pg-photo.pg-anim-out-flip-x { transform: rotateY(90deg); opacity: 0; }
.pg-item img.pg-photo.pg-anim-in-flip-x  { transform: rotateY(0deg);  opacity: 1; transform-origin:center; }

/* Flip vertical (X axis) */
.pg-item img.pg-photo.pg-anim-out-flip-y { transform: rotateX(90deg); opacity: 0; }
.pg-item img.pg-photo.pg-anim-in-flip-y  { transform: rotateX(0deg);  opacity: 1; transform-origin:center; }

/* Slides */
.pg-item img.pg-photo.pg-anim-out-slide-left  { transform: translateX(-20px); opacity: 0; }
.pg-item img.pg-photo.pg-anim-in-slide-left   { transform: translateX(0);      opacity: 1; }
.pg-item img.pg-photo.pg-anim-out-slide-right { transform: translateX(20px);  opacity: 0; }
.pg-item img.pg-photo.pg-anim-in-slide-right  { transform: translateX(0);      opacity: 1; }
.pg-item img.pg-photo.pg-anim-out-slide-up    { transform: translateY(-20px); opacity: 0; }
.pg-item img.pg-photo.pg-anim-in-slide-up     { transform: translateY(0);      opacity: 1; }
.pg-item img.pg-photo.pg-anim-out-slide-down  { transform: translateY(20px);  opacity: 0; }
.pg-item img.pg-photo.pg-anim-in-slide-down   { transform: translateY(0);      opacity: 1; }

/* Zooms */
.pg-item img.pg-photo.pg-anim-out-zoom-in  { transform: scale(1.08); opacity: 0; }
.pg-item img.pg-photo.pg-anim-in-zoom-in   { transform: scale(1);    opacity: 1; }
.pg-item img.pg-photo.pg-anim-out-zoom-out { transform: scale(0.92); opacity: 0; }
.pg-item img.pg-photo.pg-anim-in-zoom-out  { transform: scale(1);    opacity: 1; }

/* Rotate */
.pg-item img.pg-photo.pg-anim-out-rotate { transform: rotate(90deg) scale(0.98); opacity:0; }
.pg-item img.pg-photo.pg-anim-in-rotate  { transform: rotate(0deg)  scale(1);    opacity:1; }

/* Blur */
.pg-item img.pg-photo.pg-anim-out-blur { filter: blur(6px); opacity: 0; }
.pg-item img.pg-photo.pg-anim-in-blur  { filter: blur(0px); opacity: 1; }

/* Frozen state (auto stopped) */
.pg-gallery.pg-frozen .pg-photo{ transition: none; }
