@charset "utf-8";
@import url("./common.css");

/*----------------------------------------
header
----------------------------------------*/
header {
  ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .header-inner {
    position: fixed;
    top: 15px;
    right: 20px;
    background-color: #fff;
    width: calc(100% - 40px);
    height: 70px;
    padding: 0 40px;
    display: flex;
    align-items: center;
    gap: 40px;
    border-radius: clamp(5px, 2.573px + 0.647vw, 15px);
    box-shadow: 0 0 6px 0 #F0F0F0;
    z-index: 102;

    @media (max-width: 767px) {
      top: 10px;
      right: 10px;
      width: calc(100% - 20px);
      height: 40px;
      padding: 0 10px;
    }

    .header-logo {
      margin: 0;

      @media (max-width: 767px) {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
      }

      a {
        width: clamp(110px, 93.010px + 4.531vw, 180px);
        display: flex;
      }
    }

    .nav--header {
      margin-left: auto;

      @media (max-width: 900px) {
        display: none;
      }
    }

    .btn-hamburger {
      @media (max-width: 900px) {
        margin-left: auto;
      }
    }
  }
}

/* ハンバーガーメニューが開いているとき */
header.active {
  .hamburger {
    display: flex;
  }
}

/* ハンバーガーメニューボタン */
.btn-hamburger {
  position: relative;
  width: 30px;
  height: 22px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;

  @media (max-width: 767px) {
    width: 25px;
    height: 15px;
  }

  .hamburger-lines {
    position: relative;
    width: 100%;
    z-index: 1;

    .line {
      position: absolute;
      left: 0;
      right: 0;
      top: 50%;
      height: 2px;
      margin: auto;
      background-color: var(--logo-blue);
      transform-origin: 50% 50%;
      transition: transform .2s ease, opacity .2s ease;

      @media (max-width: 767px) {
        height: 1px;
      }
    }

    .line:nth-child(1) {
      background-color: var(--logo-pink);
      transform: translateY(-9px) rotate(0);

      @media (max-width: 767px) {
        transform: translateY(-6px) rotate(0);
      }
    }

    .line:nth-child(2) {
      transform: translateY(9px) rotate(0);

      @media (max-width: 767px) {
        transform: translateY(6px) rotate(0);
      }
    }

    .line:nth-child(3) {
      transform: translateY(0px);
      opacity: 1;
    }
  }
}

/* アクティブ時 */
.btn-hamburger.active {
  .hamburger-lines {
    .line:nth-child(1) {
      background-color: var(--logo-pink);
      transform: translateY(0) rotate(35deg);
    }

    .line:nth-child(2) {
      background-color: var(--logo-pink);
      transform: translateY(0) rotate(-35deg);
    }

    .line:nth-child(3) {
      opacity: 0;
    }
  }
}

/*----------------------------------------
ハンバーガー中身
----------------------------------------*/
.hamburger {
  display: none;
  align-items: flex-start;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  max-height: 100svh;
  height: auto;
  background-color: #fff;
  transition: ease-in .2s;
  z-index: 103;
  overflow-y: scroll;
  overscroll-behavior: none;
  padding: clamp(10px, 5.146px + 1.294vw, 30px);

  &::-webkit-scrollbar {
    display: none;
  }

  .btn-hamburger {
    position: absolute;
    top: clamp(30px, 17.864px + 3.236vw, 80px);
    right: clamp(30px, 17.864px + 3.236vw, 80px);
    z-index: 100;
  }

  .hamburger__frame {
    position: relative;
    background-color: #FFF2F8;
    border-radius: clamp(10px, 0.291px + 2.589vw, 50px);
    width: 100%;
    height: 100%;
    z-index: 0;

    &::after {
      content: "";
      position: absolute;
      left: 50%;
      bottom: clamp(8px, 2.660px + 1.424vw, 30px);
      transform: translateX(-50%);
      display: block;
      margin: clamp(15px, 12.573px + 0.647vw, 25px) auto 0;
      width: 92%;
      aspect-ratio: 1733 / 262;
      background: url("../img/hamburger_bg.svg") center center / contain no-repeat;
      z-index: -1;
    }
  }

  .hamburger__inner {
    position: relative;
    width: min(960px, 90%);
    min-height: 100%;
    height: fit-content;
    margin: auto;
    padding: clamp(60px, 43.010px + 4.531vw, 130px) 0 35px;

    @media (max-width: 767px) {
      padding-bottom: 77px;
    }

    .hamburger__logo {
      width: clamp(130px, 113.010px + 4.531vw, 200px);
      margin: 0 auto clamp(40px, 37.573px + 0.647vw, 50px);
    }

    .hamburger__container {
      .ham-nav {
        width: min(820px, 100%);
        margin: 0 auto;

        @media (max-width: 767px) {}

        .ham-nav__list {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: clamp(15px, 13.786px + 0.324vw, 20px);

          @media (max-width: 767px) {
            grid-template-columns: repeat(2, 1fr);
          }

          .ham-nav__item {
            border-radius: 10px;
            box-shadow: 0 0 10px 0 #F4E2EB;
            background-color: #fff;

            a {
              position: relative;
              display: flex;
              font-size: clamp(13px, 11.786px + 0.324vw, 18px);
              padding: clamp(15px, 13.786px + 0.324vw, 20px);

              &::after {
                content: "";
                position: absolute;
                top: 50%;
                right: clamp(15px, 13.786px + 0.324vw, 20px);
                transform: translateY(-50%);
                width: clamp(5px, 4.515px + 0.129vw, 7px);
                aspect-ratio: 7 / 12;
                background: url("data:image/svg+xml,%3Csvg width='9' height='13' viewBox='0 0 9 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.325195 12.3796L7.3252 6.37964L0.325196 0.379638' stroke='%23E14595'/%3E%3C/svg%3E%0A") center center / contain no-repeat;
                display: inline-block;
              }
            }

            a:hover {
              opacity: 0.7;
              transform: translateX(5px);
            }
          }
        }
      }

      .footer-info {
        margin-top: clamp(30px, 20.291px + 2.589vw, 70px);
      }
    }

    .seo-title {
      font-size: clamp(11px, 10.272px + 0.194vw, 14px);
      text-align: center;
      color: #B5849D;
      margin: clamp(40px, 13.301px + 7.12vw, 150px) 0 0;
    }
  }
}

/*----------------------------------------
footer
----------------------------------------*/
footer {
  background: url("data:image/svg+xml,%3Csvg width='1920' height='857' viewBox='0 0 1920 857' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M598 111.975C354 123.523 191.169 160.579 0 241.585V857H1920L1920 0C1778.7 52.5705 1597 131.97 1301.48 139.407C1005.96 146.843 842 100.427 598 111.975Z' fill='%23FFF2F8'/%3E%3C/svg%3E%0A") center top / cover no-repeat;
  padding: clamp(100px, 63.592px + 9.709vw, 250px) 0 40px;
  margin-top: clamp(60px, 50.291px + 2.589vw, 100px);

  @media (max-width: 1200px) {
    background-image: url("data:image/svg+xml,%3Csvg width='375' height='1022' viewBox='0 0 375 1022' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M116.797 21.9305C69.1406 24.1922 37.3377 31.4498 0 47.315V1022H375L375 0C347.403 10.2961 311.914 25.8467 254.196 27.3031C196.477 28.7596 164.453 19.6689 116.797 21.9305Z' fill='%23FFF2F8'/%3E%3C/svg%3E%0A");
  }

  @media (max-width: 767px) {
    padding-bottom: 77px;
  }

  ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .footer-inner {
    width: min(960px, 84%);
    margin: 0 auto;
  }

  .footer-nav {
    display: flex;
    align-items: center;

    @media (max-width: 767px) {
      flex-direction: column;
    }

    .footer-nav__logo {
      width: clamp(130px, 105.728px + 6.472vw, 230px);
    }

    .nav {
      @media (max-width: 767px) {
        margin-left: 0;
        margin-top: 40px;
      }

      .nav__list {
        @media (max-width: 767px) {
          display: grid;
          grid-template-columns: repeat(2, 1fr);
          gap: 20px 60px;
        }
      }
    }
  }

  .copyright {
    font-size: clamp(10px, 9.029px + 0.259vw, 14px);
    text-align: center;
    margin-top: clamp(20px, 5.437px + 3.883vw, 80px);
  }
}

/*----------------------------------------
トップページ
----------------------------------------*/
/*--- ファーストビュー ---*/
.hero-section {
  position: relative;
  margin-bottom: clamp(50px, 42.718px + 1.942vw, 80px);

  .hero-section__copy {
    position: absolute;
    left: clamp(20px, 3.010px + 4.531vw, 90px);
    bottom: clamp(50px, 18.447px + 8.414vw, 180px);
    z-index: 2;
  }

  .hero-section__copy-main {
    font-size: clamp(25px, 18.932px + 1.618vw, 50px);
    margin: 0;
    text-shadow: 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff;
  }

  .hero-section__copy-sub {
    font-size: clamp(10px, 7.573px + 0.647vw, 20px);
    margin: clamp(11px, 8.330px + 0.712vw, 22px) 0 0;
    text-shadow: 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff, 0px 0px 12px #fff;
  }
}

.section-heading {
  margin-bottom: clamp(40px, 35.146px + 1.294vw, 60px);

  .section-heading__icon {
    display: block;
    width: clamp(22px, 18.602px + 0.906vw, 36px);
    margin: 0 auto clamp(10px, 7.573px + 0.647vw, 20px);
  }

  .section-heading__ja {
    font-size: clamp(22px, 18.845px + 0.841vw, 35px);
    line-height: 1;
    text-align: center;
    margin: 0;
  }

  .section-heading__en {
    font-family: var(--font-en);
    font-weight: 400;
    font-size: clamp(12px, 10.058px + 0.518vw, 20px);
    line-height: 2;
    text-align: center;
    color: var(--logo-pink);
    margin: clamp(5px, 3.786px + 0.324vw, 10px) 0 0;
  }
}

/*--- お知らせ ---*/
.news-section {
  .section__heading--news {
    .section-heading__icon {
      width: 32px;
    }
  }

  .btn-more {
    display: flex;
    justify-content: flex-end;
    margin-top: clamp(30px, 27.573px + 0.647vw, 40px);
  }
}

