/* The workbook catalogue uses the approved light, architectural design. */
.equipment-shell { grid-template-columns: minmax(270px,25%) minmax(0,1fr) 250px; }
.equipment-tabs { grid-template-columns: minmax(0,1fr); grid-auto-flow: row; grid-template-rows: repeat(6,minmax(64px,1fr)); }
.equipment-tabs > button { padding-inline: 12px; font-size: 16px; gap: 15px; }
.equipment-tabs > button > span:nth-child(2) { flex: 1; }
.subcategory-grid { grid-template-columns: minmax(0,1fr); gap: 0; align-items: start; }
.equipment-browse-group { min-width: 0; border-bottom: 1px solid #cdd5d8; }
.equipment-group-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 16px; }
.equipment-group-row > .equipment-group-heading { display: flex; align-items: center; gap: 12px; min-width: 0; min-height: 76px; padding: 12px 0; color: var(--ink); font-size: 17px; font-weight: 500; line-height: 1.4; text-align: left; }
.equipment-group-heading > [data-i18n-content] { overflow-wrap: anywhere; }
.equipment-group-heading > .icon { width: 16px; height: 16px; flex-shrink: 0; margin-left: auto; transition: transform 160ms ease; }
.equipment-group-heading[aria-expanded="true"] { color: var(--blue); }
.equipment-group-heading[aria-expanded="true"] > .icon { transform: rotate(180deg); }
.equipment-group-view-all { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border: 1px solid #bcc9ce; border-radius: 3px; color: var(--blue); font-size: 14px; line-height: 1.35; text-align: center; }
.equipment-group-view-all:hover { background: #e8eeeb; border-color: #8299a7; }
.equipment-group-heading:focus-visible, .equipment-group-view-all:focus-visible, .equipment-group-types a:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.equipment-group-types { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 24px; padding: 0 0 16px; }
.equipment-group-types[hidden] { display: none; }
.equipment-group-types a { display: flex; align-items: center; min-height: 44px; padding: 9px 0; font-size: 15px; line-height: 1.45; color: #536573; overflow-wrap: anywhere; }
.equipment-group-types a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
.equipment-group-heading:hover { color: var(--blue); }
@media (max-width:1280px) {
 .mobile-category > summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; padding: 15px 10px; line-height: 1.5; color: var(--blue); }
 .mobile-category > summary::-webkit-details-marker { display: none; }
 /* Draw disclosure marks without adding punctuation to the accessible name. */
 #mobile-menu details > summary::after { content: ''; flex: 0 0 .65em; align-self: center; width: .65em; height: .65em; background: linear-gradient(currentColor,currentColor) center / 100% 1px no-repeat, linear-gradient(currentColor,currentColor) center / 1px 100% no-repeat; }
 .mobile-category[open] > summary { background: #edf2f0; }
 #mobile-menu details[open] > summary::after { content: ''; background-size: 100% 1px, 1px 0; }
 .mobile-category > div { margin: 0 0 12px 10px; padding-left: 12px; border-left: 1px solid #d6dfdc; }
 .mobile-main .equipment-group-heading { min-height: 66px; padding: 12px 0; font-size: 16px; }
 .mobile-main .equipment-group-row { gap: 12px; }
 .mobile-main .equipment-group-view-all { max-width: 102px; padding-inline: 9px; }
 .mobile-main .equipment-group-types { grid-template-columns: minmax(0,1fr); padding: 0 0 12px 12px; border-left: 1px solid #d6dfdc; margin-bottom: 8px; }
 .mobile-main .mobile-category > div > .mobile-category-overview { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-weight: 600; color: var(--blue); }
}
@media (prefers-reduced-motion:reduce) { .equipment-group-heading > .icon { transition: none; } }
.source-home-brand { display: flex; justify-content: center; align-items: center; text-align: center; flex: 0 0 220px; min-height: 118px; border-left: 1px solid var(--line); padding: 20px; font-size: 26px; font-weight: 500; letter-spacing: -.04em; color: #6b7479; transition: color 160ms ease; }
.source-home-brand .source-brand-logo-frame { transform: translateX(16px); }
.source-home-brand:hover { color: var(--blue); }
.source-category-nav { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); border-block: 1px solid var(--line); margin-top: 22px; }
.source-category-nav a { position: relative; display: flex; flex-direction: column; gap: 15px; align-items: start; padding: 22px 18px; border-right: 1px solid var(--line); min-width: 0; font-size: 16px; line-height: 1.4; }
.source-category-nav a:last-child { border: 0; }
.source-category-nav a > small { margin-top: auto; font-size: 14px; color: #72828c; }
.source-category-nav a[aria-current] { background: #edf1ef; box-shadow: inset 0 -2px var(--red); }
.source-category-nav a:hover { background: #f2f4f2; }
.source-group-nav { display: flex; flex-wrap: wrap; gap: 8px; padding-block: 25px 8px; }
.source-group-nav a { display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid #d1d8db; padding: 12px 16px; font-size: 15px; line-height: 1.4; }
.source-group-nav a span { color: #6c7e88; font-size: 13px; }
.source-group-nav a[aria-current] { color: var(--blue); background: #edf1ef; border-color: #869ba8; }
.source-catalogue .catalog-active-filters { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 10px; padding: 0; background: transparent; }
.source-catalogue .catalog-active-filters > a { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: #f0f3f1; font-size: 14px; }
.source-catalogue .catalog-active-filters > a > .icon { width: 14px; height: 14px; }
.source-catalogue .catalog-listing { padding-top: 24px; }
.source-product-card { min-width: 0; display: flex; flex-direction: column; }
.source-product-visual { min-height: 240px; padding: 25px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; background: #eff2ef; color: #728995; position: relative; }
.source-product-visual > .icon { width: 62px; height: 62px; stroke-width: .9; }
.source-product-visual > span { max-width: 100%; font-size: 26px; line-height: 1.2; font-weight: 400; letter-spacing: -.035em; overflow-wrap: anywhere; text-align: center; }
.source-product-visual > small { font-size: 13px; font-weight: 400; color: #778992; }
.source-product-visual-detail { width: 100%; min-height: 470px; height: 100%; gap: 38px; border: 1px solid #e2e7e2; }
.source-product-visual-detail > .icon { width: 110px; height: 110px; stroke-width: .75; }
.source-product-visual-detail > span { font-size: clamp(32px,3.3vw,54px); }
.source-product-card .catalog-product-copy { display: flex; flex-direction: column; align-items: start; flex: 1; }
.source-product-card .catalog-product-copy h3 { font-size: 24px; line-height: 1.35; font-weight: 500; letter-spacing: -.02em; overflow-wrap: anywhere; margin: 9px 0 14px; }
.source-product-card .catalog-product-brand { font-size: 15px; margin: 0 0 12px; }
.source-product-card .catalog-product-actions { margin-top: auto; padding-top: 20px; width: 100%; gap: 15px; flex-wrap: wrap; }
.source-product-card .catalog-product-actions .text-link { font-size: 14px; }
.source-product-card .catalog-product-category { margin-bottom: 8px; }
.source-catalogue .product-summary h1 { overflow-wrap: anywhere; }
.source-product-type { margin-top: 20px; font-size: 17px; color: var(--blue); }
.source-catalogue .product-short-description { margin-block: 22px 28px; }
.source-catalogue .product-gallery { align-self: stretch; }
.source-reference-table { width: 100%; overflow-x: auto; }
.source-reference-table th { min-width: 150px; }
.source-reference-table td { overflow-wrap: anywhere; }
.source-catalogue .product-panel .product-pending { margin: 0 0 25px; font-size: 16px; max-width: 760px; }
.source-catalogue .product-relations .catalog-product-grid { align-items: stretch; }
.source-brands-directory { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; padding: 8px 0 70px; }
.source-brand-count { margin-top: 10px; font-size: .8125rem; line-height: 1.4; color: var(--text-secondary); text-align: center; }
.source-brand-card:hover .source-brand-count { color: var(--blue); }
.source-brand-card { min-width: 0; min-height: 132px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; border: 1px solid var(--line); background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.source-brand-card:hover { border-color: var(--blue); box-shadow: 0 10px 24px #1b3b5b12; }
.source-brand-logo-frame { width: 100%; height: 84px; display: flex; align-items: center; justify-content: center; }
.source-brand-logo-frame img { display: block; width: auto; height: auto; max-width: min(190px,100%); max-height: 80px; object-fit: contain; object-position: center; }
.source-brand-logo-slot { width: min(220px,100%); height: 84px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 0; background: transparent; }
.source-brand-logo-slot-dark { height: 56px; padding: 0 14px; border-radius: 4px; background: var(--blue); overflow: hidden; }
.source-brand-logo-slot img { width: auto; height: auto; max-width: min(200px,100%); max-height: 80px; object-fit: contain; object-position: center; }
.source-brand-name-fallback { display: none; max-width: 100%; font-size: 22px; font-weight: 500; line-height: 1.2; color: var(--ink); text-align: center; overflow-wrap: anywhere; }
.source-brand-logo-missing .source-brand-name-fallback,
.source-brand-logo-frame.is-failed .source-brand-name-fallback { display: block; }
@media (max-width:1100px) {
 .source-category-nav { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .source-category-nav a { border-bottom: 1px solid var(--line); }
 .source-category-nav a:nth-child(3n) { border-right: 0; }
 .source-category-nav a:nth-child(n+4) { border-bottom: 0; }
 .source-brands-directory { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width:760px) {
 .source-category-nav { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
 .source-category-nav a { flex: 0 0 180px; padding: 18px 15px; border-bottom: 0; border-right: 1px solid var(--line); }
 .source-category-nav a:nth-child(3n) { border-right: 1px solid var(--line); }
 .source-category-nav a > span { min-height: 66px; }
 .source-group-nav { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 16px; overscroll-behavior-x: contain; }
 /* Local covers hide each edge shadow when that end of the row is reached. */
 .source-group-nav { background: linear-gradient(to right,#fff 35%,#fff0) left center / 32px 100% no-repeat local, linear-gradient(to left,#fff 35%,#fff0) right center / 32px 100% no-repeat local, linear-gradient(to right,#435f7638,#435f7600) left center / 14px 100% no-repeat scroll, linear-gradient(to left,#435f7638,#435f7600) right center / 14px 100% no-repeat scroll; background-clip: content-box; scrollbar-width: thin; scrollbar-color: #8299a7 #edf1ef; }
 .source-group-nav a { flex: 0 0 auto; max-width: 250px; }
 .source-catalogue .catalog-filter-details form { display: block; }
 .source-catalogue .catalog-filter-group { display: block; }
 .source-product-visual-detail { min-height: 300px; }
 .source-catalogue .product-gallery { width: 100%; }
 .source-brands-directory { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
 .source-home-brand { flex-basis: 185px; font-size: 25px; }
 .source-home-brand .source-brand-logo-frame { transform: translateX(12.5px); }
 .source-catalogue .product-mobile-cta { gap: 10px; }
 .source-catalogue .product-mobile-cta > span { min-width: 0; overflow-wrap: anywhere; }
}
@media (max-width:480px) {
 .source-brand-card { min-height: 112px; padding: 14px 10px; }
 .source-brand-logo-frame, .source-brand-logo-slot { height: 64px; }
 .source-brand-logo-frame img, .source-brand-logo-slot img { max-height: 60px; }
 .source-product-visual { min-height: 220px; }
 .source-product-visual-detail { min-height: 280px; }
 .source-catalogue .product-summary h1 { font-size: 38px; line-height: 1.15; }
 .source-catalogue .product-primary-actions { grid-template-columns: minmax(0,1fr); }
}
.catalogue-read-state { min-height: 65vh; }
.catalogue-loading-line { width: min(420px, 100%); height: 3px; background: var(--red, #c52127); opacity: .45; }
.catalogue-read-state .page-section { padding-top: 0; }
.catalogue-read-state .button { margin: 8px 12px 8px 0; }
/* Published product photography. Equipment is shown whole — `contain` everywhere, never a crop that trims a
   device to fill a box — and a card keeps the same footprint whether it has a photograph or a placeholder. */
.catalog-product-image:has(.source-product-photo) { background: #fff; }
.source-product-photo { position: relative; height: 280px; min-height: 280px; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 18px; background: transparent; }
.source-product-photo img { display: block; max-width: 100%; max-height: 244px; width: 244px; height: 244px; object-fit: contain; object-position: center; }
.source-product-gallery { display: flex; flex-direction: column; gap: 14px; align-self: stretch; }
.source-product-stage { display: flex; align-items: center; justify-content: center; height: 620px; min-height: 620px; padding: 12px; background: transparent; border: 0; }
.source-product-frame { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; height: 100%; min-width: 0; }
.source-product-frame[hidden] { display: none; }
/* Detail photos have more room, but never enlarge beyond their intrinsic pixel dimensions.
   scale-down preserves the whole photograph and keeps small originals from being stretched. */
.source-product-stage img { max-width: 100%; max-height: 580px; width: 100%; height: 100%; object-fit: scale-down; object-position: center; }
/* A photograph and its caption: the caption sits directly beneath the photograph, never over it. */
.source-product-figure { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.source-product-captions { margin: 0; }
.source-product-caption { margin: 0 auto; max-width: 60ch; color: #52697b; font-size: 14px; line-height: 1.5; text-align: center; overflow-wrap: anywhere; }
.source-product-caption[hidden] { display: none; }
.source-product-thumbs { display: flex; flex-wrap: wrap; gap: 10px; }
.source-product-thumb { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 44px; min-height: 44px; padding: 6px; border: 1px solid #d1d8db; background: #fff; color: #6c7e88; font-size: 12px; cursor: pointer; }
.source-product-thumb img { width: 58px; height: 58px; object-fit: contain; }
.source-product-thumb:hover { border-color: #8299a7; }
.source-product-thumb[aria-pressed="true"] { border-color: #869ba8; color: var(--blue); box-shadow: inset 0 -2px var(--red); }
.source-product-thumb:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.source-product-image-error { font-size: 14px; line-height: 1.5; color: #71808a; }
.source-document-list { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 10px; }
/* Long Overview copy belongs beneath the title, outside the split heading layout. */
.source-catalogue .product-overview-description { width: 100%; max-width: 78ch; margin: 0 0 32px; color: #435f76; font-size: 1rem; line-height: 1.8; overflow-wrap: anywhere; }
.source-catalogue .product-overview-description p { margin: 0; }
.source-catalogue .product-overview-description p + p { margin-top: 1em; }
@media (max-width:760px) {
 .source-product-stage { height: 480px; min-height: 480px; padding: 4px; }
 .source-product-stage img { max-height: 472px; }
 .source-product-thumb img { width: 48px; height: 48px; }
}
@media (max-width:480px) {
 .source-product-photo { height: 260px; min-height: 260px; }
 .source-product-photo img { width: 224px; height: 224px; max-height: 224px; }
 .source-product-stage { height: 400px; min-height: 400px; }
 .source-product-stage img { max-height: 392px; }
}

/* Phones: two compact cards per row, so a page of results is a few screens rather than a dozen. */
@media (max-width:560px) {
 .source-catalogue .catalog-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 14px; }
 .source-catalogue .catalog-product-card .catalog-visual,
 .source-catalogue .catalog-product-card .source-product-visual { height: 150px; min-height: 150px; padding: 12px; gap: 10px; }
 .source-catalogue .catalog-product-card .source-product-visual > .icon { width: 40px; height: 40px; }
 .source-catalogue .catalog-product-card .source-product-visual > span { font-size: 17px; }
 .source-catalogue .catalog-product-card .source-product-visual > small { font-size: 12px; }
 .source-catalogue .catalog-product-card .source-product-photo { height: 150px; min-height: 150px; padding: 8px; }
 .source-catalogue .catalog-product-card .source-product-photo img { width: 134px; height: 134px; max-height: 134px; }
 .source-product-card .catalog-product-copy { padding-top: 12px; }
 .source-product-card .catalog-product-brand { font-size: 13px; margin: 0 0 2px; }
 .source-product-card .catalog-product-copy h3 { font-size: 1.0625rem; line-height: 1.3; margin: 4px 0 6px; }
 .source-product-card .catalog-product-category { font-size: .75rem; line-height: 1.45; }
 .source-product-card .catalog-product-actions { padding-top: 10px; gap: 8px; flex-wrap: nowrap; justify-content: space-between; }
 .source-product-card .catalog-product-actions .text-link { font-size: .8125rem; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
 .source-product-card .catalog-product-brand, .source-product-card .catalog-product-copy h3 a { display: inline-block; min-height: 24px; }
}
@media (max-width:359px) {
 .source-catalogue .catalog-product-grid { grid-template-columns: minmax(0,1fr); }
}
