/* Stable intrinsic sizing: media must fill the frame, never size the frame. */
.gallery-frame{width:100%;min-width:0}
.gallery-frame>.gallery-main,.gallery-thumbnails button>img{position:absolute;inset:0;width:100%;height:100%}
.gallery-thumbnails button{position:relative;display:block}
/* Grid children may shrink to their assigned column without overlapping neighbors. */
.section-heading>*,.packaging-grid>*,.manufacturing-grid>*,.explorer-layout>*,.process-grid>*,.catalog-panel>*,.scope-note>*,.artwork-note>*,.contact-layout>*,.form-row>*,.credits-grid>*,.approach-details article>*{min-width:0}
.catalog-content,.contact-methods,.dialog-copy{overflow-wrap:break-word}
/* Safari fallback followed by dynamic viewport support. */
dialog{max-height:90vh;max-height:90dvh}
@media(max-width:1200px){
 .header,.header.scrolled,.header.menu-open,.inner-page .header{height:78px}
 .header nav{top:100%}
 .header.menu-open nav{max-height:calc(100vh - 78px);max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
 .header .site-subnav{min-width:0;max-width:100%}
 .header nav>.site-nav-group>a{min-width:0;white-space:normal;flex:1}
 .header .site-nav-toggle{flex-shrink:0}
}
@media(max-width:680px){
 .hero-services{grid-template-columns:minmax(0,1fr) minmax(0,1.45fr) minmax(0,1fr)}
 .hero-services a{overflow-wrap:break-word}
 .editorial-hero h1,.hero h1,.catalog-heading h2,.scope-note h2,.approach-details h2{overflow-wrap:break-word}
 .catalog-tabs button,.product-choices button{max-width:100%;white-space:normal}
 .gallery-toolbar button,.gallery-enlarge,.modal-navigation button,.dialog-close{min-height:44px}
 .dialog-close{min-width:44px}
 .brief-dock{bottom:calc(12px + env(safe-area-inset-bottom,0px))}
 .contact-methods>a{overflow-wrap:anywhere}
}
/* Reproduced320px packaging overflow: search grid's auto minimum exceeded column. */
.category-search>*{min-width:0}
.category-search label,.category-search>p{overflow-wrap:break-word}
.category-search>div{min-width:0}
.category-search input{width:0;flex:1 1 0;min-width:0}
.category-search button{flex:0 0 auto}
@media(max-width:950px){.category-search{grid-template-columns:minmax(0,1fr)}}

/* Photo source attribution */
.gallery-credit{font-size:12px;line-height:1.6;overflow-wrap:anywhere;margin:8px 0 0;color:inherit}.gallery-credit a{text-decoration:underline;text-underline-offset:3px}
