@charset "UTF-8";

/* ----------------------------------------------------
 * 共通パーツ
 * ---------------------------------------------------- */
/* 改行：PC向け */
@media (width >= 769px) {
  .parts-pc-none {
    display: none;
  }
}
/* 改行：SP向け */
@media (width < 769px) {
  .parts-sp-none {
    display: none;
  }
}

/* 上に丸装飾 */
.parts-dot-decoration {
  background-image: radial-gradient(circle at center, var(--ctm-color-aa) 20%, transparent 20%);
  background-position: top right;
  background-repeat: repeat-x;
  background-size: 1em 0.2em;
  padding-top: 0.3em;
}

/* line marker */
.parts-marker-line {
  background: linear-gradient(transparent 50%, rgba(255,249,180,1.0) 50%);
  display: inline;
}

/* parts-caption */
.parts-caption {
  &[data-symbol] {
    display: inline-block;
    position: relative;
    padding: 0 0 0 1.3em;
    &::before {
      content: attr(data-symbol);
      left: 0;
      position: absolute;
    }
    &[data-symbol-len="2"] {
      padding: 0 0 0 2.6em;
    }
  }
}



/*- ---------------------------------------------------
 * header
 * ---------------------------------------------------- */
/* firstview */
/* parts-header */
/* PC向け */
@media (width >= 769px) {
  .parts-header {
    --ctm-parts-header-height: 48em;/*768px*/
    --ctm-parts-header-decolation-len: 65.438em;

    --ctm-border-width: 0.250em;

    /*--ctm-parts-header-base-font: 16px;*/
    --ctm-parts-header-base-font: 0.83vw;

    background-color: #fffdf4;
    height: var(--ctm-parts-header-height);
    padding-right: 40.938em;
    position: relative;
    font-size: var(--ctm-parts-header-base-font);

    overflow: hidden;

    /* debug */
    /*background-size: auto 769px;*/
    /*
    background-image: url(../../aalp_20250908_lp/img/kv_v4_pc.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    */

    /* reset */  
    h1 {
      font-size: var(--ctm-parts-header-base-font);
    }
    picture {
      display: inline-block;
      height: inherit;
      img {
        max-height: none;
        max-width: none;
        height: 100%;
        vertical-align: top;
      }
    }

    .item-bg {
      width: 100%;
      height: 8.438em;
      bottom: 0;
      left: 0;
      display: block;
      position: absolute;
    }
    .item-decoration {
      width: var(--ctm-parts-header-decolation-len);
      height: var(--ctm-parts-header-decolation-len);
      border-radius: 50%;
      border: 15.625em solid var(--ctm-color-aa);
      position: absolute;
      left: calc(50% + 22.125em);
      top: calc(50% - (var(--ctm-parts-header-decolation-len) / 2) - 17.563em);
    }
    .item-people {
      position: absolute;
      left: calc(50% + 14.250em);
      bottom: 0;
      height: 29.875em;
    }
    .item-txt {
      text-align: center;
      padding-top: 5.250em;
      max-inline-size: max-content;
      margin-inline: auto;
      /*
      .item-txt-l1 {
        background-color: var(--ctm-parts-header-bg-color);
        display: inline-block;
        font-weight: bold;
        line-height: 1;
        position: relative;
        > * + * {
          margin-left: 0.438em;
        }
        strong {
          display: inherit;
          padding: 0.625em;
          border-radius: 0.625em;
          background-color: var(--ctm-color-aa);
          .item-font {
            font-size: 3.750em;
            color: #fff;
            line-height: 1;
          }
        }
        span {
          display: inherit;
          font-size: 3.125em;
          color: var(--ctm-color-font);
        }
      }
      */
      .item-txt-l1-v2 {
        height: 5em/* 80px */;
      }
      .item-txt-l2 {
        line-height: 1;
        font-weight: bold;
        margin: 1.750em auto 2.500em auto;
        strong {
          display: inline-block;
          color: var(--ctm-color-aa);
          font-size: max(4.250em, var(--ctm-base-font-size-min));
        }
        span {
          display: inline-block;
          font-size: max(3.438em, var(--ctm-base-font-size-min));
        }
        .item-font-fp-block {
          font-size: var(--ctm-parts-header-base-font);
          .item-font-fp {
            font-size: var(--ctm-parts-header-base-font);
            position: relative;
            .item-font-fp-main {
              font-size: max(4.95em, var(--ctm-base-font-size-min));
            }
            .item-font-fp-sub {
              position: absolute;
              color: var(--ctm-color-font);
              left: -12.7em;
              bottom: -1.7em;
              width: 32em;
              display: inline-block;
              white-space: nowrap;
              font-size: var(--ctm-parts-header-base-font);
              .item-font-fp-sub-font {
                font-size: max(1.313em, var(--ctm-base-font-size-min));
              }
            }
          }
        }
        .item-icon {
          position: relative;
          line-height: 1;
          font-size: var(--ctm-parts-header-base-font);
          &::before,
          &::after {
            content: "";
            background-color: var(--ctm-color-font);
            width: 0.313em;
            border-radius: 0.313em;
            display: inline-block;
            position: absolute;
            bottom: -0.375em;
          }
          &:first-child {
            margin-right: 0.875em;
            &::before {
              height: 2.813em;
              transform: rotate(-36deg);
              left: -2.125em;
            }
            &::after {
              height: 4.688em;
              transform: rotate(-29deg);
              left: -1.375em;
            }
          }
          &:last-child {
            margin-left: 0.875em;
            &::before {
              height: 2.813em;
              transform: rotate(36deg);
              right: -2.125em;
            }
            &::after {
              height: 4.688em;
              transform: rotate(29deg);
              right: -1.375em;
            }
          }

        }
      }
      .item-txt-l3 {
        font-weight: bold;
        line-height: 1;
        margin: 1.875em auto 1.375em auto;
        .item-logo {
          display: block;
          height: 6.313em;
        }
      }
      .item-txt-l4 {
        font-weight: bold;
        line-height: 1;
        span {
          font-size: max(2.000em, var(--ctm-base-font-size-min));
          strong {
            color: var(--ctm-color-aa);
          }
        }
      }
    }
    .item-features {
      margin-top: 2.188em;
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      gap: 1.875em;
      .item-inner {
        border: var(--ctm-border-width) solid var(--ctm-color-font);
        border-radius: 2.500em;
        background-color: #fff;
        padding: 1.763em 0;
        position: relative;
        picture {
          display: block;
          height: 5.938em;
          width: 18.313em;
          margin-bottom: 1.125em;
        }
        span {
          font-size: max(1.750em, var(--ctm-base-font-size-min));
          line-height: 1;
        }
        &::before,
        &::after {
          content: "";
          background-color: #fff;
          width: 1.250em;
          height: 0.625em;
          display: block;
          position: absolute;
        }
        &::before {
          top: -0.313em;
          right: 2.375em;
        }
        &::after {
          bottom: -0.313em;
          left: 2.375em;
        }
      }
    }
  }
}
/* parts-header：SP向け */
@media (width < 769px) {
  /* parts-header */
  .parts-header {
    --ctm-parts-header-height: 31.063em;/*497px*/
    --ctm-parts-header-decolation-len: 10.063em;

    --ctm-border-width: 0.125em;

    /*--ctm-parts-header-base-font: 16px;*/
    --ctm-parts-header-base-font: 4.27vw;

    background-color: #fffdf4;
    height: var(--ctm-parts-header-height);
    padding-right: 0;
    position: relative;
    font-size: var(--ctm-parts-header-base-font);

    overflow: hidden;

    /* debug */
    /*background-size: auto 769px;*/
    /*
    background-image: url(../../aalp_20250908_lp/img/kv_v4_sp.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: 50% 0%;
    */

    /* reset */  
    h1 {
      font-size: var(--ctm-parts-header-base-font);
    }
    picture {
      display: inline-block;
      height: inherit;
      img {
        max-height: none;
        max-width: none;
        height: 100%;
        vertical-align: top;
      }
    }

    .item-bg {
      width: 100%;
      height: 10.688em;
      bottom: 0;
      left: 0;
      display: block;
      position: absolute;
    }
    .item-decoration {
      width: var(--ctm-parts-header-decolation-len);
      height: var(--ctm-parts-header-decolation-len);
      border-radius: 50%;
      border: 1.875em solid var(--ctm-color-aa);
      position: absolute;
      left: calc(50% + 7.500em);
      top: calc(50% - (var(--ctm-parts-header-decolation-len) / 2) - 15.938em);
    }
    .item-people {
      position: absolute;
      left: calc(50% - 0.250em);
      bottom: -1.125em;
      height: 11.188em;
    }
    .item-txt {
      text-align: center;
      padding-top: 1.563em;
      max-inline-size: max-content;
      margin-inline: auto;
      /*
      .item-txt-l1 {
        > * + * {
          margin-left: 0.2em;
        }
        strong {
          padding: 0.313em;
          border-radius: 0.313em;
          margin-bottom: 0.188em;
          .item-font {
            font-size: 1.875em;
          }
        }
        span {
          font-size: 1.438em;
        }
      }
      */
      .item-txt-l1-v2 {
        height: 5.188em/* 83px */;
      }
      .item-txt-l2 {
        line-height: 1;
        font-weight: bold;
        margin: 0.700em auto 0px auto;
        position: relative;
        display: inline-block;
        strong {
          display: inline-block;
          color: var(--ctm-color-aa);
          font-size: max(2.400em, var(--ctm-base-font-size-min));
        }
        span {
          display: inline-block;
          font-size: max(1.4em, var(--ctm-base-font-size-min));
        }
        .item-font-fp-block {
          font-size: var(--ctm-parts-header-base-font);
          margin-top: 0.125em;
          span {
            font-size: max(2.063em, var(--ctm-base-font-size-min));
          }
          .item-font-fp {
            font-size: var(--ctm-parts-header-base-font);
            position: relative;
            .item-font-fp-main {
              font-size: max(2.9em, var(--ctm-base-font-size-min));
            }
            .item-font-fp-sub {
              position: absolute;
              color: var(--ctm-color-font);
              left: 0em;
              bottom: -0.7em;
              width: auto;
              display: inline-block;
              white-space: nowrap;
              font-size: var(--ctm-parts-header-base-font);
              .item-font-fp-sub-font {
                font-size: max(0.563em, var(--ctm-base-font-size-min));
              }
            }
          }
        }
        .item-icon {
          position: absolute;
          line-height: 1;
          bottom: 0.313em;
          font-size: var(--ctm-parts-header-base-font);
          &::before,
          &::after {
            content: "";
            background-color: var(--ctm-color-font);
            width: 0.188em;
            border-radius: 0.313em;
            display: inline-block;
            position: absolute;
            bottom: -0.375em;
          }
          &:first-child {
            margin-right: 0px;
            left: 0;
            &::before {
              height: 2.625em;
              transform: rotate(-35deg);
              left: -1.500em;
            }
            &::after {
              height: 4.375em;
              transform: rotate(-28deg);
              left: -1.188em;
            }
          }
          &:last-child {
            margin-left: 0px;
            right: 0;
            &::before {
              height: 2.625em;
              transform: rotate(35deg);
              right: -1.500em;
            }
            &::after {
              height: 4.375em;
              transform: rotate(28deg);
              right: -1.188em;
            }
          }

        }
      }
      .item-txt-l3 {
        font-weight: bold;
        line-height: 1;
        margin: 0.3em auto 0 auto;
        .item-logo {
          display: block;
          height: 6.875em;
        }
      }
      .item-txt-l4 {
        font-weight: bold;
        line-height: 1;
        margin-top: 0.320em;
        span {
          font-size: max(0.769em, var(--ctm-base-font-size-min));
          strong {
            color: var(--ctm-color-aa);
          }
        }
      }
    }
    .item-features {
      margin-top: 0.8em;
      padding: 0 11.875em 0 0.938em;
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      flex-direction: column;
      gap: 0.188em;
      .item-inner {
        border: var(--ctm-border-width) solid var(--ctm-color-font);
        border-radius: 2.500em;
        background-color: #fff;
        padding: 0.500em 0;
        position: relative;
        width: 100%;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        picture {
          display: block;
          height: 1.500em;
          width: 2.063em;
          margin-bottom: 0;
          margin-left: 0.625em;
        }
        span {
          font-size: max(0.844em, var(--ctm-base-font-size-min));
          line-height: 1;
          margin-left: 0.625em;
        }
        &::before,
        &::after {
          display: none;
        }
      }
    }
  }

}



/*- ---------------------------------------------------
 * footer
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-footer {
    font-size: 0.83vw;
    .item-info {
      background-color: #f1f1f1;
      padding: 3.125em/* 50px */ 0;
      .parts-inner {
        display: flex;
        align-items: start;
        justify-content: space-between;
        .item-linklist {
          display: flex;
          gap: 1.25em/* 20px */;
          .item-linklist-inner {
            display: flex;
            gap: 1.25em/* 20px */;
            &::after {
              content: "-";
              font-size: clamp(var(--ctm-base-font-size-min), 1.125em, 18.0px);
            }
            &:last-child::after {
              display: none;
            }
            .item-linklist-inner-link {
              position: relative;
              color: inherit;
              &::before {
                content: "";
                display: block;
                position: absolute;
                height: 140%;
                width: 100%;
                top: calc(-0% - 40% / 2);
              }
              .item-font {
                font-size: clamp(var(--ctm-base-font-size-min), 1.125em, 18.0px);
              }
            }
          }
        }
        .item-privacymark {
          a {
            display: flex;
            align-items: center;
            justify-content: stretch;
            gap: 1.25em/* 20px */;
            img {
              height: 5em/* 80px */;
            }
            .item-font {
              font-size: clamp(var(--ctm-base-font-size-min), 0.875em, 14.0px);
            }
          }
        }
      }
    }
    .item-copyright {
      background-color: var(--ctm-color-font);
      color: #fff;
      .parts-inner {
        padding: 1.875em 1.875em 6.25em 1.875em;/*30px 30px 100px 30px*/
        max-inline-size: max-content;
        margin-inline: auto;
        display: flex;
        flex-direction: column;
        text-align: center;
        gap: 5px;
        [class*="item-txt-"] {
          font-size: clamp(var(--ctm-base-font-size-min), 0.875em, 14.0px);
          display: inline-block;
        }
      }
    }
  }
}
/* SP向け */
@media (width < 769px) {
  .parts-footer {
    .item-info {
      background-color: #f1f1f1;
      padding: 25px;
      .parts-inner {
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: stretch;
        flex-direction: column;
        gap: 15px;
        .item-linklist {
          display: flex;
          gap: 10px;
          .item-linklist-inner {
            display: flex;
            gap: 10px;
            &::after {
              content: "-";
              font-size: 15px;
            }
            &:last-child::after {
              display: none;
            }
            .item-linklist-inner-link {
              position: relative;
              &::before {
                content: "";
                display: block;
                position: absolute;
                height: 140%;
                width: 100%;
                top: calc(-0% - 40% / 2);
              }
              .item-font {
                font-size: 15px;
              }
            }
          }
        }
        .item-privacymark {
          a {
            display: flex;
            align-items: center;
            justify-content: stretch;
            gap: 20px;
            img {
              height: 80px;
            }
            .item-font {
              font-size: 12px;
            }
          }
        }
      }
    }
    .item-copyright {
      background-color: var(--ctm-color-font);
      color: #fff;
      .parts-inner {
        padding: 20px 10px 100px 10px;
        max-inline-size: max-content;
        margin-inline: auto;
        display: flex;
        flex-direction: column;
        text-align: center;
        gap: 5px;
        [class*="item-txt-"] {
          font-size: 12px;
          display: inline-block;
        }
      }
    }
  }
}



/*- ---------------------------------------------------
 * parts-section-intro ※v2
 * ---------------------------------------------------- */
