@charset "utf-8";
body {
    margin-left: 260px;
    font-family: '游明朝','Yu Mincho',serif;
    letter-spacing: 0.1em;
    color: #21251a;
    background: #f3f2ec;
}

header{
    color: #fff;
}
main{
    display: block;
}
img {
    width: 100%;
    height: auto;
}
.contents_wrapper{
    background: url(../img/common/contents_bg.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    padding: 100px 0;
    position: relative;
    overflow: hidden;
    z-index: 0;
}
.common_inner{
    max-width: 1240px;
    padding: 0 20px;
    margin:  0 auto;
}
#wrap {
    width: 100%;
    overflow-x: hidden;
    /* display: flex; */
    flex-wrap: wrap;
}
a{
    transition: 0.3s;
    /* display: block; */
}
a:hover{
    opacity: 0.7;
    transition: 0.3s;
}
.common_mid_inner{
    max-width: 1040px;
    padding: 0 20px;
    margin: 0 auto;
}
.ttl{
    font-size: 32px;
    text-align: center;
    font-weight: 600;
    margin-bottom: 40px;
}
.ttl::after{
    content: "";
    display: block;
    width: 74px;
    height: 2px;
    margin-top: 20px;
    background: #21251a;
    margin: 20px auto 0;
}

.square{
    content: "";
    width: 10px;
    height: 10px;
    background: #21251a;
    display: inline-block;
    transform: translateY(-50%) rotate(-45deg);
    position: absolute;
    top: 47%;
    right: 20px;
    pointer-events: none;
    -webkit-transition: 0.3s ease-in-out;
    -moz-transition: 0.3s ease-in-out;
    -o-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
}

/* header */
.sp_header{
    display: none;
}
.menulist{
    display: none;
}
.pc_header{
    z-index: 300;
    position: fixed;
    width: 260px;
    height: 100vh;
    left: 0;
    top: 0;
    overflow: auto;
    overflow-x: hidden;
    background: #191c13;
}
.header_inner{
    flex-direction: column;
    justify-content: center;
    /* margin: 10px; */
    display: flex;
    height: 936px;
    text-align: center;
}
.header_logo{
    max-width: 200px;
    height: auto;
    margin: 0px auto 20px;
    width: 100%;
    display: block;
}
.grnv_pc{/*     margin: 0 auto 100px; */margin: 0px auto 30px;display: block;}

    .grnv_pc_icon{
        display: flex;
        justify-content: space-around;
        align-items:center;
        flex-wrap: wrap;
        width: 100%;
        margin-bottom: 25px;
    }
    .pcnav_inner{
        width: 50%;
        /* display: flex; */
    }
    .pcnv.calender::after{
        content: "ご予約";
        display: block;
        font-size: 12px;
        text-align: center;
        padding-top: 5px;
    }
    .iconontainer{
        width: 40px;
        margin: 0 auto;
    }
    .pcnv.contact::after{
        content: "お問い合わせ";
        display: block;
        font-size: 12px;
        text-align: center;
        padding-top: 10px;
    }
    .header_tel{
	
	margin-bottom:25px;
}

.header_tel_num{
    font-size: 22px;
    width: 172px;
    position: relative;
    display: block;
    padding-left: 1.2em;
    white-space:nowrap;
    margin: 0 auto;
}
.header_tel_num::before{
    content: "";
    position: absolute;
    background: url(../img/common/tel01.svg);
    vertical-align: middle;
    width: 18px;
    height: 18px;
    left: 0;
    background-repeat: no-repeat;
    top: 50%;
    transform: translateY(-50%);
}
.header_info{}

.header_info_flex{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    max-width: 170px;
    margin: 0 auto 10px;
    font-size: 14px;
	flex-wrap:wrap;
}
.header_info_flex p{
	display:block;
	text-align:left;
}
.header_info_flex p:nth-of-type(1){
width:40%;
}
.header_info_flex p:nth-of-type(2){
width:60%;
}

.nav_list_list{
    margin: 15px 0;
}

