@charset "utf-8";

/*common*/
main {
  min-height: 300px;
  margin-bottom:calc(180px + 20vh);
}
.main_con{
  margin-top:clamp(45px, 39.718px + 1.408vw, 60px) ;
}/*
 * 1. 基本スタイルとレスポンシブ設定
 */
.wave-container {
    /* 絶対配置で波を配置 */
    position: absolute;
    /* 波の表示幅と高さをビューポート基準で設定 */
    /* width: 100% とすると、斜めにしたとき画面からはみ出すため、大きく設定します */
    width: 200vw; 
    height: 40vh; /* 画面の高さの40%を波のエリアとする */
    overflow: hidden;
    pointer-events: none;
    z-index: 10;
    /* 斜めの起点（デフォルトは中央）を設定。ここでは左上を起点とします */
    transform-origin: top left;
}

.wave-container svg {
    /* SVG自体はコンテナの100%を使用 */
    width: 100%;
    height: 100%;
}

/*
 * 2. 個別の波の配置、角度、Z-index、色の設定
 */

/* ============================ 1. 左上から右下へ流れる波 ============================ */
.top-wave {
    top:calc(85px + 30vh);
    left: 0;
    right: 0;
    z-index: 12;
    transform: scaleY(-1) rotate(8deg);
}
.top-wave .top-border{
  left: 0;
  position: absolute;
}
/* ============================ 2. 中央の水平に近い波 ============================ */
.middle-wave {
    /* 画面の中央付近に配置 */
    bottom: -20vh;
    right: 0;
    z-index: 11;
    /* わずかに斜めにする */
    transform: rotate(-2deg); 
}
.middle-wave .bottom-border{
   right: 0;
  position: absolute;
}

/* ============================ 3. 右下から左上へ流れる波 ============================ */
.bottom-wave {
    /* 画面の下部（垂直位置70%）に配置 */
    top: 70vh; 
    left: 5vw; 
    z-index: 10; 
    
    /* 左斜め上方向へ回転 */
    transform: rotate(-8deg); 
}

@media (min-width: 1281px){ 
.top-wave {
    top:calc(85px + 25vh);
}
}
@media (max-width: 1280px)and (min-width: 768px){ 
.top-wave {
    top:calc(100px + 30vh);
}
}
@media (max-width: 767px){ 
.wave-container {
    width: 250vw;
    height: 30vh;
}
.top-wave {
    top:calc(90px + 15vh);
    transform: scaleY(-1) rotate(12deg); 
}
.bottom-wave {
        top: 60vh;
        transform: rotate(-10deg); 
}
.middle-wave {
    bottom: -23vh; 
    transform: rotate(-5deg);
}
}
.page-side-menu{
  padding: 10px 5px;
  box-shadow: 0 1px 3px rgb(51 51 51 / 25%);
  border-radius: 0 15px 15px 0;
  background: var(--con-back-color);
  z-index: 50;
}
.page-side-menu.side-menu_fixed{
  position: fixed;
}
.page-side-menu .headline{
  text-align: center;
    margin-bottom: 0;
  color: var(--text-color-linghtbrown);
}
.page-side-menu ul{
  margin-top: 15px;
}
.page-side-menu ul li {
  border-bottom: solid 1px #fff;
  padding: 10px;
}
.page-side-menu  a{
  display: block;
}
.main_con:not(#top){
  position: relative;
}
@media (max-width: 1660px) and (min-width: 1081px){
  .main_con:not(#top) article,.main_con:not(#top) h2{
   width:calc(100% - 250px);
   margin: 0 0 60px auto;
}
}
@media (min-width: 1081px){
  .page-side-menu{
  width: 250px;
  position: absolute;
  left: 0;
  top: 1em;
  }
}
@media (max-width: 1080px) {
 .page-side-menu:not(.side-menu_fixed){
  width: calc(100% - 5%);
  margin: 0 auto 45px;
  border-radius:15px;
}
.page-side-menu{
  font-size: .7em;
}
.page-side-menu .tab-open{
  position: absolute;
  right: 35px;
  top: 20px;
}
.page-side-menu .tab-open:after{
  content:"";
  display:block;
  width:8px;
  height:8px;
  border-top: var(--line-color-blackbrown) 1px solid;
  border-right: var(--line-color-blackbrown)  1px solid;
  -webkit-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  position:absolute;
  right: 2%;
  top: 0;
  bottom: 15%;
  margin: auto;
}
.page-side-menu .tab-open.is-active:after{
 content:"";
  display:block;
  width:8px;
  height:8px;
  border-top: var(--line-color-blackbrown) 1px solid;
  border-right: var(--line-color-blackbrown) 1px solid;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
  position:absolute;
  right: 2%;
  top: 7%;
  bottom: 0;
  margin: auto;
}
.page-side-menu.side-menu_fixed{
  width: 150px;
  left: 0;
  top: 1em;
  border-radius: 0px 15px 15px 0px;
}
.page-side-menu .tab-btns{
display: none;
}
html:not(.scroll_prevent) .page-side-menu{
  z-index: 1100;
}
}
section{
  margin: 0 auto clamp(60px, 32.727px + 7.273vw, 120px) auto;
  width: 100%;
}
article.art_con,.art_post{
  width: 100%;
  padding: 0 2.5%;
  max-width:var(--max-width-1200);
  margin: 0 auto 60px auto;
}
footer .footer_info{
  width: 100%;
  padding:3% 2.5%;
  max-width:var(--max-width-1200);
  margin: 0 auto 60px auto;
}
.div_h1{
height: 60vh;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
position: relative;
z-index: 1;
}

