.catalog-page { padding-block: 28px 56px; }
.catalog-breadcrumbs { margin-bottom: 18px; color: var(--sd-muted); font-size: 14px; }
.catalog-breadcrumbs a { min-height: 44px; display: inline-flex; align-items: center; }

.catalog-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin-bottom: 28px;
}
.catalog-search label { grid-column: 1 / -1; font-size: 14px; font-weight: 800; }
.catalog-search input,
.catalog-filter select {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-sm);
  background: var(--sd-white);
  color: var(--sd-ink);
}
.catalog-search button { min-width: 82px; }

.catalog-heading { margin-bottom: 24px; }
.catalog-heading h1 {
  margin: 0 0 8px;
  font-size: clamp(27px, 6vw, 42px);
  line-height: 1.12;
  letter-spacing: -0.03em;
  text-wrap: balance;
}
.catalog-heading p { max-width: 66ch; margin: 0; color: var(--sd-muted); }
.catalog-hero-media,
.catalog-guide {
  position: relative;
  margin: 0 0 24px;
  overflow: hidden;
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-md);
  background: var(--sd-rubber);
}
.catalog-hero-media img,
.catalog-guide img { width: 100%; height: auto; display: block; object-fit: cover; }
.catalog-hero-media img { aspect-ratio: 2 / 1; }
.catalog-guide img { aspect-ratio: 8 / 5; }
.catalog-hero-media figcaption,
.catalog-guide figcaption,
.catalog-generated-label {
  position: absolute;
  inset: auto 10px 10px auto;
  padding: 5px 9px;
  border-radius: 999px;
  background: var(--sd-white);
  color: var(--sd-muted);
  font-size: 12px;
  font-weight: 750;
}

.catalog-brands { margin-bottom: 22px; }
.catalog-brands h2 { margin: 0 0 10px; font-size: 18px; }
.catalog-brand-list { display: flex; flex-wrap: wrap; gap: 8px; }
.catalog-brand {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 6px 12px;
  border: 1px solid var(--sd-border);
  border-radius: 999px;
  background: var(--sd-white);
  color: var(--sd-blue-deep);
  font-size: 14px;
  font-weight: 750;
}

.catalog-filter {
  display: grid;
  gap: 12px;
  margin-bottom: 24px;
  padding: 16px;
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-md);
  background: var(--sd-surface);
}
.catalog-filter__title { margin: 0; font-size: 16px; }
.catalog-filter__field label { display: block; margin-bottom: 5px; color: var(--sd-muted); font-size: 13px; font-weight: 750; }
.catalog-filter__submit { align-self: end; }
.catalog-count { margin: 0 0 12px; color: var(--sd-muted); font-size: 14px; }

.catalog-grid { display: grid; gap: 16px; }
.catalog-card {
  display: grid;
  gap: 16px;
  padding: 16px;
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-md);
  background: var(--sd-surface);
  box-shadow: var(--sd-shadow-sm);
}
.catalog-card__media {
  position: relative;
  min-height: 176px;
  display: grid;
  place-items: center;
  border-radius: var(--sd-radius-sm);
  background: var(--sd-page);
  overflow: hidden;
}
.catalog-card__media img { width: 100%; height: 190px; object-fit: contain; }
.catalog-card__placeholder { color: var(--sd-muted); font-size: 14px; text-align: center; }
.catalog-card__placeholder::before {
  content: "SD";
  width: 76px;
  height: 76px;
  margin: 0 auto 8px;
  display: grid;
  place-items: center;
  border: 9px solid var(--sd-rubber);
  border-radius: 50%;
  color: var(--sd-blue-deep);
  font-size: 17px;
  font-weight: 850;
}
.catalog-card__brand { margin: 0 0 2px; color: var(--sd-blue); font-size: 13px; font-weight: 850; text-transform: uppercase; letter-spacing: 0.05em; }
.catalog-card h2 { margin: 0 0 4px; font-size: 21px; line-height: 1.2; }
.catalog-card h2 a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.catalog-card__size { margin: 0 0 10px; color: var(--sd-muted); font-weight: 750; }
.catalog-card__facts { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.catalog-card__fact {
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--sd-blue-soft);
  color: var(--sd-blue-deep);
  font-size: 12px;
  font-weight: 750;
}

