.iwts-section {
  --iwts-vw: var(--body-container-width, calc(100vw - var(--body-scrollbar-width, 0px)));

  box-sizing: border-box;
  width: var(--iwts-vw);
  max-width: var(--iwts-vw);
  margin-inline: calc(50% - var(--iwts-vw) / 2);
  overflow-x: clip;
  color: rgb(var(--iwts-text-color));
  background-color: rgb(var(--iwts-bg-color));
}

.images-with-text-scroll {
  position: relative;
  display: grid;
  box-sizing: border-box;
  align-items: start;
  width: 100%;
  max-width: calc(var(--page-padding, 20px) * 2 + var(--page-width, 1200px));
  margin-inline: auto;
}

.images-with-text-scroll__container {
  z-index: 1;
  display: grid;
  box-sizing: border-box;
  max-width: 100%;
  padding-block: var(--iwts-vspace);
  padding-inline: 20px;
  row-gap: 2rem;
  place-items: start center;
}

.images-with-text-scroll__item {
  display: contents;
}

.images-with-text-scroll__media {
  grid-area: 1 / 1;
  align-self: center;
  justify-self: center;
  box-sizing: border-box;
  width: min(var(--iwts-image-width-mobile, 320px), 100%);
  aspect-ratio: var(--iwts-ratio, 1);
  transition: opacity 0.3s ease;
}

.images-with-text-scroll__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

svg.images-with-text-scroll__image {
  background-color: rgba(var(--iwts-text-color), 0.08);
  fill: rgba(var(--iwts-text-color), 0.35);
}

.images-with-text-scroll__text {
  grid-area: 2 / 1;
  max-width: 420px;
}

.iwts-step {
  margin: 0 0 10px;
  color: rgb(var(--iwts-text-color));
}

.iwts-desc {
  margin: 0;
  color: rgba(var(--iwts-text-color), var(--iwts-desc-opacity, 0.72));
}

.iwts-desc > *:first-child {
  margin-block-start: 0;
}

.iwts-desc > *:last-child {
  margin-block-end: 0;
}

.iwts-dots {
  display: flex;
  grid-area: 3 / 1;
  gap: 10px;
  justify-content: center;
  margin-block-start: 24px;
}

.iwts-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  cursor: pointer;
  background: rgba(var(--iwts-text-color), 0.3);
  border: none;
  border-radius: 50%;
  transition: background 0.2s, transform 0.2s;
}

.iwts-dot.is-current {
  background: rgb(var(--iwts-text-color));
  transform: scale(1.15);
}

@media (min-width: 700px) {
  .images-with-text-scroll__container {
    row-gap: 3rem;
  }
}

@media (max-width: 999px) {
  .images-with-text-scroll__item .images-with-text-scroll__media,
  .images-with-text-scroll__item .images-with-text-scroll__text {
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.5s ease, transform 0.5s ease;
  }

  .images-with-text-scroll__item .images-with-text-scroll__media {
    transform: scale(0.98);
  }

  .images-with-text-scroll__item .images-with-text-scroll__text {
    transform: translateY(14px);
  }

  .images-with-text-scroll__item.is-selected .images-with-text-scroll__media,
  .images-with-text-scroll__item.is-selected .images-with-text-scroll__text {
    pointer-events: auto;
    opacity: 1;
  }

  .images-with-text-scroll__item.is-selected .images-with-text-scroll__media {
    transform: scale(1);
  }

  .images-with-text-scroll__item.is-selected .images-with-text-scroll__text {
    transform: translateY(0);
  }
}

@media (min-width: 1000px) {
  .images-with-text-scroll {
    min-height: calc(100vh - var(--sticky-area-height));
  }

  .images-with-text-scroll__container {
    --image-width: min(50vw - 40px, var(--iwts-image-max-width, 575px));
    --image-height: min(
      calc(var(--image-width) / var(--iwts-ratio)),
      calc(100vh - var(--sticky-area-height) - 96px)
    );
    --content-padding: calc(
      (100vh - var(--image-height) - var(--sticky-area-height)) / 2
    );

    grid-auto-rows: minmax(0, 1fr);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    padding-block: var(--content-padding);
    padding-inline: clamp(20px, 5vw, 80px);
    column-gap: 40px;
  }

  .images-with-text-scroll__media {
    position: sticky;
    inset-block-start: calc(
      var(--content-padding) + var(--sticky-area-height)
    );
    grid-area: 1 / 1;
    width: auto;
    max-width: 100%;
    height: var(--image-height);
  }

  .images-with-text-scroll__text {
    grid-area: auto / 2;
    max-width: 460px;
    opacity: 0;
  }

  .iwts-dots {
    display: none;
  }
}
