/* Photo gallery: public album grid / album page, and the admin album screens. Uses the shared design tokens only. */

/* ---- public ---- */
.gal-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.gal-filter a { display: inline-block; padding: .4rem .9rem; border: 1px solid var(--line-strong); border-radius: 999px; font-size: var(--fs-sm); text-decoration: none; color: var(--ink-2); }
.gal-filter a[aria-current="true"] { background: var(--navy-700); border-color: var(--navy-700); color: #fff; }

.gal-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); list-style: none; margin: 0; padding: 0; }
.gal-card { display: flex; flex-direction: column; border: 1px solid var(--line-strong); border-radius: .6rem; overflow: hidden; background: var(--white, #fff); text-decoration: none; color: inherit; height: 100%; }
.gal-card:hover, .gal-card:focus-visible { border-color: var(--navy-500); }
.gal-cover { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; display: block; background: var(--surface); }
.gal-cover-empty { aspect-ratio: 4 / 3; display: grid; place-items: center; background: var(--surface); color: var(--muted); font-size: 2rem; }
.gal-card-body { padding: .85rem 1rem 1rem; display: grid; gap: .3rem; }
.gal-card-body h2, .gal-card-body h3 { font-size: var(--fs-md); margin: 0; }
.gal-meta { display: flex; flex-wrap: wrap; gap: .4rem .75rem; align-items: center; font-size: var(--fs-xs); color: var(--muted); }

.gal-photos { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); list-style: none; margin: 0; padding: 0; }
.gal-photo { margin: 0; }
.gal-photo a { display: block; border-radius: .5rem; overflow: hidden; border: 1px solid var(--line-strong); }
.gal-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.gal-photo figcaption { font-size: var(--fs-sm); color: var(--ink-2); padding: .35rem .15rem 0; }
.gal-desc { max-width: 46rem; }

/* ---- admin ---- */
.gal-thumb { width: 96px; height: 64px; object-fit: cover; border-radius: .35rem; border: 1px solid var(--line-strong); display: block; background: var(--surface); }
.gal-admin-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); padding: 1rem; }
.gal-admin-card { border: 1px solid var(--line-strong); border-radius: .6rem; overflow: hidden; display: flex; flex-direction: column; background: var(--white, #fff); }
.gal-admin-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.gal-admin-card form { padding: .75rem; display: grid; gap: .5rem; }
.gal-admin-actions { display: flex; gap: .5rem; align-items: center; justify-content: space-between; }
.gal-order { max-width: 6rem; }
