@charset "UTF-8";

/* ========================================
  コンセプト
  body#concept 配下のみ
======================================== */

#concept {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 共通 blob が本文より前面に来ないように（このページのみ） */
#concept .ais-common-blob,
#concept .ais-common-blob--01.pc {
  z-index: 0;
}
#concept .ais-subpage__content {
  position: relative;
  z-index: 1;
}

@keyframes fv-loop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  #concept .fv__loop-box {
    animation: none;
  }
}

/* ========================================
  @media screen and (min-width: 768px), print
======================================== */
@media screen and (min-width: 768px), print {
  #concept {

    .has-ais-common-blob .ais-common-blob--03.pc {
      display: none !important;
    }

    /* fv
    -------------------------------------*/
    .fv {
      text-align: center;
    }
    .fv__inner {
      padding-top: 107px;
      padding-bottom: 180px;
    }
    .fv__title {
      margin-bottom: 59px;
      font-size: clamp(3rem, 2.333rem + 1.389vw, 4rem); /* 768px ~ 1920px */
      font-weight: 700;
      line-height: 1.3;
      letter-spacing: 0.1em;

      span {
        color: #f2486d;
      }
    }
    .fv__desc-wrap {
      position: relative;
      z-index: 0;
      display: flex;
      flex-direction: column;
      gap: 35px;
      width: fit-content;
      margin-inline: auto;
      margin-bottom: 80px;
    }
    .fv__desc {
      font-size: 18px;
      font-weight: 700;
      line-height: calc(38 / 18);
      letter-spacing: 0;

      span {
        font-size: 22px;
        color: #ed6c00;
      }
    }
    .fv__deco {
      position: absolute;
      right: 0;
      bottom: -80px;
      transform: translateX(110%);
      width: 222px;
      height: auto;
      z-index: 0;
      pointer-events: none;
    }
    .fv__deco img {
      display: block;
      width: 100%;
      height: auto;
    }
    .fv__loop {
      position: relative;
      z-index: 1;
      width: 100%;
    }
    .fv__loop-clip {
      overflow: hidden;
      width: 100%;
    }
    .fv__loop-box {
      display: flex;
      width: max-content;
      animation: fv-loop 40s linear infinite;
    }
    .fv__loop-box img {
      display: block;
      flex-shrink: 0;
      width: auto;
      height: clamp(260px, 166.464px + 12.163vw, 400px); /* 768px ~ 1920px */
      max-width: none;
      margin-right: 40px;
    }


    /* promise
    -------------------------------------*/
    .promise {
      position: relative;
    }
    .promise__bg-wave {
      position: relative;
      z-index: 1;
      line-height: 0;
    }
    .promise__bg-wave img {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__body {
      background: #FFE6B7;
      margin-top: -1px; /* 波との隙間防止 */
    }
    .promise__head {
      position: relative;
      display: flex;
      gap: clamp(24px, -6.667px + 3.993vw, 70px); /* 768px ~ 1920px */
      
      width: min(95%, 1522px);
      margin-inline: auto;
      transform: translateX(clamp(0px, -27.333px + 3.559vw, 41px));
      margin-top: clamp(-45px, 30.065px + -3.91vw, 0px); /* 768px ~ 1920px */
      margin-bottom: 120px;
      z-index: 1;
    }
    .promise__text-area {
      position: relative;
      z-index: 0; /* blob の z-index:-1 をこの中に閉じ込める */
      width: 42%;
      flex-shrink: 0;
      margin-top: clamp(72px, -54.274px + 16.421vw, 261px); /* 768px ~ 1920px */
    }
    .promise__ttl-en {
      margin-bottom: 18px;
      font-size: clamp(50px, 29.957px + 2.606vw, 80px); /* 768px ~ 1920px */
      font-weight: 500;
      line-height: 1;
      letter-spacing: 0.04em;
      color: #ED6C00;
    }
    .promise__ttl {
      font-size: clamp(20px, 6.638px + 1.738vw, 40px); /* 768px ~ 1920px */
      font-weight: 700;
      letter-spacing: 0.1em;
      margin-bottom: 23px;
    }
    .promise__sub {
      font-size: clamp(14px, 11.328px + 0.348vw, 18px); /* 768px ~ 1920px */
      font-weight: 500;
      line-height: calc(32 / 18);
      letter-spacing: 0.1em;
    }
    .promise__img-area {
      position: relative;
      z-index: 0; /* blob の z-index:-1 をこの中に閉じ込める */
      width: clamp(392px, 112.000px + 36.458vw, 812px); /* 768px ~ 1920px */
      flex-shrink: 0;
      line-height: 0;
    }
    .promise__img-area > img {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__fukidashi {
      position: absolute;
      top: -55px;
      left: -124px;
      z-index: 2;
      width: clamp(273px, 192.826px + 10.426vw, 393px); /* 768px ~ 1920px */
      margin: 0;
      line-height: 0;
    }
    .promise__fukidashi img {
      display: block;
      width: 100%;
      height: auto;
    }

    .promise__list {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      gap: 120px;
      padding-bottom: clamp(20px, -69.538px + 11.659vw, 117px); /* 768px ~ 1600px */
    }
    .promise__item {
      position: relative;
      z-index: 1; /* 後の item が前面（はみ出した blob が次見出しの下に回る） */
    }
    .promise__item-ttl {
      position: relative;
      z-index: 2; /* 同一 item 内の catch / blob より前面 */
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 20px;
      margin-bottom: 60px;
      font-size: 24px;
      font-weight: 700;
      line-height: calc(32 / 24);
      letter-spacing: 0.1em;
      color: #ED6C00;
    }
    .promise__item-ttl img {
      display: block;
      width: 60px;
      height: auto;
    }

    .promise__item-content {
      width: min(95%, 1523px);
      margin-inline: auto;
      display: flex;
      gap: clamp(24px, -18.462px + 5.529vw, 70px); /* 768px ~ 1600px */
    }
    .promise__item:nth-child(odd) .promise__item-content {
      transform: translateX(clamp(-38px, 25.388px + -3.301vw, 0px)); /* 768px ~ 1920px：端に寄りすぎ防止のため上限1920のまま */
    }
    .promise__item:nth-child(even) .promise__item-content {
      transform: translateX(clamp(0px, -25.388px + 3.301vw, 38px)); /* 768px ~ 1920px：端に寄りすぎ防止のため上限1920のまま */
    }
    .promise__item-image-area {
      position: relative;
      z-index: 0; /* blob の z-index:-1 をこの中に閉じ込める */
      width: clamp(320px, -190.462px + 66.466vw, 873px); /* 768px ~ 1600px */
    }
    .promise__item-image-area img {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__image-item {
      position: relative;
      z-index: 1;
    }

    /* image-catch */
    .promise__item:nth-child(1) .promise__image-catch {
      position: absolute;
      z-index: 2;
      top: clamp(-76px, 0.923px + -4.808vw, -36px); /* 768px ~ 1600px */
      left: clamp(26px, -23.846px + 6.490vw, 80px); /* 768px ~ 1600px */
      width: clamp(86px, 8.462px + 10.096vw, 170px); /* 768px ~ 1600px */
      height: auto;
    }
    .promise__item:nth-child(2) .promise__image-catch {
      position: absolute;
      z-index: 2;
      top: clamp(-60px, -2.308px + -3.606vw, -30px); /* 768px ~ 1600px */
      right: clamp(30px, -16.154px + 6.010vw, 80px); /* 768px ~ 1600px */
      width: clamp(106px, -11.231px + 15.264vw, 233px); /* 768px ~ 1600px */
      height: auto;
    }
    .promise__item:nth-child(3) .promise__image-catch {
      position: absolute;
      z-index: 2;
      top: clamp(-76px, 0.923px + -4.808vw, -36px); /* 768px ~ 1600px */
      left: clamp(26px, -23.846px + 6.490vw, 80px); /* 768px ~ 1600px */
      width: clamp(88px, 11.385px + 9.976vw, 171px); /* 768px ~ 1600px */
      height: auto;
    }


    .promise__item-text-area {
      position: relative;
      z-index: 1; /* 画像エリアからはみ出した blob より前面 */
      flex: 1 1 0;
      min-width: 0;
      max-width: 580px; /* 上限時: 1523 - 873(画像) - 70(gap) */
    }
    .promise__content-ttl {
      font-size: clamp(16px, 8.615px + 0.962vw, 24px); /* 768px ~ 1600px */
      font-weight: 700;
      line-height: calc(40 / 24);
      letter-spacing: 0.1em;
      margin-bottom: clamp(24px, 6.462px + 2.284vw, 43px); /* 768px ~ 1600px */
    }
    .promise__content-desc-wrap {
      display: flex;
      flex-direction: column;
      gap: clamp(16px, 4.923px + 1.442vw, 28px); /* 768px ~ 1600px */
    }
    .promise__content-desc {
      font-size: clamp(12px, 8.308px + 0.481vw, 16px); /* 768px ~ 1600px */
      font-weight: 400;
      line-height: calc(30 / 16);
      letter-spacing: 0;
      color: #000;
    }
    .promise__content-desc span {
      font-size: clamp(14px, 10.308px + 0.481vw, 18px); /* 768px ~ 1600px */
      font-weight: 700;
      line-height: calc(30 / 18);
      color: #ED6C00;
    }

    /* 偶数番目：画像とテキストを左右入れ替え */
    .promise__item:nth-child(even) .promise__item-content {
      flex-direction: row-reverse;
    }

    /* blob背景 */
    .promise__blob {
      position: absolute;
      z-index: -1;
      line-height: 0;
    }
    .promise__blob svg {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__blob--head-l {
      top: -250px;
      left: -420px;
      width: min(95%, 643px);
      aspect-ratio: 643 / 557;
    }
    .promise__blob--head-c {
      bottom: -120px;
      left: 40px;
      transform: translateX(-50%);
      width: min(95%, 429px);
      aspect-ratio: 429 / 381;
    }
    .promise__blob--head-r {
      top: 150px;
      right: -370px;
      width: min(95%, 802px);
      aspect-ratio: 802 / 812;
    }

    .promise__blob--item-l {
      top: 150px;
      left: -370px;
      width: min(95%, 893px);
      aspect-ratio: 893 / 839;
    }
    .promise__blob--item-c {
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: min(95%, 609px);
      aspect-ratio: 609 / 778;
    }
    
    .promise__item:nth-child(1) .promise__blob--item {
      top: 170px;
      left: 0px;
      width: min(95%, 893px);
      aspect-ratio: 893 / 839;
    }
    .promise__item:nth-child(2) .promise__blob--item {
      top: 250px;
      right: -420px;
      width: min(95%, 893px);
      aspect-ratio: 893 / 839;
    }
    .promise__item:nth-child(3) .promise__blob--item {
      top: 150px;
      left: -450px;
      width: min(95%, 683px);
      aspect-ratio: 893 / 839;
    }

    /* 下部の動く波 */
    .promise__wave {
      position: relative;
      z-index: 0;
      width: 100%;
      margin-top: clamp(-140px, 10.130px + -7.819vw, -50px); /* list の padding-bottom に食い込ませて余白を詰める */
      line-height: 0;
      overflow: hidden;
      pointer-events: none;
    }
    .promise__wave-svg {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__wave-static {
      display: none;
      width: 100%;
      height: auto;
    }
    @media (prefers-reduced-motion: reduce) {
      .promise__wave-svg--motion {
        display: none;
      }
      .promise__wave-static {
        display: block;
      }
    }


    /* end-msg
    -------------------------------------*/
    .end-msg__inner {
      position: relative;
      isolation: isolate;
      padding-top: 112px;
      padding-bottom: clamp(130px, 43.145px + 11.295vw, 260px); /* 768px ~ 1920px */
    }
    .end-msg__blob {
      position: absolute;
      z-index: -1;
      line-height: 0;
      pointer-events: none;
    }
    .end-msg__blob svg {
      display: block;
      width: 100%;
      height: auto;
    }
    .end-msg__blob--l {
      top: 80px;
      left: -40px;
      width: min(95%, 536px);
      aspect-ratio: 536 / 839;
    }
    .end-msg__blob--r {
      top: 450px;
      right: -20px;
      width: min(95%, 496px);
      aspect-ratio: 496 / 685;
    }
    .end-msg__lead {
      margin-bottom: 35px;
      font-size: clamp(20px, 11.983px + 1.043vw, 32px); /* 768px ~ 1920px */
      font-weight: 700;
      line-height: calc(50 / 32);
      letter-spacing: 0.1em;
      text-align: center;
    }
    .end-msg__ttl {
      margin-bottom: 64px;
      font-size: clamp(20px, 11.983px + 1.043vw, 32px); /* 768px ~ 1920px */
      font-weight: 700;
      letter-spacing: 0.13em;
      text-align: center;
    }
    .end-msg__ttl span {
      font-size: clamp(32px, 19.974px + 1.564vw, 50px); /* 768px ~ 1920px */
      line-height: calc(72 / 50);
      color: #F2486D;
    }
    .end-msg__desc-wrap {
      position: relative;
      display: flex;
      flex-direction: column;
      gap: 42px;
      width: fit-content;
      margin-inline: auto;
      margin-bottom: 80px;
      text-align: center;
    }
    .end-msg__desc {
      font-size: clamp(14px, 11.328px + 0.348vw, 18px); /* 768px ~ 1920px */
      font-weight: 500;
      line-height: calc(42 / 18);
      letter-spacing: 0;
    }
    .end-msg__person {
      position: absolute;
      height: auto;
    }
    .end-msg__person--l {
      top: 44px;
      left: clamp(-103px, -2.913px + -5.213vw, -43px); /* 768px ~ 1920px */
      width: clamp(80px, 39.245px + 5.3vw, 141px); /* 768px ~ 1920px */
      aspect-ratio: 141 / 281;
      transform: translateX(-100%);
    }
    .end-msg__person--r {
      top: 79px;
      right: clamp(-75px, 8.406px + -4.344vw, -25px); /* 768px ~ 1920px */
      width: clamp(74px, 35.249px + 5.039vw, 132px); /* 768px ~ 1920px */
      aspect-ratio: 132 / 294;
      transform: translateX(100%);
    }
    .end-msg__person img {
      display: block;
      width: 100%;
      height: auto;
    }
    .end-msg__btn {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 10px;
      margin-bottom: 86px;
    }
    .end-msg__btn > a {
      display: block;
      width: fit-content;
      margin-inline: auto;
      padding-block: clamp(25px, 18.319px + 0.869vw, 35px); /* 768px ~ 1920px */
      padding-inline: clamp(92px, 51.913px + 5.213vw, 152px); /* 768px ~ 1920px */
      font-size: clamp(20px, 11.983px + 1.043vw, 32px); /* 768px ~ 1920px */
      font-weight: 700;
      line-height: calc(40 / 32);
      letter-spacing: 0.02em;
      text-align: center;
      color: #fff;
      background-color: #ED6C00;
      border-radius: 10px;
    }
    .end-msg__btn > a > img {
      display: inline-block;
      width: clamp(25px, 14.978px + 1.303vw, 40px); /* 768px ~ 1920px */
      height: auto;
    }

    .end-msg__links {
      display: flex;
      justify-content: center;
      align-items: flex-end;
      gap: clamp(20px, 6.638px + 1.738vw, 40px); /*768px ~ 1920px */
      padding-inline: 40px;
    }
    .end-msg__card {
      width: 520px;
      height: auto;
    }
    .end-msg__card img {
      display: block;
      width: 100%;
      height: auto;
    }


  }
} /* end min-width: 768px */




/* ========================================
  @media screen and (min-width: 768px) and (max-width: 1919px)
  blob位置・サイズを 1920px 基準の vw に変換
======================================== */
@media screen and (min-width: 768px) and (max-width: 1919px) {
  #concept {
    .promise__blob--head-l {
      top: -13.021vw; /* -250 / 1920 */
      left: -21.875vw; /* -420 / 1920 */
      width: 33.49vw; /* 643 / 1920 */
    }
    .promise__blob--head-c {
      bottom: -6.25vw; /* -120 / 1920 */
      left: 2.083vw; /* 40 / 1920 */
      width: 22.344vw; /* 429 / 1920 */
    }
    .promise__blob--head-r {
      top: 7.813vw; /* 150 / 1920 */
      right: -19.271vw; /* -370 / 1920 */
      width: 41.771vw; /* 802 / 1920 */
    }

    .promise__blob--item-l {
      top: 7.813vw; /* 150 / 1920 */
      left: -19.271vw; /* -370 / 1920 */
      width: 46.51vw; /* 893 / 1920 */
    }
    .promise__blob--item-c {
      width: 31.719vw; /* 609 / 1920 */
    }

    .promise__item:nth-child(1) .promise__blob--item {
      top: 8.854vw; /* 170 / 1920 */
      left: 0;
      width: 46.51vw; /* 893 / 1920 */
    }
    .promise__item:nth-child(2) .promise__blob--item {
      top: 13.021vw; /* 250 / 1920 */
      right: -21.875vw; /* -420 / 1920 */
      width: 46.51vw; /* 893 / 1920 */
    }
    .promise__item:nth-child(3) .promise__blob--item {
      top: 7.813vw; /* 150 / 1920 */
      left: -23.438vw; /* -450 / 1920 */
      width: 35.573vw; /* 683 / 1920 */
    }

    .end-msg__blob--l {
      top: 4.167vw; /* 80 / 1920 */
      left: -2.083vw; /* -40 / 1920 */
      width: 27.917vw; /* 536 / 1920 */
    }
    .end-msg__blob--r {
      top: 23.438vw; /* 450 / 1920 */
      right: -1.042vw; /* -20 / 1920 */
      width: 25.833vw; /* 496 / 1920 */
    }
  }
} /* end 768–1919 */


/* ========================================
  @media screen and (min-width: 768px) and (max-width: 1280px)
======================================== */
@media screen and (min-width: 768px) and (max-width: 1280px) {
  #concept {
    .fv__desc-wrap {
      margin-bottom: 260px;
    }
    .fv__deco {
      width: clamp(182px, 83.093px + 12.862vw, 222px); /* 768px ~ 1080px */
      bottom: -260px;
      transform: translateX(clamp(-20px, -316.720px + 38.585vw, 100px)); /*768px ~ 1080px */
    }
  }
} /* end 768–1280 */





/* ========================================
  @media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
  #concept {

    /* fv
    -------------------------------------*/
    .fv {
      text-align: center;
    }
    .fv__inner {
      padding-top: 4.3vw;
      padding-bottom: 19.3vw;
    }
    .fv__title {
      margin-bottom: 4.8vw;
      font-size: 6.3vw;
      font-weight: 700;
      line-height: calc(48 / 26);
      letter-spacing: 0.1em;

      span {
        color: #f2486d;
      }
    }
    .fv__desc-wrap {
      position: relative;
      z-index: 0;
      display: flex;
      flex-direction: column;
      gap: 7.5vw;
      margin-bottom: 22.9vw;
      padding-inline: 8.9vw;
      text-align: left;
    }
    .fv__desc {
      font-size: 3.9vw;
      font-weight: 700;
      line-height: calc(32 / 16);
      letter-spacing: 0;

      span {
        font-size: 4.3vw;
        color: #ed6c00;
      }
    }
    .fv__deco {
      position: absolute;
      right: 21.3vw;
      bottom: -22.9vw; /* desc-wrap margin-bottom と揃え、ループ上端基準 */
      width: 28.8vw;
      height: auto;
      z-index: 0;
      pointer-events: none;
    }
    .fv__deco img {
      display: block;
      width: 100%;
      height: auto;
    }
    .fv__loop {
      position: relative;
      z-index: 1;
      width: 100%;
    }
    .fv__loop-clip {
      overflow: hidden;
      width: 100%;
    }
    .fv__loop-box {
      display: flex;
      width: max-content;
      animation: fv-loop 40s linear infinite;
    }
    .fv__loop-box img {
      display: block;
      flex-shrink: 0;
      width: auto;
      height: 45.9vw;
      max-width: none;
      margin-right: 5.333vw; /* 40 / 750 */
    }


    /* promise
    -------------------------------------*/
    .promise {
      position: relative;
    }
    .promise__bg-wave {
      position: relative;
      z-index: 1;
      line-height: 0;
    }
    .promise__bg-wave img {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__body {
      background: #FFE6B7;
      margin-top: -0.2vw; /* 波との隙間防止 */
    }
    .promise__head {
      position: relative;
      margin-bottom: 14.5vw;
      padding-top: 2.2vw;
      padding-inline: 8.9vw;
      display: flex;
      flex-direction: column;
      gap: 33.3vw;
      z-index: 1;
    }
    .promise__text-area {
      position: relative;
      z-index: 0;
    }
    .promise__ttl-en {
      margin-bottom: 1.9vw;
      font-size: 10.1vw;
      font-weight: 500;
      line-height: 1;
      letter-spacing: 0.04em;
      color: #ED6C00;
    }
    .promise__ttl {
      font-size: 5.3vw;
      font-weight: 700;
      letter-spacing: 0.1em;
      margin-bottom: 6.5vw;
    }
    .promise__sub {
      font-size: 3.4vw;
      font-weight: 500;
      line-height: calc(24 / 14);
      letter-spacing: 0.1em;
    }
    .promise__img-area {
      position: relative;
      z-index: 0; /* blob の z-index:-1 をこの中に閉じ込める */
    }
    .promise__img-area > img {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__fukidashi {
      position: absolute;
      top: -28.5vw;
      right: 0px;
      z-index: 2;
      width: 63.3vw;
      margin: 0;
      line-height: 0;
    }
    .promise__fukidashi img {
      display: block;
      width: 100%;
      height: auto;
    }

    .promise__list {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      gap: 14.5vw;
      padding-bottom: 14.5vw;
    }
    .promise__item {
      position: relative;
      z-index: 1; /* 後の item が前面（はみ出した blob が次見出しの下に回る） */
    }
    .promise__item-ttl {
      position: relative;
      z-index: 2; /* 同一 item 内の catch / blob より前面 */
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 3.6vw;
      margin-bottom: 7.2vw;
      font-size: 4.8vw;
      font-weight: 700;
      line-height: calc(32 / 20);
      letter-spacing: 0.1em;
      color: #ED6C00;
    }
    .promise__item-ttl img {
      display: block;
      width: 14.5vw;
      height: auto;
    }

    .promise__item-content {
      display: flex;
      flex-direction: column;
      gap: 31.2vw;
    }

    .promise__item-image-area {
      position: relative;
      z-index: 0; /* blob の z-index:-1 をこの中に閉じ込める */
    }
    .promise__item-image-area img {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__image-item {
      position: relative;
      z-index: 1;
    }

    /* image-catch */
    .promise__item .promise__image-catch {
      left: 8.9vw;
      height: auto;
      z-index: 2;
    }
    .promise__item:nth-child(1) .promise__image-catch {
      position: absolute;
      bottom: -24.2vw;
      width: 60.9vw;
      aspect-ratio: 251.59 / 113.59;
    }
    .promise__item:nth-child(2) .promise__image-catch {
      position: absolute;
      bottom: -24.2vw; 
      width: 90.1vw;
    }
    .promise__item:nth-child(3) .promise__image-catch {
      position: absolute;
      bottom: -24.2vw;
      width: 66.7vw;
    }

    .promise__item-text-area {
      position: relative;
      z-index: 1; /* 画像エリアからはみ出した blob より前面 */
    }
    .promise__content-ttl {
      font-size: 4.8vw;
      font-weight: 700;
      line-height: calc(34 / 20);
      letter-spacing: 0.1em;
      margin-bottom: 7.2vw;
      padding-inline: 8.9vw 5.8vw;
    }
    .promise__content-desc-wrap {
      display: flex;
      flex-direction: column;
      gap: 7vw;
    }
    .promise__content-desc {
      font-size: 3.9vw;
      font-weight: 400;
      line-height: calc(30 / 16);
      letter-spacing: 0;
      color: #000;
      padding-inline: 8.9vw;
      line-break: strict;
    }
    .promise__content-desc span {
      font-size: 4.3vw;
      font-weight: 700;
      line-height: calc(30 / 18);
      color: #ED6C00;
    }

    /* 偶数番目：画像とテキストを左右入れ替え */
    .promise__item:nth-child(even) .promise__item-content {
      flex-direction: column;
    }

    /* blob背景 */
    .promise__blob {
      position: absolute;
      z-index: -1;
      line-height: 0;
    }
    .promise__blob svg {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__blob--head-l {
      top: -60.4vw;
      left: -101.4vw;
      width: min(95%, 643px);
      aspect-ratio: 643 / 557;
    }
    .promise__blob--head-c {
      bottom: 26.6vw;
      left: 9.7vw;
      transform: translateX(-50%);
      width: min(95%, 429px);
      aspect-ratio: 429 / 381;
    }
    .promise__blob--head-r {
      top: 24.2vw;
      right: -43.5vw;
      width: min(95%, 802px);
      aspect-ratio: 802 / 812;
    }

    .promise__blob--item-l {
      top: 36.2vw;
      left: -89.4vw;
      width: min(95%, 893px);
      aspect-ratio: 893 / 839;
    }
    .promise__blob--item-c {
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: min(95%, 609px);
      aspect-ratio: 609 / 778;
    }
    
    .promise__item:nth-child(1) .promise__blob--item {
      top: auto;
      bottom: -34vw;
      left: auto;
      right: 5vw;
      width: min(95%, 36.5vw);
      aspect-ratio: 252 / 287;
    }
    /* 01テキスト末尾〜02見出し付近の水色blob（SP） */
    .promise__item:nth-child(1) .promise__blob--item-text {
      top: auto;
      bottom: -91vw;
      left: 0;
      width: 100vw;
      aspect-ratio: 414 / 661;
    }
    .promise__item:nth-child(2) .promise__blob--item {
      bottom: -48.3vw;
      right: -38.6vw;
      width: min(95%, 405px);
      aspect-ratio: 893 / 839;
    }
    .promise__item:nth-child(3) .promise__blob--item {
      top: 77.3vw;
      left: -41.1vw;
      width: min(95%, 335px);
      aspect-ratio: 893 / 839;
    }

    /* 下部の動く波 */
    .promise__wave {
      position: relative;
      z-index: 0;
      width: 100%;
      margin-top: -9.7vw;
      line-height: 0;
      overflow: hidden;
      pointer-events: none;
    }
    .promise__wave-svg {
      display: block;
      width: 100%;
      height: auto;
    }
    .promise__wave-static {
      display: none;
      width: 100%;
      height: auto;
    }
    @media (prefers-reduced-motion: reduce) {
      .promise__wave-svg--motion {
        display: none;
      }
      .promise__wave-static {
        display: block;
      }
    }


    /* end-msg
    -------------------------------------*/
    .end-msg__inner {
      padding-top: 9.6vw;
      padding-bottom: 34.8vw;
    }
    .end-msg__lead {
      margin-bottom: 4.3vw;
      font-size: 4.8vw;
      font-weight: 700;
      line-height: calc(34 / 20);
      letter-spacing: 0.1em;
      text-align: center;
    }
    .end-msg__ttl {
      margin-bottom: 8.9vw;
      font-size: 5.8vw;
      font-weight: 700;
      line-height: calc(46 / 24);
      letter-spacing: 0.1em;
      text-align: center;
    }
    .end-msg__ttl span {
      font-size: 7.7vw;
      line-height: calc(46 / 32);
      color: #F2486D;
    }
    .end-msg__desc-wrap {
      position: relative;
      display: flex;
      flex-direction: column;
      gap: 6.8vw;
      width: fit-content;
      margin-inline: auto;
      margin-bottom: 7.5vw;
      text-align: center;
    }
    .end-msg__desc {
      font-size: 3.9vw;
      font-weight: 500;
      line-height: calc(32 / 16);
      letter-spacing: 0;
    }

    .end-msg__person--sp {
      width: 33.8vw;
      margin-inline: auto;
      margin-bottom: 7.2vw;
      transform: translateX(-1.9vw);
    }
    .end-msg__person img {
      display: block;
      width: 100%;
      height: auto;
    }
    .end-msg__btn {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 1.4vw;
      margin-bottom: 14.5vw;
      padding-inline: 4.1vw;
    }
    .end-msg__btn > a {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 2.4vw;
      width: 100%;
      margin-inline: auto;
      padding-block: 8.5vw;
      font-size: 4.3vw;
      font-weight: 700;
      line-height: calc(40 / 18);
      letter-spacing: 0.02em;
      text-align: center;
      color: #fff;
      background-color: #ED6C00;
      border-radius: 10px;
    }
    .end-msg__btn > a > img {
      display: inline-block;
      width: 9.7vw;
      height: auto;
    }

    .end-msg__links {
      display: flex;
      flex-direction: column;
      gap: 3.6vw;
      padding-inline: 4.1vw;
    }
    .end-msg__card {
      width: 100%;
      height: auto;
    }
    .end-msg__card img {
      display: block;
      width: 100%;
      height: auto;
    }






  }
} /* end max-width: 767px */
