.menu-item {
  /* START 男性用 */
  &.is-man-menu {
    .c-title-en, .about__lead, .free__item-title {
      color: #3F4159;
    }
    .free__item-title {
      &::before {
        background: #3F4159;
      }
    }
    .price__child-button {
      background: #3F4159;
    }
    .price__main-title {
      background: #D3D4E0;
    }
    .faq-question {
      &::after {
        background-image: url("../../images/common/icon_open-man.svg");
      }
    }
    .faq-item {
      &.is-open {
        .faq-question {
          &::after {
            background-image: url("../../images/common/icon_close-man.svg");
          }
        }
      }
    }
  }
  /* END 男性用 */

  /* START 脱毛用 */
  &.is-hair-removal {
    .about {
      @media screen and (min-width: 769px) {
        display: flex;
        gap: min(100px, calc(var(--vw) * 100));
        align-items: center;
      }
    }
    .about__head {
      @media screen and (min-width: 769px) {
        flex-direction: column !important;
        justify-content: center;
        gap: min(56px, calc(var(--vw) * 56));
      }
    }
    .about__media {
      img,
      iframe {
        @media screen and (min-width: 769px) {
          object-fit: cover;
          width: min(430px, calc(var(--vw) * 430));
          height: 100% !important;
        }
      }
    }
  }
}

