:root{
  --bg:#ddd; --card:#ffffff; --muted:#f3f4f6; --text:#111827; --sub:#6b7280; --accent:#2563eb; --line:#e5e7eb; --danger:#ef4444; --ok:#059669;
  --row-h:64px; --header-h:48px; --staff-w:220px; --radius:12px; --shadow:0 6px 20px rgba(0,0,0,.07);
  --header_w:640px;
}

html,body{
  background:var(--bg);
  color:var(--text);
  font:24px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI",Meiryo;
  overflow-x: hidden;
}


*{
box-sizing:border-box; margin: 0; padding: 0; list-style: none;
font-family: "Shippori Mincho", serif;
font-weight: normal;
font-style: normal;
}

#wrap{
width: var(--header_w);
margin: 0 auto;
background: #fff;
min-height: 100vh;
}

.dp{
  font-family: "Helvetica Neue",
    Arial,
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    Meiryo,
    sans-serif;
}


.inner{
width:100%;
margin:  0 auto;
padding: 0 50px;
}

img{
width:100%;
}

.sp{
}

section{
margin: 0 0;
}

.cont{
padding: 20px 0;
}


@media only screen and (max-width: 699px) {
  
  html,body{
    font-size: 1.1rem;
  }
  
  #wrap{
    width: 100%;
  }
  .sp{
    display: block;
  }
  
  .inner{
    width: 100%;
    padding: 0 20px;
  }
}



/*
+++++++++++++++++++++++++++++++

H E A D E R

+++++++++++++++++++++++++++++++
*/

#h{
position: fixed;
width: var(--header_w);
z-index: 9999;
border-bottom: solid 1px #eee;
background-color: rgba(255,255,255,.9);
}

#h .inner{
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
}

#h h1{
width: auto;
height: 80px;
text-align: left;
}

#h a{
text-decoration: none;
}

#h h1 img{
display: inline-block;
height: 60px;
width: auto;
}

#h h1 span{
display: block;
font-size: .6rem;
color: #BDAD94;
}

#h .inner{
  padding: 10px 20px;
}

nav .sp{
font-size: 2rem;
}

.h{
padding: 30px 0;
text-align: center;
}

.h h1{
font-weight: bold;
}
.h h1 span{
display: block;
font-size: 1rem;
}

#h nav ul{
padding-top: 40px;
position: fixed;
left: 50%;
width: var(--header_w);
transform: translate(-50%,0);
background: rgb(255,245,236,.9);
height: 100vh;
z-index: 10000;
overflow: hidden;
overflow-y: scroll;
-webkit-transition: opacity .3s linear, top .3s ease-out;
-moz-transition: opacity .3s linear, top .3s ease-out;
-ms-transition: opacity .3s linear, top .3s ease-out;
-o-transition: opacity .3s linear, top .3s ease-out;
transition: opacity .3s linear, top .3s ease-out;
top:-100vh;
}

#h nav ul.in{
top:0;
}

#h nav li a{
display: block;
color: #BDAD94;
text-transform: uppercase;
text-align: center;
width: 100%;
padding: 20px 0;
border-bottom: solid 1px #BDAD94;
}
#h nav li a span,
#h nav li a strong{
display: block;
text-align: center;
}
#h nav li a span{
font-size: .8rem;
}
#h nav li.close{
position: absolute;
top:10px;
right: 10px;
}

#h nav li.close span{
font-size: 1.2rem !important;
}

@media only screen and (max-width: 699px) {
  #h,
  #h nav ul{
    width: 100%;
  }
  
}


/*
+++++++++++++++++++++++++++++++

B O D Y

+++++++++++++++++++++++++++++++
*/
#body{
padding-top: 100px;
}

.body{
position: relative;
}




/*
+++++++++++++++++++++++++++++++

M A I N

+++++++++++++++++++++++++++++++
*/
#main{
width: 100%;
height: 850px;
padding: 0;
background-image: url(../images/h_bg.png);
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
display: table;
}

#main h1{
display: table-cell;
text-align: center;
vertical-align: middle;
}

@media only screen and (max-width: 699px) {
  #main{
    height: 130vw;
  }
}



/*
+++++++++++++++++++++++++++++++

ABOUT

+++++++++++++++++++++++++++++++
*/
#about{
background-image: url(../images/bg_about.png);
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
}

#about article{
padding: 20px;
}

#about article:nth-of-type(2){
margin-top: 30px;
}

#about article header{
margin-bottom: 40px;
}

#about article p{
line-height: 1.8;
}


@media only screen and (max-width: 699px) {
  #about article{
    padding: 20px 0;
  }
}

/*
+++++++++++++++++++++++++++++++

M E N U

+++++++++++++++++++++++++++++++
*/
#menu .inner{
padding: 0 50px;
}

#menu article{
padding: 30px 0;
}

#menu article h2{
font-size: .7rem;
background:#BDAD94;
color: #fff;
display: inline-block;
padding: 3px 10px;
line-height: 1.2;
}

#menu .price{
color: #BDAD94;
font-size: 1.7rem;
}

#menu dl.price{
display: flex;
width: 100%;
justify-content: space-between;
padding: 20px 0;
}

#menu .price dt span{
font-size: 1.2rem;
}

