:root {
  --textimage-padding: min(8rem, 8vw);
  --textimage-radius: clamp(2.875rem, 6vw, 6.25rem);
  --textimage-maxheight: max(12rem, 40vw);
}

  @media (min-width: 768px) {:root {
    --textimage-maxheight: none
}
  }

.textimage {
  padding-top: 0;
  padding-bottom: 0;
}

@media (min-width: 768px) {

.textimage {
    --padding-y: 0;
    padding-top: var(--padding-y);
    padding-bottom: var(--padding-y)
}
  }

.textimage-wrapper {
  display: flex;
  flex-direction: column;
}

@media (min-width: 768px) {

.textimage-wrapper {
    flex-direction: row
}
  }

@media (min-width: 768px) {

.textimage-wrapper > div {
      flex: 1 1 0
  }
    }

@media (min-width: 768px) {

.textimage-wrapper-reverse {
    flex-direction: row-reverse
}
  }

.textimage-image {
  position: relative;
}

.textimage-image img {
    -o-object-fit: cover;
       object-fit: cover;
    width: 100%;
  }

.textimage-normal .textimage-image {
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: min(8rem, 8vw);
    margin-top: var(--textimage-padding);
  }

@media (min-width: 768px) {

.textimage-normal .textimage-image {
      margin-top: calc(min(8rem, 8vw) - 30px);
      margin-top: calc(var(--textimage-padding) - 30px);
      margin-bottom: calc(min(8rem, 8vw) - 30px);
      margin-bottom: calc(var(--textimage-padding) - 30px)
  }
    }

@media (min-width: 1280px) {

.textimage-normal .textimage-image {
      margin-top: calc(min(8rem, 8vw) - 50px);
      margin-top: calc(var(--textimage-padding) - 50px);
      margin-bottom: calc(min(8rem, 8vw) - 50px);
      margin-bottom: calc(var(--textimage-padding) - 50px)
  }
    }

@media (min-width: 768px) {

.textimage-normal .textimage-image img {
        position: absolute;
        height: 100%
    }
      }

.textimage-normal .textimage-wrapper-reverse .textimage-image {
    border-top-left-radius: clamp(2.875rem, 6vw, 6.25rem);
    border-top-left-radius: var(--textimage-radius);
    margin-left: calc(min(8rem, 8vw)/2);
    margin-left: calc(var(--textimage-padding)/2);
  }

.textimage-normal .textimage-wrapper:not(.textimage-wrapper-reverse) .textimage-image {
    border-top-right-radius: clamp(2.875rem, 6vw, 6.25rem);
    border-top-right-radius: var(--textimage-radius);
    margin-right: calc(min(8rem, 8vw)/2);
    margin-right: calc(var(--textimage-padding)/2);
  }

.textimage-extend .textimage-image {
    position: relative;
  }

.textimage-extend .textimage-image img {
      aspect-ratio: 1;
      overflow: hidden;
      border-radius: calc(clamp(2.875rem, 6vw, 6.25rem)/2);
      border-radius: calc(var(--textimage-radius)/2);
      border-bottom-left-radius: 0;
      width: calc(100% - var(--padding-x)*2);
      margin-left: auto;
      margin-right: auto;
      margin-top: -2rem;
      position: relative;
      z-index: 10;
    }

@media (min-width: 768px) {

.textimage-extend .textimage-image img {
        position: absolute;
        z-index: 10;
        top: -50px;
        bottom: -50px;
        aspect-ratio: auto;
        height: calc(100% + 100px);
        width: calc(100% - min(8rem, 8vw)/2);
        width: calc(100% - var(--textimage-padding)/2);
        margin-top: 0
    }
      }

@media (min-width: 768px) {

.textimage-extend .textimage-wrapper-reverse .textimage-image {
      margin-right: min(8rem, 8vw);
      margin-right: var(--textimage-padding)
  }
    }

@media (min-width: 768px) {

.textimage-extend .textimage-wrapper:not(.textimage-wrapper-reverse) .textimage-image {
      margin-left: min(8rem, 8vw);
      margin-left: var(--textimage-padding)
  }
    }

.textimage-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  grid-gap: calc(min(8rem, 8vw)/2);
  gap: calc(min(8rem, 8vw)/2);
  grid-gap: calc(var(--textimage-padding)/2);
  gap: calc(var(--textimage-padding)/2);
}

.textimage-content-text {
  max-width: 46rem;
  padding: 2rem;
}

@media (min-width: 640px) {

.textimage-content-text {
    padding: min(8rem, 8vw) calc(min(8rem, 8vw)/2);
    padding: var(--textimage-padding) calc(var(--textimage-padding)/2)
}
  }