.news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;

  .news-list__item {
    background-color: #fff;
    box-shadow: 0 0 10px #F4E2EB;
    border-radius: 10px;
  }

  .news-list__item+.news-list__item {
    margin-top: clamp(15px, 11.359px + 0.971vw, 30px);
  }

  .news-list__link {
    position: relative;
    display: grid;
    grid-template-columns: auto auto 1fr;
    align-items: center;
    gap: 20px;
    padding: clamp(20px, 15.146px + 1.294vw, 40px) clamp(40px, 35.146px + 1.294vw, 60px) clamp(20px, 15.146px + 1.294vw, 40px) clamp(20px, 17.573px + 0.647vw, 30px);

    @media (max-width: 767px) {
      grid-template-columns: auto 1fr;
      gap: 6px 10px;
    }

    &::after {
      content: "";
      position: absolute;
      top: 50%;
      right: clamp(15px, 13.786px + 0.324vw, 20px);
      transform: translateY(-50%);
      width: 15px;
      aspect-ratio: 15 / 9;
      background: url("data:image/svg+xml,%3Csvg width='12' height='17' viewBox='0 0 12 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.640137 15.7682L9.64014 8.26819L0.640138 0.768188' stroke='%23E14595' stroke-width='2'/%3E%3C/svg%3E%0A") center center / contain no-repeat;
      z-index: 2;
    }
  }

  .news-list__link:hover {
    transform: translateX(5px);
    opacity: 0.7;
  }

  .news-list__date {
    display: block;
    font-family: var(--font-en);
    font-weight: 400;
    font-size: clamp(14px, 12.544px + 0.388vw, 20px);
    color: var(--logo-pink);

    @media (max-width: 767px) {
      grid-column: 1;
      grid-row: 1;
    }
  }

  .news-list__category {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
  }

  .news-list__title {
    margin: 0;
    font-size: clamp(13px, 11.786px + 0.324vw, 18px);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;

    @media (max-width: 767px) {
      grid-column: 1 / 3;
      grid-row: 2;
    }
  }
}

/* カテゴリアイコン */
.news-category-icon {
  background-color: var(--logo-pink);
  font-size: clamp(10px, 9.029px + 0.259vw, 14px);
  line-height: 1;
  color: #fff;
  padding: 4px 10px 5px;
  margin: 0;
  border-radius: 4px;
  width: fit-content;
  display: block;

  @media (max-width: 767px) {
    grid-column: 2;
    grid-row: 1;
  }
}

.news-category-icon--clinic {
  background-color: #fff;
  border: 1px var(--logo-purple) solid;
  color: var(--logo-purple);
}

.news-category-icon--general {
  background-color: var(--logo-blue);
}

/*--- お悩みから探す ---*/
.menu-section {
  margin-top: clamp(60px, 50.291px + 2.589vw, 100px);

  .section__heading--menu {
    .section-heading__icon {
      width: 36px;
    }
  }

  .menu-container {
    position: relative;
    z-index: 1;
    background-color: #FFF2F8;
    padding: clamp(40px, 25.437px + 3.883vw, 100px) 0 clamp(60px, 50.291px + 2.589vw, 100px);
    margin: 0 auto;
    width: calc(100% - (clamp(20px, 10.291px + 2.589vw, 60px)));
    border-radius: clamp(10px, 0.291px + 2.589vw, 50px);

    &::after {
      content: "";
      position: absolute;
      left: 50%;
      bottom: clamp(8px, 2.660px + 1.424vw, 30px);
      transform: translateX(-50%);
      display: block;
      margin: clamp(15px, 12.573px + 0.647vw, 25px) auto 0;
      width: min(1520px, 80%);
      aspect-ratio: 1519 / 485;
      background: url("../img/menu/menu-container-cosmetic_bg.svg") center center / contain no-repeat;
      z-index: -1;
    }

    .menu-container__heading {
      font-size: clamp(20px, 17.573px + 0.647vw, 30px);
      text-align: center;
      margin: 0 0 clamp(30px, 25.146px + 1.294vw, 50px);

      &::after {
        content: "";
        display: block;
        margin: clamp(15px, 12.573px + 0.647vw, 25px) auto 0;
        width: clamp(30px, 26.359px + 0.971vw, 45px);
        height: 3px;
        background-color: #F7ACD3;
      }
    }

    .menu-container__obj {
      position: absolute;
      top: 60px;
      left: 30px;
      z-index: -1;
      font-family: var(--font-en);
      font-weight: 400;
      font-size: clamp(50px, 42.718px + 1.942vw, 80px);
      color: #fff;
      line-height: 0.8;
      margin: 0;
      writing-mode: vertical-rl;
      white-space: nowrap;

      @media (max-width: 767px) {
        top: 10px;
        left: -6px;
      }
    }

    .menu-group {
      width: min(1200px, 90%);
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: clamp(15px, 11.359px + 0.971vw, 30px);

      @media (max-width: 767px) {
        grid-template-columns: 1fr;
      }

      .menu-group__item {}

      .menu-group__heading {
        position: relative;
        display: flex;
        align-items: center;
        gap: clamp(10px, 5.146px + 1.294vw, 30px);
        background-color: #fff;
        box-shadow: 0 0 10px 0 #F4E2EB;
        padding: clamp(10px, 8.786px + 0.324vw, 15px);
        border-radius: clamp(10px, 8.786px + 0.324vw, 15px);
        cursor: pointer;

        &::after {
          content: "";
          position: absolute;
          top: 50%;
          right: clamp(10px, 8.786px + 0.324vw, 15px);
          transform: translateY(-50%);
          width: clamp(16px, 14.058px + 0.518vw, 24px);
          aspect-ratio: 1;
          background: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='12' fill='%23F7ACD3'/%3E%3Cpath d='M6 10L12 16L18 10' stroke='white' stroke-width='2'/%3E%3C/svg%3E%0A") center center / contain no-repeat;
        }
      }

      .menu-group__img {
        border-radius: 10px;
        overflow: hidden;
        width: clamp(90px, 80.291px + 2.589vw, 130px);
        aspect-ratio: 13 / 10;

        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
        }
      }

      .menu-group__label {
        margin: 0;
        font-size: clamp(16px, 14.544px + 0.388vw, 22px);

        small {
          font-size: clamp(10px, 9.029px + 0.259vw, 14px);
          display: inline-block;
        }
      }

      .menu-list-wrap {
        background-color: #FDE5F1;
        border-radius: 10px;
        padding: clamp(20px, 17.573px + 0.647vw, 30px);
        margin-top: clamp(5px, 3.786px + 0.324vw, 10px);
      }
    }

    /* アコーディオンOPEN */
    .menu-group__item.is-open {
      .menu-group__heading {
        &::after {
          transform: translateY(-50%) rotate(-180deg);
        }
      }
    }
  }

  .menu-container+.menu-container {
    margin-top: 30px;
  }

  /* 一般皮膚科 */
  .menu-container--general {
    background-color: #EEF7FF;

    &::after {
      background-image: url("../img/menu/menu-container-general_bg.svg");
    }

    .menu-container__heading {
      &::after {
        background-color: #8CC7EE;
      }
    }

    .menu-group {
      .menu-group__heading {
        box-shadow: 0 0 10px 0 #DCEDF9;

        &::after {
          background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='12' fill='%238CC7EE'/%3E%3Cpath d='M6 10L12 16L18 10' stroke='white' stroke-width='2'/%3E%3C/svg%3E%0A");
        }
      }

      .menu-list-wrap {
        background-color: #DDEDFA;
      }

      .menu-list {
        .menu-list__link {
          &::after {
            background-image: url("data:image/svg+xml,%3Csvg width='7' height='10' viewBox='0 0 7 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.334472 9.37158L5.33447 4.87158L0.334473 0.371582' stroke='%23005CAB'/%3E%3C/svg%3E%0A");
          }
        }
      }
    }
  }
}

/*--- 当院が得意な治療 ---*/
.specialties-section,
.case-section {
  margin-top: clamp(60px, 38.155px + 5.825vw, 150px);
  display: grid;
  grid-template-columns: 300px 1fr;
  grid-template-rows: auto 1fr;
  gap: 0 clamp(20px, 0.583px + 5.178vw, 100px);
  /* padding-left: max(5%,(calc((100% - 1440px) / 2))); */
  padding-left: 5%;

  @media (max-width: 767px) {
    display: flex;
    flex-direction: column;
  }

  .section-heading--specialties,
  .section-heading--case {
    position: relative;
    z-index: 0;
    /* width: 300px; */
    aspect-ratio: 300 / 257;
    background: url("../img/specialties-heading_bg.svg") center center / contain no-repeat;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding-bottom: 40px;
    margin: 0;

    @media (max-width: 767px) {
      width: 100%;
      aspect-ratio: auto;
      background-size: 150px;
      background-position: center top;
      height: 130px;
      padding: 0 5svw 0 0;
      justify-content: center;
    }

    /* &::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background: url("../img/specialties-heading_bg.svg") center center / contain no-repeat;
      aspect-ratio: 300 / 257;
      width: clamp(150px, 113.592px + 9.709vw, 300px);
      display: block;
      z-index: -1;
    } */
  }
}

.specialties-section {
  .specialties-list {
    .specialties-list__img {
      aspect-ratio: 400 / 460;
      overflow: hidden;
      border-radius: clamp(10px, 7.573px + 0.647vw, 20px);
      margin-bottom: clamp(20px, 17.573px + 0.647vw, 30px);

      @media (max-width: 767px) {
        aspect-ratio: 300 / 250;
      }

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }

    .specialties-list__title {
      font-size: clamp(18px, 15.087px + 0.777vw, 30px);
      margin: 0 0 clamp(15px, 13.786px + 0.324vw, 20px);

      small {
        font-size: clamp(12px, 11.272px + 0.194vw, 15px);
      }
    }

    .specialties-list__text {
      margin: 0 0 clamp(15px, 11.359px + 0.971vw, 30px);
      line-height: 2;
    }
  }
}

.specialties-swiper {
  grid-column: 2;
  grid-row: 1 / 3;
  width: 100%;

  .specialties-list__item> :not(.specialties-list__img) {
    opacity: 0.4;
    transition: ease-in .2s;
  }

  .swiper-slide-active> :not(.specialties-list__img) {
    opacity: 1;
  }
}

