.home-partners {
  --home-partners-text-spacing: 45px;
  padding: 100px 0 50px;
  background: var(--light-grey);
}

.home-partners__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0 40px;
  align-items: end;
}

.home-partners__heading {
  grid-column: 1 / -1;
  margin: 0 0 25px;
  font-family: var(--font-family);
  font-size: 42px;
  font-weight: 500;
  line-height: 120%;
  color: var(--black);
}

.home-partners__text {
  max-width: 800px;
  margin: 0 0 var(--home-partners-text-spacing);
  font-family: var(--font-family);
  font-weight: 500;
  font-size: 18px;
  line-height: 120%;
  color: var(--grey);
}

.home-partners__navigation {
  display: flex;
  gap: 8px;
  margin-bottom: var(--home-partners-text-spacing);
}

.home-partners__navigation[hidden] {
  display: none;
}

.home-partners__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--red);
  color: var(--white);
  cursor: pointer;
}

.home-partners__arrow:disabled {
  background: var(--grey-elements);
  color: var(--black);
  cursor: default;
}

.home-partners__arrow:focus-visible,
.home-partners__slider:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}

.home-partners__slider {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}

.home-partners__slider.keen-slider {
  scroll-snap-type: none;
}

.home-partners__page {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(2, 110px);
  gap: 40px 30px;
  flex: 0 0 100%;
  min-width: 0;
  scroll-snap-align: start;
}

.home-partners__page.keen-slider__slide {
  flex: none;
}

.home-partners__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  height: 110px;
}

.home-partners__image.lazy-bg {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 270px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

.home-partners--logos-only {
  padding-bottom: 100px;
}

.home-partners--logos-only .home-partners__heading {
  grid-column: 1;
  margin-bottom: var(--home-partners-text-spacing);
}

.home-partners--logos-only .home-partners__navigation {
  grid-column: 2;
  grid-row: 1;
}

@media screen and (max-width: 1023px) {
  .home-partners {
    --home-partners-text-spacing: 40px;
  }

  .home-partners__header {
    column-gap: 30px;
  }

  .home-partners__heading {
    font-size: 36px;
    margin-bottom: 20px;
  }

  .home-partners__text {
    max-width: 485px;
    font-size: 16px;
  }

  .home-partners__slider:not(.keen-slider) {
    gap: 30px;
  }

  .home-partners__page {
    display: contents;
  }

  .home-partners__logo {
    flex: 0 0 calc((100% - 60px) / 3);
    scroll-snap-align: start;
  }

  .home-partners__logo.keen-slider__slide {
    flex: none;
  }
}

@media screen and (max-width: 767px) {
  .home-partners {
    --home-partners-text-spacing: 25px;
    padding: 80px 0 25px;
  }

  .home-partners--logos-only {
    padding-bottom: 80px;
  }

  .home-partners__header {
    column-gap: 20px;
  }

  .home-partners__heading {
    font-size: 26px;
    margin-bottom: 18px;
  }

  .home-partners__text {
    font-size: 14px;
  }

  .home-partners__arrow {
    width: 30px;
    height: 30px;
  }

  .home-partners__slider:not(.keen-slider) {
    gap: 20px;
  }

  .home-partners__logo {
    flex-basis: calc((100% - 20px) / 2);
    height: 90px;
  }
}