.catalog-offers { display: grid; gap: 10px; }
.catalog-offer { padding: 13px; border: 1px solid var(--sd-border); border-radius: var(--sd-radius-sm); }
.catalog-offer__point { margin: 0 0 8px; font-weight: 850; }
.catalog-offer__price { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.catalog-offer__price strong { display: block; font-size: clamp(17px, 4vw, 21px); line-height: 1.2; }
.catalog-offer__price span { display: block; color: var(--sd-muted); font-size: 12px; }
.catalog-offer__stock { margin: 0; font-weight: 800; }
.catalog-offer__meta { margin: 3px 0 0; color: var(--sd-muted); font-size: 12px; }
.catalog-offer__today { margin: 5px 0 0; color: var(--sd-positive); font-weight: 850; }
.catalog-card__actions { display: grid; gap: 8px; margin-top: 14px; }

.catalog-empty {
  max-width: 46rem;
  padding: clamp(22px, 5vw, 36px);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-md);
  background: var(--sd-surface);
  box-shadow: var(--sd-shadow-sm);
}
.catalog-empty h1 { margin: 0 0 8px; font-size: clamp(26px, 6vw, 38px); }
.catalog-empty p { margin: 0 0 20px; color: var(--sd-muted); }

.product-hero { display: grid; gap: 22px; margin-bottom: 24px; }
.product-hero__media {
  position: relative;
  min-height: 280px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-md);
  background: var(--sd-surface);
}
.product-hero__media img { width: 100%; max-height: 480px; object-fit: contain; }
.product-hero h1 { margin: 0 0 14px; font-size: clamp(29px, 7vw, 46px); line-height: 1.08; }
.product-hero h1 span { display: block; margin-top: 6px; color: var(--sd-muted); font-size: 0.62em; }
.product-hero__actions { display: grid; gap: 9px; margin-top: 16px; }
.product-section,
.product-order {
  margin-top: 18px;
  padding: clamp(18px, 5vw, 28px);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-md);
  background: var(--sd-surface);
}
.product-section h2,
.product-order h2 { margin: 0 0 10px; font-size: clamp(21px, 5vw, 28px); }
.product-section p,
.product-order > p { max-width: 70ch; color: var(--sd-muted); }
.product-benefits { border-color: var(--sd-blue); background: var(--sd-blue-soft); }
.product-specs { margin: 0; }
.product-specs div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; padding: 10px 0; border-top: 1px solid var(--sd-border); }
.product-specs dt { color: var(--sd-muted); }
.product-specs dd { margin: 0; font-weight: 750; }
.product-order form { display: grid; gap: 13px; margin-top: 18px; }
.product-order__fields { display: grid; gap: 13px; }
.product-order label { display: grid; gap: 5px; font-size: 13px; font-weight: 800; }
.product-order__line { display: grid; gap: 13px; }
.product-order input,
.product-order select,
.product-order textarea {
  width: 100%;
  min-height: 46px;
  padding: 11px 12px;
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-sm);
  background: var(--sd-white);
  color: var(--sd-ink);
  font: inherit;
}
.product-order textarea { min-height: 92px; resize: vertical; }
.product-order__privacy { margin: 10px 0 0; color: var(--sd-muted); font-size: 12px; }
.honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.product-sticky {
  position: fixed;
  inset: auto 0 0;
  z-index: 20;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 10px max(12px, env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--sd-border);
  background: var(--sd-white);
  background: color-mix(in srgb, var(--sd-white) 94%, transparent);
  box-shadow: 0 -8px 24px rgba(12, 35, 64, 0.12);
}
.product-page { padding-bottom: 112px; }