.div_h1 h1{
display: flex;
justify-content: center;
align-items: center;
text-align: center;
font-weight: 400;
}
h2{
margin: 0 auto 60px;
}
h2:not(.h2_nost){
  font-weight: var(--font-weight-bold);
  margin: 0 auto clamp(30px, 23.182px + 1.818vw, 45px);
  font-size: var(--h2-font-size);
  letter-spacing: 0.1em;
  max-width:var(--max-width-1200);
  width: 100%;
  padding: 0 2.5%;
}
h2:not(.h2_nost) span{
  position: relative;
  color: var(--text-color-linghtbrown);
  font-size: var(--body-font-size-16);
  display: block;
  margin-bottom: 15px;
}
h2:not(.h2_nost) span::after {
  content:'';
  position: absolute;
  width: 40px;
  left: 0;
  bottom: 0;
  height: 2px;
  background: var(--line-color-linghtbrown);
}

h3:not(.h3_nost) {
  font-size: var(--h3-font-size);
  font-weight: var(--font-weight-medium);
  margin-bottom: clamp(30px, 23.182px + 1.818vw, 45px);
  position: relative;
  width: 100%;
}
h3.h3_st01{
  text-align: center;
}
h3.h3_st02{
  padding: 10px 0;
}
:is(h3.h3_st02,h3.h3_st03,h3.h3_st04)::after,h3.h3_st02::before{
  content:'';
  position: absolute;
  left: 0;
  width: 60px;
  height: 1px;
  background: var(--line-color-blackbrown);
}
h3.h3_st04:after{
  width: 100%;
}
h3.h3_st02::before{
  top: 0;
}
:is(h3.h3_st02,h3.h3_st03,h3.h3_st04)::after{
  bottom: 0;
}
.div_h4{
  margin:clamp(30px, 23.182px + 1.818vw, 45px) auto;
  width: 100%;
}
.div_h4 h4{
  font-size: var(--h4-font-size);
  font-weight: var(--font-weight-medium);
  margin-bottom: 15px;
}
.div_h4:not(.st01,.st02) h4{
    /* letter-spacing: 0.11em; */
    margin-left: 4px;
    margin-bottom:30px;
    padding-left: 16px;
    border-left: solid 5px var(--line-color-linghtbrown);
}
.div_h4.st01{
  background: var(--con-back-color);
  padding: 10px;
  border: solid 1px var(--line-color-blackbrown);
}
.div_h4.st01 h4{
  border-bottom: solid 1px var(--line-color-blackbrown);
  padding-bottom: 5px;
}
.div_h4.st02{
  border: solid 10px var(--con-back-color);
  padding: 15px;
  background: #fff;
}
.div_h4.st02 h4{
  text-align: center;
}


.text_st01 {
  font-size: 1.2rem;
  text-decoration: underline;
  font-weight: 600;
}
.text_st02 {
  color: #BB8D64;
  font-weight: 600;
}
.text_st03 {
  color: 	#BD585A;
  padding: 0 0.1em;
  font-weight: 600;
}
.text_st04{
  display: inline-block;
  padding: 5px 5%;
  border: solid 1px #F9F0E2;
  background: #FDFBF8;
  font-size:var(--body-font-size-18);
  font-weight: 600;
}
.text_notice01 {
  color:var(--light-grey);
  font-size: 0.8em;
}
.main-text,.text_st04 {
  font-family: var(--min-font-family);font-weight: bold;
}
.div_memo,.p_memo{
    width: 100%;
  padding:3% 2.5%;
  max-width:var(--max-width-1200);
  margin: 0 auto 60px auto;
      display: block;
    margin: 2rem auto;
    background-color: #9c3b3b;
    color: #fff;
    padding: 1.75rem 2rem;
    box-shadow: 0 3px 6px rgb(51 51 51 / 25%);
    font-size: 14px;
}
.div_box01 {
  width: 100%;
  border: 1px solid #E7D3C1;
  margin: 1rem auto;
  padding: 1rem;
}
.div_box01 .headline {
  padding-bottom: 5px;
  font-weight: 600;
  border-bottom: 1px solid #E7D3C1;
}
.div_box02 {
width: 100%;
    display: block;
    margin: 2rem auto;
    background-color: #fff;
    padding: 1.75rem 2rem;
    box-shadow: 0 3px 6px rgb(51 51 51 / 25%);
}
.div_box02.news {
  padding: 20px 40px 40px;
  margin-bottom: 0;
  max-width: 1000px;
}
.div_box02.news .headline {
  border-bottom: 1px solid #E7D3C1;
  padding-bottom: 0.9rem;
  margin-bottom: 20px;
}
.div_box02.news p.text_st02 {
  margin: 0 4px;
}
.div_box03 {
  width: 100%;
  margin: 1rem auto;
  padding: 1rem;
  background-color: #F8F2ED;
}
.link01,.link02,.link03,.link05,.link_tel{
  position: relative;
  font-family: var(--min-font-family);font-weight: 600;
font-weight: normal;
}
.link01{
  border-bottom: solid 1px #FFFFFF;
  font-size: var(--body-font-size-16);
  display: inline-block;
box-sizing: border-box;
padding: 15px 25px;
background:var(--link-color-gradient-pink);
background-size: 200% 100%;
transition: .3s cubic-bezier(0.45, 0, 0.55, 1);
min-width: 250px;
max-width: 280px;
text-align: center;
position: relative;
width: 100%;
border: 1px solid #FFFFFF;
border-radius: 10px;
}
.link01:hover{
background-size:100% 150%;
}
.link01.map:after{
  content: "";
  position: absolute;
  width: 23px;
  height: 34px;
  top: 10px;
  transform:var(--transform-50-Y);
  right: 0;
  background:url(../img/common/ic_googlemap.svg) no-repeat;
  background-size: contain;
}
.link02,#sec_treatmenu .ul_menu li a{
box-sizing: border-box;
background: var(--gradient-brown-color);
border: 1px solid var(--line-color-linghtbrown);
border-radius: 10px;
min-width: 250px;
padding: 15px 40px 15px 15px;
display: inline-block;
position: relative;
transition: .5s cubic-bezier(0.45, 0, 0.55, 1);
background-size: 200% 100%;

}

