/* Shared reading and touch sizes for the storefront and generated catalogue. */
/* Use the supplied W artwork in every header without redrawing the logo. */
.brand{display:flex;align-items:center;gap:11px;white-space:nowrap}
.brand .mark{display:inline-flex;flex:0 0 62px;width:62px;height:44px;align-items:center;justify-content:center;overflow:hidden;border-radius:7px;background:#fff}
.brand .mark img{display:block;width:100%;height:100%;object-fit:contain}
/* Direct catalogue entry points share the soft header and original ribbon W. */
@media screen {
 body:has(>.catalog-sticky-header) { background:#f4f5f7; }
 .sticky-site-header.catalog-sticky-header { background:#f8f9fa!important;color:#111827!important; }
 .sticky-site-header.catalog-sticky-header .brand { color:#111827!important; }
 .sticky-site-header .world-brand-w { background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important; }
 .sticky-site-header .world-brand-w img { display:block!important;object-fit:contain;animation:none!important;transform:none!important; }
 .sticky-site-header .world-brand-w::before { content:none!important;display:none!important; }
 .catalog-sticky-header .home,.catalog-sticky-header .header-search button { background:#f1f5f9!important;color:#111827!important; }
 .catalog-sticky-header .header-search { border-color:#cbd5e1!important; }
 body>.families { background:#f4f5f7;color:#111827; }
 body>.families a { color:#111827;font-size:17px; }
 body>main>.intro { background:linear-gradient(120deg,#0f172a 0%,#1e293b 100%);color:#fff;border-color:#253449; }
 body>main>.intro p,body>main>.intro .eyebrow { color:#f8fafc; }
}
.detail-art:empty,.art-disclosure:empty{display:none}
.product.without-photo{grid-template-columns:minmax(0,1fr)}
.item>.material-panel:first-child{margin-top:-20px;padding-top:20px}
@media(max-width:760px){.item>.material-panel:first-child{margin-top:-13px;padding-top:16px}}
body{font-size:1rem;line-height:1.65}
.card,.item,.product{min-width:0}
.grid,.items{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}
.card h3,.item h2{font-size:1.1875rem;line-height:1.5;letter-spacing:0;font-weight:800;min-height:0}
.card .material,.card .spec,.card .product-connection,.item .material-panel p,.product dl{font-size:1rem;line-height:1.65;color:#203d51}
.card .spec{min-height:0}
.card .material b,.card .spec b{flex-basis:2.5em}
.card .product-config{min-height:0;margin-top:6px;font-size:.875rem;line-height:1.6;color:#40596a}
.material-panel{background:#edf3f8;color:#102f45}
.card .material{background:#dfe9f1}
.sales-panel{background:#fff1d6;border-top:2px solid #dcc28f;color:#102f45}
.card .price,.item .price{font-size:1.625rem;line-height:1.4;font-variant-numeric:tabular-nums}
.card .price small,.price-label{font-size:.875rem;line-height:1.5;color:#5e4419}
.quote-price{font-size:1.125rem;line-height:1.5}
.card .price-spec,.card .source-note,.sales-panel .muted,.item .muted{font-size:.875rem;line-height:1.65;color:#455862}
.card .tag,.card .plain,.filter-use,.preparing{font-size:.875rem;line-height:1.5}
.cardfoot button,.button,.request label,.request input,.request select{font-size:1rem}
.cardfoot button,.button,.request button{min-height:44px;line-height:1.5}
.cardfoot{gap:8px}
.cardfoot button{padding:10px 8px}
.cats h2,.cats h3,.cats .family-button,.family-button,.sub-family,.catalog-breadcrumb,.catalog-head p,.catalog-head select{font-size:.875rem}
.facet-row>strong,.facet,.fit-note,.choose-hint,.related-families b,.related-families button{font-size:.875rem;line-height:1.5}
.facet{min-height:38px;padding:8px 12px}
.facet-row>strong{flex-basis:4.5em}
.utility,.trust div,.trust small,.contact-strip small,.hero .quick-panel summary>.quick-kicker,.hero .quick-panel summary>.quick-description{font-size:.875rem}
.utility{flex-wrap:wrap;gap:6px 18px;padding-top:5px;padding-bottom:5px}
.hero-steps,.hero-steps b{font-size:.875rem}
.quote input,.quote select,.hero .quote input,.rows input,.rows textarea,#priceOption,#capacityOption,#customCapacity{font-size:1rem;line-height:1.5}
.item-fields label,.filter-fields label,.filter-fields small,.privacy-note,.art-disclosure,.image-notice,.guide,.notice,.picture small{font-size:.875rem;line-height:1.65}
.filter-help{font-size:.875rem!important}
.size-table,.table-scroll table,.size-table th,.size-table td,.table-scroll th,.table-scroll td{font-size:1rem;line-height:1.6}
.size-table th,.size-table td,.table-scroll th,.table-scroll td{padding:12px}
.price-table-wrap,.table-scroll{overflow:auto}
#selectedPrice{font-size:1.125rem}
#selectedPrice small{font-size:.875rem;line-height:1.6}
.brand-watermark,.watermark{opacity:.3}
.art,.catalog-art{position:relative}
.art-caption{position:absolute;right:7px;bottom:5px;max-width:calc(100% - 14px);padding:2px 6px;border-radius:3px;background:rgba(255,255,255,.94);color:#4b6170;font-size:.75rem;font-weight:500;line-height:1.5;pointer-events:none}
.card .product-image{height:240px}
.card .catalog-art{width:220px;height:220px;max-width:100%}
@media(max-width:1000px){.grid,.items{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
 .grid,.items{grid-template-columns:minmax(0,1fr);gap:16px}
 .card h3,.item h2{font-size:1.125rem}
 .card .material,.card .spec{display:flex;gap:8px}
 .card .material b,.card .spec b{margin-right:0}
 .card .cardfoot{flex-direction:row}
 .card .material-panel,.card .sales-panel{padding:16px}
 .card .product-image{height:250px}
 .card .catalog-art{width:230px;height:230px}
 .catalog-head{flex-wrap:wrap;align-items:flex-start}
 .catalog-head select{max-width:100%}
 .hero-steps{gap:8px 12px}
 .hero-steps b{font-size:.75rem}
}

/* Consistent white product image stage, centered across cards and detail pages. */
.card .product-image{display:flex;align-items:center;justify-content:center;padding:0;background:#fff}
.card .catalog-art{flex:0 0 auto;width:min(210px,calc(100% - 24px));height:auto;aspect-ratio:1;background-color:#fff;background-repeat:no-repeat}
.item .art,.product .art,.detail-art .catalog-art{background-color:#fff;background-repeat:no-repeat}

/* Model details and lazy-loaded independent product illustrations. */
.catalog-art>.product-photo,.art>.product-photo{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:#fff}
.model-specs{margin:18px 0;padding:18px;background:#edf3f8;border:1px solid #cedbe6;border-radius:8px}
.model-specs h2,.model-specs h3{margin:0 0 12px;font-size:1.125rem}
.model-specs dl{display:grid;grid-template-columns:minmax(100px,30%) minmax(0,1fr);gap:0;margin:0;font-size:1rem}
.model-specs dt,.model-specs dd{margin:0;padding:10px 8px;border-bottom:1px solid #d4dfe7;overflow-wrap:anywhere}
.model-specs dt{font-weight:700}.model-specs dd{color:#203d51}
@media(max-width:600px){.model-specs{padding:14px}.model-specs dl{grid-template-columns:100px minmax(0,1fr)}}

.product-identity{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin:8px 0 14px;font-size:1rem;line-height:1.5;color:#24475e}.product-identity b{color:#102f45}.product-identity span{overflow-wrap:anywhere}.detail-art .catalog-art{width:min(380px,100%);height:auto;aspect-ratio:1}

.photo-zoom{display:block;margin:10px auto;padding:10px 16px;width:fit-content;border:1px solid #c6d6e1;border-radius:8px;color:#194761;background:#fff;font-weight:700;text-decoration:none}.photo-zoom:hover{background:#eef5f9}.detail-art{display:flex;align-items:center;flex-direction:column}

.gallery-panel{margin:20px 0;border:1px solid #cad8e1;border-radius:10px;padding:14px}.gallery-panel summary{cursor:pointer;font-weight:700;color:#194761}.product-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-top:16px}.product-gallery figure{margin:0;border:1px solid #e0e7ec;border-radius:8px;padding:8px;background:#fff}.product-gallery img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}.product-gallery a{color:#173c53;text-decoration:none}.product-gallery figcaption{font-size:15px;line-height:1.5;margin-top:8px}

.photo-pending{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;min-height:230px;width:100%;padding:24px;box-sizing:border-box;background:#f4f7f9;border:1px dashed #b5c7d3;border-radius:8px;color:#506a7b;text-align:center}.photo-pending strong{font-size:18px}.photo-pending small{font-size:14px}

/* Keep search and the quote action within reach while browsing the catalogue. */
:root{--site-header-height:92px}
html{scroll-padding-top:calc(var(--site-header-height) + 16px)}
body{padding-top:var(--site-header-height)}
.sticky-site-header{position:fixed;inset:0 0 auto;z-index:80;width:100%;background:#0b2239;box-shadow:0 3px 12px #0b223922}
.top .header{grid-template-columns:auto minmax(150px,1fr) auto;gap:20px;padding-top:12px;padding-bottom:12px}
.top .brand{font-size:1.5rem}
.top .cart-open{min-height:46px;white-space:nowrap}
.cats{top:calc(var(--site-header-height) + 12px);max-height:calc(100dvh - var(--site-header-height) - 24px);overflow-y:auto}
.modal{z-index:100}.toast{z-index:110}
.catalog-sticky-header{display:grid;grid-template-columns:auto minmax(150px,1fr) auto;gap:20px;padding:12px 24px}
.header-search{display:flex;min-width:0;height:48px;overflow:hidden;border:3px solid #f3a712;border-radius:8px;background:#fff}
.header-search input{width:100%;min-width:0;flex:1;padding:0 14px;border:0;font:inherit;color:#102335;outline-offset:-3px}
.header-search button{width:54px;flex:none;border:0;background:#f3a712;color:#0b2239;font-size:22px;cursor:pointer}
.catalog-sticky-header .home{margin:0;padding:10px 14px;white-space:nowrap;font-weight:700}
@media(max-width:900px){
 :root{--site-header-height:134px}
 .top .header,.catalog-sticky-header{grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;padding:10px 14px}
 .top .header .search,.catalog-sticky-header .header-search{grid-column:1/-1;grid-row:2}
 .catalog-sticky-header .home{grid-column:2;grid-row:1}
 .top .brand,.catalog-sticky-header .brand{font-size:1.3rem;gap:8px}
 .brand .mark{flex-basis:48px;width:48px;height:34px}
 .top .head-actions{display:flex}.top .cart-open{padding:8px 10px;font-size:.875rem}
 .catalog-sticky-header .home{font-size:.875rem;padding:9px 12px}
 .cats{max-height:none}
}
@media(max-width:380px){.top .brand,.catalog-sticky-header .brand{font-size:1.08rem}.brand .mark{flex-basis:40px;width:40px;height:30px}.top .header,.catalog-sticky-header{gap:8px}}

/* Local review: retain original W/navy/yellow hierarchy; reveal buying controls sooner. */
.discipline-nav{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:10px 0;scrollbar-width:thin}
.discipline-nav strong{flex:none;font-size:.875rem;color:#173d5b;margin-right:5px}
.discipline-nav button{flex:none;min-height:44px;padding:8px 12px;border:1px solid #becdd8;border-radius:6px;background:#fff;color:#173d5b;font:inherit;font-size:.875rem;font-weight:700;cursor:pointer}
.discipline-nav button.on{background:#173d5b;color:#fff;border-color:#173d5b}
.discipline-nav button:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e7ad40;outline-offset:2px}
.hero{padding:16px 24px;gap:24px}.hero h1{font-size:clamp(24px,2.3vw,32px);margin-bottom:10px}.hero-brandline{margin-bottom:8px}
.hero .quick-panel summary{padding:12px 16px}.hero .quick-panel summary>.quick-action{margin-top:8px;padding-top:8px}
.contact-strip{margin-top:10px;padding:10px 14px}.work{margin-top:16px}
.sales-unit{font-size:.875rem;line-height:1.5;margin:8px 0 0;color:#40596a}.sales-unit b{color:#203d51;margin-right:6px}
.family-button,.sub-family,.facet,.related-families button{min-height:44px}.table-scroll td a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px}
.catalog-sticky-header .brand{color:#fff;text-decoration:none}
@media(max-width:760px){
 .discipline-nav{margin:0 -4px;padding:8px 4px}.discipline-nav strong{font-size:.8125rem}
 .hero{padding:12px 14px;gap:10px}.hero h1{font-size:24px;margin-bottom:0}.hero h1 br{display:none}.hero-steps,.hero-brandline{display:none}
 .hero .quick-panel summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;min-height:48px}
 .hero .quick-panel summary>.quick-kicker{margin:0;color:#173d5b}.hero .quick-panel summary>strong{display:none}.hero .quick-panel summary>.quick-action{margin:0;padding:0;border:0;font-size:.8125rem;gap:8px}
 .contact-strip{padding:10px 12px;gap:8px;margin-top:8px}.contact-strip>div{display:none}.contact-strip a{font-size:.875rem;min-height:44px;display:flex;align-items:center;justify-content:center;flex:1;padding:8px}
 .catalog-head{gap:8px}.catalog-head h2{font-size:1.25rem;margin:4px 0}.catalog-head p{margin:4px 0}.catalog-head select{min-height:44px}.catalog-breadcrumb{font-size:.8125rem}
 .choose-hint{margin:6px 0}.work{margin-top:12px}.catalog-filters{padding-top:0;padding-bottom:8px}
}
.discipline-nav a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;border:1px solid #becdd8;border-radius:6px;background:#fff;color:#173d5b;font-size:.875rem;font-weight:700;text-decoration:none}
/* Desktop: separate vertical work/material navigation. Mobile: one horizontal work row. */
.discipline-sidebar{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #c6d2dc}
.discipline-sidebar button{display:block;text-align:left;width:100%;min-height:44px;padding:9px 12px;border:0;border-radius:5px;background:transparent;color:#173d5b;font-weight:700}
.discipline-sidebar button.on{background:#173d5b;color:#fff}
@media(min-width:1001px){#disciplineNav{display:none}}
@media(max-width:1000px){.discipline-sidebar{display:none}.cats{overflow-x:auto;flex-wrap:nowrap}.cats .family-button{flex:none}}
.mobile-category-menu{display:none}
@media(max-width:1000px){
 .mobile-category-menu{display:block;margin:10px 0;border:1px solid #becdd8;background:#fff}
 .mobile-category-menu>summary{min-height:48px;padding:11px 14px;color:#173d5b;font-weight:800;cursor:pointer}
 .mobile-category-menu[open]{max-height:65dvh;overflow-y:auto}
 #disciplineNav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;margin:0;padding:8px 12px}
 #disciplineNav>strong{grid-column:1/-1}.discipline-nav button{white-space:normal;text-align:left}
 #mobileCatalogGroups{padding:0 12px 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 #mobileCatalogGroups h3{font-size:.875rem;color:#173d5b;margin:10px 0 4px}
 #mobileCatalogGroups .family-button{min-height:44px;font-size:.875rem}
 .cats{display:none}
}
