/* Gallery extends the existing forest / cream editorial design. */
.gallery-header { color:var(--text-light); background:var(--forest-dark); }
.gallery-page .site-nav__links a[aria-current] { text-decoration:underline; text-underline-offset:7px; }
.gallery-intro { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:64px; padding-block:64px 72px; }
.gallery-intro h1 { font-size:clamp(3rem,5.5vw,5.4rem); }
.gallery-lead { max-width:540px; color:var(--cream-dark); margin:24px 0 12px; }
.gallery-count { margin:28px 0 0; color:var(--sage); font-size:.85rem; letter-spacing:.05em; }
.gallery-count span { margin-inline:12px; }
.gallery-cover { margin:0; }
.gallery-cover img { display:block; width:100%; height:360px; object-fit:contain; background:var(--forest); }
.gallery-cover figcaption { padding-top:12px; color:var(--sage); font-size:.8rem; }
.album-directory { padding-block:64px 24px; }
.album-directory h2, .gallery-album h2 { font-size:clamp(2rem,3.6vw,3.3rem); line-height:1.08; }
.album-index { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:36px; margin-top:32px; border-top:1px solid #c9cbbb; }
.album-index a { display:flex; align-items:center; gap:18px; padding:18px 4px; min-height:86px; border-bottom:1px solid #c9cbbb; text-decoration:none; }
.album-index a:hover { background:var(--cream-dark); }
.album-index a > span:nth-child(2) { flex:1; }
.album-index__number { color:#a44121; font-size:.75rem; }
.album-index small { display:block; color:var(--text-muted); font-size:.75rem; margin-top:2px; }
.gallery-hint { color:var(--text-muted); margin:24px 0 0; font-size:.9rem; }
.gallery-album { padding-block:56px 32px; }
.album-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.album-heading > div { max-width:820px; }
.album-heading .eyebrow { margin-bottom:12px; }
.album-heading .text-link { flex-shrink:0; font-size:.8rem; }
.photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 18px; }
.gallery-photo { margin:0; min-width:0; }
.gallery-photo > a { display:block; position:relative; background:var(--forest); cursor:zoom-in; }
.gallery-photo img { display:block; width:100%; height:300px; object-fit:contain; }
.photo-enlarge { position:absolute; right:10px; bottom:10px; display:grid; place-items:center; width:32px; height:32px; background:var(--cream); color:var(--forest); border:1px solid var(--forest); }
.gallery-photo a:hover .photo-enlarge { background:var(--cream-dark); }
.gallery-photo figcaption { display:flex; justify-content:space-between; gap:12px; padding-top:10px; font-size:.8rem; color:var(--text-muted); }
.gallery-photo figcaption > span:last-child { color:#a44121; }
.gallery-cta { margin-top:64px; padding-block:72px; text-align:center; color:var(--text-light); background:var(--forest); }
.gallery-cta h2 { font-size:clamp(2.5rem,4.5vw,4.5rem); }
.gallery-cta p { max-width:650px; margin:24px auto; }
.gallery-page button:focus-visible { outline:3px solid var(--rust); outline-offset:4px; }
.gallery-dialog__inner { padding:64px 20px 20px; }
.gallery-dialog .image-dialog__close { width:48px; height:48px; top:8px; }
.gallery-dialog img { height:calc(100dvh - 245px); max-height:780px; }
.gallery-controls { display:flex; justify-content:space-between; gap:12px; margin-top:12px; }
.gallery-controls button { min-height:48px; padding:10px 16px; color:var(--cream); background:var(--forest); border:1px solid var(--sage); cursor:pointer; font:inherit; }
.gallery-controls button:hover { background:var(--forest-dark); }
body:has(.gallery-dialog[open]) { overflow:hidden; }
@media (max-width:960px) { .gallery-intro { gap:32px; } .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .album-heading { align-items:flex-start; flex-direction:column; gap:8px; } }
@media (max-width:760px) { .gallery-page .site-nav { flex-wrap:wrap; gap:14px; } .gallery-page .site-nav__links { display:flex; flex-wrap:wrap; gap:8px 24px; width:100%; } .gallery-page .site-nav__links a { display:flex; align-items:center; min-height:48px; } .gallery-intro { grid-template-columns:1fr; gap:28px; padding-block:32px 40px; } .gallery-cover img { height:280px; } .album-directory { padding-top:40px; } .gallery-album { padding-top:40px; } }
@media (max-width:600px) { .album-index, .photo-grid { grid-template-columns:1fr; } .gallery-photo img { height:340px; } .gallery-controls button { padding-inline:8px; font-size:.8rem; } .gallery-dialog__inner { padding-inline:12px; } }

.gallery-video { padding-block:72px; text-align:center; }
.gallery-video h2 { font-size:clamp(2.4rem,4.5vw,4.5rem); }
.gallery-video > p:not(.eyebrow) { max-width:650px; margin:24px auto; }
.gallery-video video { display:block; width:min(100%,478px); height:auto; max-height:75svh; object-fit:contain; margin:28px auto 12px; background:var(--forest-dark); }
