/* Module photos - Thư viện ảnh + lightbox thuần CSS/JS */
.photos-page { margin-bottom: 30px; }
.photos-title { font-size: 24px; color: var(--gdnn-primary, #088040); margin: 10px 0 12px; }
.photos-filter { margin-bottom: 16px; }
.photos-filter .form-control { margin-right: 8px; margin-bottom: 6px; }
.album-card { background: #fff; border: 1px solid #e3ebe6; border-radius: 10px; overflow: hidden; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,.05); transition: transform .15s, box-shadow .15s; }
.album-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.1); }
.album-cover { display: block; position: relative; aspect-ratio: 3 / 2; background: #f1f5f2; overflow: hidden; }
.album-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.album-cover-empty { display: flex; align-items: center; justify-content: center; height: 100%; min-height: 160px; color: #9bb3a4; font-size: 40px; }
.album-count { position: absolute; right: 8px; bottom: 8px; background: rgba(0,0,0,.6); color: #fff; font-size: 12px; padding: 2px 8px; border-radius: 12px; }
.album-body { padding: 10px 12px 12px; }
.album-title { font-size: 16px; margin: 0 0 6px; line-height: 1.35; }
.album-card-sm .album-title { font-size: 14px; padding: 6px 8px; }
.album-title a { text-decoration: none; }
.album-meta { font-size: 13px; color: #666; margin: 0; }
.album-meta span { margin-right: 10px; }
.album-header { margin-bottom: 14px; }
.album-description { margin: 8px 0; }
.album-share { margin-top: 8px; }
.album-share .btn { margin-right: 4px; }
.photo-item { margin: 0 0 16px; border-radius: 8px; overflow: hidden; background: #f1f5f2; }
.photo-link { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.photo-link img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s; }
.photo-link:hover img { transform: scale(1.04); }
.photo-caption { font-size: 12px; padding: 6px 8px; color: #444; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.photo-download { float: right; color: #666; }
/* Lightbox */
.photos-lightbox { position: fixed; inset: 0; z-index: 10000; background: rgba(0,0,0,.92); display: flex; align-items: center; justify-content: center; }
.photos-lightbox[hidden] { display: none; }
.lb-figure { margin: 0; max-width: 92vw; max-height: 90vh; text-align: center; }
.lb-img { max-width: 92vw; max-height: 82vh; object-fit: contain; box-shadow: 0 0 30px rgba(0,0,0,.6); }
.lb-caption { color: #eee; margin-top: 8px; font-size: 14px; }
.lb-close, .lb-prev, .lb-next { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; font-size: 28px; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; line-height: 1; }
.lb-close:hover, .lb-prev:hover, .lb-next:hover, .lb-close:focus, .lb-prev:focus, .lb-next:focus { background: rgba(255,255,255,.3); outline: 2px solid #fff; }
.lb-close { top: 14px; right: 14px; }
.lb-prev { left: 14px; top: 50%; margin-top: -24px; }
.lb-next { right: 14px; top: 50%; margin-top: -24px; }
.lb-download { position: absolute; left: 14px; bottom: 14px; color: #fff; background: rgba(255,255,255,.15); padding: 6px 12px; border-radius: 16px; text-decoration: none; }
.lb-counter { position: absolute; right: 14px; bottom: 14px; color: #ddd; font-size: 13px; }
body.photos-lb-open { overflow: hidden; }
@media (max-width: 767px) {
    .lb-prev, .lb-next { width: 40px; height: 40px; font-size: 22px; margin-top: -20px; }
    .photo-caption { display: none; }
}