/*--- 当院の特徴 ---*/
.features-section {
  margin-top: clamp(80px, 63.010px + 4.531vw, 150px);
  overflow: hidden;

  .features-list {
    list-style: none;
    margin: 0;
    padding: 0;

    .features-list__item {
      display: grid;
      grid-template-columns: 1fr 50%;
      gap: clamp(20px, 15.146px + 1.294vw, 40px) clamp(20px, 5.437px + 3.883vw, 80px);

      @media (max-width: 767px) {
        display: flex;
        flex-direction: column;
      }

      .features-list__img-wrapper {
        grid-column: 1;
        grid-row: 1 / 3;
        position: relative;
        display: flex;
        gap: 15px;

        @media (max-width: 767px) {
          width: 69.33vw;
          margin: 0 auto;
        }

        &::before {
          content: "";
          position: absolute;
          display: inline-block;
          z-index: -1;
        }

        .features-list__img {
          border: clamp(4px, 2.544px + 0.388vw, 10px) #fff solid;
          border-radius: clamp(10px, 7.573px + 0.647vw, 20px);
          box-shadow: 0 0 clamp(4px, 2.544px + 0.388vw, 10px) 0 #F4E2EB;
          overflow: hidden;

          @media (max-width: 767px) {
            position: relative;
          }

          img {
            width: 100%;
            height: 100%;
            object-fit: cover;
          }
        }
      }

      .features-list__img-caption {
        writing-mode: vertical-lr;
        display: flex;
        align-items: center;
        margin: 0;

        @media (max-width: 767px) {
          position: absolute;
          top: 0;
          left: -20px;
        }

        span {
          font-family: var(--font-en);
          font-weight: 400;
          font-size: clamp(11px, 8.816px + 0.583vw, 20px);
          color: var(--logo-pink);
          line-height: 1;
        }

        span:nth-child(1) {
          display: flex;
          align-items: center;

          &::after {
            content: "";
            width: 1px;
            height: 10px;
            margin: 10px 0;
            border: 1px var(--logo-pink) solid;
          }

          @media (max-width: 767px) {
            &::after {
              border: 0.6px var(--logo-pink) solid;
            }
          }
        }
      }

      .features-list__title {
        grid-column: 2;
        grid-row: 1;
        font-size: clamp(20px, 17.573px + 0.647vw, 30px);
        line-height: 1.7;
        margin: 0;
        align-self: flex-end;

        @media (max-width: 767px) {
          align-self: center;
          text-align: center;
          line-height: 1.5;
        }

        &::after {
          content: "";
          width: clamp(30px, 26.359px + 0.971vw, 45px);
          height: 3px;
          background-color: #F7ACD3;
          display: block;
          margin-top: clamp(15px, 11.359px + 0.971vw, 30px);
        }

        @media (max-width: 767px) {
          &::after {
            margin-left: auto;
            margin-right: auto;
          }
        }
      }

      .features-list__text {
        grid-column: 2;
        grid-row: 2;
        font-size: clamp(13px, 11.786px + 0.324vw, 18px);
        line-height: 2.5;
        margin: 0;

        @media (max-width: 767px) {
          line-height: 2;
        }
      }

      .features-list__subject {
        display: flex;
        gap: clamp(4px, 2.544px + 0.388vw, 10px);
        margin-top: clamp(10px, 7.573px + 0.647vw, 20px);

        span {
          display: block;
          font-size: clamp(11px, 9.301px + 0.453vw, 18px);
          line-height: 1;
          background-color: #FBE5F0;
          padding: clamp(3px, 2.029px + 0.259vw, 7px) clamp(10px, 7.573px + 0.647vw, 20px) clamp(4px, 3.029px + 0.259vw, 8px);
          border-radius: 50px;
        }
      }
    }

    .features-list__item+.features-list__item {
      margin-top: clamp(80px, 75.146px + 1.294vw, 100px);
    }

    .features-list__item:nth-child(even) {
      grid-template-columns: 1fr min(600px, 50%);

      .features-list__img-wrapper {
        grid-column: 2;
      }

      .features-list__title {
        grid-column: 1;
      }

      .features-list__text {
        grid-column: 1;
      }
    }

    .features-list__item:nth-child(1) {
      .features-list__img-wrapper {
        &::before {
          bottom: -3.65vw;
          left: -5.21vw;
          width: 9.11vw;
          aspect-ratio: 175 / 353;
          background: url("../img/features01_obj.webp") center center / contain no-repeat;
        }

        @media (max-width: 767px) {
          &::before {
            bottom: -11vw;
            left: -13vw;
            width: 20vw;
          }
        }
      }
    }

    .features-list__item:nth-child(2) {
      .features-list__img-wrapper {
        &::before {
          top: -4.77vw;
          right: -5.85vw;
          width: 11.35vw;
          aspect-ratio: 218 / 504;
          background: url("../img/features02_obj.webp") center center / contain no-repeat;
        }

        @media (max-width: 767px) {
          &::before {
            top: -8vw;
            right: -12vw;
            width: 21vw;
          }
        }
      }
    }

    .features-list__item:nth-child(3) {
      .features-list__img-wrapper {
        &::before {
          top: -5.73vw;
          right: -5.73vw;
          width: 7.92vw;
          aspect-ratio: 152 / 319;
          background: url("../img/features03_obj.webp") center center / contain no-repeat;
        }

        @media (max-width: 767px) {
          &::before {
            top: -9vw;
            right: -12vw;
            width: 19vw;
          }
        }
      }
    }
  }
}

/*--- 医師紹介 ---*/
.doctor-section {
  position: relative;
  margin-top: clamp(80px, 75.146px + 1.294vw, 100px);
  padding-top: clamp(0px, -24.272px + 6.472vw, 100px);
  padding-top: 10px;
  overflow: hidden;

  &::before {
    content: "";
    position: absolute;
    top: 0;
    right: -12.5vw;
    width: 42.81vw;
    aspect-ratio: 115/108;
    display: inline-block;
    background: url("../img/doctor-obj01.svg") center center / contain no-repeat;
    z-index: -1;
  }

  @media (max-width: 767px) {
    &::before {
      top: 11vw;
      right: -7vw;
      width: 60vw;
    }
  }

  &::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: -3.5vw;
    width: 31.25vw;
    aspect-ratio: 600/536;
    display: inline-block;
    background: url("../img/doctor-obj02.svg") center center / contain no-repeat;
    z-index: -1;
  }

  @media (max-width: 767px) {
    &::after {
      left: -7vw;
      width: 62vw;
    }
  }

  .doctor-container {
    padding: clamp(30px, 17.864px + 3.236vw, 80px) clamp(20px, 5.437px + 3.883vw, 80px);
    background-color: #fff;
    box-shadow: 0 0 10px 0 #F4E2EB;
    border-radius: clamp(10px, 7.573px + 0.647vw, 20px);

    .doctor-container__top {
      display: grid;
      grid-template-columns: min(330px, 30%) 1fr;
      gap: clamp(30px, 22.718px + 1.942vw, 60px) clamp(30px, 17.864px + 3.236vw, 80px);

      @media (max-width: 767px) {
        display: flex;
        flex-direction: column;
      }

      .scroll-box {
        max-height: 360px;

        @media (max-width: 767px) {
          max-height: 200px;
        }
      }
    }

    .doctor-container__bottom {
      margin-top: clamp(30px, 22.718px + 1.942vw, 60px);
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(30px, 22.718px + 1.942vw, 60px) clamp(30px, 17.864px + 3.236vw, 80px);

      @media (max-width: 767px) {
        grid-template-columns: 1fr;
      }

      .scroll-box {
        max-height: 200px;
      }
    }

    .doctor-container__img {
      @media (max-width: 767px) {
        width: 48vw;
        margin: 0 auto;
      }
    }

    .doctor-container__name {
      font-size: clamp(20px, 17.573px + 0.647vw, 30px);
      text-align: center;
      margin: clamp(15px, 13.786px + 0.324vw, 20px) 0 0;

      small {
        font-size: clamp(13px, 11.786px + 0.324vw, 18px);
        margin-right: 1em;
      }
    }
  }

  .doctor-career {
    .doctor-career__heading {
      margin: 0 0 clamp(15px, 13.786px + 0.324vw, 20px);
      background-color: #FFF2F8;
      font-size: clamp(16px, 13.816px + 0.583vw, 25px);
      padding: clamp(10px, 9.515px + 0.129vw, 12px) clamp(20px, 18.786px + 0.324vw, 25px);
      border-radius: clamp(4px, 2.544px + 0.388vw, 10px);
    }
  }

  .career-list {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 15px 20px;
    margin: 0;

    @media (max-width: 767px) {
      grid-template-columns: 1fr;
      gap: 5px;
    }

    .career-list__title {
      font-size: clamp(13px, 11.786px + 0.324vw, 18px);
      color: var(--logo-pink);
    }

    .career-list__text {
      font-size: clamp(13px, 11.786px + 0.324vw, 18px);
      margin: 0;
    }

    .career-list__text+.career-list__title {
      @media (max-width: 767px) {
        margin-top: 10px;
      }
    }
  }

  .btn-more {
    display: flex;
    justify-content: flex-end;
    margin-top: clamp(30px, 27.573px + 0.647vw, 40px);
  }
}

/*--- 公式インスタグラム ---*/
.ig-section {
  margin-top: clamp(80px, 70.291px + 2.589vw, 120px);

  .instagram-area {
    margin: 0 auto clamp(0.625rem, 0.341rem + 1.21vw, 1.25rem);

    @media (max-width: 767px) {
      overflow-x: scroll;
    }

    iframe {
      @media (max-width: 767px) {
        width: 750px !important;
      }
    }
  }

  .btn-more {
    display: flex;
    justify-content: flex-end;
    margin-top: clamp(30px, 27.573px + 0.647vw, 40px);

    a {
      padding-right: clamp(20px, 18.786px + 0.324vw, 25px);

      &::after {
        width: clamp(15px, 13.786px + 0.324vw, 20px);
        background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='14.587' y1='4.58697' x2='4.58697' y2='14.587' stroke='%23E14595' stroke-width='1.5'/%3E%3Cpath d='M13.6203 14.7645L14.5396 4.65284L4.42793 5.57207' stroke='%23E14595' stroke-width='1.5'/%3E%3C/svg%3E%0A");
      }
    }
  }
}

