.shk-gallery { width:min(1040px,calc(100vw - 48px)); max-width:none; margin:60px 0 52px 50%; transform:translateX(-50%); min-width:0; }
.shk-gallery:focus-visible { outline:2px solid #bd1f2d; outline-offset:8px; }
.shk-gallery-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; }
.shk-gallery-heading h2 { margin:8px 0 0; }
.shk-gallery-total { flex:none; color:#bd1f2d; font-weight:700; }
.shk-gallery .shk-gallery-help { margin:18px 0 24px; font-size:14px; }
.shk-gallery-stage { position:relative; background:#e9e4dc; }
.shk-gallery-image-link { display:block; position:relative; }
.shk-gallery-stage img { display:block; width:100%; height:clamp(320px,65vh,690px); object-fit:contain; }
.shk-gallery-enlarge { position:absolute; bottom:16px; right:16px; background:rgba(255,255,255,.94); color:#171717; padding:9px 14px; font-size:14px; font-weight:700; }
.shk-gallery-arrow,.shk-gallery-close { display:grid; place-items:center; width:48px; height:48px; border:0; padding:0; background:#fff; color:#171717; font-family:Arial,sans-serif; font-size:25px; line-height:1; cursor:pointer; }
.shk-gallery-arrow { position:absolute; z-index:2; top:50%; transform:translateY(-50%); box-shadow:0 2px 12px #0002; }
.shk-gallery-prev { left:14px; }
.shk-gallery-next { right:14px; }
.shk-gallery-arrow:hover,.shk-gallery-close:hover { background:#bd1f2d; color:#fff; }
.shk-gallery button:focus-visible,.shk-gallery a:focus-visible { outline:3px solid #bd1f2d; outline-offset:3px; }
.shk-gallery-caption { display:flex; justify-content:space-between; gap:20px; padding:16px 0; font-size:14px; }
.shk-gallery-caption [data-shk-counter] { flex:none; font-weight:700; color:#bd1f2d; }
.shk-gallery-thumbs { display:flex; gap:9px; overflow-x:auto; padding:4px 3px 12px; scroll-behavior:smooth; }
.shk-gallery-thumbs button { position:relative; flex:0 0 106px; padding:3px; border:2px solid transparent; background:#eee8df; cursor:pointer; }
.shk-gallery-thumbs button[aria-current="true"] { border-color:#bd1f2d; }
.shk-gallery-thumbs img { display:block; width:96px; height:64px; object-fit:cover; }
.shk-gallery-thumbs span { position:absolute; bottom:3px; right:3px; min-width:23px; padding:0 4px; background:#171717cf; color:#fff; font-size:11px; line-height:20px; }
.shk-gallery-dialog { position:fixed; inset:0; box-sizing:border-box; width:calc(100vw - 32px); max-width:1800px; height:calc(100vh - 32px); height:calc(100dvh - 32px); max-height:none; margin:auto; border:0; padding:56px 64px 16px; background:#12171a; color:#fff; overflow:hidden; }
.shk-gallery-dialog::backdrop { background:rgba(0,0,0,.88); }
.shk-gallery-dialog figure { display:flex; flex-direction:column; width:100%; height:100%; margin:0; }
.shk-gallery-dialog figure img { flex:1; min-height:0; width:100%; height:100%; object-fit:contain; }
.shk-gallery-dialog figcaption { display:flex; flex:none; justify-content:space-between; gap:24px; margin:12px 0 0; font:14px/1.5 Arial,sans-serif; color:#fff; }
.shk-gallery-dialog [data-shk-large-counter] { flex:none; }
.shk-gallery-close { position:absolute; right:12px; top:8px; width:40px; height:40px; font-size:23px; }
html.shk-gallery-open { overflow:hidden; }
@media(max-width:900px) {
 .shk-gallery { width:100%; margin-left:0; transform:none; }
 .shk-gallery-stage img { height:clamp(260px,52vh,560px); }
}
@media(max-width:600px) {
 .shk-gallery-heading { align-items:start; }
 .shk-gallery-heading h2 { font-size:34px; }
 .shk-gallery-total { font-size:13px; }
 .shk-gallery-arrow { width:38px; height:42px; }
 .shk-gallery-prev { left:6px; } .shk-gallery-next { right:6px; }
 .shk-gallery-enlarge { right:8px; bottom:8px; font-size:12px; padding:6px 9px; }
 .shk-gallery-dialog { width:100vw; height:100vh; height:100dvh; padding:52px 8px 14px; }
 .shk-gallery-dialog figcaption { font-size:12px; padding:0 6px; gap:12px; }
 .shk-gallery-dialog .shk-gallery-arrow { top:auto; bottom:60px; transform:none; opacity:.9; }
 .shk-gallery-caption { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { .shk-gallery-thumbs { scroll-behavior:auto; } }
