.duo__outer-wrapper {
  &.duo__outer-wrapper--has-images {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    align-items: center;

    &.duo__outer-wrapper--image-bottom {
      .duo__image-wrapper {
        order: 2;
      }

      .duo__wrapper {
        order: 1;
      }
    }


    &.duo__outer-wrapper--image-left,
    &.duo__outer-wrapper--image-right {
      @media screen and (min-width: 750px) {
        grid-template-columns: 1fr 1fr;
        gap: 6rem;
      }

      @media screen and (min-width: 990px) {
        grid-template-columns: minmax(0, 3fr) minmax(0, 5fr);

        &.duo__outer-wrapper--image-60 {
          grid-template-columns: minmax(0, 5fr) minmax(0, 3fr);
        }

        &.duo__outer-wrapper--image-right {
          grid-template-columns: minmax(0, 5fr) minmax(0, 3fr);

          &.duo__outer-wrapper--image-60 {
            grid-template-columns: minmax(0, 3fr) minmax(0, 5fr);
          }
        }
      }

      .duo__wrapper {
        display: block;
      }
    }

    &.duo__outer-wrapper--image-right {
      .duo__image-wrapper {
        order: 2;
      }

      .duo__wrapper {
        order: 1;
      }
    }
  }
}

.duo__image-wrapper {
  display: flex;
  position: relative;
  height: auto;

  .duo__outer-wrapper--multiple-images & {
    padding-bottom: 10rem;
  }

  img {
    width: 100%;
    height: auto;
    border-radius: var(--border-radius);
    overflow: hidden;
  }

  .image-one {
    width: 60%;
  }

  .image-two {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 60%;
  }
}

.duo__wrapper {
  display: grid;
  grid-template-columns: 1fr;

  @media screen and (min-width: 750px) {
    grid-template-columns: 1fr 1fr;
    gap: 6rem;
  }

  @media screen and (min-width: 990px) {
    grid-template-columns: minmax(0, 3fr) minmax(0, 5fr);
  }

  .title-wrapper--no-top-margin {
    h1 {
      font-weight: var(--font-hero-weight);

      strong {
        font-weight: var(--font-hero-weight);
      }
    }
  }

  .title {
    padding-right: 15%;

    @media screen and (min-width: 990px) {
      padding-right: 13%;
    }
  }

  .intro-text {
    margin-top: 0;
    margin-bottom: 0;

    &:has(+ .rte),
    &:has(+ .button) {
      margin-bottom: 3rem;
    }

    @media screen and (min-width: 990px) {
      padding-right: 15%;
    }
  }

  .rte {
    container-type: inline-size;
    container-name: rte-container;

    &:has(+ .button) {
      margin-bottom: 3rem;
    }
  }

  .duo__text-wrapper {
    container-type: inline-size;
    container-name: duo-text-container;
  }
}

@container duo-text-container (min-width: 600px) {
  .rte:not(.rte--intro) {
    columns: 2;
    column-gap: 2rem;
    column-fill: balance;
  }
}
