.catalog-page {
  background: #f5f7fa;
  min-height: 66vh;
  color: var(--ink, #102134);
  padding: 0 0 56px;
}
.catalog-container {
  width: min(1320px, calc(100% - 56px));
  margin-inline: auto;
}
.catalog-page a { text-decoration: none; color: inherit; }
.catalog-page button, .catalog-page input, .catalog-page select { font: inherit; }
.catalog-page button { cursor: pointer; }
.catalog-page :focus-visible { outline: 2px solid var(--accent, #f26434); outline-offset: 3px; }
.catalog-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.catalog-breadcrumb {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  padding: 20px 0; font-size: 13px; color: var(--muted, #637386);
}
.catalog-breadcrumb [aria-current] { color: var(--ink, #102134); }
.catalog-breadcrumb a:hover, .catalog-text-link:hover { color: var(--accent, #f26434); }
.catalog-heading {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
  margin: 5px 0 27px;
}
.catalog-heading h1 { font-size: clamp(29px, 3.2vw, 44px); margin: 4px 0 6px; line-height: 1.2; letter-spacing: -.035em; }
.catalog-heading p:not(.catalog-eyebrow) { margin: 0; color: var(--muted, #637386); font-size: 14px; }
.catalog-eyebrow { color: #a94c2b; font-size: 10px; letter-spacing: .17em; font-weight: 750; margin: 0; }
.catalog-search {
  display: flex; align-items: center; flex: 0 1 390px; background: #fff; border: 1px solid var(--line, #e0e6ed);
  border-radius: 6px; padding: 4px; min-width: 240px; color: var(--muted, #637386);
}
.catalog-search svg { flex: 0 0 auto; margin-left: 9px; }
.catalog-search input { width: 100%; min-width: 0; padding: 8px 9px; border: 0; background: transparent; color: var(--ink, #102134); font-size: 14px; }
.catalog-search input:focus { outline: none; }
.catalog-search:focus-within { border-color: var(--accent, #f26434); }
.catalog-search button {
  flex: 0 0 auto; border: 0; border-radius: 4px; background: var(--ink, #102134);
  color: #fff; padding: 8px 15px; font-size: 13px; font-weight: 700;
}
.catalog-layout { display: grid; grid-template-columns: 204px minmax(0,1fr); gap: 18px; align-items: start; }
.catalog-sidebar, .catalog-toolbar, .catalog-item, .catalog-empty, .catalog-detail,
.catalog-detail-more, .catalog-supplier-card {
  background: #fff; border: 1px solid var(--line, #e0e6ed); border-radius: 8px;
}
.catalog-sidebar-heading {
  display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--line, #e0e6ed); padding: 15px;
}
.catalog-sidebar-heading h2 { margin: 0; font-size: 14px; }
.catalog-sidebar-heading a { margin-left: auto; font-size: 12px; color: var(--muted, #637386); }
.catalog-sidebar-heading a:hover { color: var(--accent, #f26434); }
.catalog-filter { padding: 14px 12px; }
.catalog-filter + .catalog-filter { border-top: 1px solid var(--line, #e0e6ed); }
.catalog-filter h3 { font-size: 12px; margin: 0 5px 10px; color: var(--muted, #637386); font-weight: 600; }
.catalog-filter-link {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  margin: 2px 0; padding: 8px 6px; border-radius: 4px; font-size: 13px;
}
.catalog-filter-link small { color: var(--muted, #637386); font-size: 11px; font-variant-numeric: tabular-nums; }
.catalog-filter-link:hover, .catalog-filter-link.is-active { background: #fff0e9; color: #a83d20; }
.catalog-filter-link.is-active { font-weight: 700; }
.catalog-check { display: flex; align-items: center; gap: 6px; font-size: 13px; margin-left: 3px; cursor: pointer; }
.catalog-check input { accent-color: var(--accent, #f26434); }
.catalog-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 9px; padding: 12px 15px; margin-bottom: 13px; }
.catalog-toolbar > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 9px; }
.catalog-toolbar strong { font-size: 15px; overflow-wrap: anywhere; }
.catalog-toolbar span, .catalog-toolbar label { font-size: 12px; color: var(--muted, #637386); }
.catalog-toolbar select {
  border: 1px solid var(--line, #e0e6ed); border-radius: 4px; background: #fff; color: var(--ink, #102134); margin-left: 5px; padding: 5px 8px;
}
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 13px; }
.catalog-item { min-width: 0; overflow: hidden; transition: border-color .16s, box-shadow .16s; }
.catalog-item:hover { border-color: #bac6d4; box-shadow: 0 5px 16px #1021340a; }
.catalog-item-image {
  position: relative; display: flex; align-items: center; justify-content: center; min-height: 154px;
  height: clamp(145px, 15vw, 212px); background: #edf1f5; overflow: hidden;
}
.catalog-item-image img, .catalog-detail-image img { width: 100%; height: 100%; display: block; object-fit: contain; }
.catalog-item-code {
  position: absolute; z-index: 1; top: 10px; left: 11px; color: #51657b; font-size: 10px; font-weight: 700;
  letter-spacing: .03em; border: 1px solid #dbe3eb; border-radius: 3px; background: #f8fafc; padding: 3px 6px;
}
.catalog-item-info { padding: 12px 13px 11px; }
.catalog-item-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 0 0 7px; }
.catalog-item-tags span { font-size: 10px; line-height: 1.35; color: #536477; padding: 3px 6px; background: #edf1f5; border-radius: 3px; font-weight: 600; }
.catalog-item-tags .catalog-tag-stock { color: #157154; background: #e6f4ed; }
.catalog-item-title { display: block; font-size: 14px; font-weight: 730; line-height: 1.45; margin-bottom: 4px; }
.catalog-item-title:hover { color: #bc4925; }
.catalog-item-source { color: var(--muted, #637386); font-size: 11px; line-height: 1.5; margin: 0; }
.catalog-item-source span { margin: 0 2px; }
.catalog-item-bottom { margin-top: 11px; display: flex; align-items: center; justify-content: space-between; gap: 6px; padding-top: 8px; border-top: 1px solid #edf0f4; }
.catalog-item-bottom strong { color: #a83d20; font-size: 14px; font-variant-numeric: tabular-nums; }
.catalog-item-bottom a { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--line, #e0e6ed); border-radius: 5px; }
.catalog-item-bottom a:hover { color: #a83d20; background: #fff0e9; border-color: #f7cbbb; }
.catalog-demo-note { font-size: 11px; margin: 16px 0 0; color: var(--muted, #637386); }
.catalog-empty { padding: 46px 18px; text-align: center; }
.catalog-empty > svg { color: #8a9aae; }
.catalog-empty h1, .catalog-empty h2 { font-size: 20px; margin: 10px 0 5px; }
.catalog-empty p { margin: 0 0 12px; font-size: 13px; color: var(--muted, #637386); }
.catalog-empty .catalog-action { margin-top: 8px; }
.catalog-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 8px 13px;
  background: #fff; border: 1px solid var(--line, #e0e6ed); border-radius: 5px;
  font-size: 13px; line-height: 1.35; font-weight: 700; color: var(--ink, #102134);
}
.catalog-action:hover { border-color: #a9b6c5; background: #f6f8fa; }
.catalog-page .catalog-action-primary { background: var(--accent, #f26434); border-color: var(--accent, #f26434); color: #101d2e; }
.catalog-page .catalog-action-primary:hover { background: #ff754b; border-color: #ff754b; }
.catalog-detail { display: grid; grid-template-columns: 1.05fr 1fr minmax(190px,.65fr); overflow: hidden; }
.catalog-detail-image { min-height: 340px; position: relative; display: grid; place-items: center; background: #edf1f5; overflow: hidden; }
.catalog-detail-image img { position: absolute; inset: 0; }
.catalog-detail-image-note { position: absolute; bottom: 10px; right: 12px; font-size: 11px; color: var(--muted, #637386); }
.catalog-detail-summary { padding: 25px 22px; }
.catalog-detail-summary h1 { font-size: clamp(21px,2.4vw,31px); margin: 8px 0; letter-spacing: -.025em; line-height: 1.25; }
.catalog-detail-model { margin: 0 0 16px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 12px; color: var(--muted, #637386); }
.catalog-detail-model strong { color: var(--ink, #102134); }
.catalog-detail-model > span { height: 10px; width: 1px; background: #dce3eb; margin: 0 4px; }
.catalog-price-box { background: #fff0e9; padding: 12px; border-radius: 5px; display: grid; gap: 3px; }
.catalog-price-box span, .catalog-price-box small { font-size: 11px; color: #73513f; }
.catalog-price-box strong { font-size: 22px; color: #a83d20; }
.catalog-detail-facts { display: flex; gap: 22px; flex-wrap: wrap; margin: 16px 0; }
.catalog-detail-facts div { display: grid; gap: 4px; }
.catalog-detail-facts span { font-size: 11px; color: var(--muted, #637386); }
.catalog-detail-facts b { font-size: 13px; }
.catalog-detail-actions { display: flex; gap: 7px; flex-wrap: wrap; }
.catalog-detail-supplier { padding: 23px 16px; background: #fafbfd; border-left: 1px solid var(--line, #e0e6ed); }
.catalog-supplier-mark {
  flex: 0 0 auto; width: 42px; height: 42px; display: inline-grid; place-items: center; color: #fff; background: var(--ink, #102134);
  border-radius: 6px; font-size: 17px; font-weight: 700;
}
.catalog-detail-supplier .catalog-eyebrow { margin-top: 14px; letter-spacing: .06em; }
.catalog-detail-supplier h2 { font-size: 16px; margin: 4px 0 3px; }
.catalog-location { display: flex; align-items: center; gap: 4px; color: var(--muted, #637386); font-size: 12px; margin: 0; }
.catalog-supplier-about { color: #485b6f; line-height: 1.65; font-size: 13px; margin: 13px 0; }
.catalog-text-link { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; }
.catalog-detail-more { margin-top: 15px; overflow: hidden; }
.catalog-tabs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; border-bottom: 1px solid var(--line, #e0e6ed); padding: 0 12px; }
.catalog-tabs button { color: var(--muted, #637386); background: transparent; border: 0; border-bottom: 2px solid transparent; padding: 12px 10px 10px; font-size: 13px; font-weight: 600; }
.catalog-tabs button[aria-selected="true"] { color: #a83d20; border-bottom-color: var(--accent, #f26434); }
.catalog-detail-panel { padding: 15px; }
.catalog-specs { margin: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line, #e0e6ed); padding: 1px; border-radius: 4px; overflow: hidden; }
.catalog-specs > div { display: grid; grid-template-columns: minmax(95px, .8fr) minmax(0,1.2fr); gap: 5px; background: #fff; align-items: center; }
.catalog-specs dt, .catalog-specs dd { padding: 8px 10px; margin: 0; font-size: 13px; }
.catalog-specs dt { color: var(--muted, #637386); background: #f6f8fa; align-self: stretch; }
.catalog-specs dd { overflow-wrap: anywhere; }
.catalog-panel-copy { min-height: 104px; }
.catalog-panel-copy h3 { font-size: 14px; margin: 0 0 5px; }
.catalog-panel-copy p { font-size: 13px; color: var(--muted, #637386); margin: 0 0 12px; line-height: 1.65; }
.catalog-related { margin-top: 22px; }
.catalog-related-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.catalog-related-heading h2 { font-size: 20px; margin: 0; }
.catalog-dialog { width: min(390px, calc(100% - 36px)); border: 1px solid var(--line, #e0e6ed); border-radius: 9px; padding: 0; color: var(--ink, #102134); }
.catalog-dialog::backdrop { background: #10213490; }
.catalog-dialog-content { position: relative; padding: 24px; }
.catalog-dialog-content h2 { font-size: 20px; margin: 12px 0 5px; }
.catalog-dialog-content p { color: var(--muted, #637386); font-size: 13px; line-height: 1.65; }
.catalog-dialog-close { position: absolute; right: 9px; top: 7px; font-size: 23px !important; background: none; border: none; color: var(--muted, #637386); }
.catalog-supplier-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 13px; }
.catalog-supplier-filters a { font-size: 12px; border: 1px solid var(--line, #e0e6ed); background: #fff; border-radius: 5px; padding: 7px 10px; }
.catalog-supplier-filters a:hover, .catalog-supplier-filters .is-active { color: #a83d20; background: #fff0e9; border-color: #f7cbbb; }
.catalog-supplier-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.catalog-supplier-card { padding: 15px; }
.catalog-supplier-card > header { display: flex; align-items: center; gap: 9px; }
.catalog-supplier-card h2 { font-size: 15px; margin: 0 0 4px; }
.catalog-supplier-products { padding: 0; list-style: none; margin: 12px 0; border-block: 1px solid var(--line, #e0e6ed); }
.catalog-supplier-products a { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; padding: 7px 0; }
.catalog-supplier-products a:hover { color: #a83d20; }
.catalog-supplier-products li + li { border-top: 1px solid #edf0f4; }

@media (max-width: 940px) {
  .catalog-layout { grid-template-columns: 168px minmax(0,1fr); gap: 12px; }
  .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .catalog-detail { grid-template-columns: 1fr 1fr; }
  .catalog-detail-supplier { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--line, #e0e6ed); }
  .catalog-supplier-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 660px) {
  .catalog-container { width: calc(100% - 28px); }
  .catalog-heading { align-items: stretch; flex-direction: column; gap: 13px; margin-bottom: 15px; }
  .catalog-search { flex-basis: auto; min-width: 0; }
  .catalog-layout { grid-template-columns: minmax(0,1fr); }
  .catalog-sidebar-heading { padding: 10px; }
  .catalog-filter { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; padding: 8px; }
  .catalog-filter h3 { width: 100%; margin: 0 4px 1px; }
  .catalog-filter-link { gap: 4px; padding: 5px; font-size: 11px; }
  .catalog-filter-link small { font-size: 10px; }
  .catalog-toolbar { padding: 8px; }
  .catalog-grid { gap: 8px; }
  .catalog-item-image { height: 118px; min-height: 118px; }
  .catalog-item-info { padding: 8px; }
  .catalog-item-title { font-size: 13px; }
  .catalog-item-code { top: 5px; left: 5px; font-size: 9px; }
  .catalog-detail { grid-template-columns: minmax(0,1fr); }
  .catalog-detail-image { min-height: 220px; }
  .catalog-detail-summary { padding: 17px; }
  .catalog-detail-supplier { padding: 17px; }
  .catalog-specs, .catalog-supplier-grid { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) { .catalog-item { transition: none; } }
