/* Cover proportions stay unchanged. Gallery images use their own native ratio. */
:root{--gallery-paper-ratio:210/297;}
body:not(.admin-body) .service-gallery .gallery-tile{aspect-ratio:auto!important;height:auto!important;min-height:0;align-self:start;}
body:not(.admin-body) .service-gallery .gallery-tile>img{display:block;width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:auto var(--gallery-image-ratio,1/1)!important;object-fit:contain!important;object-position:center;filter:none;background:var(--canvas);transform:none!important;}
/* Normal grid is a usable no-JS fallback. JS packs cards into the shortest column
   without moving/reordering DOM nodes or forcing a square/portrait crop. */
body:not(.admin-body) .natural-gallery{--gallery-columns:4;position:relative;display:grid;grid-template-columns:repeat(var(--gallery-columns),minmax(0,1fr));gap:clamp(12px,1.4vw,24px);padding:0;align-items:start;}
body:not(.admin-body) .natural-gallery.is-masonry{display:block;height:var(--masonry-height,auto);}
body:not(.admin-body) .natural-gallery.is-masonry>.gallery-tile{position:absolute;top:var(--tile-top,0);left:var(--tile-left,0);width:var(--tile-width);margin:0;}
body:not(.admin-body) .natural-gallery>.gallery-tile[hidden]{display:none!important;}
body:not(.admin-body) .natural-gallery>.gallery-tile{border-radius:6px;transition:border-color .2s,box-shadow .2s;}
body:not(.admin-body) .natural-gallery>.gallery-tile:hover{border-color:var(--border);box-shadow:0 5px 18px var(--shadow);}
@media(max-width:1199px){body:not(.admin-body) .natural-gallery{--gallery-columns:3;}}
@media(max-width:1000px){body:not(.admin-body) .natural-gallery{--gallery-columns:2;}}
@media(max-width:800px){body:not(.admin-body) .natural-gallery{--gallery-columns:1;}}
body:not(.admin-body) :is(.solution-card-media,.portrait-cover,.catalog-card>img,.catalog-card-placeholder){aspect-ratio:var(--gallery-paper-ratio)!important;height:auto!important;}
body:not(.admin-body) .solution-card-media.portrait-cover,body:not(.admin-body) .portrait-cover>img{aspect-ratio:100/141!important;}
.admin-body :is(.media-admin-thumb img,.media-admin-card-image,.media-edit-preview img,.image-upload-previews img,.pdf-candidate>img){aspect-ratio:var(--gallery-paper-ratio)!important;height:auto!important;object-fit:contain!important;background:var(--canvas);}
.admin-body .media-edit-preview img{max-height:none;}
/* The reader fits WIDTH, not viewport height. Only the image area scrolls;
   navigation and close controls stay outside that scrolling region. */
#gallery-modal .lightbox-stage{display:block;min-height:0;overflow:hidden;}
#gallery-modal .lightbox-viewport{width:100%;height:100%;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:var(--scroll-thumb) var(--scroll-track);touch-action:pan-y pinch-zoom;}
#gallery-modal .lightbox-viewport:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;}
#gallery-modal .lightbox-viewport figure{display:block;width:100%;height:auto;min-height:0;margin:0;}
#gallery-modal .lightbox-viewport figure>img{display:block;width:100%;max-width:100%;height:auto;max-height:none;min-height:0;aspect-ratio:auto;object-fit:contain;margin:0 auto;transform:none;}
#gallery-modal .lightbox-viewport figcaption{height:auto;min-height:0;max-height:none;max-width:none;overflow:visible;padding:16px 12px;margin:0;overflow-wrap:anywhere;}
#gallery-modal .lightbox-reading-info{display:grid;gap:2px;min-width:0;line-height:1.35;}
#gallery-modal .lightbox-reading-info small{font-size:12px;color:var(--text-muted);}
#gallery-modal .lightbox-toolbar{gap:14px;}
#gallery-modal .lightbox-prev[hidden],#gallery-modal .lightbox-next[hidden]{display:none;}
#gallery-modal [data-gallery-close]{flex:none;}
#gallery-modal .lightbox-state{padding:14px;border-radius:12px;background:var(--surface);color:var(--text);}
@media(max-width:800px){
 #gallery-modal .lightbox-stage{padding:8px 8px calc(70px + env(safe-area-inset-bottom));}
 #gallery-modal .lightbox-prev,#gallery-modal .lightbox-next{top:auto;bottom:calc(12px + env(safe-area-inset-bottom));}
 #gallery-modal .lightbox-prev{left:calc(50% - 58px);}
 #gallery-modal .lightbox-next{left:auto;right:calc(50% - 58px);}
 #gallery-modal .lightbox-reading-info small{font-size:10px;}
}