.link02::after,#sec_treatmenu .ul_menu li a:after{
  content: '';
  width: 6px;
  height: 6px;
  position: absolute;
  top: 50%;
  right: 18px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg) translateX(-70%);
}
.link02:not(.pdf):not(.map):not(.blank):before,#sec_treatmenu .ul_menu li a:before{
  content: '';
  width: 25px;
  height: 25px;
  position: absolute;
  top: 50%;
  right: 10px;
  background: var(--line-color-linghtbrown);
  border-radius: 50%;
  transform:var(--transform-50-Y);
}
.link02:hover,#sec_treatmenu .ul_menu li a:hover{
   color:var(--text-color);
  border: 1px solid var(--con-back-color-brown);
  background-position: 100% 0;
  transform: translateY(-2px);
  background: var(--con-back-color);
}
.link02.pdf::after {
  width: 20px;
  height: 20px;
  background:url(../img/common/ic_link-pdf.svg) no-repeat;
  background-size: contain;
  transform:var(--transform-50-Y);
}
.blank:after{
  content: '';
  width: 18px;
  height: 18px;
  background:url(../img/common/ic_link-blank.svg) no-repeat;
  background-size: contain;
   transform:var(--transform-50-Y);
   right:5px;
   top: 50%;
   position: absolute;
}
.link02.map,.link02.insta,.link02.pdf{
 padding: 15px 40px 15px 45px;
}
.link02.insta::before,.link01.insta::before{
  content: '';
  position: absolute;
  top: 50%;
  left: 7%;
  width: 20px;
  height: 20px;
  background:url(../img/common/ic_link-pdf.svg) no-repeat;
  background-size: contain;
  transform:var(--transform-50-Y);
}
.link02.map::before{
  content: '';
  width: 25px;
  height: 25px;
  position: absolute;
  top: 50%;
  left: 7%;
  background:url(../img/common/ic_map.svg) no-repeat;
  transform:var(--transform-50-Y);
}
.blank:after{
  content: '';
  width: 18px;
  height: 18px;
  background:url(../img/common/ic_link-blank.svg) no-repeat;
  background-size: contain;
   transform:var(--transform-50-Y);
   right:5px;
   top: 50%;
   position: absolute;
}
.link03,.page-side-menu a{
padding: 0px 25px 0px 0px;
position: relative;
transition: .5s cubic-bezier(0.45, 0, 0.55, 1);
}
.link03:after,.page-side-menu a::after{
  content: '';
  width: 18px;
  height: 18px;
  background:url(../img/common/ic_link-down.svg) no-repeat;
  background-size: contain;
   transform:var(--transform-50-Y);
   right:5px;
   top: 50%;
   position: absolute;
}
.link04 {
  padding: 0 0.1em;
  color:var(--con-back-color-redpink);
  font-weight: var(--font-weight-bold);
  text-decoration: underline;
  transition: var(--transition-all-typeA);
}
.link04:hover{
  opacity: .5;
}

.link_tel span{
  font-size: 25px;
}
.link-pdf{
margin-left: 40px;
font-weight: var(--font-weight-bold);
transition:var(--transition-all-typeB);
position: relative;
}
.link-pdf:hover{

  opacity: .5;
}
.link-pdf:after {
  content: '';
  width: 30px;
  height: 30px;
  position: absolute;
  top: 50%;
  left: -40px;
  border: none;
background: url(../img/common/ic_link-pdf_off.svg)no-repeat center left;
background-size: contain;
display: block;
transform:var(--transform-50-Y);
transition:var(--transition-all-typeB);
}
.link-pdf:hover:after {
background: url(../img/common/ic_link-pdf_on.svg)no-repeat center left;
background-size: contain;
}
.bt_instagram{
display: flex;
font-size: var(--body-font-size-16);
font-weight: var(--font-weight-bolder);
}
.bt_instagram img{
  width: 30px;
}
.bt_instagram:hover{
  opacity: .5;
}
ul.ul01 {
  padding-left: 1rem;
}
ul.ul01 > li {
  position: relative;
  margin-bottom: 0.5em;
}
ul.ul01 > li:last-of-type,ul.ul02 > li:last-of-type,ul.ul03 > li:last-of-type,.ul_notice > li:last-of-type{
  margin-bottom: 0;
}
.ul01 > li::before {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  left: -1rem;
  top: 10px;
  /*		border-radius: 50px;*/
  background-color: #A6947F;
}
.ul02{
  min-height: 1rem;
  width: 100%;
  display: flex;
  flex-wrap: wrap;

}
.ul02 > li {
  display: inline-block;
  margin-right: 5px;

}
.ul02 > li:not(:last-of-type):before {
  content: "/";
  display: block;
  float: right;
  padding: 0 5px;
}
ul.ul03{
  margin-bottom: 30px;
}
.ul03 > li {
  position: relative;
  margin-left: 2em;
  font-weight: 600;

}
.ul03 > li:not(:last-of-type){
  margin-bottom: 15px;
}
.ul03 > li::before {
  content: "";
  position: absolute;
  width: .8em;
  height: .8em;
  left: -1.6em;
  top: 8px;
  border-radius: 50px;
  border: .5px solid #898686;
  /* background-color: #595757; */
}
.ul04 > li{
  position: relative;
  margin:0 0px 15px 35px;
 font-weight: 500;
}
.ul04 > li::before {
  content: "";
  position: absolute;
  width: 24px;
  height: 24px;
  left:-35px;
  top: 0px;
  display: block;
  background: url(../img/common/ic_check.svg)no-repeat;

}