/* parts-section-intro：PC向け */
@media (width >= 769px) {
/*@media (width >= 1500px) {*/
  .parts-section-intro {
    --ctm-content-max-width: var(--ctm-content-max-width-pc);
    /* px ver */
    /*font-size: var(--ctm-base-font-size);*/
    /* デザイン通り ver */
    font-size: 0.83vw;
    /* 余白を埋めた ver */
    /*font-size: 1.03vw;*/
    background-color: #f1f1f1;
    text-align: center;
    position: relative;
    padding-top: 5.625em/* 90px */;
    overflow: hidden;

    .item-title {
      --ctm-parts-section-intro-icon-width: 5.625em/* 90px */;
      --ctm-parts-section-intro-icon-height: 4.688em/* 75px */;
      position: relative;
      display: inline-block;
      font-size: inherit;
      span {
        font-weight: bold;
        font-size: clamp(var(--ctm-base-font-size-min), 2.5em, 40.0px);
        &.parts-dot-decoration {
          font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
          color: var(--ctm-color-aa);
        }
      }
      &::after {
        content: "";
        display: block;
        position: absolute;
        right: calc(-0.625em/* -10px */ - var(--ctm-parts-section-intro-icon-width));
        bottom: calc(50% - var(--ctm-parts-section-intro-icon-height) / 2);
        background-image: url(../img/intro_icon_title.png);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: 50% 50%;
        width: var(--ctm-parts-section-intro-icon-width);
        height: var(--ctm-parts-section-intro-icon-height);
      }
    }
    .item-list-block {
      .item-list {
        position: absolute;
        bottom: 0;
        z-index: 2;
        width: 100%;
        height: 100%;
        .item-list-inner {
          display: flex;
          justify-content: center;
          align-items: center;
          background-color: rgba(255, 255, 255, 1);
          border-radius: 1.250em;/*20px;*/
          line-height: 1.4;
          font-weight: bold;
          min-width: 21.000em;/*336px;*/
          min-height: 10.188em;/*163px;*/
          .item-list-inner-txt {
            font-size: clamp(var(--ctm-base-font-size-min), 1.688em, 27px);
            display: inline-block;
            padding: 10px;
            strong {
              color: var(--ctm-color-aa);
            }
          }
          .item-arrow {
            background-image: url(../img/intro_icon_arrow.png);
            background-repeat: no-repeat;
            background-size: contain;
            width: 2.375em;/*38px;*/
            height: 4.063em;/*65px;*/
            display: block;
            position: absolute;
          }
          /* 上段配置 */
          &:nth-child(3),
          &:nth-child(4) {
            --ctm-parts-section-intro-margin: 0.875em;/*14px;*/
            position: absolute;
            bottom: 28em;
            .item-arrow {
              bottom: -3em;
            }
          }
          &:nth-child(3) {
            right: calc(50% + var(--ctm-parts-section-intro-margin));
          }
          &:nth-child(4) {
            left: calc(50% + var(--ctm-parts-section-intro-margin));
            .item-arrow {
              transform: rotate(27deg);
              left: 43%;
            }
          }
          /* 中段配置 */
          &:nth-child(2),
          &:nth-child(5) {
            --ctm-parts-section-intro-margin: 25.563em;/*409px;*/
            position: absolute;
            bottom: 23em;
          }
          &:nth-child(2) {
            right: calc(50% + var(--ctm-parts-section-intro-margin));
            .item-arrow {
              top: 29%;
              transform: rotate(-43deg);
              right: -1.750em;/*-28px;*/
            }
          }
          &:nth-child(5) {
            left: calc(50% + var(--ctm-parts-section-intro-margin));
            .item-arrow {
              top: 29%;
              transform: rotate(61deg);
              left: -2.000em;/*-32px;*/
            }
          }
          /* 下段配置 */
          &:nth-child(1),
          &:nth-child(6) {
            --ctm-parts-section-intro-margin: 22.875em;/*366px;*/
            position: absolute;
            bottom: 10em;
          }
          &:nth-child(1) {
            right: calc(50% + var(--ctm-parts-section-intro-margin));
            .item-arrow {
              top: 38%;
              transform: rotate(-103deg);
              right: -2.000em;/*-32px;*/
            }
          }
          &:nth-child(6) {
            left: calc(50% + var(--ctm-parts-section-intro-margin));
            .item-arrow {
              top: 33%;
              transform: rotate(131deg);
              left: -1.813em;/*-29px;*/
            }
          }
        }
      }
    }
    .item-bg {
      background-image: url(../img/intro_bg.png);
      background-size: auto 100%;
      background-repeat: no-repeat;
      background-position: 50% 100%;
      height: 24.750em;/*396px;*/
      margin-top: 16.500em;/*264px;*/
      position: relative;
      /*font-size: 1.5vw;*/
      &::before,
      &::after {
        content: "";
        display: block;
        background: rgba(255, 255, 255, 1);
        width: 70%;
        height: 7.750em;
        
        position: absolute;
        bottom: -5.175em;
      }
      &::before {
        transform: rotate(6deg);
        left: -8em;
      }
      &::after {
        transform: rotate(-6deg);
        right: -8em;
      }
      .item-people {
        height: 23.188em;/*371px;*/
        background-image: url(../img/intro_people.png);
        background-size: auto 100%;
        background-repeat: no-repeat;
        background-position: 50% 100%;
        position: absolute;
        z-index: 1;
        bottom: 0;
        left: 0;
        width: 100%;
      }
    }
  }
}
/* parts-section-intro：SP向け */
@media (width < 769px) {
/*@media (width < 1500px) {*/
  .parts-section-intro {
    --ctm-content-max-width: var(--ctm-content-max-width-sp);
    background-color: #f1f1f1;
    text-align: center;
    position: relative;
    padding-top: 30px;
    overflow: hidden;

    .parts-sp-none {
      display: none;
    }
    .item-title {
      --ctm-parts-section-intro-icon-width: 30px;
      --ctm-parts-section-intro-icon-height: 25px;
      position: relative;
      display: inline-block;
      span {
        font-weight: bold;
        font-size: 18px;
        &.parts-dot-decoration {
          font-size: 24px;
          color: var(--ctm-color-aa);
        }
      }
      &::after {
        content: "";
        display: block;
        position: absolute;
        right: calc(-5px - var(--ctm-parts-section-intro-icon-width));
        bottom: calc(50% - var(--ctm-parts-section-intro-icon-height) / 2);
        background-image: url(../img/intro_icon_title.png);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: 50% 50%;
        width: var(--ctm-parts-section-intro-icon-width);
        height: var(--ctm-parts-section-intro-icon-height);
      }
    }
    .item-list-block {
      padding: 0 var(--ctm-margin);
      .item-list {
        position: relative;
        width: auto;
        height: 100%;
        /*margin: 25px var(--ctm-margin) auto var(--ctm-margin);*/
        margin: 25px auto auto auto;
        /*max-width: var(--ctm-content-max-width);*/
        padding: 20px var(--ctm-margin);
        background-color: #fff;
        border-radius: 15px;
        .item-list-inner {
          padding-left: 25px;
          border-radius: 0;
          min-width: auto;
          min-height: auto;
          position: relative;
          text-align: left;
          &+.item-list-inner {
            margin-top: 15px;
          }
          .item-arrow {
            display: none;
          }
          &::before {
            --ctm-parts-section-intro-icon-len: 20px;
            content: "";
            display: inline-block;
            background-image: url(../img/intro_icon_check.png);
            background-size: contain;
            background-repeat: no-repeat;
            background-position: 50% 50%;
            height: var(--ctm-parts-section-intro-icon-len);
            width: var(--ctm-parts-section-intro-icon-len);
            margin: 2px 5px 0 0;
            position: absolute;
            left: 0;
            top: 0;
          }
          .item-list-inner-txt {
            padding: 0;
            font-weight: bold;
            font-size: 18px;
            strong {
              color: var(--ctm-color-aa);
            }
          }
        }
        .item-arrow {
          &::before,
          &::after {
            --ctm-parts-section-intro-icon-length: 105px;
            --ctm-parts-section-intro-icon-height: 34px;
            content: "";
            background-image: url(../img/intro_icon_arrow_sp.png);
            background-repeat: no-repeat;
            background-size: contain;
            width: 30px;
            height: var(--ctm-parts-section-intro-icon-height);
            position: absolute;
            bottom: calc(-0px - var(--ctm-parts-section-intro-icon-height) - 5px);
          }
          &::before {
            right: calc(50% + var(--ctm-parts-section-intro-icon-length));
          }
          &::after {
            left: calc(50% + var(--ctm-parts-section-intro-icon-length));
            transform: rotate(70deg);
          }

        }
      }
    }
    .item-bg {
      background: none;
      height: auto;
      margin-top: 22px;
      position: relative;
      font-size: 1.5vw;
      &::before,
      &::after {
        content: "";
        display: block;
        background: rgba(255, 255, 255, 1);
        width: 70%;
        height: 6.0em;
        position: absolute;
        bottom: -3.3em;
      }
      &::before {
        transform: rotate(9deg);
        left: -8em;
      }
      &::after {
        transform: rotate(-9deg);
        right: -8em;
      }
      .item-people {
        height: 143px;
        background-image: url(../img/intro_people_sp.png);
        background-size: auto 100%;
        background-repeat: no-repeat;
        background-position: 50% 100%;
        position: relative;
        z-index: 1;
        bottom: 0;
        left: 0;
        width: 100%;
      }
    }
  }
}


/*- ---------------------------------------------------
 * parts-section-case-intro ※v2
 * ---------------------------------------------------- */
/* parts-section-case-intro -> item-advice-title：PC向け ※イレギュラーBP */
@media (width >= 769px) {
  .parts-section-case-intro {
    --ctm-content-max-width: 1300px;
    /*font-size: var(--ctm-base-font-size);*/
    font-size: 0.83vw;
    /* item-advice-title */
    .item-advice-title {
      text-align: center;
      font-weight: bold;
      margin-bottom: -0.625em;/*-10px;*/
      line-height: 1.4;
      padding-top: 3.750em;/*60px;*/
      .item-inner {
        position: relative;
        z-index: 2;
        display: inline-block;
        padding: 0 0 2.813em;/*0 0 45px 0;*/
        .item-txt {
          .item-txt-l1 {
            font-size: clamp(var(--ctm-base-font-size-min), 3.125em, 50px);
          }
          .item-txt-l2 {
            font-size: clamp(var(--ctm-base-font-size-min), 2.500em, 40px);
          }
          .item-txt-l3 {
            font-size: clamp(var(--ctm-base-font-size-min), 3.750em, 60px);
            color: var(--ctm-color-aa);
          }
        }
        &::before,
        &::after {
          content: "";
          background-repeat: no-repeat;
          background-position: 50% 50%;
          background-size: contain;
          display: inline-block;
          position: absolute;
          bottom: -0.625em;/*-10px;*/
        }
        &::before {
          --ctm-parts-section-case-intro-advice-title-width: 12.875em;/*206px;*/
          --ctm-parts-section-case-intro-advice-title-height: 16.125em;/*258px;*/
          background-image: url(../img/case_advice_left.png);
          width: var(--ctm-parts-section-case-intro-advice-title-width);
          height: var(--ctm-parts-section-case-intro-advice-title-height);
          left: calc(-1.500em - var(--ctm-parts-section-case-intro-advice-title-width));/*-24px*/
        }
        &::after {
          --ctm-parts-section-case-intro-advice-title-width: 14.188em;/*227px;*/
          --ctm-parts-section-case-intro-advice-title-height: 17.125em;/*274px;*/
          background-image: url(../img/case_advice_right.png);
          width: var(--ctm-parts-section-case-intro-advice-title-width);
          height: var(--ctm-parts-section-case-intro-advice-title-height);
          right: calc(-1.500em - var(--ctm-parts-section-case-intro-advice-title-width));/*-24px*/
        }
      }
      .item-title {
        background-color: var(--ctm-color-aa);
        padding: 2.500em;/*40px;*/
        color: #fff;
        display: block;
        border-radius: 1.875em;/*30px;*/
        position: relative;
        /*max-width: 1300px;*/
        width: 100%;
        margin: auto;
        margin-bottom: 1.875em;/*30px;*/
        position: relative;
        z-index: 1;
        span {
          font-size: clamp(var(--ctm-base-font-size-min), 3.125em, 50.0px);
        }
        &::after {
          --ctm-parts-section-case-intro-advice-title-len: 50px;
          content: "";
          display: block;
          position: absolute;
          background-image: url(../img/case_advice_arrow.png);
          background-repeat: no-repeat;
          background-size: contain;
          background-position: 50% 50%;
          height: var(--ctm-parts-section-case-intro-advice-title-len);
          width: var(--ctm-parts-section-case-intro-advice-title-len);
          margin: auto;
          bottom: calc(-0px - (var(--ctm-parts-section-case-intro-advice-title-len) / 2));
          left: calc(50% - (var(--ctm-parts-section-case-intro-advice-title-len) / 2));
        }
      }

    }
  }
}
/* parts-section-case-intro -> item-advice-title：SP向け ※イレギュラーBP */
@media (width < 769px) {
  .parts-section-case-intro {
    --ctm-content-max-width: var(--ctm-content-max-width-sp);
    
    /* item-advice-title */
    .item-advice-title {
      text-align: center;
      font-weight: bold;
      margin-bottom: -10px;
      line-height: 1.4;
      padding: 20px var(--ctm-margin) 0 var(--ctm-margin);
      .item-inner {
        position: relative;
        z-index: 2;
        display: inline-block;
        padding: 0;
        .item-txt {
          .item-txt-l1 {
            font-size: 15px;
          }
          .item-txt-l2 {
            font-size: 15px;
          }
          .item-txt-l3 {
            font-size: 22px;
            color: var(--ctm-color-aa);
          }
        }
        &::before,
        &::after {
          --ctm-parts-section-case-intro-advice-title-width: 18px;
          --ctm-parts-section-case-intro-advice-title-height: 68px;
          content: "";
          background-image: url(../img/case_advice_decolation.png);
          background-repeat: no-repeat;
          background-position: 50% 50%;
          background-size: contain;
          width: var(--ctm-parts-section-case-intro-advice-title-width);
          height: var(--ctm-parts-section-case-intro-advice-title-height);
          display: inline-block;
          position: absolute;
          bottom: auto;
          top: 15px;
          z-index: 1;
        }
        &::before {
          left: calc(-12px - var(--ctm-parts-section-case-intro-advice-title-width));
        }
        &::after {
          right: calc(-12px - var(--ctm-parts-section-case-intro-advice-title-width));
          transform: rotate(180deg);
        }
        .item-decoration {
          background-image: url(../img/case_advice_sp.png);
          background-repeat: no-repeat;
          background-position: 50% 50%;
          background-size: contain;
          width: auto;
          height: 140px;
          margin-top: 10px;
          display: block;
          position: relative;
          z-index: 1;
        }
      }
      .item-title {
        background-color: var(--ctm-color-aa);
        padding: 20px 10px;
        color: #fff;
        display: block;
        border-radius: 10px;
        max-width: var(--ctm-content-max-width);
        width: 100%;
        margin: -6px auto 0 auto;
        position: relative;
        z-index: 2;
        span {
          font-size: 20px;
        }
        &::after {
          --ctm-parts-section-case-intro-advice-title-len: 25px;
          content: "";
          display: block;
          position: absolute;
          background-image: url(../img/case_advice_arrow.png);
          background-repeat: no-repeat;
          background-size: contain;
          background-position: 50% 50%;
          height: var(--ctm-parts-section-case-intro-advice-title-len);
          width: var(--ctm-parts-section-case-intro-advice-title-len);
          margin: auto;
          bottom: calc(-0px - (var(--ctm-parts-section-case-intro-advice-title-len) / 2));
          left: calc(50% - (var(--ctm-parts-section-case-intro-advice-title-len) / 2));
        }
      }

    }
  }
}



/*- ---------------------------------------------------
 * parts-section-case ※v2
 * ---------------------------------------------------- */
/* parts-section-case：PC向け */
@media (width >= 769px) {
  .parts-section-case {
    background-color: #f7f5ec;
    padding-top: 8.75em/* 140px */;
    margin-top: -5.625em/* -90px */;
    /*font-size: var(--ctm-base-font-size);*/
    font-size: 0.83vw;
  }
}
/* parts-section-case：SP向け */
/*@media (width < 769px) {*/
/* 「アドバイスの一例をご紹介します」と同様のタイミングで変形しないとずれる */
@media (width < 769px) {
  .parts-section-case {
    background-color: #f7f5ec;
    padding-top: 56px;
    margin-top: -30px;
  }
}


/* parts-section-case -> item-advice-example：PC向け */
@media (width >= 769px) {
  .parts-section-case {
    /* .item-advice-example */
    .item-advice-example {
      margin-top: 0px;
      text-align: center;
      font-weight: bold;
      line-height: 1.5;
      --ctm-content-max-width: var(--ctm-content-max-width-pc);
      .item-inner {
        background: #fff;
        border-radius: 1.875em;/*30px;*/
        padding: 1.563em;/*25px;*/
        box-shadow: -1px 0px 1.25em/* 20px */ rgba(194,188,161,0.25);
        span {
          font-size: clamp(var(--ctm-base-font-size-min), 1.625em, 26.0px);
        }
      }
      .has-flex {
        --ctm-has-flex-gap: 1.875em;/*30px;*/
      }
    }
  }
}
/* parts-section-case -> item-advice-example：SP向け */
@media (width < 769px) {
  .parts-section-case {
    .parts-sp-none {
      display: none;
    }
    /* .item-advice-example */
    .item-advice-example {
      margin-top: 0px;
      text-align: center;
      font-weight: bold;
      line-height: 1.5;
      /*--ctm-content-max-width: var(--ctm-content-max-width-sp);*/
      max-width: 360px;
      .item-inner {
        background: #fff;
        border-radius: 10px;
        font-size: 16px;
        padding: 24px 10px;
        box-shadow: -1px 0px 10px rgba(194,188,161,0.25);
      }
      .has-flex {
        --ctm-has-flex-gap: 10px;
        flex-direction: row;
        .has-grid-item {
          --ctm-has-flex-col: 1;
        }
      }
    }
  }
}


