@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300..700;1,300..700&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700&display=swap');

.noto-serif-jp{
    font-family: "Noto Serif JP";
}

.cormorant{
    font-family: "Cormorant";
}

.zen-maru-gothic-regular{
    font-family: "Zen Maru Gothic";
}


html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
	font-size: 100%;
	vertical-align: baseline;
	font-family: "Noto Sans JP","メイリオ","ms pgothic", sans-serif;
	color: #484242;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}

html{
    overflow-y: scroll;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

input, textarea{
	margin: 0;
	padding: 0;
}

ol, ul{
    list-style:none;
}

table{
    border-collapse: collapse; 
    border-spacing:0;
}

caption, th{
    text-align: left;
}

a:focus {
	outline:none;
}

body{
	line-height: 150%;
	overflow: hidden;
	-webkit-text-size-adjust: 100%;
}

a{
	text-decoration: none;
}

img{
	max-width: 100%;
    image-rendering: -webkit-optimize-contrast;
}

.trim img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

p,
a,
li{
	font-size: 3.5vw;
	line-height: 170%;
}

p a,
li a{
	font-size: inherit;
	font-family: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
a{
	letter-spacing: 0.1em;
}

h1,
h2,
h3,
h4,
h5,
h6,
h7,
h7{
	line-height: 150%;
}


/* font-size
   ================================================================== */
.f13{
    font-size: 3.0vw;
}

.f14{
    font-size: 3.1vw;
}

.red{
	color: #E74C3C;
}

.red2{
	color: #C44569;
}

.center{
	text-align: center;
}


.tab,
.pc{
	display: none;
}

.photo{
	line-height: 0;
}

.inner{
	padding-left: 3vw;
	padding-right: 3vw;
}

#wrap{
    padding-top: 70px;
	position: relative;
    background: #fff;
}


/* header
   ================================================================== */
header{
	position: fixed;
    z-index: 10;
    top: 0;
    width: 100%;
}

header > .inner{
	padding: 0 3vw;
    box-sizing: border-box;
    height: 70px;
    display: flex;
    align-items: center;
    background: rgba(255,255,255,.8);
}

header .site_logo{
    line-height: 0;
    width: 40px;
    z-index: 1;
}

.site_logo a{
    display: block;
    line-height: 0;
}

.site_logo img{
    width: 100%;
}

header .header_btn.pc_only{
    display: none;
}

.header_btn{
    display: flex;
    align-items: center;
    justify-content: center;
}

.header_btn .sns_btn{
    margin: 0 0 0 3vw;
}


/* Navi
   ================================================================== */
.ham_btn{
    position: fixed;
    right: 0;
    top: 0;
    font-size: 26px;
    color: #222;
    display: block;
    z-index: 500;
    text-align: center;
    cursor: pointer;
    width: 70px;
    height: 70px;
    box-sizing: border-box;
    padding: 24px 15px;
	transition: ease-out 0.3s;
}

.scroll_move .ham_btn{
    background: rgba(255,255,255,.8);
}

.scroll_move .ham_btn.open{
    background: rgba(0,0,0,0);
}

.ham_btn .inner{
    padding: 10px 0 0;
    width: 40px;
    height: 23px;
    display: block;
    position: relative;
    transition: ease-out 0.8s;
    box-sizing: border-box;
}


.ham_btn .inner .bar,
.ham_btn .inner .bar:before,
.ham_btn .inner .bar:after{
    transition: ease-out 0.3s;
    text-indent: -9999px;
    height: 2px;
    width: 40px;
    background: #222;
    display: block;
}

.ham_btn .inner .bar:before{
    content: "";
    position: absolute;
    top: 6px;
    left: 0;
}

.ham_btn .inner .bar:after{
    content: "";
    position: absolute;
    bottom: 7px;
    left: 0;
}

.ham_btn.open{
    transform: rotate(0deg);
}

.ham_btn .bar{
    background: transparent !important;
}

.ham_btn.open .bar:before{
    transform: rotate(45deg);
    top: 11px;
}

.ham_btn.open .bar:after{
    transform: rotate(-45deg);
    bottom: 10px;
}

body.open{
    position: fixed;
    width: 100%;
}

header::before{
    content: "";
    background: #F6F6F6;
    width: 100%;
    height: 70px;
    position: fixed;
    top: 0;
    left: -100vw;
    z-index: 21;
    transition: all cubic-bezier(0.77, 0, 0.175, 1) 0.6s;
    transition-delay: .3s;
}

.open header::before{
    left: 0;
    transition-delay: .3s;
}
    
header .nav_logo{
    width: 40px;
    height: 54px;
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 50;
    opacity: 0;
    transform: scale(1,0);
    animation: navilogo_off 0s cubic-bezier(0.165, 0.84, 0.44, 1) 0s 1 normal both;
}
    
header .nav_logo a{
    background-image: url("../images/common/logo.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    display: block;
    width: 100%;
    height: 100%;
}
    
header .nav_logo a img{
    opacity: 0;
}

.open header .nav_logo{
    animation: navilogo_on .8s cubic-bezier(0.165, 0.84, 0.44, 1) 0s 1 normal both;
    animation-delay: .5s;
}

.index.open header .site_logo{
    opacity: 1;
    visibility: visible;
}

.slide_menu{
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    position: fixed;
    top: 0;
    right: -100vw;
    width: 100vw;
    height: 100vh;
    background: rgba(255,255,255,1);
    padding: 0;
    box-sizing: border-box;
    z-index: 20;
    transition: all cubic-bezier(0.77, 0, 0.175, 1) 0.6s;
    overflow: auto;
}

.slide_menu.open{
    right: 0;
}

.slide_menu > .inbox{
    margin: 24vw 0 0;
    padding: 0 0 10vw;
}

.slide_nav .gnav{
    padding: 0 3vw;
    overflow: hidden;
    width: 100%;
    font-size: 0;
    box-sizing: border-box;
}    

.slide_nav .gnav > li{
    margin: 6vw 0 0;
    padding: 0;
    width: 50%;
    display: inline-block;
    vertical-align: top;
    box-sizing: border-box;
}

.slide_nav .gnav > li > div{
    overflow: hidden;
}

.slide_nav .nav_category h3 a,
.slide_nav .gnav > li > div span,
.slide_nav .gnav > li a{
    padding: 0;
    display: inline-block;
    transition: all ease-out 0.3s;
    z-index: 2;
    box-sizing: border-box;
    font-size: 4.5vw;
    letter-spacing: 0.1em;
    font-weight: 500;
    color: #484242;
    line-height: 120%;
}

.slide_nav li{
    overflow: hidden;
    line-height: 1;
}

.slide_nav .gnav > li > a{
    transition: transform .3s cubic-bezier(1, 0.01, 0.67, 0.56);
    transform: translateY(100px);
}

.slide_menu.open .slide_nav .gnav > li > a{
    transform: translateY(0);
    transition: transform 1s cubic-bezier(1, 0.01, 0.67, 0.56),color .3s,background .3s;
}

/* ナビ時のロゴ */
@keyframes navilogo_off {
    0% {
        transform: scale(1,1);
        opacity: 1;
    }
    50% {
        transform: scale(1,1);
        opacity: 0;
    }
    100% {
        transform: scale(1,0);
        opacity: 0;
    }
}

@keyframes navilogo_on {
    0% {
        transform: scale(1,0);
        opacity: 0;
    }
    50%{
        transform: scale(1,1);
        opacity: 0;
    }
    100% {
        transform: scale(1,1);
        opacity: 1;
    }
}

.slide_nav .nav_category{
    border-top: none;
    padding: 6vw 3vw 8vw;
}

.slide_nav .nav_category h3{
    margin-bottom: 5vw;
}

.slide_nav .nav_category{
    animation: navicategory_off 0s cubic-bezier(0.165, 0.84, 0.44, 1) 0s 1 normal both;
}

.slide_menu.open .slide_nav .nav_category{
    animation: navicategory_on .3s cubic-bezier(0.165, 0.84, 0.44, 1) 0s 1 normal both;
    animation-delay: .8s;
}

@keyframes navicategory_off {
    0% {
        transform: translateY(30px);
        opacity: 1;
    }
    50% {
        transform: translateY(30px);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 0;
    }
}

@keyframes navicategory_on {
    0% {
        transform: translateY(30px);
        opacity: 0;
    }
    30%{
        transform: translateY(30px);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}


/* language_box
   ================================================================== */
.language_box{
    position: fixed;
    right: 80px;
    top: 15px;
    z-index: 501;
}

.language_box .language_btn{
    display: flex;
    justify-content: center;
    align-items: center;
    background: #484242;
    cursor: pointer;
    width: 40px;
    height: 40px;
    line-height: 0;
    box-sizing: border-box;
    border-radius: 100%;
}

.language_box .language_btn .icon{
    margin: auto;
    width: 50%;
    line-height: 0;
    text-align: center;
}

.language_box .language_btn .icon img{
    width: 100%;
    transition: .3s;
}

.language_box .language_btn.open .icon img{
    transform: rotate(45deg);
}

.language_box .languages{
    position: absolute;
    top: calc(100% + 2vw);
    right: -10vw;
    width: 45vw;
    display: none;
}

.language_box .languages li a{
    padding: 3vw 8vw 3vw 3vw;
    font-size: 3.5vw;
    font-weight: 500;
    font-family: "Noto Serif JP";
    display: block;
    background: rgba(0,0,0,.9);
    border-bottom: 1px solid #5A5A5A;
    color: #fff;
    position: relative;
}

.language_box .languages li a::before{
    content: "";
    background-image: url("../images/common/icon_arrow.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 15%;
    width: 8vw;
    height: 100%;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
}


/* footer_ALL
   ================================================================== */
footer{
	background: #fff;
    position: relative;
    z-index: 1;
}

/* footer_nav */
.footer_nav{
    margin: 0 -3vw;
	padding: 0 0 0;
}

.footer_nav ul li a{
	padding: 4vw 6vw;
    font-size: 3.5vw;
    font-weight: 500;
    display: block;
    border-top: 1px solid #E8E8E8;
}

/* nav_category */
.nav_category{
	padding: 8vw 0;
    border-top: 1px solid #E8E8E8;
}

.nav_category h3{
    font-size: 3.5vw;
    font-weight: 500;
}

/* footer_company */
.footer_company{
	padding: 8vw 0 0;
    border-top: 1px solid #E8E8E8;
}

.footer_company .site_logo{
	width: 25vw;
}

.footer_company .company_info_add{
    margin: 5vw 0 0;
}

.footer_company .company_info_add .clinic_name{
    margin: 0 0 2vw;
    font-size: 4vw;
}

.footer_company .company_info_list{
    margin: 5vw 0 0;
}

/* footer_bottom */
.footer_bottom{
    padding: 8vw 0;
}

.footer_bottom adress{
    font-size: 3.3vw;
    color: #C5BCB7;
    letter-spacing: 0.1em;
}


/* sns_btn
   ================================================================== */
.sns_btn{
    margin: 0 0 0;
    display: flex;
}

.sns_btn li{
    margin-left: 1vw;
    width: 10vw;
    line-height: 0;
}

.sns_btn.wid40 li{
    margin-left: 2vw;
    width: 12vw;
}

.sns_btn li:first-child{
    margin-left: 0;
}

.sns_btn li a{
    display: block;
    line-height: 0;
}

.sns_btn li a img{
    width: 100%;
}


/* contents_wrap
   ================================================================== */
.contents_wrap{
    margin: 0 0 0;
    padding: 0 0 0;
    position: relative;
    z-index: 1;
    background: #fff;
}


/* under_kv
   ================================================================== */
.under_kv{
}

.under_kv .title_bg{
    height: 26vw;
    max-width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #F4F1EF;
}

.page_title{
    position: relative;
    text-align: center;
}

.page_title > span{
    display: block;
    line-height: 100%;
    font-weight: 400;
}

.page_title .eng{
    font-size: 10vw;
    font-family: "Cormorant";
    letter-spacing: 0.09em;
}

.page_title .jpn{
    margin: 3vw 0 0;
    font-size: 3.4vw;
    letter-spacing: 0.1em;
}

/* page_kv */
.page_kv{
    width: 90vw;
    height: 50vw;
    border-radius: 0 0 50px 0;
    overflow: hidden;
    line-height: 0;
}

.page_kv img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* page_kv_all */
.page_kv_all{
    height: 30vw;
    line-height: 0;
}

.page_kv_all img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}


/* pankz
   ================================================================== */
.pankz{
    margin: 0;
    padding: 3vw 0;
    font-size: 0;
}

.pankz > li{
    margin: 0 8vw 0 0;
    display: inline-block;
    vertical-align: top;
    position: relative;
}

.pankz > li:last-child{
    margin-right: 0;
}

.pankz > li::before{
    content: "";
    background-image: url("../images/common/icon_pankz_arrow.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 1.5vw;
    height: 6vw;
    position: absolute;
    top: 0;
    left: calc(100% + 3vw);
}

.pankz > li:last-child::before{
    display: none;
}

.pankz > li > span,
.pankz > li a{
    font-size: 3.5vw;
    font-weight: 400;
    color: #484242;
}


/* block_title
   ================================================================== */
.block_title{
    font-size: 12vw;
    position: relative;
}

.block_title > span{
    display: block;
    line-height: 100%;
    letter-spacing: 0.09em;
    font-weight: 400;
    font-family: "Cormorant";
}

.block_title .front{
    font-size: 1em;
    position: relative;
    z-index: 1;
    color: #484242;
}

.block_title .back{
    font-size: 1.36em;
    bottom: 1.5vw;
    left: 2vw;
    color: #F8F7F6;
    position: absolute;
}

.block_title.color1 .back{
    color: #fff;
}

.block_title.color2 .back{
    color: #F5EEEE;
}


/* title_jpn
   ================================================================== */
.title_jpn{
    margin: 3vw 0 0;
	font-size: 3.4vw;
}


/* block_border_title
   ================================================================== */
.block_border_title{
    padding: 4vw 0 0;
    font-size: 5.5vw;
    letter-spacing: 0.05em;
    font-family: "Noto Serif JP";
    border-top: 1px solid #E8E8E8;
    position: relative;
}

.block_border_title::before{
    content: "";
    background: #D8A1A1;
    width: 20vw;
    height: 3px;
    position: absolute;
    top: -1px;
    left: 0;
}


/* .block_border_title.size_20
   ================================================================== */
.block_border_title.size_20{
    padding: 4vw 0 0 3vw;
    font-size: 4.0vw;
    letter-spacing: 0.1em;
    font-family: "Noto Sans JP";
}

.block_border_title.size_20::before{
    background: #C5BCB7;
}


/* check_title01
   ================================================================== */
.check_title01{
    padding: 0 0 0 7vw;
    font-size: 3.6vw;
    line-height: 150%;
    font-weight: 500;
    position: relative;
}

.check_title01.f17{
    font-size: 3.7vw;
}

.check_title01::before{
    content: "";
    background-image: url("../images/common/icon_check01.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 4.5vw;
    height: 4.5vw;
    position: absolute;
    top: .5vw;
    left: 0;
}


/* check_title02
   ================================================================== */
.check_title02{
    padding: 0 0 0 7vw;
    font-size: 3.5vw;
    color: #846491;
    line-height: 150%;
    font-weight: 500;
    position: relative;
}

.check_title02::before{
    content: "";
    background-image: url("../images/common/icon_check02.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 4.5vw;
    height: 4.5vw;
    position: absolute;
    top: .5vw;
    left: 0;
}

.check_title01 + p,
.check_title02 + p{
    margin: 3vw 0 0;
}


/* googlemaps_btn
   ================================================================== */
.googlemaps_btn a{
    width: 34vw;
    height: 9vw;
    font-size: 3.5vw;
    color: #fff;
    line-height: 1;
    background: #C5BCB7;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50px;
}


/* btn
   ================================================================== */	
.btn{
	text-align: center;
	line-height: 0;
}

.btn.left{
	text-align: left;
}

.btn a{
	padding: 0 5vw;
    height: 11vw;
	width: auto;
	background: #C44569;
	position: relative;
	display: inline-flex;
    justify-content: center;
    align-items: center;
    text-align: center;
	font-size: 4vw;
    font-weight: 500;
    letter-spacing: 0.10em;
    line-height: 150%;
	color: #fff;
    border-radius: 100px;
    box-sizing: border-box;
}

.btn.arrow_btn a{
	padding: 0 2vw 0 0;
	width: 45vw;
    height: 12vw;
	background: #C5BCB7;
	font-size: 3.6vw;
    font-family: "Cormorant";
    font-weight: 600;
}

.btn.arrow_btn svg{
    margin: auto;
    width: 1.5vw;
    height: 2.5vw;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 6vw;
}

.btn.wid250 a{
	width: 67vw;
	background: #89CAD4;
	font-size: 3.4vw;
    font-weight: 500;
    font-family: "Noto Sans JP";
}


@media screen and (min-width : 500px){

	
	p,
	a,
	li{
		font-size: 1.5vw;
        line-height: 2.7vw;
	}
    
    a.over{
    	transition: all ease-out 0.3s;
    }
    	
    a.over:hover{
    	opacity: 0.6;
    }


    /* font-size
       ================================================================== */
    .f13{
        font-size: 1.3vw;
    }

    .f14{
        font-size: 1.4vw;
    }

    .pc_center{
        text-align: center;
    }

	.sp{
		display: none;
	}

	.tab{
		display: inherit;
	}

    .inner{
    	padding-left: 2vw;
    	padding-right: 2vw;
    }


    /* header
       ================================================================== */
    header > .inner{
    	padding: 0 125px 0 2vw;
        height: 70px;
    }
    
    header .site_logo{
        width: 40px;
    }
   
    header .header_btn.pc_only{
        margin: 0 0 0 auto;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        z-index: 120;
    }
    
    .slide_menu .header_btn{
        display: none;
    }

    .header_btn .sns_btn{
        margin: 0 0 0 1.5vw;
    }


    /* Navi
       ================================================================== */
    header::before{
        width: 24vw;
        height: 100vh;
        top: -100vh;
        left: 0;
    }
    
    .open header::before{
        top: 0;
    }
    
    header .nav_logo{
        width: 8.2vw;
        height: 13.2vw;
        position: fixed;
        top: calc(50% - 6.6vw);
        left: calc((12%) - 4.1vw);
        z-index: 50;
        opacity: 0;
        transform: scale(1,0);
        animation: navilogo_off 0s cubic-bezier(0.165, 0.84, 0.44, 1) 0s 1 normal both;
    }
    
    .open header .nav_logo{
        animation: navilogo_on .8s cubic-bezier(0.165, 0.84, 0.44, 1) 0s 1 normal both;
        animation-delay: .5s;
    }

    .index.open header .site_logo{
        opacity: 0;
        visibility: hidden;
    }
    
    .slide_menu{
        padding: 0;
        bottom: auto;
        top: -100vh;
        left: 24vw;
        width: calc(100% - 24vw);
        height: 100vh;
    }
    
    .slide_menu.open{
        top: 0;
        left: 24vw;
    }

    .slide_menu > .inbox{
        margin: 0 0 0;
        padding: 13vw 0 0 4vw;
    }

    .slide_nav .gnav{
        padding: 0;
        overflow: hidden;
        width: auto;
        font-size: 0;
        text-align: left;
    }

    .slide_nav .gnav > li{
        margin: 3.5vw 4.0vw 0 0;
        padding: 0;
        width: auto;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .slide_nav .gnav > li:nth-child(5){
        margin-right: calc(100% - 54vw);
    }

    .slide_nav .gnav > li:last-child{
        margin-right: 0;
    }
    
    .slide_nav .nav_category h3 a,
    .slide_nav .gnav > li > a{
        padding: 0;
        font-size: 1.8vw;
    }
    
    .slide_nav .nav_category h3 a,
    .slide_nav .gnav > li > a{
        transition: .3s;
    }
    
    header .ham_btn.open:hover .bar:before,
    header .ham_btn.open:hover .bar:after{
        background: #C44569;
    }
    
    .slide_nav .nav_category h3 a:hover,
    .slide_nav .gnav > li > a:hover{
        color: #C44569;
    }

    .slide_nav .nav_category{
        padding: 3.5vw 0;
        width: 65.0vw;
    }

    .slide_nav .nav_category h3{
        margin-bottom: 2.0vw;
    }
    
    .slide_nav .nav_category .categories_link > li{
        width: 24%;
    }
    
    .slide_nav .nav_category .categories_link > li:nth-child(6n+6){
        margin-right: 1%;
    }
    
    .slide_nav .nav_category .categories_link > li:nth-child(4n+4){
        margin-right: 0;
    }


    /* language_box
       ================================================================== */
    .language_box{
        position: fixed;
        right: 75px;
        top: 17px;
    }
    
    .language_box .language_btn{
        padding: 0 0 0;
        width: 36px;
        height: 36px;
    }
    
    .language_box .language_btn .icon{
        width: 50%;
    }
    
    .language_box .language_btn:hover .icon img,
    .language_box .language_btn.open .icon img{
        transform: rotate(45deg);
    }

    .language_box .languages{
        position: absolute;
        top: calc(100% + 1.3vw);
        right: -60px;
        width: 23.0vw;
    }
    
    .language_box .languages li a{
        padding: 1.8vw 4.0vw 1.8vw 2.0vw;
        font-size: 1.4vw;
    }
    
    .language_box .languages li a::before{
        background-size: .6vw;
        width: 4.0vw;
    }
    
    .language_box .languages li a::after{
        content: "";
        background: #fff;
        width: 100%;
        height: 1px;
        position: absolute;
        left: 0;
        bottom: 0;
        transition: .3s transform;
        transform: scaleX(0);
        transform-origin: right center;
    }
    
    .language_box .languages li a:hover::after{
        transform: scaleX(1);
        transform-origin: left center;
    }


    /* footer_ALL
       ================================================================== */
    footer{

    }

    /* footer_nav */
    .footer_nav{
        margin: 0;
        padding: 1.0vw 0 3.0vw;
        border-top: 1px solid #E8E8E8;
    }

    .footer_nav ul{
        font-size: 0;
    }

    .footer_nav ul li{
        margin: 2.0vw 3.0vw 0 0;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .footer_nav ul li:last-child{
        margin-right: 0;
    }

    .footer_nav ul li a{
        padding: 0;
        font-size: 1.5vw;
        border: none;
        transition: .3s;
    }

    .footer_nav ul li a:hover{
        text-decoration: underline;
    }

    /* nav_category */
    .nav_category{
        padding: 3.0vw 0;
    }

    .nav_category h3{
        font-size: 1.5vw;
    }

    /* footer_company */
    .footer_company{
        padding: 3.0vw 0 0;
    }

    .footer_company .site_logo{
        width: 8.7vw;
    }

    .footer_company .company_info_add{
        margin: 2.0vw 0 0;
    }

    .footer_company .company_info_add .clinic_name{
        margin: 0 0 .5vw;
        font-size: 1.8vw;
    }

    .footer_company .company_info_list{
        margin: 2.0vw 0 0;
    }

    /* footer_bottom */
    .footer_bottom{
        padding: 3.5vw 0;
    }

    .footer_bottom adress{
        font-size: 1.3vw;
    }


    /* sns_btn
       ================================================================== */
    .sns_btn li{
        margin-left: .8vw;
        width: 3.6vw;
    }

    .header_btn .sns_btn li{
        width: 36px;
    }

    .sns_btn.wid40 li{
        margin-left: 1.0vw;
        width: 4.0vw;
    }


    /* contents_wrap
       ================================================================== */
    .contents_wrap{
        padding: 0 0 0;
    }
	

    /* under_kv
       ================================================================== */
    .under_kv .title_bg{
        height: 17.0vw;
    }

    .page_title .eng{
        font-size: 5.5vw;
    }

    .page_title .jpn{
        margin: 2.7vw 0 0;
        font-size: 1.4vw;
    }

    /* page_kv */
    .page_kv{
        width: 87%;
        height: 50.0vw;
    }

    .page_kv.h430{
        width: 92%;
        height: 43.0vw;
    }

    /* page_kv_all */
    .page_kv_all{
        height: 33.0vw;
    }


    /* pankz
       ================================================================== */
    .pankz{
         padding: 2.1vw 0;
        box-sizing: border-box;
    }

    .pankz > li{
        margin: 0 3.0vw 0 0;
    }

    .pankz > li::before{
        width: .5vw;
        height: 2.5vw;
        left: calc(100% + 1.0vw);
    }

    .pankz > li > span,
    .pankz > li a{
        font-size: 1.4vw;
    }

    .pankz > li a:hover{
        text-decoration: underline;
    }


    /* block_title
       ================================================================== */
    .block_title{
        font-size: 7.6vw;
    }

    .block_title .back{
        bottom: 1.0vw;
        left: 1.4vw;
    }


    /* title_jpn
       ================================================================== */
    .title_jpn{
        margin: 3.0vw 0 0;
        font-size: 1.4vw;
    }


    /* block_border_title
       ================================================================== */
    .block_border_title{
        padding: 2.0vw 0 0;
        font-size: 2.5vw;
    }

    .block_border_title::before{
        width: 10.0vw;
    }


    /* .block_border_title.size_20
       ================================================================== */
    .block_border_title.size_20{
        padding: 1.7vw 0 0 2.0vw;
        font-size: 2.0vw;
    }


    /* check_title01
       ================================================================== */
    .check_title01{
        padding: 0 0 0 3.4vw;
        font-size: 1.6vw;
    }

    .check_title01.f17{
        font-size: 1.7vw;
    }

    .check_title01::before{
        width: 2.1vw;
        height: 2.1vw;
        top: .4vw;
    }


    /* check_title02
       ================================================================== */
    .check_title02{
        padding: 0 0 0 3.4vw;
        font-size: 1.5vw;
    }

    .check_title02::before{
        width: 2.5vw;
        height: 2.1vw;
        top: -.2vw;
    }

    .check_title01 + p,
    .check_title02 + p{
        margin: 1.0vw 0 0;
    }


    /* googlemaps_btn
       ================================================================== */
    .googlemaps_btn a{
        width: 11.8vw;
        height: 3.1vw;
        font-size: 1.2vw;
        transition: .3s;
    }

    .googlemaps_btn a:hover{
        background: #89CAD4;
    }


	/* btn
	   ================================================================== */	
	.btn a{
	    padding: 0;
	    width: 20vw;
        height: 5vw;
	    background: #C44569;
	    border: 1px solid #C44569;
	    font-size: 1.6vw;
        transition: .3s ease;
	}

    .btn.arrow_btn a{
        padding: 0 2vw 0 0;
        width: 20.0vw;
        height: 5.5vw;
        border-color: #C5BCB7;
        font-size: 1.6vw;
    }

    .btn.arrow_btn svg{
        width: .6vw;
        height: 1.0vw;
        right: 2.3vw;
    }

    .btn.arrow_btn svg path{
        transition: .3s;
    }

    .btn.wid250 a{
        width: 25.0vw;
        font-size: 1.4vw;
        border-color: #89CAD4;
    }
    
	.btn a:hover{
	    color: #C44569;
	    background: #fff;
	}

	.btn.arrow_btn a:hover{
	    color: #C5BCB7;
	}
        
    .btn.arrow_btn a:hover svg path{
        fill: #C5BCB7;
    }

	.btn.wid250 a:hover{
	    color: #89CAD4;
	}
        
    .btn.wid250 a:hover svg path{
        fill: #89CAD4;
    }

	
}
@media screen and (min-width : 1040px){

	
    a{
    	text-decoration: none;
    }
    
    .inner{
    	padding-left: 0;
    	padding-right: 0;
    	max-width: 1000px;
    	margin: auto;
		box-sizing: border-box;
    }
	
	p,
	a,
	li{
		font-size: 15px;
        line-height: 27px;
	}
 

    /* font-size
       ================================================================== */
    .f13{
        font-size: 13px;
    }

    .f14{
        font-size: 14px;
    }

	.tab{
		display: none;
	}

	.pc{
		display: inherit;
	}

    #wrap{
        padding: 100px 0 0;
    	position: relative;
    }


    /* header
       ================================================================== */    
    header{
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 10;
        background: rgba(255,255,255,.9);
    }

    header > .inner{
    	padding: 0 173px 0 20px;
        max-width: 100%;
        display: flex;
        align-items: center;
        height: 100px;
        transition: ease-out 0.3s;
    }
    
    .scroll_move header > .inner{
        height: 70px;
    }
    
    .scroll_move .ham_btn{
        top: 11px;
    }
    
    .language_box{
        transition: ease-out 0.3s;
    }
    
    .scroll_move .language_box{
        top: 17px;
    }
    
    header .site_logo{
        width: 54px;
        transition: .3s;
    }
    
    .scroll_move header .site_logo{
        visibility: visible;
        opacity: 1;
    }
    
    .scroll_move .site_logo img{
        transition: 1.3s;
    }
    
    header .site_logo{
        position: absolute;
        left: 30px;
    }
    
    .scroll_move header .site_logo{
        width: 40px;
    }
   
    header .header_btn.pc_only{
        margin: 0 0 0 auto;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        z-index: 120;
    }
   
    .slide_menu .header_btn{
        display: none;
    }
    
    .scroll_move .header_btn.pc_only .btn.arrow_btn a{
        height: 40px;
    }

    .header_btn .sns_btn{
        margin: 0 0 0 15px;
    }

	
    /* Navi
       ================================================================== */
    .ham_btn{
        position: fixed;
        right: 48px;
        top: 24px;
        text-align: center;
        cursor: pointer;
        width: 45px;
        height: 45px;
        box-sizing: border-box;
        background: none;
        padding: 14px 0;
    	transition: ease-out 0.3s;
    }

    .scroll_move .ham_btn{
        background: rgba(0,0,0,0);
    }

    .ham_btn .inner{
        padding: 10px 0 0;
        width: 45px;
        height: 23px;
        display: block;
        position: relative;
        transition: ease-out 0.8s;
        box-sizing: border-box;
    }
    
    .ham_btn .inner .bar,
    .ham_btn .inner .bar:before,
    .ham_btn .inner .bar:after{
        transition: ease-out 0.3s;
        text-indent: -9999px;
        width: 45px;
        display: block;
    }
    
    .ham_btn .inner .bar:before{
        content: "";
        position: absolute;
        top: 5px;
        left: 0;
    }
    
    .ham_btn .inner .bar:after{
        content: "";
        position: absolute;
        bottom: 6px;
        left: 0;
    }
    
    header .ham_btn:hover .inner .bar{
        width: 20px;
    }
    
    header .ham_btn:hover .inner .bar:after{
        width: 10px;
    }
    
    header .ham_btn.open .bar{
        background: transparent;
    }
    
    header .ham_btn.open{
        transform: rotate(0deg);
    }
    
    header .ham_btn.open .bar{
        background: transparent;
    }
    
    header .ham_btn.open .bar:before,
    header .ham_btn.open .bar:after{
        width: 40px !important;
    }
    
    header .ham_btn.open .bar:before{
        top: 8px;
    }
    
    header .ham_btn.open .bar:after{
        bottom: 13px;
    }

    .slide_menu{
        padding: 0;
        bottom: auto;
        top: -100vh;
        left: 24vw;
        width: calc(100% - 24vw);
        height: 100vh;
    }
    
    .slide_menu.open{
        top: 0;
        left: 24vw;
    }

    .slide_menu > .inbox{
        margin: 0 0 0;
        padding: 105px 0 0 8vw;
        max-width: 1000px;
        box-sizing: border-box;
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
    }    
    
    header::before{
        width: 24vw;
        height: 100vh;
        top: -100vh;
        left: 0;
    }
    
    .open header::before{
        top: 0;
    }
    
    header .nav_logo{
        width: 122px;
        height: 162px;
        top: calc(50% - 100px);
        left: calc((12%) - 61px);
    }

    .slide_nav .gnav{
        padding: 0;
        overflow: hidden;
        width: 650px;
        font-size: 0;
        text-align: left;
    }

    .slide_nav .gnav > li{
        margin: 35px 40px 0 0;
        padding: 0;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .slide_nav .gnav > li:nth-child(5){
        margin-right: calc(100% - 536px);
    }

    .slide_nav .gnav > li:last-child{
        margin-right: 0;
    }
    
    .slide_nav .nav_category h3 a,
    .slide_nav .gnav > li > a{
        padding: 0;
        font-size: 18px;
    }

    .slide_nav .nav_category{
        padding: 35px 0;
        width: 650px;
    }

    .slide_nav .nav_category h3{
        margin-bottom: 20px;
    }
    
    .slide_nav .nav_category .categories_link > li{
        width: 24%;
    }
    
    .slide_nav .nav_category .categories_link > li:nth-child(6n+6){
        margin-right: 1%;
    }
    
    .slide_nav .nav_category .categories_link > li:nth-child(4n+4){
        margin-right: 0;
    }
    

    /* language_box
       ================================================================== */
    .language_box{
        position: fixed;
        right: 123px;
        top: 32px;
    }
    
    .language_box .language_btn{
        padding: 0 0 0;
        width: 36px;
        height: 36px;
    }
    
    .language_box .languages{
        position: absolute;
        top: calc(100% + 13px);
        right: -75px;
        width: 230px;
    }
    
    .language_box .languages li a{
        padding: 18px 40px 18px 20px;
        font-size: 14px;
    }
    
    .language_box .languages li a::before{
        background-size: 6px;
        width: 40px;
    }


    /* footer_ALL
       ================================================================== */
    footer{

    }

    /* footer_nav */
    .footer_nav{
        margin: 0;
        padding: 10px 0 30px;
        border-top: 1px solid #E8E8E8;
    }

    .footer_nav ul{
        font-size: 0;
    }

    .footer_nav ul li{
        margin: 20px 30px 0 0;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .footer_nav ul li:last-child{
        margin-right: 0;
    }

    .footer_nav ul li a{
        padding: 0;
        font-size: 15px;
        border: none;
    }

    /* nav_category */
    .nav_category{
        padding: 30px 0;
    }

    .nav_category h3{
        font-size: 15px;
    }

    /* footer_company */
    .footer_company{
        padding: 30px 0 0;
    }

    .footer_company .site_logo{
        width: 87px;
    }

    .footer_company .company_info_add{
        margin: 20px 0 0;
    }

    .footer_company .company_info_add .clinic_name{
        margin: 0 0 5px;
        font-size: 18px;
    }

    .footer_company .company_info_list{
        margin: 20px 0 0;
    }

    /* footer_bottom */
    .footer_bottom{
        padding: 35px 0;
    }

    .footer_bottom adress{
        font-size: 13px;
    }

    
    /* sns_btn
       ================================================================== */
    .sns_btn li{
        margin-left: 8px;
        width: 36px;
    }

    .sns_btn.wid40 li{
        margin-left: 10px;
        width: 40px;
    }


    /* contents_wrap
       ================================================================== */
    .contents_wrap{
        padding: 0 0 0;
    }
	

    /* under_kv
       ================================================================== */
    .under_kv .title_bg{
        height: 170px;
    }

    .page_title .eng{
        font-size: 55px;
    }

    .page_title .jpn{
        margin: 27px 0 0;
        font-size: 14px;
    }

    /* page_kv */
    .page_kv{
        width: 87%;
        max-height: 500px;
    }

    .page_kv.h430{
        width: 92%;
        max-height: 430px;
    }

    /* page_kv_all */
    .page_kv_all{
        max-height: 330px;
    }


    /* pankz
       ================================================================== */
    .pankz{
        padding: 21px 0;
        box-sizing: border-box;
    }

    .pankz > li{
        margin: 0 30px 0 0;
    }

    .pankz > li::before{
        width: 5px;
        height: 29px;
        left: calc(100% + 12px);
    }

    .pankz > li > span,
    .pankz > li a{
        font-size: 13px;
    }


    /* block_title
       ================================================================== */
    .block_title{
        font-size: 76px;
    }

    .block_title .back{
        bottom: 10px;
        left: 14px;
    }


    /* title_jpn
       ================================================================== */
    .title_jpn{
        margin: 30px 0 0;
        font-size: 14px;
    }


    /* block_border_title
       ================================================================== */
    .block_border_title{
        padding: 20px 0 0;
        font-size: 25px;
    }

    .block_border_title::before{
        width: 100px;
    }


    /* .block_border_title.size_20
       ================================================================== */
    .block_border_title.size_20{
        padding: 17px 0 0 20px;
        font-size: 20px;
    }


    /* check_title01
       ================================================================== */
    .check_title01{
        padding: 0 0 0 34px;
        font-size: 16px;
    }

    .check_title01.f17{
        font-size: 17px;
    }

    .check_title01::before{
        width: 21px;
        height: 21px;
        top: 4px;
    }


    /* check_title02
       ================================================================== */
    .check_title02{
        padding: 0 0 0 34px;
        font-size: 15px;
    }

    .check_title02::before{
        width: 25px;
        height: 21px;
        top: -2px;
    }

    .check_title01 + p,
    .check_title02 + p{
        margin: 10px 0 0;
    }


    /* googlemaps_btn
       ================================================================== */
    .googlemaps_btn a{
        width: 118px;
        height: 31px;
        font-size: 12px;
    }


	/* btn
	   ================================================================== */	
	.btn a{
	    padding: 0;
	    width: 200px;
        height: 50px;
	    font-size: 16px;
	}

    .btn.arrow_btn a{
        padding: 0 20px 0 0;
        width: 200px;
        height: 55px;
        font-size: 16px;
    }

    .btn.arrow_btn svg{
        width: 6px;
        height: 10px;
        right: 23px;
    }

    .btn.wid250 a{
        width: 250px;
        font-size: 14px;
    }
	
	
}
@media screen and (min-width : 1400px){

	
    /* Navi
       ================================================================== */
    .slide_menu{
        left: 32vw;
        width: calc(100% - 32vw);
    }
    
    .slide_menu.open{
        left: 32vw;
    }

    .slide_menu > .inbox{
        padding-left: 205px;
        max-width: 1000px;
    }    
        
    header::before{
        width: 32vw;
    }
    
    header .nav_logo{
        width: 122px;
        height: 162px;
        top: calc(50% - 100px);
        left: calc((16%) - 61px);
    }
    
    
}
