/* B2B catalogue. Square image slots are independent of the product detail gallery. */
.fw-catalogue{--catalogue-blue:#0044d7;color:#111;padding-top:48px;padding-bottom:60px}
.fw-catalogue [hidden]{display:none!important}
.fw-catalogue *{box-sizing:border-box}
.fw-directory-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px}
.fw-kicker{font-size:12px;letter-spacing:.12em;font-weight:700;color:var(--catalogue-blue);margin:0 0 10px}
.fw-directory-heading h2{font-size:32px;line-height:1.2;margin:0;color:#111}
.fw-directory-back{color:var(--catalogue-blue);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;padding:12px 0}
.fw-directory-back:hover{text-decoration:underline}
.fw-catalogue-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
.fw-catalogue[data-enhanced] .fw-catalogue-layout{grid-template-columns:218px minmax(0,1fr)}
.fw-filter-panel{border:1px solid #dfe3e8;border-radius:6px;background:#fff}
.fw-filter-panel summary{font-size:17px;font-weight:700;cursor:pointer;padding:20px;list-style-position:inside}
.fw-filter-content{padding:0 16px 20px}
.fw-filter-content h3{border-top:1px solid #e4e7eb;padding-top:20px;font-size:13px;font-weight:700;margin:0 0 12px}
.fw-filter-option{display:flex;align-items:center;gap:9px;min-height:44px;padding:6px 0;font-size:13px;line-height:1.4;cursor:pointer}
.fw-filter-option span{flex:1}
.fw-filter-option small{font-size:12px;color:#555;font-variant-numeric:tabular-nums}
.fw-catalogue input[type=checkbox]{appearance:auto;width:17px;height:17px;flex:0 0 17px;accent-color:var(--catalogue-blue);margin:0;cursor:pointer}
.fw-catalogue-controls{display:flex;gap:16px;align-items:end}
.fw-search-field{flex:1;min-width:0}
.fw-sort-field{flex:0 0 164px}
.fw-catalogue-controls label{display:block;font-size:13px;font-weight:600;margin:0 0 7px}
.fw-catalogue-controls input,.fw-catalogue-controls select{display:block;width:100%;min-height:48px;background:#fff;border:1px solid #bfc7d2;border-radius:6px;padding:10px 12px;font:inherit;font-size:14px;color:#111}
.fw-result-count{font-size:13px;color:#444;margin:18px 0;font-variant-numeric:tabular-nums}
.fw-catalogue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.fw-product-card{min-width:0;border:1px solid #dfe3e8;border-radius:6px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:border-color .15s}
.fw-product-card:hover{border-color:#95a9c6}
.fw-card-image{display:block;position:relative;width:100%;aspect-ratio:1/1;background:#f4f6f8;overflow:hidden}
.fw-card-image img{display:block;width:100%;height:100%;aspect-ratio:1/1;object-fit:cover}
.fw-image-note{position:absolute;bottom:10px;left:10px;font-size:10px;line-height:1.4;padding:4px 7px;background:rgba(255,255,255,.96);color:#444;border:1px solid #e1e5eb;border-radius:3px}
.fw-card-copy{padding:19px;display:flex;flex-direction:column;flex:1;border-top:1px solid #e7eaf0}
.fw-card-eyebrow{font-size:11px;font-weight:600;color:var(--catalogue-blue);margin:0 0 9px;line-height:1.5}
.fw-card-copy h3{font-size:18px;line-height:1.4;margin:0 0 10px;color:#111}
.fw-card-copy h3 a{color:inherit;text-decoration:none}
.fw-card-copy h3 a:hover{color:var(--catalogue-blue);text-decoration:underline}
.fw-card-description{font-size:13px;line-height:1.7;color:#333;margin:0 0 20px;flex:1}
.fw-card-link{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;font-size:13px;font-weight:600;color:var(--catalogue-blue);text-decoration:none}
.fw-card-link:hover{text-decoration:underline}
.fw-card-link span{font-size:20px}
.fw-empty-results{border:1px dashed #bfc7d2;border-radius:6px;padding:48px 24px;text-align:center}
.fw-empty-results h3{font-size:24px;margin-bottom:12px}
.fw-empty-results p{font-size:15px;margin-bottom:24px}
.fw-catalogue .fw-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 18px;border-radius:6px;border:1px solid var(--catalogue-blue);background:var(--catalogue-blue);color:#fff;font-size:14px;line-height:1.35;font-weight:600;text-decoration:none;cursor:pointer}
.fw-catalogue .fw-button:hover{background:#003bbd;border-color:#003bbd;color:#fff}
.fw-catalogue .fw-button-light{background:#fff;color:var(--catalogue-blue)}
.fw-text-button{border:0;background:none;color:var(--catalogue-blue);font-size:13px;text-decoration:underline;min-height:44px;padding:10px 0;cursor:pointer}
.fw-catalogue :is(a,button,input,select,summary):focus-visible{outline:3px solid #0044d7;outline-offset:3px}
.fw-catalogue+ .editorial-body{border-top:1px solid #e3e7ed}
/* Keep filters available in the two-column layout; mobile retains its existing flow. */
@media(min-width:768px){
 .fw-filter-panel{position:sticky;top:var(--catalogue-filter-top,100px);max-height:calc(100vh - var(--catalogue-filter-top,100px) - 16px);max-height:calc(100dvh - var(--catalogue-filter-top,100px) - 16px);overflow-y:auto;scrollbar-gutter:stable}
}
@media(min-width:1600px){.fw-catalogue[data-enhanced] .fw-catalogue-layout{grid-template-columns:236px minmax(0,1fr)}}
@media(max-width:1199px){.fw-catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fw-catalogue[data-enhanced] .fw-catalogue-layout{grid-template-columns:205px minmax(0,1fr);gap:22px}}
@media(max-width:767px){
 .fw-catalogue{padding-top:32px;padding-bottom:36px}
 .fw-directory-heading{align-items:start;gap:12px;flex-direction:column;margin-bottom:20px}
 .fw-directory-heading h2{font-size:27px}
 .fw-directory-back{padding:4px 0}
 .fw-catalogue[data-enhanced] .fw-catalogue-layout{grid-template-columns:minmax(0,1fr);gap:20px}
 .fw-filter-panel summary{padding:14px 16px;font-size:15px}
 .fw-filter-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
 .fw-filter-content h3,.fw-filter-content>button{grid-column:1/-1}
 .fw-catalogue-grid{gap:14px}
 .fw-card-copy{padding:14px}
 .fw-card-copy h3{font-size:16px}
 .fw-card-description{font-size:12px}
 .fw-sort-field{flex-basis:138px}
 .fw-catalogue-controls{gap:10px}
 .fw-image-note{font-size:9px;bottom:7px;left:7px}
}
@media(prefers-reduced-motion:reduce){.fw-product-card{transition:none}}