/* parts-section-case -> item-case-recommend-for：PC向け */
@media (width >= 769px) {
  .parts-section-case {
    /* .item-case-recommend-for */
    .item-case-recommend-for {
      text-align: center;
      font-weight: bold;
      line-height: 1.5;
      position: relative;
      margin-top: 2.500em;/*40px;*/
      margin-bottom: -1.875em;/*-30px;*/
      --ctm-parts-case-recommend-for-content-len: 25.625em;/*410px;*/
      --ctm-content-max-width: var(--ctm-content-max-width-pc);
      .item-title {
        display: inline-block;
        position: relative;
        margin-bottom: 1.25em/* 20px */;
        color: var(--ctm-color-aa);
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 1.875em;/*0px 30px;*/
        span {
          font-size: clamp(var(--ctm-base-font-size-min), 3.438em, 55.0px);
        }
        &::before,
        &::after {
          content: "";
          background-repeat: no-repeat;
          background-size: contain;
          background-position: 50% 50%;
          background-image: url(../img/icon_r_left.png);
          height: 60px;/*3.750em;*/
          width: 30px;/*1.875em;*/
          display: inline-block;
        }
        &::after {
          transform: scale(-1, 1);
        }
      }
      .item-inner {
        position: absolute;
        bottom: 5.188em;/*83px;*/
        left: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 23.750em;
        .item-content {
          float: left;
          width: var(--ctm-parts-case-recommend-for-content-len);
          height: var(--ctm-parts-case-recommend-for-content-len);
          border-radius: 50%;
          /*border: 2px dashed #e5844e;*/
          background-image: url(../img/case_recommend_circle_pc.png);
          background-repeat: no-repeat;
          background-position: 50% 50%;
          background-size: contain;

          display: flex;
          justify-content: center;
          align-items: center;
          flex-direction: column;
          gap: var(--ctm-margin) 0px;
          img {
            display: block;
            margin: 0 auto;
          }
          .item-txt {
            font-size: clamp(var(--ctm-base-font-size-min), 2em, 32.0px);
          }
          &:first-child {
            float: left;
            img {
              height: 12.625em;/*202px;*/
            }
          }
          &:last-child {
            float: right;
            img {
              height: 9.250em;/*148px;*/
            }
          }
        }  
      }
      .item-people {
        width: 100%;
        background-image: url(../img/case_recommend_people_pc.png);
        background-repeat: no-repeat;
        background-position: 50% 50%;
        background-size: contain;
        height: 30.875em;/*494px;*/
        position: relative;
        z-index: 1;
      }  
    }
  }
}
/* parts-section-case -> item-case-recommend-for：SP向け */
@media (width < 769px) {
  .parts-section-case {
    /* .item-case-recommend-for */
    .item-case-recommend-for {
      text-align: center;
      font-weight: bold;
      line-height: 1.5;
      position: relative;
      margin-top: 20px;
      margin-bottom: -20px;
      padding-left: var(--ctm-margin);
      padding-right: var(--ctm-margin);
      --ctm-parts-case-recommend-for-content-len: 166px;
      --ctm-content-max-width: var(--ctm-content-max-width-sp);
      .item-title {
        display: inline-block;
        position: relative;
        margin-bottom: 20px;
        font-size: 26px;
        color: var(--ctm-color-aa);
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0px 10px;
        &::before,
        &::after {
          content: "";
          background-repeat: no-repeat;
          background-size: contain;
          background-position: 50% 50%;
          background-image: url(../img/icon_r_left_sp.png);
          height: 30px;
          width: 15px;
          display: inline-block;
        }
        &::before {
        }
        &::after {
          transform: scale(-1, 1);
        }
      }
      .item-inner {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0px 13px;
        .item-content {
          font-size: 13px;
          float: left;
          width: var(--ctm-parts-case-recommend-for-content-len);
          height: var(--ctm-parts-case-recommend-for-content-len);
          border-radius: 50%;
          /*border: 2px dashed #e5844e;*/
          background-image: url(../img/case_recommend_circle_sp.png);
          background-repeat: no-repeat;
          background-position: 50% 50%;
          background-size: contain;

          display: flex;
          justify-content: center;
          align-items: center;
          flex-direction: column;
          gap: 10px 0px;
          img {
            display: block;
            margin: 0 auto;
          }
          &:first-child {
            img {
              height: 82px;
            }
          }
          &:last-child {
            img {
              height: 60px;
            }
          }
        }  
      }
      .item-people {
        width: 100%;
        background-image: url(../img/case_recommend_people_sp.png);
        background-repeat: no-repeat;
        background-position: calc(50% - 12px) 50%;
        background-size: contain;
        height: 179px;
        position: relative;
        z-index: 1;
        margin-top: -60px;
      }  
    }
  }
}


/*- ---------------------------------------------------
 * accordion
 * ---------------------------------------------------- */
@keyframes anime-parts-accordion-open {
  0% {
    display: none;
    opacity: 0;
  }
  1% {
    height: 0;
  }
  100% {
    display: block;
    opacity: 1;
    height: auto;
  }
}
@keyframes anime-parts-accordion-close {
  0% {
    display: block;
    opacity: 1;
    height: auto;
  }
  99% {
    height: 0;
  }
  100% {
    display: none;
    opacity: 0;
  }
}
.parts-accordion {
  --ctm-parts-animation-duration: 0.2s;
  &.current {
    .item-accordion-trigger {
      color: var(--ctm-color-aa);
      .item-accordion-icon::after {
        transform: rotate(180deg);
      }
    }
    .item-accordion-target {
      display: block;
      animation-duration: var(--ctm-parts-animation-duration);
      animation-name: anime-parts-accordion-open;
    }          
  }
  .item-accordion-trigger {
    cursor: pointer;
    transition: color var(--ctm-parts-animation-duration) ease-in-out 0s;
    .item-accordion-icon {
      &::after {
        background-image: url("../img/icon_arrow.png");
        background-size: contain;
        background-position: center;
        background-repeat: no-repeat;
        position: relative;
        display: inline-block;
        transition: all var(--ctm-parts-animation-duration) ease-in-out 0s;
        transform: rotate(0deg);
        content: "";
        width: 25px;
        height: 25px;
      }
    }
  }
  .item-accordion-target {
    overflow: hidden;
    display: none;
    animation-duration: var(--ctm-parts-animation-duration);
    animation-timing-function: linear;
    animation-delay: 0s;
    animation-fill-mode: forwards; 
    animation-name: anime-parts-accordion-close;
  }
}

/*- ---------------------------------------------------
 * parts-section-case-example
 * ---------------------------------------------------- */
.parts-section-case-example {
  background: #fff;
}
/* PC向け */
@media (width >= 769px) {
  .parts-section-case-example {
    font-size: 0.83vw;
    padding: 6.25em/* 100px */ 0 7.5em/* 120px */ 0;
    /* item-case-example */
    .item-case-example {
      margin: auto;
      .item-inner {
        background: #fff;
        margin-top: 0px;
        .item-title {
          cursor: pointer;
          position: relative;
          border-bottom: var(--ctm-border-width) solid var(--ctm-color-aa);
          padding: 0 5em/* 80px */;
          height: 7.5em/* 120px */;
          text-align: center;
          display: flex;
          align-items: center;
          justify-content: unset;
          .item-accordion-icon {
            width: 100%;
            font-weight: bold;
            font-size: inherit;
            .item-font {
              font-size: clamp(var(--ctm-base-font-size-min), 2.25em, 36.0px);
            }
            &::after {
              position: absolute;
              right: 2.188em/* 35px */;
              top: 0;
              bottom: 0;
              margin: auto;
              width: 2.813em/* 45px */;
            }
          }
        }
        .item-content {        
          margin-top: 1.875em/* 30px */;
          padding: 3.125em/* 50px */;
          border-radius: 1.875em/* 30px */;
          background-color: #f7f5ec;

          .item-content-img {
            margin: 0px auto;
            max-width: 700px;
          }
          .item-content-title {
            margin: 2.5em/* 40px */ 0 4.438em/* 71px */ 0;
            text-align: center;
            .item-content-title-inner {
              font-size: clamp(var(--ctm-base-font-size-min), 2.625em, 42.0px);
              font-weight: bold;
              text-align: center;
              color: var(--ctm-color-aa);
            }
          }
          .item-recommend {
            position: relative;
            --ctm-parts-faq-item-recommend-title-height: 3.625em/* 58px */;
            --ctm-parts-faq-item-recommend-title-width: 31.25em/* 500px */;
            &::before {
              content: "";
              border-radius: 0.625em/* 10px */;
              border: var(--ctm-border-width) solid var(--ctm-color-font);
              background-color: #fff;
              width: 100%;
              height: 100%;
              position: absolute;

            }
            &::after {
              content: "";
              background-color: #fff;
              width: var(--ctm-parts-faq-item-recommend-title-width);
              height: calc(var(--ctm-border-width) * 2);
              display: block;
              position: absolute;
              top: 0;
              left: calc(50% - var(--ctm-parts-faq-item-recommend-title-width) / 2);
            }
            .item-recommend-title {
              white-space: nowrap;
              font-weight: bold;
              display: flex;
              justify-content: center;
              align-items: center;
              gap: 0px 0.875em/* 14px */;
              width: 100%;
              margin: auto;
              text-align: center;
              width: var(--ctm-parts-faq-item-recommend-title-width);
              height: var(--ctm-parts-faq-item-recommend-title-height);
              position: absolute;
              top: calc(0px - var(--ctm-parts-faq-item-recommend-title-height) / 2 - 0.188em/* 3px */);
              left: calc(50% - var(--ctm-parts-faq-item-recommend-title-width) / 2);
              z-index: 1;
              .item-font {
                font-size: clamp(var(--ctm-base-font-size-min), 2.25em, 36.0px);
              }
              &::before,
              &::after {
                content: "";
                background-image: url(../img/icon_b_left.png);
                background-position: 50% 50%;
                background-size: contain;
                background-repeat: no-repeat;
                width: 1.563em/* 25px */;
                height: 100%;
                display: inline-block;
              }
              &::after {
                transform: scale(-1,1);
              }
            }
            .item-recommend--list-example {
              --ctm-parts-section-case-example-icon-len: 1.5em/* 43px */;
              max-inline-size: max-content;
              margin-inline: auto;
              padding: 3.125em/* 50px */ 0.938em/* 15px */;
              counter-reset: parts-section-case-example-cnt;
              li {
                padding-left: calc(var(--ctm-parts-section-case-example-icon-len) + 0.875em/* 14px */);
                font-weight: bold;
                font-size: clamp(var(--ctm-base-font-size-min), 1.75em, 28.0px);
                position: relative;
                & + li {
                  margin-top: 0.875em/* 14px */;
                }
                &::before {
                  counter-increment: parts-section-case-example-cnt;
                  content: counter(parts-section-case-example-cnt, decimal-leading-zero);
                  display: inline-block;
                  position: absolute;
                  left: 0;
                  top: 0;
                  border-radius: 50%;
                  width: var(--ctm-parts-section-case-example-icon-len);

                  color: var(--ctm-color-aa);
                  text-align: center;
                }
              }
            }
          }
        }
      }
    }
  }
}

/* SP向け */
@media (width < 769px) {
  .parts-section-case-example {
    --ctm-border-width: var(--ctm-border-width-sp);
    padding: 30px 0 30px 0;
    /* item-case-example */
    .item-case-example {
      margin: auto;
      .item-inner {
        background: #fff;
        margin-top: 0px;
        & + .item-inner {
          /*margin-top: 30px;*/
        }
        .item-title {
          cursor: pointer;
          position: relative;
          border-bottom: var(--ctm-border-width) solid var(--ctm-color-aa);
          padding: 0 32px 0 10px;
          height: 60px;
          text-align: left;
          display: flex;
          align-items: center;
          justify-content: unset;
          .item-accordion-icon {
            width: 100%;
            font-size: 17px;
            font-weight: bold;
            &::after {
              position: absolute;
              right: 10px;
              top: 0;
              bottom: 0;
              margin: auto;
              width: 22px;
            }
          }
        }
        .item-content {
          margin-top: 15px;
          padding: 15px 15px;
          border-radius: 15px;
          background-color: #f7f5ec;

          .item-content-img {
            margin: 0px auto;
          }
          .item-content-title {
            margin: 15px 0 28px 0;
            text-align: center;
            .item-content-title-inner {
              font-size: 22px;
              font-weight: bold;
              text-align: center;
              color: var(--ctm-color-aa);
            }
          }
          .item-recommend {
            position: relative;
            --ctm-parts-faq-item-recommend-title-height: 26px;
            --ctm-parts-faq-item-recommend-title-width: 185px;
            &::before {
              content: "";
              border-radius: 10px;
              border: var(--ctm-border-width) solid var(--ctm-color-font);
              background-color: #fff;
              width: 100%;
              height: 100%;
              position: absolute;

            }
            &::after {
              content: "";
              background-color: #fff;
              width: var(--ctm-parts-faq-item-recommend-title-width);
              height: calc(var(--ctm-border-width) * 2);
              display: block;
              position: absolute;
              top: 0;
              left: calc(50% - var(--ctm-parts-faq-item-recommend-title-width) / 2);
            }
            .item-recommend-title {
              font-size: 15px;
              white-space: nowrap;
              font-weight: bold;
              display: flex;
              justify-content: center;
              align-items: center;
              gap: 0px 6px;
              width: 100%;
              margin: auto;
              text-align: center;
              width: var(--ctm-parts-faq-item-recommend-title-width);
              height: var(--ctm-parts-faq-item-recommend-title-height);
              position: absolute;
              top: calc(0px - var(--ctm-parts-faq-item-recommend-title-height) / 2 - var(--ctm-border-width));
              left: calc(50% - var(--ctm-parts-faq-item-recommend-title-width) / 2);
              z-index: 1;
              img[src*="/icon"] {
                width: 13px;
                display: inline-block;
              }
              &::before,
              &::after {
                content: "";
                background-image: url(../img/icon_b_left.png);
                background-position: 50% 50%;
                background-size: contain;
                background-repeat: no-repeat;
                width: 13px;
                height: 100%;
                display: inline-block;
              }
              &::after {
                transform: scale(-1,1);
              }
            }
            .item-recommend--list-example {
              --ctm-parts-section-case-example-icon-len: 21px;
              max-inline-size: max-content;
              margin-inline: auto;
              padding: 20px var(--ctm-margin) var(--ctm-margin) var(--ctm-margin);
              counter-reset: parts-section-case-example-cnt;
              li {
                padding-left: calc(var(--ctm-parts-section-case-example-icon-len) + 3px);
                font-weight: bold;
                font-size: 14px;
                position: relative;
                & + li {
                  margin-top: 5px;
                }
                &::before {
                  counter-increment: parts-section-case-example-cnt;
                  content: counter(parts-section-case-example-cnt, decimal-leading-zero);
                  display: inline-block;
                  position: absolute;
                  left: 0;
                  top: 0;
                  width: var(--ctm-parts-section-case-example-icon-len);
                  color: var(--ctm-color-aa);
                  text-align: center;
                }
              }
            }
          }
        }
      }
    }
  }
}


/*- ---------------------------------------------------
 * parts-section-present
 * ---------------------------------------------------- */