.ul_notice,.text_notice{
  margin-left: 20px;
}
.ul_notice > li,.text_notice{
  margin-bottom: .5em;
  position: relative;
}
.ul_notice > li::before,.text_notice::before{
  content: "※";
  position: absolute;
  width: 25px;
  height: 23px;
  left: -17px;
}
table .ul_notice > li {
  margin-bottom: 0;
}
.ul_infolist > li{
  position: relative;
  margin:0 0px 15px 35px;
  color: #A6947F; 
}
.ul_infolist > li::before {
  content: "";
  position: absolute;
  width: 24px;
  height: 24px;
  left:-35px;
  top: 0px;
  display: block;
  background: url(../img/common/ic_information.svg)no-repeat;

}
.ul_infolist > li.li_point{
  color: #bd585a; 
}
.ul_infolist > li.li_point::before{
  background: url(../img/common/ic_information-point.svg)no-repeat;
}
.ol01 {
    counter-reset: num;
    margin: 0 0 10px;
}
.ol01 > li{
  margin-bottom: 1.5em;
  margin-left: 35px;
  position: relative;
}
.ol01 > li:before{
    content: counter(num);
    counter-increment: num;
    display: inline-block;
    width: 25px;
    height: 25px;
    font-size: 14px;
    font-weight: bold;
    text-align: center;
    line-height: 1.4;
    border: 1px solid var(--line-color-linghtbrown);
    box-shadow: 2px 2px var(--line-color-linghtbrown);
    padding: 2px 5px 5px;
    position: absolute;
    top: 0px;
    left:-35px;
}
.dl01{
  display: flex;
  flex-wrap: wrap;
  justify-items:stretch;
}
.dl01 > dt {
  border: solid 1px var(--line-color-blackbrown);
  padding: 10px;
}
@media screen and (min-width: 768px) {
.dl01 > dt {
  min-width: 300px;
  margin: 0 1.5rem 15px 0;
}
.dl01 > dd{
  width: calc(100% - (300px + 1.5rem));
}
}
@media screen and (max-width: 767px) {
.dl01 > dt,.dl01 > dd{
  width: 100%;
  margin: 0 0 15px 0;
  
} 
}
.dl01 > dd {
  margin-bottom: 15px;
  padding: 10px;
}
  .dl01 > dd,.dl02,.dl02 > dt{
    margin-bottom:15px;
  }
  .dl02 > dt{
   display: inline-block;
   position: relative;
   padding: 0 10px;
  
  }
  .dl02 > dt::before
  .dl02 > dt::after{
    position:absolute;
    }
  .dl02 > dt::before{
    content:"[";
    left: -10px;
  }
  .dl02 > dt::after{
    content:"]";
    right: -10px;
  }
  .dl02 > dd{
    margin-bottom:15px;
  }
  .dl02 > dd:last-of-type{
    margin-bottom:0;
  }
.dl02.line > dd{
  padding:0 10px 15px;
  border-bottom: solid 1px var(--line-color-blackbrown);
}
.dl03 > dt {
  font-family: var(--min-font-family);font-weight: 600;
  background-color: #F9F5F0;
  padding: 10px 10px;
  font-size: 16px;
}
.dl03 {
  border: 1px solid #F9F5F0;
  display: flex;
  flex-wrap: wrap;
  margin:0 0 15px;
}
.dl03 > dt,
.dl03 > dd {
  padding: 10px;
}
.dl03 > dt:not(:last-of-type){
border-bottom: solid 1px #fff;
}
.dl03 > dd:not(:last-of-type){
border-bottom: solid 1px #F9F5F0;
}
.dl03.w100 > dt,.dl03.w100 > dd {
  width: 100%;
  display: block;
}
.dl04 > dt,.dl04 > dd{
  padding: 5px 15px;
  margin-bottom: 15px;
}
.dl04 > dt{
  background: var(--line-color-blackbrown);
  color: #fff;
  display: block;
}

@media (min-width: 768px){ 
.dl03:not(.w100) > dt {
  display: block;
  width: 35%;
  max-width: 180px;
  min-width: 5em;
  text-align: center;
}
.dl03:not(.w100) > dd {
  width: 65%;
  min-width: calc(100% - 180px);
}

}
@media (max-width: 767px){
 .dl03 > dt,.dl03 > dd {
  width: 100%;
} 
}
.dlqr{
   counter-reset: number 0;
}
.dlqr > dt{
 margin:0 0 10px 35px;
 font-weight: var(--font-weight-bold);
 position: relative;
}
.dlqr dt:before {
   counter-increment: number 1;
    content: "Q" counter(number);
    position: absolute;
    color: var(--con-mediumlight-color);
    left: -35px;
    top: 0;
    width: 30px;
    font-weight:var(--font-weight-bold);
}
.dlqr > dd{
  margin:0 0 20px 35px;
}
/*---お知らせ-----------------------*/

