@charset "utf-8";
/*--------------------
webfont
--------------------*/
* {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-style: normal;
}

/*--------------------
root
--------------------*/
:root {
  --font-en: "Sulphur Point", sans-serif;
  --font-noto: "Noto Sans JP", sans-serif;
}

/*--------------------
common
--------------------*/
html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}
body {
  counter-reset: number 0;
  color: #483F35;
  background-color: #FAF8F5;
  position: relative;

  &.no-scroll {
    overflow: hidden;
  }
}
a {
	color: #483F35;
	text-decoration: none;
	transition : ease-in .2s;

  &:hover {
    transition : ease-in .2s;
  }
}
picture {
	display: block;

  img {
    width: 100%;
  }
}
.container {
  width: calc(1440px + 4%);
	margin: auto;
  padding: 0 2%;

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

  @media (max-width: 767px) {
    width: 100%;
    padding: 0 5%;
  }
}
.container_m {
  width: calc(1200px + 4%);
	margin: auto;
  padding: 0 2%;

  @media (max-width: 1300px) {
    width: 100%;
    padding: 0 5%;
  }
}
.container_s {
  width: calc(960px + 4%);
	margin: auto;
  padding: 0 2%;

  @media (max-width: 1000px) {
    width: 100%;
    padding: 0 5%;
  }
}
.pc {
  display: block;

  @media (max-width: 767px) {
    display: none;
  }
}
.sp {
  display: none;

  @media (max-width: 767px) {
    display: block;
  }
}
.swiper {
  ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
}

.modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 20px;
  background: white;
  border: 1px solid #ccc;
  z-index: 1000;
  display: none;
}

.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 999;
}

/* title */
.sec_ttl {
  margin-bottom: clamp(1.875rem, 1.215rem + 2.82vw, 3.75rem);
  text-align: center;

  p, h2 {
    margin: 0;
    line-height: 1;
    font-size: clamp(1.563rem, 1.232rem + 1.41vw, 2.5rem);
  }
  h2 {
    position: relative;
    display: inline-block;
    line-height: 1.2;

    &::before {
      content: "";
      position: absolute;
      top: -0.8em;
      right: -0.8em;
      width: clamp(1.25rem, 0.966rem + 1.21vw, 1.875rem);
      height: clamp(1.125rem, 0.841rem + 1.21vw, 1.75rem);
      background: url(../img/logomark_brown.svg) no-repeat;
      background-size: 100%;
    }
  }
  .en {
    font-family: var(--font-en);
    font-weight: 400;
    color: #AF4B46;
    font-size: clamp(0.75rem, 0.574rem + 0.75vw, 1.25rem);
    margin-top: 0.8em;

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

/* btn_more */
.btn_more_brown {
  display: flex;
  justify-content: right;

  a {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
    color: #B28251;
    border-bottom: 1px #B28251 solid;
    padding-bottom: 0.1em;
    transition : ease-in .2s;
    
    &::after {
      content: "";
      margin-left: 1em;
      margin-right: 0.2em;
      width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      border: 0;
      border-top: solid 1px #B28251;
      border-right: solid 1px #B28251;
      transform: rotate(45deg);
      transition : ease-in .2s;
    }
  
    &:hover {
      transition : ease-in .2s;
      
      &::after {
        margin-left: 1.2em;
        margin-right: 0;
      }
    }
  }
}
.btn_more_red {
  display: flex;
  justify-content: center;
  transition : ease-in .2s;

  a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #AF4B46;
    font-size: clamp(0.875rem, 0.818rem + 0.24vw, 1rem);
    color: #fff;
    max-width: clamp(12.5rem, 10.299rem + 9.39vw, 18.75rem);
    width: 100%;
    padding: 1em;
    border-radius: 100px;
    transition : ease-in .2s;
    
    &::after {
      content: "";
      position: absolute;
      bottom: 44%;
      right: 20px;
      width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      border: 0;
      border-top: solid 1px #fff;
      border-right: solid 1px #fff;
      transform: rotate(45deg);
      transition : ease-in .2s;
    }
    &:hover {
      opacity: 0.8;
      transition : ease-in .2s;
    }
  }
}
.btn_brown {
  display: flex;
  justify-content: center;
  transition : ease-in .2s;

  a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #D5A775;
    font-size: clamp(0.875rem, 0.818rem + 0.24vw, 1rem);
    color: #fff;
    max-width: clamp(12.5rem, 10.299rem + 9.39vw, 18.75rem);
    width: 100%;
    padding: 1em;
    border-radius: 100px;
    transition : ease-in .2s;
    
    &::after {
      content: "";
      position: absolute;
      bottom: 44%;
      right: 20px;
      width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      border: 0;
      border-top: solid 1px #fff;
      border-right: solid 1px #fff;
      transform: rotate(45deg);
      transition : ease-in .2s;
    }
    &:hover {
      opacity: 0.8;
      transition : ease-in .2s;
    }
  }
}

/* btn_back */
.btn_back_brown {
  display: flex;

  a {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
    color: #B28251;
    border-bottom: 1px #B28251 solid;
    padding-bottom: 0.1em;
    transition : ease-in .2s;
    
    &::before {
      content: "";
      margin-right: 1em;
      margin-left: 0.2em;
      width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      border: 0;
      border-bottom: solid 1px #B28251;
      border-left: solid 1px #B28251;
      transform: rotate(45deg);
      transition : ease-in .2s;
    }
  
    &:hover {
      transition : ease-in .2s;
      
      &::before {
        margin-right: 1.2em;
        margin-left: 0;
      }
    }
  }
}

/* ご予約・ご相談はこちら */
.cta_area {

  /* ボタン共通 */
  .btn_cta_item {
    position: relative;

    &::after {
      content: "";
      position: absolute;
      right: clamp(0.75rem, 0.179rem + 1.19vw, 1.25rem);
      bottom: 47%;
      width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
      border: 0;
      border-top: solid 1px #AF4B46;
      border-right: solid 1px #AF4B46;
      transform: rotate(45deg);
    }

    a {
      display: flex;
      justify-content: left;
      align-items: center;
      gap: clamp(0.313rem, -0.045rem + 0.74vw, 0.625rem);
      height: clamp(4.563rem, 3.848rem + 1.49vw, 5.188rem);
      padding: 0 0.8em;
      font-size: clamp(0.875rem, 0.589rem + 0.6vw, 1.125rem);
      border-radius: 10px;
      background-color: #F0EADF;

      &:hover {
        opacity: 0.8;
      }
      
      
      &::before {
        content: "";
        display: block;
        width: clamp(1.563rem, 0.848rem + 1.49vw, 2.188rem);
        height: clamp(1.938rem, 1.223rem + 1.49vw, 2.563rem);
        background-repeat: no-repeat;
        background-size: 100%;
        flex-shrink: 0;
      }
      small {
        display: block;
        font-size: 10px;
        margin-top: 5px;

        br {
          display: none;

          @media (max-width: 1440px) {
            display: inline-block;
          }
        }
      }
    }
  }
  .btn_cta_item + .btn_cta_item {
    margin-top: 10px;
  }
  .btn_cta_list {
    overflow: hidden;
    list-style: none;
    margin: 0;
    padding: 0;

    /* WEB予約はこちら */
    .btn_web {
      a {
        &::before {
          background-image: url(../img/icon_cta_web.svg);
        }
      }
    }

    /* 電話予約はこちら */
    .btn_tel {
      a {
        &::before {
          background-image: url(../img/icon_cta_tel.svg)
        }
      }
    }

    /* LINE予約はこちら */
    .btn_line {
      a {
        &::before {
          background-image: url(../img/icon_cta_line.svg);
        }
      }
    }
  }

  /* 問い合わせはこちら */
  .btn_contact {
    border-radius: 10px;
    overflow: hidden;

    a {
      background-color: #EFE7DE;

      &::before {
        background-image: url(../img/icon_cta_contact.svg);
      }
    }
  }
}
/*--------------------
header
--------------------*/
.top {
  header {
    &::after {
      content: "";
      display: block;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      bottom: -40px;
      width: 1px;
      height: 130px;
      background-color: #D5A775;
      z-index: 2;
    }
    @media (max-width: 767px) {
      &::after {
        bottom: -20px;
        height: 50px;
      }
    }
  }
}
header {
  position: relative;

  ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .header_inner {
    position: absolute;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 102;
    padding: 1em;

    @media (max-width: 767px) {
      align-items: start;
      padding: 0.5em;
    }

    /* ハンバーガー&Instagram */
    .g_nav_sub {
      display: flex;
      gap: 10px;
      position: absolute;
      left: 2%;

      @media (max-width: 767px) {
        display: block;
      }
  
      li {
        width: clamp(2.375rem, 1.803rem + 2.44vw, 4rem);
        height: clamp(2.375rem, 1.803rem + 2.44vw, 4rem);
        cursor: pointer;
        border-radius: 100px;
        background-color: rgba(255, 255, 255, 0.2);
        display: flex;
        justify-content: center;
        align-items: center;
        transition : ease-in .2s;

        @media (max-width: 767px) {
          background-color: rgba(255, 255, 255, 0.8);
        }
  
        /* ハンバーガー */
        .hamburger_lines {
          position: relative;
          width: 45%;
          margin: auto;
          height: clamp(13px, 3.466666666666667vw, 26px);
          height: clamp(0.75rem, 0.53rem + 0.94vw, 1.375rem);
          -webkit-transition-duration: 300ms;
          transition-duration: 300ms;
    
          .line {
            position: absolute;
            right: 0;
            left: 0;
            display: block;
            width: 100%;
            height: clamp(1px, .26666666666666666vw, 2px);
            margin: auto;
            -webkit-transition-duration: 300ms;
            transition-duration: 300ms;
            background-color: #D5A775;
            border-radius: 5vw;
          }
          .line:nth-child(1) {
            top: 0;
          }
          .line:nth-child(2) {
            bottom: 0;
          }
          .line:nth-child(3) {
            top: 50%;
            transform: translateY(-50%);
          }
        }
        &:hover {
          transform: scale(1.1);
        }
      }
      .btn_instagram {

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

        img {
          width: 100%;
        }
      }
    }
    
    /* グローバルナビ */
    .g_nav {
      .g_nav_list {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: clamp(1.563rem, -1.047rem + 3.48vw, 3.125rem);

        .g_nav_item {

          @media (max-width: 1200px) {
            display: none;
          }
          
          a {
            font-size: clamp(0.875rem, 0.247rem + 0.84vw, 1rem);
            text-align: center;
            color: #483F35;

            .en {
              display: block;
              color: #B28251;
              font-family: var(--font-en);
              font-weight: 400;
              font-size: clamp(0.688rem, 0.375rem + 0.42vw, 0.75rem);
              transition : ease-in .2s;
            }
            &:hover {
              color: #B28251;
  
              .en {
                color: #AF4B46;
              }
            }
          }
        }
        .g_nav_logo {
          .header_logo {
            font-size: 1em;
            margin: 0;
            width: clamp(5rem, -7.563rem + 16.74vw, 7.5rem);

            img {
              width: 100%;
            }
          }
        }
      }
    }
    .cta_area {
      width: clamp(13.75rem, 1.815rem + 15.9vw, 16.125rem);
      position: absolute;
      top: 0;
      right: 0;

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

      /* お問い合わせ */
      .btn_cta {
        position: relative;
        background: linear-gradient(90deg, rgba(175,75,70,1) 0%, rgba(219,112,107,1) 100%);
        display: flex;
        justify-content: center;
        align-items: center;
        color: #fff;
        font-size: clamp(0.938rem, -0.005rem + 1.26vw, 1.125rem);
        height: clamp(3.938rem, 2.509rem + 2.98vw, 5.188rem);
        border-radius: 0 0 0 10px;
        cursor: pointer;
        transition : ease-in .2s;
        height: 80px;
    
        &::after {
          content: "";
          position: absolute;
          right: clamp(0.625rem, 0.268rem + 0.74vw, 0.938rem);
          bottom: 47%;
          width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
          height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
          border: 0;
          border-bottom: solid 1px #fff;
          border-right: solid 1px #fff;
          transform: rotate(45deg);
          transition : ease-in .2s;
        }
        &:hover {
          opacity: 0.8;
          transition : ease-in .2s;
        }
        &.show {
          &::after {
            transform: rotate(-135deg);
          }
        }
      }
      .btn_cta_group {
        display: none;

        .btn_cta_list {
          margin-top: 5px;
          border-radius: 10px 0 0 10px;
        }
      }
      .btn_cta_item {

        a {
          border-radius: 0;
          backface-visibility: hidden;
          transition : ease-in .2s;
          opacity: 1;

          &:hover {
            background: rgb(235,222,209);
            background: linear-gradient(180deg, rgba(235,222,209,1) 0%, rgba(255,255,255,1) 100%);
            transition : ease-in .2s;
          }

          span {
            font-size: clamp(0.938rem, -0.005rem + 1.26vw, 1.125rem);

            small {
              br {
                display: inline-block;
              }
            }

          }
        }
        & + .btn_cta_item {
          margin-top: 0;
        }
      }

      /* WEB予約はこちら */
      .btn_web {
        a {
          background: linear-gradient(#F5F1EA, #F5F1EA);
        }
      }
  
      /* 電話予約はこちら */
      .btn_tel {
        a {
          background: linear-gradient(#EFE7DE, #EFE7DE);
        }
      }
  
      /* LINE予約はこちら */
      .btn_line {
        a {
          background: linear-gradient(#F5F1EA, #F5F1EA);
        }
      }

      /* 問い合わせはこちら */
      .btn_contact {
        margin-top: 5px;
        border-radius: 10px 0 0 10px;
        
        a {
          background: linear-gradient(#EFE7DE, #EFE7DE);
        }
      }
    }
    &.visible {
      position: fixed;
      background-color: rgba(255, 255, 255, 0.8);
      padding: 0.5em;

      .g_nav_sub {
        gap: 5px;

        li {
          background-color: transparent;
          
          &.btn_instagram {
            width: auto;
          }
        }
      }
      .g_nav {
        .g_nav_logo {
          .header_logo {
            width: 80px;

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

        }
      }
    }
  }
  &.active {
    .header_inner {
      padding: 0;
      
      .g_nav_sub {
        li {
          &:hover {
            transform: scale(1);
          }
        }
        .btn_hamburger {
          position: fixed;

          @media (max-width: 767px) {
            top: 0.5em;
            background-color: rgba(255, 255, 255, 0.8)
          }
        }
        .btn_instagram {
          display: none;
        }
      }
    }
  }
}

/*hanmenu*/
.ham_con {
  display: none;
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: #FAF8F5;
  transition: ease-in .2s;
  z-index: 101;
  overflow-y: scroll;
  overscroll-behavior: none;

  .ham_con_inner {
    padding-top: 3em;

    @media (max-width: 767px) {
      padding-top: 4em;
    }

    .ham_logo {
      width: clamp(9.375rem, 8.161rem + 5.18vw, 14.375rem);
      margin: 0 auto 5em;
    
    @media (max-width: 767px) {
      margin: 0 auto 2em;
    }

      a {
        img {
          width: 100%;
        }
      }
    }
    .sns_area {
      display: flex;
      gap: 10px;
      list-style: none;
      margin: 3em 0 0;
      padding: 0;

      li {
        a {
          img {
            width: 30px;
          }
          &:hover {
            opacity: 0.8;
          }
        }
      }
    }
    .nav_wrapper {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;

      @media (max-width: 767px) {
        gap: 3em;
      }

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

        .g_nav_list {
          margin: 0;
          padding: 0;
          border: 0;
          display: flex;
          flex-wrap: wrap;
          gap: 0 2em;
  
          .g_nav_item {
            width: calc((100% - 2em) / 2);
            border-bottom: 1px #D5A775 solid;
  
            a {
              display: block;
              padding: 1em 0;
              position: relative;
              font-size: clamp(0.875rem, 0.784rem + 0.39vw, 1.25rem);

              @media (max-width: 767px) {
                padding: 1.2em 0;
              }

              &::after {
                content: "";
                position: absolute;
                right: 5px;
                bottom: 1.5em;
                width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
                height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
                border: 0;
                border-top: solid 1px #D5A775;
                border-right: solid 1px #D5A775;
                transform: rotate(45deg);
              }
              &:hover {
                color: #B28251;
              }
            }
          }
        }

        .sns_area {

          @media (max-width: 767px) {
            display: none;
          }
        }
      }
      .info_area {
        width: 40%;
    
        @media (max-width: 767px) {
          width: 100%;
            
          .btn_cta_list {
            display: flex;
            gap: 10px;

            .btn_cta_item {
              width: calc((100% - 20px) / 3);

              &::after {
                display: none;
              }
              & + .btn_cta_item {
                margin-top: 0;
              }
              a {
                flex-direction: column;
                padding: 0.8em 0.8em 0.5em;
                height: auto;
                gap: 0.1em;

                &::before {
                  width: 35px;
                  height: 41px;
                }
                
                span {
                  text-align: center;

                  small {
                    display: none;

                    br {
                      display: none;
                    }
                  }
                }
              }
            }
            
            & + small {
              margin-top: 0.5em;
              font-size: 9px;
              text-align: right;
            }
          }
          .btn_contact {
            a {
              &::before {
                width: 35px;
                height: 41px;
              }
                
              span {
                width: calc(100% - 70px);
                text-align: center;

                small {
                  br {
                    display: none;
                  }
                }
              }
            }
          }
        }
        .sns_area {
          display: none;

          @media (max-width: 767px) {
            display: flex;
            justify-content: center;
            align-items: center;
            margin-top: 2em;
          }
        }
      }
    }
  }
  .banner_store {
    margin-top: 5em;

    @media (max-width: 767px) {
      margin-top: 4em;
    }
  }
}
header.active .ham_con {
  display: block;
  transition: ease-in .2s;
}
header.active .header_inner .g_nav, 
header.active .header_inner .cta_area,
header.active .header_inner .btn_instagram {
  display: none;
}

/*--------------------
top
--------------------*/
/* mv */
.mv {
  background-color: #F4ECE2;
  position: relative;
  width: 100%;
  overflow: hidden;

  .mv_swiper {

    .swiper-wrapper {
      margin: 0;

      .swiper-slide {
        img {
          width: 100%;
          height: auto;
        }
      }
    }
  }
  .slide_copy {
    position: absolute;
    left: 10px;
    bottom: 10vw;
    z-index: 2;
    max-width: 535px;
    width: 34vw;

    @media (max-width: 767px) {
      width: clamp(15rem, 8.423rem + 28.06vw, 21.875rem);
    }

    img {
      width: 100%;
    }
  }
}

/* campaign */
.top_campaign {
  background-color: #F4ECE2;
  padding-top: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
  padding-bottom: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);

  .container_m {
    padding: 0 4%;

    .campaign_swiper_wrapper {
      position: relative;

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

      .swiper {
        width: calc(100% - 6em);

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

        .campaign_swiper {
          margin-bottom: clamp(1.875rem, 1.215rem + 2.82vw, 3.75rem);
  
          .swiper-wrapper {

            .swiper-slide {
  
              img {
                width: 100%;
                height: auto;
              }
            }
          }
        }
        
      }
      .swiper-button-next, .swiper-button-prev {
        top: 32%;
        display: block;
        height: clamp(1.5rem, 1.159rem + 1.45vw, 2.25rem);
  
        &::after {
          content: "";
          display: block;
          height: clamp(1.5rem, 1.159rem + 1.45vw, 2.25rem);
        }

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

          &::after {
            height: 24px;
          }
        }
      }
      .swiper-button-prev {
        left: 0;
  
        &::after {
          background: url(../img/arrow_prev.svg) top left no-repeat;
          background-size: 100%;
        }
      }
      .swiper-button-next {
        right: 0;
        left: auto;
  
        &::after {
          background: url(../img/arrow_next.svg) top left no-repeat;
          background-size: 100%;
        }
      }
    }
  }
}

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

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

  .campaign_item {
    width: calc((100% - 60px) / 3);

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

    a {

      &:hover {
        opacity: 0.8;
      }
      .eyecatch {
        display: block;
        margin-bottom: 15px;
        width: 100%;

        img {
          width: 100%;
          height: auto;
        }
      }
      time {
        display: block;
        font-family: var(--font-en);
        font-weight: 400;
        font-size: clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem);
        color: #AF4B46;
        margin: 0 0 0.2em;
      }
      .post_ttl {
        font-size: clamp(0.75rem, 0.684rem + 0.28vw, 0.938rem);
        margin: 0;
      }
    }
  }
}

