/* Shared controls and the catalog/detail templates. Foundation: design-tokens.css. */
body { font-family: var(--ms-font-body); line-height: var(--ms-leading-body); }
h1,h2,h3,.eyebrow,.desktop-nav { font-family: var(--ms-font-heading); }
.button,.wp-element-button,.header-rfq,.search button { border-radius: var(--ms-radius-control); min-height:48px; font-family:var(--ms-font-body); font-weight:600; transition:background-color var(--ms-motion); }
.button:hover,.search button:hover { background:var(--ms-accent-hover); border-color:var(--ms-accent-hover); color:var(--ms-white); }
.search { border:1px solid #b8cbd4; border-radius:var(--ms-radius-control); padding:5px; box-shadow:var(--ms-shadow-soft); }
.search input { font-family:var(--ms-font-body); font-size:16px; }
.search:focus-within { border-color:var(--ms-accent); }
.catalog-main { padding-block:var(--ms-space-7) var(--ms-section-space); }
.catalog-main>h1 { font-size:var(--ms-type-display); font-weight:500; margin-bottom:20px; }
.catalog-main>.lead { max-width:650px; margin-bottom:30px; }
.catalog-main>.search { max-width:760px; }
.catalog-layout { grid-template-columns:220px minmax(0,1fr); gap:36px; margin-top:var(--ms-space-7); align-items:start; }
.catalog-layout aside { padding:22px 18px; background:var(--ms-surface); border:1px solid var(--ms-line); border-radius:var(--ms-radius-card); max-height:720px; overflow:auto; scrollbar-width:thin; }
.catalog-layout aside h2 { font-size:18px; font-weight:600; margin-bottom:14px; }
.catalog-layout aside a { padding:11px 10px; border:0; border-radius:var(--ms-radius-control); font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.catalog-layout aside a:hover { background:var(--ms-white); color:var(--ms-accent); }
.catalog-layout aside [aria-current=page] { background:var(--ms-navy); color:var(--ms-white); font-weight:600; }
.results-heading { min-height:36px; margin-bottom:22px; padding-bottom:16px; border-bottom:1px solid var(--ms-line); }
.results-heading p { font-size:16px; font-weight:600; }
.results-heading span { font-size:12px; }
.product-grid.catalogue-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.product-card { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--ms-line); border-radius:var(--ms-radius-card); background:var(--ms-white); transition:border-color var(--ms-motion),box-shadow var(--ms-motion); }
.product-card:hover,.product-card:focus-within { border-color:#8ab6c4; box-shadow:var(--ms-shadow-soft); }
.product-card .product-image { background:var(--ms-surface); aspect-ratio:var(--ms-ratio-product); display:flex; align-items:center; justify-content:center; padding:20px; }
.product-card .product-image img { width:100%; height:100%; max-height:260px; object-fit:contain; mix-blend-mode:multiply; }
.product-card .product-info { display:flex; flex-direction:column; flex:1; padding:20px; }
.product-card .product-info .eyebrow { line-height:1.5; margin-bottom:12px; font-size:10px!important; letter-spacing:.09em; }
.product-card .product-info h2 { font-size:19px; line-height:1.35; font-weight:500; margin-bottom:24px; }
.product-card .text-link { margin-top:auto; align-self:flex-start; border:0; font-size:13px; }
.pagination a,.pagination span { min-height:44px; min-width:44px; text-align:center; border-radius:var(--ms-radius-control); padding:10px 14px; }
.pagination a:hover { background:var(--ms-surface); border-color:var(--ms-accent); }
.product-detail { padding-bottom:var(--ms-space-7); }
.breadcrumbs { padding-block:26px; line-height:1.6; }
.detail-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:64px; padding-block:16px 60px; align-items:center; }
.detail-image { border:1px solid var(--ms-line); background:var(--ms-surface); border-radius:var(--ms-radius-panel); padding:40px; aspect-ratio:1/1; display:grid; place-items:center; }
.detail-image img { width:100%; height:100%; max-height:470px; object-fit:contain; mix-blend-mode:multiply; }
.detail-copy h1,.product-detail .detail-copy h1 { font-size:clamp(30px,3.3vw,46px); line-height:1.2; font-weight:500; margin-bottom:24px; overflow-wrap:anywhere; }
.detail-copy .eyebrow { margin-bottom:18px; }
.detail-copy dl { grid-template-columns:110px minmax(0,1fr); gap:16px; padding-block:24px; margin-block:24px; }
.detail-copy dt { font-size:13px; }
.detail-copy dd { font-weight:600; font-size:14px; }
.detail-copy .muted { font-size:14px; line-height:1.65; }
.detail-secondary { margin-top:16px; }
.detail-support { padding-block:32px; border-top:1px solid var(--ms-line); }
.detail-support h2 { font-size:26px; font-weight:500; margin-bottom:18px; }
.detail-support>p { max-width:var(--ms-reading-width); color:var(--ms-muted); font-size:16px; }
.detail-specs { width:100%; border-collapse:collapse; }
.detail-specs th,.detail-specs td { padding:15px; text-align:left; border-bottom:1px solid var(--ms-line); overflow-wrap:anywhere; }
.detail-specs th { width:35%; background:var(--ms-surface); }
.detail-documents { list-style:none; padding:0; }
.detail-documents li { display:flex; justify-content:space-between; gap:20px; padding:20px 0; border-bottom:1px solid var(--ms-line); }
.detail-documents span { font-size:14px; color:var(--ms-muted); }
.detail-source-review { margin-block:24px 40px; padding:28px 32px; border:1px solid var(--ms-line); border-radius:var(--ms-radius-card); background:var(--ms-surface); }
.detail-source-review summary { cursor:pointer; font-weight:600; font-size:17px; }
.detail-source-review p { margin-top:18px; font-size:14px; color:var(--ms-muted); }
.detail-source-review h3 { font-size:16px; margin-block:28px 12px; font-weight:600; }
.source-text { white-space:pre-wrap; overflow-wrap:anywhere; font-size:15px; line-height:1.8; max-height:none; margin-bottom:24px; max-width:var(--ms-reading-width); }
.product-detail .gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.product-detail .gallery a { display:flex; align-items:center; justify-content:center; border:1px solid var(--ms-line); border-radius:var(--ms-radius-card); padding:16px; aspect-ratio:1/1; overflow:hidden; background:var(--ms-white); }
.product-detail .gallery img { width:100%; height:100%; object-fit:contain; border:0; }
.legacy-media-preview li { overflow-wrap:anywhere; }
.detail-inquiry { display:flex; align-items:center; gap:35px; justify-content:space-between; background:var(--ms-surface-deep); border:0; border-radius:var(--ms-radius-panel); padding:36px; margin-top:32px; }
.detail-inquiry>div { max-width:700px; }
.detail-inquiry p { color:var(--ms-muted); }
.detail-inquiry>.button { flex-shrink:0; }
.detail-back { padding-block:24px; }
@media(max-width:1100px) {
 .product-grid.catalogue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .catalog-layout { grid-template-columns:190px minmax(0,1fr); gap:24px; }
 .detail-grid { gap:32px; }.detail-image { padding:24px; }
}
@media(max-width:760px) {
 .catalog-main { padding-top:32px; }.catalog-main>h1 { font-size:36px; }
 .catalog-layout { display:block; margin-top:28px; }
 .catalog-layout aside { display:flex; gap:8px; max-height:none; padding:10px; margin-bottom:24px; }
 .catalog-layout aside h2 { display:none; }.catalog-layout aside a { flex:0 0 auto; white-space:nowrap; min-height:44px; display:flex; align-items:center; border:1px solid var(--ms-line); padding:10px 12px; }
 .results-heading { align-items:center; gap:12px; }.results-heading p { font-size:15px; }.results-heading span { font-size:11px; }
 .product-grid.catalogue-grid { gap:12px; }.product-card .product-image { padding:12px; }.product-card .product-info { padding:14px; }.product-card .product-info h2 { font-size:16px; margin-bottom:18px; }.product-card .text-link { font-size:12px; gap:8px; }
 .detail-grid { grid-template-columns:1fr; gap:28px; padding-bottom:36px; }.detail-image { aspect-ratio:4/3; padding:24px; }.detail-image img { max-height:280px; }
 .detail-copy h1,.product-detail .detail-copy h1 { font-size:30px; }.detail-copy .button { width:100%; justify-content:center; }
 .product-detail .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .detail-source-review { padding:22px 18px; }.source-text { font-size:14px; }.detail-support h2 { font-size:24px; }
 .detail-inquiry { display:block; padding:26px 22px; }.detail-inquiry>.button { margin-top:22px; width:100%; justify-content:center; }
 .detail-documents li { display:block; }.detail-documents span { display:block; margin-top:8px; }.detail-specs th,.detail-specs td { padding:10px; }
}
@media(max-width:360px) { .product-grid.catalogue-grid { grid-template-columns:1fr; } }
