/* Responsive photograph galleries and progressive-enhancement image viewer. */
.legacy-main { overflow-wrap: anywhere; }
.legacy-main .photo-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; margin:28px 0; text-align:left; }
.photo-card { min-width:0; margin:0; padding:14px; background:#f7f8f2; border:1px solid #d6ddcf; border-radius:5px; }
.photo-card--wide { grid-column:span 2; }
.photo-card .photo-zoom { display:flex; align-items:center; justify-content:center; width:100%; height:320px; background:#e9ede5; border-radius:2px; overflow:hidden; }
.legacy-main .photo-card .gallery-photo { display:block; width:100%; height:320px; max-height:none; object-fit:contain; margin:0; border:0; }
.photo-caption { margin-top:14px; font-size:18px; line-height:1.55; font-weight:normal; color:#26382d; text-align:left; }
.photo-caption p { margin:.6em 0; }
.photo-caption font,.photo-caption span { font-family:inherit!important; font-size:inherit!important; }
.photo-zoom { cursor:zoom-in; max-width:100%; }
.photo-zoom img { max-width:100%; height:auto; }
.photo-zoom:focus-visible { outline:3px solid #9b6619; outline-offset:5px; }
.photo-card .photo-zoom:hover { box-shadow:0 0 0 2px #647f58; }
.related-photo-link { display:inline-block; margin-top:10px; font:15px/1.5 Arial,sans-serif; }
.legacy-main .record-photo { max-height:760px; margin:24px auto; }
.legacy-main .photo-zoom:has(.record-photo) { display:block; width:fit-content; margin:0 auto; }
.intro>.photo-zoom { flex-shrink:0; }
.audit-nav { align-items:center; }
.audit-nav a { min-height:32px; display:inline-flex; align-items:center; }
.audit-nav a[aria-current=page] { font-weight:bold; text-decoration-thickness:2px; }
.map-jumps { display:flex; flex-wrap:wrap; gap:12px 22px; padding:18px 0 26px; border-bottom:1px solid #d6ddcf; font:15px/1.5 Arial,sans-serif; }
.sitemap-page section { padding:20px 0 10px; scroll-margin-top:20px; }
.sitemap-page h2 { color:#285342; font-size:1.5rem; }
.sitemap-links { padding-left:1.25em; columns:2; column-gap:45px; }
.sitemap-links li { break-inside:avoid; margin:0 0 .65em; }
.photo-viewer { width:min(1180px,96vw); max-width:96vw; height:94vh; height:94dvh; max-height:94vh; max-height:94dvh; padding:0; border:1px solid #697066; border-radius:7px; background:#18211b; color:#f9fbf6; box-shadow:0 12px 70px #000a; }
.photo-viewer[open] { display:flex; flex-direction:column; }
.photo-viewer::backdrop { background:rgba(8,16,10,.88); }
.photo-viewer .viewer-header { display:flex; flex:none; align-items:flex-start; justify-content:space-between; gap:20px; padding:16px 20px 10px; }
.photo-viewer .viewer-title { margin:0; max-height:5em; overflow:auto; font:17px/1.5 Georgia,serif; }
.photo-viewer .viewer-counter { margin:5px 0 0; color:#c4d0c3; font:13px/1.4 Arial,sans-serif; }
.photo-viewer button,.photo-viewer .viewer-original { min-height:44px; border:1px solid #91a38c; border-radius:4px; padding:9px 14px; background:#31422f; color:#fff; font:15px/1.4 Arial,sans-serif; text-decoration:none; cursor:pointer; }
.photo-viewer button:hover,.photo-viewer .viewer-original:hover { background:#45603e; }
.photo-viewer button:focus-visible,.photo-viewer .viewer-original:focus-visible { outline:3px solid #f0d186; outline-offset:3px; }
.photo-viewer button:disabled { opacity:.45; cursor:default; }
.photo-viewer .viewer-close { flex:none; white-space:nowrap; }
.photo-viewer .viewer-stage { flex:1 1 auto; min-height:0; padding:12px; display:flex; align-items:center; justify-content:center; overflow:auto; background:#101611; }
.photo-viewer .viewer-image { display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; cursor:zoom-in; margin:auto; }
.photo-viewer .viewer-stage.is-zoomed { display:block; }
.photo-viewer .viewer-stage.is-zoomed .viewer-image { width:var(--photo-natural-width); height:auto; max-width:none; max-height:none; margin:0 auto; cursor:zoom-out; }
.photo-viewer .viewer-controls { flex:none; display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:center; padding:12px 20px 16px; }
.photo-viewer .viewer-error { color:#f1d58b; padding:20px; }
body.photo-viewer-open { overflow:hidden; }
@media(max-width:1000px) { .legacy-main .photo-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; } }
@media(max-width:650px) { .legacy-main .photo-gallery { grid-template-columns:minmax(0,1fr); gap:22px; } .photo-card--wide { grid-column:auto; } .photo-card .photo-zoom,.legacy-main .photo-card .gallery-photo { height:340px; } .sitemap-links { columns:1; } .photo-viewer { width:98vw; max-width:98vw; height:97vh; height:97dvh; max-height:97vh; max-height:97dvh; } .photo-viewer .viewer-header { padding:12px; gap:10px; } .photo-viewer .viewer-title { font-size:15px; max-height:4.5em; } .photo-viewer .viewer-controls { gap:8px; padding:10px; } .photo-viewer button,.photo-viewer .viewer-original { font-size:14px; padding:8px 10px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print { .photo-viewer,.audit-nav,.site-audit-footer,.map-jumps { display:none!important; } .photo-card { break-inside:avoid; } .legacy-main .photo-gallery { display:block; } .photo-card { margin-bottom:20px; } }