:where(.menu-item) {
  .menu-toc__list {
    border-top: 1px solid #DF8F9B;
    border-bottom: 1px solid #DF8F9B;
    flex-wrap: wrap;
    font-size: calc(var(--rem) * 13);
    letter-spacing: 0.65px;
    column-gap: 30px;
    row-gap: 9px;
    @media screen and (max-width: 768px) {
      display: grid;
      text-align: start;
      padding: 20px 25px;
    }
    @media screen and (min-width: 769px) {
      display: flex;
      justify-content: center;
      padding: 30px 15px;
      column-gap: min(60px, calc(var(--vw) * 60));
      row-gap: min(30px, calc(var(--vw) * 30));
      font-size: calc(var(--rem) * 14);
      letter-spacing: 0.7px;
      margin-bottom: 90px;
    }
  }
  .menu-toc__item {
    position: relative;
    &::after {
      content: "▼";
      display: inline-block;
      color: #DF8F9B;
    }
  }

  .recommend {
    margin: 0 auto 50px auto;
    @media screen and (max-width: 768px) {
      padding-top: 22px;
    }
    @media screen and (min-width: 769px) {
      max-width: 850px;
      margin: 0 auto 90px auto;
      box-sizing: content-box;
    }
  }

  :where(.recommend) {
    .recommend__title-en {
      @media screen and (min-width: 769px) {
        margin-bottom: 10px;
      }
    }

    .recommend__title {
      color: #77535F;
      border-bottom: 1px dotted #CD6B7A;
      padding-bottom: 23px;

      @media screen and (min-width: 769px) {
        padding-bottom: 30px;
        margin-bottom: 20px;
      }
    }

    .recommend__list {
      display: flex;
      @media screen and (max-width: 768px) {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: start;
        padding: 0 45px;
        gap: 10px;
      }
      @media screen and (min-width: 769px) {
        flex-wrap: wrap;
        justify-content: center;
        max-width: 512px;
        margin: 0 auto;
        column-gap: 60px;
      }
    }

    .recommend__item {
      color: #77535F;
      position: relative;
      font-size: calc(var(--rem) * 14);
      letter-spacing: 0.7px;
      line-height: 26px;
      @media screen and (min-width: 769px) {
        font-size: calc(var(--rem) * 15);
        letter-spacing: 1.2px;
        line-height: 34px;
      }

      &::before {
        position: absolute;
        top: 52%;
        left: -23px;
        transform: translateY(-50%);
        content: "";
        display: inline-block;
        width: 16px;
        height: 15px;
        background-image: url(../../images/common/icon_check.svg);
        background-size: contain;
        background-repeat: no-repeat;
      }
    }
  }

  .about {
    padding: 0 25px;
    margin: 0 auto 70px auto;

    @media screen and (min-width: 769px) {
      max-width: 1100px;
      margin: 100px auto 90px auto;
      box-sizing: content-box;
    }
  }

  :where(.about) {

    .about__head {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 40px;

      @media screen and (max-width: 768px) {
        flex-direction: column;
        margin-bottom: 32px;
      }
    }

    .about__media {

      img,
      iframe {
        @media screen and (min-width: 769px) {
          object-fit: contain;
          width: min(519px, calc(var(--vw) * 519));
          height: min(250px, calc(var(--vw) * 250));
        }
      }
    }

    .about__title-en,
    .about__title {
      text-align: initial !important;
    }

    .about__title {
      margin-bottom: 7px;

      @media screen and (min-width: 769px) {
        margin-bottom: 17px;
      }
    }

    .about__lead {
      color: #CD6B7A;
      font-size: calc(var(--rem) * 15);
      letter-spacing: 0.75px;
      @media screen and (max-width: 768px) {
        margin-bottom: 20px;
      }

      @media screen and (min-width: 769px) {
        font-size: calc(var(--rem) * 20);
        letter-spacing: 1.6px;
        line-height: 35px;
      }
    }

    .about__head-inner {
      width: 100%;
    }

    .about__desc {
      color: #77535F;
      font-size: calc(var(--rem) * 13);
      line-height: 28px;

      @media screen and (min-width: 769px) {
        font-size: calc(var(--rem) * 13);
        letter-spacing: 1.04px;
        line-height: 25px;
      }

      p {
        margin-bottom: 28px;

        @media screen and (min-width: 769px) {
          margin-bottom: 32px;
        }
      }

      p:last-child {
        margin-bottom: 0;
      }
    }
  }

  .feature {
    padding: 0 25px;
    margin: 0 auto 60px auto;

    @media screen and (min-width: 769px) {
      max-width: 1100px;
      margin: 0 auto 80px auto;
      box-sizing: content-box;
    }
    &.col1 {
      .feature__list {
        display: grid;
        row-gap: min(70px, calc(var(--vw) * 70));
      }
      .feature__item {
        display: flex;
        column-gap: min(50px, calc(var(--vw) * 50));
        figure {
          flex: 1;
        }
        > div {
          flex: 1;
        }
      }
      .feature__item:nth-child(odd) {
        flex-direction: row-reverse;
      }
    }

    &.col2 {
      .feature__list {
        display: grid;

        @media screen and (max-width: 768px) {
          row-gap: 55px;
        }

        @media screen and (min-width: 769px) {
          grid-template-columns: 1fr 1fr;
          column-gap: min(62px, calc(var(--vw) * 62));
          row-gap: min(50px, calc(var(--vw) * 50));
        }
      }
    }

    &.col3 {
      
    }
  }

  :where(.feature) {

    .feature__media {
      margin-bottom: 36px;

      img,
      iframe {
        object-fit: cover;
        width: calc(var(--vw) * 320);
        height: calc(var(--vw) * 200);

        @media screen and (min-width: 769px) {
          width: 100%;
          height: min(300px, calc(var(--vw) * 300));
        }
      }
    }

    .feature__asset-empty {
      margin-bottom: 36px;
      background: #B3B3B3;
      width: calc(var(--vw) * 320);
      height: calc(var(--vw) * 200);

      @media screen and (min-width: 769px) {
        width: 100%;
        height: min(300px, calc(var(--vw) * 300));
      }
    }

    .feature__item-title {
      color: #DF8F9B;
      position: relative;
      font-size: calc(var(--rem) * 18);
      letter-spacing: 1.44px;
      padding-left: 30px;
      margin-bottom: 31px;

      @media screen and (min-width: 769px) {
        padding-left: 29px;
        margin-bottom: 36px;
      }

      &::before {
        content: "";
        display: inline-block;
        position: absolute;
        width: 14px;
        height: 38px;
        background: #DF8F9B;
        top: 50%;
        left: 0%;
        transform: translateY(-50%);
      }
    }

    .feature__text {
      font-size: calc(var(--rem) * 13);
      letter-spacing: 0.9px;
      line-height: 24px;

      @media screen and (min-width: 769px) {
        font-size: calc(var(--rem) * 13);
        letter-spacing: 1.04px;
        line-height: 25px;
      }

      p {
        margin-bottom: 24px;

        @media screen and (min-width: 769px) {
          margin-bottom: 25px;
        }
      }

      p:last-child {
        margin-bottom: 0;
      }
    }
  }

  .flow {
    margin: 0 auto 70px auto;

    @media screen and (min-width: 769px) {
      margin: 0 auto 105px auto;
      box-sizing: content-box;
    }
  }

  :where(.flow) {

    .flow__wrap {
      padding-left: calc(var(--vw) * 25);

      @media screen and (min-width: 769px) {
        padding-left: calc(var(--vw) * 206);
      }
    }

    .flow__list {
      display: flex;
      overflow-x: scroll;
      gap: 19px;

      @media screen and (min-width: 769px) {
        gap: 17px;
      }
    }

    .flow__item {
      flex-shrink: 0;
      background: #F6F6F6;
      width: calc(var(--vw) * 280);
      padding: 15px;
      min-height: calc(var(--vw) * 381);

      @media screen and (min-width: 769px) {
        width: 355px;
        min-height: 400px;
        padding: 15px 20px 20px;
      }
    }

    .flow__item:last-child {
      margin-right: 20px;

      @media screen and (min-width: 769px) {
        margin-right: 20px;
      }
    }

    .flow__image {
      margin-bottom: 20px;

      @media screen and (min-width: 769px) {
        margin-bottom: 24px;
      }

      img {
        object-fit: cover;
        width: 100%;
        height: calc(var(--vw) * 161);

        @media screen and (min-width: 769px) {
          height: 170px;
        }
      }
    }

    .flow__image-empty {
      width: 100%;
      height: 160px;
      background: #B3B3B3;
      margin-bottom: 20px;

      @media screen and (min-width: 769px) {
        margin-bottom: 24px;
        height: 170px;
      }
    }

    .flow__item-title {
      font-size: calc(var(--rem) * 17);
      letter-spacing: 1.36px;
      margin-bottom: 9px;

      @media screen and (min-width: 769px) {
        font-size: calc(var(--rem) * 16);
        letter-spacing: 1.28px;
        margin-bottom: 15px;
      }
    }

    .flow__text {
      font-size: calc(var(--rem) * 12);
      letter-spacing: 0.36px;
      line-height: 22px;

      @media screen and (min-width: 769px) {
        line-height: 23px;
      }
    }
  }

  .overview {
    margin-bottom: 100px;
    @media screen and (max-width: 768px) {
      padding: 0;
      margin-bottom: 70px;
    }
  }
  :where(.overview) {
    .overview__group-title {
      background: linear-gradient(to right, #DF8F9B, #FBC1BD);
      color: #FFF;
      text-align: center;
      padding: 15px 10px;
      font-size: calc(var(--rem) * 16);
      letter-spacing: 1.4px;
      border-top: 1px solid #C5B1B7;
      @media screen and (max-width: 768px) {
        font-size: calc(var(--rem) * 13);
        letter-spacing: 1px;
        padding: 12px 10px;
      }
    }
    .overview__item {
      border-top: 1px solid #C5B1B7;
      display: grid;
      grid-template-columns: 100px 1fr;
      @media screen and (min-width: 769px) {
        grid-template-columns: 180px 1fr;
      }
      &:last-child {
        border-bottom: 1px solid #C5B1B7;
      }
    }
    .overview__item-title {
      background: #F6F6F6;
      text-align: center;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 0 10px;
      @media screen and (max-width: 768px) {
        padding: 0 8px;
      }
    }
    .overview__item-text {
      padding: 14px 10px;
      @media screen and (min-width: 769px) {
        padding: 20px;
      }
    }
    .overview__item-title, .overview__item-text {
      font-size: calc(var(--rem) * 11);
      letter-spacing: 0.88px;
      line-height: 20px;
      @media screen and (min-width: 769px) {
        font-size: calc(var(--rem) * 13);
        letter-spacing: 1.04px;
        line-height: 25px;
      }
    }
  }

  .price {
    margin-bottom: 80px;
    @media screen and (min-width: 769px) {
      margin-bottom: 100px;
    }
  }
  :where(.price) {
    .price__annotation {
      text-align: center;
      font-size: calc(var(--rem) * 13);
      letter-spacing: 1.04px;
      margin-top: 15px;
      @media screen and (min-width: 769px) {
        margin-top: 30px;
      }
    }
    .price__child-button {
    background: #DF8F9B;
    color: #FFF;
    padding: 11px;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
    font-weight: 500;
    font-size: calc(var(--rem) * 12);
    letter-spacing: 0.6px;
    line-height: 19px;
    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 16);
      letter-spacing: 1.28px;
      line-height: 23px;
      padding: 13px;
    }
  }
  .price__row {
    display: grid;
    border-top: 1px solid #C5B1B7;
    grid-template-columns: 1fr 1fr;
    @media screen and (min-width: 769px) {
      grid-template-columns: 1.15fr 0.85fr;
    }
    &:last-child {
      border-bottom: 1px solid #C5B1B7;
    }
    &.is-monitor {
      color: #DF8F9B;
    }
  }
  .price__main-title {
    background: #FFF3F5;
    font-weight: 500;
    text-align: center;
    font-size: calc(var(--rem) * 12);
    letter-spacing: 0.6px;
    line-height: 19px;
    padding: 11px;
    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 15);
      letter-spacing: 1.2px;
      padding: 13px;
    }
  }
  .price__row-label {
    background: #F6F6F6;
    text-align: center;
    font-weight: 600;
    font-size: calc(var(--rem) * 12);
    letter-spacing: 0.6px;
    line-height: 19px;
    padding: 11px;
    @media screen and (min-width: 769px) {
      padding: 13px;
      font-size: calc(var(--rem) * 13);
      letter-spacing: 1.04px;
    }
  }
  .price__row-value {
    text-align: end;
    font-size: calc(var(--rem) * 12);
    letter-spacing: 0.6px;
    line-height: 19px;
    padding: 11px;
    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 13);
      letter-spacing: 1.04px;
      padding: 13px;
    }
  }
  }

  .case {
    @media screen and (max-width: 768px) {
      margin-bottom: 50px;
    }
  }
  :where(.case) {
  }
}