@charset "UTF-8";

/*=============================================
 * HOME
*=============================================*/
#mv {
   padding: 20px 80px 5.5vw;
   position: relative;
}

#mv .in {
   position: relative;
   padding: 35px 50px 30px;
}

#mv .in:before {
   content: '';
   width: 54%;
   height: 54%;
   border-top: 2px solid #D0D8AF;
   border-right: 2px solid #D0D8AF;
   position: absolute;
   top: 0;
   right: 0;
}

#mv .in:after {
   content: '';
   width: 54%;
   height: 54%;
   border-bottom: 2px solid #D0D8AF;
   border-left: 2px solid #D0D8AF;
   position: absolute;
   bottom: 0;
   left: 0;
}

.mv__logo {
   width: 17%;
   max-width: 300px;
   position: absolute;
   bottom: 89%;
   left: 80px;
   z-index: 1;
}

.mv__slider .swiper-slide:after {
   content: '';
   width: 20%;
   padding-top: 10%;
   background-color: #fff;
   position: absolute;
   top: 0;
   left: 0;
   clip-path: polygon(0 0, 0% 100%, 100% 0);
}

.mv__slider .swiper-slide img {
   width: 100%;
   max-width: inherit;
   -webkit-animation-duration: 4s;
   animation-duration: 4s;
   -webkit-animation-timing-function: linear;
   animation-timing-function: linear;
   -webkit-animation-iteration-count: 1;
   animation-iteration-count: 1;
   transform: scale(1.1);
}

.mv__slider .swiper-slide-active img {
   -webkit-animation-name: showKvImage;
   animation-name: showKvImage;
}

.mv__h2 {
   width: 35%;
   max-width: 664px;
   position: absolute;
   bottom: 0;
   right: calc(80px + 4.6875%);
   z-index: 1;
}

@-webkit-keyframes showKvImage {
   0% {
      -webkit-transform: scale(1, 1) rotate(0.001deg);
      transform: scale(1, 1) rotate(0.001deg);
      outline: 1px solid transparent;
   }

   100% {
      -webkit-transform: scale(1.1, 1.1) rotate(0.001deg);
      transform: scale(1.1, 1.1) rotate(0.001deg);
   }
}

@keyframes showKvImage {
   0% {
      -webkit-transform: scale(1, 1) rotate(0.001deg);
      transform: scale(1, 1) rotate(0.001deg);
      outline: 1px solid transparent;
   }

   100% {
      -webkit-transform: scale(1.1, 1.1) rotate(0.001deg);
      transform: scale(1.1, 1.1) rotate(0.001deg);
   }
}

@media screen and (max-width: 1440px) {
   #mv {
      padding: 20px 40px 5.5vw;
   }

   #mv .in {
      padding: 30px;
   }

   .mv__logo {
      left: 40px;
   }

   .mv__h2 {
      right: calc(40px + 4.6875%);
   }
}

@media screen and (max-width: 1023px) {
   #mv {
      padding: 20px 20px 5.5vw;
   }

   #mv .in {
      padding: 20px;
   }

   .mv__logo {
      left: 20px;
   }

   .mv__h2 {
      right: calc(20px + 4.6875%);
   }
}

@media screen and (max-width: 767px) {
   #mv {
      padding: 10px 10px 7.5vw;
   }

   #mv .in {
      padding: 10px;
   }

   .mv__logo {
      width: 40%;
   }

   .mv__h2 {
      width: 70%;
      position: static;
      margin-left: auto;
   }

   .mv__slider .swiper-slide {
      height: 80vw;
   }

   .mv__slider .swiper-slide:after {
      width: 35%;
      padding-top: 15%;
   }

   .mv__slider .swiper-slide img {
      height: 100%;
      object-fit: cover;
   }
}

/* -- --*/
.feed {
   display: grid;
   grid-template-columns: 60px 1px 1fr;
   align-items: center;
   gap: 10px;
   width: 30%;
   background-color: #fff;
   font-size: 13px;
   line-height: 19px;
   border-radius: 4px;
   padding: 14px 30px;
   position: absolute;
   bottom: 120px;
   left: 90px;
   box-sizing: border-box;
   z-index: 1;
}

.feed .cat {
   overflow: hidden;
}

.feed .hr {
   width: 1px;
   height: 14px;
   border-left: 1px solid #CCCCCC;
}

.feed .ttl {
   position: relative;
   padding-right: 20px;
}

.feed .ttl i {
   position: absolute;
   top: 4px;
   right: 0;
   transition: all 0.3s;
}

.feed .ttl span {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 1;
   display: -webkit-box;
   overflow: hidden;
}

.feed .ttl:hover i {
   transform: translateX(5px);
}

@media screen and (max-width: 1440px) {
   .feed {
      bottom: 60px;
      left: 60px;
   }
}

@media screen and (max-width: 1200px) {
   .feed {
      width: 40%;
   }
}

@media screen and (max-width: 1023px) {
   .feed {
      bottom: 40px;
      left: 40px;
   }
}

@media screen and (max-width: 767px) {
   .feed {
      width: auto;
      right: 20px;
      bottom: 20px;
      left: 20px;
      padding: 10px;
   }
}

/* -- --*/
#top__about {
   position: relative;
}

#top__about:before {
   content: '';
   width: calc(50% - 250px);
   height: 788px;
   background-color: #F9FBF4;
   position: absolute;
   top: 45px;
   left: 0;
   opacity: 0.7;
}

#top__about .wrap {
   padding-top: 70px;
   padding-bottom: 235px;
}

#top__about .photo-1 {
   width: 583px;
   position: absolute;
   top: 123px;
   right: 0;
}

#top__about .photo-2 {
   width: 678px;
   position: absolute;
   bottom: 0;
   left: calc(50% - 40px);
   transform: translateX(-50%);
   z-index: -1;
}

#top__about .col {
   width: 545px;
   padding-left: 100px;
}

#top__about .deco {
   width: 362px;
   position: absolute;
   top: -65px;
   left: -40px;
}

#top__about h2 {
   display: flex;
   align-items: baseline;
   gap: 10px;
}

#top__about h2 .en {
   display: inline-block;
   padding: 7px 20px 0 7px;
}

#top__about h3 {
   padding-top: 12px;
}

#top__about .txt {
   padding-top: 40px;
}

#top__about .button {
   padding-top: 30px;
}

@media screen and (max-width: 1440px) {
   #top__about .col {
      padding-left: 0;
   }

   #top__about .photo-1 {
      width: 550px;
   }
}

@media screen and (max-width: 1200px) {
   #top__about .photo-1 {
      width: 450px;
   }

   #top__about .col {
      width: 480px;
   }
}

@media screen and (max-width: 1023px) {
   #top__about:before {
      width: 100%;
      top: auto;
      bottom: 0;
   }

   #top__about .wrap {
      padding-top: 80px;
      padding-bottom: 80px;
   }

   #top__about .deco {
      width: 250px;
      top: 0;
      left: 0;
   }

   #top__about .photos {
      position: relative;
      padding-bottom: 300px;
   }

   #top__about .photo-1 {
      position: relative;
      top: auto;
      right: auto;
      z-index: 1;
      margin-left: auto;
   }

   #top__about .photo-2 {
      width: 550px;
      left: 0;
      transform: translateX(0);
      z-index: 0;
   }

   #top__about .col {
      width: 100%;
      padding-top: 50px;
   }
}

@media screen and (max-width: 767px) {
   #top__about:before {
      height: 65%;
   }

   #top__about .wrap {
      padding-top: 40px;
      padding-bottom: 40px;
   }

   #top__about .photos {
      padding-bottom: 30vw;
   }

   #top__about .photo-1 {
      width: 60%;
   }

   #top__about .photo-2 {
      width: 70%;
   }

   #top__about .deco {
      width: 30vw;
   }

   #top__about h2 {
      flex-direction: column;
      align-items: center;
      gap: 0;
   }

   #top__about h2 .en {
      padding: 16px 0 0;
   }

   #top__about h3 {
      padding-top: 20px;
   }

   #top__about .txt {
      padding-top: 20px;
   }

   #top__about .button {
      padding-top: 30px;
   }
}

@media screen and (min-width: 1441px) {
   #top__about .wrap {
      max-width: 1400px;
   }
}

@media screen and (min-width: 1550px) {
   #top__about .wrap {
      max-width: 1500px;
   }
}

/* -- --*/
#top__treatment {
   padding: 80px 0;
   position: relative;
}