/*----------------------------------------
固定ページ：当院について
----------------------------------------*/
.page-about {
  .pagetop {
    @media (max-width: 1000px) {
      display: none;
    }
  }

  /*--- 院長のメッセージ ---*/
  .message-section {
    .message-section__inner {
      display: grid;
      grid-template-columns: 1fr min(400px, 30%);
      gap: 0 50px;

      @media (max-width: 767px) {
        display: block;
      }
    }

    .message-section__heading {
      grid-column: 1 / 3;
      grid-row: 1;
      margin: 0 0 clamp(15px, 12.573px + 0.647vw, 25px);
      font-size: clamp(13px, 11.301px + 0.453vw, 20px);
      color: var(--logo-pink);
      display: flex;
      align-items: center;
      gap: 10px;

      &::before {
        content: "";
        width: clamp(35px, 32.816px + 0.583vw, 44px);
        height: 1px;
        border-bottom: 1px var(--logo-pink) solid;
      }
    }

    .message-section__title {
      grid-column: 1 / 3;
      grid-row: 2;
      margin: 0 0 clamp(30px, 20.291px + 2.589vw, 70px);
      font-weight: 600;
      font-size: clamp(25px, 18.932px + 1.618vw, 50px);
      letter-spacing: clamp(2.5px, 1.893px + 0.162vw, 5px);
    }

    .message-section__img-area {
      grid-column: 2;
      grid-row: 3;
      align-self: center;

      .message-section__img {
        @media (max-width: 767px) {
          width: 190px;
          margin: 0 auto;
        }
      }

      .message-section__name {
        font-size: clamp(20px, 17.573px + 0.647vw, 30px);
        text-align: center;
        margin: clamp(5px, -1.068px + 1.618vw, 30px) 0 0;

        @media (max-width: 767px) {
          margin-bottom: 30px;
        }

        small {
          font-size: clamp(13px, 11.786px + 0.324vw, 18px);
          margin-right: 1em;
        }
      }
    }

    .message-section__text {
      grid-column: 1;
      grid-row: 3;
      margin: 0;
    }
  }

  /*--- 初めての方へ ---*/
  .guide-section {
    margin-top: clamp(80px, 50.874px + 7.767vw, 200px);

    .guide-section__container {
      border-radius: clamp(10px, 7.573px + 0.647vw, 20px);
      background: #fff;
      box-shadow: 0 0 10px 0 #F4E2EB;
      padding: clamp(40px, 30.291px + 2.589vw, 80px) clamp(20px, 0.583px + 5.178vw, 100px);
    }

    .guide-section__lead {
      font-size: clamp(16px, 13.816px + 0.583vw, 25px);
      text-align: center;
      margin: 0;
      line-height: 1.8;

      strong {
        color: var(--logo-pink);
      }
    }

    .guide-section__lead-sub {
      font-size: clamp(12px, 11.029px + 0.259vw, 16px);
      text-align: center;
      margin: clamp(5px, 3.786px + 0.324vw, 10px) 0 030px;
      line-height: 1.8;
    }

    .belongings-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 30px;

      @media (max-width: 767px) {
        display: flex;
        flex-direction: column;
        width: 230px;
        margin: 0 auto;
      }
    }

    .belongings-list__item {
      gap: clamp(5px, 2.573px + 0.647vw, 15px);
    }

    .belongings-list__title {
      margin: 10px 0 0;
      font-size: clamp(16px, 15.029px + 0.259vw, 20px);
      color: var(--logo-pink);
      text-align: center;
      align-self: center;
    }

    .belongings-list__text {
      margin: 10px 0 0;
      font-size: clamp(13px, 12.272px + 0.194vw, 16px);
      line-height: 1.8;
    }

    .reservation-required {
      border-radius: 10px;
      background: #EEF7FF;
      padding: clamp(30px, 25.146px + 1.294vw, 50px) clamp(20px, 12.718px + 1.942vw, 50px);
      margin-top: 50px;

      .reservation-required__heading {
        font-size: clamp(16px, 13.816px + 0.583vw, 25px);
        text-align: center;
        margin: 0 0 clamp(10px, 7.573px + 0.647vw, 20px);

        &::after {
          content: "";
          width: clamp(37px, 36.272px + 0.194vw, 40px);
          height: clamp(2px, 1.757px + 0.065vw, 3px);
          background-color: #8CC7EE;
          display: block;
          margin: clamp(10px, 7.573px + 0.647vw, 20px) auto 0;
        }

        strong {
          color: var(--logo-blue);
        }
      }

      .reservation-required__text {
        font-size: clamp(13px, 12.272px + 0.194vw, 16px);
        line-height: 2;
        margin: 0;
      }
    }

    .precautions {
      margin-top: clamp(30px, 25.146px + 1.294vw, 50px);

      .precautions__heading {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: clamp(16px, 14.544px + 0.388vw, 22px);
        color: var(--logo-pink);
        margin: 0 0 clamp(10px, 8.786px + 0.324vw, 15px);

        &::before {
          content: "";
          width: 27px;
          aspect-ratio: 27 / 24;
          background: url("../img/about/icon_precautions.svg") center center / contain no-repeat;
        }
      }

      .list-disc {
        &>li+li {
          margin-top: clamp(8px, 7.515px + 0.129vw, 10px);
        }
      }
    }
  }

  /*--- 診療の流れ ---*/
  .flow-section {
    margin-top: clamp(80px, 50.874px + 7.767vw, 200px);

    .flow-tab {
      .flow-tab__button-area {
        position: relative;
        display: flex;
        width: fit-content;
        background: #f0f0f0;
        border-radius: 999px;
        width: 100%;

        &::before {
          content: "";
          position: absolute;
          top: 0;
          left: 0;
          width: 50%;
          height: 100%;
          background: #5DB7F2;
          border-radius: 999px;
          transition: transform 0.3s ease;
          z-index: 0;
        }

        &.is-second::before {
          background: #F1A4D1;
          transform: translateX(100%);
        }

        .flow-tab__button {
          cursor: pointer;
          position: relative;
          z-index: 1;
          padding: clamp(6px, 3.816px + 0.583vw, 15px) 0 clamp(8px, 6.301px + 0.453vw, 15px);
          cursor: pointer;
          transition: color 0.2s ease;
          width: 100%;
          font-size: clamp(16px, 13.816px + 0.583vw, 25px);
          text-align: center;
          line-height: 1;
          color: #9F9F9F;
        }

        .flow-tab__button.active {
          color: #fff;
        }
      }

      .flow-tab__panel-area {
        .flow-tab__panel {
          height: 0;
          opacity: 0;
          overflow: hidden;
          transition: opacity 0.4s ease;

          &.show {
            height: auto;
            opacity: 1;
          }
        }
      }
    }
  }

  .flow-list {
    list-style: none;
    margin: 0;
    padding: 0;
    margin-top: clamp(20px, 15.146px + 1.294vw, 40px);

    .flow-list__item {
      position: relative;
      background-color: #EEF7FF;
      padding: clamp(20px, 15.146px + 1.294vw, 40px);
      border-radius: clamp(5px, 3.786px + 0.324vw, 10px);
      display: grid;
      grid-template-columns: clamp(45px, 41.359px + 0.971vw, 60px) min(315px, 35%) 1fr;
      grid-template-rows: auto 1fr;
      gap: 20px 2.08vw;

      @media (max-width: 767px) {
        grid-template-columns: 43px 1fr;
        gap: 15px;
      }

      &::before {
        content: "";
        position: absolute;
        top: clamp(20px, 15.146px + 1.294vw, 40px);
        left: calc((clamp(20px, 15.146px + 1.294vw, 40px)) + ((clamp(45px, 41.359px + 0.971vw, 60px)) / 2));
        width: 1px;
        height: calc(100% + (clamp(24px, 22.544px + 0.388vw, 30px)));
        display: block;
        border-left: 1px #8CC7EE solid;
        z-index: 1;
      }

      @media (max-width: 767px) {
        &::before {
          background: url("data:image/svg+xml,%3Csvg width='23' height='14' viewBox='0 0 23 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M-7.04001e-07 -1.03375e-07L11.5 14L23 1.90735e-06L-7.04001e-07 -1.03375e-07Z' fill='%235DB7F2'/%3E%3C/svg%3E%0A") center center / contain no-repeat;
          width: 23px;
          height: 14px;
          top: calc(100% + 5px);
          left: 50%;
          transform: translateX(-50%);
          border: none;
        }
      }
    }

    .flow-list__item+.flow-list__item {
      margin-top: clamp(24px, 22.544px + 0.388vw, 30px);
    }

    .flow-list__item:last-child {
      &::before {
        display: none;
      }
    }

    .flow-list__num {
      grid-column: 1;
      grid-row: 1 / 3;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      font-size: clamp(20px, 17.573px + 0.647vw, 30px);
      color: #fff;
      aspect-ratio: 1;
      background-color: #8CC7EE;
      margin: 0;

      @media (max-width: 767px) {
        grid-column: 1;
        grid-row: 2;
      }
    }

    .flow-list__img {
      grid-column: 2;
      grid-row: 1 / 3;
      border-radius: 10px;
      overflow: hidden;
      aspect-ratio: 315 / 222;

      @media (max-width: 767px) {
        grid-column: 1 / 3;
        grid-row: 1;
        height: 130px;
        aspect-ratio: 271 / 130;
        margin: 0 auto 5px;
      }
    }

    .flow-list__title {
      grid-column: 3;
      grid-row: 1;
      font-size: clamp(16px, 13.816px + 0.583vw, 25px);
      margin: 0;

      @media (max-width: 767px) {
        grid-column: 2;
        grid-row: 2;
        align-self: center;
      }
    }

    .flow-list__title-sub {
      background-color: #F1A4D1;
      display: inline-block;
      font-size: clamp(13px, 12.272px + 0.194vw, 16px);
      color: #fff;
      line-height: 1;
      padding: 5px 8px;
      border-radius: 4px;
    }

    .flow-list__text {
      grid-column: 3;
      grid-row: 2;

      @media (max-width: 767px) {
        grid-column: 1 / 3;
        grid-row: 3;
      }

      .text-base+.text-base {
        margin-top: clamp(15px, 13.786px + 0.324vw, 20px);
      }

      small {
        font-size: clamp(11px, 10.272px + 0.194vw, 14px);
        line-height: 1.5;
        display: inline-block;
      }

      .img-degisma {
        width: 250px;
        margin-top: 10px;
      }

      a {
        color: var(--logo-blue);
        text-decoration: underline;
      }

      a:hover {
        text-decoration: none;
      }

      .tel-link {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        font-size: clamp(16px, 13.816px + 0.583vw, 25px);
        color: #000;
        text-decoration: none;

        .tel-link__icon {
          width: clamp(21px, 19.786px + 0.324vw, 26px);
          aspect-ratio: 1;
          margin-top: -3px;
        }
      }

      .pdf-link {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-size: clamp(15px, 13.786px + 0.324vw, 20px);
        text-decoration-thickness: 1px;
        text-underline-offset: 4px;
      }
    }
  }

  .flow-tab__panel--cosmetic {
    .flow-list {
      .flow-list__item {
        background-color: #FFF2F8;

        &:before {
          border-color: #F7ACD3;
        }

        @media (max-width: 767px) {
          &::before {
            background-image: url("data:image/svg+xml,%3Csvg width='23' height='14' viewBox='0 0 23 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M-7.04001e-07 -1.03375e-07L11.5 14L23 1.90735e-06L-7.04001e-07 -1.03375e-07Z' fill='%23F56FB3'/%3E%3C/svg%3E%0A");
          }
        }
      }

      .flow-list__num {
        background-color: #F7ACD3;
      }

      .flow-list__text {
        a {
          color: var(--logo-pink);
        }
      }
    }
  }

  /*--- アクセス ---*/
  .access-section {
    margin-top: clamp(80px, 50.874px + 7.767vw, 200px);

    .clinic-info {
      display: grid;
      grid-template-columns: min(780px, 55%);
      align-items: center;
      gap: clamp(30px, 22.718px + 1.942vw, 60px);

      @media (max-width: 767px) {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
      }

      .clinic-info__img {
        grid-column: 1;
        border-radius: 10px;
        overflow: hidden;
      }

      .clinic-info__contents {
        grid-column: 2;
      }

      .clinic-info__logo {
        width: clamp(130px, 116.650px + 3.56vw, 185px);
        margin-bottom: clamp(20px, 17.573px + 0.647vw, 30px);
      }

      .clinic-info__address {
        margin-bottom: clamp(15px, 13.786px + 0.324vw, 20px);
      }

      .list-disc {
        &>li+li {
          margin-top: 8px;
        }
      }

      .clinic-info__btn {
        margin-top: clamp(15px, 13.786px + 0.324vw, 20px);

        a {
          position: relative;
          display: inline-block;
          text-decoration: none;
          line-height: 1.2;
          background-color: #FDE5F1;
          padding: 7px 50px 9px 30px;
          border-radius: 50px;
          font-size: clamp(13px, 12.272px + 0.194vw, 16px);

          &::after {
            content: "";
            position: absolute;
            top: 50%;
            right: 20px;
            transform: translateY(-50%);
            width: clamp(9px, 7.786px + 0.324vw, 14px);
            aspect-ratio: 14 / 17;
            background: url("data:image/svg+xml,%3Csvg width='14' height='17' viewBox='0 0 14 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='11.878' y1='5.58697' x2='1.87799' y2='15.587' stroke='%23E14595' stroke-width='1.5'/%3E%3Cpath d='M10.9113 15.7645L11.8306 5.65284L1.71894 6.57207' stroke='%23E14595' stroke-width='1.5'/%3E%3C/svg%3E%0A") center center / contain no-repeat;
            display: inline-block;
          }

          &:hover {
            opacity: 0.7;
            padding: 7px 45px 9px 35px;

            &::after {
              right: 15px;
            }
          }
        }
      }
    }

    .access-directions {
      margin-top: clamp(60px, 50.291px + 2.589vw, 100px);

      .title-side-border {
        font-size: clamp(16px, 13.816px + 0.583vw, 25px);
        margin-bottom: clamp(25px, 18.932px + 1.618vw, 50px);
      }

      .access-directions__list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        justify-content: center;
        gap: clamp(20px, 10.291px + 2.589vw, 60px);
        flex-wrap: wrap;

        @media (max-width: 767px) {
          justify-content: flex-start;
          gap: 40px clamp(20px, 10.291px + 2.589vw, 60px);
        }
      }

      .access-directions__item {
        width: calc((100% - (clamp(40px, 20.583px + 5.178vw, 120px))) / 3);

        @media (max-width: 767px) {
          width: calc((100% - (clamp(20px, 10.291px + 2.589vw, 60px))) / 2);
        }
      }

      .access-directions__img {
        position: relative;
        aspect-ratio: 1;
        overflow: hidden;
        border: 6px #fff solid;
        box-shadow: 0 0 4.375px 0 #F4E2EB;
        border-radius: clamp(4px, 2.544px + 0.388vw, 10px);

        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          border-radius: clamp(4px, 2.544px + 0.388vw, 10px);
        }
      }

      .access-directions__num {
        position: absolute;
        top: 0;
        left: 0;
        font-family: var(--font-en);
        font-weight: 400;
        font-size: clamp(14px, 9.631px + 1.165vw, 32px);
        color: #fff;
        line-height: 1;
        background-color: var(--logo-pink);
        border-radius: clamp(4px, 2.544px + 0.388vw, 10px) 0 50px 0;
        display: block;
        aspect-ratio: 1;
        width: clamp(26px, 18.961px + 1.877vw, 55px);
        padding: 5px 0 0 clamp(8px, 7.515px + 0.129vw, 10px);
      }

      .access-directions__text {
        line-height: 1.5;
        margin-top: clamp(10px, 8.786px + 0.324vw, 15px);
      }
    }
  }

  /*--- 保険診療に関するお知らせ ---*/
  .insurance-info-section {
    .insurance-info-section__inner {
      width: calc(100% - (clamp(40px, 35.146px + 1.294vw, 60px)));
      border-radius: clamp(10px, 0.291px + 2.589vw, 50px);
      background-color: #FFF2F8;
      padding: clamp(50px, 37.864px + 3.236vw, 100px) 0;
      margin: clamp(80px, 63.010px + 4.531vw, 150px) auto 0;
    }

    .insurance-info-section__container {
      padding: clamp(20px, 12.718px + 1.942vw, 50px) clamp(5px, 1.359px + 0.971vw, 20px) clamp(20px, 12.718px + 1.942vw, 50px) clamp(15px, 6.505px + 2.265vw, 50px);
      background-color: #fff;
    }

    .insurance-info-section__title:first-child {
      margin-top: 0;
    }

    .insurance-info-section__title {
      font-size: clamp(17px, 15.058px + 0.518vw, 25px);
      margin: clamp(30px, 25.146px + 1.294vw, 50px) 0 clamp(10px, 6.359px + 0.971vw, 25px);
      padding-bottom: clamp(3px, 2.515px + 0.129vw, 5px);
      border-bottom: 1px #F7ACD3 solid;
    }

    .insurance-info-section__text {
      margin: 1em 0;

      small {
        font-size: clamp(11px, 10.272px + 0.194vw, 14px);
        line-height: 1.5;
        display: inline-block;
      }
    }

    .insurance-info-section__title-sub {
      position: relative;
      font-size: clamp(15px, 13.301px + 0.453vw, 22px);
      margin: clamp(25px, 23.786px + 0.324vw, 30px) 0 clamp(10px, 8.544px + 0.388vw, 16px);
      padding-left: 15px;

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

    .insurance-info-section__table {

      th,
      td {
        font-size: clamp(13px, 12.757px + 0.065vw, 14px);
        padding: 10px 20px;
        line-height: 1.7;
        text-align: center;

        small {
          font-size: clamp(11px, 10.757px + 0.065vw, 12px);
        }
      }

      thead {
        tr {
          th {
            background-color: #F8D1E5;
          }
        }
      }

      tbody {
        tr {
          td {
            border: 1px #FDE5F1 solid;
          }

          th {
            background-color: #FDE5F1;
          }
        }
      }
    }
  }

  /*--- 保険診療に関するお知らせ ---*/
  .faq-section {
    margin-top: clamp(80px, 75.146px + 1.294vw, 100px);
  }
}