/* problems */
.problems {
  background-color: #FAF8F5;
  padding: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem) 0;
  
  .problems_accordion {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(1.875rem, 1.655rem + 0.94vw, 2.5rem);

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

    .problems_item {
      width: calc((100% - 40px) / 2);

      @media (max-width: 767px) {
        width: 100%;
      }
      
      .problems_category {
        display: flex;
        position: relative;
        border-radius: 20px 20px 0 0;
        overflow: hidden;

        img {
          width: 100%;

          @media (max-width: 767px) {
            padding-bottom: 1.2em;
            margin-top: -1.2em;
          }
        }
        .problems_name {
          position: absolute;
          left: 0;
          bottom: 0;
          background-color: rgba(213, 167, 117, 0.9);
          width: calc(100% - clamp(2.75rem, 2.288rem + 1.97vw, 4.063rem));
          height: clamp(2.75rem, 2.288rem + 1.97vw, 4.063rem);
          display: flex;
          justify-content: left;
          align-items: center;
          gap: 1em;
          margin: 0;
          padding-left: clamp(1.563rem, -0.223rem + 3.72vw, 3.125rem);
          font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
          color: #fff;

          @media (max-width: 767px) {
            background-color: #D5A775;
          }

          &::after {
            content: "";
            width: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
            height: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
            background: url(../img/arrow_white.svg) no-repeat;
            background-size: 100%;
          }
          &:hover {
            gap: 1.2em;
          }
        }
        p.problems_name {
          &::after {
            display: none;
          }
        }
        .btn_accordion {
          position: absolute;
          right: 0;
          bottom: 0;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
          width: clamp(2.75rem, 2.288rem + 1.97vw, 4.063rem);
          height: clamp(2.75rem, 2.288rem + 1.97vw, 4.063rem);
          background-color: #AF4B46;
          border: 0;
          font-family: var(--font-en);
          font-weight: 400;
          font-size: clamp(0.688rem, 0.621rem + 0.28vw, 0.875rem);
          color: #fff;
          cursor: pointer;
          transition : ease-in .2s;
          padding: 0;

          &::after {
            content: "";
            width: clamp(0.5rem, 0.412rem + 0.38vw, 0.75rem);
            height: clamp(0.5rem, 0.412rem + 0.38vw, 0.75rem);
            border: 0;
            border-bottom: solid 1px #fff;
            border-right: solid 1px #fff;
            transform: rotate(45deg);
            transition : ease-in .2s;
          }
          &:hover {
            background-color: #b9655e;
            transition : ease-in .2s;
          }
        }
      }
      .menu_list_wrapper {
        display: none;
        
        .menu_list {
          background-color: #fff;
          flex-wrap: wrap;
          margin: 0;
          padding: clamp(1.25rem, 1.03rem + 0.94vw, 1.875rem);
          list-style: none;
          border-radius: 0 0 20px 20px;
          display: flex;
    
          li {
            width: 50%;
            
            a {
              display: flex;
              justify-content: left;
              align-items: start;
              font-family: var(--font-noto);
              font-weight: normal;
              font-size: clamp(0.813rem, 0.79rem + 0.09vw, 0.875rem);
              gap: 0.5em;
              padding: 0.8em 1em 0.8em 0.5em;
    
              &:hover {
                color: #AF4B46;
              }
    
              &::before {
                content: "";
                width: 6px;
                height: 1px;
                background-color: #B28251;
                flex-shrink: 0;
                margin-top: 0.75em;
              }
            }
          }
        }
      }
      &.show {
        .problems_category {
          .btn_accordion {
            &::after {
              transform: rotate(-135deg);
            }
          }
        }
      }
    }
  }
}