#top__treatment:before {
   content: '';
   width: 100%;
   background-color: #F9FBF4;
   position: absolute;
   top: 150px;
   bottom: 0;
   left: 0;
   border-radius: 300px 300px 0 0;
}

#top__treatment .deco-l {
   width: 300px;
   position: absolute;
   top: 0;
   left: 100px;
}

#top__treatment .deco-r {
   width: 300px;
   position: absolute;
   top: 0;
   right: 100px;
}

#top__treatment h2 {
   position: relative;
   padding: 30px 0;
}

#top__treatment h2 .sub {
   position: absolute;
   bottom: 0;
   left: 50%;
   transform: translateX(-50%);
}

#top__treatment .desc {
   max-width: 500px;
   margin: 0 auto;
   padding-top: 40px;
}

#top__treatment .box {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 30px 70px;
   padding-top: 40px;
}

#top__treatment .box .col {
   position: relative;
   transition: all 0.3s;
   cursor: pointer;
}

#top__treatment .box .col:hover {
   opacity: 0.7;
}

#top__treatment .box figure img {
   border-radius: 30px;
}

#top__treatment .box h3 {
   display: grid;
   grid-template-columns: 1fr 42px;
   align-items: center;
   gap: 15px;
   font-weight: 500;
   padding-top: 10px;
}

#top__treatment .box h3 span {
   display: block;
   font-size: 17px;
   line-height: 20px;
   text-align: center;
   position: relative;
   z-index: 1;
   padding: 5px 0;
}

#top__treatment .box h3 span:before {
   content: '';
   width: 34px;
   height: 34px;
   background-color: #EFF3CE;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   border-radius: 50%;
   z-index: -1;
}

#top__treatment .box h3 span:after {
   content: '';
   width: 0;
   height: 100%;
   border-left: 1px solid #237519;
   position: absolute;
   top: 0;
   left: -15px;
}

#top__treatment .box .txt {
   font-size: 15px;
   line-height: 21px;
   padding-top: 10px;
}

#top__treatment .box .href a {
   display: block;
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
   font-size: 0;
}

@media screen and (max-width: 1440px) {
   #top__treatment .deco-l {
      left: 0;
   }

   #top__treatment .deco-r {
      right: 0;
   }
}

@media screen and (max-width: 1200px) {
   #top__treatment .deco-l {
      width: 200px;
   }

   #top__treatment .deco-r {
      width: 200px;
   }
}

@media screen and (max-width: 1023px) {
   #top__treatment .box {
      grid-template-columns: repeat(2, 1fr);
      gap: 30px;
   }
}

@media screen and (max-width: 767px) {
   #top__treatment {
      padding: 50px 0 40px;
   }

   #top__treatment:before {
      top: 50px;
      border-radius: 40px 40px 0 0;
   }

   #top__treatment .deco-l,
   #top__treatment .deco-r {
      width: 120px;
      top: -40px;
   }

   #top__treatment .box {
      grid-template-columns: 1fr;
   }

   #top__treatment .box .txt {
      font-size: 13px;
   }
}

/* -- --*/
#top__service {
   padding: 80px 0;
}

#top__service h2 {
   position: relative;
   margin-bottom: 40px;
   padding-bottom: 30px;
}

#top__service h2 .sub {
   position: absolute;
   bottom: 0;
   left: 50%;
   transform: translateX(-50%);
}

#top__service hr {
   border-top: 1px solid #6F827C;
   margin-bottom: 60px;
}

#top__service .box {
   display: flex;
   justify-content: space-between;
   gap: 30px;
   padding-right: 100px;
}

#top__service .box:not(:last-child) {
   padding-bottom: 60px;
}

#top__service .box figure {
   width: 700px;
}

#top__service .box figure img {
   border-radius: 80px;
}

#top__service .box .col {
   width: 420px;
   padding: 30px 0;
}

#top__service .box h3 {
   padding-bottom: 20px;
   position: relative;
}

#top__service .box h3:before {
   content: '';
   width: 680px;
   border-bottom: 2px dotted #237519;
   position: absolute;
   bottom: 0;
   right: 0;
}

#top__service .box h3 span {
   display: inline-block;
   color: #237519;
   font-size: 16px;
   line-height: 22px;
}

#top__service .box .txt,
#top__service .box .button {
   padding-top: 20px;
}

#top__service .box.img-r {
   flex-direction: row-reverse;
   padding-right: 0;
   padding-left: 100px;
}

#top__service .box.img-r h3:before {
   right: auto;
   left: 0;
}

@media screen and (max-width: 1440px) {
   #top__service .box {
      padding-right: 0;
   }

   #top__service .box.img-r {
      padding-left: 0;
   }

   #top__service .box h3:before {
      width: 120%;
   }
}

@media screen and (max-width: 1023px) {
   #top__service .box {
      flex-direction: column;
   }

   #top__service .box figure,
   #top__service .box .col {
      width: 100%;
      padding: 0;
   }

   #top__service .box h3 {
      text-align: center;
   }

   #top__service .box h3:before {
      width: 100%;
   }

   #top__service .box .button {
      text-align: center;
   }

   #top__service .box.img-r {
      flex-direction: column;
   }
}

@media screen and (max-width: 767px) {
   #top__service {
      padding: 40px 0;
   }

   #top__service hr {
      margin-bottom: 40px;
   }

   #top__service .box:not(:last-child) {
      padding-bottom: 40px;
   }

   #top__service .box figure img {
      border-radius: 40px;
   }
}

/* -- --*/
#top__banner {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
}

#top__banner .col {
   padding: 84px 80px;
   position: relative;
}

#top__banner .col:after {
   content: '';
   border: 4px solid #F9FBF4;
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
   opacity: 0.5;
}

#top__banner .in {
   background-color: rgba(124, 112, 84, 0.6);
   color: #fff;
   padding: 65px 50px;
}

#top__banner h2 .en {
   display: flex;
   align-items: center;
   gap: 20px;
   max-width: 345px;
}

#top__banner h2 .en:after {
   content: '';
   flex: 1 0 0;
   border-top: 1px solid #fff;
}

#top__banner .txt {
   font-weight: 400;
   font-size: 16px;
   line-height: 32px;
   padding-top: 30px;
}

#top__banner .btn-more {
   padding-top: 30px;
}

#top__banner .btn-more a {
   display: inline-flex;
   justify-content: center;
   align-items: center;
   min-width: 125px;
   height: 33px;
   border: 1px solid #ECF3D8;
   font-size: 16px;
   padding: 4px 10px 0;
}

#top__banner .btn-more a:hover {
   background-color: #ECF3D8;
   color: #000;
   opacity: 1;
}

#top__banner .product {
   background: url("../img/index/product-photo.jpg") no-repeat center/cover;
}

#top__banner .recruit {
   background: url("../img/index/recruit-photo.jpg") no-repeat center/cover;
}

@media screen and (max-width: 1200px) {
   #top__banner .col {
      padding: 50px;
   }

   #top__banner .in {
      padding: 50px 30px;
   }
}

@media screen and (max-width: 1023px) {
   #top__banner {
      grid-template-columns: 1fr;
   }
}

@media screen and (max-width: 767px) {
   #top__banner .col {
      padding: 20px;
   }

   #top__banner .in {
      padding: 20px;
   }

   #top__banner .txt {
      font-size: 13px;
      line-height: 20px;
      padding-top: 20px;
   }

   #top__banner .btn-more {
      padding-top: 20px;
      text-align: center;
   }
}

/* -- --*/
#top__news {
   padding: 165px 0 80px;
   position: relative;
}

#top__news:before {
   content: '';
   width: 100%;
   height: 200px;
   background-color: #F9FBF4;
   position: absolute;
   top: 210px;
   left: 0;
}

#top__news .wrap {
   display: grid;
   grid-template-columns: 400px 1fr;
   align-items: center;
   padding-left: 100px;
}

#top__news h2 {
   position: relative;
   margin-bottom: 120px;
   padding-bottom: 30px;
   z-index: 1;
}

#top__news h2:before {
   content: '';
   width: 300px;
   height: 227px;
   background: url("../img/index/news-deco.png") no-repeat center top/100% auto;
   position: absolute;
   top: 0;
   left: 0;
   z-index: -1;
}

#top__news h2 .sub {
   position: absolute;
   bottom: 0;
   left: 0;
}

#top__news .button {
   position: absolute;
   top: calc(50% + 130px);
   left: 100px;
}