/*----------------------------------------
固定ページ：料金表
----------------------------------------*/
.page-price {
  .pagetop {
    @media (max-width: 1000px) {
      display: none;
    }
  }

  main {
    .price-category {
      .price-category__heading {
        margin: 0 0 clamp(15px, 11.359px + 0.971vw, 30px);
        background-color: #FFF2F8;
        padding: clamp(10px, 8.786px + 0.324vw, 15px) clamp(20px, 17.573px + 0.647vw, 30px);
        font-size: clamp(20px, 17.573px + 0.647vw, 30px);
        text-align: center;
        border-radius: 10px;
      }

      .price-category__banner {
        margin-bottom: clamp(40px, 30.291px + 2.589vw, 80px);
      }
    }

    .price-category+.price-category {
      margin-top: clamp(80px, 50.874px + 7.767vw, 200px);
    }
  }
}

/*----------------------------------------
診療メニュー：一覧
----------------------------------------*/
.post-type-archive-menu {
  main {
    .menu-container {
      background-color: transparent;

      .menu-group {
        .menu-list-wrap {
          background-color: #FFF2F8;
        }
      }

      &::after {
        opacity: 0.5;
      }

      .menu-container__obj {
        display: none;
      }
    }

    .menu-container--general {
      .menu-group {
        .menu-list-wrap {
          background-color: #EEF7FF;
        }
      }
    }
  }
}

