
.rich-text {
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
}

.rich-text.rich-text--full-width {
  max-width: initial;
  width: 100%;
}

.rich-text__blocks {
  margin: auto;
  position: relative;
  min-width: min(80vw, 200px);
  z-index: 1;
  /* 2.5rem margin on left & right */
  width: calc(100% - 5rem / var(--font-body-scale));
  @media only screen and (max-width: 749px) {
    margin: 2rem auto;
    &:first-child{
      margin-top: 0;
    }
    &:last-child{
      margin-bottom: 0;
    }
  }
  @media only screen and (min-width: 1024px) {
    min-width: min(50vw, 300px);
  }
}

.rich-text--full-width .rich-text__blocks {
  /* 4rem (1.5rem + 2.5rem) margin on left & right */
 width: 100%;
 &>*:not(.button) {
   width: 90%;
 }
 &>.size--full {
   width: 100%;
 }

 & > *:not(.size--full) {
   margin-left: auto;
   margin-right: auto;
   max-width: calc(100% - 5rem);
    &.size--large {
    width: 92%;
    max-width: 1200px;
  }

  &.size--medium {
    max-width: 78rem;
    width: 90%;
  }
  }
}

.rich-text__columns {
  padding-left: 2rem;
  padding-right: 2rem;
  &:not(.rich-text__columned--sticky) {
    overflow: hidden;
  }

  @media only screen and (min-width: 750px) {
    box-sizing: border-box;
    padding: 0 2rem;
    justify-content: center;
    display: grid;
    gap: 0 3rem;
    grid-template-columns: repeat(2, 1fr);

  .rich-text__blocks {
    width: 100%;
    margin: auto;

    :has(.size--large), :has(.size--full-width){
      flex: 1 1 400px;
      max-width: 700px;
    }
    & > .html-wrap{
      width: clamp(30vw, 380px, 70vmin);
      max-width:  100%;
      &.size--large {
        width: clamp(40vw, 500px, 80vmin);
      }
      &.size--full {
        width: clamp(50vw, 700px, 90vw);
      }
    }
  }
  }
}
.marquee-inner > .rich-text__media,
.rich-text__blocks > .rich-text__media {

  width: var(--media-width, 65%);
  max-width: 350px;
  margin-left: auto;
  margin-right: auto;
  &.size--medium{
    width: var(--media-width, 65%);
    max-width: 350px;
  }
  &.size--large{
    width: var(--media-width, 75%);
    max-width: 500px;
  }
  &.size--small{
    width: var(--media-width, 50%);
    max-width: 300px;
  }

  &.size--full {
    width: var(--media-width, 100%);
    max-width: 1000px;
  }
}

.rich-text__columned--left {
  @media only screen and (min-width: 750px) {
    grid-template-columns: 66% minmax(0, 1fr);
  }
}
.rich-text__columned--right {
  @media only screen and (min-width: 750px) {
    grid-template-columns: minmax(0, 1fr) 66%;
  }
}

.rich-text__columned--top {
  align-items: start;
  .rich-text__blocks {
    margin-top: 0;
  }
}
.rich-text__columned--center {
  align-items: center;
}
.rich-text__columned--bottom {
  align-items: end;
  .rich-text__blocks {
    margin-bottom: 0;
  }
}
.rich-text__columned--sticky {
    align-items: start;
  @media only screen and (min-width: 750px) {
    .rich-text__blocks {
      margin-top: 0;
      position: sticky;
      top: var(--header-bottom);
    }
  }
}

.rich-text__blocks > *:not(.heading) {
  margin-top: 0;
  margin-bottom: 0;
}

.rich-text__blocks > *:not(.heading) + *:not(.label + .heading) {
  margin-top: 1rem;
  @media only screen and (min-width: 750px) {
    margin-top: 2rem;
  }
}

.rich-text__blocks .heading + a.button {
  margin-top: 0.5rem;
}

.rich-text__contact-link {
  margin: 1em auto;

  .button-wrap {
    margin: 0.3rem var(--alignment-margin-right) 0.3rem var(--alignment-margin-left);
  }
}