#top__news .button a:before {
   width: 20px;
   height: 20px;
   top: -6px;
   left: -6px;
   border: 0;
   border-top: 1px solid #6F827C;
   border-left: 1px solid #6F827C;
}

#top__news .button a:after {
   content: '';
   width: 20px;
   height: 20px;
   position: absolute;
   right: -6px;
   bottom: -6px;
   border-right: 1px solid #6F827C;
   border-bottom: 1px solid #6F827C;
   transition: all 0.3s;
}

#top__news .button a:hover:before {
   top: 0;
   left: 0;
}

#top__news .button a:hover:after {
   right: 0;
   bottom: 0;
}

#top__news .list .item {
   display: grid;
   grid-template-columns: 210px 1fr;
   align-items: center;
   gap: 30px;
   border-bottom: 1px solid #ccc;
   padding-bottom: 20px;
}

#top__news .list .item+.item {
   border-top: 1px solid #ccc;
   padding-top: 20px;
}

#top__news .list figure a {
   display: block;
   padding-top: 140px;
   position: relative;
}

#top__news .list figure a img {
   position: absolute;
   top: 0;
   left: 0;
}

#top__news .list .text {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 10px 15px;
}

#top__news .list time {
   font-weight: 500;
   font-size: 14px;
   line-height: 20px;
   color: #707070;
}

#top__news .list .cat {
   background-color: #7C7054;
   color: #fff;
   font-weight: 400;
   font-size: 12px;
   line-height: 17px;
   padding: 3px 10px;
   border-radius: 3px;
}

#top__news .list .cat:hover {
   background-color: #D3C4A5;
   opacity: 1;
}

#top__news .list .ttl {
   width: 100%;
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

@media screen and (max-width: 1440px) {
   #top__news .wrap {
      padding-left: 0;
   }

   #top__news .button {
      left: 0;
   }
}

@media screen and (max-width: 1023px) {
   #top__news .wrap {
      grid-template-columns: 1fr;
   }

   #top__news .button {
      text-align: center;
      position: static;
      padding-top: 50px;
   }
}

@media screen and (max-width: 767px) {
   #top__news {
      padding: 60px 0;
   }

   #top__news:before {
      top: 0;
   }

   #top__news .wrap {
      padding-left: 30px;
   }

   #top__news h2 {
      margin-bottom: 40px;
   }

   #top__news h2:before {
      width: 150px;
      height: 114px;
      left: 70px;
   }

   #top__news .list .item {
      grid-template-columns: repeat(2, 1fr);
      gap: 10px;
   }

   #top__news .list figure a {
      padding-top: 66.66%;
   }

   #top__news .button {
      padding-top: 30px;
   }
}

/* -- --*/
.section__cta {
   position: relative;
   padding-bottom: 50px;
}

.section__cta:before {
   content: '';
   width: 100%;
   background-color: #F9FBF4;
   position: absolute;
   top: 70px;
   bottom: 0;
   left: 0;
}

.section__cta h2 {
   padding-top: 10px;
}

.section__cta .list-bnr {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 30px;
   color: #515D2C;
   text-align: center;
   padding-top: 10px;
}

.section__cta .list-bnr .tel time {
   display: block;
   font-size: 15px;
   line-height: 21px;
}

.section__cta .list-bnr .tel a {
   display: inline-block;
   background: url("../img/common/icon-tel.png") no-repeat center left/30px auto;
   font-weight: 400;
   font-size: 36px;
   line-height: 49px;
   margin-top: 4px;
   padding-left: 40px;
}

.section__cta .list-bnr li:not(.tel) {
   border-left: 1px solid #443511;
   padding-left: 30px;
}

.section__cta .list-bnr li:not(.tel) a {
   display: block;
   padding: 12px 0 11px;
}

.section__cta .list-bnr li:not(.tel) a small {
   display: block;
   font-size: 16px;
   line-height: 22px;
   padding-bottom: 6px;
}

@media screen and (max-width: 1023px) {
   .section__cta .list-bnr {
      gap: 10px;
   }

   .section__cta .list-bnr li:not(.tel) {
      padding-left: 10px;
   }

   .section__cta .list-bnr .tel time {
      font-size: 13px;
   }
}

@media screen and (max-width: 767px) {
   .section__cta {
      padding-bottom: 40px;
   }

   .section__cta:before {
      top: 30px;
   }

   .section__cta .list-bnr {
      flex-direction: column;
      align-items: inherit;
      gap: 20px;
      padding-top: 20px;
   }

   .section__cta .list-bnr li:not(.tel) {
      font-size: 24px;
      border-top: 1px solid #443511;
      border-left: 0;
      padding: 20px 0 0;
   }

   .section__cta .list-bnr li:not(.tel) a {
      padding: 0;
   }

   .section__cta .list-bnr .tel time {
      font-size: 12px;
   }
}

/*=============================================
 * 施術メニュー
 *=============================================*/
#lead {
   padding-bottom: 110px;
}

#lead .txt {
   padding-top: 40px;
}

#lead .txt p+p {
   padding-top: 10px;
}

#lead .txt a {
   text-decoration: underline;
}

#lead .txt a:hover {
   text-decoration: none;
}

#lead .desc {
   padding-top: 40px;
}

#lead .desc p+p {
   padding-top: 40px;
}

@media screen and (max-width: 767px) {
   #lead {
      padding-bottom: 50px;
   }

   #lead .txt {
      padding-top: 20px;
   }

   #lead .desc {
      padding-top: 20px;
   }

   #lead .desc p+p {
      padding-top: 20px;
   }
}

/* -- -- */
#menu__feature {
   padding-bottom: 80px;
   position: relative;
}

#menu__feature:before {
   content: '';
   width: 100%;
   background-color: #F9FBF4;
   position: absolute;
   top: 240px;
   bottom: 0;
   left: 0;
   border-radius: 300px 300px 0 0;
}

#menu__feature .h-34 {
   font-weight: 700;
   letter-spacing: 0.05em;
}

#menu__feature h2.h-34 {
   max-width: max-content;
   background-color: #ECF3D8;
   padding: 2px 12px;
   margin: 0 auto 100px;
}

#menu__feature .deco-l {
   width: 300px;
   position: absolute;
   top: 120px;
   left: 100px;
}

#menu__feature .deco-r {
   width: 300px;
   position: absolute;
   top: 120px;
   right: 100px;
}

#menu__feature .h2 {
   position: relative;
   line-height: 172px;
}

#menu__feature .h2 .sub {
   width: max-content;
   position: absolute;
   bottom: 0;
   left: 50%;
   transform: translateX(-50%);
}

#menu__feature .menu-list {
   display: grid;
   grid-template-columns: 200px calc(100% - 290px);
   gap: 90px;
   padding-top: 70px;
}

#menu__feature .tab-link li {
   display: block;
   transition: all 0.3s;
}

#menu__feature .tab-link-main {
   font-size: 16px;
   line-height: 24px;
   text-align: center;
}

#menu__feature .tab-link-main li {
   background-color: #D0D8AF;
   border-radius: 2px;
   padding: 8px;
}

#menu__feature .tab-link-main li+li {
   margin-top: 10px;
}

#menu__feature .tab-link-main li:hover,
#menu__feature .tab-link-main li.active {
   background-color: #515D2C;
   color: #fff;
}

#menu__feature .tab-content-main h3 span {
   display: inline-block;
   background-color: #ECF3D8;
   padding: 2px 12px;
}

#menu__feature .tab-content-main h4 {
   border-bottom: 1px solid #237519;
   padding-bottom: 20px;
}

#menu__feature .tab-link-sub {
   display: flex;
   flex-wrap: wrap;
   gap: 15px;
   font-size: 18px;
   line-height: 26px;
   padding-top: 30px;
}

#menu__feature .tab-link-sub li {
   width: 160px;
   background-color: #fff;
   border-radius: 10px 10px 0 0;
   padding: 9px;
   box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
   text-align: center;
}

#menu__feature .tab-link-sub li:hover,
#menu__feature .tab-link-sub li.active {
   background-color: #D0D8AF;
}

#menu__feature .tab-content-item {
   background-color: #fff;
   box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
   padding: 80px 60px;
   position: relative;
   z-index: 1;
}

#menu__feature .tab-content-item .txt {
   line-height: 25px;
   padding-top: 20px;
}

#menu__feature .tab-content-item .txt p+p {
   padding-top: 20px;
}

#menu__feature .tab-content-item .table {
   width: 100%;
   overflow-x: auto;
   padding-top: 20px;
}

