@charset "UTF-8";


/* reset ---------------------------------------*/

div,dl,dt,dd,ul,ol,
li,h1,h2,h3,h4,h5,
h6,pre,code,form,fieldset,legend,
input,textarea,p,blockquote,
th,td{margin:0;padding:0;}
table{border-collapse:collapse;border-spacing:0;word-break: break-all;font-size:inherit;width:100%;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
li{list-style:none;}
caption,th{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
q::before,q::after{content:'';}
abbr{border:0;font-variant:normal;}
sup{vertical-align:text-top;}
sub{vertical-align:text-bottom;}
input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}
input,textarea,select{font-size:100%;}
legend{color:#000;}
select,input,button,textarea{font-size:inherit;font-family:inherit;box-sizing: border-box;}
pre,code,kbd,samp{font-family:monospace;font-size:108%;line-height:100%;}
figure{padding:0;margin:0;}
input[type="submit"],
input[type="button"],
button {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration,
button::-webkit-search-decoration {display: none;}
input[type="submit"]::focus,
input[type="button"]::focus,
button::focus {outline-offset: -2px;}


/* base ---------------------------------------*/

*{box-sizing:border-box;}

html,body{height:100%;}

body {
	-webkit-text-size-adjust: 100%;
	padding:0;
	margin: 0;
	font-family: "Shippori Mincho B1", serif;
    font-weight: 400;
    font-style: normal;
	font-feature-settings: "palt" 1;
	-webkit-font-feature-settings: "palt" 1;
	color: #000;
}

a {
	text-decoration: none;
	color:inherit;
	transition: all .3s ease;
	-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}

a:hover {opacity: 0.6;}

img {
	vertical-align: bottom;
	line-height: 1;
	max-width:100%;
	height:auto;
}

/* lenis ---------------------------------------*/
html.lenis {
	height: auto;
}

.lenis.lenis-smooth {
	scroll-behavior: auto;
}

.lenis.lenis-smooth [data-lenis-prevent] {
	overscroll-behavior: contain;
}

.lenis.lenis-stopped {
	overflow: hidden;
}


/* common item ---------------------------------------*/
.clearfix::after,
.inner::after {
	visibility: hidden;
	display: block;
	font-size: 0;
	content: " ";
	clear: both;
	height: 0;
}

.ov-h{overflow: hidden;}

.font-en {
	font-family: "Josefin Sans", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}

.text-link {
	text-decoration: underline;
}

.text-link:hover {
	opacity: 1;
	text-decoration: none;
}

.text-link .icon_arrow_small { 
	margin: 0 0 0.2vw 0.7vw;
}

/* icon ---------------------------------------*/
.icon-x { 
	display: inline-block;
	width: calc(30 / 1920 * 100vw);
	aspect-ratio: 30 / 30;
	-webkit-mask-image: url('../img/common/icon_ins.svg');
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: 0 0;
	-webkit-mask-size: contain;
	mask-image: url('../img/common/icon_ins.svg');
	mask-repeat: no-repeat;
	mask-position: 0 0;
	mask-size: contain;
	background: #fff;
	transition: all .6s ease;
}

.icon-pagetop { 
	display: inline-block;
	width: max(0.417vw, 8px);
	aspect-ratio: 8 / 38;
	-webkit-mask-image: url('../img/common/icon_arrow_pagetop.svg');
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: 0 0;
	-webkit-mask-size: contain;
	mask-image: url('../img/common/icon_arrow_pagetop.svg');
	mask-repeat: no-repeat;
	mask-position: 0 0;
	mask-size: contain;
	background: #fff;
	margin-left: calc(12 / 1920 * 100vw);
	transition: all .6s ease;
}

.icon_arrow {
	display: inline-block;
	width: calc(43 / 1920 * 100vw);
	aspect-ratio: 43 / 13;
	-webkit-mask-image: url('../img/common/icon_arrow.svg');
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: 0 0;
	-webkit-mask-size: contain;
	mask-image: url('../img/common/icon_arrow.svg');
	mask-repeat: no-repeat;
	mask-position: 0 0;
	mask-size: contain;
	background: #909090;
	transition: all .6s ease;
}

.icon_arrow_small { 
	display: inline-block;
	width: calc(18 / 1920 * 100vw);
	aspect-ratio: 18 / 10;
	-webkit-mask-image: url('../img/common/icon_arrow_small.svg');
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: 0 0;
	-webkit-mask-size: contain;
	mask-image: url('../img/common/icon_arrow_small.svg');
	mask-repeat: no-repeat;
	mask-position: 0 0;
	mask-size: contain;
	background: #fff;
	transition: all .6s ease;
}


/* btn ---------------------------------------*/
.btn {
    display: inline-block;
    position: relative;
	max-width: max(22.5vw, 432px);
	width: 100%;
	height: max(4.479vw, 86px);
    padding: 0 calc(95 / 1920 * 100vw) 0 calc(40 / 1920 * 100vw);
    font-size: max(1.042vw, 20px);
    line-height: max(4.479vw, 86px);
	background: #fff;
	border: 1px solid #909090;
	transition: all .6s ease;
}

button.btn {
	text-align: left;
	color: #000;
}

.btn .icon_arrow {
	position: absolute;
	top: 50%;
	right: calc(26 / 1920 * 100vw);
	transform: translateY(-50%);
	width: max(2.24vw, 43px);
}

.btn.btn-back {
    padding: 0 calc(40 / 1920 * 100vw) 0 max(4.948vw, 70px);
}

.btn.btn-back .icon_arrow {
	right: unset;
	left: calc(26 / 1920 * 100vw);
	transform: translateY(-50%) scaleX(-1);
}

.btn:hover {
	opacity: 1;
	background: #909090;
	color: #fff;
}

.btn:hover .icon_arrow{background: #fff;}

.btn.btn-transparent {
	font-size: max(1.146vw, 22px);
	background: rgba(255,255,255,0);
	border: 1px solid #fff;
	color: #fff;
}

.btn.btn-transparent .icon_arrow {background: #fff;}

.btn.btn-transparent:hover {
	background: #fff;
	color: #000;
}

.btn.btn-transparent:hover .icon_arrow{background: #000;}

.parallax-bg { 
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* header ---------------------------------------*/
.header {
	width: 100%;
	position: fixed;
	top: 0;
	z-index: 999;
	transition: all .6s ease;
}

.header-inner {
	margin: 0 calc(44 / 1920 * 100vw);
	position: relative;
	height: 90px;
}

.header-logo-wrapper {
	display: flex;
	align-items: center;
	gap: calc(22 / 1920 * 100vw);
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	z-index: 10;
}

.header-logo-mserrnt,
.header-logo-age {
	position: relative;
	width: calc(199 / 1920 * 100vw);
	max-width: 300px;
}

.header-logo-mserrnt img,
.header-logo-age img {
	width: 100%;
}

.header-logo-mserrnt::after{
	display:block;
	position:absolute;
	left: 0;
	top: 0;
	background:url('../img/common/logo_header_mserrnt_bk.png') no-repeat left top;
	background-size: 100%;
	width: calc(199 / 1920 * 100vw);
	max-width: 300px;
	aspect-ratio: 152 / 41;
	content:'';
	transition: all .6s ease;
	opacity: 0;
}

.header-logo-age::after{
	display:block;
	position:absolute;
	left: 0;
	top: 0;
	background:url('../img/common/logo_header_age_bk.png') no-repeat left top;
	background-size: 100%;
	width: calc(199 / 1920 * 100vw);
	max-width: 300px;
	aspect-ratio: 152 / 41;
	content:'';
	transition: all .6s ease;
	opacity: 0;
}

.header-item {
	display: flex;
	align-items: center;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	z-index: 10;
	height: 50px;
}

.header-x {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	height: 100%;
	padding: 0 calc(34 / 1920 * 100vw);
}

.header-x .icon-x {
	max-width: 40px;
}

.header-x::before {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	z-index: 1;
	width: 1px;
	height: 100%;
	background: #fff;
	content: '';
	transition: all .6s ease;
}

.header-x:hover {opacity: 1;}
.header-x:hover .icon-x {opacity: 0.6;}

.header-language {
	display: block;
	position: relative;
	width: calc(140 / 1920 * 100vw);
	height: 100%;
	background: rgba(255,255,255,0);
	cursor: pointer;
}

.header-language::before,
.header-language::after {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
	width: 1px;
	height: 100%;
	background: #fff;
	content: '';
	transition: all .6s ease;
}

.header-language::before {left: 0;}
.header-language::after {right: 0;}

.header-language span {
	display: block;
	position: absolute;
	top: 56%;
    left: 64%;
	transform: translate(-50%, -50%);
	font-size: max(0.833vw, 12px);
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
	color: #fff;
	transition: all .6s ease;
}

.header-language span::before {
	position: absolute;
	top: 40%;
	left: calc(-54 / 1920 * 100vw);
	transform: translateY(-50%);
	z-index: 1;
	width: min(1.719vw, 33px);
	height: min(1.719vw, 33px);
	-webkit-mask-image: url('../img/common/icon_language.svg');
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: 0 0;
	-webkit-mask-size: contain;
	mask-image: url('../img/common/icon_language.svg');
	mask-repeat: no-repeat;
	mask-position: 0 0;
	mask-size: contain;
	background: #fff;
	content: '';
	transition: all .6s ease;
}

.header-language:hover span,
.header-language:hover span::before {
	opacity: 0.6;
}

.header-languagelist.is-hidden {
	display: none;
}

.header-languagelist {
	position: absolute;
	top: 130%;
	right: 0;
	width: calc(140 / 1920 * 100vw);
}

.header-languagelist-list {
}

.header-languagelist-list > li {
	position: relative;
}

.header-languagelist-list > li::before {
	position: absolute;
	top: 50%;
	left: 26%;
	transform: translateY(-50%) rotate(45deg);
	z-index: 1;
	width: max(0.521vw, 10px);
	height: max(0.521vw, 10px);
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	box-sizing: border-box;
	content: '';
	transition: all .6s ease;
}

.header-languagelist-list > li a {
	display: block;
	position: relative;
	width: calc(140 / 1920 * 100vw);
	height: 50px;
	transition: all .6s ease;
}

.header-languagelist-list > li a span {
	display: block;
	position: absolute;
    top: 56%;
    left: 64%;
	transform: translate(-50%, -50%);
	font-size: max(0.833vw, 12px);
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
	color: #fff;
}

#openmenu{display:none;}

/* gnav ---------------------------------------*/

.gnav{
	display: flex;
	align-items: center;
	position: absolute;
	top: 50%;
	right: calc(330 / 1920 * 100vw);
	transform: translateY(-50%);
}

.gnav-list{
	display: flex;
	align-items: center;
	gap: calc(68 / 1920 * 100vw);
}

.gnav-list > li a {
	display: block;
	font-size: max(0.781vw, 12px);
	line-height: 1.6;
	white-space: nowrap;
	color: #fff;
	transition: all .6s ease;
}

.gnav-list > li a:hover{opacity: 0.6;}

.gnav-list > li a small {
	display: none;
}

/* header is-active */
.header.is-active{background: rgba(255,255,255,0.9);}
.header.is-active .gnav-list > li a{color: #000;}
.header.is-active .header-logo-mserrnt::after{opacity: 1;}
.header.is-active .header-logo-age::after{opacity: 1;}
.header.is-active .header-logo-mserrnt img{opacity: 0;}
.header.is-active .header-logo-age img{opacity: 0;}
.header.is-active .header-language::before,
.header.is-active .header-language::after {background: #000;}
.header.is-active .header-language span {color: #000;}
.header.is-active .header-language span::before {background: #000;}
.header.is-active .header-languagelist-list > li::before {border-color: #000;}
.header.is-active .header-languagelist-list > li a span {color: #000;}
.header.is-active .header-x::before {background: #000;}
.header.is-active .header-x .icon-x {background: #000;}


/* pagetop ---------------------------------------*/
.pagetop {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: calc(14 / 1920 * 100vw);
	position: fixed;
	bottom: calc(42 / 1920 * 100vw);
	right: calc(55 / 1920 * 100vw);
	z-index: 10;
	cursor: pointer;
}

.pagetop p {
	font-size: max(0.729vw, 12px);
	line-height: 1.6;
	letter-spacing: 0.3em;
	color: #fff;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
	transition: all .6s ease;
}

.pagetop.is-active .icon-pagetop {background: #000;}
.pagetop.is-active p {color: #000;}


.page-top {
    position: relative; /* imgタグを相対的に配置する親要素 */
    width: 100vw; /* 画面の幅全体 */
    height: 100vh; /* 画面の高さ全体 */
    overflow: hidden; /* 画像がはみ出した場合は非表示にする */
}

.page-header-img {
    position: absolute; /* 相対位置の親要素内で絶対位置指定 */
//    min-width: 100%; /* 最小幅を画面幅と同じに設定 */
//    min-height: 100%; /* 最小高さを画面の高さと同じに設定 */
    top: 50%; /* 上下中央に配置 */
    left: 50%; /* 左右中央に配置 */
    transform: translate(-50%, -50%); /* 中央配置の微調整 */
    object-fit: cover; /* 画像のアスペクト比を保ちつつ、容器に合わせて拡大・縮小 */
}

/* reserve ---------------------------------------*/
.reserve { 
	padding: 4.8vw calc(290 / 1920 * 100vw) 3.5vw;
	background:url('../img/index/bg_reserve.jpg') no-repeat center center;
	background-size: cover;
	margin-bottom: -3px;
}

.reserve-inner { 
	max-width: max(60.417vw, 1160px);
	width: 100%;
	margin: 0 auto;
}

.reserve-title {
	margin-bottom: 1.5vw;
}

.reserve-title span { 
	display: block;
	position: relative;
	width: fit-content;
	font-size: max(0.833vw, 12px);
	line-height: 1;
	letter-spacing: 0.1em;
	color: #fff;
	margin: 0 0 3vw 0.4vw;
	z-index: 1;
}

.reserve-title span::after { 
	position: absolute;
	top: 50%;
	left: 120%;
	transform: translateY(-50%);
	z-index: 1;
	width: 50px;
	height: 1px;
	background: #fff;
	content: '';
}

.reserve-title b { 
	font-size: max(3.125vw, 40px);
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.1em;
	color: #fff;
}

.reserve-text { 
	font-size: max(0.99vw, 14px);
	line-height: 2;
	color: #fff;
	margin-bottom: 3vw;
}

.reserve-btn-wrapper { 
	display: flex;
	align-items: center;
	gap: calc(20 / 1920 * 100vw);
	margin: 0 0 2.5vw 0.4vw;
}

.reserve-link {
	font-size: max(1.094vw, 16px);
	line-height: 1.6;
	color: #fff;
	margin-left: 0.4vw;
}



/* footer ---------------------------------------*/
.footer { 
	padding: 15vw calc(290 / 1920 * 100vw) 9vw;
	background:url('../img/index/bg_footer.jpg') no-repeat center center;
	background-size: cover;
}

.footer-logo-age { 
	display: block;
	width: calc(186 / 1920 * 100vw);
	margin: 0 auto 1.5vw;
}

.footer-logo-age img { 
	width: 100%;
}

.footer-logo-mserrnt { 
	display: block;
	position: relative;
	width: calc(186 / 1920 * 100vw);
	margin: 0 auto 3vw;
	padding-bottom: 2vw;
}

.footer-logo-mserrnt img { 
	width: 100%;
}

.footer-logo-mserrnt span { 
	display: block;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	font-size: max(0.833vw, 12px);
	line-height: 1;
	text-align: center;
	color: #fff;
}

.footer-link {
	display: block;
	font-size: max(0.833vw, 12px);
	line-height: 1.6;
	color: #fff;
    width: fit-content;
	margin: 0 auto 4.5vw;
}

.footer-address { 
	font-size: max(1.094vw, 16px);
	line-height: 1.8;
	text-align: center;
	color: #fff;
	margin-bottom: 1vw;
}

.copyright { 
	display: block;
	font-size: max(0.729vw, 10px);
	line-height: 1;
	text-align: center;
	color: #fff;
}


/* pages ---------------------------------------*/
.pageskv {
    background: url(../img/activity/kv.jpg) no-repeat center center;
    background-size: cover;
    width: 100%;
    height: 100vh;
    position: relative;
}

.planpricekv {
    background: url(../img/planprice/kv.jpg) no-repeat center center;
    background-size: cover;
}

.servicekv {
    background: url(../img/service/kv.jpg) no-repeat center center;
    background-size: cover;
}

.aboutkv {
    background: url(../img/about/kv.jpg) no-repeat center center;
    background-size: cover;
}

.facilitykv {
    background: url(../img/facility/kv.jpg) no-repeat center center;
    background-size: cover;
}

.contactkv {
    background: url(../img/contact/kv.jpg) no-repeat center center;
    background-size: cover;
}

.pageskv-inner {
    position: absolute;
    top: 20%;
    right: 24.7%;
    height: 75%;
}

.aboutkv .pageskv-inner {
    top: 0;
    right: 21.5%;
    padding-top: max(9.5vw,100px);
    padding-bottom: 2vw;
    height: 100vh;
}

.pageskv-title {
    display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
    flex-direction: column;
    gap: 1.5vw;
    color: #fff;
    -webkit-font-feature-settings: 'pkna';
    font-feature-settings: 'pkna';
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}

.aboutkv .pageskv-title {
    gap: 0;
    line-height: 1.8;
}

.pageskv-title span {
    font-size: max(2.8125vw,46px);
    letter-spacing: 0.11em;
}

.facilitykv .pageskv-title span {
    font-size: max(4.4vh,38px);
    letter-spacing: 0.2em;
}
.aboutkv .pageskv-title span {
    font-size: max(4.5vh,35px);
    letter-spacing: 0.2em;
}

.pageskv-title small {
    letter-spacing: 0.1em;
    font-size: max(1.3542vw,22px);
    margin-top: 0.5vw;
}

.pankuzu-wrapper {
    position: fixed;
    left: 3.4vw;
    top: 50%;
    transform: translate(0,-50%);
    display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: nowrap;
    gap: 4vw;
    -webkit-font-feature-settings: 'pkna';
    font-feature-settings: 'pkna';
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    color: #fff;
    line-height: 1.1;
    height: 100vh;
	transition: all .6s ease;
    z-index: 100;
}

.pankuzu-wrapper.is-active {
    color: #000;
}

.pankuzu-wrapper.pankuzu-wrapper-policy {
    color: #000;
}

.pankuzu {
    font-size: min(1.15vw,2vh);
    letter-spacing: 0.5em;
    position: relative;
}

.pankuzu::before {
	display: inline-block;
	content: '';
	background: #fff;
	width: 1.6vw;
	height: 1px;
    position: absolute;
    bottom: calc(-2vw + 2px);
    left: 50%;
    transform: translate(-50%,-50%);
}

.is-active .pankuzu::before {
	background: #000;
}

.pankuzu-wrapper-policy .pankuzu::before {
	background: #000;
}

.pankuzu-en {
    font-size: min(1.042vw,1.8vh);
    letter-spacing: 0.3em;
}


/* animation ---------------------------------------*/
.animation {
	opacity: 0;
	-moz-transition: -moz-transform 0.5s linear;
	-webkit-transition: -webkit-transform 0.5s linear;
	-o-transition: -o-transform 0.5s linear;
	-ms-transition: -ms-transform 0.5s linear;
	transition: transform 0.5s linear;
	-webkit-animation-duration: 1.5s;
	animation-duration: 1.5s;
	-webkit-animation-fill-mode: both;
	animation-fill-mode: both;
}

.animation.on {
    -webkit-animation-name: animation-blur;
    animation-name: animation-blur;
    opacity: 1;
    transition: .4s;
}

@keyframes animation-blur {
	0% {
		opacity: 0;
		-webkit-filter: blur(20px);
		-moz-filter: blur(20px);
		-ms-filter: blur(20px);
		-o-filter: blur(20px);
		filter: blur(20px);
	}

	100% {
		opacity: 1;
		-webkit-filter: blur(0px);
		-moz-filter: blur(0px);
		-ms-filter: blur(0px);
		-o-filter: blur(0px);
		filter: blur(0px);
	}
}


/* small pc */
@media screen and (min-width: 768px) and (max-width: 1300px){
    .gnav-list{
        gap: calc(40 / 1920 * 100vw);
    }
}

@media screen and (min-width: 768px) and (max-width: 1000px){
    .gnav-list{
        gap: calc(32 / 1920 * 100vw);
    }

	.gnav-list > li a {
		font-size: 10px;
	}

	.header-languagelist-list > li::before {
		left: 14%;
	}
}

/* pc only */
@media screen and (min-width: 768px){
	.sp{display: none !important;}
	.spbr{display: none;}
}



/* sp only */
@media screen and (max-width: 767px){
	.pc{display: none !important;}
	.pcbr{display: none;}

	/* a:hover{opacity: 1;} */


	.text-link .icon_arrow_small { 
		margin: 0 0 1vw 3vw;
	}
	
	/* icon ---------------------------------------*/
	.icon-x { 
		width: calc(24 / 390 * 100vw);
	}
	
	.icon-pagetop { 
		width: calc(6 / 390 * 100vw);
		aspect-ratio: 6 / 26;
		margin-left: calc(6 / 390 * 100vw);
	}
	
	.icon_arrow {
		width: calc(21 / 390 * 100vw);
	}
	
	.icon_arrow_small { 
		width: calc(9 / 390 * 100vw);
	}
	
	
	/* btn ---------------------------------------*/
	.btn {
		max-width: unset;
		width: calc(235 / 390 * 100vw);
		height: calc(45 / 390 * 100vw);
		padding: 0 calc(47 / 390 * 100vw) 0 calc(16 / 390 * 100vw);
		font-size: calc(12 / 390 * 100vw);
		line-height: calc(44 / 390 * 100vw);
	}
	
	.btn .icon_arrow {
		right: calc(11 / 390 * 100vw);
		width: calc(28 / 390 * 100vw);
		top:50%;
	}

	.btn.btn-back {
        padding: 0 calc(16 / 390 * 100vw) 0 calc(47 / 390 * 100vw);
	}
	
	.btn.btn-back .icon_arrow {
		left: calc(11 / 390 * 100vw);
		width: calc(21 / 390 * 100vw);
	}
	
	.btn.btn-transparent {
		width: calc(220 / 390 * 100vw);
		height: calc(43 / 390 * 100vw);
		padding: 0 calc(47 / 390 * 100vw) 0 calc(15 / 390 * 100vw);
		font-size: calc(11 / 390 * 100vw);
		line-height: calc(43 / 390 * 100vw);
	}

	.btn.btn-transparent .icon_arrow {
		width: calc(30 / 390 * 100vw);
	}

	/* header ---------------------------------------*/
	.header-inner {
		margin: 0 calc(16 / 390 * 100vw);
		height: 65px;
	}

	.header-logo-age {
		width: calc(120 / 390 * 100vw);
		max-width: 120px;
	}

	.header-logo-age::after{
		width: calc(120 / 390 * 100vw);
		max-width: 120px;
	}

	.header-item {
		height: 30px;
		right: 50px;
	}

	.header-language {
		width: 68px;
	}
	
	.header-language::before,
	.header-language::after {
		width: 1px;
	}

	.header-language span {
		top: 58%;
		font-size: 14px;
	}
	
	.header-language span::before {
        left: -29px;
        width: 16px;
        height: 16px;
	}

	.header-languagelist {
		top: 130%;
		width: 68px;
	}
	
	.header-languagelist-list > li::before {
		top: 48%;
		left: 14%;
		width: 6px;
		height: 6px;
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
	}
	
	.header-languagelist-list > li a {
		width: 68px;
		height: 30px;
	}
	
	.header-languagelist-list > li a span {
		top: 58%;
		left: 64%;
		font-size: 14px;
	}

	#openmenu{
		display:block;
		width: 60px;
		height: 60px;
		overflow: hidden;
		position:absolute;
		right:0;
		top:50%;
		transform: translateY(-50%);
		z-index: 99999;
	}

	#openmenu span{
		content:'';
		display: block;
		width: 30px;
		height: 1px;
		background: #FFF;
		position: absolute;
		left: 45%;
		transform: translateX(-50%);
		transition: all .6s ease;
	}

	#openmenu span:nth-child(1){top:19px;}
	#openmenu span:nth-child(2){top:28px;}

	#openmenu.is-open span{
		top:32px;
		background: #000;
	}

	#openmenu.is-open span:nth-child(1){
		transform:translateX(-50%) rotate(45deg);
	}

	#openmenu.is-open span:nth-child(2){
		transform:translateX(-50%) rotate(-45deg);
	}

	#openmenu p {
		position: absolute;
		top: 36px;
		left: 45%;
		transform: translateX(-50%);
		font-size: 6px;
		line-height: 1;
		text-align: center;
		letter-spacing: 0.07em;
		color: #fff;
		transition: all .6s ease;
	}

	#openmenu.is-open p {
		opacity: 0;
	}


	.bodyfixed{
		position: fixed;
		width: 100%;
		height: 100%;
	}


	/* gnav ---------------------------------------*/

	.gnav {
		display: block;
		height: 100vh !important;
		height: 100dvh!important;
		background: rgba(255,255,255,0.95);
		padding: 15vw calc(44 / 390 * 100vw);
		overflow:auto;
		z-index:100;
		position: absolute;
		top: 0;
		right: 0px;
		width: 100%;
		transition: all .6s ease;
		transform:translate3d(100%, 0, 0);
	}

	#gnav.is-active{
		transform:translate3d(0,0,0);
		opacity:1;
	}

	.gnav-list {
		display: block;
		margin-bottom: 136px;
	}

	.gnav-list > li {
		position: relative;
		padding-left: 30px;
	}

	.gnav-list > li::before {
		position: absolute;
		top: 60%;
		left: 0;
		transform: translateY(-50%);
		z-index: 1;
		width: 20px;
		height: 1px;
		background: #000;
		content: '';
	}

	.gnav-list > li + li {
		margin-top: 28px;
	}

	.gnav-list > li > a {
		font-size: 14px;
		color: #000;
	}

	.gnav-list > li a small {
		display: block;
		font-size: 8px;
		line-height: 1.1;
		letter-spacing: 0.1em;
		margin-top: 2px;
	}
	
	.gnav-logo-age {
		display: block;
		position: relative;
		width: calc(138 / 390 * 100vw);
		max-width: 138px;
		margin: 0 auto 40px;
	}

	.gnav-logo-age::after {
		position: absolute;
		bottom: -22px;
		left: 0;
		z-index: 1;
		width: 100%;
		height: 1px;
		background: #000;
		content: '';
	}	

	.gnav-logo-mserrnt {
		display: block;
		width: calc(100 / 390 * 100vw);
		max-width: 100px;
		margin: 0 auto 20px;
	}

	.gnav-x {
		display: block;
		position: relative;
		width: calc(24 / 390 * 100vw);
		max-width: 24px;
		margin: 0 auto;
	}

	.gnav-x .icon-x {
		background: #000;
	}

	.gnav-title {
		display: flex;
		align-items: center;
		gap: 24px;
		position: fixed;
		top: 50%;
		right: 28px;
		transform: translateY(-50%);
		z-index: 10;
		-webkit-writing-mode: vertical-rl;
		-ms-writing-mode: tb-rl;
		writing-mode: vertical-rl;
	}

	.gnav-title b {
		display: block;
		position: relative;
		font-size: 10px;
		font-weight: 400;
		line-height: 1.1;
		letter-spacing: 0.6em;
	}

	.gnav-title b::after {
		position: absolute;
		bottom: -10px;
		left: 50%;
		z-index: 1;
		transform: translateX(-50%);
		width: 100%;
		height: 1px;
		background: #000;
		content: '';
	}

	.gnav-title small {
		display: block;
		font-size: 8px;
		line-height: 1;
		letter-spacing: 0.3em;
		padding-right: 2px;
	}

	/* header is-active */
	.header.is-active #openmenu span {background: #000;}
	.header.is-active #openmenu p {color: #000;}


	/* pagetop ---------------------------------------*/
	.pagetop {
		gap: calc(9 / 390 * 100vw);
		bottom: calc(20 / 390 * 100vw);
		right: calc(12 / 390 * 100vw);
	}
	
	.pagetop p {
		font-size: calc(8.5 / 390 * 100vw);
	}

	/* reserve ---------------------------------------*/
	.reserve { 
		padding: 13vw calc(40 / 390 * 100vw) 9vw;
		background:url('../img/index/bg_reserve_sp.jpg') no-repeat center center;
		background-size: cover;
		margin-bottom: 0vw;
	}
	
	.reserve-inner { 
		max-width: unset;
	}
	
	.reserve-title {
		margin-bottom: 7.5vw;
	}
	
	.reserve-title span { 
		font-size: calc(10 / 390 * 100vw);
		margin: 0 0 5.5vw;
	}
	
	.reserve-title span::after { 
		left: 120%;
		width: calc(25 / 390 * 100vw);
	}
	
	.reserve-title b { 
		font-size: calc(25 / 390 * 100vw);
	}
	
	.reserve-text { 
		font-size: calc(12 / 390 * 100vw);
		margin-bottom: 8vw;
	}
	
	.reserve-btn-wrapper { 
		display: block;
		margin: 0 0 5vw;
	}
	
	.reserve-btn-wrapper .btn + .btn { 
		margin-top: 4vw;
	}
	
	.reserve-link {
		font-size: calc(12 / 390 * 100vw);
		margin-left: 0;
	}
	
	
	/* footer ---------------------------------------*/
	.footer { 
		position: relative;
		padding: 28.5vw calc(20 / 390 * 100vw) 10vw;
		background:url('../img/index/bg_footer_sp.jpg') no-repeat center center;
		background-size: cover;
	}
	
	.footer-logo-age { 
		display: block;
		width: calc(186 / 390 * 100vw);
		margin: 0 auto 10.5vw;
	}
	
	.footer-logo-mserrnt { 
		position: absolute;
		bottom: 12.5%;
		left: 13%;
		width: calc(126 / 390 * 100vw);
		margin: 0;
		padding-bottom: 0;
	}
	
	.footer-logo-mserrnt span { 
		display: none;
	}
	
	.footer .btn.btn-transparent {
		display: block;
		width: calc(190 / 390 * 100vw);
		height: calc(40 / 390 * 100vw);
		padding: 0 calc(47 / 390 * 100vw) 0 calc(30 / 390 * 100vw);
		line-height: calc(40 / 390 * 100vw);
		margin: 0 auto 15vw;
	}
	
	.footer-address { 
		font-size: calc(10 / 390 * 100vw);
		line-height: 1.9;
		text-align: left;
		margin: 0 0 1.5vw 52%;
	}
	
	.copyright { 
		font-size: calc(10 / 390 * 100vw);
		text-align: left;
		margin-left: 52%;
	}


	/* pages ---------------------------------------*/
    .pageskv {
        background: url(../img/activity/kv_sp.jpg) no-repeat center center;
        background-size: cover;
        width: 100vw;
        height: 100vh;
    }

    .planpricekv {
        background: url(../img/planprice/kv_sp.jpg) no-repeat center center;
        background-size: cover;
    }

    .servicekv {
        background: url(../img/service/kv_sp.jpg) no-repeat center center;
        background-size: cover;
    }

    .aboutkv {
        background: url(../img/about/kv_sp.jpg) no-repeat center center;
        background-size: cover;
    }

    .facilitykv {
        background: url(../img/facility/kv_sp.jpg) no-repeat center center;
        background-size: cover;
    }

    .contactkv {
        background: url(../img/contact/kv_sp.jpg) no-repeat center center;
        background-size: cover;
    }

    .pageskv-inner {
        position: absolute;
        top: 18.5%;
        right: auto;
        left: 65%;
    }

    .aboutkv .pageskv-inner {
        top: 18.5%;
        right: auto;
        left: 58%;
        padding-top: 0;
        padding-bottom: 0;
        height: 100vh;
    }

    .pageskv-title {
        gap: 3vw;
    }

    .aboutkv .pageskv-title {
        line-height: 1.7;
    }

    .pageskv-title span {
        font-size: min(6.924vw,4.5vh);
        letter-spacing: 0.2em;
    }

    .aboutkv .pageskv-title span {
        font-size: min(6.924vw,4.5vh);
        letter-spacing: 0.37em;
    }

    .pageskv-title small {
        letter-spacing: 0.1em;
        font-size: min(3.33vw,13px);
        margin-top: 0.5vw;
    }

    .pankuzu-wrapper {
        left: 3.2vw;
        top: 50%;
        gap: 8.4vw;
    }

    .pankuzu {
        font-size: min(2.5vw,1.4vh);
        letter-spacing: 0.62em;
    }
    
    .pankuzu::before {
        width: 3.5vw;
        bottom: calc(-4.2vw + 1px);
    }
    
    .is-active .pankuzu::before {
        background: #000;
    }
    
    .pankuzu-en {
        font-size: min(2.31vw,1.2vh);
				position: relative;
        left: -3px;
    }

}




/* iphone5 iphoneSE用 */
@media screen and (max-width: 370px){

}