/* #top #sec_news #art_topics {
	max-height: 400px;
} */
dl.news_con {
  font-family: var(--min-font-family);  
  font-weight: 400;
  display: flex;
  flex-wrap: wrap;
  justify-items: stretch;
  border-bottom:solid 1px #A6947F;
}
dl.news_con > dt,dl.news_con > dd{
  border-top:solid 1px #A6947F;

  padding: 20px 10px;
}
dl.news_con > dt.time {
  width: 95px;
}
dl.news_con > dd {
width: calc(100% - 95px);
}
/* dl.news_con > dd > a {
  text-decoration: underline;
} */
#news dl.news_con {
margin-bottom: 20px;
    margin-top: -30px;
    padding-top: 30px;
    padding-bottom: 20px;
}
/*---お知らせ-end-------------------*/

.table01 {
  width: 100%;
} 
.table01 th,.table01 td{
  text-align: center;
  padding: 10px;
}
.table01 .headline{
  margin-bottom: 5px;
}
.table01 .headline th {
  font-weight: 600;
  color: #fff;
  background: var(--con-back-color-brown);
  border-top: 5px solid var(--con-back-color-brown);
  border-bottom: 5px solid var(--con-back-color-brown);
}
.table01 .headline th:not(.no-bor){
  border-right: solid 1px #fff;
}
.table01 tr:not(.headline) {
  border-bottom: 1px solid var(--line-color-blackbrown);
}
.table01 tr:not(.headline) th,.table01 tr:not(.headline) td:not(.no-bor){
  border-right: 1px solid var(--line-color-blackbrown);
}
  .table02 {
    width: 100%;
    line-height: 1.8;
    border: 1px solid #cabcba;
  } 
  .table02 tr {
    border-bottom: 1px solid #cabcba;
    background-color: #fff;
  }
  .table02 th {
	background: #F9F5F0;
  }
  .table02 th, .table02 td {
    border-right: 1px solid #cabcba;
  }
.table02 th, .table02 td {
  padding: 10px;
  text-align: center;
}
.table03 th {
  font-family: var(--min-font-family);font-weight: 600;
  background-color: #F3ECE6;
}
/*
 * 1. 基本スタイルとレスポンシブ設定
 */
.wave-container {
    /* 絶対配置で波を配置 */
    position: absolute;
    /* 波の表示幅と高さをビューポート基準で設定 */
    /* width: 100% とすると、斜めにしたとき画面からはみ出すため、大きく設定します */
    width: 200vw; 
    height: 40vh; /* 画面の高さの40%を波のエリアとする */
    overflow: hidden;
    pointer-events: none;
    z-index: 10;
    /* 斜めの起点（デフォルトは中央）を設定。ここでは左上を起点とします */
    transform-origin: top left;
}

.wave-container svg {
    /* SVG自体はコンテナの100%を使用 */
    width: 100%;
    height: 100%;
}

/*
 * 2. 個別の波の配置、角度、Z-index、色の設定
 */

/* ============================ 1. 左上から右下へ流れる波 ============================ */
.top-wave {
    top:calc(85px + 30vh);
    left: 0;
    right: 0;
    z-index: 12;
    transform: scaleY(-1) rotate(8deg);
}
.top-wave .top-border{
  left: 0;
  position: absolute;
}
/* ============================ 2. 中央の水平に近い波 ============================ */
.middle-wave {
    /* 画面の中央付近に配置 */
    bottom: -20vh;
    right: 0;
    z-index: 11;
    /* わずかに斜めにする */
    transform: rotate(-2deg); 
}
.middle-wave .bottom-border{
   right: 0;
  position: absolute;
}

/* ============================ 3. 右下から左上へ流れる波 ============================ */
.bottom-wave {
    /* 画面の下部（垂直位置70%）に配置 */
    top: 70vh; 
    left: 5vw; 
    z-index: 10; 
    
    /* 左斜め上方向へ回転 */
    transform: rotate(-8deg); 
}

