:root{

	--base-font: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;

	--sub-font: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;

	--en-font: futura-pt, sans-serif;

	--base-color: #111; 

	--sub-color01: #ff2201; /* 赤 */

	--sub-color02: #3c2d1e; /* 濃い茶 */

	--bg-color01: #f2f2f2; /* 灰色 */

	--bg-color02: #ffe9e6; /* ピンクっぽい */

}



*{ box-sizing: border-box; }

html { font-size: 62.5%; }

body{

	font-family: var(--base-font);

	font-feature-settings: "palt";

	-webkit-font-smoothing: antialiased;

	-moz-osx-font-smoothing: grayscale;

	color: var(--base-color);	

	font-size: 1.4rem;

	font-style: normal;

	font-weight: 400;

	line-height: 1.8;

	letter-spacing: 0.08em;

	text-align: justify;

}



h1,h2,h3,h4,h5,h6{ font-family: var(--sub-font); font-weight: 700; }

.sub-font{ font-family: var(--sub-font); }

.en-font{ font-family: var(--en-font); font-weight: 400; line-height: 1; }



/*** adobe使用フォント

font-family: futura-pt, sans-serif;

font-weight: 400;

***/



a{ transition: .5s; }

a:hover{ opacity: .6; }

br{ line-height: inherit; }

p{ line-height: 2; }

span, a, strong, small{ color: inherit; font-size: inherit; font-family: inherit; font-weight: inherit; letter-spacing: inherit; }



.wrap{ width: 80rem; margin: 0 auto; position: relative; }

.wrap.midium{ width: 90rem; }

.row{ display: flex; justify-content: space-between; }



.linkwrap{ width: 100%; height: 100%; display: block; position: absolute; top: 0; left: 0; z-index: 10; }

.body-wrap{ overflow: hidden; position: relative; }



@media(min-width: 769px){

	.sp{ display: none !important; }

}



