/* The frame reserves the full image ratio and acts as a quiet loading skeleton. */
.image-gallery-section{padding-block:10px 54px}
.image-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.gallery-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,var(--surface),var(--bg-deep));box-shadow:var(--shadow)}
.gallery-image-frame{position:relative;aspect-ratio:5/6;margin:0;overflow:hidden;background:linear-gradient(110deg,var(--surface) 8%,var(--surface-2) 18%,var(--surface) 33%);background-size:220% 100%;border-bottom:1px solid var(--line)}
.gallery-image-frame a{display:block;width:100%;height:100%}
.gallery-image-frame img{display:block;width:100%;height:100%;object-fit:contain;background:transparent}
.js .gallery-image-frame:not(.is-loaded):not(.has-error) img{opacity:0}
.js .gallery-image-frame.is-loaded img{opacity:1;transition:opacity .2s ease}
.gallery-image-frame a:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.gallery-card-content{display:grid;gap:10px;padding:12px}
.gallery-card-content h3{color:var(--text);font:600 16px/1.3 var(--sans);text-align:center}
.gallery-card .download-link{width:100%;min-height:38px;padding:7px 10px;text-align:center}
.image-gallery-section>.section-heading{margin-bottom:14px}
@media(max-width:1000px){.image-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}}
@media(max-width:650px){.image-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.gallery-card-content{padding:9px}.gallery-card-content h3{font-size:14px}.gallery-card .download-link{padding:6px 8px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.gallery-image-frame img{transition:none!important}}
html[data-list-page="1"] .gallery-card:not([data-page="1"]),html[data-list-page="2"] .gallery-card:not([data-page="2"]),html[data-list-page="3"] .gallery-card:not([data-page="3"]){display:none}
