.gallery-main { max-width:1600px;margin:auto;padding:135px clamp(20px,5vw,80px) 85px; }
.gallery-heading { max-width:810px;margin-bottom:38px; }
.gallery-heading h1 { font:500 clamp(42px,6vw,84px)/1.06 var(--editorial-font);letter-spacing:-.045em;margin:18px 0 24px; }
.gallery-heading>p:last-child { font-size:18px;line-height:1.7;max-width:680px;color:#536675; }
.gallery-filters { display:flex;flex-wrap:wrap;gap:9px;margin-bottom:32px; }
.gallery-filters button { background:transparent;color:var(--ink);border:1px solid var(--line);padding:11px 18px;border-radius:24px;cursor:pointer;font:500 14px/1.2 var(--editorial-font); }
.gallery-filters button[aria-pressed=true] { background:var(--forest);border-color:var(--forest);color:white; }
.gallery-filters button:hover { border-color:var(--forest); }
.gallery-grid { columns:3;column-gap:22px; }
.photo-card { break-inside:avoid;margin:0 0 25px;display:inline-block;width:100%; }
.photo-card[hidden] { display:none; }
.photo-open { display:block;overflow:hidden;background:#edeae0;cursor:zoom-in; }
.photo-open img { display:block;width:100%;height:auto;transition:transform .3s; }
.photo-open:hover img { transform:scale(1.025); }
.photo-card figcaption { font-size:14px;line-height:1.5;margin-top:11px; }
.photo-page { display:inline-block;margin-top:5px;font-size:12px;color:#536675;text-decoration:underline;text-underline-offset:3px; }
.photo-open:focus-visible,.gallery-filters button:focus-visible { outline:3px solid var(--lime);outline-offset:4px; }
.photo-viewer { position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#062638;color:white;overflow:hidden; }
.photo-viewer[open] { display:flex;flex-direction:column; }
.photo-viewer::backdrop { background:#062638; }
.viewer-close { position:absolute;z-index:2;right:18px;top:14px;border:1px solid #ffffff60;background:#062638bd;color:white;font:32px/1 sans-serif;border-radius:50%;width:46px;height:46px;cursor:pointer; }
.viewer-stage { flex:1;min-height:0;display:flex;align-items:center;justify-content:center;position:relative;padding:65px 75px 15px;touch-action:pan-y pinch-zoom; }
.viewer-image { display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain; }
.viewer-prev,.viewer-next { position:absolute;top:50%;transform:translateY(-50%);border:1px solid #ffffff60;background:#062638bd;color:white;border-radius:50%;width:46px;height:46px;font:36px/1 sans-serif;cursor:pointer; }
.viewer-prev { left:18px; }.viewer-next { right:18px; }
.viewer-footer { padding:16px clamp(22px,5vw,80px) 25px;background:#062638; }
.viewer-footer p { margin:0 0 10px;font-size:17px;line-height:1.5; }
.viewer-page { display:inline-block;color:var(--lime);border-bottom:1px solid currentColor;padding-bottom:4px; }
.viewer-footer>div { display:flex;justify-content:space-between;gap:20px;margin-top:14px;color:#d0d9dc;font-size:13px; }
.viewer-footer small { font-size:12px; }
body.photo-viewer-open { overflow:hidden; }
@media(max-width:1000px) { .gallery-grid { columns:2; } }
@media(max-width:600px) { .gallery-main { padding-top:110px; }.gallery-grid { columns:2;column-gap:12px; }.photo-card { margin-bottom:19px; }.photo-card figcaption { font-size:12px; }.photo-page { font-size:11px; }.gallery-filters { gap:7px; }.gallery-filters button { padding:10px 13px;font-size:12px; }.viewer-stage { padding:65px 10px 10px; }.viewer-prev,.viewer-next { top:auto;bottom:9px;transform:none;width:38px;height:38px; }.viewer-footer { padding:12px 20px 25px; }.viewer-footer p { font-size:15px; } }
@media(prefers-reduced-motion:reduce) { .photo-open img { transition:none; } }

.photo-card figcaption a { text-decoration:underline; }.viewer-footer p a { color:var(--lime);text-decoration:underline; }