@media (min-width: 1281px){ 
.top-wave {
    top:calc(85px + 25vh);
}
}
@media (max-width: 1280px)and (min-width: 768px){ 
.top-wave {
    top:calc(100px + 30vh);
}
}
@media (max-width: 767px){ 
.wave-container {
    width: 250vw;
    height: 30vh;
}
.top-wave {
    top:calc(90px + 15vh);
    transform: scaleY(-1) rotate(12deg); 
}
.bottom-wave {
        top: 60vh;
        transform: rotate(-10deg); 
}
.middle-wave {
    /*bottom: 0vh; */
    transform: rotate(-5deg);
}
}
/*header*/
header {
  width: 100%;
  padding: 1.5rem 1rem 1.5rem;
  z-index: 1000;
  position: relative;
  background: #fff;
  width: 100%;
}
header .header_wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@scope (.header_wrap) {
.link_reserve{
  background: #A6947F;
  border-radius: 5px;
  padding: 10px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.header_logo {
  width:clamp(200px, 250px + 6.25vw, 350px);
  margin-right: 30px;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
.header_logo {
 width:150px;
 margin-left: 10px;
}
}
.header_adress{
  margin-bottom: 5px;
}
.header_con{
 width:100%;
}
.header_con .bt_tel{
padding:40px 10px 15px;
position: absolute;
right: 10px;
top: -15px;
width: 230px;
border-radius: 15px;
}

.bt_tel::before{
  content: "";
  background: url(../img/common/ic_tel-footer.svg)no-repeat center;
  background-size: contain;
  width: 100%;
  height: 25px;
  position: absolute;
  top: 5px;
  left: 0;
}
.bt_tel:hover,.bt_tel span{
  opacity: .6;
}
.bt_tel span{
font-size: var(--body-font-size-32);
display: block;
text-align: center;
color: var(--text-color);
font-weight: var(--font-weight-bolder);
}
@media screen and (min-width: 768px) {
.header_menu{
  display: flex;
  column-gap:2%;
  align-items: center;
  justify-content: flex-start;
  width:calc(100% - 240px);

}
}
@scope (.header_menu) {
li{
  position: relative;
  padding-top: 5px;
  font-weight:var(--font-weight-bolder);
  font-size:var(--body-font-size-16);
  -webkit-transition: all .3s ease-out;
  transition: all .3s ease-out;
  /*	overflow: hidden;*/
}
li:not(:last-of-type){
  margin-right: 1.5rem;
}
li a:hover{
  opacity: 1;
}
.header_menu_sub {
  border-radius: 15px;
  padding: 10px;
  background: #FFF;
  filter: drop-shadow(0 1px 3px rgb(51 51 51 / 25%));
  position: relative;
  }
  
.header_menu_sub:before {
  content: "";
  position: absolute;
  width: 15px;
  height: 15px;
  top: -10px;
  left: 50%;
transform: var(--transform-50-X);
  clip-path: circle(50% at 50% 50%);
  background: #FFF;
}
}/*****.header_menu*****/

.header_menu_sub li a{
  position: relative;
  font-size: var(--body-font-size-16);
  padding-left: 40px;
}
.header_menu_sub li a::after{
  content: '';
  width: 6px;
  height: 6px;
  position: absolute;
  top: 50%;
  left: 12px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg) translateX(-70%);
}
.header_menu_sub li a:before {
  content: '';
  width: 25px;
  height: 25px;
  position: absolute;
  top: 50%;
  left: 0px;
  background: var(--line-color-linghtbrown);
  border-radius: 50%;
  transform:var(--transform-50-Y);
}
.header_menu_sub li a:hover{
  opacity: 0.5;
}
.header_menu_sub li::before {
  display: none;
}
}/*****.header_wrap*****/
.header-side-menu.type-01{
display: none;
}
@scope (.header-side-menu.type-01) {
ul{
  display: flex;
  column-gap: 10px;
  align-items: center;
  justify-content: flex-start;
}
}
/*******.header-side-menu.type-01******/
 header.header_fixed {
    position: fixed;
    top: 0;
    right: 0;
    background: none;
    padding: 0;
  }
  @keyframes opacity {
    0% {
      opacity: 0;
      transform: translateY(-100%);
    }
    100% {
      opacity: 1;
      transform: translateY(0);
    }
  }
@media screen and (min-width: 1281px) {
header:not(.header_fixed) .header_menu_sub {
    position: absolute;
    top: 50px;
    left: 50%;
    transform:var(--transform-50-X);
    width: 350px;
    z-index: -1;
    opacity: 0;
    transition: all 0.3s;
    visibility: hidden;
    overflow: visible;
  }
header:not(.header_fixed) li:hover .header_menu_sub {
    z-index: 500;
    opacity: 1;
    visibility: visible;
  }
header:not(.header_fixed) .header_menu_sub li{
  margin-bottom: 15px;
}
  }

@media (max-width: 1080px) and (min-width: 768px) {
  @scope (.header-side-menu.type-01) {
  ul{
    position: fixed;
    bottom: 0;
    left: 0;
    max-width: 580px;
      }
}
}
@media (max-width: 767px) {
  @scope (.header-side-menu.type-01) {
  ul{
    position: fixed;
    bottom: 0;
    left: 0;
    max-width: 260px;
      }
}
}
@scope (.header_fixed) {

.header_wrap .header_logo{
    display: none;
  }

@media screen and (min-width: 1081px) {
.header-side-menu.type-01{
  display: block;
  background: #fff;
    position: fixed;
    top: 0;
    right: 0;
    min-width: 580px;
    width: 30%;
    padding: 0px 5px 0px 10px;
    border-radius: 0 0px 0px 30px;
    box-shadow: 0 1px 3px rgb(51 51 51 / 25%);
    animation: opacity .5s forwards;
}
}
@media screen and (max-width: 1080px) {
.header-side-menu.type-01 .div_menu-sp{
  display: block;
  background: #fff;
    position: fixed;
    top: 0;
    right: 0;
    min-width: 190px;
    height: 100px;
    width: 30%;
    padding: 0px 5px 0px 10px;
    border-radius: 0 0px 0px 30px;
    box-shadow: 0 1px 3px rgb(51 51 51 / 25%);
    animation: opacity .5s forwards;
}
}
@media screen and (max-width: 767px) {
.header-side-menu.type-01 .div_menu-sp{
  height: 80px;
}
}
.header_con .bt_tel{
  display: none;
}
#g_nav {
    display: none;
    opacity: 0;
    transition: all 0.3s;
    visibility: hidden;
  }
}

@media (max-width: 1280px){ 
.header_con .bt_tel{
  display: none;
}
}
@scope (.header-side-menu.type-01) {
.bt_instagram,.bt_tel{
  width: 60px;
  display:block;
  position: absolute;
  top: 20px;
  text-align: center;
  font-size: var(--body-font-size-10);
  font-weight: var(--font-weight-bolder);
}
@media screen and (min-width: 768px) {

.bt_instagram,.bt_tel{
  width: 60px;
}
.bt_tel{
  right:calc(65px + 30px) ;
}
.bt_instagram{
  right: calc(65px + 20px + 60px + 30px);
}
.menu_link{
  width: 55px;
  height: 65px;
}
 .menu_link span:nth-of-type(1) {
    top: 5px;
  }
 .menu_link span:nth-of-type(2) {
    top: 20px;
    width: 100%;
  }
.menu_link span:nth-of-type(3) {
    top: 35px;
  }
}
@media screen and (max-width: 767px) {

.bt_instagram,.bt_tel,.menu_link{
  width: 35px;
  height: 50px;
}
.bt_tel{
  right:calc(50px + 15px) ;
}
.bt_instagram{
  right: calc(50px + 15px + 50px + 15px);
}
 .menu_link span:nth-of-type(1) {
    top: 0px;
  }
 .menu_link span:nth-of-type(2) {
    top: 10px;
    width: 100%;
  }
.menu_link span:nth-of-type(3) {
    top: 20px;
  }
}

.bt_instagram img,.bt_tel img{
  width: 80%;
  display: block;
  margin: auto;
}
.bt_instagram span,.bt_tel span{
  display: block;
}
.menu_link {
        top: 20px;
        margin: 0px;
        right: 10px;
        z-index: 100;
        position: absolute;
}
.menu_link .item{
  position: relative;
  height: 100%;
}
.menu_link span {
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 0;
    /*transform:var(--transform-50-X);*/
    height: 2px;
    border-radius: 2px;
    background: var(--line-color-blackbrown);
    width: 80%;
  }

 .menu_link::after {
    content:"Memu";
    position: absolute;
    bottom: -5px;
    left: 5px;
    transition: all .3s;
    font-size: var(--body-font-size-10);
    font-weight: var(--font-weight-bolder);
  }
}