#menu__feature .tab-content-item table {
   width: 100%;
   min-width: 950px;
}

#menu__feature .tab-content-item table th,
#menu__feature .tab-content-item table td {
   border: 2px solid #D0D8AF;
   color: #515D2C;
   font-weight: 500;
   font-size: 15px;
   line-height: 21px;
   padding: 12px 5px;
   text-align: center;
}

#menu__feature .tab-content-item table th:first-child,
#menu__feature .tab-content-item table td:first-child {
   text-align: left;
   padding: 12px;
}

#menu__feature .tab-content-item table th {
   background-color: #515D2C;
   color: #fff;
}

@media screen and (max-width: 1440px) {
   #menu__feature .deco-l {
      left: 0;
   }

   #menu__feature .deco-r {
      right: 0;
   }
}

@media screen and (max-width: 1200px) {

   #menu__feature .deco-l,
   #menu__feature .deco-r {
      width: 250px;
   }

   #menu__feature .menu-list {
      grid-template-columns: 200px calc(100% - 240px);
      gap: 40px;
   }

   #menu__feature .menu-list .tab-content-item {
      padding: 30px 20px;
   }
}

@media screen and (max-width: 1023px) {

   #menu__feature .deco-l,
   #menu__feature .deco-r {
      width: 160px;
      top: 180px;
   }

   #menu__feature .menu-list {
      grid-template-columns: 100%;
   }

   #menu__feature .tab-link-main {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
   }

   #menu__feature .tab-link-main li+li {
      margin-top: 0;
   }
}

@media screen and (max-width: 767px) {
   #menu__feature {
      padding-bottom: 40px;
   }

   #menu__feature:before {
      top: 110px;
      border-radius: 80px 80px 0 0;
   }

   #menu__feature .deco-l,
   #menu__feature .deco-r {
      width: 80px;
      top: 80px;
   }

   #menu__feature .h-34 {
      line-height: 40px;
   }

   #menu__feature h2.h-34 {
      margin-bottom: 20px;
   }

   #menu__feature .h2 {
      line-height: 2.3;
   }

   #menu__feature .menu-list {
      padding-top: 40px;
   }

   #menu__feature .tab-link-main {
      grid-template-columns: repeat(2, 1fr);
      font-size: 12px;
   }

   #menu__feature .tab-link-sub {
      gap: 10px;
      font-size: 15px;
      padding-top: 20px;
   }

   #menu__feature .tab-link-sub li {
      width: 120px;
   }

   #menu__feature .tab-content-main h4 {
      padding-bottom: 10px;
   }

   #menu__feature .tab-content-main .tab-content {
      margin: 0 -30px;
   }
}

/*=============================================
 * 初回お試しプラン
 *=============================================*/
#first-trial-sec1 .row {
   padding: 80px 0;
}

#first-trial-sec1 .row:nth-child(odd) {
   background-color: #F9FBF4;
}

#first-trial-sec1 h2 span {
   display: inline-block;
   background-color: #ECF3D8;
   letter-spacing: 0.05em;
   padding: 2px 12px;
}

#first-trial-sec1 .box {
   display: grid;
   grid-template-columns: 480px 1fr;
   align-items: flex-start;
   gap: 40px;
   padding-top: 40px;
}

#first-trial-sec1 .box+.box {
   padding-top: 60px;
}

#first-trial-sec1 .box .col {
   padding: 25px 0;
}

#first-trial-sec1 .box h3 {
   border-bottom: 2px dotted;
   padding-bottom: 20px;
}

#first-trial-sec1 .box .txt,
#first-trial-sec1 .box .price {
   padding-top: 20px;
}

#first-trial-sec1 .box figure img {
   border-radius: 80px;
}

@media screen and (max-width: 1200px) {
   #first-trial-sec1 .box {
      grid-template-columns: 400px 1fr;
   }
}

@media screen and (max-width: 1023px) {
   #first-trial-sec1 .box {
      grid-template-columns: 1fr;
   }

   #first-trial-sec1 .box .col {
      padding: 0;
   }
}

@media screen and (max-width: 767px) {
   #first-trial-sec1 .row {
      padding: 40px 0;
   }

   #first-trial-sec1 .box {
      gap: 20px;
      padding-top: 30px;
   }

   #first-trial-sec1 .box+.box {
      padding-top: 50px;
   }

   #first-trial-sec1 .box figure img {
      border-radius: 40px;
   }
}

/* -- -- */
#first-trial-member {
   background-color: #F9FBF4;
   border-radius: 300px 300px 0 0;
   margin-bottom: 80px;
   padding: 150px 0 80px;
}

#first-trial-member h2 {
   line-height: 172px;
   position: relative;
}

#first-trial-member h2 .sub {
   width: max-content;
   position: absolute;
   bottom: 0;
   left: 50%;
   transform: translateX(-50%);
}

#first-trial-member .box {
   display: flex;
   flex-direction: row-reverse;
   justify-content: space-between;
   gap: 30px;
   margin-top: 60px;
   padding-left: 100px;
}

#first-trial-member .box figure {
   width: 700px;
}

#first-trial-member .box figure img {
   border-radius: 80px;
}

#first-trial-member .box .col {
   width: 420px;
   padding: 30px 0;
}

#first-trial-member .box h3 {
   max-width: 420px;
   padding-bottom: 20px;
   position: relative;
}

#first-trial-member .box h3:before {
   content: '';
   width: 680px;
   border-bottom: 2px dotted #237519;
   position: absolute;
   bottom: 0;
   left: 0;
}

#first-trial-member .box h3 span {
   display: inline-block;
   color: #237519;
   font-size: 16px;
   line-height: 22px;
}

#first-trial-member .box .txt,
#first-trial-member .box .button {
   padding-top: 20px;
}

@media screen and (max-width: 1440px) {
   #first-trial-member .box {
      padding-left: 0;
   }

   #first-trial-member .box h3:before {
      width: 120%;
   }
}

@media screen and (max-width: 1023px) {
   #first-trial-member .box {
      flex-direction: column;
   }

   #first-trial-member .box figure,
   #first-trial-member .box .col {
      width: 100%;
      padding: 0;
   }

   #first-trial-member .box h3 {
      max-width: inherit;
      text-align: center;
   }

   #first-trial-member .box h3:before {
      width: 100%;
   }

   #first-trial-member .box .button {
      text-align: center;
   }
}

@media screen and (max-width: 767px) {
   #first-trial-member {
      border-radius: 80px 80px 0 0;
      margin-bottom: 40px;
      padding: 60px 0 40px;
   }

   #first-trial-member h2 {
      line-height: 2;
   }

   #first-trial-member .box {
      margin-top: 30px;
   }

   #first-trial-member .box figure img {
      border-radius: 40px;
   }
}

/*=============================================
 * メンバー特典
 *=============================================*/
.page-id-92 #lead {
   padding-bottom: 50px;
}

#member__benefits .block {
   padding: 0 50px 50px;
}

#member__benefits .block:last-child {
   padding-bottom: 0;
}

#member__benefits hr {
   border-top: 1px solid #707070;
   margin: 0 -50px 50px;
}

#member__benefits .title {
   line-height: 173px;
   position: relative;
}

#member__benefits .title .en {
   color: #ECF3D8;
   font-size: 80px;
}

#member__benefits .title .sub {
   position: absolute;
   top: 50%;
   right: 0;
   left: 0;
   transform: translateY(-50%);
}

#member__benefits .title-1 span {
   display: inline-block;
   background-color: #ECF3D8;
   padding: 2px 12px;
}

#member__benefits .ttl-sub {
   font-weight: 700;
   padding-top: 30px;
}

#member__benefits .desc {
   padding-top: 30px;
}

#member__benefits .box-1 {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 40px;
   padding-top: 40px;
}

#member__benefits .box-1 .col {
   background-color: #F9FBF4;
   border-radius: 20px;
   padding: 30px 20px;
}

#member__benefits .box-1 h4 {
   font-weight: 700;
}

#member__benefits .box-1 .price {
   color: #6F827C;
   font-size: 18px;
   line-height: 26px;
   padding-top: 20px;
}

#member__benefits .box-1 .price span,
#member__benefits .box-1 .price small {
   display: inline-block;
   color: #333;
}

#member__benefits .box-1 .price span {
   padding: 5px 0;
}

#member__benefits .box-1 .price small {
   font-size: 16px;
}

#member__benefits .box-1 .btn-reserve {
   padding-top: 10px;
}

