/* Company directories: common card geometry from consumer catalogue. */
.directory-layout .producer-list > .producer-card:not(.producer-card--advert) {
  box-sizing: border-box;
  min-height: 160px;
}

/* SHR_CATALOG_BANNER_INTRINSIC_RATIO_20261104
   All in-list banner slots (unified position 12 and legacy fallback position 3)
   must fill the column horizontally without white padding or image stretching.
   Natural image aspect ratios determine slot height: do not force 112/72 px. */
.directory-layout .producer-list > .producer-card.producer-card--advert-banner3-catalog {
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-height: 0;
  height: auto;
  max-height: none;
  padding: 0;
  overflow: hidden;
}
.directory-layout .producer-list > .producer-card.producer-card--advert-banner3-catalog img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  max-height: none;
  object-fit: contain;
}

/* SHR_COMPANY_CARD_VERTICAL_ALIGNMENT_20261104
   Только вертикальное расположение существующего текста в каталогах.
   Верх: название; центр: регион; низ: характеристики.
   Пустые строки остаются пустыми, длинный текст увеличивает карточку,
   если ему не хватает утвержденной минимальной высоты 160px.
   Рекламные карточки исключены из правил. */
.directory-layout .producer-list > .producer-card:not(.producer-card--advert) > span:first-child {
  display: grid;
  grid-template-rows: repeat(3, minmax(auto, 1fr));
  min-width: 0;
}
.directory-layout .producer-list > .producer-card:not(.producer-card--advert) > span:first-child > h2 {
  grid-row: 1;
  align-self: start;
  margin-bottom: 0;
}
.directory-layout .producer-list > .producer-card:not(.producer-card--advert) > span:first-child > .producer-region {
  grid-row: 2;
  align-self: center;
}
.directory-layout .producer-list > .producer-card:not(.producer-card--advert) > span:first-child > .producer-meta-grid {
  grid-row: 3;
  align-self: end;
  margin-top: 0;
}