@scope (.active) {
.header_wrap .header_logo{
    display: block;
    position: relative;
    z-index: 60;
  }
  .header-side-menu.type-01{
    z-index: 60;
  }
  .menu_link span{
    width: 100%;
    right: 0;
    top: 30%;
  }
  @media screen and (min-width: 768px) {
  .menu_link span:nth-of-type(1) {
    transform: translateY(-50%) rotate(-45deg);
    top: 20px !important;
  }
  .menu_link span:nth-of-type(2){
  opacity: 0;  
  }
  .menu_link span:nth-of-type(3){
    transform: translateY(-50%) rotate(45deg);
    top: 20px !important;
 
  }
}
  @media screen and (max-width: 767px) {
  .header-side-menu.type-01 > ul {
  opacity: 0;  
  }
  .menu_link span:nth-of-type(1) {
    transform: translateY(-50%) rotate(-45deg);
    top: 15px !important;
    left:5px;
  }
  .menu_link span:nth-of-type(2){
  opacity: 0;  
  }
  .menu_link span:nth-of-type(3){
    transform: translateY(-50%) rotate(45deg);
    top: 15px !important;
    left:5px;
  }
}
  .menu_link::after {
    content:"CLOSE";
  }
  .header_menu li {
    display: block;
  }
}
@media screen and (min-width: 1081px) {
@scope (.header_fixed.active) {
#g_nav {
    z-index: 50;
    overflow-y: auto;
    display: block;
    opacity: 1;
    visibility: visible;
    position: fixed;
    top: 0px;
    left: 0;
    padding-top: 90px;
    width: 100%;
    height: 100vh;
    background-color: #F9F5F0;
  }
@scope (#g_nav) {
li {
    position: relative;
    margin-right: 0;
  }
li:not(:last-of-type){
  margin-right: 0rem;
}
li.header_adress_sp{
    padding: 15px 2em; 
    font-size: 12px;
}
> li > a {
    padding: 15px 2em;
    display: block;
    text-align: center;
    font-size: 20px;
  }
.header_menu_sub {
  max-width: 800px;
  padding: 30px;
  width: 95%;
  margin:15px auto; 
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
}
}
}
}
@media screen and (max-width: 1280px) {
.active #g_nav {
    z-index: 50;
    overflow-y: auto;
    display: block;
    opacity: 1;
    visibility: visible;
    position: fixed;
    top: 0px;
    left: 0;
    padding-top: 90px;
    width: 100%;
    height: 100vh;
    background-color: #F9F5F0;
  }
@scope (#g_nav) {
li {
    position: relative;
    margin-right: 0;
  }
li:not(:last-of-type){
  margin-right: 0rem;
}
li.header_adress_sp{
    padding: 15px 2em; 
    font-size: var(--body-font-size-12);
}
> li > a {
    padding: 15px 2em;
    display: block;
    text-align: center;
    font-size: 20px;
  }
.header_menu_sub {
  max-width: 800px;
  padding: 30px;
  width: 95%;
  margin:15px auto; 
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
}
}
}
/*header-end*/
/*footer*/
footer {
  position: relative;
  background:var(--con-back-color-pink);
  margin-top:0vh;
  z-index: 5;
}
.footer-wave-container{
  position: absolute;
  top: -20vh;
  left: 0;
    width: 100%;
  height: 100%;
overflow: hidden;
}
.footer-wave-container svg{
  width: 150vw;
  height: 40vh;
  left: 0;
  z-index: -1;
  position: absolute;
}
.footer-wave-container .wave-pink{
  top: 0vh;
  left: -20%;
}
.footer-wave-container .wave-border{
  top: -10vh;
  left: -30%;
}
footer .footer_wrap,footer .footer_nav{
  padding-top: 60px;
  margin: 0;
}
@scope (.footer_info) {
  h3{
    margin-bottom: 30px;
  }
}
footer .footer_nav {
background:var(--con-back-color-brown);
display: grid;
place-items: center;
row-gap:var(--row-gap-30);
}
@scope (.footer_nav) {
ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  max-width: 750px;
  padding-bottom: 15px;
  width: 95%;
  margin: auto;
}
ul li img{
  transition: .5s cubic-bezier(0.45, 0, 0.55, 1);
}
@media screen and (min-width: 768px) {
ul li{
  width: calc((100% / 3) - 30px);
}
ul li:not(:last-of-type){
  margin-right: 15px;
}
}
@media screen and (max-width: 767px) {
ul li{
  width:100%;
  max-width: 300px;
  margin: auto;
}
ul li:not(:last-of-type){
  margin-bottom: 15px;
}
}
li:hover img{
  transform: translateY(-2px);
}
.bt_tel{
background: rgba(250, 246, 246);
border: solid #fff 1px;
padding:40px 15px 15px;
position: relative;
width: 280px;
border-radius: 15px;
}

