/* Задача 48. Блок «Наши партнёры» (разметка — local/templates/fda/partners.php).
   Секция белая, мятные только карточки (--color-surface, как счётчики над
   ней). Отступы — шкала сайта: секция --space-half сверху и снизу, как у
   соседних белых секций (счётчики, этапы), — между последним рядом
   счётчиков и карточками обычный межсекционный отступ.

   Задача 49: карточки в ленте-слайдере (modernization/slider.css и
   slider.js, общие с наградами и отзывами), без переноса на новый ряд:
     ≥981     3 на экране, листание на одну карточку;
     641–980  2 на экране;
     ≤640     одна почти на всю ширину, справа выглядывает 20px следующей.
   Помещаются все — стрелок и счётчика нет, обычный ряд по центру.
   Раскладка по числу партнёров (класс на секции):
     --count-1  одна широкая карточка: слева логотип и текст, справа фото (55/45);
     --count-2  две карточки в ряд (на телефоне — лента);
     --many     по 3 на экране.
   Высота карточек в ленте выровнена (flex stretch), фото прижато к низу —
   фото одной высоты и начинаются на одной линии. */

.partners {
  padding: var(--space-half) var(--grid-gutter);
  background: var(--color-white);
}

.partners__title {
  max-width: var(--container-max);
  margin: 0 auto var(--space-head);
  font-size: var(--h-section-fs);
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  color: var(--color-text);
}

.partners__slider {
  max-width: var(--container-max);
  margin: 0 auto;
}

.partners__grid {
  --partners-gap: var(--space-item);
  margin: 0;
  padding: 0;
  list-style: none;
  gap: var(--partners-gap);
}

.partner-card {
  display: flex;
  flex-direction: column;
  flex: 0 0 calc((100% - 2 * var(--partners-gap)) / 3);
  box-sizing: border-box;
  padding: 32px;
  border-radius: 16px;
  background: var(--color-surface);
}

.partners--count-2 .partner-card {
  flex-basis: calc((100% - var(--partners-gap)) / 2);
}

.partner-card__body {
  display: flex;
  flex-direction: column;
}

/* Шапка по макету: круглая миниатюра (кроп основного фото) и логотип по
   центру миниатюры по вертикали. Высота шапки одинаковая во всех
   карточках (по миниатюре: 64px, на телефоне 56px), поэтому дата и текст
   во всех карточках начинаются с одной высоты. Логотипы — в область
   высотой 56px: широкие (соотношение > 1,5, EPICA, MALLÉ) до 40px,
   узкие и почти квадратные (Tea art) до 56px — на глаз одного веса. */
.partner-card__head {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 64px;
}

.partner-card__avatar {
  flex: 0 0 auto;
  display: block;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

.partner-card__logo {
  flex: 0 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  height: 56px;
  margin: 0;
  line-height: 0;
  font-size: var(--h-card-fs);
  font-weight: 600;
}

.partner-card__logo img {
  display: block;
  width: auto;
  height: 56px;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
}

.partner-card__logo--wide img {
  height: 40px;
}

/* Задача 49: у логотипа AERCODE по самому краю файла — полупрозрачная
   рамка в пиксель, на мятной карточке выглядела контуром. Край в 1px
   срезается у всех логотипов (у остальных там пусто), файлы не меняются. */
.partner-card__logo img {
  clip-path: inset(1px);
}

/* Дата под шапкой, как в макете: полужирная, тёмная. */
.partner-card__date {
  margin: 16px 0 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--color-text);
}

.partner-card__text {
  margin-top: var(--space-item);
  max-width: 62ch;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-text);
}

.partner-card__text p {
  margin: 0 0 0.75em;
}

.partner-card__text p:last-child {
  margin-bottom: 0;
}

.partner-card__since {
  margin: var(--space-item) 0 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--color-text);
}

/* «более N лет» полужирным, цветом основного текста (как в макете). */
.partner-card__accent {
  font-weight: 600;
  color: inherit;
}

/* Фото внизу карточки: разница в длине текстов уходит в отступ над фото. */
.partner-card__photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 10 / 7;
  margin-top: auto;
  border-radius: 16px;
  object-fit: cover;
}

/* Отступ над фото не меньше --space-item, остальное — auto. */
.partner-card__body {
  margin-bottom: var(--space-item);
}

/* Один партнёр, компьютер: широкая карточка в две колонки. */
@media screen and (min-width: 981px) {
  .partners--count-1 .partner-card {
    flex-basis: 100%;
    display: grid;
    grid-template-columns: 55fr 45fr;
    align-items: center;
    gap: 48px;
  }

  .partners--count-1 .partner-card__body {
    margin-bottom: 0;
  }

  .partners--count-1 .partner-card__photo {
    margin-top: 0;
  }
}

/* Планшет: по две на экране, поля карточки поуже — карточки от 234px. */
@media screen and (max-width: 980px) {
  .partner-card,
  .partners--count-2 .partner-card {
    flex-basis: calc((100% - var(--partners-gap)) / 2);
    padding: 24px 20px;
  }

  .partners--count-1 .partner-card {
    flex-basis: 100%;
  }
}

/* Телефон: одна карточка, справа край следующей (20px) — видно, что
   ленту можно листать. Один партнёр — на всю ширину. */
@media screen and (max-width: 640px) {
  .partner-card,
  .partners--count-2 .partner-card {
    flex-basis: calc(100% - var(--partners-gap) - 20px);
  }

  .partners--count-1 .partner-card {
    flex-basis: 100%;
  }
}

@media screen and (max-width: 480px) {
  .partner-card__head {
    height: 56px;
  }

  .partner-card__avatar {
    width: 56px;
    height: 56px;
  }
}
