input {
  -webkit-appearance: none;
}
.image-with-text {
  display: flex;
}

.container {
    max-width: 1400px;
    margin: 0 auto;
}

h2.body3.image-with-text__content.rte {
    font-size: 72px !important;
    line-height: 85px;
}
  .image-with-text__img-wrap,
  .image-with-text__info-wrap {
      flex: 1 1 50%;
      min-width: 0;
      /* prevents overflow when content gets tight */
  }
@media (min-width: 960px) {
  .image-with-text--align-top,
  .image-with-text--align-top .image-with-text__info-wrap {
    align-items: flex-start;
  }
  .image-with-text--align-middle,
  .image-with-text--align-middle .image-with-text__info-wrap {
    align-items: center;
  }
  .image-with-text--align-bottom,
  .image-with-text--align-bottom .image-with-text__info-wrap {
    align-items: flex-end;
  }
  .image-with-text--stretch {
    align-items: stretch;
  }
  .image-with-text--overlap .image-with-text__info-wrap {
    padding: 50px 0;
  }
  .image-with-text--overlap .image-with-text__info {
    position: relative;
  }
  .image-with-text--overlap .image-with-text__info--overlap-pc-right {
    width: calc(100% + 36px);
  }
  .image-with-text--overlap .image-with-text__info--overlap-pc-left {
    left: -36px;
    width: calc(100% + 36px);
  }
  .image-with-text.pos-right {
    flex-direction: row-reverse;
  }
}
.image-with-text.img-w-small .image-with-text__info-wrap {
  flex: 2;
}
.image-with-text.img-w-medium .image-with-text__info-wrap {
  flex: 1;
}
.image-with-text.img-w-large .image-with-text__info-wrap {
  flex: 0.5;
}
.image-with-text__img-wrap {
  flex: 1;
  position: relative;
  z-index: 1;
}
.image-with-text__img-wrap--high {
  height: 700px;
}
.image-with-text__img-wrap--low {
  height: 350px;
}
.image-with-text__title--size-small {
  font-size: calc(var(--title-font-size) * 0.8);
}
.image-with-text__title--size-medium {
  font-size: calc(var(--title-font-size) * 1);
}
.image-with-text__title--size-large {
  font-size: calc(var(--title-font-size) * 1.2);
}
.image-with-text__sub-title--size-small {
  font-size: calc(var(--body-font-size) * 1 * 0.8);
}
.image-with-text__sub-title--size-medium {
  font-size: calc(var(--body-font-size) * 1);
}
.image-with-text__sub-title--size-large {
  font-size: calc(var(--body-font-size) * 1 * 1.2);
}
@media (min-width: 960px) {
  .image-with-text__sub-title--size-small {
    font-size: calc(var(--body-font-size) * 1.142857 * 0.8);
  }

  .image-with-text__sub-title--size-medium {
    font-size: calc(var(--body-font-size) * 1.142857);
  }

  .image-with-text__sub-title--size-large {
    font-size: calc(var(--body-font-size) * 1.142857 * 1.2);
  }
  .image-with-text--stretch .image-with-text__img-wrap--high,
  .image-with-text--stretch .image-with-text__img-wrap--low {
    height: auto;
  }
}
.image-with-text__img-wrap--auto {
  height: auto;
  object-fit: contain;
}
.image-with-text .color-scheme-none {
  background-color: rgba(var(--color-page-background));
  color: rgba(var(--color-text));
}
.image-with-text .color-scheme-none .image-with-text__content {
  color: rgba(var(--color-text));
}
.image-with-text__info-wrap {
  display: flex;
  position: relative;
  width: 100%;
  z-index: 2;
}
.image-with-text__info-reference {
  width: 100%;
}