#member__benefits .box-1 .btn-reserve a {
   display: block;
   background-color: #7C7054;
   color: #fff;
   border-radius: 4px;
   text-align: center;
   font-size: 15px;
   line-height: 20px;
   padding: 5px;
}

#member__benefits .box-2 {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 30px;
   padding-top: 30px;
}

#member__benefits .box-2 li {
   background: linear-gradient(158deg, #F9FBF4 50%, #ECF3D8 50%);
   line-height: 37px;
   padding: 13px;
}

#member__benefits .table {
   overflow-x: auto;
   padding-top: 40px;
}

#member__benefits .table table {
   width: 100%;
   min-width: 680px;
   table-layout: fixed;
}

#member__benefits .table table th,
#member__benefits .table table td {
   background-color: #F9FBF4;
   border: 2px solid #D0D8AF;
   text-align: center;
   color: #515D2C;
   font-weight: 500;
   line-height: 25px;
   padding: 12px;
}

#member__benefits .table table th {
   background-color: #515D2C;
   color: #fff;
}

#member__benefits .txt {
   padding-top: 30px;
}

#member__benefits .txt p+p {
   padding-top: 20px;
}

@media screen and (max-width: 1440px) {
   #member__benefits .block {
      padding: 0 20px 50px;
   }

   #member__benefits hr {
      margin: 0 -20px 50px;
   }
}

@media screen and (max-width: 1200px) {
   #member__benefits .box-1 {
      gap: 20px;
   }

   #member__benefits .box-1 h4 {
      font-size: 17px;
   }
}

@media screen and (max-width: 767px) {
   #member__benefits .block {
      padding: 0 0 40px;
   }

   #member__benefits hr {
      margin: 0 0 40px;
   }

   #member__benefits .title {
      line-height: 2;
   }

   #member__benefits .title .en {
      font-size: 50px;
   }

   #member__benefits .box-1 {
      grid-template-columns: 1fr;
   }

   #member__benefits .box-2 {
      grid-template-columns: repeat(2, 1fr);
      gap: 10px;
   }

   #member__benefits .box-2 li {
      background: linear-gradient(148deg, #F9FBF4 50%, #ECF3D8 50%);
   }
}

/* -- -- */
#member__fee {
   margin-bottom: 80px;
   padding: 80px 0;
}

#member__fee .wrap {
   padding: 0 50px;
}

#member__fee h2 {
   padding-bottom: 40px;
}

#member__fee h2 span {
   display: inline-block;
   background-color: #ECF3D8;
   padding: 2px 12px;
}

#member__fee .block {
   width: 100%;
   overflow: auto hidden;
}

#member__fee .table {
   position: relative;
   margin-bottom: 30px;
   padding-left: 150px;
   box-sizing: border-box;
}

#member__fee .table:last-child {
   margin-bottom: 0;
}

#member__fee .table h3 {
   display: flex;
   justify-content: center;
   align-items: center;
   width: 150px;
   background-color: #515D2C;
   border: 2px solid #D0D8AF;
   border-right: 0;
   color: #fff;
   font-weight: 500;
   font-size: 15px;
   line-height: 21px;
   position: absolute;
   top: 0;
   bottom: 0;
   left: 0;
   box-sizing: border-box;
}

#member__fee .table:first-child h3 {
   top: 47px;
}

#member__fee table {
   width: 100%;
   min-width: 800px;
   table-layout: fixed;
}

#member__fee table th,
#member__fee table td {
   background-color: #fff;
   border: 2px solid #D0D8AF;
   color: #515D2C;
   font-weight: 500;
   font-size: 15px;
   line-height: 21px;
   padding: 12px 5px;
   text-align: center;
   vertical-align: mailform;
}

#member__fee table th:first-child,
#member__fee table td:first-child {
   width: 21%;
   text-align: left;
   padding: 12px;
}

#member__fee table th {
   background-color: #515D2C;
   color: #fff;
}

@media screen and (max-width: 1440px) {
   #member__fee .wrap {
      padding: 0;
   }
}

@media screen and (max-width: 767px) {
   #member__fee {
      padding-bottom: 40px;
      margin-bottom: 40px;
   }

   #member__fee .table {
      margin-bottom: 20px;
      padding-left: 120px;
   }

   #member__fee .table h3 {
      width: 120px;
   }

   #member__fee table th,
   #member__fee table td {
      font-size: 13px;
   }

   #member__fee table th:first-child,
   #member__fee table td:first-child {
      width: 17%;
   }
}

/*=============================================
 * 採用情報
 *=============================================*/
#recruit__message h2 {
   position: relative;
}

#recruit__message h2 .en {
   color: #ECF3D8;
   font-size: 76px;
   line-height: 162px;
}

#recruit__message h2 .sub {
   color: #6F827C;
   position: absolute;
   right: 0;
   bottom: 10px;
   left: 0;
}

#recruit__message .box {
   display: grid;
   grid-template-columns: 280px 1fr;
   align-items: center;
   gap: 40px;
   max-width: 1000px;
   padding-top: 50px;
}

#recruit__message .box+.box {
   margin-left: auto;
   padding-top: 70px;
}

#recruit__message .box h3 {
   font-weight: 500;
   padding-bottom: 20px;
   border-bottom: 2px dotted #237519;
}

#recruit__message .box h3 span {
   display: block;
   padding-top: 5px;
}

#recruit__message .box .txt {
   padding-top: 20px;
}

@media screen and (max-width: 767px) {
   #recruit__message h2 .en {
      font-size: 50px;
      line-height: 2.5;
   }

   #recruit__message h2 .sub {
      bottom: 0;
   }

   #recruit__message .box {
      grid-template-columns: 1fr;
      gap: 20px;
      padding-top: 30px;
   }

   #recruit__message .box+.box {
      padding-top: 50px;
   }
}

/* -- -- */
#recruit__application h2 {
   position: relative;
}

#recruit__application h2 .en {
   color: #ECF3D8;
   font-size: 76px;
   line-height: 162px;
}

#recruit__application h2 .sub {
   color: #6F827C;
   position: absolute;
   right: 0;
   bottom: 10px;
   left: 0;
}

#recruit__application .tb-style {
   padding-top: 50px;
}

#recruit__application .catch {
   display: grid;
   align-items: center;
   justify-content: center;
   color: #6F827C;
}

#recruit__application .catch span,
#recruit__application .catch img {
   grid-area: 1/1;
}

#recruit__application .catch img {
   max-width: 300px;
}

#recruit__application .catch span {
   position: relative;
   z-index: 1;
}

@media screen and (max-width: 767px) {
   #recruit__application h2 .en {
      font-size: 40px;
      line-height: 2.5;
   }

   #recruit__application h2 .sub {
      bottom: 0;
   }

   #recruit__application .tb-style {
      padding-top: 30px;
   }

   #recruit__application .catch img {
      max-width: 200px;
   }
}

/*=============================================
 * 当店について
 *=============================================*/
.page-id-100 section h2 {
   position: relative;
}

.page-id-100 section h2 .en {
   color: #ECF3D8;
   font-size: 76px;
   line-height: 162px;
}

.page-id-100 section h2 .sub {
   color: #6F827C;
   position: absolute;
   right: 0;
   bottom: 10px;
   left: 0;
}

@media screen and (max-width: 767px) {
   .page-id-100 section h2 .en {
      font-size: 50px;
      line-height: 2.5;
   }

   .page-id-100 section h2 .sub {
      bottom: 0;
   }
}

/* -- -- */
#philosophy h3 {
   padding-top: 50px;
}

#philosophy h3 span {
   display: inline-block;
   background-color: #ECF3D8;
   color: #333;
   font-weight: 700;
   letter-spacing: 0.05em;
   margin-bottom: 5px;
   padding: 2px 12px;
}

#philosophy .txt {
   line-height: 40px;
   padding-top: 40px;
}

#philosophy .box {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 35px;
   padding-top: 85px;
}

#philosophy .box dt {
   border-bottom: 1px solid #515D2C;
   padding-bottom: 20px;
   position: relative;
}

#philosophy .box dt .no {
   font-weight: 400;
   font-size: 100px;
   line-height: 1;
   position: absolute;
   bottom: -15px;
   left: 0;
   color: #F9FBF4;
   z-index: -1;
}

#philosophy .box dd {
   padding-top: 20px;
}