/*----------------------------------------
診療メニュー：詳細
----------------------------------------*/
.single-menu {
  .pagetop {
    @media (max-width: 1000px) {
      display: none;
    }
  }

  main {
    padding-top: clamp(50px, 42.718px + 1.942vw, 80px);
  }

  /*--- キャンペーンバナー ---*/
  .banner-section {
    margin-bottom: clamp(80px, 63.010px + 4.531vw, 150px);
  }

  /*--- とは ---*/
  .about-section {
    .about-section__img {
      width: min(550px, 100%);
      aspect-ratio: 550 / 350;
      margin: 0 auto clamp(30px, 25.146px + 1.294vw, 50px);

      img {
        width: 100%;
      }
    }
  }

  /*--- こんな方におすすめ ---*/
  .recommend-section {
    margin-top: clamp(80px, 63.010px + 4.531vw, 150px);

    .recommend-list-box {
      width: min(800px, 100%);
      border-radius: 10px;
      background: #FFF;
      box-shadow: 0 0 10px 0 #F4E2EB;
      margin: 0 auto;
      padding: clamp(30px, 25.146px + 1.294vw, 50px) clamp(20px, 12.718px + 1.942vw, 50px);
    }

    .recommend-list {
      list-style: none;
      margin: 0 auto;
      padding: 0;
      width: fit-content;

      .recommend-list__item {
        position: relative;
        padding-left: calc((clamp(14px, 12.544px + 0.388vw, 20px)) + (clamp(10px, 8.786px + 0.324vw, 15px)));

        &::before {
          content: "";
          position: absolute;
          top: 0.5em;
          left: 0;
          width: clamp(14px, 12.544px + 0.388vw, 20px);
          aspect-ratio: 1;
          display: inline-block;
          background: url("../img/icon_check.svg") center center / contain no-repeat;
        }
      }

      .recommend-list__item+.recommend-list__item {
        margin-top: clamp(10px, 7.573px + 0.647vw, 20px);
      }
    }
  }

  /*--- 治療に対する思い ---*/
  .philosophy-section {
    margin-top: clamp(80px, 63.010px + 4.531vw, 150px);

    .section-heading {
      margin-bottom: clamp(30px, 22.718px + 1.942vw, 60px);
    }

    .philosophy-box {
      position: relative;
      border-radius: clamp(10px, 7.573px + 0.647vw, 20px);
      background: #FFF2F8;
      padding: clamp(40px, 30.291px + 2.589vw, 80px) clamp(20px, 5.437px + 3.883vw, 80px);
      display: grid;
      grid-template-columns: 1fr min(350px, 35%);
      grid-template-rows: auto 1fr;
      gap: clamp(30px, 25.146px + 1.294vw, 50px);

      @media (max-width: 767px) {
        display: flex;
        flex-direction: column;
      }

      &::before {
        content: "";
        position: absolute;
        top: 4vw;
        left: -6vw;
        width: 9.11vw;
        aspect-ratio: 175 / 353;
        background: url("../img/features01_obj.webp") center center / contain no-repeat;
        z-index: -1;
      }

      @media (max-width: 767px) {
        &::before {
          width: 83px;
          top: -70px;
          left: -10px;
        }
      }

      &::after {
        content: "";
        position: absolute;
        bottom: -2vw;
        right: -6.2vw;
        width: 7.92vw;
        aspect-ratio: 152 / 319;
        background: url("../img/features03_obj.webp") center center / contain no-repeat;
        z-index: -1;
      }

      @media (max-width: 767px) {
        &::after {
          width: 82px;
          top: -70px;
          bottom: initial;
          right: -10px;
        }
      }

      .philosophy-box__title {
        grid-column: 1 / 3;
        grid-row: 1;
        font-size: clamp(16px, 13.573px + 0.647vw, 26px);
        margin: 0;
        padding: clamp(10px, 8.786px + 0.324vw, 15px) clamp(20px, 15.146px + 1.294vw, 40px);
        color: #fff;
        border-radius: clamp(4px, 2.544px + 0.388vw, 10px);
        background: #F1A4D1;
      }

      .philosophy-box__doctor-img {
        @media (max-width: 767px) {
          width: 60%;
          margin: 0 auto;
        }
      }

      .philosophy-box__doctor-name {
        font-size: clamp(20px, 19.029px + 0.259vw, 24px);
        margin: clamp(15px, 13.786px + 0.324vw, 20px) 0 0;
        text-align: center;

        small {
          font-size: clamp(13px, 11.786px + 0.324vw, 18px);
          margin-right: 1em;
        }
      }
    }
  }

  /*--- 症例 ---*/
  .case-section {
    grid-template-columns: clamp(250px, 30%, 300px) 1fr;
    padding-left: calc(200px + min(100px, 10vw) + 3.13vw);

    @media (min-width: 1920px) {
      padding-left: 0;
      width: calc(100% - ((100% - 1200px) / 2));
      margin-left: auto;
    }

    @media (max-width: 1000px) {
      margin-left: 5%;
      padding-left: 0;
    }

    .case-swiper {
      grid-column: 2;
      grid-row: 1 / 3;
      width: 100%;

      .case-list__item> :not(.case-list__img) {
        opacity: 0.4;
        transition: ease-in .2s;
      }

      .swiper-slide-active> :not(.case-list__img) {
        opacity: 1;
      }
    }

    .case-swiper-controller.is-disabled {
      display: none;
    }

    .case-swiper.is-disabled {
      overflow: visible;
      padding-right: 80px;

      @media (max-width: 767px) {
        padding-right: 5vw;
      }

      .case-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 30px;

        @media (max-width: 767px) {
          grid-template-columns: 1fr;
        }
      }

      .case-list__item> :not(.case-list__img) {
        opacity: 1;
      }

      .swiper-slide {
        width: auto !important;
        margin-right: 0 !important;
      }
    }

    .case-list {
      width: 100%;

      .case-list__item {
        display: flex;
        flex-direction: column;
      }

      .case-list__item+.case-list__item {
        margin-top: 0;
      }

      .case-list__title {
        display: none;
      }

      .case-list__img {
        margin-bottom: clamp(20px, 17.573px + 0.647vw, 30px);
      }
    }
  }

  /*--- 自由セクション ---*/
  .free-section {
    margin-top: clamp(100px, 75.728px + 6.472vw, 200px);
  }

  /*--- 料金表 ---*/
  .price-section-wrapper {
    margin-top: clamp(100px, 75.728px + 6.472vw, 200px);
  }

  /*--- 注意事項 ---*/
  .precautions-wrapper {
    position: relative;
    z-index: 1;
    background-color: #FFF2F8;
    padding: clamp(40px, 25.437px + 3.883vw, 100px) 0 clamp(60px, 50.291px + 2.589vw, 100px);
    margin: clamp(100px, 75.728px + 6.472vw, 200px) auto 0;
    width: calc(100% - (clamp(20px, 10.291px + 2.589vw, 60px)));
    border-radius: clamp(10px, 0.291px + 2.589vw, 50px);

    &::after {
      content: "";
      position: absolute;
      left: 50%;
      bottom: clamp(8px, 2.660px + 1.424vw, 30px);
      transform: translateX(-50%);
      display: block;
      margin: clamp(15px, 12.573px + 0.647vw, 25px) auto 0;
      width: min(1520px, 80%);
      aspect-ratio: 1519 / 485;
      background: url("../img/menu/menu-container-cosmetic_bg.svg") center center / contain no-repeat;
      z-index: -1;
    }

    .precautions-container {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(30px, 25.146px + 1.294vw, 50px);

      @media (max-width: 767px) {
        display: flex;
        flex-direction: column;
      }

      .precautions-section--precautions {
        grid-column: 1 / 3;
      }
    }

    /* .container-m {
      width: calc((100% + (clamp(20px, 10.291px + 2.589vw, 60px))) - 200px - 80px - min(100px, 10vw) - 3.13vw);
    } */
    .precautions-section {
      border-radius: clamp(10px, 7.573px + 0.647vw, 20px);
      background: #fff;
      box-shadow: 0 0 10px 0 #F4E2EB;
      padding: clamp(30px, 25.146px + 1.294vw, 50px) clamp(20px, 12.718px + 1.942vw, 50px);

      .precautions-section__heading {
        font-size: clamp(20px, 18.786px + 0.324vw, 25px);
        text-align: center;
        margin: 0 0 clamp(30px, 27.573px + 0.647vw, 40px);

        &::after {
          content: "";
          width: clamp(30px, 26.359px + 0.971vw, 45px);
          height: 3px;
          background-color: #F7ACD3;
          display: block;
          margin: clamp(15px, 13.786px + 0.324vw, 20px) auto 0;
        }
      }

      .precautions-section__inner {
        width: fit-content;
        margin: 0 auto;
      }

      .precautions-section__title {
        position: relative;
        font-weight: 700;
        font-size: clamp(14px, 13.029px + 0.259vw, 18px);
        line-height: 1.7;
        margin: 0 0 clamp(5px, 3.786px + 0.324vw, 10px);
        padding-left: calc((clamp(14px, 13.272px + 0.194vw, 17px)) + 5px);

        &::before {
          content: "";
          position: absolute;
          top: 0.4em;
          left: 0;
          width: clamp(14px, 13.272px + 0.194vw, 17px);
          aspect-ratio: 1;
          display: inline-block;
          background-color: #F7ACD3;
          border-radius: 2.25px;
        }
      }

      .list-disc+.precautions-section__title {
        margin-top: clamp(30px, 25.146px + 1.294vw, 50px)
      }

      .list-disc {
        li+li {
          margin-top: clamp(8px, 7.515px + 0.129vw, 10px);
        }
      }
    }

    .precautions-section--risk {
      .list-disc {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: clamp(8px, 7.515px + 0.129vw, 10px) clamp(20px, 12.718px + 1.942vw, 50px);
        width: fit-content;
        margin: 0 auto;

        li+li {
          margin-top: 0;
        }
      }
    }
  }

  /*--- よくある質問 ---*/
  .faq-section {
    margin-top: clamp(80px, 63.010px + 4.531vw, 150px);
  }

  /*--- 医療広告ガイドライン限定解除要件 ---*/
  .guideline-section {
    margin-top: clamp(120px, 100.583px + 5.178vw, 200px);
  }

  /* 監修医師 */
  .supervision-section {
    margin-top: clamp(100px, 87.864px + 3.236vw, 150px);
  }

  .supervision {
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 0 10px 0 #F4E2EB;
    padding: 30px clamp(20px, 17.573px + 0.647vw, 30px);

    .supervision__inner {
      display: grid;
      grid-template-columns: clamp(120px, 95.728px + 6.472vw, 220px) 1fr;
      gap: clamp(20px, 15.146px + 1.294vw, 40px);
      width: min(760px, 100%);
      margin: 0 auto;

      @media (max-width: 767px) {
        display: flex;
        flex-direction: column;
        width: calc(100% - 20px);
      }
    }

    .supervision__heading {
      font-size: clamp(18px, 16.301px + 0.453vw, 25px);
      line-height: 1;
      padding: clamp(10px, 8.786px + 0.324vw, 15px) clamp(20px, 15.146px + 1.294vw, 40px);
      margin: 0 0 clamp(20px, 12.718px + 1.942vw, 50px);
      background-color: #FDE5F1;
      border-radius: clamp(4px, 2.544px + 0.388vw, 10px);
    }

    .supervision__doctor {
      @media (max-width: 767px) {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 20px;
      }
    }

    .supervision__doctor-img {
      @media (max-width: 767px) {
        width: 120px;
      }
    }

    .supervision__doctor-name {
      text-align: center;
      font-size: 18px;

      @media (max-width: 767px) {
        text-align: left;
      }

      small {
        font-size: 13px;
        margin-right: 1em;

        @media (max-width: 767px) {
          display: block;
          margin-right: 0;
        }
      }
    }

    .supervision__contents {
      .scroll-box {
        max-height: 100px;
      }

      .list-disc {
        li+li {
          margin-top: 5px;
        }
      }
    }

    .supervision__contents-title {
      position: relative;
      margin: 0 0 15px;
      border-bottom: 1px #F7ACD3 solid;
      padding-bottom: 5px;
      display: flex;
      align-items: center;
      gap: clamp(8px, 7.515px + 0.129vw, 10px);
      font-weight: 700;
      font-size: clamp(15px, 13.786px + 0.324vw, 20px);

      &::before {
        content: "";
        width: clamp(20px, 18.544px + 0.388vw, 26px);
        aspect-ratio: 1;
        background: url("../img/icon_section-heading.svg") center center / contain no-repeat;
        display: inline-block;
      }
    }

    .supervision__contents-text+.supervision__contents-title {
      margin-top: clamp(20px, 17.573px + 0.647vw, 30px);
    }
  }
}