.btn{ width: 24rem; height: 4rem; display: flex; align-items: center; background: url(../cms/images/common/arrow01.svg) var(--base-color) no-repeat right 1rem top 1.6rem/2.1rem; color: #fff; padding-left: 1.8rem; }

.btn.white{ background-color: #fff; color: var(--base-color); background-image: url(../cms/images/common/arrow02.svg); }



header{ width: 100%; height: 8rem; background: #fff; display: flex; justify-content: space-between; align-items: center; padding: 0 3rem; position: fixed; top: 0; left: 0; z-index: 9980; }

@media screen and (min-width: 769px) and (max-width: 990px) {header {padding: 0 1rem;}}



@media screen and (min-width: 960px) and (max-width: 1430px) {header .logo{width: 100px;}}

@media screen and (min-width: 769px) and (max-width: 959px) {header .logo{width: 80px;}}

@media screen and (min-width: 960px) and (max-width: 1430px) {header .logo img{max-width: 90%;}}

@media screen and (min-width: 769px) and (max-width: 959px) {header .logo img{max-width: 90%;}}

header nav{ display: flex; align-items: center; }

header nav .gnav{ display: flex; font-weight: 700; }

@media screen and (min-width: 960px) and (max-width: 1430px) {header nav .gnav li{font-size: 1vw;}}

@media screen and (min-width: 769px) and (max-width: 990px) {header nav .gnav li{font-size: .9vw;}}

header nav .gnav li + li{ margin-left: 2rem; }

@media screen and (min-width: 960px) and (max-width: 1430px) {header nav .gnav li + li{ margin-left: 1vw; }}

@media screen and (min-width: 769px) and (max-width: 990px) {header nav .gnav li + li{ margin-left: 0.9vw; }}

header nav .tel{ display: block; padding-left: 2.4rem; font-size: 2.2rem; font-weight: 700; background: url(../cms/images/common/icon-tel01.svg) no-repeat center left/1.6rem; margin: 0 1.9rem 0 3.2rem;letter-spacing: -.01em;}



@media screen and (min-width: 960px) and (max-width: 1430px) { header nav .tel{font-size: 1.5vw;padding-left: 2vw;margin: 0 1vw;}}

@media screen and (min-width: 769px) and (max-width: 959px) { header nav .tel{font-size: 1.3vw;padding-left: 1.5vw;margin: 0 .5vw;background-size: 1.1rem auto;}}

header .insta {display: flex;flex-flow: wrap;justify-content: center;align-items: center;}

@media screen and (min-width: 769px) and (max-width: 990px) {header .insta img{max-width: 80%;}}

@media screen and (min-width: 960px) and (max-width: 1800px) {header .seo-address{font-size: .8vw;}}

@media screen and (min-width: 960px) and (max-width: 1430px) {header .seo-address{font-size: 1vw;letter-spacing: -.01em;}}

@media screen and (min-width: 769px) and (max-width: 990px) {header .seo-address{font-size: 0.9vw;letter-spacing: -.02em;}}

@media screen and (min-width: 769px) and (max-width: 880px) {header .seo-address{font-size: 0.8vw;letter-spacing: -.03em;}}



.info-box > .left{ width: 37rem; }

.info-box > .left h3, .info-box > .left h2{ font-size: 1.6rem; border-bottom: solid 1px; }

.info-box > .left h3 a{ display: block; position: relative; }

.info-box > .left h3 a:after{ content: ''; width: .66rem; height: .66rem; border-bottom: solid 1px; border-right: solid 1px; border-radius: 1px; position: absolute; top: 50%; right: 0; transform: translateY(-50%) rotate(-45deg); }

.info-box > .left .news-table{ width: 100%; margin: 1.4rem 0 3.4rem; }

.info-box > .left .news-table th{ font-weight: 400; white-space: nowrap; width: 1px; font-size: 1rem; vertical-align: middle; padding: 1rem 1em 1rem 0; border-bottom: solid 1px var(--bg-color01); }

.info-box > .left .news-table th span{ display: inline-block; background: var(--bg-color01); border-radius: 2em; padding: 0 .5em; }

.info-box > .left .news-table td{ font-size: 1.2rem; vertical-align: middle; border-bottom: solid 1px var(--bg-color01); padding: .8rem 0;padding-left: 1rem; }

.info-box > .left .news-table td a{ display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.info-box > .left .news-table td .time{ margin-right: 1em; }

.info-box > .left .logo{ display: table; margin: 0 auto 1.5rem; }

.info-box > .left .logo + p.head{ font-size: 2.6rem; font-weight: 700; text-align: center; margin-bottom: 3.6rem; }

.info-box > .left a.tel{ font-size: 3.3rem; font-weight: 700; padding-left: 3.5rem; background: url(../cms/images/common/icon-tel01.svg) no-repeat left center/2.56rem; display: table; margin: 3.5rem auto 0; }

.info-box > .right{ width: 37rem; }

.info-box > .right .map{ display: block; margin-bottom: 1.3rem; }

.info-box > .right p.address{ line-height: 1.6; padding-left: 2.2rem; position: relative; margin-bottom: 3.2rem; }

.info-box > .right p.address:before{ content: ''; width: 1.6rem; height: 2.16rem; background: url(../cms/images/common/icon-pin01.svg) no-repeat center/contain; position: absolute; left: 0; top: 0; }

.info-box > .right .btn{ margin-left: auto; }



.hour-table{ table-layout: fixed; border-bottom: solid 1px; width: 100%; margin: .8rem 0; }

.hour-table th{ width: 11.5rem; text-align: center; vertical-align: middle; }

.hour-table td{ text-align: center; vertical-align: middle; }

.hour-table thead td{ font-weight: 700; }

.hour-table tbody tr:last-of-type > *{ padding-bottom: .6rem; }

.hour-table + p{ line-height: 1.6; }



.treat-list{ display: flex; flex-wrap: wrap; }

.treat-list li{ margin-right: calc((100% - 12rem * 5) / 4); font-weight: 700; }

.treat-list li:nth-of-type(5n){ margin-right: 0; }

.treat-list li:nth-of-type(n+6){ margin-top: 3rem; }

.treat-list li a{ width: 12rem; height: 12rem; border-radius: 100%; background: var(--bg-color01); position: relative; z-index: 0; display: flex; justify-content: center; align-items: flex-end; padding-bottom: 2.8rem; position: relative; }

.treat-list li a:after{ content: ''; width: .66rem; height: .66rem; border-bottom: solid 1px var(--sub-color01); border-right: solid 1px var(--sub-color01); border-radius: 1px; position: absolute; bottom: 1.8rem; left: 50%; transform: translateX(-50%) rotate(45deg); }

.treat-list li img{ width: 100%; position: absolute; top: 0; left: 0; z-index: -1; }



footer .info-box{ margin-bottom: 15rem; }

footer .foot-bg{ background: url(../cms/images/common/webp/footer-bg01.webp) no-repeat center/cover; color: #fff; padding: 7rem 0 1.5rem; }

footer .foot-bg .sitemap{ justify-content: flex-start; margin-bottom: 5rem; }

footer .foot-bg .sitemap > ul + ul{ margin-left: 4rem; }

footer .foot-bg .sitemap > ul > li{ font-weight: 700; }

footer .foot-bg .sitemap > ul > li + li{ margin-top: .6rem; }

footer .foot-bg .sitemap > ul > li.parent .row{ margin-top: .6rem; }

footer .foot-bg .sitemap > ul > li.parent .child + .child{ margin-left: 3rem; }

footer .foot-bg .sitemap > ul > li.parent .child li{ font-size: 1.2rem; font-weight: 400; padding-left: 1em; position: relative; }

footer .foot-bg .sitemap > ul > li.parent .child li:before{ content: '-'; position: absolute; left: 0; }

footer .foot-bg .sitemap > ul > li.parent .child li + li{ margin-top: .4rem; }

footer .foot-bg .copy{ display: block; text-align: center; font-size: 1.2rem;padding-bottom: 2rem; }



.float-resv{ width: 14rem; height: 14rem; border-radius: 100%; background: var(--sub-color01); color: #fff; font-size: 1.8rem; font-weight: 700; display: flex; justify-content: center; align-items: center; position: fixed; bottom: 5rem; right: 5rem; z-index: 9979; }

.float-resv span{ padding: 3.2rem 0 1.3rem; background: url(../cms/images/common/icon-resv01.svg) no-repeat top center/3rem; position: relative; }

.float-resv span:after{ content: ''; width: .66rem; height: .66rem; border-bottom: solid 1px; border-right: solid 1px; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%) rotate(45deg); }





@media(max-width: 768px){

	html{ font-size: 2.66vw; }

	body{ font-size: 1.2rem; }

	p{ line-height: 2; letter-spacing: .1em; }



	.pc{ display: none !important; }



	.body-wrap{ padding-bottom: 6rem; }

	.wrap{ width: 100%; padding-left: 2.5rem; padding-right: 2.5rem; }

	.wrap.midium{ width: 100%; }

	.row{ flex-wrap: wrap; }



	.btn{ height: 5rem; background-position: center right 1rem; margin-left: auto; margin-right: auto; }



	header .logo{ position: absolute; top: 2rem; left: 2rem; }

	header .logo img{ width: 10.9rem; }

	header nav{ display: block; position: fixed; top: 0; right: -32.5rem; z-index: 9989; width: 32.5rem; height: 94vh; background: var(--sub-color01); color: #fff; padding: 7rem 2rem 5rem; overflow: scroll; transition: .5s; }

	header nav.active{ right: 0; }

	header nav .gnav{ display: block; margin-bottom: 7rem; }

	header nav .gnav li{ line-height: 3.2; border-bottom: solid 1px; text-align: center; }

	header nav .gnav li + li{ margin-left: 0; }

	header nav .insta{ display: table; margin: 0 auto; }

	header nav .insta img{ width: 4rem; filter: brightness(0) invert(1); }



	.info-box > .left{ width: 100%; margin-bottom: 5rem; }

	.info-box > .left .logo img{ width: 18.5rem; }

	.info-box > .left .logo + p.head{ white-space: nowrap; }

	.info-box > .left .news-table{ margin-bottom: 2rem; }

	.info-box > .left .news-table th{ vertical-align: initial; }

	.info-box > .left .news-table td a span{ display: block; line-height: 1.6; }

	.info-box > .left .news-table td a span.ttl{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

	.info-box > .left .news-table tr:last-of-type > *{ border-bottom: none; }

	.info-box > .right{ width: 100%; }

	.info-box > .right .map{ width: 100%; }



	.treat-list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 1.5rem 2%;
	position: relative;
	left: auto;
	transform: none;
}

.treat-list li{
	width: 32%;
	margin-right: 0;
	font-size: 1.3rem;
}

.treat-list li:nth-of-type(n+4){
	margin-top: 0;
}

.treat-list li a{
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	padding-bottom: 2rem;
}

.treat-list li a:after{
	bottom: 1.2rem;
}

	footer .info-box{ margin-bottom: 10rem; }

	footer .foot-bg{ padding: 4.5rem 0 1.4rem; }

	footer .foot-bg .sitemap{ margin-bottom: 6rem; }

	footer .foot-bg .sitemap > ul{ width: 100%; }

	footer .foot-bg .sitemap > ul + ul{ margin-left: 0; }

	footer .foot-bg .sitemap > ul > li{ border-bottom: solid 1px #4d4d4d; padding: .4em 0; }

	footer .foot-bg .sitemap > ul > li + li{ margin-top: 0; }

	footer .foot-bg .sitemap > ul > li.parent{ border-bottom: none; margin-bottom: 2rem; }

	footer .foot-bg .sitemap > ul > li.parent .child + .child{ margin-left: 0; }



	.float-resv{ width: 50vw; height: 6rem; font-size: 1.6rem; border-radius: 0; bottom: 0; right: 0; }

	.float-resv span{ padding: 0 0 0 4rem; line-height: 3; background-size: 3rem; background-position: left center; }

	.float-resv span:after{ content: none; }

	.float-tel{ width: 50vw; height: 6rem; font-size: 1.6rem; font-weight: 700; background: var(--base-color); color: #fff; display: flex; justify-content: center; align-items: center; position: fixed; bottom: 0; left: 0; z-index: 9979; }

	.float-tel span{ padding-left: 3.4rem; line-height: 3; background: url(../cms/images/common/icon-tel02.svg) no-repeat center left/2.57rem; }



    .float-resv.sp{display: flex;}

    .float-tel.sp{display: flex;}

    

	.menu-btn{ width: 6rem; height: 6rem; border-radius: 100%; background: var(--sub-color01); position: fixed; top: 1rem; right: 1.5rem; z-index: 9990; color: #fff; padding-top: 1.6rem; }

	.menu-btn .inner{ width: 2rem; height: 1.3rem; position: relative; margin: 0 auto .5rem; }

	.menu-btn .inner span{ width: 100%; height: 1px; background: #fff; position: absolute; left: 0; transition: .5s; }

	.menu-btn .inner span:nth-of-type(1){ top: 0; }

	.menu-btn .inner span:nth-of-type(2){ top: 50%; transform: translateY(-50%); }

	.menu-btn .inner span:nth-of-type(3){ bottom: 0; }

	.menu-btn.active .inner span:nth-of-type(1){ top: 50%; transform: translateY(-50%) rotate(45deg); }

	.menu-btn.active .inner span:nth-of-type(2){ opacity: 0; }

	.menu-btn.active .inner span:nth-of-type(3){ bottom: 50%; transform: translateY(50%) rotate(-45deg); }

	.menu-btn > span{ display: block; text-align: center; font-size: 1.1rem; letter-spacing: 0; }

}



/*sp-menu*/

.sp-menu{display: none;}

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

    .sp-menu{display: flex; justify-content: flex-start; margin-bottom: 3rem;flex-wrap: wrap; }

    .sp-menu ul.gnav {margin-bottom: 2rem; column-count: 2;}

    .sp-menu ul.gnav li{margin-bottom: 0rem; font-weight: 700; border-bottom: solid 1px;}

    .sp-menu > ul {margin-bottom: 2rem;}

    .sp-menu > ul + ul{margin-top: 0px; padding-top: 0px;}

    .sp-menu > ul > li{ font-weight: 700; padding: 0px; margin-bottom: 1.5rem; font-size: 1.5rem;}

    .sp-menu > ul > li + li{ margin-top: .2rem; }

    .sp-menu > ul > li.parent .row{ margin-top:1rem; }

    .sp-menu > ul > li.parent .child + .child{ margin-left: 2rem; }

    .sp-menu > ul > li.parent .child li{ font-size: 1.4rem; font-weight: 700; position: relative; margin-bottom: 1rem; padding-bottom: 0px!important; padding-right: 0!important;}

    

    .row {display: flex;justify-content: space-between;}

    .treat-gnav .parent .row .child li a{display: flex; align-items: center; font-weight: 700;}

    .treat-gnav .parent .row .child li a:before {

        content: "";

        display: block;

        width: 1.7rem;

        height: 1.75rem;

        background-repeat: no-repeat;

        background-position: center;

        background-size: contain;

        margin-right: 0.6rem;

        transition: .5s;

        transform: rotateY( 0deg );

    }  

    .treat-gnav .parent .row .child.child01 li:nth-child(1) a:before {

    background-image: url(../cms/images/common/treatment_ico05.png);

    }

    .treat-gnav .parent .row .child.child01 li:nth-child(2) a:before {

    background-image: url(../cms/images/common/treatment_ico07.png);

    }

    .treat-gnav .parent .row .child.child01 li:nth-child(3) a:before {

    background-image: url(../cms/images/common/treatment_ico01.png);

    }

    .treat-gnav .parent .row .child.child01 li:nth-child(4) a:before {

    background-image: url(../cms/images/common/treatment_ico06.png);

    }

    .treat-gnav .parent .row .child.child01 li:nth-child(5) a:before {

    background-image: url(../cms/images/common/treatment_ico02.png);

    }

    .treat-gnav .parent .row .child.child01 li:nth-child(6) a:before {

    background-image: url(../cms/images/common/treatment_ico12.png);

    }

    .treat-gnav .parent .row .child.child01 li:nth-child(7) a:before {

    background-image: url(../cms/images/common/treatment_ico13.png);

    }

    .treat-gnav .parent .row .child.child02 li:nth-child(1) a:before {

    background-image: url(../cms/images/common/treatment_ico11.png);

    }

    .treat-gnav .parent .row .child.child02 li:nth-child(2) a:before {

    background-image: url(../cms/images/common/treatment_ico04.png);

    }

    .treat-gnav .parent .row .child.child02 li:nth-child(3) a:before {

    background-image: url(../cms/images/common/treatment_ico03.png);

    }

    .treat-gnav .parent .row .child.child02 li:nth-child(4) a:before {

    background-image: url(../cms/images/common/treatment_ico08.png);

    }

    .treat-gnav .parent .row .child.child02 li:nth-child(5) a:before {

    background-image: url(../cms/images/common/treatment_ico09.png);

    }

    .treat-gnav .parent .row .child.child02 li:nth-child(6) a:before {

    background-image: url(../cms/images/common/treatment_ico10.png);

    }

    .treat-gnav .parent .row .child.child02 li:nth-child(7) a:before {

	background-image: url(../cms/images/common/treatment_ico19.png);

	}

    }