/* The catalogue is a Division 02 workspace. Teal marks selection and actions. */
.catalogue-page { --catalogue-line: #dce5e7; --catalogue-teal: #087673; --catalogue-surface: #f6f8f8; background: #fff; }
.catalogue-page *, .catalogue-page *::before, .catalogue-page *::after { box-sizing: border-box; }
.catalogue-page [hidden] { display: none !important; }
.catalogue-page :focus-visible { outline: 3px solid var(--d2-strong); outline-offset: 3px; }
.catalogue-page button, .catalogue-page input, .catalogue-page select { font: inherit; }
.catalogue-page button { cursor: pointer; }
.catalogue-page button:disabled { cursor: default; }
.catalogue-page button, .catalogue-page a, .catalogue-page input, .catalogue-page select { -webkit-tap-highlight-color: transparent; }
.catalogue-page h1, .catalogue-page h2, .catalogue-page h3, .catalogue-page p { overflow-wrap: break-word; }
.catalogue-icon { width: 21px; height: 21px; flex: 0 0 21px; }
.catalogue-hero { background: #edf5f3; border-bottom: 1px solid #d7e9e4; }
.catalogue-hero-inner { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(220px, .65fr); align-items: center; gap: 4rem; padding-block: 2.1rem 1.9rem; }
.catalogue-hero-copy { min-width: 0; }
.catalogue-hero .eyebrow { font-size: .66rem; margin-bottom: 1rem; letter-spacing: .13em; }
.catalogue-hero h1 { margin-bottom: .6rem; font-size: clamp(2.35rem, 4vw, 3.65rem); letter-spacing: -.05em; }
.catalogue-hero-copy > p { max-width: 570px; font-size: .97rem; line-height: 1.75; color: #4c6569; }
.catalogue-steps { list-style: none; margin: 0; padding: 0 0 0 2rem; border-left: 1px solid #bdd6cf; display: grid; gap: .8rem; }
.catalogue-steps li { display: flex; align-items: center; gap: .8rem; color: #526a6c; font-size: .8rem; }
.catalogue-steps li > span { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid #c3d5d0; border-radius: 50%; font-size: .65rem; color: #526a6c; font-variant-numeric: tabular-nums; flex: none; }
.catalogue-steps .is-current { color: #075f5e; font-weight: 600; }
.catalogue-steps .is-current > span { background: #087673; border-color: #087673; color: white; }
.catalogue-workspace { padding-block: 2rem 4.5rem; }
.catalogue-searchbar { display: flex; align-items: end; gap: 1.2rem; }
.catalogue-search-field { flex: 1; min-width: 0; }
.catalogue-search-field > label, .catalogue-mobile-category > label { display: block; margin-bottom: .5rem; font-size: .75rem; font-weight: 600; color: var(--navy-800); }
.catalogue-search-input { display: flex; align-items: center; gap: .8rem; background: #fff; border: 1px solid #a8babc; border-radius: var(--radius); min-height: 56px; padding-inline: 1rem .4rem; color: #547275; }
.catalogue-search-input:focus-within { border-color: var(--catalogue-teal); box-shadow: 0 0 0 3px #0e95941a; }
.catalogue-search-input > input { flex: 1; min-width: 0; width: 100%; background: transparent; border: none; border-radius: 0; color: var(--ink); padding: .85rem 0; font-size: .91rem; outline: 0; }
.catalogue-search-input > input:focus-visible { outline: 0; }
.catalogue-search-input > input::placeholder { color: #596f76; opacity: 1; }
.catalogue-search-input > input::-webkit-search-cancel-button { display: none; }
.catalogue-clear { flex: none; border: none; background: transparent; color: #5f7479; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 5px; }
.catalogue-clear:hover { background: var(--catalogue-surface); }
.catalogue-selection-link { display: flex; align-items: center; justify-content: center; gap: .75rem; min-height: 56px; border: 1px solid var(--navy-800); color: var(--navy-800); border-radius: var(--radius); padding: .7rem 1rem; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.catalogue-selection-link:hover { background: #f1f5f7; text-decoration: none; }
.catalogue-selection-link > .catalogue-icon:last-child { width: 17px; height: 17px; flex-basis: 17px; }
.catalogue-count { min-width: 24px; height: 24px; display: inline-grid; place-items: center; padding-inline: 5px; background: #e8f3ef; color: #076c69; border-radius: 5px; font-size: .74rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.catalogue-search-hint { margin: .5rem 0 1.1rem; font-size: .72rem; color: #596f76; }
.catalogue-storage-warning { padding: .85rem 1rem; background: #f0f4f7; border: 1px solid #b7c6d3; border-radius: 6px; color: var(--navy-800); font-size: .78rem; margin: 0 0 1.4rem; }
.catalogue-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 2.2rem; align-items: start; }
.catalogue-sidebar { min-width: 0; padding-right: 1.4rem; border-right: 1px solid var(--catalogue-line); }
.catalogue-sidebar > h2 { font-size: .7rem; color: #596f76; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 1.1rem; font-weight: 600; }
.catalogue-category-list { display: grid; gap: 5px; }
.catalogue-category-button { width: 100%; display: flex; gap: .7rem; align-items: center; justify-content: space-between; text-align: left; border: 1px solid transparent; background: transparent; padding: .65rem .7rem; border-radius: 6px; color: #435c66; line-height: 1.5; font-size: .77rem !important; min-height: 44px; }
.catalogue-category-button > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.catalogue-category-button > span:last-child { flex: none; color: #596f76; font-size: .67rem; font-variant-numeric: tabular-nums; }
.catalogue-category-button:hover { background: #f2f6f5; }
.catalogue-category-button[aria-pressed="true"] { background: #e8f3ef; border-color: #d9ebe5; color: #086963; font-weight: 600; }
.catalogue-category-button[aria-pressed="true"] > span:last-child { color: #086963; }
.catalogue-help { border-top: 1px solid var(--catalogue-line); margin-top: 1.6rem; padding: 1.5rem .7rem 0; }
.catalogue-help-rule { display: block; width: 26px; height: 2px; background: var(--d2-strong); margin-bottom: .9rem; }
.catalogue-help h3 { font-family: var(--font-body); font-size: .82rem; line-height: 1.45; font-weight: 600; }
.catalogue-help p { font-size: .73rem; line-height: 1.7; color: #596f76; }
.catalogue-help a { display: flex; gap: .5rem; align-items: center; font-size: .73rem; font-weight: 600; color: #086e6a; }
.catalogue-help a > span { margin-left: auto; font-size: 1rem; }
.catalogue-results-section { min-width: 0; }
.catalogue-mobile-category { display: none; }
.catalogue-results-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; min-height: 50px; }
.catalogue-results-heading { min-width: 0; }
.catalogue-results-heading h2 { font-size: 1.28rem; font-weight: 600; letter-spacing: -.03em; line-height: 1.3; margin: 0 0 .3rem; scroll-margin-top: calc(var(--header-h) + 20px); }
.catalogue-results-heading > p { font-size: .73rem; color: #596f76; margin: 0; font-variant-numeric: tabular-nums; }
.catalogue-filter-fields { display: flex; align-items: end; gap: .65rem; }
.catalogue-sort-field { display: flex; flex-direction: column; gap: .25rem; align-items: start; flex: none; }
.catalogue-sort-field label { font-size: .72rem; color: #596f76; }
.catalogue-sort-field select, .catalogue-mobile-category select { max-width: 100%; min-height: 44px; color: var(--navy-800); background-color: #fff; border: 1px solid var(--catalogue-line); border-radius: 6px; padding: .55rem 2rem .55rem .7rem; font-size: .73rem; }
.catalogue-active-filters { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; padding: .6rem .8rem; margin: 0 0 1rem; border: 1px solid #dce8e3; background: #f5faf7; border-radius: 6px; font-size: .75rem; }
.catalogue-active-filters > span { min-width: 0; overflow-wrap: anywhere; color: #456a62; }
.catalogue-active-filters button { border: 0; background: transparent; color: #096e69; display: flex; align-items: center; gap: .5rem; margin-left: auto; min-height: 32px; font-size: .7rem; font-weight: 600; padding: 0; }
.catalogue-active-filters .catalogue-icon { width: 14px; height: 14px; flex-basis: 14px; }
.catalogue-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.catalogue-product-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--catalogue-line); border-radius: var(--radius); background: #fff; padding: 1.15rem 1.05rem .95rem; transition: border-color .15s ease, box-shadow .15s ease; }
.catalogue-product-card:hover { border-color: #97bbb4; box-shadow: 0 3px 12px #173c3410; }
.catalogue-product-card.is-selected { border-color: #79aaa0; }
.catalogue-product-topline { display: flex; justify-content: space-between; align-items: center; gap: .55rem; margin-bottom: .9rem; }
.catalogue-product-icon { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 8px; background: #edf5f2; color: #1c7c71; }
.catalogue-product-icon svg { width: 24px; height: 24px; }
.catalogue-reference { font-size: .63rem; line-height: 1.5; color: #596f76; letter-spacing: .015em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.catalogue-product-topline .catalogue-reference { text-align: right; margin: 0; }
.catalogue-product-category { display: block; font-size: .61rem; line-height: 1.55; color: #0d7971; font-weight: 600; margin-bottom: .45rem; }
.catalogue-product-card h3 { font-family: var(--font-body); font-size: .99rem; font-weight: 600; line-height: 1.38; letter-spacing: -.025em; margin: 0 0 .55rem; }
.catalogue-product-title { display: block; text-align: left; color: var(--navy-800); border: 0; background: transparent; padding: 0; line-height: inherit; font: inherit !important; }
.catalogue-product-title:hover { text-decoration: underline; text-underline-offset: 3px; }
.catalogue-product-description { color: #596f76; font-size: .72rem; line-height: 1.65; margin: 0 0 .9rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.catalogue-card-specs { display: grid; gap: .45rem; margin: 0 0 .7rem; font-size: .69rem; line-height: 1.55; }
.catalogue-card-specs dt { color: #596f76; font-size: .61rem; }
.catalogue-card-specs dd { margin: .1rem 0 0; color: #405e65; overflow-wrap: anywhere; }
.catalogue-product-card-foot { margin-top: auto; }
.catalogue-product-selected { min-height: 1.3rem; display: flex; align-items: center; gap: .3rem; color: #08736c; font-size: .65rem; margin-bottom: .35rem; }
.catalogue-product-selected .catalogue-icon { width: 13px; height: 13px; flex-basis: 13px; }
.catalogue-product-actions { display: flex; align-items: center; justify-content: space-between; gap: .5rem; border-top: 1px solid #e8eeec; padding-top: .7rem; }
.catalogue-details-link { display: flex; align-items: center; gap: .3rem; color: #557078; font-size: .7rem !important; border: 0; background: transparent; padding: .4rem 0; min-height: 40px; }
.catalogue-details-link:hover { color: #075e59; text-decoration: underline; text-underline-offset: 3px; }
.catalogue-add { display: flex; align-items: center; justify-content: center; gap: .35rem; border: 1px solid #bfd7cf; border-radius: 5px; padding: .5rem .65rem; min-height: 40px; font-size: .7rem !important; font-weight: 600 !important; color: #066b65; background: #eff7f3; white-space: nowrap; }
.catalogue-add:hover { background: #087673; border-color: #087673; color: white; }
.catalogue-add .catalogue-icon { width: 15px; height: 15px; flex-basis: 15px; }
.catalogue-add:disabled { color: #687e78; background: #f0f4f2; border-color: #dce6e1; }
.catalogue-empty { padding: 3.5rem 1.5rem; border: 1px dashed #bdd0cd; background: #f7faf9; text-align: center; border-radius: var(--radius); }
.catalogue-empty-icon { display: inline-grid; place-items: center; width: 48px; height: 48px; color: #338c80; background: #e9f3ef; border-radius: 50%; margin-bottom: 1rem; }
.catalogue-empty h3 { max-width: 380px; margin: 0 auto .65rem; font-family: var(--font-body); font-size: 1.2rem; line-height: 1.45; }
.catalogue-empty p { font-size: .86rem; max-width: 410px; margin: 0 auto 1.4rem; color: #596f76; }
.catalogue-button { display: inline-flex; justify-content: center; align-items: center; gap: .6rem; border: 1px solid transparent; min-height: 46px; padding: .75rem 1.05rem; border-radius: 6px; font-size: .82rem !important; font-weight: 600 !important; line-height: 1.4; }
.catalogue-button-primary { background: #087673; color: #fff; }
.catalogue-button-primary:hover { background: #075e5c; }
.catalogue-pagination { margin-top: 1.65rem; display: flex; justify-content: space-between; align-items: center; gap: .7rem; padding-top: 1.4rem; border-top: 1px solid var(--catalogue-line); }
.catalogue-page-arrow { display: flex; gap: .4rem; align-items: center; justify-content: center; background: #fff; color: #385d65; border: 1px solid var(--catalogue-line); border-radius: 5px; min-height: 42px; padding: .5rem .7rem; font-size: .73rem !important; }
.catalogue-page-arrow[data-page-previous] .catalogue-icon { transform: rotate(180deg); }
.catalogue-page-arrow .catalogue-icon { width: 16px; height: 16px; flex-basis: 16px; }
.catalogue-page-arrow:hover:not(:disabled) { background: #edf5f1; }
.catalogue-page-arrow:disabled { color: #a0aead; border-color: #e5eae7; }
.catalogue-page-numbers { display: flex; gap: 4px; align-items: center; font-size: .75rem; color: #596f76; }
.catalogue-page-number { display: grid; place-items: center; min-width: 36px; height: 40px; padding-inline: 6px; background: #fff; border: 1px solid transparent; color: #456269; border-radius: 5px; font-size: .75rem !important; font-variant-numeric: tabular-nums; }
.catalogue-page-number:hover { background: #eef5f2; }
.catalogue-page-number[aria-current="page"] { background: #e3f0e9; border-color: #c4ddd2; color: #086f64; font-weight: 600; }
.catalogue-page-ellipsis { padding-inline: 2px; }
.catalogue-availability-note { padding-top: 1.5rem; color: #596f76; font-size: .7rem; line-height: 1.7; }
.catalogue-mobile-selection { display: none; }
.catalogue-toast { position: fixed; bottom: 26px; left: 26px; max-width: min(430px, calc(100vw - 52px)); z-index: 90; background: #0a2a4a; color: white; border-radius: 8px; padding: .9rem 1.2rem; box-shadow: 0 4px 24px #0a2a4a2a; font-size: .8rem; line-height: 1.6; opacity: 0; transform: translateY(8px); transition: opacity .15s ease, transform .15s ease; pointer-events: none; }
.catalogue-toast.is-visible { opacity: 1; transform: translateY(0); }
.catalogue-dialog { border: 1px solid #b8d0c8; padding: 0; width: min(620px, calc(100vw - 32px)); max-height: min(85vh, 850px); max-height: min(85dvh, 850px); border-radius: 12px; background: #fff; color: var(--body); box-shadow: 0 22px 100px #001d324d; overflow-y: auto; overscroll-behavior: contain; }
.catalogue-dialog::backdrop { background: #071e35a8; }
body.catalogue-dialog-open { overflow: hidden; }
.catalogue-detail-topline { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem 1.2rem .65rem 1.8rem; background: #f2f7f4; border-bottom: 1px solid #dce8e1; font-size: .67rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: #526f65; }
.catalogue-dialog-close { width: 44px; height: 44px; display: grid; place-items: center; border: none; border-radius: 6px; background: transparent; color: #49685e; }
.catalogue-dialog-close:hover { background: #e3eee8; }
.catalogue-detail-content { padding: 1.8rem; }
.catalogue-detail-identity { display: flex; align-items: center; gap: .8rem; color: #08776b; font-size: .75rem; font-weight: 600; margin-bottom: 1.2rem; }
.catalogue-detail-identity .catalogue-product-icon { width: 44px; height: 44px; flex-basis: 44px; }
.catalogue-detail-content > .catalogue-reference { margin-bottom: .6rem; }
.catalogue-detail-content h2 { font-size: clamp(1.6rem, 3.5vw, 2.1rem); letter-spacing: -.035em; line-height: 1.25; margin-bottom: .85rem; }
#catalogue-detail-description { font-size: .9rem; line-height: 1.8; color: #64777e; white-space: pre-line; }
.catalogue-detail-specs { margin-block: 1.6rem; }
.catalogue-detail-specs > h3 { font-family: var(--font-body); font-size: .78rem; font-weight: 600; letter-spacing: 0; margin-bottom: .8rem; }
.catalogue-detail-specs dl { margin: 0; border-top: 1px solid #dce6e0; }
.catalogue-detail-specs dl > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 1rem; padding: .7rem 0; border-bottom: 1px solid #e5ece8; font-size: .78rem; line-height: 1.7; }
.catalogue-detail-specs dt { color: #596f76; }
.catalogue-detail-specs dd { margin: 0; color: #25483f; overflow-wrap: anywhere; white-space: pre-line; }
.catalogue-detail-add { padding-top: 1.4rem; margin-top: 1.5rem; border-top: 1px solid #dce6e0; }
.catalogue-detail-add > label { display: block; color: var(--navy-800); font-size: .78rem; font-weight: 600; margin-bottom: .7rem; }
.catalogue-detail-add > label > span { font-weight: 400; color: #596f76; }
.catalogue-detail-add-row { display: flex; align-items: stretch; gap: .75rem; }
.catalogue-detail-add-row > input { border: 1px solid #aabfb6; border-radius: 6px; width: 94px; min-width: 0; padding: .7rem .8rem; color: var(--ink); background: #fff; font-variant-numeric: tabular-nums; }
.catalogue-detail-add-row > button { flex: 1; min-width: 0; }
#catalogue-quantity-note { font-size: .69rem; color: #596f76; margin-top: .6rem; }
.catalogue-detail-disclaimer { margin-top: 1.5rem; font-size: .71rem; color: #596f76; line-height: 1.7; }
.catalogue-fallback { padding-block: 2rem 4rem; }
.catalogue-fallback-note { border-left: 3px solid var(--d2-strong); padding: 1rem 1.2rem; background: #f1f6f3; font-size: .9rem; }
.catalogue-fallback > section { margin-top: 2.5rem; }
.catalogue-fallback h2 { font-size: 1.6rem; }
.catalogue-fallback ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.catalogue-fallback li { padding: 1rem; border: 1px solid var(--catalogue-line); border-radius: var(--radius); }
.catalogue-fallback-ref { display: block; font-size: .7rem; color: #596f76; }
.catalogue-fallback strong { display: block; color: var(--navy-800); font-size: .9rem; margin-block: .4rem; }
.catalogue-fallback li p { font-size: .8rem; }

/* Product families and source brands provide the catalogue's primary hierarchy. */
.catalogue-family-section { margin: .25rem 0 1.6rem; }
.catalogue-family-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .6rem; }
.catalogue-family-heading h2 { margin: 0; font-size: .75rem; letter-spacing: .03em; font-weight: 600; }
.catalogue-family-heading > button { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .3rem 0; border: 0; background: transparent; color: #496970; font-size: .73rem; }
.catalogue-family-heading > button[aria-pressed="true"] { color: #066c63; font-weight: 600; }
.catalogue-family-heading .catalogue-icon { width: 16px; height: 16px; flex-basis: 16px; }
.catalogue-family-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .7rem; }
.catalogue-family { min-width: 0; min-height: 84px; display: flex; align-items: center; gap: .7rem; padding: .85rem; border: 1px solid #d8e4df; border-radius: 8px; background: #fff; color: var(--navy-800); text-align: left; }
.catalogue-family:hover { border-color: #6ba398; background: #f5faf7; }
.catalogue-family-icon { width: 34px; height: 38px; flex: 0 0 34px; display: grid; place-items: center; color: #237d70; }
.catalogue-family-icon .catalogue-icon { width: 27px; height: 27px; }
.catalogue-family-text { min-width: 0; display: grid; gap: .35rem; }
.catalogue-family-text > strong { font-size: .78rem; line-height: 1.4; font-weight: 600; overflow-wrap: break-word; }
.catalogue-family-count { font-size: .63rem; line-height: 1.5; color: #596f76; font-variant-numeric: tabular-nums; }
.catalogue-family-reagents { background: #f0f8f4; border-color: #8ab9aa; }
.catalogue-family[aria-pressed="true"] { background: #087673; border-color: #087673; color: #fff; box-shadow: 0 2px 0 #08605f; }
.catalogue-family[aria-pressed="true"] .catalogue-family-icon { color: #fff; }
.catalogue-family[aria-pressed="true"] .catalogue-family-count { color: #e4f2ef; }
.catalogue-sidebar-brands { padding-bottom: 1.5rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--catalogue-line); }
.catalogue-sidebar-brands h2 { color: #0a7469; text-transform: uppercase; letter-spacing: .08em; font-size: .68rem; margin-bottom: .8rem; }
.catalogue-brand-button { padding-left: 1rem; position: relative; }
.catalogue-brand-button::before { content: ""; position: absolute; left: .35rem; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: #8eafa5; }
.catalogue-brand-explorer { border: 1px solid #d5e6de; padding: 1.15rem; background: #f6faf8; border-radius: 8px; margin-bottom: 1.4rem; }
.catalogue-brand-explorer > h2 { font-size: 1.12rem; font-weight: 600; letter-spacing: -.025em; margin: 0 0 .4rem; }
.catalogue-brand-explorer > p { font-size: .75rem; color: #526f65; line-height: 1.65; margin: 0 0 .9rem; }
.catalogue-brand-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; }
.catalogue-brand-tile { min-width: 0; min-height: 64px; display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: .6rem; border: 1px solid #d5e1da; border-radius: 6px; background: #fff; color: var(--navy-800); text-align: left; padding: .7rem; }
.catalogue-brand-tile:hover { border-color: #78a99a; background: #fcfefd; }
.catalogue-brand-tile[aria-pressed="true"] { border: 2px solid #087673; background: #ecf7f0; padding: calc(.7rem - 1px); }
.catalogue-brand-logo { display: flex; height: 44px; width: 100%; align-items: center; justify-content: center; padding: .2rem; }
.catalogue-brand-logo img { display: block; max-width: 100%; width: auto; height: auto; max-height: 40px; object-fit: contain; }
.catalogue-brand-tile-label { display: flex; align-items: center; justify-content: space-between; gap: .35rem; }
.catalogue-brand-tile-label > strong { font-size: .69rem; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.catalogue-brand-tile-count { font-size: .62rem; font-variant-numeric: tabular-nums; color: #526f65; }
.catalogue-primary-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--catalogue-line); scroll-margin-top: calc(var(--header-h) + 15px); }
.catalogue-primary-filters > div { min-width: 0; }
.catalogue-primary-filters .catalogue-mobile-category { display: block; margin: 0; }
.catalogue-primary-filters label { display: block; margin-bottom: .45rem; font-size: .72rem; color: #37585c; font-weight: 600; }
.catalogue-primary-filters select { width: 100%; max-width: 100%; min-height: 46px; border: 1px solid #c5d5d0; border-radius: 6px; background: #fff; padding: .6rem 1.5rem .6rem .7rem; color: var(--navy-800); font-size: .79rem; }
.catalogue-product-media { height: 164px; display: flex; flex-direction: column; align-items: center; justify-content: center; margin: -1.15rem -1.05rem 1rem; padding: 1rem 1.1rem; background: #fff; border-bottom: 1px solid #e6ece8; border-radius: 8px 8px 0 0; }
.catalogue-product-media img { display: block; width: 100%; max-height: 136px; min-height: 0; object-fit: contain; }
.catalogue-product-media.is-brand img { height: auto; width: auto; max-width: min(80%, 180px); max-height: 66px; }
.catalogue-product-media figcaption { max-width: 100%; margin-top: .7rem; color: #596f76; font-size: .62rem; line-height: 1.5; text-align: center; }
.catalogue-product-media.is-symbol { background: #f8fbf9; }
.catalogue-media-symbol { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; background: #edf4f0; color: #3c8b7a; }
.catalogue-media-symbol .catalogue-icon { width: 31px; height: 31px; }
.catalogue-product-topline { margin-bottom: .6rem; }
.catalogue-product-kind { min-width: 0; font-size: .58rem; line-height: 1.5; color: #526f65; padding: .2rem .35rem; background: #f1f6f3; border-radius: 3px; }
.catalogue-product-brand { font-size: .68rem; font-weight: 600; color: #244b50; line-height: 1.5; margin: 0 0 .4rem; }
.catalogue-product-model { font-size: .71rem; color: #41636a; line-height: 1.6; overflow-wrap: anywhere; margin: 0 0 .75rem; }
.catalogue-detail-media { height: 220px; padding: 1rem; margin: 0 0 1.5rem; border: 1px solid #e0e8e2; border-radius: 6px; }
.catalogue-detail-media img { max-height: 190px; }
.catalogue-detail-media.is-brand img { max-width: 240px; max-height: 90px; }
.catalogue-detail-brand { color: #254d49; font-size: .82rem; font-weight: 600; margin-bottom: .5rem; }

@media (max-width: 1160px) {
  .catalogue-layout { grid-template-columns: 195px minmax(0, 1fr); gap: 1.5rem; }
  .catalogue-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalogue-hero-inner { gap: 2rem; }
  .catalogue-results-toolbar { align-items: start; flex-wrap: wrap; }
  .catalogue-filter-fields { width: 100%; }
  .catalogue-sort-field { flex-direction: row; align-items: center; gap: .5rem; }
  .catalogue-family { flex-direction: column; align-items: start; gap: .55rem; min-height: 130px; }
  .catalogue-family-icon { height: 25px; flex-basis: 25px; }
  .catalogue-brand-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .catalogue-hero-inner { grid-template-columns: 1fr; gap: 1.4rem; padding-block: 2rem 1.8rem; }
  .catalogue-hero h1 { font-size: clamp(2rem, 5.5vw, 3rem); }
  .catalogue-hero-copy > p { font-size: .87rem; max-width: 560px; }
  .catalogue-steps { display: flex; gap: 1.2rem; border: 0; padding: 0; flex-wrap: wrap; }
  .catalogue-steps li { font-size: .67rem; gap: .45rem; }
  .catalogue-steps li > span { width: 23px; height: 23px; font-size: .58rem; }
  .catalogue-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .catalogue-sidebar { display: none; }
  .catalogue-mobile-category { display: block; margin-bottom: 1.3rem; }
  .catalogue-mobile-category select { width: 100%; font-size: .83rem; min-height: 48px; }
  .catalogue-searchbar { gap: .8rem; }
  .catalogue-selection-link { gap: .5rem; padding-inline: .8rem; }
  .catalogue-selection-link > .catalogue-icon:last-child { display: none; }
  .catalogue-search-hint { margin-bottom: 1.3rem; }
  .catalogue-product-grid { gap: .8rem; }
  .catalogue-product-card { padding: 1.1rem; }
  .catalogue-product-card h3 { font-size: 1.04rem; }
  .catalogue-product-description { font-size: .77rem; }
  .catalogue-product-category { font-size: .67rem; }
  .catalogue-family-section { margin-bottom: 1.4rem; }
  .catalogue-family-list { display: flex; gap: .65rem; overflow-x: auto; padding: 3px 3px 9px; margin-inline: -3px; scroll-snap-type: x proximity; overscroll-behavior-x: contain; }
  .catalogue-family { flex: 0 0 164px; min-height: 102px; flex-direction: row; align-items: center; gap: .65rem; scroll-snap-align: start; }
  .catalogue-family-icon { flex: 0 0 27px; width: 27px; }
  .catalogue-family-text > strong { font-size: .75rem; }
  .catalogue-brand-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .catalogue-product-media { margin: -1.1rem -1.1rem 1rem; }
}
@media (max-width: 560px) {
  .catalogue-page .container { padding-inline: 1.15rem; }
  .catalogue-hero-inner { padding-block: 1.8rem 1.5rem; }
  .catalogue-hero .eyebrow { font-size: .59rem; letter-spacing: .1em; margin-bottom: .8rem; }
  .catalogue-hero h1 { font-size: 2.15rem; }
  .catalogue-hero-copy > p { font-size: .85rem; line-height: 1.7; }
  .catalogue-steps { display: none; }
  .catalogue-workspace { padding-block: 1.4rem 7rem; }
  .catalogue-selection-link { display: none; }
  .catalogue-search-input { min-height: 54px; gap: .6rem; padding-left: .8rem; }
  .catalogue-search-input > input { font-size: 16px; }
  .catalogue-search-input > .catalogue-icon { width: 18px; height: 18px; flex-basis: 18px; }
  .catalogue-clear { width: 38px; height: 44px; }
  .catalogue-search-hint { font-size: .67rem; margin-bottom: 1.2rem; }
  .catalogue-mobile-category > label { font-size: .72rem; }
  .catalogue-mobile-category select { font-size: 16px; }
  .catalogue-results-toolbar { flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
  .catalogue-results-heading { flex: 1 1 100%; }
  .catalogue-results-heading h2 { font-size: 1.3rem; }
  .catalogue-sort-field { justify-content: space-between; width: 100%; }
  .catalogue-filter-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .catalogue-sort-field { min-width: 0; align-items: stretch; flex-direction: column; gap: .4rem; }
  .catalogue-sort-field select { font-size: 16px; min-height: 44px; width: 100%; padding-right: .8rem; min-width: 0; }
  .catalogue-sort-field label { font-size: .77rem; }
  .catalogue-product-grid { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
  .catalogue-product-card { padding: 1rem 1.1rem; }
  .catalogue-product-topline { margin-bottom: .7rem; }
  .catalogue-product-icon { width: 36px; height: 36px; flex-basis: 36px; }
  .catalogue-product-category { font-size: .68rem; }
  .catalogue-product-card h3 { font-size: 1.1rem; }
  .catalogue-product-description { -webkit-line-clamp: 2; font-size: .79rem; margin-bottom: .55rem; }
  .catalogue-product-actions { padding-top: .6rem; }
  .catalogue-details-link { font-size: .78rem !important; min-height: 44px; }
  .catalogue-add { font-size: .78rem !important; padding-inline: 1rem; min-height: 44px; }
  .catalogue-product-selected { font-size: .7rem; }
  .catalogue-mobile-selection { display: flex; align-items: center; gap: .7rem; position: fixed; bottom: 12px; left: 12px; right: 12px; z-index: 70; padding: .9rem 1rem; border-radius: 8px; min-height: 58px; background: #0a2a4a; color: #fff; box-shadow: 0 3px 22px #0a2a4a30; font-size: .8rem; font-weight: 600; text-decoration: none; padding-bottom: max(.9rem, env(safe-area-inset-bottom)); }
  .catalogue-mobile-selection > .catalogue-count { margin-left: auto; background: #fff; color: var(--navy-800); }
  .catalogue-mobile-selection > .catalogue-icon:last-child { width: 17px; height: 17px; flex-basis: 17px; }
  body:has(.catalogue-page) .float-wa { bottom: 86px; width: 43px; height: 43px; right: 14px; }
  .catalogue-toast { bottom: 82px; left: 12px; max-width: calc(100vw - 76px); font-size: .75rem; padding: .8rem 1rem; }
  .catalogue-pagination { gap: 5px; margin-top: 1.2rem; padding-top: 1rem; }
  .catalogue-page-arrow { min-width: 40px; padding: .5rem; }
  .catalogue-page-arrow > span { display: none; }
  .catalogue-page-numbers { gap: 2px; }
  .catalogue-page-number { min-width: 32px; height: 42px; padding-inline: 4px; }
  .catalogue-dialog { width: calc(100vw - 20px); max-height: 92vh; max-height: 92dvh; border-radius: 10px; }
  .catalogue-detail-topline { padding: .4rem .65rem .4rem 1.15rem; font-size: .62rem; }
  .catalogue-detail-content { padding: 1.25rem 1.15rem; }
  .catalogue-detail-identity { font-size: .7rem; }
  .catalogue-detail-content h2 { font-size: 1.65rem; }
  #catalogue-detail-description { font-size: .84rem; }
  .catalogue-detail-add-row { gap: .6rem; }
  .catalogue-detail-add-row > input { width: 76px; padding-inline: .6rem; font-size: 16px; }
  .catalogue-detail-add-row > button { padding-inline: .7rem; font-size: .76rem !important; }
  .catalogue-detail-add-row > button > .catalogue-icon { width: 17px; height: 17px; flex-basis: 17px; }
  .catalogue-fallback ul { grid-template-columns: 1fr; }
  .catalogue-family-heading { gap: .5rem; margin-bottom: .45rem; }
  .catalogue-family-heading h2 { font-size: .71rem; }
  .catalogue-family-heading > button { font-size: .66rem; gap: .3rem; }
  .catalogue-family-heading > button .catalogue-icon { width: 13px; height: 13px; flex-basis: 13px; }
  .catalogue-family { flex-basis: 156px; min-height: 96px; padding: .75rem; }
  .catalogue-family-count { font-size: .6rem; }
  .catalogue-primary-filters { grid-template-columns: minmax(0, 1fr); gap: .8rem; margin-bottom: .8rem; }
  .catalogue-primary-filters select { font-size: 16px; min-height: 48px; }
  .catalogue-brand-explorer { padding: .9rem; margin-bottom: 1rem; }
  .catalogue-brand-explorer > h2 { font-size: 1.05rem; }
  .catalogue-brand-explorer > p { font-size: .72rem; }
  .catalogue-brand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; max-height: 260px; overflow-y: auto; padding: 3px; margin: -3px; overscroll-behavior-y: contain; }
  .catalogue-brand-tile-label > strong { font-size: .69rem; }
  .catalogue-brand-logo { height: 36px; }
  .catalogue-brand-logo img { max-height: 32px; }
  .catalogue-product-media { height: 174px; margin: -1rem -1.1rem 1rem; }
  .catalogue-product-media img { max-height: 150px; }
  .catalogue-product-media.is-brand img { max-height: 68px; max-width: 190px; }
  .catalogue-product-brand { font-size: .73rem; }
  .catalogue-product-model { font-size: .76rem; }
  .catalogue-detail-media { margin: 0 0 1.25rem; height: 190px; }
  .catalogue-detail-media img { max-height: 160px; }
  .catalogue-detail-media.is-brand img { max-width: 210px; }
}
@media (max-width: 350px) {
  .catalogue-page .container { padding-inline: .9rem; }
  .catalogue-hero h1 { font-size: 1.9rem; }
  .catalogue-product-card { padding-inline: .9rem; }
  .catalogue-page-number { min-width: 28px; }
  .catalogue-page-numbers { gap: 0; }
  .catalogue-filter-fields { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .catalogue-sort-field { flex-direction: row; align-items: center; gap: .65rem; }
  .catalogue-sort-field label { flex: 0 0 90px; font-size: .7rem; }
  .catalogue-sort-field select { flex: 1; width: 0; }
  .catalogue-detail-add-row { flex-wrap: wrap; }
  .catalogue-detail-add-row > input { width: 100%; }
  .catalogue-detail-add-row > button { flex-basis: 100%; }
  .catalogue-product-media:not(.catalogue-detail-media) { margin-inline: -.9rem; }
  .catalogue-family-heading > button { font-size: .62rem; }
}
@media (prefers-reduced-motion: reduce) {
  .catalogue-page *, .catalogue-page *::before, .catalogue-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
@media print {
  .catalogue-sidebar, .catalogue-searchbar, .catalogue-search-hint, .catalogue-sort-field, .catalogue-mobile-category, .catalogue-primary-filters, .catalogue-family-section, .catalogue-brand-explorer, .catalogue-active-filters, .catalogue-pagination, .catalogue-mobile-selection, .catalogue-toast, .catalogue-product-actions, .catalogue-dialog { display: none !important; }
  .catalogue-layout { display: block; }
  .catalogue-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalogue-product-card { break-inside: avoid; }
  .catalogue-product-description { display: block; }
}

/* Mobile browsing uses one filter sheet and compact product rows. */
.catalogue-filter-trigger, .catalogue-brand-shortcut, .catalogue-mobile-nav { display: none; }
.catalogue-filter-dialog { width: min(560px, 100vw); max-width: 100vw; max-height: 94dvh; padding: 0; border: 0; border-radius: 16px 16px 0 0; color: var(--ink); background: #fff; margin: auto auto 0; overflow: auto; overscroll-behavior: contain; }
.catalogue-filter-dialog::backdrop { background: #071e3580; }
.catalogue-filter-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; padding: 12px 18px; border-bottom: 1px solid #dce5e7; }
.catalogue-filter-header h2 { font-size: 1.15rem; margin: 0; letter-spacing: -.025em; }
.catalogue-filter-header button { width: 44px; height: 44px; border: 0; background: #f0f5f5; border-radius: 50%; display: grid; place-items: center; }
.catalogue-filter-body { padding: 18px; }
.catalogue-filter-footer { position: sticky; bottom: 0; z-index: 2; padding: 12px 18px max(12px, env(safe-area-inset-bottom)); border-top: 1px solid #dce5e7; background: #fff; display: grid; gap: 8px; }
.catalogue-filter-footer > button { min-height: 46px; font-size: .9rem; }
.catalogue-filter-footer > button:first-child { color: #315969; background: #fff; border: 0; }
@media (max-width: 800px) {
  .catalogue-page .container { padding-inline: 16px; }
  .catalogue-hero { background: #fff; border: 0; }
  .catalogue-hero-inner { display: block; padding-block: 18px 8px; }
  .catalogue-hero .eyebrow, .catalogue-steps { display: none; }
  .catalogue-hero h1 { font-size: 1.65rem; letter-spacing: -.04em; margin-bottom: 4px; }
  .catalogue-hero-copy > p { font-size: .85rem; line-height: 1.5; margin: 0; }
  .catalogue-workspace { padding-block: 8px calc(90px + env(safe-area-inset-bottom)); }
  .catalogue-searchbar { position: sticky; top: var(--header-h); z-index: 45; padding-block: 8px; gap: 8px; background: #fff; align-items: center; }
  .catalogue-search-field > label, .catalogue-search-hint, .catalogue-selection-link { display: none; }
  .catalogue-search-input { min-height: 48px; border-color: #bdced0; padding-left: 11px; gap: 7px; background: #f8fafa; }
  .catalogue-search-input > input { font-size: 16px; padding-block: 12px; }
  .catalogue-search-input > .catalogue-icon { width: 18px; flex-basis: 18px; }
  .catalogue-clear { width: 44px; height: 44px; }
  .catalogue-filter-trigger { display: flex; align-items: center; justify-content: center; gap: 5px; min-width: 65px; min-height: 48px; padding: 10px; background: #fff; border: 1px solid #bdced0; border-radius: 8px; color: #173b4a; font-size: .8rem !important; font-weight: 600 !important; }
  .catalogue-filter-trigger span { border-radius: 50%; background: #087673; color: #fff; min-width: 20px; height: 20px; display: grid; place-items: center; font-size: 11px; }
  .catalogue-family-section { margin: 4px 0 14px; scroll-margin-top: calc(var(--header-h) + 72px); }
  .catalogue-family-heading { margin: 0 0 4px; gap: 8px; }
  .catalogue-family-heading h2 { font-size: .8rem; }
  .catalogue-family-heading > button { font-size: .75rem; min-height: 44px; }
  .catalogue-family-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; overflow: visible; margin: 0; padding: 0; }
  .catalogue-family { min-height: 60px; padding: 10px; flex-direction: row; align-items: center; gap: 9px; }
  .catalogue-family:first-child { grid-column: 1 / -1; }
  .catalogue-family-text { gap: 2px; }
  .catalogue-family:first-child .catalogue-family-text { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .catalogue-family-text > strong { font-size: .8rem; }
  .catalogue-family-icon { width: 25px; flex-basis: 25px; height: 28px; }
  .catalogue-family-icon .catalogue-icon { width: 24px; height: 24px; }
  .catalogue-family-count { font-size: .66rem; }
  .catalogue-page.has-search .catalogue-family-section { display: none; }
  .catalogue-brand-shortcut { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 48px; padding: 10px 14px; margin-bottom: 12px; border: 1px solid #b4d8cf; background: #eef7f4; color: #086a66; border-radius: 8px; font-size: .85rem !important; font-weight: 600 !important; }
  .catalogue-results-toolbar { min-height: auto; margin: 0 0 10px; }
  .catalogue-results-heading h2 { font-size: 1.1rem; line-height: 1.35; margin: 0 0 3px; scroll-margin-top: calc(var(--header-h) + 74px); }
  .catalogue-results-heading > p { font-size: .76rem; }
  .catalogue-active-filters { padding: 4px 10px; margin-bottom: 10px; gap: 4px; font-size: .72rem; }
  .catalogue-active-filters > span { flex: 1; }
  .catalogue-active-filters button { min-height: 44px; font-size: .72rem; }
  .catalogue-product-grid { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .catalogue-product-card { display: grid; grid-template-columns: 88px minmax(0,1fr); column-gap: 12px; row-gap: 4px; padding: 12px; box-shadow: none; transition: none; align-items: start; }
  .catalogue-product-card:hover { box-shadow: none; }
  .catalogue-product-card > .catalogue-product-media { grid-column: 1; grid-row: 1 / span 4; width: 88px; height: 106px; margin: 0; padding: 5px; border: 0; border-radius: 6px; background: #f8fafa; }
  .catalogue-product-card > .catalogue-product-media img { max-width: 100%; width: 100%; max-height: 90px; }
  .catalogue-product-card > .catalogue-product-media.is-brand img { max-height: 55px; }
  .catalogue-product-card > .catalogue-product-media figcaption:not(.catalogue-range-caption) { display: none; }
  .catalogue-product-card > .catalogue-product-media .catalogue-range-caption { font-size: 10px; line-height: 1.2; margin-top: 3px; }
  .catalogue-product-topline { grid-column: 2; grid-row: 1; margin: 0; }
  .catalogue-product-kind { display: none; }
  .catalogue-product-topline .catalogue-reference { text-align: left; font-size: .62rem; }
  .catalogue-product-brand { grid-column: 2; grid-row: 2; font-size: .7rem; margin: 0; }
  .catalogue-product-card > h3 { grid-column: 2; grid-row: 3; margin: 0; font-size: .92rem; line-height: 1.4; letter-spacing: -.01em; }
  .catalogue-product-title { min-height: 44px; width: 100%; }
  .catalogue-product-model { grid-column: 2; grid-row: 4; font-size: .69rem; line-height: 1.45; margin: 0; }
  .catalogue-product-category, .catalogue-product-description { display: none; }
  .catalogue-card-specs { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 3px 12px; margin: 4px 0 0; font-size: .73rem; line-height: 1.4; }
  .catalogue-card-specs > div { display: flex; gap: 4px; align-items: baseline; min-width: 0; }
  .catalogue-card-specs dt { font-size: .68rem; }
  .catalogue-card-specs dt::after { content: ':'; }
  .catalogue-card-specs dd { margin: 0; }
  .catalogue-product-card-foot { grid-column: 1 / -1; margin: 4px 0 0; }
  .catalogue-product-selected { margin: 0 0 4px; min-height: 0; font-size: .73rem; }
  .catalogue-product-selected:empty { display: none; }
  .catalogue-product-actions { padding-top: 5px; gap: 8px; }
  .catalogue-details-link { min-height: 44px; padding-inline: 6px; font-size: .8rem !important; }
  .catalogue-add { min-height: 44px; padding-inline: 14px; font-size: .8rem !important; background: #087673; color: #fff; border-color: #087673; }
  .catalogue-mobile-nav { display: grid; grid-template-columns: 1fr 1fr 1.35fr; position: fixed; bottom: 0; left: 0; right: 0; z-index: 65; background: #fff; border-top: 1px solid #dce5e7; padding: 6px 8px max(6px, env(safe-area-inset-bottom)); box-shadow: 0 -3px 16px #0a2a4a08; }
  .catalogue-mobile-nav > * { min-width: 0; min-height: 52px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; column-gap: 5px; row-gap: 1px; padding: 3px; border: 0; background: transparent; border-radius: 6px; color: #244653; font-size: .67rem; line-height: 1.3; }
  .catalogue-mobile-nav > * > .catalogue-icon { width: 20px; height: 20px; }
  .catalogue-mobile-nav > * > span:not(.catalogue-count) { flex: 1 1 100%; text-align: center; order: 2; }
  .catalogue-mobile-nav > a { background: #edf7f4; color: #075f5c; font-weight: 600; }
  .catalogue-mobile-nav > button { font-size: .72rem !important; }
  .catalogue-mobile-nav .catalogue-count { min-width: 20px; height: 20px; font-size: 11px; }
  .catalogue-toast { bottom: calc(76px + env(safe-area-inset-bottom)); left: 12px; right: 12px; max-width: none; font-size: .8rem; }
  .catalogue-page-arrow, .catalogue-page-number { min-width: 44px; min-height: 44px; height: 44px; }
  .catalogue-pagination { flex-wrap: wrap; gap: 4px; }
  .catalogue-page-numbers { gap: 2px; }
  .catalogue-filter-dialog .catalogue-brand-explorer { border: 0; border-bottom: 1px solid #dce5e7; padding: 0 0 18px; background: #fff; margin-bottom: 18px; }
  .catalogue-filter-dialog .catalogue-brand-grid { grid-template-columns: repeat(2,minmax(0,1fr)); max-height: none; overflow: visible; padding: 0; margin: 0; gap: 8px; }
  .catalogue-filter-dialog .catalogue-brand-tile { padding: 10px; min-height: 83px; gap: 8px; }
  .catalogue-filter-dialog .catalogue-brand-tile-label > strong { font-size: .76rem; }
  .catalogue-filter-dialog .catalogue-primary-filters { display: grid; grid-template-columns: 1fr; gap: 16px; padding-bottom: 18px; margin-bottom: 18px; }
  .catalogue-filter-dialog .catalogue-filter-fields { display: grid; width: 100%; grid-template-columns: 1fr; gap: 16px; }
  .catalogue-filter-dialog label { font-size: .85rem; }
  .catalogue-filter-dialog select { min-height: 50px; font-size: 16px; width: 100%; }
  .catalogue-filter-dialog .catalogue-sort-field { display: flex; align-items: stretch; flex-direction: column; gap: 6px; width: 100%; }
  .catalogue-dialog { width: 100vw; max-width: 100vw; max-height: 94dvh; margin: auto auto 0; border-radius: 16px 16px 0 0; }
  .catalogue-detail-topline { position: sticky; top: 0; z-index: 1; background: #f2f7f4; }
  .catalogue-detail-content h2 { font-size: 1.35rem; }
  .catalogue-detail-add-row > button { min-height: 48px; font-size: .84rem !important; }
}
@media print { .catalogue-mobile-nav, .catalogue-filter-trigger, .catalogue-filter-dialog, .catalogue-brand-shortcut { display: none !important; } }

/* Product sheets keep their full specifications readable without a long card. */
.catalogue-product-description { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.6; }
.catalogue-dialog { overflow: hidden; }
.catalogue-detail-shell { display: flex; flex-direction: column; max-height: inherit; }
.catalogue-detail-topline { flex-shrink: 0; }
.catalogue-detail-content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scroll-padding-top: 18px; }
.catalogue-detail-content > h2 { overflow-wrap: anywhere; }
.catalogue-detail-shell > .catalogue-detail-add { flex-shrink: 0; margin: 0; padding: 16px 28px; border-top: 1px solid #dce6e0; background: #f7faf9; }
.catalogue-detail-add > label { font-size: .8rem; margin-bottom: 8px; }
.catalogue-spec-group + .catalogue-spec-group { margin-top: 22px; }
.catalogue-spec-group h4 { color: #076f6d; font: 600 .8rem/1.4 var(--font-body); margin-bottom: 8px; }
.catalogue-spec-group dt, .catalogue-spec-group dd { min-width: 0; overflow-wrap: anywhere; }
.catalogue-detail-specs dl > div { grid-template-columns: minmax(0, .85fr) minmax(0, 1.3fr); padding: 11px 0; }
.catalogue-detail-specs dt { font-size: .8rem; line-height: 1.55; }
.catalogue-detail-specs dd { font-size: .84rem; line-height: 1.55; color: #233e4d; }
.catalogue-detail-specs > h3 { font-size: .92rem; margin-bottom: 18px; }
@media (max-width: 800px) {
  .catalogue-product-card > .catalogue-product-description { grid-column: 1 / -1; display: -webkit-box; margin: 5px 0 0; font-size: .78rem; color: #536871; }
  .catalogue-card-specs > div { max-width: 100%; overflow-wrap: anywhere; }
  .catalogue-card-specs dd { min-width: 0; }
  .catalogue-detail-shell > .catalogue-detail-add { padding: 12px 16px max(12px, env(safe-area-inset-bottom)); }
  .catalogue-detail-add-row { flex-wrap: nowrap; }
  .catalogue-detail-add-row > input { width: 70px; flex: 0 0 70px; }
  .catalogue-detail-add-row > button { flex: 1 1 auto; font-size: .8rem !important; }
  .catalogue-detail-add > p { font-size: .68rem; margin-top: 6px; }
  .catalogue-detail-specs dl > div { gap: 8px; }
  .catalogue-detail-specs dt, .catalogue-detail-specs dd { font-size: .78rem; }
}
