
/* SindiSistema — Galeria institucional */
.galeria-hero {
  padding: 72px 0 36px;
  background: linear-gradient(135deg, #f7fafc 0%, #eef7f0 100%);
}
.galeria-hero .section-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(25,135,84,.1);
  color: #198754;
  font-weight: 700;
  text-transform: uppercase;
  font-size: .8rem;
  letter-spacing: .06em;
  margin-bottom: 16px;
}
.galeria-hero h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  color: #132018;
  margin-bottom: 12px;
}
.galeria-hero p {
  color: #64748b;
  max-width: 760px;
  margin: 0;
}
.galeria-section { padding: 54px 0 70px; }
.album-card {
  display:block;
  height:100%;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:24px;
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  box-shadow:0 12px 34px rgba(15,23,42,.06);
  transition:.2s ease;
}
.album-card:hover { transform:translateY(-3px); box-shadow:0 18px 42px rgba(15,23,42,.1); }
.album-card-cover { aspect-ratio: 16/10; background:#e2e8f0; overflow:hidden; }
.album-card-cover img { width:100%; height:100%; object-fit:cover; display:block; }
.album-card-cover.placeholder { display:grid; place-items:center; color:#64748b; font-size:2.2rem; }
.album-card-body { padding:22px; }
.album-card-body h2 { font-size:1.12rem; font-weight:800; margin:0 0 8px; color:#0f172a; }
.album-card-body p { color:#64748b; font-size:.95rem; line-height:1.6; margin:0 0 12px; }
.album-meta { display:flex; align-items:center; gap:8px; color:#198754; font-weight:700; font-size:.9rem; }
.album-header { display:flex; justify-content:space-between; gap:18px; align-items:flex-end; margin-bottom:28px; }
.album-header h1 { font-family:'Montserrat', sans-serif; font-weight:800; margin:0 0 8px; color:#0f172a; }
.album-header p { color:#64748b; margin:0; max-width:760px; }
.photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.photo-item { border:0; padding:0; background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 10px 30px rgba(15,23,42,.08); cursor:pointer; text-align:left; }
.photo-item img { width:100%; aspect-ratio:1/1; object-fit:cover; display:block; transition:.2s ease; }
.photo-item:hover img { transform:scale(1.03); }
.photo-item span { display:block; padding:12px 14px; color:#64748b; font-size:.9rem; min-height:48px; }
.lightbox-overlay { position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; background:rgba(15,23,42,.88); padding:22px; }
.lightbox-overlay.is-active { display:flex; }
.lightbox-dialog { position:relative; width:min(1100px, 100%); }
.lightbox-image-wrap { background:#000; border-radius:20px; overflow:hidden; }
.lightbox-image-wrap img { width:100%; max-height:78vh; object-fit:contain; display:block; background:#000; }
.lightbox-caption { color:#fff; margin-top:12px; font-size:.98rem; opacity:.9; }
.lightbox-close,
.lightbox-prev,
.lightbox-next { position:absolute; border:0; border-radius:999px; width:46px; height:46px; display:grid; place-items:center; background:rgba(255,255,255,.95); color:#0f172a; font-size:1.2rem; }
.lightbox-close { top:-16px; right:-16px; }
.lightbox-prev { top:50%; left:-18px; transform:translateY(-50%); }
.lightbox-next { top:50%; right:-18px; transform:translateY(-50%); }
.empty-gallery { border:1px dashed #cbd5e1; border-radius:24px; padding:42px; text-align:center; color:#64748b; background:#fff; }
@media (max-width: 991.98px) { .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .album-header { flex-direction:column; align-items:flex-start; } }
@media (max-width: 575.98px) { .photo-grid { grid-template-columns:1fr; } .lightbox-prev { left:8px; } .lightbox-next { right:8px; } .lightbox-close { right:8px; top:8px; } }