/*----------------------------------------
症例：検索フォーム
----------------------------------------*/
.case-search {
  margin-bottom: clamp(60px, 50.291px + 2.589vw, 100px);

  .case-search__heading {
    font-size: clamp(20px, 17.573px + 0.647vw, 30px);
    text-align: center;
    margin: 0 0 clamp(40px, 37.573px + 0.647vw, 50px);

    &::after {
      content: "";
      width: clamp(30px, 26.359px + 0.971vw, 45px);
      height: 3px;
      background-color: #F7ACD3;
      display: block;
      margin: clamp(15px, 12.573px + 0.647vw, 25px) auto 0;
    }
  }

  .case-search__inner {
    background-color: #FFF2F8;
    border-radius: clamp(10px, 7.573px + 0.647vw, 20px);
    padding: clamp(40px, 30.291px + 2.589vw, 80px) clamp(20px, -4.272px + 6.472vw, 120px);
  }

  .search-box {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 20px 30px;
    margin: 0;

    dt {
      font-size: clamp(16px, 15.029px + 0.259vw, 20px);
    }

    dt.menu-select__title {
      align-self: center;
    }

    dd {
      margin: 0;
      /* 18px-20px:375px-1920px */
      font-size: clamp(1.125rem, 1.095rem + 0.13vw, 1.25rem);

      @media (max-width: 767px) {
        display: grid;
        grid-template-columns: repeat(3, auto);
        gap: 5px 0;

        &:has(.menu-select) {
          grid-template-columns: 1fr;
        }
      }

      .menu-select {
        appearance: none;
        -moz-appearance: none;
        -webkit-appearance: none;
        width: 100%;
        height: clamp(40px, 37.573px + 0.647vw, 50px);
        padding: 0 20px;
        border-radius: clamp(4px, 3.757px + 0.065vw, 5px);
        border: none;
        font-size: 14px;
        margin: 0 auto;
        background: url("data:image/svg+xml,%3Csvg width='15' height='9' viewBox='0 0 15 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.496094 0.494995L7.49609 7.495L14.4961 0.494995' stroke='%23E14595' stroke-width='1.4'/%3E%3C/svg%3E%0A") center right clamp(10px, 7.573px + 0.647vw, 20px) / clamp(12px, 11.515px + 0.129vw, 14px) no-repeat, #fff;
        box-shadow: 0 0 10px 0 #F4E2EB;

        &:focus-visible {
          outline: none;
        }

        &:focus {
          outline: none;
          border-color: #666;
        }

        option {
          background: #fff;
        }

        option:first-child {
          color: #A2998F;
        }
      }

      label {
        margin: 0;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        min-width: calc(100% / 8);
        padding-right: 30px;

        @media (max-width: 767px) {
          min-width: inherit;
          padding-right: 0;
          gap: 5px;
        }

        span {
          font-size: clamp(14px, 13.029px + 0.259vw, 18px);
          font-weight: normal;
        }
      }

      input[type="checkbox"] {
        position: relative;
        width: 16px;
        height: 16px;
        border: 1px #F7ACD3 solid;
        background: #fff;
        vertical-align: -1px;
        border-radius: 3px;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
      }

      input[type="checkbox"]:checked {
        background: var(--logo-pink);
      }

      input[type="checkbox"]:checked::before {
        content: '';
        position: absolute;
        top: 0;
        left: 4px;
        transform: rotate(50deg);
        width: 6px;
        height: 10px;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
      }
    }

    dd.search-box__doctor {
      grid-template-columns: repeat(2, auto);
    }
  }

  .submit {
    border: 1px var(--logo-pink) solid;
    transition: ease-in 0.2s;
    cursor: pointer;
    display: block;
    width: 257px;
    background-color: #fff;
    font-weight: 500;
    font-size: clamp(14px, 13.515px + 0.129vw, 16px);
    color: var(--logo-pink);
    padding: 13px 40px;
    margin: clamp(30px, 27.573px + 0.647vw, 40px) auto 0;
    border-radius: 100px;
    text-align: center;

    @media (max-width: 767px) {
      width: 187px;
    }
  }

  .submit:hover {
    opacity: 0.7;
  }
}

/*----------------------------------------
症例：詳細
----------------------------------------*/
.single-case {
  .case-photo-swiper-area {
    width: min(700px, 100%);
    margin: 0 auto;
  }

  .pagination-wrapper {
    display: flex;
    gap: clamp(20px, 15.146px + 1.294vw, 40px);
    align-items: center;
    justify-content: center;
    margin-top: clamp(15px, 11.359px + 0.971vw, 30px);

    .swiper-button-prev,
    .swiper-button-next {
      position: static;
      margin-top: 0;
    }

    .swiper-button-prev::after {
      content: "";
      background: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='20' cy='20' r='19.5' transform='rotate(-180 20 20)' stroke='%23E14595'/%3E%3Cpath d='M23.4275 13.1429L16.5703 20L23.4275 26.8572' stroke='%23E14595' stroke-width='2'/%3E%3C/svg%3E%0A") center center / contain no-repeat;
      width: clamp(30px, 27.573px + 0.647vw, 40px);
      aspect-ratio: 1;
    }

    .swiper-button-next::after {
      content: "";
      background: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='20' cy='20' r='19.5' stroke='%23E14595'/%3E%3Cpath d='M16.5725 26.8571L23.4297 20L16.5725 13.1428' stroke='%23E14595' stroke-width='2'/%3E%3C/svg%3E%0A") center center / contain no-repeat;
      width: clamp(30px, 27.573px + 0.647vw, 40px);
      aspect-ratio: 1;
    }

    .swiper-pagination {
      position: static;
      width: fit-content;

      .swiper-pagination-bullet {
        background: var(--logo-pink);
      }
    }
  }

  .case-photo {
    border-radius: clamp(10px, 7.573px + 0.647vw, 20px);
    overflow: hidden;

    img {
      width: 100%;
    }
  }

  .case-table {
    @media (min-width: 768px) {
      display: grid;
      grid-template-columns: auto 1fr;
      margin-top: clamp(20px, 17.573px + 0.647vw, 30px);
    }

    dt {
      @media (min-width: 768px) {
        grid-column: 1;
        border-bottom: 1px var(--logo-pink) solid;
        margin-bottom: 0;
        padding: clamp(15px, 11.359px + 0.971vw, 30px) 40px clamp(15px, 11.359px + 0.971vw, 30px) 0;
      }
    }

    dd+dt {
      @media (min-width: 768px) {
        padding-top: clamp(15px, 11.359px + 0.971vw, 30px);
      }
    }

    dd {
      @media (min-width: 768px) {
        grid-column: 2;
        padding: clamp(15px, 11.359px + 0.971vw, 30px) 0 clamp(15px, 11.359px + 0.971vw, 30px) 20px;
      }
    }
  }

  .case-comment {
    display: grid;
    grid-template-columns: 1fr 160px;
    gap: 20px clamp(20px, 10.291px + 2.589vw, 60px);
    background-color: #fff;
    box-shadow: 0 0 10px 0 #F4E2EB;
    margin-top: clamp(30px, 25.146px + 1.294vw, 50px);
    padding: clamp(30px, 25.146px + 1.294vw, 50px) clamp(20px, 12.718px + 1.942vw, 50px);

    @media (max-width: 767px) {
      display: flex;
      flex-direction: column;
    }

    .case-comment__title {
      grid-column: 1 / 3;
      grid-row: 1;
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: clamp(22px, 21.029px + 0.259vw, 26px);
      line-height: 1;
      margin: 0;

      @media (max-width: 767px) {
        flex-direction: column;
      }

      &::before {
        content: "";
        width: clamp(22px, 18.602px + 0.906vw, 36px);
        aspect-ratio: 36 / 41;
        display: inline-block;
        background: url("../img/icon_section-heading.svg") center center / contain no-repeat;
      }
    }

    .case-comment__text {
      grid-column: 1;
      grid-row: 2;
    }

    .case-comment__doctor {
      grid-column: 2;
      grid-row: 2;

      @media (max-width: 767px) {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 20px;
      }
    }

    .case-comment__doctor-img {
      @media (max-width: 767px) {
        width: 120px;
      }
    }

    .case-comment__doctor-name {
      text-align: center;
      font-size: 18px;
      margin: 10px 0 0;

      @media (max-width: 767px) {
        text-align: left;
      }

      small {
        font-size: 13px;
        margin-right: 1em;

        @media (max-width: 767px) {
          display: block;
          margin-right: 0;
        }
      }
    }
  }

  /* 医師写真が非表示の時 */
  .case-comment:not(:has(.case-comment__doctor)) {
    .case-comment__text {
      grid-column: 1 / 3;
    }
  }

  .case-info {
    margin-top: 80px;

    .case-info__inner+.case-info__inner {
      margin-top: 80px;
    }

    .case-info__title-area {
      display: flex;
    }
  }

  .case-info__title-area {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin: 0;

    .case-info__title {
      position: relative;
      font-size: clamp(16px, 15.029px + 0.259vw, 20px);
      line-height: 1.7;
      margin: 0 0 clamp(5px, 3.786px + 0.324vw, 10px);
      padding-left: calc((clamp(14px, 13.272px + 0.194vw, 17px)) + 10px);

      &::before {
        content: "";
        position: absolute;
        top: 0.4em;
        left: 0;
        width: clamp(14px, 13.272px + 0.194vw, 17px);
        aspect-ratio: 1;
        display: inline-block;
        background-color: #F7ACD3;
        border-radius: 2.25px;
      }
    }
  }

  .guideline-table {

    dt,
    dd {
      font-size: clamp(13px, 11.786px + 0.324vw, 18px);
      padding-top: clamp(10px, 5.146px + 1.294vw, 30px);
      padding-bottom: clamp(10px, 5.146px + 1.294vw, 30px);
    }

    dt {
      width: min(320px, 25vw);
      flex-shrink: 0;

      @media (max-width: 767px) {
        width: 100%;
      }
    }
  }

  .case-info__btn {
    width: fit-content;
    border-radius: 50px;
    border: 1px var(--logo-pink) solid;
    transition: ease-in .2s;

    @media (max-width: 767px) {
      margin-top: 15px;
    }

    a {
      position: relative;
      display: block;
      padding: 13px 40px 13px 25px;
      font-size: 14px;
      color: var(--logo-pink);
      line-height: 1;

      &::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 15px;
        transform: translateY(-50%);
        aspect-ratio: 1 / 2;
        width: 6px;
        background: url("data:image/svg+xml,%3Csvg width='8' height='13' viewBox='0 0 8 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.35547 0.353515L6.35547 6.35352L0.355469 12.3535' stroke='%23E14595'/%3E%3C/svg%3E%0A") center center / contain no-repeat;
        display: inline-block;
      }
    }
  }

  .case-info__btn:hover {
    opacity: 0.7;

    a {
      transform: translateX(3px);
    }
  }

  .btn-back {
    margin-top: clamp(80px, 50.874px + 7.767vw, 200px);

    a {
      color: var(--logo-pink);

      &::before {
        background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='12' transform='rotate(-180 12 12)' fill='%23F7ACD3'/%3E%3Cpath d='M15 6L9 11.5L15 17' stroke='white' stroke-width='2'/%3E%3C/svg%3E%0A");
      }
    }
  }
}