.nav_list_list:last-child{
    margin-bottom: 0;
}
.g_link{
	position:relative;
}
.g_link::after{
    position: absolute;
    content: "";
    background: url(../img/common/footer_gmap.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 11px;
    height: 10px;
    top: 50%;
    right: 0%;
    transform: translate(100%, -50%);
}
.g_link.spnv::after{
    position: absolute;
    content: "";
    background: url(../img/common/footer_gmap.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 11px;
    height: 10px;
    bottom: 0%;
    top: unset;
    left: 50%;
    transform: translate(-100%, 100%);
}


.drip{
    position:relative;
    display:inline-block;
    line-height: 1;
    text-decoration: none;
    outline: none;
}

.drip:hover::before {
    content: '';
    /*絶対配置で波形の位置を決める*/
    position: absolute;
    left:25%;
    top:0;
    /*波形の形状*/
    border: 1px solid #fff;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    /*はじめは不透明*/
	opacity:1;
    /*アニメーションの設定*/
    animation:1s circleanime2 forwards;
}

/*波形が広がるアニメーション*/
@keyframes circleanime2{
	0%{
	  transform: scale(0);
	}
	100%{
		transform:scale(2);
		opacity: 0;
	}
}

.lo_flex{
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
}
.lo_flex p:last-child{
    margin-left: 5px;
}
.holiday{
    margin-bottom: 25px;
    text-align: center;
}
.sns_links{
    display: flex;
    justify-content: center;
    align-items: center;
}
.sns_links p{
    padding-right: 20px;
    font-size: 18px;
}
.sns_links ul{
    display: flex;
    align-items: center;
}
.sns_links ul li{
    width: 25px;
    height: auto;
    margin-right: 10px;
}

.sns_links ul li:last-child{
    margin-right: 0;
}

/* footer */
footer{
    color: #fff;
}
.footer_bg{
    background: url(../img/common/footer_bg.jpg);
    background-position: right center;
    background-size: cover;
    background-repeat: no-repeat;
    height: 279px;
    padding-top: 30px;
}
.footer_flex{
    display: flex;
    justify-content: center;
    padding: 0 10px;
}
.footer_sns{
    margin-right: 40px;
}
.footer_sns > div{
    /* max-width: 35px; */
    /* width: 100%; */
    /* min-width: 30px; */
    width: 35px;
    height: auto;
}
.footer_sns > div:not(:last-child){
    margin-bottom: 20px;
}
.footer_info p{
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    font-size: 14px;
    margin: 0 5px;
    position: relative;
    display: inline-block;
}
.footer_info{
    display: flex;
    align-items: flex-start;
}
.footer_tel{
    padding-top: 23px;
}
.footer_tel::before{
    position: absolute;
    content: "";
    background: url(../img/common/tel01.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 16px;
    height: 16px;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}
.footer_info p.footer_gmap{
    padding-bottom: 15px;
    /* font-size: 10px; */
    margin-left: 15px;
    margin-right: 15px;
}
.footer_gmap::after{
    position: absolute;
    content: "";
    background: url(../img/common/footer_gmap.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 11px;
    height: 10px;
    bottom: 0;
    left: 50%;
    transform: translateX(-70%);
}
.footer_logo{
    max-width: 180px;
    width: 100%;
    margin-left: 100px;
}
.copyright{
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    height: 30px;
}
.copyright p{
    font-size: 12px;
    text-align: center;
}
.footer_l{
    display: flex;
    justify-content: center;
    align-items: flex-start;
}
.br_500{
    display:none;
}


@media (max-width: 1260px) {
    /* common */
    body{
        margin-left: unset;
    }
	.con_top{
    height: 80px;
    width: auto;
 }

    /* header */
    .pc_header {
        display: none;
    }
    .sp_header {
        display: block;
    }
    .header_inner{
    position: fixed;
    background: #191c13;
    flex-direction: unset;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px 0 20px;
    height: 80px;
    z-index: 1000;
    }

		.drawer {
			position: absolute;
			display: block;
			top: 50%;
			right: 25px;
			height: 24px;
			width: 30px;
			padding: 0px;
			z-index: 50;
			transform: translateY(-50%);
			-webkit-transition: all 0.3s ease-in-out;
			transition: all 0.3s ease-in-out;
			cursor: pointer;
			pointer-events: auto;
		}
		.drawer span {
			position: absolute;
			left: 0;
			content: url(/img/common/hamburgerline.svg);
			display: inline-block;
			vertical-align: top;
			-webkit-transition: all 0.3s ease-in-out;
			transition: all 0.3s ease-in-out;
		}
		.drawer span:nth-of-type(1) {
			top: 0px;
		}
		.drawer span:nth-of-type(2) {
			top: 9px;
		}
		.drawer span:nth-of-type(3) {
			top: 18px;
		}
		.drawer.open>span:nth-of-type(1) {
			-webkit-transform: translateX(0px) translateY(10px) rotate(-45deg);
			transform: translateX(0px) translateY(10px) rotate(-45deg);
			border-radius: 0;
		}
		.drawer.open>span:nth-of-type(2) {
			opacity: 0;
		}
		.drawer.open>span:nth-of-type(3) {
			-webkit-transform: translateX(0px) translateY(-7px) rotate(45deg);
			transform: translateX(0px) translateY(-7px) rotate(45deg);
			border-radius: 0;
		}
    .spheadp{
        line-height: 1.5;
        position: absolute;
        transform: translate(0%,50%);
        right: 70px;
        bottom: 50%;
        font-size: 12px;
        text-align:left;
        width: 100%;
        max-width: 170px;
    }
    .sp_headp_flex{
		display: flex;
		justify-content: flex-start;
		flex-wrap: wrap;
		}
    .sp_headp_flex div:nth-of-type(1){
	    width: 38%;
	   }
	.sp_headp_flex div:nth-of-type(2){
		width: 62%;
	}


    .menulist{
        display:block;
        position: fixed;
        width:  100vw;
        height: 100vh;
        background-color: #191c13;
        transform: translate(0,-100%);
        transition: all .3s linear;
        z-index: 301;
        overflow: hidden; 
        }
    .menulist.active{

        transform: translate(0,0);
    }
    .spnav_flx{
        display: flex;
        flex-wrap: wrap;
        padding: 20px 0;
        margin: 80px auto 40px;
        width: 100%;
        max-width: 500px;
        justify-content: center;
    }
	.g_link.spnv{
		padding-bottom: 0px;
	}
    a.spnv{
        display:block;
    }
    .spnv span{
        display: inline-block;
        padding: 5px 5px 5px 20px;
        width: 25%;
        border-right: 1px solid rgba(255,255,255,.3);
    }
    .spnv.contact::after{
        content: "お問い合わせ";
        display: block;
        font-size: 12px;
        text-align: center;
        padding-top: 10px;
        white-space: nowrap;
    }
    .spnv.calender::after{
        content: "ご予約";
        display: block;
        font-size: 12px;
        text-align: center;
        padding-top: 5px;
    }
    .spnavright{
        writing-mode: vertical-rl;
        /* width: 76%; */
        /* margin: 0 auto; */
    }
    .grnv_sp{
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        width: 100%;
        margin-bottom: -40px;
    }
    .spnavleft{
        width: 24%;
    }
    .spnav_inner{
        width: 100%;
        margin-bottom: 40px;
        /* display: flex; */
    }
    .grnv_sp_icon{
        display: flex;
        justify-content: space-between;
        align-items:center;
        flex-wrap: wrap;
        width: 100%;
    }
    .iconontainer{
        width: 40px;
        margin: 0 auto;
    }
    .hh{
        display: block;
        width: 100%;
        height: 80px;
    }
    .logo_hori{
        max-width: 160px;
        width: 100%;
    }
}
@media (max-width: 768px){
    .ttl{
        padding: 0 30px;
        font-size: 28px;
    }
    .ttl::after{
        content: "";
        display: block;
        width: 74px;
        height: 2px;
        margin-top: 20px;
        background: #21251a;
        margin: 20px auto 0;
    }
    .contents_wrapper{
        padding: 80px 0;
    }
}

@media (max-width: 600px) {
    #side_box {
        width: 100%;
    }
    #main_box {
        width: 100%;
    }
    
}

@media (max-width: 550px) {
    .footer_logo {
        max-width: 150px;
        width: 100%;
        margin-left: 20px;
    }
    .footer_sns {
        margin-right: 30px;
    }
    .footer_info p {
        font-size: 13px;
        line-height: 1;
    }
    .ttl {
        font-size: 24px;
    }
}

@media (max-width: 500px) {
    .br_500{
        display: block;
    }
    .spheadp{
        font-size: 11px;
        text-align: center;
        max-width: none;
        width: auto;
    }
    .sp_headp_flex{
		display: block;
		text-align: start;
	}
	.sp_headp_flex:nth-of-type(2){
		display: flex;
    }
	.sp_headp_flex div:nth-of-type(1){
		width: auto;
	}
	.sp_headp_flex div:nth-of-type(2){
		width: auto;
	}
    .hamburger{
        width: 40px;
        height: 35px;
        padding: 0;
    }
    .ham_line{
        width: 40px;
        transition: all .8s;
    }
        .ham_line:nth-of-type(1){
        top: 0px;
    }

    .ham_line:nth-of-type(3){
    }
    
    .footer_flex{
        flex-wrap: wrap;
    }
    .footer_l_out{
        justify-content: center;
        width: 100%;
        order: 2;
    }
    
    .footer_l{
        width: 100%;
        margin: 0 auto!important;
        max-width: 200px;
        order: 2;
    }
    .footer_logo{
        width: 100%;
        margin: 0 auto 30px;
        order: 1;
    }
    .footer_bg {
        height: auto;
        padding-top: 30px;
        padding-bottom: 30px;
    }
}



.pagetop{
    background:
    url("../img/common/page_top.png") no-repeat;
    background-color:
    rgba(33,33,33,0.8);
    background-size:39px !important;
    position:
    fixed;
    bottom: 30px;
    right: 20px;
    width:40px;
    height:40px;
    color:#000;
    border:1px solid #555;
    border-radius:50%;
    cursor:
    pointer;
    z-index:120;
}

.pagetop a{
    padding:10px;
}