.parts-section-present.item-bg-white {
  background-color: #fff;
}
/* PC向け */
@media (width >= 769px) {
  .parts-section-present {
    font-size: 0.83vw;
    background-color: #f7f5ec;
    a[target="_blank"] {
      color: var(--ctm-color-aa);
      text-decoration: underline;
      display: inline-flex;
      gap: 0.313em/* 5px */;
      justify-content: center;
      align-items: center;
      &::after {
        content: "";
        background: url(../img/icon_external.png) 50% 50% / contain no-repeat;
        width: 0.625em/* 10px */;
        height: 0.625em/* 10px */;
        display: inline-block;
      }
    }
    .item-present {
      max-width: 1680px;/*105em*/
      padding-top: 6.25em/* 100px */;
      padding-bottom: 6.25em/* 100px */;
      position: relative;
      .item-section-title {
        --ctm-sec-ebook-title-ribbon-width: 4.688em/* 75px */;
        --ctm-sec-ebook-title-ribbon-height: 4.75em/* 76px */;
        position: relative;
        width: 100%;
        left: 0;
        z-index: 2;
        margin-bottom: -2.188em/* -35px */;
        text-align: center;
        .item-title-inner {
          position: relative;
          display: inline-block;
          background-color: var(--ctm-color-aa);
          color: #fff;
          line-height: 1.2;
          font-weight: bold;
          padding: 1.25em/* 20px */;
          .item-font {
            font-size: clamp(var(--ctm-base-font-size-min), 3em, 48.0px);
          }
          &::before,
          &::after {
            content: "";
            display: block;
            background-size: cover;
            background-position: 50% 50%;
            background-repeat: no-repeat;
            background-image: url(../img/present_ribon_left_pc.png);
            width: var(--ctm-sec-ebook-title-ribbon-width);
            height: var(--ctm-sec-ebook-title-ribbon-height);
            position: absolute;
            bottom: -1.438em/* -23px */;
          }
          &::before {
            left: calc( -0px - var(--ctm-sec-ebook-title-ribbon-width) / 2 - 1.063em/* 17px */);
          }
          &::after {
            transform: scale(-1, 1);
            right: calc( -0px - var(--ctm-sec-ebook-title-ribbon-width) / 2 - 1.125em/* 18px */);
          }
        }
      }
      .item-content {
        background: #fff;
        border-radius: 1.875em/* 30px */;
        padding: 6.188em 0.938em 3.125em 0.938em;/* 99px 15px 50px 15px */
        position: relative;
        &::before,
        &::after {
          content: "";
          display: block;
          background-image: url(../img/present_bg_left_pc.png);
          background-repeat: no-repeat;
          background-size: contain;
          height: 100%;
          width: 10.563em/* 169px */;
          height: 28.75em/* 460px */;
          position: absolute;
          top: 6.875em/* 110px */;
        }
        &::before {
          right: calc(50% + 30em);
        }
        &::after {
          left: calc(50% + 30em);
          transform: scale(-1,1);
        }

        .item-content-variable {
          display: flex;
          align-items: end;
          justify-content: center;
          position: relative;
          z-index: 1;
          /*max-width: 757px;*/
          margin: auto;
          .item-content-variable-inner {
            .item-content-variable-group-caption {
              margin-top: 0.938em/* 15px */;
              max-width: 23.625em/* 378.0px */;
              margin-inline: auto;
              .parts-caption {
                margin-left: auto;
                margin-right: auto;
                font-size: clamp(var(--ctm-base-font-size-min), 0.875em, 14.0px);
              }
            }
            &:nth-child(1) {
              [src*="present_gift"] {
                width: 18em/* 288.0px */;
              }
              .item-txt {
                display: flex;
                align-items: end;
              }
              .item-content-variable-group {
                gap: 1.75em/* 28.0px */;
              }
            }
            &:nth-child(2) {
              margin-left: -0.25em/* 4.0px */;
              margin-right: -0.25em/* 4.0px */;
              position: relative;
              bottom: 16em;
              [src*="present_plus"] {
                width: 4.188em/* 67px */;
              }
            }
            &:nth-child(3) {
              [src*="present_book"] {
                width: 18em/* 288.0px */;
              }
            }
            .item-content-variable-group {
              display: flex;
              justify-content: center;
              align-items: center;
              flex-direction: column;
              gap: 0.938em/* 15.0px */;
              .item-img {
                text-align: center;
              }
              .item-txt {
                text-align: left;
                line-height: 1.3;
                font-weight: bold;
                .item-txt-l {
                  .item-txt-l1 {
                    margin-bottom: 0.625em/* 10.0px */;
                    .item-font {
                      font-size: clamp(var(--ctm-base-font-size-min), 1.5em, 24.0px);;
                    }
                  }
                  .item-txt-l2 {
                    color: var(--ctm-color-aa);
                    .item-font {
                      font-size: clamp(var(--ctm-base-font-size-min), 1.875em, 30.0px);
                    }
                  }
                  .item-txt-l3 {
                    color: var(--ctm-color-aa);
                    .item-font {
                      font-size: clamp(var(--ctm-base-font-size-min), 1.875em, 30.0px);
                    }
                  }
                }
                .item-txt-r {
                  display: flex;
                  align-items: center;
                  color: var(--ctm-color-aa);
                  line-height: 1;
                  position: relative;
                  margin-bottom: 0.3em;
                  .item-font {
                    font-size: clamp(var(--ctm-base-font-size-min), 1.875em, 30.0px);
                  }
                  .item-font-num {
                    font-size: clamp(var(--ctm-base-font-size-min), 2.5em, 40.0px);
                    line-height: 0.9;
                  }
                  .item-font-unit {
                    font-size: clamp(var(--ctm-base-font-size-min), 1.875em, 30.0px);
                    /*transform: translateY(0.125em);*/
                    align-self: end;
                  }
                }
                .item-content-variable-title {
                  color: var(--ctm-color-aa);
                  font-weight: bold;
                  text-align: center;
                  .item-font {
                    font-size: clamp(var(--ctm-base-font-size-min), 1.875em, 30.0px);
                  }
                }
                .item-content-variable-title-sub {
                  margin-bottom: 0.625em;
                  text-align: center;
                  display: block;
                  .item-font {
                    font-size: clamp(var(--ctm-base-font-size-min), 1.5em, 24.0px);
                  }
                }
              }
            }

          }
        }
        .item-note {
          margin: 2.25em/* 36.0px */ auto 0 auto;
          max-width: calc(var(--ctm-content-max-width-pc) - var(--ctm-margin) * 2);
          .item-note-inner {
            &.current .item-note-title {
              border-radius: 0.625em 0.625em 0 0;/*10px 10px 0 0*/
            }
            .item-note-title {
              background-color: #f1f1f1;
              font-weight: bold;
              border-radius: 0.625em/* 10px */;
              padding: 0.938em/* 15px */;
              .item-font {
                font-size: clamp(var(--ctm-base-font-size-min), 1.125em, 18.0px);
              }
              .item-accordion-icon {
                /*display: inline-block;*/
                display: flex;
                justify-content: center;
                align-items: center;
                gap: 0px 1.125em/* 18px */;
                &::after {
                  width: 1.563em/* 25px */;
                  height: 1.563em/* 25px */;
                }
              }
            }
            .item-note-content {
              background-color: #f1f1f1;
              border-radius: 0 0 0.625em 0.625em;/*0 0 10px 10px*/
              padding: 0px 3.125em 3.125em 3.125em;/*0px 50px 50px 50px*/
              .item-note-content-inner {
                background-color: #fff;
                border-radius: 0.625em/* 10px */;
                padding: 3.125em 6.25em;/*50px 100px*/
                line-height: 1.5;
                .item-font {
                  max-inline-size: max-content;
                  margin-inline: auto;
                  font-size: clamp(var(--ctm-base-font-size-min), 0.875em, 14.0px);
                  display: block;
                }
              }
            }
          }
        }
        .item-cta {
          text-align: center;
          .parts-btn-cta {
            margin: 1.875em/* 30px */ auto 0 auto;
          }
        }
      }
    }
  }
}
/* SP向け */
@media (width < 769px) {
  .parts-section-present {
    background-color: #f7f5ec;
    a[target="_blank"] {
      color: var(--ctm-color-aa);
      text-decoration: underline;
      display: inline-flex;
      gap: 5px;
      justify-content: center;
      align-items: center;
      &::after {
        content: "";
        background: url(../img/icon_external.png) 50% 50% / contain no-repeat;
        width: 10px;
        height: 10px;
        display: inline-block;
      }
    }
    .item-present {
      padding-top: 25px;
      padding-bottom: 25px;
      position: relative;
      .item-section-title {
        --ctm-sec-ebook-title-ribbon-width: 42px;
        --ctm-sec-ebook-title-ribbon-height: 33px;
        position: relative;
        width: 100%;
        left: 0;
        z-index: 2;
        margin-bottom: -45px;
        text-align: center;
        .item-title-inner {
          position: relative;
          display: inline-block;
          background-color: var(--ctm-color-aa);
          font-size: 20px;
          color: #fff;
          line-height: 1.2;
          font-weight: bold;
          padding: 10px;
          min-width: 241px;
          &::before,
          &::after {
            content: "";
            display: block;
            background-size: cover;
            background-position: 50% 50%;
            background-repeat: no-repeat;
            background-image: url(../img/present_ribon_left_pc.png);
            width: var(--ctm-sec-ebook-title-ribbon-width);
            height: var(--ctm-sec-ebook-title-ribbon-height);
            position: absolute;
            bottom: -9px;
          }
          &::before {
            left: calc( -0px - var(--ctm-sec-ebook-title-ribbon-width) / 2 - 11px);
          }
          &::after {
            transform: scale(-1, 1);
            right: calc( -0px - var(--ctm-sec-ebook-title-ribbon-width) / 2 - 11px);
          }
        }
      }
      .item-content {
        background: #fff;
        border-radius: 10px;
        padding: 68px 20px 20px 20px;
        position: relative;
        &::before,
        &::after {
          content: "";
          display: block;
          background-image: url(../img/present_bg_left_sp.png);
          background-repeat: no-repeat;
          background-size: contain;
          height: 100%;
          width: 36px;
          height: 235px;
          position: absolute;
          top: 0px;
          z-index: 1;
        }
        &::before {
          right: calc(50% + 40.5vw);
        }
        &::after {
          left: calc(50% + 40.5vw);
          /*transform: scale(-1,1);*/
          background-image: url(../img/present_bg_right_sp.png);
        }
        .item-content-variable {
          position: relative;
          z-index: 1;
          max-width: none;
          margin: auto;
          max-width: 305px;
          .item-content-variable-inner {
            &:nth-child(2) {
              margin: 5px auto;
              position: relative;
              .item-img {
                width: auto;
                display: flex;
                align-items: center;
                justify-content: center;
                img {
                  height: 20px;

                }
              }
            }
            .parts-caption {
              margin-top: 10px;
              font-size: 10px;
            }
            .item-content-variable-group {
              --ctm-img-width: 120px;
              display: flex;
              justify-content: center;
              align-items: center;
              gap: 0;
              .item-img {
                width: var(--ctm-img-width);
                text-align: center;
              }
              .item-txt {
                width: calc(100% - var(--ctm-img-width));
                text-align: left;
                line-height: 1.3;
                font-weight: bold;
                padding-left: 10px;
                .item-txt-l {
                  .item-txt-l1 {
                    margin-bottom: 5px;
                    .item-font {
                      font-size: 10px;
                    }
                  }
                  .item-txt-l2 {
                    color: var(--ctm-color-aa);
                    .item-font {
                      font-size: 15px;
                    }
                  }
                  .item-txt-l3 {
                    color: var(--ctm-color-aa);
                    .item-font {
                      font-size: 15px;
                    }
                  }
                }
                .item-txt-r {
                  display: flex;
                  align-items: center;
                  color: var(--ctm-color-aa);
                  margin-top: 5px;
                  line-height: 1;
                  .item-font {
                    font-size: 13px;
                  }
                  .item-font-num {
                    font-size: 18px;
                    line-height: 1;
                  }
                  .item-font-unit {
                    font-size: 13px;
                    /*transform: translateY(0.2em);*/
                    align-self: end;
                  }
                }

                .item-content-variable-title {
                  color: var(--ctm-color-aa);
                  font-weight: bold;
                  font-size: 15px;
                }
                .item-content-variable-title-sub {
                  margin-bottom: 5px;
                  font-size: 10px;
                  display: block;
                }
              }
            }
          }
        }
        .item-note {
          margin: 15px auto 0 auto;
          max-width: var(--ctm-content-max-width-pc);
          .item-note-inner {

            &.current .item-note-title {
              border-radius: 5px 5px 0 0;
            }
            .item-note-title {
              background-color: #f1f1f1;
              font-size: 12px;
              font-weight: bold;
              border-radius: 5px;
              padding: 5px;
              .item-accordion-icon {
                /*display: inline-block;*/
                display: flex;
                justify-content: center;
                align-items: center;
                gap: 0px 4px;
                &::after {
                  width: 15px;
                  height: 15px;                
                }
              }
            }
            .item-note-content {
              background-color: #f1f1f1;
              border-radius: 0 0 10px 10px;
              padding: 0px 10px 10px 10px;
              .item-note-content-inner {
                background-color: #fff;
                border-radius: 3px;
                padding: 10px;
                font-size: 10px;
              }
            }
          }
        }
        .item-cta {
          text-align: center;
          .parts-btn-cta {
            margin: 15px auto 0 auto;
          }
        }
      }
    }
  }
}