@media screen and (max-width: 767px) {
   #philosophy h3 {
      font-size: 22px;
      padding-top: 40px;
   }

   #philosophy .txt {
      line-height: 30px;
      padding-top: 20px;
   }

   #philosophy .box {
      grid-template-columns: 1fr;
      gap: 0;
      padding-top: 0;
   }

   #philosophy .box dl {
      padding-top: 40px;
   }
}

/* -- -- */
#greeting {
   background-repeat: no-repeat;
   background-position: center top;
   background-size: 1400px auto;
}

#greeting .box {
   display: grid;
   grid-template-columns: 280px 1fr;
   gap: 40px;
   padding-top: 50px;
}

#greeting .box figure img {
   border-radius: 30px;
}

#greeting .box figure figcaption {
   font-weight: 700;
   font-size: 15px;
   text-align: center;
   padding-top: 10px;
}

@media screen and (max-width: 767px) {
   #greeting .box {
      grid-template-columns: 1fr;
      gap: 30px;
      padding-top: 30px;
   }
}

/* -- -- */
#outline .box {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   padding-top: 50px;
}

#outline .box figure img {
   border-radius: 20px;
}

#outline .box .col {
   padding-left: 60px;
}

#outline .box h3 {
   width: 102px;
   border: 2px solid #237519;
   color: #237519;
   border-radius: 5px;
   text-align: center;
   padding: 2px 0 1px;
}

#outline .box .tb-style {
   line-height: 25px;
}

#outline .box .tb-style dl dt,
#outline .box .tb-style dl dd {
   padding: 15px 10px;
}

#outline .box .tb-style dl dt {
   width: 100px;
}

#outline .gmap {
   max-width: 1000px;
   height: 500px;
   border-radius: 30px;
   margin: 60px auto 0;
   overflow: hidden;
}

#outline .gmap iframe {
   display: block;
   width: 100%;
   height: 100%;
}

@media screen and (max-width: 1023px) {
   #outline .box {
      grid-template-columns: 1fr;
   }

   #outline .box .col {
      padding: 30px 0 0;
   }
}

@media screen and (max-width: 767px) {
   #outline .box {
      padding-top: 20px;
   }

   #outline .box .tb-style dl dt,
   #outline .box .tb-style dl dd {
      padding: 15px 0;
   }

   #outline .gmap {
      height: 300px;
      margin-top: 30px;
   }
}

/*=============================================
 * オンライン予約
 *=============================================*/
#online__lead h2 span {
   display: inline-block;
   background-color: #ECF3D8;
   font-weight: 700;
   letter-spacing: 0.05em;
   padding: 2px 12px;
}

#online__lead .txt {
   max-width: 1000px;
   line-height: 40px;
   text-align: center;
   margin: 0 auto;
   padding-top: 40px;
}

#online__lead .calendar {
   height: 600px;
   background-color: #F9FBF4;
   border: 1px solid #707070;
   margin-top: 60px;
}

#online__lead .calendar iframe {
   display: block;
   width: 100%;
   height: 100%;
}

@media screen and (max-width: 767px) {
   #online__lead .txt {
      text-align: justify;
      line-height: 30px;
      padding-top: 20px;
   }

   #online__lead .calendar {
      height: 300px;
      margin-top: 40px;
   }
}

/* -- -- */
/*=============================================
 * 取り扱い商品
 *=============================================*/
#product h2 span {
   display: inline-block;
   background-color: #ECF3D8;
   font-weight: 700;
   letter-spacing: 0.05em;
   padding: 2px 12px;
}

#product .desc {
   max-width: 1000px;
   line-height: 40px;
   text-align: center;
   margin: 0 auto;
   padding-top: 40px;
}

#product .list-btn {
   display: grid;
   grid-template-columns: repeat(3, 280px);
   justify-content: center;
   gap: 10px 20px;
   padding-top: 40px;
}

#product .list-btn a {
   display: flex;
   justify-content: space-between;
   align-items: center;
   height: 70px;
   border-radius: 10px;
   box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
   padding: 0 20px;
}

#product .list-btn a:after {
   content: '';
   width: 20px;
   height: 20px;
   background: url("../img/common/icon-circle-down.svg") no-repeat center top/cover;
   display: block;
}

#product .list-btn a:hover {
   background-color: #D0D8AF;
   opacity: 1;
}

#product .block {
   padding-top: 80px;
}

#product .block h3 {
   background-color: #D0D8AF;
   border-radius: 6px;
   padding: 13px 10px;
}

#product .box {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 30px 40px;
   padding-top: 40px;
}

#product .box .item {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   align-items: center;
   gap: 20px;
}

#product .box figure img {
   border-radius: 10px;
}

#product .box h4 {
   border-bottom: 1px solid #6F827C;
   padding-bottom: 10px;
}

#product .box .txt {
   font-size: 15px;
   line-height: 21px;
   padding-top: 10px;
}

#product .box .price {
   line-height: 25px;
   padding-top: 5px;
}

#product .box .period {
   color: #237519;
   padding-top: 5px;
}

@media screen and (max-width: 1023px) {
   #product .list-btn {
      grid-template-columns: repeat(3, 1fr);
   }

   #product .box {
      grid-template-columns: 1fr;
   }

   #product .box .item {
      grid-template-columns: 280px 1fr;
   }
}

@media screen and (max-width: 767px) {
   #product .desc {
      text-align: justify;
      line-height: 30px;
      padding-top: 20px;
   }

   #product .list-btn {
      grid-template-columns: repeat(2, 1fr);
      gap: 10px;
   }

   #product .list-btn a {
      height: 50px;
      padding: 0 10px;
   }

   #product .block {
      padding-top: 40px;
   }

   #product .box {
      padding-top: 20px;
   }

   #product .box .item {
      grid-template-columns: 1fr;
   }

   #product .box figure {
      text-align: center;
   }
}

/*=============================================
 * Contact
 *=============================================*/
.mailform {
   padding-bottom: 100px;
}

.mailform__block {
   padding: 0 50px;
}

.mailform__title {
   line-height: 26px;
   border-left: 4px solid #237519;
   padding-left: 10px;
}

.mailform__desc {
   padding-top: 30px;
}

.mailform__tel {
   max-width: max-content;
   text-align: center;
   padding-top: 20px;
}

.mailform__tel time {
   display: block;
   font-size: 15px;
   line-height: 21px;
}

.mailform__tel a {
   display: inline-block;
   background: url("../img/common/icon-tel.png") no-repeat center left/30px auto;
   font-weight: 400;
   font-size: 36px;
   line-height: 49px;
   margin-top: 4px;
   padding-left: 40px;
}

.mailform hr {
   border-top: 1px solid #6F827C;
   margin: 50px 0;
}

.mailform__wrap {
   font-size: 16px;
   line-height: 24px;
   padding-top: 20px;
}

.mailform .form-row {
   background-color: #fff;
   border-radius: 10px;
   margin-bottom: 10px;
   padding: 20px 30px;
}

.mailform .form-row .caption {
   display: flex;
   align-items: center;
   gap: 6px;
}

.mailform .form-row .required,
.mailform .form-row .non {
   display: block;
   width: 46px;
   color: #fff;
   font-size: 12px;
   line-height: 24px;
   text-align: center;
   border-radius: 30px;
}

.mailform .form-row .required {
   background-color: #E1344C;
}

.mailform .form-row .non {
   background-color: #777;
}

.mailform .form-row .input {
   padding-top: 10px;
}

.mailform__privacy {
   margin: 40px auto 0;
   background-color: #fff;
   border: 1px solid #D9D9D9;
   padding: 15px 0;
}

.mailform__privacy .privacy-content {
   height: 300px;
   overflow-y: auto;
   padding: 0 40px;
}

.mailform__privacy .privacy-content p+p {
   padding-top: 30px;
}

.mailform__check {
   padding-top: 30px;
   text-align: center;
}

.mailform__check .wpcf7-checkbox {
   align-items: center;
}

.mailform .result_txt {
   display: block;
   word-break: break-all;
   white-space: pre-wrap;
}

.mailform__btn {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 20px;
   padding-top: 60px;
}

.mailform__btn p {
   display: inline-flex;
   justify-content: center;
   align-items: center;
   width: 320px;
   height: 60px;
   background: #ECF3D8;
   border: 0px solid #ECF3D8;
   color: #333;
   font-weight: 500;
   font-size: 17px;
   letter-spacing: 0;
   line-height: 34px;
   text-align: center;
   box-sizing: border-box;
   margin: 0;
   padding: 0;
   position: relative;
   z-index: 1;
   transition: all 0.3s;
   border-radius: 50px;
}

