/* gallery/gallery.css */
.gallery-empty { text-align: center; padding: 80px 20px; }
.gallery-empty-icon { font-size: 4rem; margin-bottom: 16px; }
.gallery-empty h3 { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.gallery-empty p { font-size: 1rem; color: var(--text-light); max-width: 480px; margin: 0 auto; line-height: 1.7; }
.gallery-empty a { color: var(--brown); text-decoration: underline; }

.album-tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 32px; }
.album-tab { background: #fff; border: 1.5px solid var(--border); color: var(--text-mid); padding: 8px 18px; border-radius: 100px; font-size: .85rem; font-weight: 600; cursor: pointer; transition: all var(--transition); font-family: 'DM Sans', sans-serif; }
.album-tab:hover, .album-tab.active { background: var(--brown); color: #fff; border-color: var(--brown); }

.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-bottom: 40px; }
.gallery-item { position: relative; border-radius: var(--radius-lg); overflow: hidden; cursor: pointer; box-shadow: var(--shadow-sm); transition: all var(--transition); aspect-ratio: 4/3; }
.gallery-item:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.gallery-item:hover img { transform: scale(1.06); }
.gallery-item-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(107,61,30,.85) 0%, transparent 55%); opacity: 0; transition: opacity .3s; display: flex; flex-direction: column; justify-content: flex-end; padding: 18px; }
.gallery-item:hover .gallery-item-overlay { opacity: 1; }
.gallery-item-title { font-weight: 700; color: #fff; font-size: .9rem; margin-bottom: 4px; }
.gallery-item-caption { font-size: .78rem; color: rgba(255,255,255,.75); }
.gallery-zoom { position: absolute; top: 12px; right: 12px; background: rgba(255,255,255,.2); color: #fff; width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .9rem; backdrop-filter: blur(4px); }

/* Lightbox */
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.94); z-index: 9000; display: none; align-items: center; justify-content: center; padding: 20px; }
.lightbox.open { display: flex; }
.lightbox-inner { max-width: 900px; width: 100%; position: relative; }
.lightbox-inner img { width: 100%; max-height: 80vh; object-fit: contain; border-radius: 10px; }
.lightbox-caption { text-align: center; margin-top: 12px; color: rgba(255,255,255,.85); }
#lightboxTitle { font-weight: 700; font-size: 1rem; }
#lightboxCap { font-size: .85rem; color: rgba(255,255,255,.55); margin-top: 4px; }
.lightbox-close { position: fixed; top: 20px; right: 20px; background: rgba(255,255,255,.15); border: none; color: #fff; width: 44px; height: 44px; border-radius: 50%; font-size: 1.3rem; cursor: pointer; transition: background .2s; display: flex; align-items: center; justify-content: center; }
.lightbox-close:hover { background: rgba(255,255,255,.3); }
.lightbox-prev, .lightbox-next { position: fixed; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.15); border: none; color: #fff; width: 48px; height: 64px; font-size: 2.2rem; cursor: pointer; transition: background .2s; border-radius: 8px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.lightbox-prev { left: 16px; }
.lightbox-next { right: 16px; }
.lightbox-prev:hover, .lightbox-next:hover { background: rgba(255,255,255,.3); }
