/* Public gallery only; administration keeps its existing interface. */
body.gallery-page { min-height: 100svh; display: flex; flex-direction: column; isolation: isolate; background: #eeebe5; color: #39454b; }
body.gallery-page::before { content: ''; position: fixed; inset: 0; width: auto; height: auto; margin: 0; z-index: -1; opacity: 1; animation: none !important; background: linear-gradient(rgb(249 247 242 / 84%), rgb(249 247 242 / 90%)), url('../../images/woodhorizontal3.jpg') center / cover; pointer-events: none; }
body.gallery-page::after { display: none; }
.gallery-page #main { flex: 1; width: 100%; max-width: 1200px; padding: clamp(2.5rem, 6vw, 5rem) clamp(1rem, 4vw, 2.5rem); }
.gallery-page .gallery-intro { text-align: center; margin-bottom: 1.5rem; }
.gallery-page .gallery-intro h1 { font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1.15; letter-spacing: -.045em; margin: 0; }
.gallery-page .eyebrow { color: #685843; font-size: .8rem; margin-bottom: 1rem; }
.gallery-page .gallery-intro + p { max-width: 45rem; margin: 0 auto 2rem; text-align: center; }
.gallery-page a { color: #365b32; }
.gallery-page .category-nav { justify-content: center; gap: .6rem; margin: 2rem 0 2.5rem; }
.gallery-page .category-nav a { font-size: .9rem; padding: .6rem 1rem; min-height: 44px; display: inline-flex; align-items: center; background: rgb(255 255 255 / 90%); border-color: #c9c6bc; }
.gallery-page .category-nav [aria-current] { background: #39454b; color: #fff; border-color: #39454b; }
.gallery-page .photo-grid { gap: 1.5rem; }
.gallery-page .photo-grid > * { min-width: 0; }
.gallery-page .category-card { border: 1px solid #e0dcd2; border-radius: 8px; box-shadow: 0 6px 25px #2932370c; color: #39454b; transition: transform .2s ease, box-shadow .2s ease; }
.gallery-page .category-card:hover { transform: translateY(-4px); box-shadow: 0 10px 30px #29323720; }
.gallery-page .category-card h2 { font-size: 1.3rem; margin: 1.25rem 1.25rem .4rem; overflow-wrap: anywhere; }
.gallery-page .category-card p { margin: 0 1.25rem 1.25rem; color: #59615c; }
.gallery-page .photo-grid figure { background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 6px 25px #2932370c; }
.gallery-page .photo-grid img { border-radius: 0; }
.gallery-page .photo-grid figcaption { padding: .9rem 1.1rem; font-size: .9rem; line-height: 1.5; }
.gallery-page .project-cta { text-align: center; padding: 2rem 1rem; margin-bottom: 0; background: rgb(255 255 255 / 75%); border: 1px solid #d8d1c7; border-radius: 8px; }
.gallery-page #footer { width: 100%; flex-shrink: 0; }
.gallery-page #footer a { color: inherit; }
.gallery-page #photo-viewer { position: fixed; inset: 0; width: min(1100px, 94vw); margin: auto; padding: 1rem; z-index: 20000; }
.gallery-page #photo-viewer button { height: auto; min-height: 44px; line-height: 1.4; padding: .65rem 1rem; border-radius: 5px; font-size: .9rem; }
.gallery-page #photo-viewer img { max-width: 100%; }
.gallery-page #photo-viewer video { width: 100%; }
.gallery-page #photo-viewer p { font-size: .9rem; margin: .75rem 0; }
.gallery-page .skip { position: fixed; z-index: 20001; }
@media (max-width: 600px) {
  .gallery-page .photo-grid { grid-template-columns: 1fr; gap: 1.25rem; }
  .gallery-page .category-nav { justify-content: flex-start; gap: .5rem; }
  .gallery-page .category-nav a { font-size: .85rem; }
  .gallery-page .photo-grid figure img { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-page .category-card { transition: none; }
  .gallery-page .category-card:hover { transform: none; }
}

.gallery-page .category-nav a { font-weight: 600; }
.gallery-page .project-cta > p { margin-bottom: 1rem; }
.gallery-page a.button { color: #fff; }