.image-with-text__info--align-left {
  text-align: left;
}
.image-with-text__info--align-center {
  text-align: center;
}
.image-with-text__info--align-right {
  text-align: right;
}
.image-with-text__sub-title {
  word-wrap: break-word;
  font-weight: 400;
  margin-top: 20px;
  text-transform: uppercase;
}
.image-with-text__content {
  margin-top: 20px;
}
.image-with-text__title {
  margin-bottom: 20px !important;
  margin-top: 20px;
  overflow: hidden;
}
.image-with-text__btn {
  margin-top: 20px;
}
.image-with-text__img {
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
}
.image-with-text__empty-img {
  background-color: rgb(var(--color-image-background));
  height: 100%;
  width: 100%;
}
.image-with-text__info > :first-child {
  margin-top: 0;
}
@media (max-width: 959px) {
  .image-with-text {
    flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: stretch;
  }
  /* Let both sides shrink proportionally */
  .image-with-text__img-wrap,
  .image-with-text__info-wrap {
      flex: 1 1 50%;
      min-width: 0;
      /* prevents overflow when content gets tight */
  }

  /* Remove the forced mobile heights so the image can scale naturally */
  .image-with-text__img-wrap--high,
  .image-with-text__img-wrap--low {
      height: auto !important;
  }

  /* Make the image scale with width (no fixed height) */
  .image-with-text__img {
      width: 100%;
      height: auto !important;
      object-fit: cover;
  }

  /* If you use overlap mode on mobile, neutralize the negative margin */
  .image-with-text--overlap .image-with-text__info-wrap {
      margin-top: 0 !important;
      padding-left: 0;
      padding-right: 0;
  }

  /* Tighten paddings/typography a bit so text fits without forcing wrap */
  .image-with-text__info {
      padding: 16px;
  }

  .image-with-text__title {
      font-size: clamp(18px, 4.5vw, 28px);
      line-height: 1.2;
  }

  .image-with-text__content,
  .image-with-text__sub-title {
      font-size: clamp(14px, 3.6vw, 16px);
      line-height: 1.5;
  }
  .image-with-text--overlap .image-with-text__info-wrap {
    margin-top: -36px;
    padding-left: 14px;
    padding-right: 14px;
    position: relative;
    z-index: 1;
  }
  .image-with-text.pos-right {
    flex-direction: column;
  }
  .image-with-text .color-scheme-none {
    background-color: rgba(var(--color-page-background));
  }
  .image-with-text__info {
    box-sizing: border-box;
    left: 0;
    padding: 30px 20px;
    right: 0;
  }
  .image-with-text__info--m-align-left {
    text-align: left;
  }
  .image-with-text__info--m-align-center {
    text-align: center;
  }
  .image-with-text__info--m-align-right {
    text-align: right;
  }
  .image-with-text__img-wrap {
    flex-basis: auto;
  }
  .image-with-text__img-wrap--high {
    height: 400px;
  }
  .image-with-text__img-wrap--low {
    height: 200px;
  }
  .image-with-text__content,
  .image-with-text__sub-title {
    margin-top: 15px;
  }
  .image-with-text__title {
    margin-top: 15px;
    overflow: hidden;
  }
  .image-with-text__btn {
    margin-top: 15px;
  }
  .image-with-text__img {
    height: 100%;
    object-fit: cover;
    object-position: center;
    width: 100%;
  }
  .image-with-text__empty-img {
    background-color: rgb(var(--color-image-background));
    height: 100%;
    width: 100%;
  }
}
.image-with-text__image-box {
  height: 100%;
}
.image-with-text__image-box .empty-image-class {
  width: 100%;
  background-color: rgb(var(--color-image-background));
  height: 100%;
  display: block;
}
.image-with-text__image-box .image-with-text__image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
/* The ipad end responds to the mobile end in vertical screen */
/* @custom-media --tablet (max-width: 959px); */
/* @custom-media --gt-mobile (min-width: 751px); */
/* detectingScreen need to consider the configuration of the tablet */




/* --- Fix: hard 50/50 split and no bleed --- */
.image-with-text>.image-with-text__img-wrap,
.image-with-text>.image-with-text__info-wrap {
    flex: 0 0 50% !important;
    /* fixed half */
    max-width: 50% !important;
    min-width: 0;
    /* allow text to shrink without exploding */
    overflow: hidden;
    /* no cross-bleed */
}

/* Neutralize size modifiers so they don't change widths */
.image-with-text.img-w-small .image-with-text__info-wrap,
.image-with-text.img-w-medium .image-with-text__info-wrap,
.image-with-text.img-w-large .image-with-text__info-wrap {
    flex: 0 0 50% !important;
}

/* Kill the generic "flex:1" so the image can't expand */
.image-with-text__img-wrap {
    flex: 0 0 50% !important;
    max-width: 50% !important;
}

/* Prevent overlap variant from widening the text box on desktop */
.image-with-text--overlap .image-with-text__info--overlap-pc-right,
.image-with-text--overlap .image-with-text__info--overlap-pc-left {
    position: static !important;
    left: auto !important;
    width: 100% !important;
    /* keep your padding if you like, but width should not exceed 50% column */
}

/* Let the image scale within its half without forcing height */
.image-with-text__img-wrap--high,
.image-with-text__img-wrap--low,
.image-with-text__img-wrap--auto {
    height: auto !important;
}

.image-with-text__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Make sure text doesn't collapse to a few pixels (causing vertical letters) */
.image-with-text__info {
    width: 100%;
}

.image-with-text__title,
.image-with-text__content,
.image-with-text__sub-title {
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    /* or break-word */
}

/* Keep the 50/50 split on mobile too */
@media (max-width: 959px) {

    .image-with-text>.image-with-text__img-wrap,
    .image-with-text>.image-with-text__info-wrap {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
          .image-with-text {
              flex-direction: row !important;
          }
    
          .image-with-text.pos-right {
              flex-direction: row-reverse !important;
          }
}

.image-with-text__img-wrap,
.image-with-text__image-box {
    height: auto !important;
    /* no fixed wrapper height */
}

.image-with-text__img {
    width: 100%;
    height: auto !important;
    /* let it scale naturally */
    max-height: clamp(220px, 40vw, 560px);
    /* shrink with viewport width */
    object-fit: cover;
    /* keep nice crop */
    display: block;
}

/* Optional: slightly shorter on narrow screens */
@media (max-width: 959px) {
    .image-with-text__img {
        max-height: clamp(160px, 48vw, 420px);
    }
}



@media (min-width: 992px) and (max-width: 1199px) {
    div.body3.image-with-text__content.rte h2 span strong span {
        font-size: 44px;
        line-height: 50px;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
   
    div.body3.image-with-text__content.rte h2 span  span {
        font-size: 38px;
        line-height: 50px;
    }
}

@media (max-width: 767px) {
    div.body3.image-with-text__content.rte h2 span  span {
        font-size: 34px;
        line-height: 44px;
    }
}

@media (max-width: 575px) {
div.body3.image-with-text__content.rte h2 span  span{
        font-size: 24px;
        line-height: 32px;
    }
}