.mailform__btn p:after {
   font-family: "Font Awesome 6 Free";
   font-weight: 900;
   font-size: 15px;
   line-height: 1;
   letter-spacing: 0;
   position: absolute;
   top: 50%;
   right: 15px;
   transform: translateY(-50%);
}

.mailform__btn p:hover {
   background-color: #ccc;
}

.mailform__btn input,
.mailform__btn a {
   display: block;
   width: 100%;
   height: 100%;
   opacity: 0;
   position: absolute;
   top: 0;
   left: 0;
   cursor: pointer;
}

.mailform__btn .btn-prev {
   background: #ccc;
}

.mailform .wpcf7-spinner {
   display: none;
}

.mailform.confirm .form-row .input {
   padding: 7px 20px;
}

.mailform.thanks .txt {
   padding-top: 40px;
}

.mailform.thanks .txt p+p {
   padding-top: 30px;
}

.mailform.thanks .button {
   padding-top: 30px;
}

@media screen and (max-width: 767px) {
   .mailform {
      padding-bottom: 50px;
   }

   .mailform__block {
      padding: 0;
   }

   .mailform__tel time {
      font-size: 14px;
   }

   .mailform .form-row {
      padding: 20px 10px;
   }

   .mailform .form-row .h-adr {
      gap: 10px;
   }

   .mailform .form-row .h-adr .col-50 {
      width: 100%;
   }

   .mailform__privacy {
      padding: 20px 0;
   }

   .mailform__privacy .privacy-content {
      padding: 0 20px;
   }

   .mailform__check {
      padding-top: 20px;
   }

   .mailform__btn {
      flex-direction: column;
      gap: 20px;
      padding-top: 40px;
   }

   .mailform__btn p {
      width: 100%;
   }

   .mailform.confirm .form-row .input {
      padding: 7px 10px;
   }

   .mailform.thanks .txt {
      text-align: justify;
      padding-top: 20px;
   }

   .mailform.thanks .txt p+p {
      padding-top: 20px;
   }

   .mailform.thanks .button {
      padding-top: 20px;
   }
}

/*=============================================
 * Post Type
*=============================================*/
.wp-pagenavi {
   display: flex;
   align-items: center;
   justify-content: center;
   flex-wrap: wrap;
   gap: 10px;
   padding-top: 80px;
}

.wp-pagenavi .pages {
   display: none;
}

.wp-pagenavi span,
.wp-pagenavi a {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 30px;
   height: 30px;
   background-color: #fff;
   color: #333;
   border: 1px solid #7C7054;
   text-align: center;
   font-weight: 500;
   font-size: 14px;
   line-height: 21px;
   letter-spacing: 0;
   box-sizing: border-box;
   border-radius: 50%;
   padding-bottom: 2px;
}

.wp-pagenavi a:hover {
   background-color: #7C7054;
   color: #fff;
   opacity: 1;
}

.wp-pagenavi .current {
   pointer-events: none;
   background-color: #7C7054;
   color: #fff;
}

@media screen and (max-width: 767px) {
   .wp-pagenavi {
      gap: 5px;
      padding-top: 40px;
   }
}

/* -- -- */
.postype {
   padding-bottom: 100px;
}

.postype__sidebar {
   font-size: 18px;
   line-height: 26px;
}

.postype__sidebar a {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   background-color: #7C7054;
   color: #fff;
   width: 160px;
   padding: 7px 10px;
   border-radius: 2px;
}

.postype__sidebar a:hover,
.postype__sidebar a.current {
   background-color: #D3C4A5;
   opacity: 1;
}

.postype__list {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 60px 80px;
   max-width: 1120px;
   margin: 0 auto;
   padding-top: 70px;
}

.postype__list figure a {
   display: block;
   padding-top: 66.5%;
   position: relative;
   border-radius: 20px;
}

.postype__list figure a img {
   position: absolute;
   top: 0;
   left: 0;
}

.postype__list .text {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 10px 15px;
   padding-top: 10px;
}

.postype__list time {
   font-size: 14px;
   line-height: 20px;
   color: #707070;
}

.postype__list .cat {
   font-size: 12px;
   line-height: 17px;
}

.postype__list .cat a {
   display: inline-flex;
   background-color: #7C7054;
   color: #fff;
   border-radius: 2px;
   padding: 3px 10px;
}

.postype__list .cat a:hover {
   background-color: #D3C4A5;
   opacity: 1;
}

.postype__list .ttl {
   line-height: 25px;
}

.postype__list .ttl a {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 3;
   display: -webkit-box;
   overflow: hidden;
}

.postype--archive .postype__sidebar ul {
   display: flex;
   justify-content: center;
   align-items: center;
   flex-wrap: wrap;
   gap: 20px;
}

@media screen and (max-width: 1023px) {
   .postype__list {
      gap: 60px 40px;
   }
}

@media screen and (max-width: 767px) {
   .postype {
      padding-bottom: 50px;
   }

   .postype__list {
      grid-template-columns: 1fr;
      padding-top: 40px;
   }

   .postype__sidebar {
      font-size: 15px;
   }

   .postype--archive .postype__sidebar ul {
      justify-content: flex-start;
      gap: 10px;
   }

   .postype--archive .postype__sidebar ul li {
      width: calc(50% - 5px);
   }

   .postype--archive .postype__sidebar a {
      width: 100%;
      box-sizing: border-box;
   }
}

/*=============================================
 * Post Detail
 *=============================================*/
.postype--details .wrap {
   display: flex;
   flex-direction: row-reverse;
   justify-content: space-between;
   gap: 120px;
}

.postype--details .postype__sidebar ul li+li {
   padding-top: 10px;
}

.postype--details .postype__contents {
   width: 900px;
}

.postype--details .featured_img {
   text-align: center;
   padding-bottom: 12px;
}

.postype--details time {
   display: block;
   font-size: 14px;
   line-height: 20px;
   border-bottom: 2px solid #ccc;
   padding: 10px 0;
}

.postype--details .cate {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   font-size: 12px;
   line-height: 17px;
}

.postype--details .cate a {
   display: inline-block;
   background-color: #7C7054;
   color: #fff;
   border-radius: 2px;
   padding: 3px 10px;
}

.postype--details .cate a:hover {
   background-color: #D3C4A5;
   opacity: 1;
}

.postype__title--details {
   padding-top: 10px;
}

.postype__content--details {
   font-size: 16px;
   line-height: 32px;
   padding-top: 30px;
}

.postype__content--details>*:not(h2, h3) {
   margin: 0 50px;
}

.postype__content--details h2 {
   background-color: #F9FBF4;
   font-weight: 500;
   font-size: 26px;
   letter-spacing: 0;
   line-height: 36px;
   padding: 12px 22px;
   margin-top: 50px;
   margin-bottom: 20px;
   border-left: 8px solid #237519;
}

.postype__content--details h3 {
   font-weight: 500;
   font-size: 22px;
   letter-spacing: 0;
   line-height: 30px;
   border-bottom: 2px solid #237519;
   border-left: 5px solid #237519;
   padding: 0 10px 6px;
   margin: 50px 25px 20px;
   box-sizing: border-box;
}

.postype__content--details h4 {
   font-weight: 500;
   font-size: 18px;
   letter-spacing: 0;
   line-height: 26px;
   margin: 50px 0 20px;
   border-left: 5px solid #237519;
}

.postype__content--details mark {
   background-color: #FFF6A8;
}

.postype__content--details h2+h3,
.postype__content--details h2+h4,
.postype__content--details h3+h4 {
   margin-top: 0;
}

.postype__content--details p img {
   display: inline-block;
   vertical-align: top;
   margin-right: 10px;
}

.postype__content--details p img.aligncenter {
   display: block;
   margin: 0 auto;
}

.postype__content--details p img.alignright {
   display: block;
   margin-left: auto;
}

.postype__content--details p img:last-child {
   margin-right: 0;
}

.postype__btn--details {
   display: flex;
   justify-content: center;
   align-items: center;
   flex-wrap: wrap;
   gap: 10px;
   font-weight: 500;
   font-size: 14px;
   line-height: 21px;
   padding-top: 60px;
}

.postype__btn--details a {
   display: block;
   background-color: #fff;
   border: 1px solid #7C7054;
   color: #333;
   padding: 4px 7px 3px;
   border-radius: 60px;
   text-align: center;
}

.postype__btn--details a:hover {
   background-color: #7C7054;
   color: #fff;
   opacity: 1;
}

.postype__btn--details .prev,
.postype__btn--details .next {
   min-width: 30px;
}

