@charset "utf-8";
/* Galería — estilos aislados por id */
#galeria { --g-gap: 12px; }
#galeria .gal-grid { display:grid; grid-template-columns: repeat(var(--g-cols, 4), 1fr); gap: var(--g-gap); }
@media (max-width:1200px){ #galeria .gal-grid{ grid-template-columns: repeat(3,1fr);} }
@media (max-width:768px){ #galeria .gal-grid{ grid-template-columns: repeat(2,1fr);} }
@media (max-width:480px){ #galeria .gal-grid{ grid-template-columns: 1fr; } }

#galeria .gal-item { position:relative; border-radius:12px; overflow:hidden; background:#f3f4f6; border:1px solid #e5e7eb; }
#galeria .gal-item img { display:block; width:100%; height: var(--g-thumb, 220px); object-fit:cover; transition: transform .25s ease, filter .25s ease, opacity .25s ease; }
#galeria .gal-item .play { position:absolute; inset:auto 10px 10px auto; background:rgba(0,0,0,.6); color:#fff; border-radius:999px; width:36px; height:36px; display:flex; align-items:center; justify-content:center; font-size:18px; }
#galeria .gal-item:hover img { transform: scale(1.03); }

#galeria .gal-caption { position:absolute; left:0; right:0; bottom:0; background:linear-gradient(180deg, transparent, rgba(0,0,0,.55)); color:#fff; padding:32px 10px 10px; font-size:.9rem; opacity:.0; transition:opacity .2s ease; }
#galeria .gal-item:hover .gal-caption { opacity:1; }

/* Variantes */
/* Masonry: usa columnas y alturas naturales */
#galeria.masonry .gal-grid { column-count: var(--g-cols, 4); column-gap: var(--g-gap); display:block; }
@media (max-width:1200px){ #galeria.masonry .gal-grid{ column-count: 3; } }
@media (max-width:768px){ #galeria.masonry .gal-grid{ column-count: 2; } }
@media (max-width:480px){ #galeria.masonry .gal-grid{ column-count: 1; } }
#galeria.masonry .gal-item { display:inline-block; width:100%; margin: 0 0 var(--g-gap); }
#galeria.masonry .gal-item img { height:auto; }

/* Títulos siempre visibles (debajo) */
#galeria.captions-always .gal-caption { position:static; background:none; color:#374151; opacity:1; padding:8px 0 0; }
#galeria.captions-always .gal-item:hover .gal-caption { opacity:1; }

/* Efectos (hover) */
#galeria.fx-zoom .gal-item:hover img { transform: scale(1.05); }
#galeria.fx-grayscale .gal-item img { filter: grayscale(100%); }
#galeria.fx-grayscale .gal-item:hover img { filter: grayscale(0%); }
#galeria.fx-blur .gal-item img { filter: blur(2px); }
#galeria.fx-blur .gal-item:hover img { filter: blur(0); }
#galeria.fx-opacity .gal-item img { opacity: .8; }
#galeria.fx-opacity .gal-item:hover img { opacity: 1; }

/* Velocidad */
#galeria.sp-fast .gal-item img { transition-duration: .15s; }
#galeria.sp-slow .gal-item img { transition-duration: .45s; }

/* Lightbox simple */
#galeria .lb-overlay { position:fixed; inset:0; background:rgba(0,0,0,.9); display:none; align-items:center; justify-content:center; z-index:1050; }
#galeria .lb-overlay.active { display:flex; }
#galeria .lb-inner { position:relative; max-width:90vw; max-height:90vh; }
#galeria .lb-inner img, #galeria .lb-inner video, #galeria .lb-inner iframe { max-width:100%; max-height:80vh; border-radius:8px; box-shadow: 0 10px 30px rgba(0,0,0,.4); }
#galeria .lb-close, #galeria .lb-prev, #galeria .lb-next { position:absolute; top:50%; transform: translateY(-50%); background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.25); color:#fff; width:40px; height:40px; border-radius:999px; display:flex; align-items:center; justify-content:center; cursor:pointer; backdrop-filter: blur(4px); }
#galeria .lb-close { top:-12px; right:-12px; transform:none; }
#galeria .lb-prev { left:-56px; }
#galeria .lb-next { right:-56px; }
#galeria .lb-caption { margin-top:8px; color:#e5e7eb; text-align:center; font-size:.9rem; }