/*----------------------------------------
お知らせ：一覧
----------------------------------------*/
.post-type-archive-news {}

/* サイドバー */
.main-aside-wrapper--post {
  display: flex;
  width: min(1200px, 90%);
  margin: 0 auto;
  gap: min(70px, 4vw);

  @media (max-width: 767px) {
    flex-direction: column-reverse;
    gap: 100px;
  }

  main {
    flex: 1;
  }

  .aside-post {
    width: min(260px, 30%);

    @media (max-width: 767px) {
      width: 100%;
    }

    .aside-post__inner {
      .aside-post__title {
        background-color: #F1A4D1;
        border-radius: clamp(5px, 3.786px + 0.324vw, 10px);
        font-size: clamp(16px, 15.515px + 0.129vw, 18px);
        color: #fff;
        margin: 0;
        padding: clamp(10px, 8.786px + 0.324vw, 15px) clamp(15px, 13.786px + 0.324vw, 20px);
      }

      .news-list {
        .news-list__item {
          box-shadow: none;
          border-radius: 0;
          border-bottom: 1px #F7ACD3 solid;
        }

        .news-list__item+.news-list__item {
          margin-top: 0;
        }

        .news-list__link {
          display: grid;
          grid-template-columns: auto 1fr;
          gap: 5px 10px;
          padding: 20px 0;

          &::after {
            display: none;
          }
        }

        .news-list__link:hover {
          transform: none;
        }

        .news-list__date {
          grid-column: 1;
          font-size: 14px;
        }

        .news-list__category {
          grid-column: 2;
          display: flex;
          flex-wrap: wrap;
          gap: 5px;

          .news-category-icon {
            font-size: 10px;
          }
        }

        .news-list__title {
          grid-column: 1 / 3;
          font-size: 13px;
        }
      }
    }

    .aside-post__inner+.aside-post__inner {
      margin-top: clamp(50px, 47.573px + 0.647vw, 60px);
    }

    .archive-list {
      list-style: none;
      margin: 0;
      padding: 0;

      .year {
        position: relative;
        border-bottom: 1px #F7ACD3 solid;

        .year-toggle {
          cursor: pointer;
          position: relative;
          font-weight: 600;
          font-size: 14px;
          margin: 0;
          padding: 15px 0 17px;
          transition: ease-in .2s;

          &::after {
            content: "";
            position: absolute;
            top: 50%;
            right: 10px;
            width: 12px;
            height: 7px;
            background: url("data:image/svg+xml,%3Csvg width='13' height='9' viewBox='0 0 13 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.379882 0.326173L6.37988 7.32617L12.3799 0.326172' stroke='%23E14595'/%3E%3C/svg%3E%0A") center center / contain no-repeat;
            transform: translateY(-50%);
            transition: ease-in .2s;
          }

          &:hover {
            opacity: 0.7;
          }

          &.show {
            &::after {
              transform: translateY(-50%) rotate(-180deg);
            }
          }
        }

        .month-list {
          display: none;
          list-style: none;
          margin: 0;
          padding: 0 0 20px;

          &>li {
            font-size: 13px;

            &>a {
              position: relative;
              font-size: 13px;
              padding-left: 15px;

              &::before {
                content: "";
                position: absolute;
                top: 50%;
                left: 0;
                transform: translateY(-50%);
                width: 4px;
                height: 1px;
                border-bottom: 1px #575757 solid;
              }
            }

            a:hover {
              opacity: 0.7;
            }
          }

          li+li {
            margin-top: 5px;
          }
        }
      }
    }

    .category-list {
      list-style: none;
      margin: 20px 0 0;
      padding: 0;
      display: flex;
      flex-wrap: wrap;
      gap: 20px;

      .category-list__item {}

      .news-category-icon {
        font-size: clamp(13px, 12.757px + 0.065vw, 14px);
      }

      .news-category-icon:hover {
        opacity: 0.7;
      }
    }
  }
}

/*----------------------------------------
お知らせ：詳細
----------------------------------------*/
.single-news {
  .post-header {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 15px;
    align-items: center;
    margin-bottom: clamp(60px, 50.291px + 2.589vw, 100px);

    .post-header__date {
      grid-column: 1;
      grid-row: 1;
      font-family: var(--font-en);
      font-weight: 400;
      font-size: 14px;
      color: var(--logo-pink);
    }

    .post-header__category {
      grid-column: 2;
      grid-row: 1;
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
    }

    .post-header__title {
      grid-column: 1 / 3;
      grid-row: 2;
      font-size: clamp(24px, 21.330px + 0.712vw, 35px);
      margin: 0;
    }
  }

  .post-main {
    .post-main__eyecatch {
      width: clamp(300px, 227.184px + 19.417vw, 600px);
      margin: 0 auto clamp(30px, 25.146px + 1.294vw, 50px);
    }

    .btn-back {
      margin-top: clamp(80px, 50.874px + 7.767vw, 200px);
    }
  }
}

/*----------------------------------------
固定ページ：プライバシーポリシー
----------------------------------------*/
.page-privacy-policy,
.page-cancel-policy {
  .policy-section {
    .policy-section__title {
      font-size: clamp(16px, 14.544px + 0.388vw, 22px);
      line-height: 1.7;
      border-bottom: 1px #F7ACD3 solid;
      margin: clamp(30px, 25.146px + 1.294vw, 50px) 0 clamp(15px, 13.786px + 0.324vw, 20px);
      padding-bottom: clamp(10px, 8.786px + 0.324vw, 15px);
    }

    .policy-section__table {
      margin: clamp(15px, 11.359px + 0.971vw, 30px) 0;
      border: 1px #FDE5F1 solid;
      width: min(800px, 100%);

      th,
      td {
        padding: clamp(20px, 17.573px + 0.647vw, 30px) clamp(15px, 13.786px + 0.324vw, 20px);
        font-size: clamp(13px, 11.786px + 0.324vw, 18px);
        line-height: 2;
      }

      th {
        background-color: #FDE5F1;
        border: 1px #fff solid;
        text-align: left;
      }

      td {
        border: 1px #FDE5F1 solid;
      }
    }
  }
}

.error404 {
  .notfound-section {
    margin-top: clamp(130px, 69.320px + 16.181vw, 380px);

    .notfound-section__logo {
      width: clamp(160px, 138.155px + 5.825vw, 250px);

      @media (max-width: 767px) {
        margin: 0 auto;
      }
    }

    .notfound-section__text {
      margin-top: clamp(30px, 25.146px + 1.294vw, 50px);

      @media (max-width: 767px) {
        text-align: center;
      }
    }

    .btn-back {
      margin-top: clamp(60px, 33.301px + 7.12vw, 170px);
    }
  }
}

/*----------------------------------------
症例：一覧
----------------------------------------*/
.post-type-archive-case {
  .case-section {
    display: block;
    padding-left: 0;
  }
}

.search-results__text {
  text-align: center;
  margin-bottom: clamp(40px, 30.291px + 2.589vw, 80px);

  strong {
    color: var(--logo-pink);
    font-size: clamp(20px, 17.573px + 0.647vw, 30px);
  }
}