@media only screen and (max-width: 699px) {
  #menu .inner{
    padding: 0 20px;
  }
}

/*
+++++++++++++++++++++++++++++++

T H E R A P I S T

+++++++++++++++++++++++++++++++
*/
#therapist{
background: #FFE3E5;
}

#therapist p{
text-align: left;
padding-top: 20px;
}

#therapist article{
padding: 30px 0;
}

#therapist .t h1{
display: flex;
justify-content: space-between;
line-height: 1;
margin-bottom: 30px;
}

#therapist .t h1 img{
height: 50px;
width: auto;
display: block;
}

#therapist .swiper{
height: 700px;
}

#therapist dl{
margin-top: 30px;
}

#therapist dt{
background:#BDAD94;
color: #fff;
display: inline-block;
padding: 3px 10px;
line-height: 1.2;
}

#therapist dd{
line-height: 1.8rem;
}



/* 前へ次への矢印カスタマイズ */
.swiper-button-next, .swiper-button-prev{
color: #000;
background: #fff;
border-radius: 100px;
}
.swiper-button-next, .swiper-button-prev {
    svg {
      width: auto;
      height: auto;
    }
}

.swiper-pagination-bullet-active {
background: #000;
}

@media only screen and (max-width: 699px) {
  #therapist .swiper{
    height: calc((100vw - 40px) *1.33);
    margin-bottom: 30px;
  }
  
}

/*
+++++++++++++++++++++++++++++++

S A L O N

+++++++++++++++++++++++++++++++
*/
#salon{
background-image: url(../images/bg_salon.png);
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
}

#salon iframe,
#salon dl{
padding: 20px 0;
}

#salon dt{
background:#BDAD94;
color: #fff;
display: inline-block;
padding: 3px 10px;
line-height: 1.2;
}


/*
+++++++++++++++++++++++++++++++

F O O T E R

+++++++++++++++++++++++++++++++
*/
footer{
background: #000;
padding-top: 30px;
padding-bottom: 100px;
color: #fff;
text-align: center;
}


/*
+++++++++++++++++++++++++++++++

R E S E R V E

+++++++++++++++++++++++++++++++
*/
#reserve{
background: #fff5ec;
}


#reserve .btn{
background: #c00;
border-radius: 10px;
text-align: center;
width: 100%;
margin: 50px auto;
}

#reserve .btn a{
color: #fff;
text-decoration: none;
display: block;
}

#reserve .btn img{
width: auto;
display: inline-block;
vertical-align: middle;
}

#reserve .qr{
width: 70%;
margin: 0 auto;
}


#reserve .line .btn{background-color: #00B900;}
#reserve .x .btn{background-color: #444;}

#reserve .lead{
width: 70%;
margin:40px auto;
}

#reserve .submit{
text-align: center;
margin: 30px 0;
}

/*
+++++++++++++++++++++++++++++++

T A B L E

+++++++++++++++++++++++++++++++
*/
.table{
width: 70%;
margin:0 auto;
}

.table dl{
font-size: 110%;
}

.table dt,
.table dd{
padding: 15px;
font-size: .8rem;
}

.table dt{
width: 100%;
font-weight: bold;
padding-bottom: 0;
}

.table .name dd,
.table .furi dd{
display: flex;
width: 100%;
}
.table .name dd input,
.table .furi dd input{
  width: 50%;
}


.table .need{
color: #c00;
font-weight: bold;
display: inline-block;
padding-left: 10px;
}

.table input[type=text],
.table input[type=tel],
.table input[type=email]{
font-size: 1rem;
padding: 5px;
border: 0;
border-bottom: solid 1px #ddd;
background: transparent;
}

.table input[type=text]:nth-of-type(1){
margin-right: 20px;
}

.table input[type=email]{
width: 100%;
}

.table textarea{
width: 100%;
height: 100px;
border: 0;
border-bottom: solid 1px #ddd;
background: transparent;
}


.table{
  width: 100%;
}




input[type=submit]{
width: 400px;
background: #000;
color: #fff;
border-radius: 100px;
font-size: 1.5rem;
padding: 10px 0;
}

@media only screen and (max-width: 699px) {
  input[type=submit]{
    width: 60%;
  }
}





/*
+++++++++++++++++++++++++++++++

F L O A T I N G

+++++++++++++++++++++++++++++++
*/
#float{
position: fixed;
left: 0;
bottom: 0;
width: 100%;
z-index: 9998;
height: 50px;
background: rgba(255,255,255,.8);
}

#float ul{
width: var(--header_w);
margin: 0 auto;
display: flex;
justify-content: space-between;
}

#float li{
width: calc(100% / 3);
background: #000;
text-align: center;
}

#float li a{
display: block;
text-decoration: none;
padding: 7px;
width: 100%;
height: 50px;
}

#float li span{
color: #fff;
font-size: 1.2rem;
padding-left: 15px;
}

#float li img{
width: auto;
height: 36px;
vertical-align: middle;
}

#float li:nth-of-type(1){background-color: #00B900;}
#float li:nth-of-type(2){background-color: #97A5FF;}
#float li:nth-of-type(3){background-color: #444;}

@media only screen and (max-width: 699px) {
  #float ul{
    width: 100%;
  }
  
  #float li span{
    font-size: .8rem;
  }
}