/*- ---------------------------------------------------
 * parts-section-point
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-section-point {
    background-color: #f7f5ec;
    font-size: 0.83vw;
    .item-bg {
      padding: 6.25em/* 100px */ 0 7.5em/* 120px */ 0;
      background-color: #fff;
      border-radius: 0 18.75em/* 300px */ 0 0;
      .item-point {
        .item-section-title {
          text-align: center;
          display: flex;
          flex-direction: column;
          gap: 1.563em/* 25px */ 0;
          line-height: 1;
          font-size: inherit;
          .item-title-l1 {
            display: flex;
            align-items: baseline;
            justify-content: center;
            gap: 0 0.5em/* 8px */;
            .item-font {
              font-size: clamp(var(--ctm-base-font-size-min), 2.813em, 45.0px);
            }
            img {
              height: 3.438em/* 55px */;
            }
          }
          .item-title-l2 {
            .item-font {
              font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
            }
            .item-title-num {
              font-size: clamp(var(--ctm-base-font-size-min), 5em, 80.0px);
              color: var(--ctm-color-aa);
            }
            strong {
              font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
                color: var(--ctm-color-aa);
            }
          }
        }
        .item-content {
          .item-content-variable {
            counter-reset: parts-section-point-cnt;
            .item-content-variable-inner {
              --parts-section-point-img-len: 40%;
              display: flex;
              align-items: center;
              justify-content: space-between;
              gap: 2.813em/* 45px */;
              margin-top: 80px;
              &:nth-child(even) {
                flex-direction: row-reverse;
              }
              .item-img {
                position: relative;
                width: var(--parts-section-point-img-len);
                img {
                  border-radius: 1.875em/* 30px */;
                }
                .item-img-num {
                  position: absolute;
                  top: -3.75em/* -60px */;
                  left: 1.25em/* 20px */;
                  &::before {
                    counter-increment: parts-section-point-cnt;
                    content: counter(parts-section-point-cnt, decimal-leading-zero);
                    display: inline-block;
                    color: var(--ctm-color-aa);
                    font-size: clamp(var(--ctm-base-font-size-min), 5.625em, 90.0px);
                    font-weight: bold;
                    line-height: 1;
                  }
                }
              }
              .item-txt {
                width: calc(100% - var(--parts-section-point-img-len));
                .item-txt-title {
                  margin-bottom: 1.875em/* 30px */;
                  .item-font {
                    font-size: clamp(var(--ctm-base-font-size-min), 2.375em, 38.0px);
                  }
                }
                .item-txt-body {
                  .item-font {
                    font-size: clamp(var(--ctm-base-font-size-min), 1.625em, 26.0px);
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
/* parts-section-point：SP向け */
@media (width < 769px) {
  .parts-section-point {
    .item-bg {
      padding: 30px 0 30px 0;
      border-radius: 0;
      .item-point {
        padding-left: 20px;
        padding-right: 20px;
        .item-section-title {
          text-align: center;
          display: flex;
          gap: 10px 0;
          flex-direction: column;
          line-height: 1;
          .item-title-l1 {
            font-size: 19px;
            display: flex;
            align-items: baseline;
            justify-content: center;
            gap: 0 4px;
            img {
              height: 26px;
            }
          }
          .item-title-l2 {
            span {
              font-size: 22px;
              &.item-title-num {
                font-size: 32px;
                color: var(--ctm-color-aa);
              }
            }
            strong {
              font-size: 22px;
              color: var(--ctm-color-aa);
            }
          }
        }
        .item-content {
          .item-content-variable {
            counter-reset: parts-section-point-cnt;
            .item-content-variable-inner {
              --parts-section-point-img-len: 40%;
              display: flex;
              flex-direction: column;
              align-items: center;
              justify-content: space-between;
              gap: 15px;
              margin-top: 35px;
              &:nth-child(even) {
                flex-direction: column;
              }
              .item-img {
                position: relative;
                width: calc(100% - 70px);
                img {
                  border-radius: 15px;
                }
                &::before {
                  counter-increment: parts-section-point-cnt;
                  content: counter(parts-section-point-cnt, decimal-leading-zero);
                  display: inline-block;
                  color: var(--ctm-color-aa);
                  font-size: 32px;
                  font-weight: bold;
                  line-height: 1;
                  position: absolute;
                  top: -15px;
                  left: 0.5em;
                }
              }
              .item-txt {
                width: 100%;
                max-inline-size: max-content;
                margin-inline: auto;
                text-align: center;
                .item-txt-title {
                  font-size: 20px;
                  margin-bottom: 10px;
                }
                .item-txt-body {
                  font-size: 15px;
                  text-align: left;
                }
              }
              & + .item-content-variable-inner {
                margin-top: 35px;
              }
            }
          }
        }
      }
    }
  }
}




/*- ---------------------------------------------------
 * parts-section-difference
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-section-difference {
    padding: 6.25em/* 100px */ 0 7.5em/* 120px */ 0;
    background-color: #fff;
    position: relative;
    font-size: 0.83vw;
    &::before {
      content: "";
      display: block;
      width: 100%;
      height: 66%;
      border-radius: 0 18.75em/* 300px */ 0 0;
      background-color: #f7f5ec;
      position: absolute;
      bottom: 0;
      left: 0;
    }
    .item-difference {
      max-width: 1620px;
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 2.188em/* 35px */ 0;
        line-height: 1;
        font-size: inherit;
        .item-title-l1 {
          display: flex;
          align-items: baseline;
          justify-content: center;
          gap: 0 0.5em/* 8px */;
          img {
            height: 3.438em/* 55px */;
          }
          .item-font {
            font-size: clamp(var(--ctm-base-font-size-min), 2.813em, 45.0px);
          }
        }
        .item-title-l2 {
          strong {
            color: var(--ctm-color-aa);
          }
          .parts-dot-decoration,
          .item-font {
            font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
          }
        }
      }
      .item-content {

        .item-content-variable {
          margin-top: 5em/* 80px */;
          display: flex;
          flex-direction: column;
          gap: 1.563em;/*25px;*/
          font-size: inherit;

          /* 1620px以上の場合の計算式はemで調整可能。 */
          padding: 0 13.125em 0 0;
          & + .item-content-variable {
            margin-top: 5em/* 80px */;
          }
          .item-content-variable-inner {
            display: flex;
            align-items: center;
            justify-content: normal;
            .item-img {
              margin-right: -2.500em;
              width: 50.000em;
              position: relative;
            }
            .item-txt {
              position: relative;
              width: 41.875em;
              z-index: 1;
              border-radius: 2.500em;/*40px;*/
              background-color: #fff;
              box-shadow: -1px 0px 1.25em/* 20px */ rgba(194,188,161,0.25);
              .item-txt-inner {
                padding: 3.750em;/*60px;*/
                display: flex;
                flex-direction: column;
                gap: 1.875em;/*30px;*/
                .item-txt-title {
                  font-size: inherit;
                  font-weight: bold;
                  display: flex;
                  align-items: center;
                  justify-content: normal;
                  gap: 2.125em;/*34px;*/
                  span {
                    font-size: clamp(var(--ctm-base-font-size-min), 2.625em, 42px);
                  }
                  img {
                    width: min(9.250em, 148px);
                  }
                }
              }
              .item-txt-body {
                font-size: clamp(var(--ctm-base-font-size-min), 1.625em, 26px);
                .item-txt-caption {
                  font-size: 0.7em;/* ここは親を引き継いだ相対なのでclamp化しない。 */
                  margin: 0.1em;
                  vertical-align: super;
                }
              }
            }
          }
          &:nth-child(even) {
            font-size: inherit;
            padding: 0 0 0 13.125em;

            .item-content-variable-inner {
              flex-direction: row-reverse;
              align-items: end;
              .item-img {
                margin-left: -3.1em;
                margin-right: 0;
                margin-bottom: 0.9em;
              }
              .item-txt {
                .item-txt-title {
                  img {
                    width: 8.750em;/*140px;*/
                  }
                }
              }


            }
          }
          .parts-caption {
            font-size: clamp(var(--ctm-base-font-size-min), 0.875em, 14.0px);
          }
        }
      }

      
    }
  }
}
/* 中間向け：おそらく意図はこう。769px~1620pxの間は相対の計算式が1200px基準に変わる。 */
@media (769px <= width < 1620px) {
  .parts-section-difference {
    .item-difference {
      .item-content {
        .item-content-variable {
          /* 769~1200pxの間は0になる */
          padding: 0 calc((100vw - 1215px) /2 ) 0 0;
          &:nth-child(even) {
            padding: 0 0 0 calc((100vw - 1215px) /2 );
          }
        }
      }
    }
  }
}
/* parts-section-point：SP向け */
@media (width < 769px) {
  .parts-section-difference {
    padding: 35px 0 40px 0;
    background-color: #fff;
    position: relative;
    &::before {
      content: "";
      display: block;
      width: 100%;
      height: 82%;
      border-radius: 0 50px 0 0;
      background-color: #f7f5ec;
      position: absolute;
      bottom: 0;
      left: 0;
    }
    .item-difference {
      max-width: none;
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 14px 0;
        line-height: 1;
        .item-title-l1 {
          font-size: 19px;
          display: flex;
          align-items: baseline;
          justify-content: center;
          gap: 0 4px;
          img {
            height: 26px;
          }
        }
        .item-title-l2 {
          span {
            font-size: 22px;
          }
          strong {
            font-size: 22px;
              color: var(--ctm-color-aa);
          }
        }
      }
      .item-content {
        .item-content-variable {
          margin-top: 30px;
          & + .item-content-variable {
            margin-top: 20px;
          }
          .item-content-variable-inner {
            display: flex;
            flex-direction: column;
            align-items: start;
            justify-content: normal;
            font-size: var(--ctm-base-font-size);
            padding: 0;
            .item-img {
              position: relative;
              margin-bottom: -30px;
              left: -15px;
              padding-right: 25px;
            }
            .item-txt {
              position: relative;
              z-index: 1;
              border-radius: 15px;
              background-color: #fff;
              padding: 15px 20px;
              box-shadow: -1px 0px 10px rgba(194,188,161,0.25);
              .item-txt-title {
                font-size: 20px;
                font-weight: bold;
                display: flex;
                align-items: center;
                justify-content: normal;
                gap: 12px;
                img {
                  width: 76px;
                }
              }
              .item-txt-body {
                font-size: 15px;
                margin-top: 10px;
                .item-txt-caption {
                  font-size: 0.7em;
                  margin: 0.1em;
                  vertical-align: super;
                }
              }
            }
          }
          &:nth-child(even) {
            .item-content-variable-inner {
              flex-direction: column;
              align-items: end;
              padding: 0;
              .item-img {
                position: relative;
                left: auto;
                right: -15px;
                padding: 0;
                padding-left: 25px;
              }

              .item-txt {
                .item-txt-title {
                  img {
                    width: 64px;
                  }
                }
              }
            }
          }
          .parts-caption {
            font-size: 11px;
            margin-top: 15px;
          }
        }
      }
    }
  }
}



/*- ---------------------------------------------------
 * parts-section-flow
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-section-flow {
    padding: 6.25em/* 100px */ 0 7.5em/* 120px */ 0;
    background-color: #fff;
    position: relative;
    /* 可変対応 */
    font-size: 0.83vw;
    .item-flow {
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 1.563em/* 25px */ 0;
        line-height: 1;
        font-size: inherit;
        .item-title-l2 {
          .item-font {
            font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
          }
          strong {
            font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
            color: var(--ctm-color-aa);
          }
        }
      }
      .item-content {
        margin-top: 5em/* 80px */;
        .item-content-variable {
          display: flex;
          gap: 1.125em/* 18px */;
          counter-reset: parts-section-flow-cnt;
          .item-content-variable-inner {
            width: calc(100%/3);
            display: flex;
            flex-direction: column;
            gap: 1.25em/* 20px */;
            &:last-child .item-content-variable-inner-head::before {
              display: none;
            }
            .item-content-variable-inner-head {
              position: relative;
              display: flex;
              text-align: center;
              &.parts-pc-none {
                display: none;
              }
              &::before {
                content: "";
                background-color: var(--ctm-color-aa);
                width: 100%;
                height: 0.313em/* 5px */;
                position: absolute;
                left: 50%;
                top: calc(50% - 0.156em/*2.5px*/);

              }
              .item-txt-title {
                font-weight: bold;
                background-color: var(--ctm-color-aa);
                color: #fff;
                line-height: 1;
                /*
                height: 70px;
                line-height: 70px;
                padding: 0px 2.813em;
                */
                padding: 0.625em 2.813em;/*10px 45px*/
                border-radius: 3.75em/* 60px */;
                display: inline-block;
                margin: auto;
                position: relative;
                .item-font {
                  &::before {
                    content: "STEP";
                    font-size: clamp(var(--ctm-base-font-size-min), 2.188em, 35px);
                  }
                }
                .item-font-num {
                  &::before {
                    counter-increment: parts-section-flow-cnt;
                    content: counter(parts-section-flow-cnt, decimal-leading-zero);
                    display: inline-block;
                    font-size: clamp(var(--ctm-base-font-size-min), 3.125em, 50px);
                  }
                  
                }
              }
            }

            .item-content-variable-inner-body {
              background-color: #f7f5ec;
              /*height: 100%;*/
              display: flex;
              flex-direction: column;
              flex-grow: 1;
              border-radius: 1.875em/* 30px */;
              .item-img {
                padding: 0.625em 0.625em 0 0.625em;/*10px 10px 0 10px*/
                display: flex;
                img {
                  border-radius: 1.25em/* 20px */;
                }
              }
              .item-txt {
                display: flex;
                flex-grow: 1;
                .item-txt-inner {
                  display: flex;
                  flex-direction: column;
                  .item-txt-title {
                    /*flex-grow: 1;*/
                    font-size: inherit;
                    font-weight: bold;
                    color: var(--ctm-color-aa);
                    margin: 1.25em 0.625em 0.625em 0.625em;/*20px 10px 10px 10px*/
                    text-align: center;
                    .item-font {
                      font-size: clamp(var(--ctm-base-font-size-min), 1.75em, 28.0px);
                    }
                  }
                  .item-txt-body {
                    /*flex-grow: 1;*/
                    padding: 0 1.563em 1.875em 1.563em;/*0 25px 30px 25px*/
                    .item-font {
                      font-size: clamp(var(--ctm-base-font-size-min), 1.25em, 20.0px);
                    }
                  }
                }
              }

            }

          }
        }
      }
    }
  }
}
/* SP向け */
@media (width < 769px) {
  .parts-section-flow {
    padding: 35px 0 35px 0;
    background-color: #fff;
    position: relative;
    .item-flow {
      padding: 0 20px;
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 25px 0;
        line-height: 1;
        .item-title-l2 {
          span {
            font-size: 22px;
            &.item-title-num {
            font-size: 22px;
              color: var(--ctm-color-aa);
            }
          }
          strong {
            font-size: 22px;
              color: var(--ctm-color-aa);
          }
        }
      }
      .item-content {
        margin-top: 41px;
        .item-content-variable {
          display: flex;
          flex-direction: column;
          gap: 26px;
          position: relative;
          counter-reset: parts-section-flow-cnt;
          &.parts-sp-none {
              display: none;
          }
          &::before {
            content: "";
            background-color: var(--ctm-color-aa);
            width: 3px;
            height: 100%;
            position: absolute;
            left: calc(50% - 1.5px);
            top: 0px;
          }
          .item-content-variable-inner {
            position: relative;
            /*font-size: var(--ctm-base-font-size);*/
            /*font-size: 0.83vw;*/
            .item-content-variable-inner-head {
              text-align: center;
              width: 100%;
              position: absolute;
              top: -15px;
              .item-txt-title {
                font-weight: bold;
                background-color: var(--ctm-color-aa);
                color: #fff;
                line-height: 1;
                padding: 5px 15px;
                border-radius: 60px;
                display: inline-block;
                margin: auto;
                position: relative;
                .item-font {
                  &::before {
                    content: "STEP";
                    font-size: 15px;
                  }
                }
                .item-font-num {
                  &::before {
                    counter-increment: parts-section-flow-cnt;
                    content: counter(parts-section-flow-cnt, decimal-leading-zero);
                    display: inline-block;
                    font-size: 20px;
                  }
                  
                }
              }
            }

            .item-content-variable-inner-body {
              font-size: var(--ctm-base-font-size);
              background-color: #f7f5ec;
              height: 100%;
              border-radius: 15px;
              padding: 10px 0px 0px 0px;
              .item-img {
                padding: 0;
                text-align: center;
                border-radius: 10px;
                margin: 0px 10px 0 10px;
                background: #fff;
                img {
                  max-height: 130px;
                }
              }
              .item-txt {
                padding: 0px 16px 20px 16px;
                .item-txt-inner {
                  .item-txt-title {
                    font-size: inherit;
                    font-weight: bold;
                    color: var(--ctm-color-aa);
                    margin: 10px auto 5px auto;
                    text-align: center;
                    .item-font {
                      font-size: 18px;
                    }
                  }
                  .item-txt-body {
                    padding: 0;
                    line-height: 1.65;
                    .item-font {
                      font-size: 15px;
                    }
                  }
                }
              }

            }

          }
        }
      }

    }
  }
}



/*- ---------------------------------------------------
 * parts-section-faq
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-section-faq {
    padding: 6.25em/* 100px */ 0 7.5em/* 120px */ 0;
    background-color: #f7f5ec;
    position: relative;
    font-size: 0.83vw;
    .item-faq {
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 1.563em/* 25px */ 0;
        line-height: 1;
        font-size: inherit;
        .item-title-l2 {
          span {
            font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
          }
          strong {
            font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
            color: var(--ctm-color-aa);
          }
        }
      }
      .item-content {
        margin-top: 3.125em/* 50px */;
        .parts-accordion {
          --parts-section-faq-icon-len: calc(2.625em + 0.938em);/*42px + 15px*/
          &+.parts-accordion {
            margin-top: 0.938em/* 15px */;
          }
          &.current {
            .item-accordion-trigger {
              border-radius: 0.938em 0.938em 0 0;/*15px 15px 0 0*/
            }
          }
          .item-accordion-trigger,
          .item-accordion-target {
            background-color: #fff;
            padding: 1.875em/* 30px */;
          }
          .item-accordion-trigger {
            border-radius: 0.938em/* 15px */;
            .item-accordion-title {
              font-size: inherit;
              font-weight: bold;
              padding: 0px var(--parts-section-faq-icon-len);
              position: relative;
              &::before {
                content: "Q";
                color: var(--ctm-color-aa);
                font-size: clamp(var(--ctm-base-font-size-min), 3.125em, 50.0px);
                line-height: 1;
                position: absolute;
                left: 0;
              }
              &.item-accordion-icon::after {
                width: 1.75em/* 28px */;
                height: 1.063em/* 17px */;
                position: absolute;
                right: 0;
                top: calc(50% - (1.063em/* 17px */ / 2));
              }
              .item-font {
                font-size: clamp(var(--ctm-base-font-size-min), 2em, 32.0px);
              }
            }
          }
          .item-accordion-target {
            border-radius: 0 0 0.938em 0.938em;/*0 0 15px 15px*/
            padding-top: 0;
            .item-accordion-body {
              border-top: var(--ctm-border-width) dashed #ece9dd;
              padding: 1.875em 0 0px var(--parts-section-faq-icon-len);
              position: relative;
              .item-font {
                font-size: clamp(var(--ctm-base-font-size-min), 1.625em, 26.0px);
              }
              &::before {
                content: "A";
                font-weight: bold;
                font-size: clamp(var(--ctm-base-font-size-min), 3.125em, 50.0px);
                color: #4b97ce;
                line-height: 1;
                position: absolute;
                left: 0;
              }
            }
          }
          

        }

      }
    }
  }
}


/* SP向け */
@media (width < 769px) {
  .parts-section-faq {
    padding: 35px 0;
    background-color: #f7f5ec;
    position: relative;
    .item-faq {
      padding-left: 20px;
      padding-right: 20px;
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 25px 0;
        line-height: 1;
        .item-title-l2 {
          span {
            font-size: 22px;
          }
          strong {
            font-size: 22px;
              color: var(--ctm-color-aa);
          }
        }
      }
      .item-content {
        margin-top: 25px;
        font-size: var(--ctm-base-font-size);
        .parts-accordion {
          --parts-section-faq-icon-len: calc(19px + 13px);
          &+.parts-accordion {
            margin-top: 10px;
          }
          &.current {
            .item-accordion-trigger {
              border-radius: 10px 10px 0 0;
            }
          }
          .item-accordion-trigger,
          .item-accordion-target {
            background-color: #fff;
            padding: 15px;
          }
          .item-accordion-trigger {
            border-radius: 15px;
            .item-accordion-title {
              font-size: inherit;
              font-weight: bold;
              padding: 0px var(--parts-section-faq-icon-len);
              position: relative;
              &::before {
                content: "Q";
                color: var(--ctm-color-aa);
                font-size: 22px;
                line-height: 1;
                position: absolute;
                left: 0;
                top: calc(50% - 22px / 2);
              }
              &.item-accordion-icon::after {
                width: 23px;
                height: 14px;
                position: absolute;
                right: 0;
                top: calc(50% - (14px / 2));
              }
              .item-font {
                font-size: 16px;
              }
            }
          }
          .item-accordion-target {
            border-radius: 0 0 10px 10px;
            padding-top: 0;            
            .item-accordion-body {
              border-top: var(--ctm-border-width) dashed #ece9dd;
              padding: 15px 0 0px var(--parts-section-faq-icon-len);
              position: relative;
              font-size: 15px;
              &::before {
                content: "A";
                font-weight: bold;
                color: var(--ctm-color-aa);
                font-size: 22px;
                color: #4b97ce;
                line-height: 1;
                position: absolute;
                left: 0;
              }
            }
          }
          

        }

      }
    }
  }
}



/*- ---------------------------------------------------
 * parts-section-contact
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-section-contact {
    padding: 6.25em/* 100px */ 0 7.5em/* 120px */ 0;
    background-color: #fff;
    position: relative;
    font-size: 0.83vw;
    .item-contact {
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 0.625em/* 10px */ 0;
        line-height: 1;
        font-size: inherit;
        .item-title-l1 {
          display: flex;
          align-items: baseline;
          justify-content: center;
          gap: 0.5em/* 8px */;
          .item-font {
            font-size: clamp(var(--ctm-base-font-size-min), 2.188em, 35.0px);
          }
        }
        .item-title-l2 {
          .item-font {
            font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
          }
          strong {
            font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
            color: var(--ctm-color-aa);
          }
        }
      }
      .item-content {
        margin: 3.125em/* 50px */ auto 0 auto;
        iframe {
          border-radius: 2.5em/* 40px */;
        }
      }
    }
  }
}


/* SP向け */
@media (width < 769px) {
  .parts-section-contact {
    padding: 35px 0;
    background-color: #fff;
    position: relative;
    .item-contact {
      padding-left: 20px;
      padding-right: 20px;
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 10px 0;
        line-height: 1;
        .item-title-l1 {
          font-size: 16px;
          display: flex;
          align-items: baseline;
          justify-content: center;
          gap: 0 8px;
        }
        .item-title-l2 {
          span {
            font-size: 22px;
          }
          strong {
            font-size: 22px;
              color: var(--ctm-color-aa);
          }
        }
      }
      .item-content {
        margin: 25px auto 0 auto;
        iframe {
          border-radius: 15px;
        }
      }
    }
  }
}



/* ----------------------------------------------------
 * グリッド
 * ---------------------------------------------------- */