.pick-results,
.pick-selection,
.pick-share { margin-top: 18px; padding: 18px; border: 1px solid var(--sd-border); border-radius: var(--sd-radius-md); background: var(--sd-surface); }
.pick-results h2,
.pick-selection h2,
.pick-share h2 { margin: 0 0 12px; }
.pick-checks { display: grid; gap: 8px; margin-bottom: 14px; }
.pick-check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; min-height: 54px; padding: 9px 11px; border: 1px solid var(--sd-border); border-radius: var(--sd-radius-sm); cursor: pointer; }
.pick-check input { width: 22px; height: 22px; accent-color: var(--sd-blue); }
.pick-check span { display: grid; }
.pick-check small { color: var(--sd-muted); }
.pick-selection__heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: baseline; }
.pick-selection__heading span { color: var(--sd-muted); font-size: 14px; }
.pick-rows { display: grid; gap: 8px; }
.pick-row { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--sd-border); border-radius: var(--sd-radius-sm); }
.pick-row h3 { margin: 0 0 3px; }
.pick-row p { margin: 0; color: var(--sd-muted); font-size: 13px; }
.pick-row > div:not(:first-child) strong,
.pick-row > div:not(:first-child) span { display: block; }
.pick-row > div:not(:first-child) strong { font-size: 18px; }
.pick-row > div:not(:first-child) span { color: var(--sd-muted); font-size: 12px; }
.pick-empty { margin: 0; color: var(--sd-muted); }
.pick-share label { display: block; margin-bottom: 5px; font-size: 12px; font-weight: 800; }
.pick-share input { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--sd-border); border-radius: var(--sd-radius-sm); background: var(--sd-page); }
.pick-share__actions { display: grid; gap: 8px; margin-top: 10px; }

@media (min-width: 42rem) {
  .catalog-filter { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; }
  .catalog-filter__title { grid-column: 1 / -1; }
  .catalog-card { grid-template-columns: 190px minmax(0, 1fr); padding: 18px; }
  .catalog-card__media { align-self: start; }
  .catalog-card__actions { grid-template-columns: 1fr 1.35fr; }
  .product-hero { grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr); align-items: start; }
  .product-hero__actions,
  .product-order__fields { grid-template-columns: 1fr 1fr; }
  /* Точка и количество рядом: выбор одной строки заявки читается сразу. */
  .product-order__line { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .pick-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pick-row { grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(110px, 0.75fr)); align-items: center; }
  .pick-share__actions { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 68rem) {
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-card { grid-template-columns: 160px minmax(0, 1fr); }
  .catalog-card__media img { height: 170px; }
  .product-sticky { display: none; }
  .product-page { padding-bottom: 56px; }
}

/* Ответ вместо отказа (B9). Марка, которой сейчас нет, остаётся видимой:
   исчезнувшая читается как «её у вас не бывает», приглушённая — как
   «сейчас нет», и правдой является второе. */
.catalog-brand--out { opacity: 0.55; text-decoration: line-through; }
.catalog-filter select option:disabled { color: var(--sd-muted); }

.catalog-alternatives { margin-top: clamp(20px, 4vw, 32px); }
.catalog-alternatives h2 { margin: 0 0 6px; font-size: clamp(19px, 3.5vw, 24px); font-weight: 850; }
.catalog-alternatives__lead { max-width: 60ch; margin: 0 0 18px; color: var(--sd-muted); }
.catalog-alternatives__none { max-width: 60ch; margin: 18px 0 0; color: var(--sd-muted); }

/* Фильтры B10. Мёртвых опций в списке нет вовсе; нулевые под текущим
   сочетанием видны и приглушены — «сейчас нет» это правда. */
.catalog-filter__check { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.catalog-filter__check input { width: 20px; height: 20px; }
.catalog-filter__check label { font-size: 15px; }
.catalog-filter__reset {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--sd-muted);
  font-size: 14px;
}
.catalog-card__why {
  margin: 8px 0 0;
  color: var(--sd-muted);
  font-size: 13px;
}

.catalog-card__differs { margin: 6px 0 0; color: var(--sd-muted); font-size: 13px; }