.bt_tel::before{
  content: "";
  background: url(../img/common/ic_tel-footer.svg)no-repeat center;
  background-size: contain;
  width: 100%;
  height: 25px;
  position: absolute;
  top: 10px;
  left: 0;
}
.bt_tel:hover,.bt_tel span{
  opacity: .6;
}
.bt_tel span{
font-size: var(--body-font-size-32);
display: block;
text-align: center;
color: var(--text-color);
font-weight: var(--font-weight-bolder);
}
}
p.copy {
  color: #fff;;
  text-align:center;
  padding: .3rem;
  margin: 0;
}


@media screen and (max-width: 767px) {
/*common*/
main{
  margin-top: 90px;
}

  section.sec_con:not(:last-of-type){
    margin-bottom: 105px;
  }
  article.art_con {
    margin:0px auto 45px auto;
  }


  
  /*---お知らせ-----------------------*/
  dl.news_con > dt.time {
    width: 85px;
  }
  dl.news_con > dd {
  width: calc(100% - 85px);
  }
  /*---お知らせ---end-----------------*/
  .table01 th,
  .table01 td {
    line-height: 1.5;
  }
  .table02 {
font-size: 10px;
    width: 100%;
  }
.table02 th, .table02 td {
  padding:5px;
  }
  .table03 {
    border-bottom: 1px solid rgb(202 188 186 / 50%);
    width: 100%;
  }
  .table03 tr {
    display: block;
  }

  .table03 th,.table03 td {
    display: block;
    padding: 0.8em;
  }
  .table03 th {
    border-top: 1px solid rgb(202 188 186 / 50%);
  }
  .sec_wrap_bg,.sec_wrap_bg-sub {
    padding-bottom: 90px;
  }
  .sec_wrap_bg::before {
    top: -145px;
  }
  header {
    height: 80px;
  }
  header .header_wrap .link_reserve{
  width: 115px;
  }
  header .header_tel{
    display: none;
  }
.header-side-menu.type-02{
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  background: rgb(255 255 255 / 90%);
  }
  @scope (.header-side-menu.type-02) {
 ul{
  max-width: 580px;
  margin: auto;
  padding:10px 3%;
  justify-items: center;
  align-items: center;
  }
 li{
width:33.33%;
  }
li > a {
font-size: 0px;
width: 100%;
background-size: contain;
height: 80px;
display: block;
cursor: pointer;
  }

  .banner-child{
background: url(../img/common/link_header-child-min.png); 
background-repeat: no-repeat;
background-position: center;
  }
  .banner-reserve{
background: url(../img/common/link_header-reserve-min.png);  
background-repeat: no-repeat;
background-position: center;
  }
  .banner-onlinetreat{
background: url(../img/common/link_header-online-min.png);  
background-repeat: no-repeat;
background-position: center;
  }
  }
/*
  footer .footer_nav ul {
    justify-content: space-around;
  }
*/
footer .footer_info{
  padding: 60px 2.5% 0;
}
footer .footer_info .footer_adress {
  width:100% ;
  max-width: 300px;
  margin:0 0 60px;
}
footer .footer_info .footer_time_table{
  width: 100%;
}
footer .footer_info .footer_time_table .table01{
  font-size: 12px;
}
footer .footer_info .footer_time_table .table01 th,footer .footer_info .footer_time_table .table01 td{
  padding: 5px;
}
footer .footer_info .link01{
  width:100%;
}
footer .footer_info .footer_time_table .link_sanfujinka-tv{
display: block;
margin: 30px auto 0;
width: 192px;
}
  footer .footer_nav {
    margin: auto;
    width: 100%;
    padding: 30px 2.5%;
  }
  footer .footer_nav li {
    text-align: center;
  }
p.copy {
  font-size: .6em;
}
}
@media screen and (min-width: 768px) {
  /*common*/
  .table02 th {
    min-width: 5.8em;
	background: #F9F5F0;
  }
  .table03 {
    width: 100%;
    line-height: 1.8;
    border-top: 1px solid rgb(202 188 186 / 30%);
  }
  .table03 tr {
    border-bottom: 1px solid rgb(202 188 186 / 30%);
  }
  .table03 th {
    width: 9em;
  }
  .table03 th, .table03 td {
    vertical-align: top;
    padding: 1em;
  }

  footer .footer_nav {
    background-size: 20%;
  }
  footer .footer_info{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: auto;
  }
  footer .footer_info .footer_adress{
  width: calc(100% - 60%);
  }
  footer .footer_info .footer_time_table{
  width: calc(100% - 30%);
  max-width: 575px;
  }  
}
@media (max-width: 1280px) {
  header {
    padding: 0 10px;
    position: fixed;
    top: 0;
    left: 0;
    height: 100px;
    display: flex;
    flex-wrap: wrap;
  }
  
  header:not(.active) .header_con {
    display: none;
    width: 0;
  }
 .header_wrap{
 width: 165px;
  } 
  .header-side-menu.type-01{
    width: calc(100% - 165px);
  }
  .header-side-menu.type-01{
  display: block;
  position: relative;
  }
}
@media (max-width: 1280px) and (min-width: 768px){
  footer .footer_info .footer_adress{
    width:35%;
    margin-right: 15px;
    }
    footer .footer_info .footer_time_table{
    width: calc(100% - (35% + 15px));
    }  
}
@media (min-width: 1281px){ 
}