
.solutions {
  padding-top: var(--space-section);
  padding-bottom: var(--space-section-bottom);
  background: var(--color-surface);
}

.solutions__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

.solutions__title {
  font-family: var(--font-body);
  font-variation-settings: normal;
  text-align: center;
}

.solutions__groups {
  display: flex;
  flex-direction: column;
  gap: var(--space-section);
}

.solutions-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

.solutions-group__title {
  font-size: var(--font-size-h2);
  line-height: var(--line-height-h2);
  text-align: center;
}

.solutions-carousel {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

.solutions-carousel__row {
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

.phones {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--layout-gutter);
  margin: 0;
  padding: 0;
  list-style: none;
}

.phone {
  aspect-ratio: 1 / var(--phone-ratio);
  overflow: clip;
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-phone);
}

.phone img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.phones-carousel {
  --phone-ratio: 1.95;
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

@media (768px <= width < 1024px) {
  .phones {
    grid-template-columns: repeat(3, 1fr);
  }

  .phone:nth-child(4) {
    display: none;
  }
}

@media (width < 768px) {
  .solutions-carousel__row:focus-visible,
  .phones:focus-visible {
    outline-offset: -2px;
  }

  .solutions-carousel__row {
    flex-direction: row;
    gap: var(--space-12);
    margin-inline: calc(-1 * var(--layout-gutter));
    padding-inline: var(--layout-carousel-inset);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .solutions-carousel__row::-webkit-scrollbar {
    display: none;
  }

  .solutions-carousel__row > .solution {
    flex: 0 0 100%;
    scroll-snap-align: center;
  }

  .phones {
    display: flex;
    gap: var(--space-12);
    margin-inline: calc(-1 * var(--space-card-pad));
    padding-inline: var(--layout-carousel-inset);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .phones::-webkit-scrollbar {
    display: none;
  }

  .phone {
    flex: 0 0 min(100%, calc(var(--size-case-phone) / var(--phone-ratio)), calc(65svh / var(--phone-ratio)));
    scroll-snap-align: center;
  }
}

@media (width < 768px) and (orientation: landscape) {
  .phones {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-inline: 0;
    padding-inline: 0;
    overflow: visible;
  }

  .phones-carousel .carousel-dots {
    display: none;
  }
}