/* グリッド(flex) */
.has-flex {
  /*letter-spacing: -0.5em;*/
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  align-content: stretch;
  /* 変更したい箇所のみ--ctm-has-flex-gap変更で変更箇所のみ変わる。rem vwもOK。 */
  --ctm-has-flex-gap: 20px;
  gap: var(--ctm-has-flex-gap) var(--ctm-has-flex-gap);
}
.has-flex[data-col] > .has-grid-item {
  position: relative;
  --ctm-has-flex-col: 1;
  flex-basis: calc(100% / var(--ctm-has-flex-col) - ( var(--ctm-has-flex-col) - 1 ) * var(--ctm-has-flex-gap) / var(--ctm-has-flex-col));
  width: calc(100% / var(--ctm-has-flex-col) - ( var(--ctm-has-flex-col) - 1 ) * var(--ctm-has-flex-gap) / var(--ctm-has-flex-col));
  max-width: calc(100% / var(--ctm-has-flex-col) - ( var(--ctm-has-flex-col) - 1 ) * var(--ctm-has-flex-gap) / var(--ctm-has-flex-col));
}
.has-flex > .has-grid-item {
  display: inline-block;
  vertical-align: top;
  position: relative;
  width: 100%;
  order: 0;
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: auto;
  align-self: auto;
}
/* グリッド(flex)：PC向け */
@media (width >= 769px) {
  .has-flex[data-col*="pc2"] > .has-grid-item {--ctm-has-flex-col: 2;}
  .has-flex[data-col*="pc3"] > .has-grid-item {--ctm-has-flex-col: 3;}
  .has-flex[data-col*="pc4"] > .has-grid-item {--ctm-has-flex-col: 4;}
  .has-flex[data-col*="pc5"] > .has-grid-item {--ctm-has-flex-col: 5;}
  .has-flex[data-col*="pc6"] > .has-grid-item {--ctm-has-flex-col: 6;}
  .has-flex[data-col*="pc7"] > .has-grid-item {--ctm-has-flex-col: 7;}
}
/* グリッド(flex)：SP向け */
@media (width < 769px) {
  .has-flex[data-col*="sp2"] > .has-grid-item {--ctm-has-flex-col: 2;}
  .has-flex[data-col*="sp3"] > .has-grid-item {--ctm-has-flex-col: 3;}
  .has-flex[data-col*="sp4"] > .has-grid-item {--ctm-has-flex-col: 4;}
  .has-flex[data-col*="sp5"] > .has-grid-item {--ctm-has-flex-col: 5;}
  .has-flex[data-col*="sp6"] > .has-grid-item {--ctm-has-flex-col: 6;}
  .has-flex[data-col*="sp7"] > .has-grid-item {--ctm-has-flex-col: 7;}
}
/* グリッド(flex)：縦位置中央 */
.has-flex.has-flex-nowrap.has-flex-verticalcenter,
.has-flex.has-flex-verticalcenter {
  align-items: center;
  align-content: center;
}
/* グリッド(flex)：縦位置下 */
.has-flex.has-flex-nowrap.has-flex-verticalbottom,
.has-flex.has-flex-verticalbottom {
  align-items: flex-end;
  align-content: flex-end;
}
/* グリッド(flex)：折り返さない */
.has-flex.has-flex-nowrap {
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
  align-content: stretch;
}
.has-flex-nowrap > .has-grid-item {
  width: 100%;
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
  align-self: auto;
}
/* グリッド(flex)：余白均等（折り返さない） */
.has-flex.has-flex-space-between {
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: stretch;
  align-content: stretch;
}
.has-flex.has-flex-space-between > .has-grid-item {
  width: auto;
}


/* グリッド(table) */
.has-table {
  display: block;
  display: table;
  width: 100%;
}
.has-table > .has-table-item {
  display: inline-block;
  *display: inline;
  *zoom: 1;
  display: table-cell;
  word-wrap : break-word;
  overflow-wrap : break-word;
  vertical-align: middle;
}


/* グリッド(grid) */
.has-grid {
  /*letter-spacing: -0.5em;*/
  width: 100%;
  display: grid;
  --ctm-has-grid-col: 1;
  --ctm-grid-len: calc(100% / var(--ctm-has-grid-col) - ( var(--ctm-has-grid-col) - 1 ) * var(--ctm-has-grid-gap) / var(--ctm-has-grid-col));
  grid-template-columns: repeat(var(--ctm-has-grid-col),var(--ctm-grid-len));
  /* 変更したい箇所のみ--ctm-has-grid-gap変更で変更箇所のみ変わる。rem vwもOK。 */
  --ctm-has-grid-gap: 20px;
  gap: var(--ctm-has-grid-gap) var(--ctm-has-grid-gap);
}
.has-grid[data-col] > .has-grid-item {
  position: relative;
}
.has-grid > .has-grid-item {
  display: inline-block;
  position: relative;
  width: 100%;
}
/* グリッド(grid)：縦位置中央 */
.has-grid[data-row-center="true"] > .has-grid-item {
  align-items: center;
}
/* グリッド(grid)：1個目のみ大きくする */
.has-grid[data-col].item-first-large > .has-grid-item:first-child {
  grid-column: 1 / calc(var(--ctm-has-grid-col) + 1);
}  
/* グリッド(grid)：n行の横位置を揃える */
.has-grid[data-row] > .has-grid-item {
  --ctm-has-grid-sub-row: 1;
  --ctm-has-grid-gap-sub: 10px;

  display: grid;
  grid-row: span var(--ctm-has-grid-sub-row);
  grid-template-rows: subgrid;
  gap: var(--ctm-has-grid-gap-sub);
}  
.has-grid[data-row="2"] > .has-grid-item {--ctm-has-grid-sub-row: 2;}
.has-grid[data-row="3"] > .has-grid-item {--ctm-has-grid-sub-row: 3;}
.has-grid[data-row="4"] > .has-grid-item {--ctm-has-grid-sub-row: 4;}
.has-grid[data-row="5"] > .has-grid-item {--ctm-has-grid-sub-row: 5;}
.has-grid[data-row="6"] > .has-grid-item {--ctm-has-grid-sub-row: 6;}
.has-grid[data-row="7"] > .has-grid-item {--ctm-has-grid-sub-row: 7;}
.has-grid[data-row="8"] > .has-grid-item {--ctm-has-grid-sub-row: 8;}
.has-grid[data-row="9"] > .has-grid-item {--ctm-has-grid-sub-row: 9;}
.has-grid[data-row="10"] > .has-grid-item {--ctm-has-grid-sub-row: 10;}

/* グリッド(flex)：PC向け */
@media (width >= 769px) {
  .has-grid[data-col*="pc2"] {--ctm-has-grid-col: 2;}
  .has-grid[data-col*="pc3"] {--ctm-has-grid-col: 3;}
  .has-grid[data-col*="pc4"] {--ctm-has-grid-col: 4;}
  .has-grid[data-col*="pc5"] {--ctm-has-grid-col: 5;}
  .has-grid[data-col*="pc6"] {--ctm-has-grid-col: 6;}
  .has-grid[data-col*="pc7"] {--ctm-has-grid-col: 7;}
}
/* グリッド(flex)：SP向け */
@media (width < 769px) {
  .has-grid[data-col*="sp2"] {--ctm-has-grid-col: 2;}
  .has-grid[data-col*="sp3"] {--ctm-has-grid-col: 3;}
  .has-grid[data-col*="sp4"] {--ctm-has-grid-col: 4;}
  .has-grid[data-col*="sp5"] {--ctm-has-grid-col: 5;}
  .has-grid[data-col*="sp6"] {--ctm-has-grid-col: 6;}
  .has-grid[data-col*="sp7"] {--ctm-has-grid-col: 7;}
}


/*- ---------------------------------------------------
 * content-overlay-block：画面一杯に広がる要素
 * ---------------------------------------------------- */
.content-overlay-block {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 100;
  /*cursor: pointer;*/
  background: rgba(0,0,0,0.2);
}
.content-overlay-inner {
  margin: auto;
  padding: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  /*
    width: 1000px;
    background: #fff;
    height: 90vh;
    overflow: hidden;
    overflow-y: scroll;
  */
}
.content-overlay-block .overlay-bg-close {
  cursor: pointer;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.content-overlay-block .overlay-close {
  position: absolute;
  display: block;
  right: 15px;
  top: 15px;
  bottom: auto;
  left: 0;
  z-index: 101;
  text-align: right;
  cursor: pointer;
  margin: 0 auto;
}
.content-overlay-block .overlay-close::before {
  content: "";
  background-image: url("../img/icon_close.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: 50% 50%;
  display: inline-block;
  position: static;
  width: 20px;
  height: 20px;
}
/* content-overlay-block：PC向け */
@media (width >= 769px) {
}
/* content-overlay-block：SP向け */
@media (width < 769px) {
  .content-overlay-block .overlay-close {
    width: 90%;
    right: 0px;
    top: 4vw;
  }
  .content-overlay-block .overlay-close::before {
    width: 14px;
    height: 14px;
    
  }
}



/*- ---------------------------------------------------
 * slick
 * ---------------------------------------------------- */
/* slick.css */
/* Slider */
.slick-slider {
  position: relative;

  display: block;
  box-sizing: border-box;

  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;

  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;

  display: block;
  overflow: hidden;

  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  top: 0;
  left: 0;

  display: block;
  margin-left: auto;
  margin-right: auto;
}

.slick-track:before,
.slick-track:after {
  display: table;

  content: '';
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  display: none;
  float: left;

  height: 100%;
  min-height: 1px;
}

[dir='rtl'] .slick-slide {
  float: right;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;

  height: auto;

  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}


/* slick-theme */
/* Slider */
.slick-loading .slick-list {
  background: #fff url(../img/ajax-loader.gif) center center no-repeat;
}

/* Arrows */
.slick-prev,
.slick-next {
  font-size: 0;
  line-height: 0;

  position: absolute;
  top: 50%;

  display: block;

  width: 20px;
  height: 20px;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);

  cursor: pointer;

  color: transparent;
  border: none;
  outline: none;
  background: transparent;
}
.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus {
  outline: none;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
  opacity: .25;
}
.slick-prev:before,
.slick-next:before {
  font-size: 20px;
  line-height: 1;
  color: white;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.slick-prev {
  left: -25px;
}
[dir='rtl'] .slick-prev {
  right: -25px;
  left: auto;
}
.slick-prev:before {
  content: '←';
}
[dir='rtl'] .slick-prev:before {
  content: '→';
}
.slick-next {
  right: -25px;
}
[dir='rtl'] .slick-next {
  right: auto;
  left: -25px;
}
.slick-next:before {
  content: '→';
}
[dir='rtl'] .slick-next:before {
  content: '←';
}
/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px;
}
.slick-dots {
  position: absolute;
  bottom: -25px;

  display: block;

  width: 100%;
  padding: 0;
  margin: 0;

  list-style: none;

  text-align: center;
}
.slick-dots li {
  position: relative;

  display: inline-block;

  width: 20px;
  height: 20px;
  margin: 0 5px;
  padding: 0;

  cursor: pointer;
}
.slick-dots li button {
  font-size: 0;
  line-height: 0;

  display: block;

  width: 20px;
  height: 20px;
  padding: 5px;

  cursor: pointer;

  color: transparent;
  border: 0;
  outline: none;
  background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus {
  outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
  opacity: 1;
}
.slick-dots li button:before {
  font-family: 'slick';
  font-size: 6px;
  line-height: 20px;

  position: absolute;
  top: 0;
  left: 0;

  width: 20px;
  height: 20px;

  content: '•';
  text-align: center;

  opacity: .25;
  color: black;

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before {
  opacity: .75;
  color: black;
}

/* slick共通カスタマイズ */
/* PC向け */
@media (width >= 769px) {
  .slick-slider {
    --ctm-slick-margin: 1.25em/* 20px */;
    --ctm-slick-arrow-len: 5em/* 80px */;
    --ctm-slick-arrow-inner-len: 1.4em;
    --ctm-slick-arrow-pos: 1em;
    --ctm-slick-dots-bottom-margin: 3.125em/* 50px */;
    --ctm-slick-dots-gap: 0.625em/* 10px */;
    --ctm-slick-dots-width: 3.75em/* 60px */;
    --ctm-slick-dots-height: 0.625em/* 10px */;
    overflow: hidden;
    &.slick-dotted {
      padding-bottom: var(--ctm-slick-dots-bottom-margin);
    }
  }
  .slick-list {
    /*overflow: hidden;*/
    overflow: visible;
  }
  .slick-track {
    display: flex;
    /*gap: var(--ctm-slick-margin);*/
  }
  .slick-initialized .slick-slide {
    display: flex;
  }
  .slick-slide {
    /* stretchで高さを揃える */
    float: none;
    height: auto;
    /* flexにしてstretchを有効にすると高さは一番高い要素に合わせる */
    display: flex;
    align-self: stretch;
    padding: 0 calc(var(--ctm-slick-margin) / 2);
  }
  .slick-arrow {
    background-color: var(--ctm-color-font);
    z-index: 1;
    font-size: var(--ctm-base-font-size);
    border-radius: 50%;
    text-align: left;
    color: #fff;
    line-height: 1;
    height: var(--ctm-slick-arrow-len);
    width: var(--ctm-slick-arrow-len);
    transform: none;
    top: calc(50% - var(--ctm-slick-arrow-len) / 2);
    span {
      display: none;
    }
    &:hover {
      background-color: #656565;
    }
    &::before {
      content: "";
      display: block;
      opacity: 1;
      height: var(--ctm-slick-arrow-inner-len);
      width: 100%;
      margin: auto;

      background-image: url(../img/icon_prev_white_left_pc.png);
      background-repeat: no-repeat;
      background-position: 48% 50%;
      background-size: contain;
    }
  }
  .slick-prev {
    left: var(--ctm-slick-arrow-pos);
  }
  .slick-next {
    right: var(--ctm-slick-arrow-pos);
    transform: scale(-1, 1);
  }
  .slick-dots {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--ctm-slick-dots-gap);
    bottom: 0;
    left: 0;
    li {
      padding: 0;
      margin: 0;
      border-radius: 0.125em/* 2px */;
      width: var(--ctm-slick-dots-width);
      height: var(--ctm-slick-dots-height);
      button {
        background-color: #fff;
        width: inherit;
        height: inherit;      
      }
      &.slick-active {
        button {
          background-color: #d0c8a0;
        }
      }
    }
  }
}
/* SP向け */
@media (width < 769px) {
  .slick-slider {
    --ctm-slick-margin: 10px;
    --ctm-slick-arrow-len: 40px;
    --ctm-slick-arrow-inner-len: 0.75em/* 12px */;
    --ctm-slick-arrow-pos: 1em;/* 正確な位置調整はjsでできるようにした。 */
    --ctm-slick-dots-bottom-margin: 33px;
    --ctm-slick-dots-gap: 10px;
    --ctm-slick-dots-width: 40px;
    --ctm-slick-dots-height: 8px;
    overflow: hidden;
    &.slick-dotted {
      padding-bottom: var(--ctm-slick-dots-bottom-margin);
    }
  }
  .slick-list {
    /*overflow: hidden;*/
    overflow: visible;
  }
  .slick-track {
    display: flex;
    /*gap: var(--ctm-slick-margin);*/
  }
  .slick-initialized .slick-slide {
    display: flex;
  }
  .slick-slide {
    /* stretchで高さを揃える */
    float: none;
    height: auto;
    /* flexにしてstretchを有効にすると高さは一番高い要素に合わせる */
    display: flex;
    align-self: stretch;
    padding: 0 calc(var(--ctm-slick-margin) / 2);
  }
  .slick-arrow {
    background-color: var(--ctm-color-font);
    z-index: 1;
    font-size: var(--ctm-base-font-size);
    border-radius: 50%;
    text-align: left;
    color: #fff;
    line-height: 1;
    height: var(--ctm-slick-arrow-len);
    width: var(--ctm-slick-arrow-len);
    transform: none;
    top: calc(50% - var(--ctm-slick-arrow-len) / 2);
    span {
      display: none;
    }
    &:hover {
      background-color: #656565;
    }
    &::before {
      content: "";
      display: block;
      opacity: 1;
      height: var(--ctm-slick-arrow-inner-len);
      width: 100%;
      margin: auto;

      background-image: url(../img/icon_prev_white_left_pc.png);
      background-repeat: no-repeat;
      background-position: 48% 50%;
      background-size: contain;
    }
  }
  .slick-prev {
    left: var(--ctm-slick-arrow-pos);
  }
  .slick-next {
    right: var(--ctm-slick-arrow-pos);
    transform: scale(-1, 1);
  }
  .slick-dots {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--ctm-slick-dots-gap);
    bottom: 0;
    left: 0;
    li {
      padding: 0;
      margin: 0;
      border-radius: 2px;
      width: var(--ctm-slick-dots-width);
      height: var(--ctm-slick-dots-height);
      button {
        background-color: #fff;
        width: inherit;
        height: inherit;      
      }
      &.slick-active {
        button {
          background-color: #d0c8a0;
        }
      }
    }
  }
}



/*- ---------------------------------------------------
 * parts-expert 基本はモーダルスタイル。その他での表示は上書き。
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-expert {
    background-color: #fff;
    padding: 3.125em/* 50px */;
    border-radius: 3.125em/* 50px */;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.875em/* 30px */;
    .item-close {
      --ctm-parts-expert-icon-len: 5em/* 80px */;
      border-radius: 0 1.875em/* 30px */ 0 0;
      background-color: var(--ctm-color-font);
      display: block;
      cursor: pointer;
      position: absolute;
      top: 0;
      right: 0;
      height: var(--ctm-parts-expert-icon-len);
      width: var(--ctm-parts-expert-icon-len);
      display: flex;
      align-items: center;
      justify-content: center;
      &::before {
        content: "";
        background-image: url(../img/icon_close.png);
        background-position: 50% 50%;
        background-repeat: no-repeat;
        background-size: contain;
        display: block;
        height: calc(var(--ctm-parts-expert-icon-len) / 2.5);
        width: calc(var(--ctm-parts-expert-icon-len) / 2.5);
      }
      &:hover {
        background-color: #656565;
      }
    }
    .item-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1.25em/* 20px */;
      .item-img {
        width: 50%;
        img {
          width: 30em/* 480px */;
          border-radius: 1.563em/* 25px */;
        }
      }                    
      .item-txt {
        width: 50%;
        .item-txt-kana {
          font-weight: bold;
          line-height: 1;
          .item-font {
            font-size: clamp(var(--ctm-base-font-size-min), 1em, 16.0px);

          }
        }
        .item-txt-name {
          font-weight: bold;
          margin-top: 0.625em/* 10px */;
          line-height: 1;
          .item-font {
            font-size: clamp(var(--ctm-base-font-size-min), 1.625em, 26.0px);
          }
        }
        .item-txt-qualification {
          border: 1px dashed #d0c8a0;
          border-left: none;
          border-right: none;
          margin-top: 0.938em/* 15px */;
          padding: 0.938em 0 0.938em 0;/*15px 0 15px 0*/
          .item-txt-qualification-list {
            display: flex;
            align-items: center;
            justify-content: stretch;
            flex-wrap: wrap;
            gap: 0.313em/* 5px */;
            li {
              display: flex;
              gap: 0.313em/* 5px */;
              .item-font {
                font-size: clamp(var(--ctm-base-font-size-min), 1.375em, 22.0px);
              }
              &::after {
                content: "/";
              }
              &:last-child::after {
                display: none;
              }
            }
          }
        }
      }
    }
    .item-body {
      .item-body-title {
        display: inline-block;
        color: var(--ctm-color-aa);
        border: 0.125em/* 2px */ solid var(--ctm-color-aa);
        padding: 0.125em/* 2px */ 1.25em/* 20px */;
        line-height: 1.6;
        font-weight: bold;
        border-radius: 3.125em/* 50px */;
        margin-bottom: 1.25em/* 20px */;
        margin-top: 1.875em/* 30px */;
        .item-font {
          font-size: clamp(var(--ctm-base-font-size-min), 1.375em, 22.0px);
        }
        &:first-child {
          margin-top: 0;
        }
      }
      .item-body-field {
        .item-body-field-list {
          display: flex;
          flex-wrap: wrap;
          gap: 0.625em/* 10px */;
          li {
            background-color: #f7f5ec;
            border-radius: 0.313em/* 5px */;
            padding: 0.625em 0.75em;/*10px 12px*/
            line-height: 1;
            .item-font {
              font-size: clamp(var(--ctm-base-font-size-min), 1.125em, 18.0px);
            }
          }
        }
      }
      .item-note {
        .item-font {
          font-size: clamp(var(--ctm-base-font-size-min), 1.125em, 18.0px);
          line-height: 2;
        }
      }
    }
    /* 一覧で使用 */
    .item-footer {
      --ctm-parts-expert-icon-len: 1.5em/* 24px */;
      cursor: pointer;
      text-align: center;
      padding: 1.25em/* 20px */ 0;
      border-top: 1px dashed #d0c8a0;
      margin: auto -0.625em/* -10px */;
      position: relative;
      .item-font {
        position: relative;
        &::before,
        &::after {
          content: "";
        }
        &::before {
          content: "プロフィール";
          font-weight: bold;
          font-size: clamp(var(--ctm-base-font-size-min), 1.25em, 20.0px);
        }
        &::after {
          content: "";
          display: block;
          background-image: url(../img/icon_add_act.png);
          background-size: contain;
          height: var(--ctm-parts-expert-icon-len);
          width: var(--ctm-parts-expert-icon-len);
          position: absolute;
          right: calc(-0px - var(--ctm-parts-expert-icon-len) - 0.375em/* 6px */);
          top: calc(50% - var(--ctm-parts-expert-icon-len) / 2);
        }
      }
    }
  }
}
/* SP向け */
@media (width < 769px) {
  .parts-expert {
    background-color: #fff;
    padding: 20px;
    border-radius: 15px;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 15px;
    .item-close {
      --ctm-parts-expert-icon-len: 45px;
      border-radius: 0 15px 0 0;
      background-color: var(--ctm-color-font);
      display: block;
      cursor: pointer;
      position: absolute;
      top: 0;
      right: 0;
      height: var(--ctm-parts-expert-icon-len);
      width: var(--ctm-parts-expert-icon-len);
      display: flex;
      align-items: center;
      justify-content: center;
      &::before {
        content: "";
        background-image: url(../img/icon_close.png);
        background-position: 50% 50%;
        background-repeat: no-repeat;
        background-size: contain;
        display: block;
        height: calc(var(--ctm-parts-expert-icon-len) / 2.5);
        width: calc(var(--ctm-parts-expert-icon-len) / 2.5);
      }
      &:hover {
        background-color: #656565;
      }
    }
    .item-head {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      justify-content: space-between;
      gap: 15px;
      .item-img {
        img {
          width: auto;
          border-radius: 10px;
        }
      }                    
      .item-txt {
        display: block;
        .item-txt-kana {
          font-weight: bold;
          line-height: 1;
          .item-font {
            font-size: 12px;

          }
        }
        .item-txt-name {
          font-weight: bold;
          margin-top: 10px;
          line-height: 1;
          .item-font {
            font-size: 20px;
          }
        }
        .item-txt-qualification {
          border: 1px dashed #d0c8a0;
          border-left: none;
          border-right: none;
          margin-top: 15px;
          padding: 15px 0 15px 0;
          .item-txt-qualification-list {
            font-size: 16px;
            display: flex;
            align-items: center;
            justify-content: stretch;
            flex-wrap: wrap;
            gap: 0.313em/* 5px */;
            li {
              display: flex;
              gap: 0.313em/* 5px */;
              &::after {
                content: "/";
              }
              &:last-child::after {
                display: none;
              }
            }
          }
        }
      }
    }
    .item-body {
      .item-body-title {
        display: inline-block;
        color: var(--ctm-color-aa);
        border: 1px solid var(--ctm-color-aa);
        padding: 0px 16px;
        line-height: 1.6;
        font-weight: bold;
        border-radius: 50px;
        margin-bottom: 10px;
        margin-top: 15px;
        .item-font {
          font-size: 15px;
        }
        &:first-child {
          margin-top: 0;
        }
      }
      .item-body-field {
        .item-body-field-list {
          display: flex;
          flex-wrap: wrap;
          gap: 5px;
          li {
            background-color: #f7f5ec;
            border-radius: 5px;
            padding: 8px 6px;
            line-height: 1;
            font-size: 13px;
          }
        }
      }
      .item-note {
        .item-font {
          font-size: 13px;
          line-height: 1.8;

        }
      }
    }
    /* 一覧で使用 */
    .item-footer {
      --ctm-parts-expert-icon-len: 15px;
      cursor: pointer;
      text-align: center;
      padding: 12px 0;
      border-top: 1px dashed #d0c8a0;
      margin: auto -5px;
      position: relative;
      .item-font {
        position: relative;
        &::before,
        &::after {
          content: "";
        }
        &::before {
          content: "プロフィール";
          font-weight: bold;
          font-size: 13px;
        }
        &::after {
          content: "";
          display: block;
          background-image: url(../img/icon_add_act.png);
          background-size: contain;
          height: var(--ctm-parts-expert-icon-len);
          width: var(--ctm-parts-expert-icon-len);
          position: absolute;
          right: calc(-0px - var(--ctm-parts-expert-icon-len) - 2px);
          top: calc(50% - var(--ctm-parts-expert-icon-len) / 2);
        }
      }

    }
  }
}