.postype--details #ez-toc-container {
   background-color: #fff;
   padding: 0;
   margin-top: 30px;
}

.postype--details #ez-toc-container .ez-toc-title-container {
   display: flex;
   align-items: baseline;
   background-color: #277455;
   border: 1px solid #277455;
   color: #fff;
   padding: 13px 20px;
   box-sizing: border-box;
}

.postype--details #ez-toc-container .ez-toc-title-container .ez-toc-title {
   color: #fff;
   font-family: "Rubik", sans-serif;
   font-weight: 500;
   font-size: 20px;
   line-height: 30px;
   background: url("../img/common/toc-title-deco.png") no-repeat center left/20px auto;
   padding-left: 30px;
   float: none;
}

.postype--details #ez-toc-container .ez-toc-title-container a.ez-toc-toggle {
   color: #fff;
   margin: 0;
   padding: 0;
   float: none !important;
}

.postype--details #ez-toc-container .ez-toc-title-container a.ez-toc-toggle:hover {
   text-decoration: none;
}

.postype--details #ez-toc-container .ez-toc-title-container .ez-toc-js-icon-con {
   width: auto;
   height: auto;
   color: #fff;
   font-weight: 500;
   font-size: 13px;
   letter-spacing: 0.1em;
   line-height: 20px;
   border: 0;
   float: none;
   left: 0;
}

.postype--details #ez-toc-container .ez-toc-title-container .ez-toc-js-icon-con:before {
   content: '【非表示にする】';
}

.postype--details #ez-toc-container .ez-toc-title-container .ez-toc-js-icon-con span {
   display: none;
}

.postype--details #ez-toc-container nav {
   background-color: #F9F9F9;
   border: 2px solid #277455;
   padding: 16px 30px;
}

.postype--details #ez-toc-container ul.ez-toc-list {
   font-weight: 500;
   font-size: 16px;
   line-height: 24px;
}

.postype--details #ez-toc-container ul.ez-toc-list a {
   font-size: inherit;
}

.postype--details #ez-toc-container ul.ez-toc-list a:before {
   font-size: 15px;
}

.postype--details #ez-toc-container ul.ez-toc-list>li {
   padding-bottom: 10px;
   padding-left: 15px;
   position: relative;
}

.postype--details #ez-toc-container ul.ez-toc-list>li:before {
   content: '\f0da';
   font-family: "Font Awesome 6 Free";
   font-weight: 900;
   font-size: 16px;
   line-height: 1;
   position: absolute;
   top: 5px;
   left: 0;
   color: #000;
}

.postype--details #ez-toc-container ul.ez-toc-list>li+li {
   border-top: 1px dashed #277455;
   padding-top: 10px;
}

.postype--details #ez-toc-container ul.ez-toc-list>li+li:before {
   top: 15px;
}

.postype--details #ez-toc-container ul.ez-toc-list li {
   font-size: inherit;
}

.postype--details #ez-toc-container ul.ez-toc-list li a {
   color: #333;
}

.postype--details #ez-toc-container ul.ez-toc-list li a:before {
   color: #9A9696;
   margin-right: 5px;
}

.postype--details #ez-toc-container ul.ez-toc-list ul {
   margin-left: 10px;
}

.postype--details #ez-toc-container ul.ez-toc-list ul li {
   padding-top: 5px;
}

@media screen and (max-width: 1440px) {
   .postype--details .wrap {
      gap: 40px;
   }

   .postype--details .postype__contents {
      width: calc(100% - 220px);
   }
}

@media screen and (max-width: 1200px) {
   .postype__content--details p img {
      display: block;
      margin: 0 auto 15px;
   }

   .postype__content--details p img:last-child {
      margin: 0 auto;
   }
}

@media screen and (max-width: 767px) {
   .postype--details .wrap {
      flex-direction: column;
      align-items: center;
   }

   .postype--details .postype__sidebar {
      width: 100%;
      text-align: center;
   }

   .postype--details .postype__sidebar ul {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 10px;
   }

   .postype--details .postype__sidebar ul li+li {
      padding-top: 0;
   }

   .postype--details .postype__sidebar ul a {
      width: 100%;
      max-width: 180px;
      box-sizing: border-box;
   }

   .postype--details .postype__contents {
      width: 100%;
   }

   .postype--details .cate {
      font-size: 10px;
      line-height: 13px;
   }

   .postype--details .cate a {
      padding: 3px 10px;
   }

   .postype__content--details {
      font-size: 13px;
      line-height: 20px;
   }

   .postype__content--details>*:not(h2, h3) {
      margin: 0 20px;
   }

   .postype__content--details h2 {
      font-size: 20px;
      line-height: 26px;
      padding: 10px 15px;
   }

   .postype__content--details h3 {
      font-size: 18px;
      line-height: 26px;
      margin: 20px 10px;
   }

   .postype__content--details h4 {
      font-size: 16px;
      line-height: 26px;
   }

   .postype__content--details p img {
      display: block;
      margin: 0 auto 15px;
   }

   .postype__content--details p img.alignright {
      margin: 0 auto 15px;
   }

   .postype__content--details p img:last-child {
      margin: 0 auto !important;
   }

   .postype__btn--details {
      padding-top: 40px;
   }

   .postype--details #ez-toc-container nav {
      padding: 16px;
   }

   .postype--details #ez-toc-container ul.ez-toc-list {
      font-size: 14px;
      line-height: 20px;
   }

   .postype--details #ez-toc-container ul.ez-toc-list>li:before {
      top: 4px;
   }

   .postype--details #ez-toc-container ul.ez-toc-list>li+li:before {
      top: 14px;
   }
}

/* -- -- */
.postype__gallery {
   padding: 30px 20px 0;
}

.postype__gallery .gallery-slider .swiper-slide p {
   width: 100%;
   padding-top: 56.25%;
   position: relative;
}

.postype__gallery .gallery-slider .swiper-slide p span {
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
}

.postype__gallery .gallery-slider .swiper-slide p span.img_short {
   background-size: cover !important;
}

.postype__gallery .gallery-slider .swiper-slide p span.img_long {
   background-size: auto 100% !important;
}

.postype__gallery .gallery-slider .swiper-slide p img {
   display: block;
   width: auto;
   height: auto;
   max-height: 100%;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
}

.postype__gallery .gallery-thumbs {
   margin: 30px 0 0;
   padding: 0 45px;
   position: relative;
}

.postype__gallery .gallery-thumbs .swiper-slide {
   width: 25%;
   box-sizing: border-box;
   padding: 0 5px;
   cursor: pointer;
}

.postype__gallery .gallery-thumbs .swiper-slide p {
   width: 100%;
   padding-top: 56.25%;
   position: relative;
}

.postype__gallery .gallery-thumbs .swiper-slide p:after {
   content: '';
   width: 100%;
   height: 100%;
   background-color: rgba(51, 51, 51, 0.7);
   position: absolute;
   top: 0;
   left: 0;
   transition: all 0.3s;
}

.postype__gallery .gallery-thumbs .swiper-slide.swiper-slide-thumb-active p:after {
   opacity: 0;
}

.postype__gallery .gallery-thumbs .swiper-slide p span {
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
}

.postype__gallery .gallery-thumbs .swiper-button {
   width: 30px;
   height: 100%;
   border: 0;
   overflow: hidden;
   text-indent: -999px;
   cursor: pointer;
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   z-index: 1;
}

.postype__gallery .gallery-thumbs .swiper-button:before {
   content: '';
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
}

.postype__gallery .gallery-thumbs .swiper-button.swiper-prev {
   left: 0;
}

.postype__gallery .gallery-thumbs .swiper-button.swiper-prev:before {
   background: #333 url("../img/common/slider-prev.svg") no-repeat center left/100% auto;
}

.postype__gallery .gallery-thumbs .swiper-button.swiper-next {
   right: 0;
}

.postype__gallery .gallery-thumbs .swiper-button.swiper-next:before {
   background: #333 url("../img/common/slider-next.svg") no-repeat center right/100% auto;
}

@media screen and (max-width: 767px) {
   .postype__gallery {
      padding: 20px 10px 0;
   }

   .postype__gallery .gallery-thumbs {
      margin: 10px 0 0;
      padding: 0 25px;
   }

   .postype__gallery .gallery-thumbs .swiper-slide {
      width: 50%;
   }

   .postype__gallery .gallery-thumbs .swiper-button {
      width: 20px;
      height: 60px;
   }
}