/* Overlay only: disable in site.gallery_watermark or with the viewer checkbox. */
html.photo-viewer-open { overflow:hidden; }
.gallery-photo-link { display:block; text-decoration:none; }
.gallery-photo-link img { cursor:zoom-in; }
.gallery-photo-link:focus-visible,.gallery-photo-link:target { outline:3px solid var(--navy); outline-offset:-3px; }
.photo-viewer { width:min(1200px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); margin:12px auto; padding:0; overflow:auto; overscroll-behavior:contain; color:var(--ink); background:var(--paper); border:1px solid #c1d8e6; box-shadow:0 15px 70px #15365444; }
.photo-viewer::backdrop { background:#122d48d6; }
.photo-viewer-header { position:sticky; top:0; z-index:3; display:flex; align-items:flex-start; justify-content:space-between; gap:25px; padding:21px 25px; background:var(--paper); border-bottom:1px solid var(--line); }
.photo-viewer-header h2 { margin:5px 0 0; font-size:2rem; line-height:1.12; overflow-wrap:anywhere; }
.photo-close { display:grid; place-items:center; flex:0 0 auto; width:44px; height:44px; border:1px solid #bacbd6; border-radius:50%; background:white; color:var(--navy); font-size:1.9rem; line-height:1; }
.photo-viewer-figure { margin:0; padding:25px; text-align:center; background:#eff7fb; }
.photo-canvas { display:inline-block; position:relative; max-width:100%; min-height:30px; vertical-align:top; }
.photo-canvas img { display:block; width:auto; height:auto; max-width:100%; max-height:67dvh; object-fit:contain; margin:0 auto; }
.photo-canvas img[hidden] { display:none; }
.photo-watermark { position:absolute; bottom:9px; right:9px; max-width:calc(100% - 18px); padding:3px 7px; color:#fff; background:#183b5a66; font:500 10px/1.4 var(--body); letter-spacing:.025em; pointer-events:none; }
.no-watermark .photo-watermark,.photo-canvas:not(.is-loaded) .photo-watermark { display:none; }
.photo-details { max-width:850px; margin:19px auto 0; text-align:left; font-size:.9rem; line-height:1.75; overflow-wrap:anywhere; }
.photo-details p { margin-bottom:12px; }
.photo-source-caption { font-size:1.04rem; line-height:1.8; }
.photo-status { color:#526577; }
.photo-status:empty { display:none; }
.photo-file-link { display:inline-block; min-height:40px; padding-block:7px; color:var(--navy); font-size:.76rem; }
.photo-toolbar { position:sticky; bottom:0; z-index:2; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; padding:15px 25px; background:var(--paper); border-top:1px solid var(--line); }
.photo-navigation { display:flex; align-items:center; gap:16px; }
.photo-navigation button { min-height:44px; min-width:44px; padding:10px 14px; border:1px solid #b5cbd9; background:#e1f1fc; color:var(--navy); font-size:.8rem; }
.photo-navigation span { min-width:60px; text-align:center; font-size:.75rem; }
.watermark-control { display:flex; align-items:center; gap:9px; min-height:44px; font-size:.73rem; }
.watermark-control input { width:18px; height:18px; accent-color:var(--navy); }
.gallery-page #content-vacation-pics { font-size:clamp(2.65rem,4vw,3.8rem); margin-block:35px 30px; line-height:1.1; }
.gallery-page .gallery-intro { max-width:900px; margin:0 auto 40px; text-align:center; }
.gallery-page .gallery-intro h2 { font-size:clamp(3rem,4.5vw,4.2rem); }
.gallery-page .gallery-intro p { font-size:1.3rem; line-height:1.65; }
@media(max-width:600px) {
 .photo-viewer-header { gap:16px; padding:15px 16px; }
 .photo-viewer-header h2 { font-size:1.65rem; }
 .photo-viewer-figure { padding:16px; }
 .photo-canvas img { max-height:58dvh; }
 .photo-watermark { bottom:6px; right:6px; padding:2px 5px; font-size:8px; }
 .photo-details { font-size:.86rem; }
 .photo-toolbar { padding:12px 16px; gap:3px; }
 .photo-navigation { width:100%; justify-content:space-between; gap:10px; }
 .photo-navigation button { font-size:.74rem; padding-inline:12px; }
 .watermark-control { font-size:.68rem; }
 .gallery-page .gallery-intro p { font-size:1.12rem; }
}