/*- ---------------------------------------------------
 * parts-section-expert
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-section-expert {
    font-size: 0.83vw;
    padding: 6.25em 0 8.438em 0;/*100px 0 135px 0*/
    background-color: #f7f5ec;
    position: relative;
    .item-expert {
      max-width: none;
      h2{
        font-size: inherit;
        .item-section-title {
          text-align: center;
          display: flex;
          flex-direction: column;
          gap: 0.625em/* 10px */ 0;
          line-height: 1;
          .item-title-l1 {
            display: inline;
            padding-bottom: 1.25em/* 20px */;
            margin-bottom: 2.5em/* 40px */;
            max-inline-size: max-content;
            margin-inline: auto;
            position: relative;

            span.item-font {
              font-size: clamp(var(--ctm-base-font-size-min), 2.5em, 40.0px);
            }
            strong {
              color: var(--ctm-color-aa);
              &.item-font-num {
                font-size: clamp(var(--ctm-base-font-size-min), 3.438em, 55.0px);
              }
              &.item-font {
                font-size: clamp(var(--ctm-base-font-size-min), 2.5em, 40.0px);
              }
            }
            &::after {
              content: "";
              width: 100%;
              border-bottom: 0.375em/* 6px */ dashed var(--ctm-color-font);
              position: absolute;
              left: 0;
              bottom: 0;
            }
          }
          .item-title-l2 {
            line-height: 1.3;
            strong {
              font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
                color: var(--ctm-color-aa);
            }
            .item-title-l2-sub .item-font {
              font-size: clamp(var(--ctm-base-font-size-min), 2.813em, 45.0px);
            }
          }
        }
      }
      .item-content {
        margin: 0 auto 0 auto;

        /* original表示 */
        .item-original {
          display: none;

        }
        /* overlay表示 */
        .content-overlay-block {
          .js-section-expert-modal {
            display: flex;
          }
          .item-footer,
          .overlay-close {
            display: none;
          }
          .parts-expert {
            max-width: 62.5em/* 1000px */;
            margin: auto;
          }



        }
        /* 簡易表示 */
        .parts-expert-simple-view {

          /* slick 個別書き換え */
          &.slick-slider {
            /*
            --ctm-slick-margin: 20px;
            --ctm-slick-arrow-len: 40px;
            --ctm-slick-arrow-inner-len: 0.75em;
            --ctm-slick-arrow-pos: 1em;
            --ctm-slick-dots-bottom-margin: 33px;
            --ctm-slick-dots-gap: 10px;
            --ctm-slick-dots-width: 40px;
            --ctm-slick-dots-height: 8px;
            */
            --ctm-slick-margin: 1.25em/* 20px */;
            --ctm-slick-dots-gap: 1.25em/* 20px */;
            padding-top: 3.125em/* 50px */;
            margin: 0;
            /* 擬似センターモード = チラ見せ余白 */
            --ctm-slick-sneak-peek-margin: 18vw;
            padding-left: var(--ctm-slick-sneak-peek-margin);
            padding-right: var(--ctm-slick-sneak-peek-margin);
            /* PC調整 */
            .slick-list {
              .slick-track {
                .slick-slide {
                  --parts-expert-margin: var(--ctm-slick-margin);
                  gap: var(--parts-expert-margin);
                  .parts-expert {
                    cursor: pointer;
                    --ctm-has-flex-col: 1;
                    --ctm-has-flex-formula: calc(100% / var(--ctm-has-flex-col) - (var(--ctm-has-flex-col) - 1) * var(--parts-expert-margin) / var(--ctm-has-flex-col));
                    flex-basis: var(--ctm-has-flex-formula);
                    width: var(--ctm-has-flex-formula);
                    max-width: var(--ctm-has-flex-formula);
                    gap: 0;
                    &:hover::before {
                      content: "";
                      display: block;
                      height: 100%;
                      width: 100%;
                      border-radius: inherit;
                      border: 0.125em/* 2px */ solid #656565;
                      position: absolute;
                      z-index: 0;
                    }
                    .item-head {
                      text-align: center;
                      .item-img {
                        width: 100%;
                      }                    
                      .item-txt {
                        width: 100%;
                      }
                    }
                    .item-body-field {
                      margin-top: 1.25em/* 20px */;
                      margin-bottom: 0.625em/* 10px */;
                      .item-body-field-list {
                        display: inline-block;
                        overflow: hidden;
                        height: 5.438em/* 87px */;
                        li {
                          font-size: clamp(var(--ctm-base-font-size-min), 1em, 16.0px);
                          display: inline-block;
                          margin-right: 0.625em/* 10px */;
                          margin-bottom: 0.625em/* 10px */;
                        }
                      }
                    }
                  }
                }
              }
            }
          }

          /* 簡易表示用に調整 */
          .parts-expert {
            box-shadow: 0px 0px 1.25em/* 20px */ rgba(194,188,161,0.25);
            padding: 0;
            border-radius: 1.875em/* 30px */;
            gap: 1.25em/* 20px */;
            .item-close {
              display: none;
            }
            .item-head {
              flex-direction: column;
              gap: 1.25em/* 20px */;
              margin: 0.625em 0.625em 0 0.625em;/*10px 10px 0 10px*/
              .item-img {
              }
              .item-txt {
                .item-txt-kana {
                  .item-font {
                    font-size: clamp(var(--ctm-base-font-size-min), 0.875em, 14.0px);
                  }
                }
                .item-txt-name {
                  margin-top: 0.5em/* 8px */;
                  .item-font {
                    font-size: clamp(var(--ctm-base-font-size-min), 1.5em, 24.0px);
                  }
                }
                .item-txt-qualification {
                  display: none;
                }
              }
            }
            .item-body {
              padding: 0 1.563em/* 25px */;
              .item-body-title {
                display: none;
              }
              .item-note {
                display: none;
              }
            }
            .item-footer {
              margin: auto 0;
            }
          }
        }
        /*  */
        .item-caption {
          text-align: center;
          margin: 3.125em/* 50px */ auto 0 auto;
          .parts-caption {
            font-size: clamp(var(--ctm-base-font-size-min), 0.875em, 14.0px);
          }
        }
      }
    }

  }
}
/* SP向け */
@media (width < 769px) {
  .parts-section-expert {
    padding: 35px 0 35px 0;
    background-color: #f7f5ec;
    position: relative;
    .item-expert {
      max-width: none;
      h2{
        font-size: inherit;
        .item-section-title {
          text-align: center;
          display: flex;
          flex-direction: column;
          gap: 10px 0;
          line-height: 1;
          .item-title-l1 {
            display: inline;
            padding-bottom: 10px;
            margin-bottom: 10px;
            max-inline-size: max-content;
            margin-inline: auto;
            position: relative;
            span {
              font-size: 19px;
              &.item-font-num {
                font-size: 22px;
              }
            }
            strong {
              font-size: 19px;
              color: var(--ctm-color-aa);
            }
            &::after {
              content: "";
              width: 100%;
              border-bottom: 2px dashed var(--ctm-color-font);
              position: absolute;
              left: 0;
              bottom: 0;
            }
          }
          .item-title-l2 {
            line-height: 1.3;
            strong {
              font-size: 22px;
                color: var(--ctm-color-aa);
            }
            .item-title-l2-sub span {
              font-size: 19px;
            }
          }
        }
      }
      .item-content {
        margin: 0 auto 0 auto;

        /* original表示 */
        .item-original {
          display: none;

        }
        /* overlay表示 */
        .content-overlay-block {
          .js-section-expert-modal {
            display: flex;
          }
          .item-footer,
          .overlay-close {
            display: none;
          }
          .parts-expert {
            max-width: 335px;
            overflow-x: auto;
            max-height: 100vh;
            margin: auto;
          }
        }
        /* 簡易表示 */
        .parts-expert-simple-view {

          /* slick 個別書き換え */
          &.slick-slider {
            /*
            --ctm-slick-margin: 20px;
            --ctm-slick-arrow-len: 40px;
            --ctm-slick-arrow-inner-len: 0.75em;
            --ctm-slick-arrow-pos: 1em;
            --ctm-slick-dots-bottom-margin: 33px;
            --ctm-slick-dots-gap: 10px;
            --ctm-slick-dots-width: 40px;
            --ctm-slick-dots-height: 8px;
            */
            padding-top: 25px;
            margin: 0;
            --ctm-slick-margin: 40px;
            --ctm-slick-dots-gap: 10px;
            --ctm-slick-arrow-pos: 10px;
            --ctm-slick-dots-height: calc(20px + var(--ctm-slick-dots-height));
            .slick-arrow {
              &::before {
                transform: translateY(-1px);
                background-position: 46% 50%;
              }
            }
            /* SPの2col調整 */
            .slick-list {
              .slick-track {
                .slick-slide {
                  display: flex;
                  flex-direction: row;
                  flex-wrap: wrap;
                  justify-content: flex-start;
                  align-items: stretch;
                  align-content: stretch;
                  --parts-expert-margin: 11px;
                  gap: var(--parts-expert-margin);
                  .parts-expert {
                    position: relative;
                    border-radius: 15px;
                    box-shadow: 0px 0px 20px rgba(194,188,161,0.25);
                    --ctm-has-flex-col: 2;
                    --ctm-has-flex-formula: calc(100% / var(--ctm-has-flex-col) - (var(--ctm-has-flex-col) - 1) * var(--parts-expert-margin) / var(--ctm-has-flex-col));
                    flex-basis: var(--ctm-has-flex-formula);
                    width: var(--ctm-has-flex-formula);
                    max-width: var(--ctm-has-flex-formula);
                    gap: 0;
                    /* 歯抜け時に高さが100%にならないように高さ制限 */
                    max-height: var(--ctm-has-flex-formula);
                    height: var(--ctm-has-flex-formula);
                    .item-head {
                      margin: 5px 5px 0 5px;
                      gap: 8px;
                      .item-txt {
                        line-height: 1;
                        text-align: center;
                        .item-txt-kana {
                          .item-font {
                            font-size: 10px;                            
                          }
                        }
                        .item-txt-name {
                          margin-top: 5px;
                          .item-font {
                            font-size: 15px;                            
                          }
                        }
                      }
                    }
                    .item-body {
                      padding: 0 10px;
                      .item-body-field {
                        margin-top: 10px;
                        margin-bottom: 7px;
                        .item-body-field-list {
                          display: inline-block;
                          overflow: hidden;
                          height: 50px;
                          li {
                            display: inline-block;
                            margin-right: 3px;
                            margin-bottom: 3px;
                            padding: 3px 4px;
                            font-size: 11px;
                            line-height: 1;
                          }
                        }
                      }
                    }
                    
                    .item-footer {
                      .item-font {
                        font-size: 13px;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        &::after {
                          display: inline-block;
                          position: static;
                          margin-left: 2px;
                        }
                      }
                    }

                  }
                }
              }
            }
          }

          /* 簡易表示用に調整 */
          .parts-expert {
            box-shadow: 0px 0px 20px rgba(194,188,161,0.25);
            padding: 0;
            border-radius: 30px;
            gap: 20px;
            .item-close {
              display: none;
            }
            .item-head {
              flex-direction: column;
              gap: 20px;
              margin: 10px 10px 0 10px;
              .item-img {
              }
              .item-txt {
                .item-txt-kana {
                  .item-font {
                    font-size: 14px;
                  }
                }
                .item-txt-name {
                  margin-top: 8px;
                  .item-font {
                    font-size: 24px;
                  }
                }
                .item-txt-qualification {
                  display: none;
                }
              }
            }
            .item-body {
              padding: 0 25px;
              .item-body-title {
                display: none;
              }
              .item-note {
                display: none;
              }
            }
            .item-footer {
              margin: auto 0;
            }
          }
        }
        /* caption */
        .item-caption {
          margin: 15px auto 0 auto;
          padding: 0 20px;
          .parts-caption {
            text-align: center;
            font-size: 11px;
          }
        }
      }
    }

  }
  /* safari bugfix */
  /*
  .browser-safari {
    .parts-section-expert .item-expert .item-content .parts-expert-simple-view[data-device="pc"] .slick-list .slick-track .slick-slide .parts-expert .item-body-field {
      margin-bottom: 0px;
      .item-body-field-list {
        padding-bottom: 20px;
      }
    }
  }
    */
}



