:root {
  --fby-cols: auto;
  --fby-gap: 12px;
  --fby-mincol: 180px;
  --fby-ar: 1 / 1; /* relación de aspecto por defecto en grid */
}

/* Espaciado común */
.fby-lightbox-grid { gap: var(--fby-gap); }

/* ===== Layout GRID (por defecto) ===== */
.fby-lightbox-grid:not(.is-masonry) {
  display: grid;
  grid-template-columns: repeat(var(--fby-cols), minmax(0, 1fr));
}
/* Si no se fija --fby-cols, usar responsive auto-fit con ancho mínimo */
.fby-lightbox-grid:not(.is-masonry):not([style*="--fby-cols"]) {
  grid-template-columns: repeat(auto-fit, minmax(var(--fby-mincol), 1fr));
}

/* Tarjeta en grid con recorte consistente por relación de aspecto */
.fby-lightbox-grid:not(.is-masonry) .fby-lightbox-item {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  aspect-ratio: var(--fby-ar);
}
.fby-lightbox-grid:not(.is-masonry) .fby-lightbox-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}
.fby-lightbox-grid:not(.is-masonry) .fby-lightbox-item:hover img { transform: scale(1.03); }

/* ===== Layout MASONRY (columnas) ===== */
.fby-lightbox-grid.is-masonry {
  column-width: var(--fby-mincol);
  column-gap: var(--fby-gap);
}
.fby-lightbox-grid.is-masonry .fby-lightbox-item {
  display: inline-block;
  width: 100%;
  margin: 0 0 var(--fby-gap);
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}
.fby-lightbox-grid.is-masonry .fby-lightbox-item img {
  display: block;
  width: 100%;
  height: auto; /* mantiene el alto natural de cada imagen */
  transition: transform .25s ease;
}
.fby-lightbox-grid.is-masonry .fby-lightbox-item:hover img { transform: scale(1.03); }

/* ===== Lightbox ===== */
.fby-lb-overlay { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; z-index: 99999; }
.fby-lb-overlay[aria-hidden="false"] { display: flex; }
.fby-lb-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.9); }
.fby-lb-modal { position: relative; max-width: min(92vw, 1200px); max-height: 92vh; width: 100%; padding: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.fby-lb-image { max-width: 100%; max-height: 80vh; border-radius: 10px; box-shadow: 0 10px 40px rgba(0,0,0,.5); }
.fby-lb-caption { color: #fff; text-align: center; font: 500 15px/1.4 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; text-shadow: 0 1px 2px rgba(0,0,0,.6); max-width: 90vw; }

.fby-lb-btn {     line-height:initial;position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.25); color: #fff; width: 44px; height: 44px; border-radius: 999px; cursor: pointer; display: grid; place-items: center; backdrop-filter: blur(4px); }
.fby-lb-btn:hover { background: rgba(255,255,255,.2); }
.fby-lb-prev { left: 10px; }
.fby-lb-next { right: 10px; }

.fby-lb-close { line-height: 0;padding:13px;position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 999px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.1); color: #fff; text-transform:uppercase;font-size: 24px; cursor: pointer; }
.fby-lb-close:hover { background: rgba(255,255,255,.2); }
.fby-lightbox-grid > p {
  display: contents; /* elimina párrafos fantasma de WP */
}
.fby-lightbox-grid br {
  display: none;
}
.fby-lightbox-grid {margin-bottom:50px;margin-top:30px;}