/* features */
.top_feature {
  overflow: hidden;

  .top_feature_inner {
    background-color: #F4ECE2;
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    overflow: hidden;
  
    .feature_list {
      position: relative;
      display: flex;
      gap: 3%;
      list-style: none;
      margin: 0;
      padding: 0;

      @media (max-width: 767px) {
        flex-direction: column;
        gap: 30px;
        margin-bottom: 2em;
      }

      &::before {
        content: "";
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 100%;
        height: clamp(0.938rem, 0.827rem + 0.47vw, 1.25rem);
        background-color: #E8DCC9;
      }
        
      @media (max-width: 767px) {
        &::before {
          top: 0;
          left: 50%;
          transform: translateX(-50%);
          width: clamp(0.938rem, 0.827rem + 0.47vw, 1.25rem);
          height: 100%;
          }
      }
  
      .feature_item {
        width: calc((100% - 6%) / 3);
        background-color: #fff;
        padding: 3em 2.5em;
        border-radius: 20px;
        z-index: 2;

        @media (max-width: 767px) {
          width: 100%;
          padding: 2em 1.5em;
        }
  
        h3 {
          margin: 0 0 30px;
          font-size: clamp(1.125rem, 0.905rem + 0.94vw, 1.75rem);
          color: #B28251;
          text-align: center;
  
          &::after {
            content: "";
            display: block;
            width: 35px;
            height: 3px;
            margin: 10px auto 0;
            background-color: #D38783;
          }

          @media (max-width: 767px) {
            &::after {
              width: 25px;
              height: 2px;
            }
          }
          & + img {
            display: none;

            @media (max-width: 767px) {
              display: block;
              margin: 0 -1.5em 1em;
              width: calc(100% + 3em);
            }
          }

          @media (max-width: 767px) {
            br {
              display: none;
            }
          }
        }
        .txt {
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          line-height: 2;
        }
        
      }
    }
    .feature_photo_list {
      display: flex;
      gap: 10px;
      margin: clamp(1.875rem, 1.215rem + 2.82vw, 3.75rem) 0;
      padding: 0;
      list-style: none;

      @media (max-width: 767px) {
        display: none;
      }
  
      .feature_photo_item {
        width: calc((100% - 20px) /3);
  
        img {
          width: 100%;
        }
      }
    }
  }
  &::after {
    content: "";
    display: block;
    position: relative;
    background: #F4ECE2;
    height: clamp(3.75rem, 1.769rem + 8.45vw, 9.375rem);
    border-bottom-left-radius: 50% 100%;
    border-bottom-right-radius: 50% 100%;
    margin: 0 -100px;
    overflow: hidden;
  }
}
/* message */
.top_message {
  padding-top: clamp(3.75rem, 1.769rem + 8.45vw, 9.375rem);
  padding-bottom: clamp(3.75rem, 1.769rem + 8.45vw, 9.375rem);

  .message_box {
    display: flex;
    gap: 3%;
    margin-bottom: clamp(1.875rem, 1.023rem + 3.64vw, 3.75rem);

    @media (max-width: 1000px) {
      flex-direction: column;
      gap: 2em;
    }

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

    .message_txt {
      width: 52%;
      font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
      line-height: 2;

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

    .message_img {
      width: 45%;

      @media (max-width: 1000px) {
        max-width: 500px;
        width: 100%;
        margin: auto;
        text-align: center;
      }

      img {
        width: 100%;

        @media (max-width: 1000px) {
          width: 90%;
        }
      }
      .name_area {
        margin-top: 20px;
        text-align: right;
        line-height: 1.5;

        .name {
          margin: 0;
          font-size: clamp(1rem, 0.956rem + 0.19vw, 1.125rem);
  
          small {
            font-size: 0.8em;
            margin-right: 0.5em;
          }
        }

      }
    }
  }
}

/* cosme */
.top_cosme {
  overflow: hidden;

  &::before {
    content: "";
    display: block;
    position: relative;
    background: #fff;
    height: clamp(3.75rem, 1.769rem + 8.45vw, 9.375rem);
    border-top-left-radius: 50% 100%;
    border-top-right-radius: 50% 100%;
    margin: 0 -100px;
  }
  .top_cosme_inner {
    background-color: #fff;
    padding-top: clamp(0.625rem, 0.405rem + 0.94vw, 1.25rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .cosme_txt {
      font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
      line-height: 2;
      text-align: center;
      margin-bottom: 60px;

      @media (max-width: 767px) {
        text-align: left;
        margin-bottom: 2em;
      }
    }
    .cosme_swiper_wrapper {
      position: relative;

      .cosme_swiper {
        margin-bottom: 60px;
        width: 90%;

        @media (max-width: 767px) {
          margin-bottom: 2em;
          width: calc(100% - 4em);
        }
  
        .swiper-wrapper {
          .swiper-slide {
            img {
              width: 100%;
              height: auto;
            }
          }
        }
      }
      .swiper-button-next, .swiper-button-prev {
        top: 60%;
        display: block;
        height: clamp(1.5rem, 1.159rem + 1.45vw, 2.25rem);

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

        &::after {
          content: "";
          display: block;
          height: clamp(1.5rem, 1.159rem + 1.45vw, 2.25rem);
        }

        @media (max-width: 767px) {
          &::after {
            height: 24px;
          }
        }
      }
      .swiper-button-next {
        right: 0;
        left: auto;

        &::after {
          background: url(../img/arrow_next.svg) top left no-repeat;
          background-size: 100%;
        }
      }
      .swiper-button-prev {
        left: 0;

        &::after {
          background: url(../img/arrow_prev.svg) top left no-repeat;
          background-size: 100%;
        }
      }
    }
  }
}
.banner_store {
  a {
    display: flex;

    &::before, &::after {
      content: "";
      display: block;
      width: calc((100% - 700px) / 2);
    }
    &::before {
      background: url(../img/store_banner_img01.jpg) top right / cover no-repeat;
    }
    &::after {
      background: url(../img/store_banner_img02.jpg) top right / cover no-repeat;
    }
    @media (max-width: 767px) {
      &::before, &::after {
        width: 15%;
      }
    }
    .banner_store_inner {
      max-width: 700px;
      width: 100%;
      background-color: #D5A775;
      color: #fff;
      padding: 40px 0 30px;
      text-align: center;
  
      @media (max-width: 767px) {
        max-width: none;
        width: 70%;
        padding: 15px 0 20px;
      }
  
      .banner_logo {
        width: clamp(5rem, 3.46rem + 6.57vw, 9.375rem);
        margin-bottom: 10px;
      }
      .ttl {
        font-size: clamp(1.563rem, 1.232rem + 1.41vw, 2.5rem);
        margin: 0 0 25px;

        @media (max-width: 767px) {
        margin: 0 0 0.5em;
        }
      }
      .btn {
        position: relative;
        width: 300px;
        font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
        margin: 0 auto;
        padding: 0.5em;
        border-radius: 100px;
        border: 1px #fff solid;
        transition: ease-in .2s;

        @media (max-width: 767px) {
          max-width: 230px;
          width: 60%;
        }
  
        &::after {
          content: "";
          position: absolute;
          bottom: 41%;
          right: 20px;
          width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
          height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
          border: 0;
          border-top: solid 1px #fff;
          border-right: solid 1px #fff;
          transform: rotate(45deg);
          transition: ease-in .2s;
        }

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

    &:hover {
      .btn {
        background-color: rgba(255, 255, 255, 0.1);
        transition: ease-in .2s;
      }
    }
  }
}

/* instagram */
.top_instagram {
  padding: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem) 0 clamp(3.75rem, 3.31rem + 1.88vw, 5rem);
  background: 
    linear-gradient(to bottom, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 50%),
    linear-gradient(to right, #FCF4E4, #FFEEED);
  background-repeat: no-repeat;
  background-size: 100% 50%, 100% 50%;
  background-position: top, bottom;

  .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_brown {
    margin-top: 0;
  }
}

/* news */
.top_news {
  padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
  padding-bottom: clamp(3.75rem, 3.31rem + 1.88vw, 5rem);
  background-color: #F4ECE2;
}
.news_list {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;

  li {
    a {
      background-color: #fff;
      display: flex;
      align-items: center;
      gap: 20px;
      padding: 35px 25px;
      border-radius: 10px;
            
      @media (max-width: 767px) {
        flex-direction: column;
        align-items: start;
        gap: 0.1em;
        padding: 25px 20px;
      }

      time {
        font-family: var(--font-en);
        font-weight: 400;
        font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
        color: #AF4B46;
        flex-shrink: 0;
      }
      .news_ttl {
        font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        margin: 0;
      }
      &:hover {
        opacity: 0.8;
      }
    }
  }
  li + li {
    margin-top: 15px;

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

/*--------------------
カレンダー
--------------------*/
.info_area {

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

  h3 {
    font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
    color: #AF4B46;
    border-bottom: 1px #AF4B46 solid;
    margin: 0 0 0.8em;
    padding: 0 0 0.5em;
  }
  h3 + p {
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
  }
  .cta_area + h3 {
    margin-top: 50px;

    @media (max-width: 767px) {
    margin-top: 2em;
    }
  }
}
.common_contact {
  background: url(../img/contact_bg.jpg) top center / cover no-repeat;
  padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
  padding-bottom: clamp(3.75rem, 3.31rem + 1.88vw, 5rem);

  .contact_inner {
    display: flex;
    border-radius: 20px;
    overflow: hidden;

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

    .calendar_area {
      background-color: #fff;
      width: 60%;
      padding: 5%;

      @media (max-width: 767px) {
        width: 100%;
        padding: 2.5em 5% 2em;
      }

      .medical_hours {
        font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        line-height: 2;
        margin: 0 0 1em;

        @media (max-width: 767px) {
        margin: 0 0 0.5em;
        }
      }
      .medical_hours_table {
        width: 100%;
        border: 1px #D5A775 solid;

        th {
          background-color: #D5A775;
          font-size: clamp(0.75rem, 0.574rem + 0.75vw, 1.25rem);
          color: #fff;
          text-align: center;
          padding: 0.5em;
        }
        th + th {
          border-left: 1px #fff solid;
        }
        td {
          background-color: #FAF8F5;
          font-size: clamp(0.75rem, 0.574rem + 0.75vw, 1.25rem);
          text-align: center;
          color: #D5A775;
          padding: 0.5em;
        }
      }
      .medical_hours_table_txt {
        font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        text-align: right;
        margin-top: 0.5em;

        .litebrown {
          font-size: 1.2em;
        }
      }
      .simple_calendar_area {
        h3 {
          color: #B28251;
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          margin: 0 0 0.5em;
        }
        .this_month {
          .simcal-calendar {
            .simcal-align-right {
              display: none;
            }
            .simcal-calendar-grid {
              width: 100%;
              table-layout: fixed;

              .simcal-calendar-head {
                .simcal-prev-wrapper {
                  text-align: left;
                    padding: 0 0.5em;

                  .simcal-prev {
                    border: none;
                    background: none;

                    &::before {
                      content: "▼";
                      display: block;
                      color: #fff;
                      font-size: clamp(0.625rem, 0.483rem + 0.3vw, 0.75rem);
                      transform: rotate(90deg);
                    }
                  }
                }
                .simcal-next-wrapper {
                  text-align: right;
                  padding: 0 0.5em;

                  .simcal-next {
                    border: none;
                    background: none;

                    &::before {
                      content: "▼";
                      display: block;
                      color: #fff;
                      font-size: clamp(0.625rem, 0.483rem + 0.3vw, 0.75rem);
                      transform: rotate(-90deg);
                    }
                  }
                }
                tr:nth-child(1) {
                  background-color: #D5A775;

                  h3 {
                    color: #fff;
                    font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
                    margin: 0.2em 0;

                    .simcal-current-year {
                      &::after {
                        content: "年";
                        color: #fff;
                        font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
                      }
                    }
                  }
                }
                tr:nth-child(2) {
                  background-color: #F0EADF;

                  th {
                    color: #B28251;
                    font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
                    padding: 0.25em;
                  }
                }
              }

              .simcal-month {
                .simcal-week {
                  & + .simcal-week {
                    border-top: 1px #EBE5DE solid;
                  }
                  .simcal-day {
                    color: #B28251;
                    font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
                    text-align: center;
                    vertical-align: top;

                    & > div {
                      min-height: 60px !important;
                      border: none !important;

                      @media (max-width: 767px) {
                        min-height: 50px !important;
                      }
                    }
                    &:nth-child(odd) {
                      background-color: #F5F3F0;
                    }
                    &:nth-child(even) {
                      background-color: #FAF8F5;
                    }
                    .simcal-events {
                      list-style: none;
                      margin: 0;
                      padding: 0;
                      display: block !important;
                    }
                    .simcal-event + .simcal-event {
                      margin-top: 0.2em;
                    }
                    .simcal-day-label {
                      background-color: transparent !important;
                      color: #B28251 !important;
                      font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
                    }
                    .simcal-event-title {
                      color: #fff;
                      background-color: #D38783 !important;
                      font-size: clamp(0.438rem, 0.393rem + 0.19vw, 0.563rem);
                      padding: 0.2em;
                      width: 85%;
                      border-radius: 4px;
                      display: inline-block !important;

                      @media (max-width: 767px) {
                        width: 90%;
                        border-radius: 2px;
                      }
                    }
                    .simcal-event-details {
                      display: none !important;
                    }
                    .simcal-events-dots {
                      display: none !important;
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    .info_area {
      width: 40%;
      padding: 5%;
      background-color: #FAF8F5;

      @media (max-width: 767px) {
        padding: 2em 5%;
        width: 100%;
      }

      .cta_area {
        .btn_cta_item {
          span {
            small {
              br {
                display: inline-block;

                @media (max-width: 767px) {
                  display: none;
                }
              }
            }
          }
        }
      }
    }
  }
}
.simcal-event-bubble {
  display: none;
}
.brown {
  color: #B28251;
}
.litebrown {
  color: #D5A775;
}

/* access */
.common_access {  
    display: flex;

    @media (max-width: 767px) {
      flex-direction: column;
      padding: clamp(3.75rem, 3.31rem + 1.88vw, 5rem) 6% 4em;
    }

  .googlemap {
    width: 50%;
    height: 485px;

    @media (max-width: 767px) {
      width: 100%;
      height: 40vw;
      margin: 0 auto 4vw;
    }
    
    iframe {
      width: 100%;
      height: 100%;
    }
  } 
  .access_area {
    padding: clamp(3.75rem, 3.31rem + 1.88vw, 5rem) 0 0 clamp(3.75rem, 3.31rem + 1.88vw, 5rem);

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

    .address {
      font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
      margin: 0 0 1em;
    }
    .directions_list {
      list-style: none;
      margin: 0;
      padding: 0 0 1.2em;
      border-bottom: 1px #D5A775 solid;

      .directions_item {
        font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        display: flex;
        align-items: center;
        padding: 0.2em;

        &:before {
          content: "●";
          color: #AF4B46;
          font-size: 0.8em;
          margin-right: 0.5em;
        }
      }
    }
    .parking {
      font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
      margin: 1.2em 0 0;
    }
  }
}

/*--------------------
footer
--------------------*/
footer {
	background-color: #483F35;
  padding: clamp(2.5rem, 2.06rem + 1.88vw, 3.75rem) 0 0;
  color: #fff;
  
  @media (max-width: 767px) {
    padding: clamp(2.5rem, 2.06rem + 1.88vw, 3.75rem) 0 110px;
  }

  .footer_inner {
    display: flex;

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

    .footer_logo_area {
      @media (max-width: 1200px) {
        text-align: center;
      }
      .logo {
        display: block;
        margin: 0 auto 1.2em;
        width: clamp(11.25rem, 9.83rem + 6.06vw, 14.375rem);

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

        img {
          width: 100%;
        }
      }
      .clinic_name {
        font-size: 0.875rem;
        margin: 0 0 1.2em;

        @media (max-width: 767px) {
          margin: 0 0 0.5em;
        }
      }
      .sns_area {
        display: flex;
        gap: 10px;
        list-style: none;
        margin: 0;
        padding: 0;

        @media (max-width: 1200px) {
          justify-content: center;
          margin-bottom: 3vw;
        }

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

        a {
          img {
            width: 30px;
          }
          &:hover {
            opacity: 0.8;
          }
        }
      }
    }
    .f_nav {
      display: flex;
      margin-left: auto;
      gap: 4em;

      @media (max-width: 1200px) {
        gap: 2em;
        margin-right: auto;
      }
      @media (max-width: 767px) {
        flex-direction: column;
        align-items: center;
        gap: 3em;
      }

      .f_nav_list {
        display: grid;
        width: fit-content;
        column-gap: 2em;
        grid-template-columns: repeat(3, auto);

        @media (max-width: 767px) {
          margin: 0;
          row-gap: 1.5em;
          grid-template-columns: repeat(2, auto);
        }

        .f_nav_item {
          a {
            display: flex;
            align-items: center;
            gap: 0.5em;
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
            color: #fff;

            &::before {
              content: "";
              width: 6px;
              height: 1px;
              background-color: #D5A775;
            }
            &:hover {
              opacity: 0.8;
            }
          }
        }
      }
      .footer_banner {
        width: clamp(12.5rem, 11.334rem + 4.98vw, 15.813rem);

        @media (max-width: 767px) {
          margin: 0;
        }
        
        a {
          &:hover {
            opacity: 0.8;
          }
          img {
            width: 100%;
          }
        }
      }
    }
  }
  .footer_bottom {
    border-top: 1px #D5A775 solid;
    margin-top: 3em;
    padding: 1em;

    .footer_bottom_inner {
      display: flex;
      align-items: center;

      @media (max-width: 1000px) {
        flex-direction: column;
        gap: 1em;
      }

      .f_nav_sub {
        .f_nav_sub_list {
          display: flex;
          gap: 2em;
          margin: 0;
  
          .f_nav_sub_item {
            a {
              font-size: clamp(0.75rem, 0.636rem + 0.48vw, 1rem);
              color: #fff;

              &:hover {
                opacity: 0.8;
              }
            }
          }
        }
      }
      .copyright {
        display: block;
        font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        text-align: center;
        margin-left: auto;

        @media (max-width: 1000px) {
          margin-right: auto;
          font-size: clamp(0.688rem, 0.577rem + 0.47vw, 1rem);
        }
      }

    }
    
  }
}

/*--------------------
pagetop
--------------------*/
.pagetop {
  position: fixed;
  bottom: 0;
  right: 0;
  margin: 0;
  width: clamp(4.063rem, 3.778rem + 1.21vw, 4.688rem);
  z-index: 99;
  
  a {
    img {
      width: 100%;
    }
    &:hover {
      opacity: 0.8;
    }
  }
}

/*--------------------
fixed_store
--------------------*/
.fixed_store {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  right: 25px;
  margin: 0;
  z-index: 99;

  @media (max-width: 767px) {
    display: none;
  }
  
  a {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 0.8em;

    span {
      writing-mode: vertical-rl;
      font-family: var(--font-en);
      font-weight: 400;
      color: #AF4B46;
      font-size: 18px;
      display: flex;
      align-items: center;
      gap: 0.8em;
      margin-left: 0.25em;

      
      &::after {
        content: "";
        display: block;
        width: 1px;
        height: 25px;
        background-color: #AF4B46;
      }
    }
    img {
      transition: ease-in .2s;
    }
    &:hover {
      img {
        transform: scale(1.1);
        transition: ease-in .2s;
      }
    }
  }
}

/*--------------------
sp_fixed_cta
--------------------*/
.sp_fixed_cta {
  display: none;
  
  @media (max-width: 767px) {
    position: fixed;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: end;
    width: 100%;
    z-index: 99;
    
    .cta_area {
      width: 75%;

      .btn_cta {
        position: relative;
        background: linear-gradient(90deg, rgba(175, 75, 70, 1) 0%, rgba(219, 112, 107, 1) 100%);
        display: flex;
        justify-content: center;
        align-items: center;
        color: #fff;
        font-size: 18px;
        height: clamp(3.125rem, 2.527rem + 2.55vw, 3.75rem);
        border-radius: 0;
        cursor: pointer;
        transition: ease-in .2s;

        &::after {
          content: "";
          position: absolute;
          right: 1em;
          bottom: 47%;
          width: 6px;
          height: 6px;
          border: 0;
          border-top: solid 1px #fff;
          border-left: solid 1px #fff;
          transform: rotate(45deg);
          transition: ease-in .2s;
        }
        &.show {
          &::after {
            transform: rotate(225deg);
          }
        }
      }
      .btn_cta_group {
        display: none;

        .btn_cta_list {
          margin-top: 5px;
          border-radius: 0 10px 10px 0;
        }
      }
      .btn_cta_item {

        a {
          border-radius: 0;
          backface-visibility: hidden;
          transition : ease-in .2s;

          &:hover {
            background: rgb(235,222,209);
            background: linear-gradient(180deg, rgba(235,222,209,1) 0%, rgba(255,255,255,1) 100%);
          }

          span {
            font-size: clamp(0.938rem, -0.005rem + 1.26vw, 1.125rem);

            small {
              br {
                display: inline-block;
              }
            }

          }
        }
        & + .btn_cta_item {
          margin-top: 0;
        }
      }

      /* WEB予約はこちら */
      .btn_web {
        a {
          background: linear-gradient(#F5F1EA, #F5F1EA);
        }
      }
  
      /* 電話予約はこちら */
      .btn_tel {
        a {
          background: linear-gradient(#EFE7DE, #EFE7DE);
        }
      }
  
      /* LINE予約はこちら */
      .btn_line {
        a {
          background: linear-gradient(#F5F1EA, #F5F1EA);
        }
      }

      /* 問い合わせはこちら */
      .btn_contact {
        margin-top: 5px;
        margin-bottom: 5px;
        border-radius: 0 10px 10px 0;
        
        a {
          background: linear-gradient(#EFE7DE, #EFE7DE);
        }
      }
    }
    .btn_store {
      width: 25%;

      a {
        display: flex;
        gap: 0.4em;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        background-color: #D5A775;
        font-family: var(--font-en);
        font-weight: 400;
        font-size: clamp(0.563rem, 0.264rem + 1.28vw, 0.875rem);
        color: #fff;
        height: clamp(3.125rem, 2.527rem + 2.55vw, 3.75rem);
        padding-top: 0.8em;
    
        &::before {
          content: "";
          width: 25px;
          height: 23px;
          display: block;
          background: url(../img/icon_cart_white.svg) top center / cover no-repeat;
        }
      }
    }
  }
}

/*--------------------
ページネーション
--------------------*/
.navigation.pagination {
  text-align: center;
  margin-top: clamp(2.5rem, 2.06rem + 1.88vw, 3.75rem);

  .page-numbers {
    font-family: var(--font-en);
    padding: 0.5em;
    min-width: 2em;
    font-weight: bold;
    font-size: clamp(0.938rem, 0.827rem + 0.47vw, 1.25rem);
  }
  .current {
    display: inline-block;
    background-color: #D5A775;
    line-height: 1;
    border-radius: 100px;
    color: #fff;
  }
  .prev {
    color: #B28251;
    display: inline-flex;
    align-items: center;
    gap: 0.2em;

    &::before {
      content: "";
      width: clamp(0.438rem, 0.393rem + 0.19vw, 0.563rem);
      height: clamp(0.438rem, 0.393rem + 0.19vw, 0.563rem);
      border: 0;
      border-top: solid 1px #B28251;
      border-right: solid 1px #B28251;
      transform: rotate(-135deg);
    }
  }
  .next {
    color: #B28251;
    display: inline-flex;
    align-items: center;
    gap: 0.2em;

    &::after {
      content: "";
      width: clamp(0.438rem, 0.393rem + 0.19vw, 0.563rem);
      height: clamp(0.438rem, 0.393rem + 0.19vw, 0.563rem);
      border: 0;
      border-top: solid 1px #B28251;
      border-right: solid 1px #B28251;
      transform: rotate(45deg);
    }
  }
}

/*--------------------
パンくずリスト
--------------------*/
.breadcrumb {
  width: calc(960px + 4%);
	margin: auto;
  padding: 0 2%;

  @media (max-width: 1000px) {
    width: 100%;
    padding: 0 5%;
  }
  .breadcrumb_list {
    font-size: clamp(0.625rem, 0.537rem + 0.38vw, 0.875rem);
    display: flex;
    align-items: center;
    margin: auto;
    padding: 0;
    flex-wrap: wrap;
    list-style: none;
    
    .breadcrumb_item {
      display: flex;
      align-items: center;

      & > span {
        color: #B28251;
      }

      & + .breadcrumb_item {
        &::before {
          content: "";
          display: block;
          width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
          height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
          border: 0;
          border-top: solid 1px #B28251;
          border-right: solid 1px #B28251;
          transform: rotate(45deg);
          margin: 0 1em;
        }
      }
    }
  }
}

/*--------------------
下層ページ 共通
--------------------*/
.sec_tit {
  font-size: clamp(1.375rem, 0.979rem + 1.69vw, 2.5rem);
  color: #B28251;
  text-align: center;
  margin: 0 0 1em;

  &::after {
    content: "";
    display: block;
    width: 45px;
    height: 4px;
    background-color: #D38783;
    margin: 0.4em auto 0;
  }
}
/* 第2階層 */
.page_under {
  header {
    &::after {
      display: none;
    }
  }
  .page_under_inner {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    margin-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
  }
  
  /* ページタイトル */
  .page_title {
    background: url(../img/common/page_title.png) top center/cover no-repeat;
    min-height: 520px;
    height: 27vw;
    display: flex;
    justify-content: center;
    align-items: center;
    
    @media (max-width: 767px) {
      background: url(../img/common/page_title_sp.png) top center/cover no-repeat;
      min-height: auto;
      height: clamp(12.5rem, -0.056rem + 53.57vw, 25.625rem);
    }

    h1, p {
      font-size: clamp(1.375rem, 0.654rem + 3.08vw, 2.5rem);
      color: #fff;
      text-align: center;
      margin: 0 auto 3em;
      text-shadow: 0px 0px 15px rgba(178, 130, 81, 1), 0px 0px 15px rgba(178, 130, 81, 1), 0px 0px 15px rgba(178, 130, 81, 1), 0px 0px 15px rgba(178, 130, 81, 1);

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

  /* パンくず */
  .breadcrumb {
    margin: -100px auto -70px;

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

/* 第3階層 */
.page_under2 {
  overflow: hidden;
  
  .page_title {
    background-color: #F4ECE2;
    color: #B28251;
    height: 300px;
    position: relative;
    border-bottom-left-radius: 80% 100%;
    border-bottom-right-radius: 80% 100%;
    margin: 0 -300px 1em;

    @media (max-width: 767px) {
      height: 150px;
      margin: 0 -130px 1em;
    }

    h1, p {
      margin: 0;
      text-align: center;
      font-size: clamp(1.375rem, 0.979rem + 1.69vw, 2.5rem);
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translateX(-50%);

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



/*--------------------
当院について
--------------------*/
.page_clinic {
  .page_title {
    background: url(../img/clinic/page_title.png) top center/cover no-repeat;

    @media (max-width: 767px) {
      background: url(../img/clinic/page_title_sp.png) top center/cover no-repeat;
    }
  }

  /* About Us */
  .aboutus {
    background: url(../img/clinic/aboutus_obj1.svg) top left -100px/clamp(25rem, -6.25rem + 41.67vw, 43.75rem) no-repeat,
                url(../img/clinic/aboutus_obj2.svg) top right -100px/clamp(26.25rem, 1.25rem + 33.33vw, 41.25rem) no-repeat;
    min-height: clamp(32.5rem, 22.083rem + 13.89vw, 38.75rem);
    padding-top: 180px;
    margin-top: -70px;
    margin-bottom: 60px;

    @media (max-width: 1100px) {
      padding-top: 110px;
      margin-top: -80px;
      background: url(../img/clinic/aboutus_obj1_sp.svg) top left -30px/147px no-repeat;
      overflow: hidden;
    }

    .ttl { 
      font-size: clamp(2.5rem, 1.4rem + 4.69vw, 5.625rem);
      font-family: var(--font-en);
      font-weight: 400;
      color: #F0DEC7;
      margin: 0;
      line-height: 1;
      text-align: center;
    }
    .txt {
      font-size: clamp(0.938rem, 0.783rem + 0.66vw, 1.375rem);
      margin: 0;
      line-height: 2;
      text-align: center;
    }
    .img {
      display: none;

      @media (max-width: 1100px) {
        display: block;
        margin: 2em auto 2em;
        max-width: 768px;
        width: 90%;
      }
      @media (max-width: 767px) {
        max-width: none;
        width: 110%;
        margin-left: -5%;
      }

      img {
        width: 100%;
      }
    }
  }

  /* 受診の流れ */
  .flow {
    background: rgb(252,244,228);
    background: linear-gradient(90deg, rgba(252,244,228,1) 0%, rgba(255,238,237,1) 100%);
    padding: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem) 0;

    .flow_message {
      margin-bottom: 3em;

      .message_box {
        border: 1px #D5A775 solid;
        border-radius: 10px;
        display: flex;
        overflow: hidden;

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

        .ttl {
          background-color: rgba(213, 167, 117, 0.2);
          width: 30%;
          display: flex;
          justify-content: center;
          align-items: center;
          font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);

          @media (max-width: 767px) {
            width: 100%;
            padding: 0.8em;
          }
        }
        .txt_box {
          background-color: rgba(255, 255, 255, 0.3);
          width: 70%;
          margin: 0;
          padding: 2em;

          @media (max-width: 767px) {
            width: 100%;
            padding: 1.5em 1em;
          }

          .txt {
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
            margin: 0 0 0.5em;
          }
          small {
            font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
            line-height: 1.5;
            display: block;
          }
        }
      }
    }
    .flow_tab {
      .button_area {
        display: flex;
        gap: 20px;
        margin-bottom: 2.5em;

        @media (max-width: 767px) {
          gap: 10px;
          margin-bottom: 1.2em;
        }

        button {
          border: none;
          width: calc((100% - 20px) / 2);
          display: block;
          background-color: #D5A775;
          font-size: 25px;
          color: #fff;
          border-radius: 20px;
          padding: 0.8em 0;
          cursor: pointer;
          transition: ease-in .2s;
          position: relative;

          @media (max-width: 767px) {
            width: calc((100% - 10px) / 2);
            font-size: 16px;
            border-radius: 10px;
          }
          
          &::after {
            content: "";
            position: absolute;
            left: 50%;
            bottom: -33px;
            border: 15px solid transparent;
            border-bottom: 20px solid #AF4B46;
            transform: translateX(-50%) rotate(180deg);
            transition: ease-in .2s;
            opacity: 0;
          }
          small {
            font-size: 0.7em;
            display: block;
            text-align: center;

            @media (max-width: 767px) {
              font-size: 0.6em;
            }
          }
          &.active {
            background-color: #AF4B46;

            &::after {
              opacity: 1;
            }
            @media (max-width: 767px) {
              &::after {
                bottom: -17px;
                border: 8px solid transparent;
                border-bottom: 11px solid #AF4B46;
              }
            }
          }
        }
      }
      .flow_list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: none;
        flex-direction: column;
        gap: 1em;
        counter-reset: number 0;

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

        .flow_item {
          background-color: #fff;
          padding: 0 2.5em;
          display: flex;
          align-items: center;
          gap: 1.5em;
          border-radius: 20px;

          @media (max-width: 767px) {
            padding: 0 1.2em;
            gap: 1em;
            border-radius: 10px;
          }

          p {
            padding: 2em 0;
            margin: 0;
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          }

          &::before {
            counter-increment: number 1;
            content: counter(number) " ";
            display: block;
            color: #D5A775;
            font-size: clamp(2.5rem, 2.192rem + 1.31vw, 3.375rem);
            line-height: 1;
            flex-shrink: 0;
          }
        }
        &.show {
          display: flex;
        }
      }
    }
  }
  
  /* 院内紹介 */
  .guide {
    background-color: #F4ECE2;
    padding: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem) 0;

    .guide_inner {
      .sec_ttl {
        margin-bottom: -4em;

        @media (max-width: 767px) {
          margin-bottom: -1.5em;
        }
      }
      
      .guide_floor {
        .ttl {
          background-color: #fff;
          border-radius: 100px;
          width: 2.9em;
          height: 2.9em;
          margin: 0 0 -0.5em;
          display: flex;
          justify-content: center;
          align-items: center;
          font-size: clamp(1.5rem, 0.796rem + 3vw, 3.5rem);
          color: #B28251;
        }
        .floor_list {
          display: flex;
          flex-wrap: wrap;
          gap: 30px;
          list-style: none;
          margin: 0;
          padding: 0;

          @media (max-width: 767px) {
            gap: 20px 10px;
          }

          .floor_item {
            width: calc((100% - 60px) / 3);

            @media (max-width: 767px) {
              width: calc((100% - 10px) / 2);
            }

            img {
              width: 100%;
            }

            .room_name {
              text-align: center;
              font-size: clamp(0.75rem, 0.574rem + 0.75vw, 1.25rem);
              color: #B28251;
              margin: 0.5em 0 0;

              small {
                font-size: 0.9em;
                display: block;
              }
            }
          }
        }
        & + .guide_floor {
          margin-top: 2em;

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

/*--------------------
医師紹介
--------------------*/
.page_doctor {
  .page_title {
    background: url(../img/doctor/page_title.png) top center/cover no-repeat;

    @media (max-width: 767px) {
      background: url(../img/doctor/page_title_sp.png) top center/cover no-repeat;
    }
  }
  .doctor_box {
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    
    .sec_ttl {
      h2 {
        small {
          display: block;
          font-size: clamp(0.875rem, 0.523rem + 1.5vw, 1.875rem);
          margin-bottom: 0.25em;
        }
      }
    }
    .doctor_box_inner {
      background: url(../img/doctor/bg_mark_white.svg) bottom left/502px no-repeat;
      padding-bottom: 2em;
      margin-bottom: 2em;

      @media (max-width: 767px) {
        background: url(../img/doctor/bg_mark_white.svg) bottom left/250px no-repeat;
      }

      .message_area_wrapper {
        display: flex;
        gap: 5%;
        align-items: center;

        @media (max-width: 767px) {
          padding: 0;
          flex-direction: column-reverse;
          gap: 1em;
        }
  
        .message_area {
          width: 55%;

          @media (max-width: 767px) {
            width: 100%;
          }
  
          .txt {
            line-height: 2;
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          }
          .name {
            font-size: 18px;
            text-align: right;
            margin: 1.5em 0 0;

            small {
              font-size: 14px;
              padding-right: 0.5em;

              @media (max-width: 767px) {
                padding-right: 0;
                display: block;
              }
            }
          }
        }
        picture {
          width: 40%;

          @media (max-width: 767px) {
            width: 70%;
          }
        }
      }
    }
    .profile_box {
      display: flex;
      gap: 2%;

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

      .career_box {
        width: 53%;
        background-color: #F4ECE2;
        border-radius: 20px;
        padding: 2em 3em;

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

        .career_list {
          list-style: none;
          margin: 0;
          padding: 0;
          border-left: 1px #AF4B46 solid;

          .career_item {
            display: flex;
            align-items: start;
            margin-left: -4.5px;
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);

            .year {
              padding-left: 0.5em;
              padding-right: 1.5em;
              color: #AF4B46;
              flex-shrink: 0;
              font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);

              @media (max-width: 767px) {
                padding-right: 0.5em;
              }
            }
            &::before {
              content: "●";
              color: #AF4B46;
              font-size: 9px;
              line-height: 2.6;
            }
            & + .career_item {
              margin-top: 0.5em;
            }
          }
        }
      }
      .affiliation_box {
        width: 45%;
        background-color: #fff;
        border-radius: 20px;
        padding: 2em 3em;

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

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

          .affiliation_item {
            display: flex;
            align-items: center;
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);

            &::before {
              content: "●";
              color: #B28251;
              font-size: 9px;
              margin-right: 0.8em;
            }
            & + .affiliation_item {
              margin-top: 0.5em;
            }
          }
          & + h3 {
            margin-top: 1.5em;
          }
        }
      }
      h3 {
        color: #B28251;
        font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
        margin: 0 0 0.8em;

        @media (max-width: 767px) {
          margin: 0 0 0.5em;
        }
      }
    }
  }
  .doctor_box:nth-child(even) {
    background-color: #F4ECE2;

    .doctor_box_inner {
      background: url(../img/doctor/bg_mark_brown.svg) bottom right/502px no-repeat;

      @media (max-width: 767px) {
        background: url(../img/doctor/bg_mark_brown.svg) bottom left/250px no-repeat;
      }


      .message_area_wrapper {
        flex-direction: row-reverse;

        @media (max-width: 767px) {
          flex-direction: column-reverse;
          gap: 1em;
        }
      }
    }
    .profile_box {
      .career_box {
        background-color: #EFE3D3;
      }
      .affiliation_box {
        background-color: #FFF9F2;
      }
    }
  }
  .banner_area {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 2em;
    
    a {
      display: block;
      width: 400px;

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

      img {
        width: 100%;
      }

      &:hover {
        opacity: 0.8;
      }
    }
  }
  .report {
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
  }
}
/*--------------------
施術メニュー
--------------------*/
.page_menu {
  .page_title {
    background: url(../img/menu/page_title.png) top center/cover no-repeat;

    @media (max-width: 767px) {
      background: url(../img/menu/page_title_sp.png) top center/cover no-repeat;
    }
  }
  .problems {
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    background-color: transparent;
  }
  .machines {
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    background-color: #F4ECE2;

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

      @media (max-width: 767px) {
        gap: 20px 10px;
      }

      .machine_item {
        margin: 0;
        padding: 0;
        width: calc((100% - 60px) / 4);
        border-radius: 20px 20px 0 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        justify-content: center;

        @media (max-width: 767px) {
          width: calc((100% - 10px) / 2);
          border-radius: 10px 10px 0 0;
        }
      
        &:hover {
          opacity: 0.8;
        }
        .machine_img {
          width: 100%;
        }
        .machine_name {
          margin: 0;
          padding: 0.5em;
          text-align: center;
          background-color: #D5A775;
          color: #fff;
          font-size: clamp(0.938rem, 0.827rem + 0.47vw, 1.25rem);
          flex-grow: 1;
          display: flex;
          align-items: center;
          justify-content: center;
        }
      }
      div.machine_item {
        position: relative;
        transition: ease-in .2s;

        .machine_menu_list {
          opacity: 0;
          padding: 0;

          a {
            display: none;
          }
        }
        &:hover {
          transition: ease-in .2s;

          .machine_menu_list {
            opacity: 1;
            position: absolute;
            background-color: #D5A775;
            width: 100%;
            height: 100%;
            padding: 2em;
            transition: ease-in .2s;

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

            a {
              font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
              color: #fff;
              display: flex;
              align-items: center;
              border-top: 1px #fff solid;
              border-bottom: 1px #fff solid;
              padding: 1em 0 1em 1em;
  
              &::after {
                content: "";
                width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
                height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
                border: 0;
                border-top: solid 1px #fff;
                border-right: solid 1px #fff;
                transform: rotate(45deg);
                margin-left: auto;
                margin-right: 1em;
                transition: ease-in .2s;
              }
      
              &:hover {
                opacity: 0.8;
  
                &::after {
                  margin-right: 0.5em;
                }
              }
  
              & + a {
                border-top: none;
              }
            }
          }
        }
        &:hover {
          opacity: 1;
        }
      }
    }
  }
}

/*--------------------
施術　詳細
--------------------*/
.page_menu_single {
  .breadcrumb {
    max-width: calc(1200px + 4%);
    width: 90%;
    margin: 0 auto clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
    padding: 0;
  }

  /* 説明① */
  .about {
    border-radius: 20px;
    background-color: #FCF7F2;
    border: 1px #D5A775 solid;
    padding: 4em;
    max-width: calc(1200px + 4%);
    width: 90%;
    margin: 0 auto clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    @media (max-width: 767px) {
      padding: 3em 1.5em;
    }

    .about_inner {
      max-width: 960px;
      width: 100%;
      margin: auto;

      h2 {
        font-size: clamp(1.375rem, 0.979rem + 1.69vw, 2.5rem);
        color: #B28251;
        text-align: center;
        margin: 0 0 1em;
      }
      h3 {
        font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
        color: #B28251;
        background-color: #F4ECE2;
        border-radius: 10px;
        margin: 0 0 1em;
        padding: 0.2em 1.5em;

        @media (max-width: 767px) {
          padding: 0.2em 1em;
        }
      }
      .img {
        text-align: center;
        max-width: 600px;
        margin: 0 auto 2em;

        @media (max-width: 767px) {
          max-width: 300px;
          width: 80%;
        }
        
        img {
          width: 100%;
        }
      }
      .txt {
        font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        line-height: 2;
        
        p + h3 {
          margin-top: 2em;
        }
      }
    }
  }

  /* 主な効果 */
  .efficacy {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .efficacy_list {
      list-style: none;
      margin: 0 auto;
      padding: 0;
      max-width: calc(1200px + 4%);
      width: 90%;

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

      .efficacy_item {
        background-color: #fff;
        border-radius: 20px;
        padding: 3em;
        margin:  auto;

        @media (max-width: 767px) {
          border-radius: 10px;
          padding: 1.5em 2em;
        }
        .efficacy_item_innner {
          max-width: 960px;
          width: 100%;
          margin: auto;

          h3 {
            color: #B28251;
            font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
            margin: 0 0 0.5em;
          }
          .txt {
            font-size: clamp(0.813rem, 0.746rem + 0.28vw, 1rem);
            margin: 0;

            & + .img {
              margin-top: 1.5em;
            }
          }
          .img {
            img {
              width: 100%;
            }
          }
        }
        & + .efficacy_item {
          margin-top: 20px;
        }
      }
    }
  }

  /* こんな方におすすめ */
  .recommendation {
    background-color: #F4ECE2;
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-top: clamp(5rem, 4.12rem + 3.76vw, 7.5rem);
    padding-bottom: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);

    .recommendation_inner {
      position: relative;
      background-color: #fff;
      padding: 4.5em 9em 3em;
      border-radius: 20px;

      @media (max-width: 767px) {
        padding: 4.5em 2em 3em;
        border-radius: 10px;
      }

      h2 {
        font-size: clamp(1.375rem, 0.979rem + 1.69vw, 2.5rem);
        background-color: #D5A775;
        color: #fff;
        text-align: center;
        width: 656px;
        border-radius: 100px;
        margin: 0 auto;
        padding: 0.2em;
        position: absolute;
        top: -1em;
        left: 50%;
        transform: translateX(-50%);

        @media (max-width: 767px) {
          min-width: 258px;
          width: 80%;
        }
      }
      .recommendation_list {
        list-style: none;
        margin: 0;
        padding: 0;

        .recommendation_item {
          display: flex;
          align-items: start;
          gap: 0.5em;
          font-size: clamp(1rem, 0.802rem + 0.85vw, 1.563rem);
          color: #B28251;

          &::before {
            content: url(../img/menu/icon_check.svg);
            display: block;
            width: 26px;
            height: 26px;
            flex-shrink: 0;
            padding-top: 0.15em;
          }
          & + .recommendation_item {
            margin-top: 0.8em;
          }
        }
      }
    }
  }

  /* 説明② */
  .menu_wysiwyg1 {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .inner {
      .wysiwyg_area {
        h3 {
          font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
          color: #B28251;
          border-bottom: 1px #B28251 solid;
          padding-bottom: 0.3em;
          margin: 0.8em 0;
        }
        p {
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          margin: 0.8em 0;
          line-height: 2;
          
          img {
            margin: 0.8em 0;
          }
          
          & + h3 {
            margin-top: 2em;
          }
        }
      }
      & + .inner {
        margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
      }
    }
  }

  /* 自由入力欄 */
  .setmenu_price {
    border: 1px #D5A775 solid;
    margin-top: clamp(1.875rem, 1.655rem + 0.94vw, 2.5rem);

    dt {
      background-color: #D5A775;
      color: #fff;
      text-align: center;
      font-size: clamp(1.125rem, 0.861rem + 1.13vw, 1.875rem);
      padding: 0.5em;
    }
    dd {
      background-color: #fff;
      margin: 0;
      padding: 1.8em 2em;

      @media (max-width: 767px) {
        padding: 1.2em 1em;
      }

      .large {
        font-size: clamp(1rem, 0.802rem + 0.85vw, 1.563rem);
        color: #B28251;
        margin-top: 0;
      }
      .menu_list {
        list-style: none;
        margin: 0;
        padding: 0;
        width: 100%;

        .menu_item {
          display: flex;
          flex-wrap: wrap;

          .btn_modal {
            font-size: clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem);
            transition: ease-in .2s;
            cursor: help;
            width: calc(100% - 20px);

            &::after {
              content: "";
              background: url(../img/icon_modal.svg) center center / contain no-repeat;
              width: 15px;
              height: 15px;
              display: inline-block;
              transition: ease-in .2s;
              margin-left: 5px;
            }
            @media (max-width: 767px) {
              &::after {
                width: 12px;
                height: 12px;
              }
            }
            &:hover {
              transition: ease-in .2s;
              color: #B28251;

              &::after {
                background: url(../img/icon_modal_hover.svg) center center / contain no-repeat;
                transition: ease-in .2s;
              }
            }
          }
          small {
            display: block;
            width: 100%;
            margin-left: 15px;
            @media (max-width: 767px) {
              font-size: 0.6em;
              margin-left: 13px;
            }
          }
          &::before {
            content: "◆";
            color: #D5A775;
            font-size: 0.6em;
            margin-top: 0.6em;
            width: 15px;

            @media (max-width: 767px) {
              margin-top: 0.3em;
              font-size: 9px;
              width: 13px;
            }
          }

          & + li {
            margin-top: 0.5em;
          }
        }
      }
      .group_box {
        display: flex;
        align-items: stretch;
        
        .group_name {
          background-color: #F4ECE2;
          font-size: clamp(1rem, 0.802rem + 0.85vw, 1.563rem);
          margin: 0;
          color: #B28251;
          display: flex;
          align-items: center;
          justify-content: center;
          width: 90px;

          @media (max-width: 767px) {
            width: 50px;
          }
        }
        .group_detail {
          background-color: #FAF7F2;
          width: calc(100% - 90px);
          display: flex;
          align-items: center;
          padding: 1em 1.5em;
          
          @media (max-width: 767px) {
            width: calc(100% - 50px);
            margin-left: auto;
            flex-direction: column;
            align-items: normal;
            padding: 1em;
          }
        }

        & + .group_box {
          margin-top: 10px;
        }
      }
      .problems_menu {
        background: transparent;
        border: none;
        padding: 0;
        max-width: 800px;
        width: 90%;
      
        @media (max-width: 767px) {
          width: 90%;
        }
        .problems_menu_list {
          .problems_menu_item {
            width: 100%;
          }
        }
      }
    }

    .incidental {
      padding: 0.5em;
      background-color: #FFF9E5;
      color: #B28251;
      text-align: center;
      font-size: clamp(1rem, 0.802rem + 0.85vw, 1.563rem);

      .large {
        font-size: 140%;
      }
    }
    & + .menu_name {
      margin-top: 2em !important;
    }
  }
  .flow.free_area {
    .container_s {
      display: flex;

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

        @media (max-width: 767px) {
          width: 100%;
        }
        .flow_item {
          margin-left: -5.5%;

          .flow_item_inner {
            display: flex;
            align-items: center;

            @media (max-width: 767px) {
              flex-direction: column;
              align-items: flex-start;
            }
            .flow_img {
              width: clamp(9.375rem, 5.814rem + 7.43vw, 12.5rem);
            }
          }
        }

        & + .flow_list {
          .flow_item:nth-child(1) {
            @media (max-width: 767px) {
              margin-top: 3em;
            }
          }
        }
      }
    }
  }
  
  /* 料金表 */
  .price {
    background: rgb(252, 244, 228);
    background: linear-gradient(90deg, rgba(252, 244, 228, 1) 0%, rgba(255, 238, 237, 1) 100%);
    padding-top: clamp(1.875rem, 1.655rem + 0.94vw, 2.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .price_box {
      .menu_name {
        padding-right: 0;
      }
    }
  }

  /* 注意事項 */
  .precautions {
    padding-top: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
    padding-bottom: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);

    h2 {
      font-size: clamp(1.375rem, 1.199rem + 0.75vw, 1.875rem);
      color: #B28251;
      display: flex;
      align-items: center;
      margin: 0 0 1em;

      &::before {
        content: "";
        height: 1px;
        flex-grow: 1;
        background-color: #D5A775;
        margin-right: 1em;
      }
      &::after {
        content: "";
        height: 1px;
        flex-grow: 1;
        background-color: #D5A775;
        margin-left: 1em;
      }
    }
    .precautions_box {
      h3 {
        font-size: clamp(1.125rem, 1.081rem + 0.19vw, 1.25rem);
        color: #B28251;
        border-left: clamp(0.25rem, 0.184rem + 0.28vw, 0.438rem) #D5A775 solid;
        padding-left: 0.5em;
        margin: 0 0 0.8em;

        @media (max-width: 767px) {
          margin: 0 0 0.5em;
        }
      }
      .txt {
        font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        line-height: 2;
      }
      & + .precautions_box {
        margin-top: 3em;
      }
  
      @media (max-width: 767px) {
        & + .precautions_box {
          margin-top: 2em;
        }
      }
    }
  }

  /* 施術の流れ */
  .flow {
    background-color: #F4ECE2;
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .flow_list {
      list-style: none;
      margin: 0 0 0 1.5em;
      padding: 0;
      border-left: 2px #D5A775 solid;

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

      .flow_item {
        margin: 0 0 0 -2.5%;
        padding: 0;
        display: flex;
        gap: 1em;

        @media (max-width: 767px) {
          margin: 0 0 0 -1em;
          gap: 0.5em;
        }

        &::before {
          counter-increment: number 1;
          content: counter(number, decimal-leading-zero) " ";
          display: flex;
          justify-content: center;
          align-items: center;
          font-size: clamp(1rem, 0.802rem + 0.85vw, 1.563rem);
          color: #fff;
          width: clamp(1.875rem, 1.523rem + 1.5vw, 2.875rem);
          height: clamp(1.875rem, 1.523rem + 1.5vw, 2.875rem);
          background-color: #D5A775;
          border-radius: 100px;
          flex-shrink: 0;
        }
        .flow_item_inner {
          width: 100%;

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

          .flow_img {
            float: left;
            margin-right: 1.5em;
            width: 200px;
  
            @media (max-width: 767px) {
              float: none;
              order: 3;
              margin-right: 0;
              margin-top: 0.8em;
            }
          }
          h3 {
            font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
            color: #B28251;
            margin: 0 0 0.5em;
          }
          .txt {
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
            line-height: 2;
            margin: 0;
          }
          &::after {
            content: "";
            display: block;
            clear: both;
          }
        }
        & + .flow_item {
          margin-top: 3em;

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

  /* よくある質問 */
  .faq {
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(3.75rem, 3.31rem + 1.88vw, 5rem);

    .btn_more_brown {
      margin-top: 2em;
    }
  }

  /* 医療広告ガイドラインの限定解除 */
  .guidelines {
    padding-top: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
    padding-bottom: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
    background-color: #fff;

    table {
      border: 1px #D5A775 solid;
      width: 100%;

      tr {
        + tr {
          border-top: 1px #e9dccf solid;
        }

        th {
          background-color: #FAF8F5;
          text-align: center;
          font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
          padding: 1em;
          width: 25%;

          @media (max-width: 767px) {
            width: 40%;
          }
        }
        td {
          text-align: left;
          font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
          padding: 1em 1.5em;
          width: 75%;

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

  /* ファーストテキスト */
  .first_txt {
    .txt {
      font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
      margin: 0 0 clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
      line-height: 2;
    }
  }

  /* 原因 */
  .cause {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .txt_area {
      font-size: clamp(0.813rem, 0.746rem + 0.28vw, 1rem);
      margin: 0 0 2em;
      line-height: 2;
    }

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

      .cause_item {
        background-color: #F7F2EC;
        border-radius: 20px;
        padding: 2em;
        width: calc((100% - 20px) / 2);

        @media (max-width: 767px) {
          border-radius: 10px;
          padding: 1.5em;
          width: 100%;
        }

        h3 {
          color: #B28251;
          font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
          margin: 0 0 0.5em;
          display: flex;
          align-items: center;
          gap: 0.4em;

          &::before {
            content: "";
            display: block;
            background: url(../img/menu/icon_check.svg) center center/100% no-repeat;
            width: clamp(1.25rem, 1.118rem + 0.56vw, 1.625rem);
            height: clamp(1.25rem, 1.118rem + 0.56vw, 1.625rem);
          }
        }
        .txt {
          font-size: clamp(0.813rem, 0.746rem + 0.28vw, 1rem);
          margin: 0;
        }
      }
    }
  }

  /* 予防・改善方法 */
  .prevention {
    background-color: #F4ECE2;
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .txt_area {
      font-size: clamp(0.813rem, 0.746rem + 0.28vw, 1rem);
      margin: 0 0 2em;
      line-height: 2;
    }
    .prevention_list {
      list-style: none;
      margin: 0;
      padding: 0;

      .prevention_item {
        background-color: #fff;
        border-radius: 20px;
        padding: 2em 2.5em;
        display: grid;
        gap: 0.5em 1em;

        @media (max-width: 767px) {
          border-radius: 10px;
          padding: 1.5em;
        }

        h3 {
          color: #B28251;
          font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
          margin: 0;

          @media (max-width: 767px) {
            text-align: center;
          }
        }
        .txt {
          grid-column-start: 1;
          grid-row-start: 2;
          font-size: clamp(0.813rem, 0.746rem + 0.28vw, 1rem);
          line-height: 2;

          @media (max-width: 767px) {
            grid-row-start: 3;
          }
        }
        .img {
          grid-row: 1 / 3;
          width: 140px;
          height: 140px;
          margin-left: 15px;

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

          img {
            width: 100%;
          }
        }
        & + .prevention_item {
          margin-top: 20px;
        }
      }
    }
  }
  .point {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    margin-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .txt_area {
      font-size: clamp(0.813rem, 0.746rem + 0.28vw, 1rem);
      margin: 0 0 2em;
      line-height: 2;
    }

    .point_list {
      list-style: none;
      margin: 0;
      padding: 0;
      counter-reset: number 0;

      .point_item {
        position: relative;
        border-radius: 20px;
        background-color: #fff;

        @media (max-width: 767px) {
          border-radius: 10px;
        }

        .point_num {
          font-size: clamp(0.625rem, 0.537rem + 0.38vw, 0.875rem);
          background-color: #D5A775;
          color: #fff;
          position: absolute;
          width: clamp(3.125rem, 2.685rem + 1.88vw, 4.375rem);
          height: clamp(3.125rem, 2.685rem + 1.88vw, 4.375rem);
          top: 0;
          left: 0;
          display: flex;
          justify-content: center;
          align-items: center;
          flex-direction: column;
          border-radius: 20px 0;
          line-height: 1;

          @media (max-width: 767px) {
            border-radius: 10px 0;
          }

          &::after {
            counter-increment: number 1;
            content: counter(number) " ";
            display: block;
            font-size: clamp(1.375rem, 1.199rem + 0.75vw, 1.875rem);
            line-height: 1;
          }
        }
        h3 {
          color: #B28251;
          padding: 1em 0 1em clamp(4.063rem, 3.512rem + 2.35vw, 5.625rem);
          margin: 0;
          font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
        }
        .txt {
          padding: 0 3.5em 2em;
          margin: 0;
          line-height: 2;
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);

          @media (max-width: 767px) {
            padding: 0 1.2em 1.5em;
          }
        }
        & + .point_item {
          margin-top: 20px;
        }
      }
    }
  }

  /* こだわり */
  .commitment {
    background: url(../img/menu/commitment_bg.jpg) top 50px center/cover no-repeat;
    padding-bottom: clamp(3.75rem, 3.31rem + 1.88vw, 5rem);

    h2 {
      background-color: #D5A775;
      font-size: clamp(1.375rem, 0.979rem + 1.69vw, 2.5rem);
      color: #fff;
      text-align: center;
      margin: 0 0 clamp(4.375rem, 3.495rem + 3.76vw, 6.875rem);
      padding: 0.5em;
    }
    .commitment_list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      justify-content: center;
      gap: 20px;
      counter-reset: number 0;

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

      .commitment_item {
        background-color: #fff;
        border-radius: 20px;
        width: calc((100% - 40px) / 3);
        text-align: center;

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

        &::before {
          counter-increment: number 1;
          content: counter(number) " ";
          display: flex;
          justify-content: center;
          font-size: clamp(1.875rem, 1.215rem + 2.82vw, 3.75rem);
          line-height: 1;
          color: #B28251;
          width: clamp(8.75rem, 8.156rem + 2.54vw, 10.438rem);
          height: clamp(8.75rem, 8.156rem + 2.54vw, 10.438rem);
          border-radius: 200px;
          background-color: #fff;
          margin: -1em auto 0;
          padding-top: 0.5em;

          @media (max-width: 767px) {
            padding-top: 0.8em;
          }
        }

        h3 {
          font-size: clamp(1.375rem, 1.309rem + 0.28vw, 1.563rem);
          color: #B28251;
          margin: -2.3em 0 0.8em;

          @media (max-width: 767px) {
            margin: -2.3em 0 0.3em;
          }
        }
        .img {
          height: 120px;
          margin-bottom: 1em;

          @media (max-width: 767px) {
            height: 100px;
            margin-bottom: 0.5em;
          }
        }
        .txt {
          padding: 0 2em 2em;
          margin: 0;
          line-height: 2;
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          text-align: left;

          @media (max-width: 767px) {
            padding: 0 1.5em 2em;
          }
        }
      }
    }
  }

  /* 治療一覧 */
  .problems_menu {
    background: rgb(252, 244, 228);
    background: linear-gradient(90deg, rgba(252, 244, 228, 1) 0%, rgba(255, 238, 237, 1) 100%);
    padding-top: clamp(1.875rem, 1.655rem + 0.94vw, 2.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    h2 {
      background: url(../img/bg_mark_white_translucent.svg) center center/300px no-repeat;
      min-height: 283px;
      margin: 0 0 1em;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: clamp(1.375rem, 0.979rem + 1.69vw, 2.5rem);
      color: #B28251;
      text-align: center;
  
      @media (max-width: 767px) {
        background: url(../img/bg_mark_white_translucent.svg) center center/180px no-repeat;
        min-height: 170px;
      }
    }
    .txt_area {
      font-size: clamp(0.813rem, 0.746rem + 0.28vw, 1rem);
      margin: 0 0 3em;
      padding: 1.5em 0;
      line-height: 2;
      border-top: 1px #D5A775 solid;
      border-bottom: 1px #D5A775 solid;
    }
    .problems_menu_list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-wrap: wrap;
      gap: 40px;

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

      .problems_menu_item {
        background-color: #fff;
        overflow: hidden;
        border-radius: 20px;
        width: calc((100% - 40px) / 2);
        display: flex;
        flex-direction: column;

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

        h3 {
          font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
          text-align: center;
          background-color: #D5A775;
          color: #fff;
          margin: 0;
          padding: 0.4em;
        }
        .txt {
          display: flex;
          gap: 2em;
          font-size: clamp(0.625rem, 0.559rem + 0.28vw, 0.813rem);
          padding: 1.5em 2.5em 0.5em 2.5em;
          font-family: var(--font-noto);
          font-weight: normal;
          line-height: 2;

          @media (max-width: 767px) {
            gap: 0.5em;
            flex-direction: row-reverse;
            padding: 1.5em 2em 0.5em 1em;
          }

          .img {
            width: 96px;
            height: auto;
            flex-shrink: 0;

            @media (max-width: 767px) {
              width: 80px;
            }
            
            img {
              width: 100%;
            }
          }
        }
        .btn_more_brown {
          margin: auto 1.5em 1.2em auto;

          a {
            font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
          }
        }
      }
    }
  }
}

/*--------------------
よくある質問
--------------------*/
.page_faq {
  .page_title {
    background: url(../img/faq/page_title.png) top center/cover no-repeat;

    @media (max-width: 767px) {
      background: url(../img/faq/page_title_sp.png) top center/cover no-repeat;
    }
  }
  .faq_index {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    /*margin-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);*/
    
    .index_list {      
      .index_item {
        width: calc((100% - 60px) / 3);

        @media (max-width: 767px) {
          width: calc((100% - 10px) / 2);
        }
      }
    }
  }
  .faq {
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    margin-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
  }
}
.faq_list {
  list-style: none;
  margin: 0;
  padding: 0;

  .faq_item {
    margin: 0;
    padding: 0;

    .faq_q {
      display: flex;
      align-items: center;
      gap: 0.5em;
      margin: 0 0 1em;
      padding-bottom: 0.5em;
      padding-right: 0.2em;
      border-bottom: 1px #D5A775 solid;
      font-size: clamp(1rem, 0.802rem + 0.85vw, 1.563rem);
      color: #B28251;

      &::before {
        content: "";
        background: url(../img/faq/faq_q.svg) center center/100% no-repeat;
        line-height: 1;
        flex-shrink: 0;
        width: 31px;
        height: 32px;

        @media (max-width: 767px) {
          width: 24px;
          height: 25px;
        }
      }
      &::after {
        content: "";
        display: block;
        margin-left: auto;
        width: 12px;
        height: 12px;
        border: 0;
        border-bottom: solid 2px #D5A775;
        border-right: solid 2px #D5A775;
        transform: rotate(45deg);
        transition: ease-in .2s;

        @media (max-width: 767px) {
          width: 9px;
          height: 9px;
        }
      }
      &.show::after {
        transform: rotate(-135deg);
        transition: ease-in .2s;
      }

    }
    .faq_a {
      background-color: #F8EFEC;
      padding: 2em 3em 2em 1.5em;
      display: flex;
      align-items: start;
      gap: 1em;
      line-height: 2;
      font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);

      @media (max-width: 767px) {
        padding: 1.5em 1.5em 1.5em 1em;
        gap: 0.8em;
      }

      &::before {
        content: "";
        background: url(../img/faq/faq_a.svg) center center/100% no-repeat;
        flex-shrink: 0;
        line-height: 1;
        width: 30px;
        height: 29px;

        @media (max-width: 767px) {
          width: 24px;
          height: 24px;
        }
      }
    }
    & + .faq_item {
      margin-top: 2.5em;
    }
  }
}

/*--------------------
料金表
--------------------*/
.page_price-list {
  .page_title {
    background: url(../img/price-list/page_title.png) top center/cover no-repeat;

    @media (max-width: 767px) {
      background: url(../img/price-list/page_title_sp.png) top center/cover no-repeat;
    }
  }

  /* 目次 */
  .price_index {
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(1.875rem, 0.555rem + 5.63vw, 5.625rem);
  }
  .price {
    margin-bottom: clamp(1.875rem, 0.775rem + 4.69vw, 5rem);

    .price_box {
      position: relative;

      .btn_menu {
        position: absolute;
        top: 0.6em;
        right: 0;
        background-color: #D5A775;
        color: #fff;
        display: flex;
        align-items: center;
        gap: 1em;
        padding: 0.2em 0.8em 0.2em 1.8em;
        border-radius: 100px;
        font-size: clamp(0.813rem, 0.746rem + 0.28vw, 1rem);

        @media (max-width: 767px) {
          position: initial;
          width: max-content;
          margin-top: 1em;
          margin-left: auto;
          padding: 0.2em 0.8em 0.2em 1em;
          gap: 0.5em;
        }
  
        &::after {
          content: "";
          width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
          height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
          border: 0;
          border-top: solid 1px #fff;
          border-right: solid 1px #fff;
          transform: rotate(45deg);
        }

        &:hover {
          opacity: 0.8;
        }
      }
    }
  }
}

/* 目次 */
.index_list {
  display: flex;
  gap: 20px 30px;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 auto;

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

  .index_item {
    width: calc((100% - 30px) / 2);
    margin: 0;
    padding: 0;
    display: flex;

    @media (max-width: 767px) {
      width: calc((100% - 10px) / 2);
    }

    a {
      background-color: #D5A775;
      display: flex;
      align-items: center;
      font-size: clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem);
      color: #fff;
      padding: 1em 1em 1em 1.5em;
      border-radius: 10px;
      flex-grow: 1;
      gap: 0.5em;

      @media (max-width: 767px) {
        padding: 1em 0.8em 1em 1em;
      }

      &::after {
        content: "";
        width: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
        height: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
        background: url(../img/arrow_white.svg) no-repeat;
        background-size: 100%;
        margin-left: auto;
        flex-shrink: 0;
      }
      
      &:hover {
        opacity: 0.8;;
      }
    }
  }
}
.price {
  h2 {
    background: url(../img/bg_mark_white_translucent.svg) center center/300px no-repeat;
    min-height: 283px;
    margin: 0 0 -40px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(1.375rem, 0.979rem + 1.69vw, 2.5rem);
    color: #B28251;
    text-align: center;

    @media (max-width: 767px) {
      background: url(../img/bg_mark_white_translucent.svg) center center/180px no-repeat;
      min-height: 170px;
      margin: 0 0 -10px;
    }
  }
  .price_box {
    .menu_name {
      font-size: clamp(1.125rem, 0.861rem + 1.13vw, 1.875rem);
      color: #B28251;
      margin: 0 0 0.3em;
      display: flex;
      align-items: start;
      gap: 0.2em;
      padding-right: 220px;

      @media (max-width: 767px) {
      padding-right: 0;
      }
  
      &::before {
        content: "";
        border-left: 11px solid transparent;
        border-right: 11px solid transparent;
        border-top: 20px solid #D5A775;
        margin-top: 0.5em;
      }
  
      @media (max-width: 767px) {
        &::before {
          border-left: 7px solid transparent;
          border-right: 7px solid transparent;
          border-top: 12px solid #D5A775;
        }
      }
    }
    table {
      border: 1px #D5A775 solid;
      width: 100% !important;
      table-layout: fixed;
      border-collapse: collapse;
  
      tr {
        @media (max-width: 767px) {
          display: flex;
          flex-wrap: wrap;
        }

        th {
          border: 1px #D5A775 solid;
          padding: 1em 2em;
          font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
          text-align: left;
          background-color: #FFF7E8;
          border-collapse: collapse;
  
          @media (max-width: 767px) {
            padding: 0.8em 1em;
            width: 100%;
            display: block;
          }
        }
        td {
          border: 1px #D5A775 solid;
          padding: 1em 2em;
          font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
          border-collapse: collapse;
  
          @media (max-width: 767px) {
            padding: 1em;
            width: 100%;
            display: block;
          }
          a {
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
            color: #B28251;
            text-decoration: underline;

            &:hover {
              text-decoration: none;
            }
          }
        }
        /* 2列の場合 */
        td:nth-last-of-type(1) {
          background-color: #fff;
          text-align: right;

          @media (max-width: 767px) {
            display: inline-block;
            width: 100%;
          }
        }
        /* 3列の場合 */
        td:nth-of-type(2):nth-last-of-type(1) {
          background-color: #fff;
          text-align: right;

          @media (max-width: 767px) {
            display: inline-block;
            width: 50%;
          }
        }
        td:nth-of-type(2):nth-last-of-type(2) {
          background-color: #FFFBF5;
          text-align: left;
      
          @media (max-width: 767px) {
            display: inline-block;
            width: 50%;
          }
        }
        /* 3列の場合 */
        td:nth-of-type(3):nth-last-of-type(1) {
          background-color: #fff;
          text-align: right;

          @media (max-width: 767px) {
            display: inline-block;
            width: 50%;
          }
        }
        td:nth-last-of-type(2) {
          background-color: #FFFBF5;
          text-align: left;

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

      & + table {
        margin-top: 30px;
      }
    }
    .price_notes {
      font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
      margin: 1em 0 0;
      text-align: right;
    }
    & + .price_box {
      margin-top: clamp(1.875rem, 1.655rem + 0.94vw, 2.5rem);
    }
  } 
}

/*--------------------
ドクターズコスメ 一覧
--------------------*/
.page_cosme {
  .page_title {
    background: url(../img/cosme/page_title.png) top center/cover no-repeat;

    @media (max-width: 767px) {
      background: url(../img/cosme/page_title_sp.png) top center/cover no-repeat;
    }
  }
  .brand_area {
    padding-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    background-color: transparent;

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

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

      .brand_item {
        width: calc((100% - 40px) / 2);
        background-color: #fff;
        border-radius: 20px;
        overflow: hidden;
        box-shadow: 0px 0px 10px -5px #aaa5a0;
        display: flex;
        flex-direction: column;
        gap: clamp(1.25rem, 1.03rem + 0.94vw, 1.875rem);
        padding-bottom: 2.5em;

        @media (max-width: 767px) {
          width: 100%;
          border-radius: 10px;
          padding-bottom: 2em;
        }

        .img {
          width: 100%;
        }

        h2 {
          font-size: clamp(1.375rem, 0.979rem + 1.69vw, 2.5rem);
          color: #B28251;
          text-align: center;
          margin: 0;
        }
        .txt {
          margin-top: auto;
          padding: 0 4em;
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          line-height: 2;

          @media (max-width: 767px) {
            padding: 0 1.5em;
          }
        }
        .btn_more {
          margin-top: auto;
          margin-bottom: 0; 

          a {
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
            color: #fff;
            background-color: #D5A775;
            position: relative;
            display: flex;
            justify-content: center;
            align-items: center;
            color: #fff;
            max-width: clamp(12.5rem, 10.299rem + 9.39vw, 18.75rem);
            width: 100%;
            padding: 0.8em;
            margin: 0 auto;
            border-radius: 100px;
            transition: ease-in .2s;
            
            &::after {
              content: "";
              position: absolute;
              bottom: 44%;
              right: 20px;
              width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
              height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
              border: 0;
              border-top: solid 1px #fff;
              border-right: solid 1px #fff;
              transform: rotate(45deg);
              transition: ease-in .2s;
            }
            &:hover {
              opacity: 0.8;
            }
          }
        }
      }
    }
  }
}

/*--------------------
ドクターズコスメ 詳細
--------------------*/
.page_cosme_single {
  .brand_about {
    padding-top: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
    
    .brand_img {
      margin-bottom: clamp(2.5rem, 2.06rem + 1.88vw, 3.75rem);

      img {
        width: 100%;
      }
    }
    .wysiwyg_area {
      font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
      line-height: 2;
      margin-bottom: 60px;

      strong {
        font-weight: bold;
        color: #AF4B46;
      }
    }
  }
  .cosme_area {
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    
    h2 {
      font-size: clamp(1.125rem, 0.971rem + 0.66vw, 1.563rem);
      color: #B28251;
      margin: 0 0 1em;
      padding-left: 0.4em;
      border-left: 7px #D5A775 solid;

      @media (max-width: 767px) {
        border-left: 4px #D5A775 solid;
      }
    }
    .cosme_list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-wrap: wrap;
      gap: 30px 15px;

      @media (max-width: 767px) {
        gap: 20px 10px;
      }

      .cosme_item {
        background-color: #FAF8F5;
        width: calc((100% - 45px) / 4);
        border-radius: 10px;
        overflow: hidden;
        box-shadow: 0px 0px 10px -5px #aaa5a0;
        display: flex;
        flex-direction: column;

        @media (max-width: 767px) {
          width: calc((100% - 10px) / 2);
        }

        .img {
          background-color: #fff;
          height: 200px;

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

          img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            padding: 1em;
          }
        }
        .cosme_name {
          font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
          font-family: var(--font-noto);
          font-weight: normal;
          padding: 1.5em;
          margin: 0;
        }
        .btn_buy {
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          color: #fff;
          background-color: #D5A775;
          position: relative;
          display: flex;
          justify-content: center;
          align-items: center;
          width: 100%;
          padding: 0.5em;
          margin: auto auto 0;
          transition: ease-in .2s;
          
          &::after {
            content: "";
            position: absolute;
            bottom: 44%;
            right: 20px;
            width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
            height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
            border: 0;
            border-top: solid 1px #fff;
            border-right: solid 1px #fff;
            transform: rotate(45deg);
            transition: ease-in .2s;
          }
          &:hover {
            opacity: 0.8;
          }
        }
      }

      & + h2 {
        margin-top: 60px;
      }
    }
  }
}

/*--------------------
お知らせ/キャンペーン/
院外活動報告 一覧
--------------------*/
.page_campaign {
  .page_title {
    background: url(../img/campaign/page_title.png) top center/cover no-repeat;

    @media (max-width: 767px) {
      background: url(../img/campaign/page_title_sp.png) top center/cover no-repeat;
    }
  }
  .campaign_list_wrapper {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    margin-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .campaign_list {
      flex-wrap: wrap;
      gap: 50px 30px;

      @media (max-width: 767px) {
        gap: 50px;
      }
    }
  }
}
.page_news {
  .page_title {
    background: url(../img/news/page_title.png) top center/cover no-repeat;

    @media (max-width: 767px) {
      background: url(../img/news/page_title_sp.png) top center/cover no-repeat;
    }
  }
  .news_list_wrapper {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    margin-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
  }
}
.page_report {
  .page_title {
    background: url(../img/report/page_title.png) top center/cover no-repeat;

    @media (max-width: 767px) {
      background: url(../img/report/page_title_sp.png) top center/cover no-repeat;
    }
  }
  .news_list_wrapper {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    margin-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
  }
}

/*--------------------
お知らせ/キャンペーン/
院外活動報告 詳細
--------------------*/
.page_post_single {
  .breadcrumb {
    width: calc(1200px + 4%);
    margin: auto;
    padding: 0 2%;
  
    @media (max-width: 1300px) {
      width: 100%;
      padding: 0 5%;
    }
  }
  .page_post_inner {
    padding-top: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
    padding-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    display: flex;
    flex-wrap: wrap;
    gap: 5%;

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

    .post_main {
      width: calc((100% - 300px) - 5%);

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

      time {
        display: block;
        font-family: var(--font-en);
        font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
        font-weight: bold;
        color: #AF4B46;
        margin: 0 0 0.3em;
      }
      .post_title {
        margin: 0 0 clamp(1.875rem, 1.215rem + 2.82vw, 3.75rem);
        font-size: clamp(1.125rem, 0.861rem + 1.13vw, 1.875rem);
      }
      .eyecatch {
        max-width: 80%;
        margin: 0 auto clamp(1.875rem, 1.655rem + 0.94vw, 2.5rem);

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

        img {
          width: 100%;
          height: auto;
        }
      }
      .wysiwyg_area {
        p {
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          font-family: var(--font-noto);
          font-weight: normal;
          line-height: 2;
          margin: 1em auto 2em;
        }
        span {
          font-family: var(--font-noto);
        }
        div {
          font-family: var(--font-noto);
        }
        h2 {
          background-color: #D5A775;
          font-size: clamp(1rem, 0.802rem + 0.85vw, 1.563rem);
          color: #fff;
          margin: 2em auto 1em;
          padding: 0.8em 1.2em;
        }
        h3 {
          font-size: clamp(1rem, 0.802rem + 0.85vw, 1.563rem);
          border-left: 8px #D5A775 solid;
          margin: 2em auto 0.5em;
          padding-left: 0.5em;

          @media (max-width: 767px) {
            border-left: 6px #D5A775 solid;
          }
        }
        h4 {
          font-size: clamp(1rem, 0.868rem + 0.56vw, 1.375rem);
          border-bottom: 1px #D5A775 solid;
          margin: 2em auto 0.5em;
          padding-bottom: 0.5em;
        }
        a {
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          font-family: var(--font-noto);
          font-weight: normal;
          color: #B28251;
          text-decoration: underline;

          &:hover {
            text-decoration: none;
          }
        }
        table {
          tbody {
            tr {
              th {
                border: 1px #483F35 solid;
                padding: 1em;
                background-color: #F4ECE2;
                font-family: var(--font-noto);
                font-weight: normal;
                font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
                line-height: 2;
              }
              td {
                border: 1px #483F35 solid;
                padding: 1em;
                font-family: var(--font-noto);
                font-weight: normal;
                font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
                line-height: 2;
              }
            }
          }
        }
        ul {
          list-style: none;
          margin: 0;
          padding: 0;
          
          li {
            font-family: var(--font-noto);
            font-weight: normal;
            line-height: 2;
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
            display: flex;
            align-items: center;
            gap: 0.5em;

            &::before {
              content: "";
              display: block;
              width: 9px;
              height: 9px;
              background-color: #D5A775;
              border-radius: 50px;
              flex-shrink: 0;
            }
          }
        }
        ol {
          list-style: none;
          margin: 0;
          padding: 0;
          
          li {
            font-family: var(--font-noto);
            font-weight: normal;
            line-height: 2;
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
            display: flex;
            align-items: center;
            gap: 0.5em;

            &::before {
              counter-increment: number 1;
              content: counter(number) " ";
              display: flex;
              justify-content: center;
              align-items: center;
              width: 23px;
              height: 23px;
              background-color: #D5A775;
              border-radius: 50px;
              color: #fff;
              line-height: 0;
              font-size: 15px;
              flex-shrink: 0;
            }
          }
        }
        strong {
          font-family: var(--font-noto);
          font-weight: bold;
          line-height: 2;
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        }
        img {
          max-width: 100%;
        }
      }
    }
    .post_sidebar {
      width: 300px;

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

      .post_sidebar_inner {
        .ttl {
          background-color: #F4ECE2;
          margin: 0;
          padding: 0.8em 1.2em;
          font-size: 18px;
        }
        .post_sidebar_list {
          list-style: none;
          margin: 0;
          padding: 0;
          
          li {
            border-bottom: 1px #EBEBEB solid;
            display: flex;
            align-items: center;
            font-size: 14px;

            a {
              display: block;
              padding: 1.5em 0;
              font-size: 14px;

              time {
                display: block;
                font-family: var(--font-en);
                font-size: 14px;
                color: #B28251;
                margin-bottom: 0.3em;
              }
              .sidebar_post_title {
                font-size: 14px;
                margin: 0;
              }
              &:hover {
                opacity: 0.8;
              }
            }
          }
        }
        & + .post_sidebar_inner {
          margin-top: 60px;
        }
      }
    }
    .btn_back_brown {
      margin-top: 60px;

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

/*--------------------
プライバシーポリシー
--------------------*/
.page_privacypolicy {
  h2 {
    font-size: clamp(1rem, 0.868rem + 0.56vw, 1.375rem);
    border-bottom: 1px #D5A775 solid;
    margin: 2.5em auto 0.5em;
    padding-bottom: 0.5em;
    color: #B28251;
  }
  .txt {
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
    line-height: 2;
    margin: 1em auto 2em;
  }
}

/*--------------------
特定商取引法に基づく表記
--------------------*/
.page_commerce {
  .page_under_inner {
    table {
      width: 100%;
  
      tr {
        @media (max-width: 767px) {
          &:nth-last-child(1) {
            border-bottom: 1px #B28251 solid;
          }
        }
        th {
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          background-color: #F4ECE2;
          border: 1px #B28251 solid;
          border-right: none;
          padding: 1em;
  
          @media (max-width: 767px) {
            display: block;
            border: 1px #B28251 solid;
            border-bottom: none;
            padding: 0.8em 1em;
          }
        }
        td {
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          border: 1px #B28251 solid;
          border-left: none;
          padding: 1em;
  
          @media (max-width: 767px) {
            display: block;
            border: 1px #B28251 solid;
            border-bottom: none;
            border-top: none;
            padding: 1em;
          }
        }
      }
    }
  }
}

/*--------------------
404
--------------------*/
.page_404 {
  .txt {
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
    line-height: 2;
    text-align: center;

    @media (max-width: 767px) {
      text-align: left;
    }
  }
  .btn_brown {
    margin-top: clamp(2.5rem, 1.304rem + 5.1vw, 3.75rem);
  }
}

/*--------------------
thanks
--------------------*/
.page_thanks {
  .txt {
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
    line-height: 2;
    text-align: center;

    @media (max-width: 767px) {
      text-align: left;
    }
  }
  .btn_brown {
    margin-top: clamp(2.5rem, 1.304rem + 5.1vw, 3.75rem);
  }
}

/*--------------------
contact
--------------------*/
.page_contact, .page_contact-confirm {
  .contact_inner {
    margin-top: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);
    margin-bottom: clamp(3.75rem, 2.43rem + 5.63vw, 7.5rem);

    .txt {
      font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
      line-height: 2;
      text-align: center;
      margin: 0 0 clamp(2.5rem, 2.06rem + 1.88vw, 3.75rem);
    }
    .notice {
      padding: 1em;
      background-color: #d38783;
      border: 1px #d38783 solid;
      outline: 1px #ffffff solid;
      outline-offset: -5px;
      color: #fff;
      font-size: clamp(1.125rem, 1.081rem + 0.19vw, 1.25rem);
    }
    .contact_form {
      dt {
        margin-bottom: clamp(0.625rem, 0.515rem + 0.47vw, 0.938rem);

        p {
          font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
          color: #B28251;
          margin: 0;
          
          .required {
            font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
            color: #fff;
            background-color: #D38783;
            display: inline-block;
            margin-left: 0.5em;
            padding: 0 0.6em;
            border-radius: 4px;
          }
        }
      }
      dd {
        margin-left: 0;

        p {
          font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
          margin: 0;

          input {
            border: 1px #D5A775 solid;
            border-radius: 8px;
            padding: 0.8em;
          }

          /* 診察番号 */
          input[name="your-number"] {
            max-width: 360px;
            width: 100%;
          }

          /* 電話番号 */
          input[name="your-tel"] {
            max-width: 360px;
            width: 100%;
          }

          /* メールアドレス */
          input[name="your-email1"],input[name="your-email2"] {
            width: 100%;
          }

          /* 確認しました */
          input[name="checkbox-340[]"] {
            margin-top: 2em;
          }

          /* お問い合わせ内容 */
          textarea {
            border: 1px #D5A775 solid;
            border-radius: 8px;
            width: 100%;
            padding: 0.8em;
          }

          /* チェックボックス */
          input[type="checkbox"] {
            position: relative;
            width: 16px;
            height: 16px;
            padding: 0;
            background-color: #fff;
            vertical-align: -1px;
            border-radius: 3px;
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
          }
          input[type="checkbox"]:checked::before {
            position: absolute;
            top: 1px;
            left: 5px;
            transform: rotate(50deg);
            width: 5px;
            height: 10px;
            border-right: 2px solid #B28251;
            border-bottom: 2px solid #B28251;
            content: '';
          }

          /* 入力してください */
          .wpcf7-not-valid-tip {
            display: inline;
            font-weight: bold;
          }
        }
        .txt {
          text-align: left;

          &.small {
            font-size: 14px;
            margin: 0.8em 0;
          }
        }
        small {
          font-size: 12px;
          margin: 0.8em 0;
        }
        & + dt {
          margin: clamp(2.5rem, 2.06rem + 1.88vw, 3.75rem) 0 clamp(0.625rem, 0.515rem + 0.47vw, 0.938rem);
        }

        /* お名前（漢字）、お名前（フリガナ） */
        &.name_wrap {
          display: flex;
          gap: 2em;

          @media (max-width: 767px) {
            gap: 1em;
          }
  
          .name_item {

            .label {
              padding-right: 0.8em;

              @media (max-width: 767px) {
                display: inline-block;
                padding-right: 0;
                padding-bottom: 0.2em;
              }
            }
            input[name="your-name1"],input[name="your-name2"],
            input[name="your-kana1"],input[name="your-kana2"] {
              max-width: 300px;
              width: 100%;
            }
          }
        }
      }
    }
    .submit_area {
      position: relative;
      margin-top: clamp(2.5rem, 2.06rem + 1.88vw, 3.75rem);
      
      /* 送信ボタン */
      .btn_submit {
        display: flex;
        justify-content: center;
        transition : ease-in .2s;
  
        p {
          margin: 0;
          position: relative;
          transition : ease-in .2s;
  
          input {
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: #D5A775;
            border: none;
            font-size: clamp(0.875rem, 0.818rem + 0.24vw, 1rem);
            color: #fff;
            min-width: 300px;
            width: 100%;
            padding: 1em;
            border-radius: 100px;
            cursor: pointer;
            transition : ease-in .2s;

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

          &::after {
            content: "";
            position: absolute;
            right: 20px;
            bottom: 45%;
            width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
            height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
            border: 0;
            border-top: solid 1px #fff;
            border-right: solid 1px #fff;
            transform: rotate(45deg);
            transition: ease-in .2s;
          }
          .wpcf7-spinner {
            display: none;
          }
          &:hover {
            opacity: 0.8;
            transition : ease-in .2s;
          }
        }
      }
          
      /* 修正 */
      .btn_previous {
        position: absolute;
        left: 0;
        top: 0;

        @media (max-width: 767px) {
          position: static;
          display: flex;
          justify-content: center;
          margin-top: 30px;
        }
        
        p {
          margin: 0;
          position: relative;
          transition : ease-in .2s;

          input {
            background-color: #C4B7A8;
            border: none;
            color: #fff;
            font-size: 14px;
            padding: 1em;
            width: 140px;
            border-radius: 100px;
            cursor: pointer;
            transition : ease-in .2s;

            @media (max-width: 767px) {
              padding: 0.5em;
            }
          }

          &::before {
            content: "";
            position: absolute;
            left: 20px;
            bottom: 45%;
            width: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
            height: clamp(0.313rem, 0.241rem + 0.15vw, 0.375rem);
            border: 0;
            border-top: solid 1px #fff;
            border-left: solid 1px #fff;
            transform: rotate(-45deg);
            transition: ease-in .2s;
          }
  
          &:hover {
            opacity: 0.8;
            transition : ease-in .2s;
          }
        }
      }
    }
  }
}