/*- ---------------------------------------------------
 * parts-section-users-voice
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-section-users-voice {
    padding: 6.25em/* 100px */ 0 7.5em/* 120px */ 0;
    background-color: #f7f5ec;
    position: relative;
    font-size: 0.83vw;
    .item-users-voice {
      max-width: none;
      padding-left: 0;
      padding-right: 0;
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 0.625em/* 10px */ 0;
        line-height: 1;
        font-size: inherit;
        .item-title-l2 {
          span {
            font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
          }
          strong {
            font-size: clamp(var(--ctm-base-font-size-min), 3.75em, 60.0px);
            color: var(--ctm-color-aa);
          }
        }
      }
      .item-content {
        margin: 0 auto 0 auto;

        /* slick 個別書き換え */
        .slick-slider {
          /*
          --ctm-slick-margin: 20px;
          --ctm-slick-arrow-len: 40px;
          --ctm-slick-arrow-inner-len: 0.75em;
          --ctm-slick-arrow-pos: 1em;
          --ctm-slick-dots-bottom-margin: 33px;
          --ctm-slick-dots-gap: 10px;
          --ctm-slick-dots-width: 40px;
          --ctm-slick-dots-height: 8px;
          */
          --ctm-slick-margin: 1.25em/* 20px */;
          --ctm-slick-dots-gap: 1.25em/* 20px */;
          padding-top: 3.125em/* 50px */;
        }

        .item-inner {
          padding: 3.125em 5em;/*50px 80px*/
          background-color: #fff;
          border-radius: 2.5em/* 40px */;
          box-shadow: 0px 0px 1.25em/* 20px */ rgba(194,188,161,0.25);
          display: flex;
          flex-direction: column;
          justify-content: stretch;
          align-items: stretch;
          gap: 1.563em/* 25px */;
          /*height: 100%;*/
          .item-head {
            display: flex;
            align-items: center;
            gap: 1.875em/* 30px */;
            .item-img {
              img {
                width: 8.125em/* 130px */;
              }
            }
            .item-txt {
              display: flex;
              flex-direction: column;
              gap: 0.625em/* 10px */;
              .item-txt-title {
                font-weight: bold;
                .item-font {
                  font-size: clamp(var(--ctm-base-font-size-min), 1.875em, 30.0px);
                }
              }
              .item-txt-name {
                .item-font {
                  font-size: clamp(var(--ctm-base-font-size-min), 1.375em, 22.0px);
                }
              }
            }
          }
          .item-discription {
            .item-font {
              font-size: clamp(var(--ctm-base-font-size-min), 1.6em, 25.6px);/* 30px→25.6px */
            }

          }

        }


      }
    }
  }
}


/* SP向け */
@media (width < 769px) {
  .parts-section-users-voice {
    padding: 35px 0 35px 0;
    background-color: #f7f5ec;
    position: relative;

    .item-users-voice {
      max-width: none;
      padding: 0;
      .item-section-title {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 10px 0;
        line-height: 1;
        .item-title-l2 {
          span {
            font-size: 22px;
          }
          strong {
            font-size: 22px;
              color: var(--ctm-color-aa);
          }
        }
      }
      .item-content {
        margin: 0 auto 0 auto;

        /* slick 個別書き換え */
        .slick-slider {
          /*
          --ctm-slick-margin: 20px;
          --ctm-slick-arrow-len: 40px;
          --ctm-slick-arrow-inner-len: 0.75em;
          --ctm-slick-arrow-pos: 1em;
          --ctm-slick-dots-bottom-margin: 33px;
          --ctm-slick-dots-gap: 10px;
          --ctm-slick-dots-width: 40px;
          --ctm-slick-dots-height: 8px;
          */
          --ctm-slick-margin: 15px;
          --ctm-slick-dots-gap: 10px;
          padding-top: 25px;       
          &.slick-dotted {
            /* 改行したらdots-heightの行数分増やす。今は2行設定。 */
            padding-bottom: calc(var(--ctm-slick-dots-bottom-margin) + (var(--ctm-slick-dots-height) * 2));
          }
        }

        .item-inner {
          padding: 20px 15px;
          background-color: #fff;
          border-radius: 15px;
          box-shadow: 0px 0px 10px rgba(194,188,161,0.25);
          display: flex;
          flex-direction: column;
          justify-content: stretch;
          align-items: stretch;
          gap: 15px;
          height: 100%;
          .item-head {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 15px;
            .item-img {
              img {
                width: 80px;
              }
            }
            .item-txt {
              display: flex;
              flex-direction: column;
              gap: 5px;
              .item-txt-title {
                font-weight: bold;
                .item-font {
                  font-size: 22px;
                }
              }
              .item-txt-name {
                .item-font {
                  font-size: 15px;
                }
              }
            }

          }
          .item-discription {
            .item-font {
              font-size: 15px;

            }

          }

        }


      }
    }
  }
}



/*- ---------------------------------------------------
 * parts-cta
 * ---------------------------------------------------- */
/* parts-cta */
/* PC向け */
@media (width >= 769px) {
  .parts-cta {
    font-size: 0.83vw;
  }
}
/* parts-cta：item-fixed */
@keyframes parts-cta-fade {
  from {opacity: 1;}
  to {opacity: 0;}
}
@keyframes parts-cta-fade-out {
  from {opacity: 0;}
  to {opacity: 1;}
}
/* PC向け */
@media (width >= 769px) {
  .parts-cta.item-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 90;
    text-align: center;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.75);
    padding: 1.25em/* 20px */ 0;
    .parts-btn-cta {
      margin: 0 auto;
    }
    .parts-btn-cta a {
      margin: 0 auto;
    }
    &.item-fixed.hidden {
      animation: parts-cta-fade 0.2s ease-in-out forwards;
      pointer-events: none;
    }
    &.visible {
      animation: parts-cta-fade-out 0.2s ease-in-out forwards;
      pointer-events: all;
    }
  }
}
/* SP向け */
@media (width < 769px) {
  .parts-cta.item-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 90;
    text-align: center;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.75);
    padding: 12px 0px;
    .parts-btn-cta {
      margin: 0 auto;
      width: 90%;
    }
    .parts-btn-cta a {
      margin: 0 auto;
    }
    &.item-fixed.hidden {
      animation: parts-cta-fade 0.2s ease-in-out forwards;
      pointer-events: none;
    }
    &.visible {
      animation: parts-cta-fade-out 0.2s ease-in-out forwards;
      pointer-events: all;
    }
  }
}

/* parts-cta：item-static */
/* PC向け */
@media (width >= 769px) {
  .parts-cta.item-static {
    background: var(--ctm-color-aa);
    padding: 1.875em/* 30px */ 0;
    .parts-btn-cta {
      margin: auto;
      max-width: 100%;
      .item-btn {
        max-width: var(--ctm-parts-btn-cta-max-width);
      }
    }
    .item-msg-bottom {
      margin-top: 1.188em/* 19px */;
      text-align: center;    
      color: #fff;
      font-weight: bold;
      line-height: 1;
      .item-tel {
        color: inherit;
        display: inline-block;
      }
      .item-txt-l1 {
        font-size: clamp(var(--ctm-base-font-size-min), 1.625em, 26.0px);
      }
      .item-txt-l2 {
        font-size: clamp(var(--ctm-base-font-size-min), 1.875em, 30.0px);
        display: inline-block;   
        margin-top: 1em/* 16px */;
      }
    }
  }
}
/* SP向け */
@media (width < 769px) {
  .parts-cta.item-static {
    background: var(--ctm-color-aa);
    padding: 25px 0;
    .parts-btn-cta {
      margin: auto;
      max-width: 100%;
      padding: 0px 0;
      .item-btn {
        max-width: var(--ctm-parts-btn-cta-max-width);
      }
    }
    .item-msg-bottom {
      margin-top: 15px;
      line-height: 1.3;
      text-align: center;    
      color: #fff;
      font-weight: bold;
      line-height: 1;
      .item-tel {
        font-size: 18px;
        color: inherit;
        display: inline-block;
      }
      .item-txt-l1 {
        font-size: 16px;
      }
      .item-txt-l2 {
        font-size: 14px;
        display: inline-block;   
        margin-top: 16px;
      }
    }
  }
}




/*- ---------------------------------------------------
 * parts-btn-cta
 * ---------------------------------------------------- */
/* PC向け */
@media (width >= 769px) {
  .parts-btn-cta {
    width: 100%;
    /* --ctm-parts-btn-cta-max-width: 354px; */
    --ctm-parts-btn-cta-max-width: 34.375em/* 550px */;
    --ctm-parts-btn-cta-border-width: 0.25em/* 4px */;
    /*--ctm-parts-btn-cta-height: 78px;*/
    --ctm-parts-btn-cta-height: 5.625em/* 90px */;
    --ctm-parts-btn-cta-radius: 3.313em/* 53px */;
    max-width: var(--ctm-parts-btn-cta-max-width);
    .item-click-area {
      display: block;
      position: absolute;
      height: 100%;
      width: 100%;
      left: 0;
      bottom: 0;
    }
    .item-btn {
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      background: linear-gradient(180deg, #fff476 50%, #f7eb67 50%);
      font-weight: bold;
      border-radius: var(--ctm-parts-btn-cta-radius);
      position: relative;
      height: var(--ctm-parts-btn-cta-height);

      color: inherit;
      padding: 0px 0.938em/* 15px */;
      margin: auto;

      /*transition: all 0.3s ease-in-out 0s;*/
      transition: all 0.1s ease-in-out 0s;
      /*transition: none;*/
      span {
        /*font-size: 22px;*/
        font-size: clamp(var(--ctm-base-font-size-min), 1.875em, 30.0px);
      }
      strong {
        color: var(--ctm-color-aa);
        /*font-size: 1.1em;*/
        font-size: clamp(var(--ctm-base-font-size-min), 2.25em, 36.0px);
      }
      &::before {
        content: "";
        display: block;
        border: var(--ctm-parts-btn-cta-border-width) solid var(--ctm-color-font);
        border-bottom-width: calc(var(--ctm-parts-btn-cta-border-width) * 2);
        height: calc(var(--ctm-parts-btn-cta-height) + var(--ctm-parts-btn-cta-border-width));
        border-radius: calc(var(--ctm-parts-btn-cta-radius) - (var(--ctm-parts-btn-cta-border-width)*2));
        position: absolute;
        width: 100%;
        bottom: calc(-0px - var(--ctm-parts-btn-cta-border-width));
        left: 0;
        transition: inherit;
      }
      &::after {
        content: "";
        display: block;
        position: absolute;
        /*
        width: 10px;
        height: 14px;
        */
        width: 0.938em/* 15px */;
        height: 1.5em/* 24px */;
        margin: auto;
        top: 0;
        bottom: 0;
        /* right: 4%; */
        right: 7.5%;
        background: var(--ctm-color-font);
        clip-path: polygon(0 0, 0 100%, 100% 50%);    
      }
      &:hover {
        background: linear-gradient(180deg, #fff8ac 50%, #f8ee86 50%);
        transform: translateY(3px);
        text-decoration: none;
        &::before {
          height: calc(var(--ctm-parts-btn-cta-height));
          border-bottom-width: var(--ctm-parts-btn-cta-border-width);
          bottom: 0;
        }
        /* 下に移動するため、上部ギリギリにマウスポインタを置いていくと連続アクションするのを回避する */
        .item-click-area {
          height: calc(100% + var(--ctm-parts-btn-cta-border-width) * 1);
        }
      }
    }
  }
}
/* SP向け */
@media (width < 769px) {
  .parts-btn-cta {
    width: 100%;
    /*--ctm-parts-btn-cta-radius: 60px;*/
    --ctm-parts-btn-cta-radius: 30px;
    --ctm-parts-btn-cta-border-width: 2px;
    /*--ctm-parts-btn-cta-height: 72px;*/
    --ctm-parts-btn-cta-height: 52px;
    --ctm-parts-btn-cta-max-width: 315px;
    max-width: var(--ctm-parts-btn-cta-max-width);
    .item-click-area {
      display: block;
      position: absolute;
      height: 100%;
      width: 100%;
      left: 0;
      bottom: 0;
    }
    .item-btn {
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      background: linear-gradient(180deg, #fff476 50%, #f7eb67 50%);
      font-weight: bold;
      border-radius: var(--ctm-parts-btn-cta-radius);
      position: relative;
      height: var(--ctm-parts-btn-cta-height);

      color: inherit;
      padding: 0px 15px;
      margin: auto;

      /*transition: all 0.3s ease-in-out 0s;*/
      transition: all 0.1s ease-in-out 0s;
      /*transition: none;*/
      span {
        /*font-size: 24px;*/
        font-size: 17px;
      }
      strong {
        color: var(--ctm-color-aa);
        /*font-size: 1.1em;*/
        font-size: 21px;
      }
      &::before {
        content: "";
        display: block;
        border: var(--ctm-parts-btn-cta-border-width) solid var(--ctm-color-font);
        border-bottom-width: calc(var(--ctm-parts-btn-cta-border-width) * 2);
        height: calc(var(--ctm-parts-btn-cta-height) + var(--ctm-parts-btn-cta-border-width));
        border-radius: calc(var(--ctm-parts-btn-cta-radius) - (var(--ctm-parts-btn-cta-border-width)*2));
        position: absolute;
        width: 100%;
        bottom: calc(-0px - var(--ctm-parts-btn-cta-border-width));
        left: 0;
        transition: inherit;
      }
      &::after {
        content: "";
        display: block;
        position: absolute;
        width: 8px;
        height: 13px;
        margin: auto;
        top: 0;
        bottom: 0;
        /* right: 4%; */
        right: 7.5%;
        background: var(--ctm-color-font);
        clip-path: polygon(0 0, 0 100%, 100% 50%);    
      }
      &:hover {
        background: linear-gradient(180deg, #fff8ac 50%, #f8ee86 50%);
        transform: translateY(3px);
        text-decoration: none;
        &::before {
          height: calc(var(--ctm-parts-btn-cta-height));
          border-bottom-width: var(--ctm-parts-btn-cta-border-width);
          bottom: 0;
        }
        /* 下に移動するため、上部ギリギリにマウスポインタを置いていくと連続アクションするのを回避する */
        .item-click-area {
          height: calc(100% + var(--ctm-parts-btn-cta-border-width) * 1);
        }
      }
      span {
        font-size: 14px;
      }
    }
  }
  .parts-btn-cta {
    .item-btn {
    }

  }
}






















