@charset "UTF-8";

/* リセット
---------------------------------------------------------- */
html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h2, h3, h4, h5, h6,
pre, form, fieldset, input, textarea, p, table, th, td, button, a, span {
	margin: 0;
	padding: 0;
	font-size: 100%;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	position: relative;
}
ol ,
ul {
	list-style: none;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 100%;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	position: relative;
}
address {
	font-style: normal;
}

/* レイアウト
----------------------------------------*/
html {
	font-size: 1rem;
	font-size: 10px;
	height: 100%;
}
body {
	color: #4F403A;
	font-family: "Shippori Mincho", serif;
	background: #022A46;
	font-size: 1.4rem;
	line-height: 1.5;
	height: 100%;
	-webkit-text-size-adjust: 100%;
}
img {
	image-rendering: -webkit-optimize-contrast;
	display: block;
}

a {
	text-decoration: none;
	color: inherit;
	transition: opacity .3s;
}
table,
tbody,
thead,
tr,
th,
td {
	position: static;
}
@media (hover: hover) {
	a:hover {
		opacity: .6;
	}
}
@media only screen and (max-width: 1180px) {
	html {
		font-size: .8475vw;
	}
}
@media only screen and (max-width: 768px) {
	.wrapper {
		overflow: hidden;
	}
	img {
		width: 100%;
	}
	html {
		font-size: 2.6667vw;
	}
}

/*font
----------------------------------------*/
.en {
	font-family: "Cormorant", serif;
}

/* img
----------------------------------------*/
img {
	max-width: 100%;
	height: auto;
}

/*表示
----------------------------------------*/
@media only screen and (min-width: 769px) {
	.sp {
		display: none !important;
	}
}

@media only screen and (max-width: 768px) {
	.pc {
		display: none !important;
	}
}

/*header
----------------------------------------*/
.header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	padding: 3.3rem 4rem;
	display: flex;
	justify-content: space-between;
	z-index: 3000;
	opacity: 0;
	transition: opacity .5s;
	transition-delay: 2s;
}
.loaded .header {
	opacity: 1;
}
.header_logo {
	max-width: 78.17rem;
	margin-top: .7rem;
	z-index: 4000;
}
.header_menu {
	position: fixed;
	top: 3.3rem;
	right: 4rem;
	width: 7rem;
	margin-right: 1.5rem;
	z-index: 4000;
}
.header_menu button {
	appearance: none;
	border: 0;
	padding: 0;
	background: none;
	border-radius: 0;
	outline: none;
	cursor: pointer;
}
.header_menu button svg {
	max-width: 100%;
	overflow: visible;
}
.header_menu #path_1 {
	transform: translate(0, .7313rem);
	transition: transform .3s;
}
.header_menu #path_2 {
	transform: translate(0, .5502rem);
	transition: transform .3s;
}
.open .header_menu #path_1 {
	transform: translate(.0539rem, 1.7931rem);
}
.open .header_menu #path_2 {
	transform: translate(.5229rem, .0431rem);
}
@media only screen and (max-width: 768px) {
	.header {
		padding: 2rem;
	}
	.header_logo {
		max-width: 6.4rem;
		margin-top: 0;
	}
	.header_menu {
		top: 2rem;
		right: 2rem;
		width: 5rem;
		margin-right: .4rem;
	}
}

/*gnav
----------------------------------------*/
.gnav {
	position: fixed;
	top: 0;
	right: 0;
	height: 100%;
	width: 35rem;
	overflow: auto;
	background: rgba(0, 31, 54, .9);
	color: #fff;
	padding: 13.5rem 5.7rem 5rem;
	text-align: right;
	transform: translateX(100%);
	transition: transform .3s;
	z-index: 3000;
}
.open .gnav {
	transform: none;
}
.gnav li + li {
	margin-top: 2.1rem;
}
.gnav a {
	display: block;
	font-size: 2.6rem;
	letter-spacing: .1em;
}
@media only screen and (max-width: 768px) {
	.gnav {
		width: 100%;
		padding: 10rem 2.4rem 5rem;
	}
	.gnav li + li {
		margin-top: 1.6rem;
	}
	.gnav a {
		font-size: 2.2rem;
	}
}

/*main
----------------------------------------*/
main .contents.index::before {
	content: '';
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(../img/facilities_bg.jpg) no-repeat center center / cover;
}
.contents {
	transition: filter .5s;
}
.open .contents {
	filter: blur(.2rem);
}
@media only screen and (max-width: 768px) {
	main .contents.index::before {
		background-image: url(../img/facilities_bg-sp.jpg);
		height: calc(100% - 5.12rem);
	}
}

/*mainv
----------------------------------------*/
.mainv {
	background: #022A46;
}
.mainv::before {
	content: '';
	display: block;
	width: 89rem;
	height: 22rem;
	background: url(../img/mainv_txt.svg) no-repeat left top / 100% auto;
	position: absolute;
	bottom: 2.5rem;
	left: 2.3rem;
	z-index: 2;
	opacity: 0;
	transition: opacity .5s;
	transition-delay: 1.5s;
}
.comingsoon .mainv::after {
	content: 'COMING SOON';
	display: block;
	font-family: "Cormorant", serif;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	color: #fff;
	font-size: 12rem;
	letter-spacing: .05em;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity .5s;
	transition-delay: 2.5s;
}
.loaded .mainv::before,
.loaded .mainv::after {
	opacity: 1;
}
.mainv h2 {
	position: absolute;
	top: calc(50% - 25.8rem);
	left: calc(50% + 35.8rem);
	writing-mode: vertical-rl;
	color: #fff;
	font-weight: 400;
	font-size: 1.45rem;
	letter-spacing: .27em;
	line-height: 2.45;
}
.comingsoon .mainv h2 {
	top: calc(50% - 31.8rem);
	left: calc(50% + 40.8rem);
}
.mainv h2 > span:last-child {
	margin-top: 4.4rem;
}
.mainv h2 > span span {
	opacity: 0;
	display: inline-block;
	transform: translateY(-.5rem);
	transition: opacity .5s, transform .5s;
}
.loaded .mainv h2 > span span {
	opacity: 1;
	transform: none;
	transition-delay: .5s;
}
.loaded .mainv h2 > span:nth-of-type(1) span:nth-child(1) {
	transition-delay: .55s;
}
.loaded .mainv h2 > span:nth-of-type(1) span:nth-child(2) {
	transition-delay: .6s;
}
.loaded .mainv h2 > span:nth-of-type(1) span:nth-child(3) {
	transition-delay: .65s;
}
.loaded .mainv h2 > span:nth-of-type(1) span:nth-child(4) {
	transition-delay: .7s;
}
.loaded .mainv h2 > span:nth-of-type(1) span:nth-child(5) {
	transition-delay: .75s;
}
.loaded .mainv h2 > span:nth-of-type(1) span:nth-child(6) {
	transition-delay: .8s;
}
.loaded .mainv h2 > span:nth-of-type(1) span:nth-child(7) {
	transition-delay: .85s;
}
.loaded .mainv h2 > span:nth-of-type(1) span:nth-child(8) {
	transition-delay: .9s;
}
.loaded .mainv h2 > span:nth-of-type(2) span:nth-child(1) {
	transition-delay: .7s;
}
.loaded .mainv h2 > span:nth-of-type(2) span:nth-child(2) {
	transition-delay: .75s;
}
.loaded .mainv h2 > span:nth-of-type(2) span:nth-child(3) {
	transition-delay: .85s;
}
.loaded .mainv h2 > span:nth-of-type(2) span:nth-child(4) {
	transition-delay: .9s;
}
.loaded .mainv h2 > span:nth-of-type(2) span:nth-child(5) {
	transition-delay: .95s;
}
.loaded .mainv h2 > span:nth-of-type(2) span:nth-child(6) {
	transition-delay: 1s;
}
.loaded .mainv h2 > span:nth-of-type(2) span:nth-child(7) {
	transition-delay: 1.05s;
}
.loaded .mainv h2 > span:nth-of-type(2) span:nth-child(8) {
	transition-delay: 1.1s;
}
.loaded .mainv h2 > span:nth-of-type(2) span:nth-child(9) {
	transition-delay: 1.15s;
}
.mainv figure {
	height: 100dvh;
	opacity: 0;
	transition: opacity .5s;
}
.loaded .mainv figure {
	opacity: 1;
}
.mainv figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media only screen and (max-width: 768px) {
	.mainv::before {
		width: 34rem;
		height: 17.2rem;
		background-image: url(../img/mainv_txt-sp.svg);
		bottom: 1.7rem;
		left: 1.75rem;
	}
	.comingsoon .mainv::after {
		font-size: 7rem;
		line-height: .9286;
		padding: 0 4rem;
	}
	.mainv h2 {
		width: 5.625rem;
		top: 5.763rem;
		left: 21.4rem;
		font-size: 1.8rem;
		letter-spacing: .35em;
		line-height: 2.2;
	}
	.comingsoon .mainv h2 {
		font-size: 1.4rem;
		top: 3.4rem;
		left: 25.4rem;
		letter-spacing: .25em;
		line-height: 2;
	}
	.mainv h2 > span:last-child {
		margin-top: 5.8rem;
	}
	.comingsoon .mainv h2 > span:last-child {
		margin-top: 4.2rem;
	}
	.mainv h2 img {
		width: 100%;
	}
}

/*bg_wrap
----------------------------------------*/
.bg_wrap {
	background: #022A46;
	overflow: hidden;
	z-index: 2;
}
.bg_wrap::before {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	height: 74.8rem;
	background: #001F36;
	width: calc(50% + 41.4rem);
}
.bg_wrap::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: url(../img/body_bg.png) left top / 19.4rem auto;
	pointer-events: none;
}
@media only screen and (max-width: 768px) {
	.bg_wrap {
		overflow: visible;
	}
	.bg_wrap::before,
	.bg_wrap::after {
		display: none;
	}
}

/*concept
----------------------------------------*/
.concept {
	width: calc(50% + 55rem);
	margin: 0 0 0 auto;
	padding: 11.5rem 0 0;
	color: #AEBBC4;
	display: flex;
	z-index: 10;
}
.concept h2 {
	writing-mode: vertical-rl;
	font-weight: 400;
	font-size: 4.4rem;
	letter-spacing: .02em;
	line-height: 1.2;
	padding-top: 3.2rem;
	color: #fff;
}
.concept h2::before {
	content: '';
	display: block;
	width: .9rem;
	height: .9rem;
	border-radius: 50%;
	background: #fff;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.concept_txt {
	width: 49.9rem;
	margin: 2.6rem 0 0 8.4rem;
	transition-delay: 1s !important;
}
.concept_txt p {
	font-size: 1.6rem;
	letter-spacing: .05em;
	line-height: 2.63;
}
.concept_txt p.en {
	font-size: 1.4rem;
	letter-spacing: 0;
	margin-top: 7rem;
	line-height: 2;
}
.concept_img {
	flex: 1;
	padding: 4.1rem 0 0 13.6rem;
	transition-delay: .5s !important;
}
.concept_img::before,
.concept_img::after {
	content: '';
	display: block;
	width: 1.6rem;
	height: 1.6rem;
	border-radius: 50%;
	background: #fff;
	position: absolute;
	top: 39rem;
	left: 25.5rem;
	z-index: 10;
}
.concept_img::after {
	box-sizing: border-box;
	background: none;
	border: 1px solid #fff;
	top: 39.8rem;
	left: 26.3rem;
	transform: translate(-50%, -50%);
	animation-fill-mode: forwards;
	animation-duration: 2s;
	animation-name: concept_marker;
	animation-iteration-count: infinite;
}
@keyframes concept_marker {
	0% {
		width: 1.6rem;
		height: 1.6rem;
		opacity: 1;
	}
	100% {
		width: 4rem;
		height: 4rem;
		opacity: 0;
	}
}
.concept_img figure {
	width: 57.1rem;
	position: absolute;
}
.concept_area {
	width: 18.4rem;
	height: 18.4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	letter-spacing: .05em;
	color: rgba(255, 255, 255, .44);
	background: rgba(0, 25, 43, .43);
	text-align: center;
	border-radius: 50%;
	line-height: 1.55;
	padding-top: .2rem;
	position: absolute;
	top: 20.9rem;
	left: 4rem;
}
.concept_area + .concept_area {
	top: 23.4rem;
	left: 20.5rem;
}
@media only screen and (max-width: 768px) {
	.concept {
		width: auto;
		padding: 4.2rem 0 0;
		display: block;
	}
	.concept h2 {
		margin-left: 2.4rem;
		font-size: 4rem;
		padding-top: 2.5rem;
	}
	.concept_txt {
		width: 30.2rem;
		margin: 3.7rem 0 0 3.6rem;
		transition-delay: 0s !important;
	}
	.concept_txt p {
		font-size: 1.5rem;
		line-height: 2.46;
	}
	.concept_txt p.en {
		font-size: 1.3rem;
		margin-top: 3.7rem;
		line-height: 2.15;
	}
	.concept_img {
		position: absolute;
		top: -1.7rem;
		right: 0;
		padding: 0 0 0 8.5rem;
		transition-delay: 0s !important;
	}
	.concept_img::before,
	.concept_img::after {
		width: 1rem;
		height: 1rem;
		top: 21.3rem;
		left: 13.4rem;
	}
	.concept_img::after {
		top: 21.8rem;
		left: 13.9rem;
	}
	.concept_img figure {
		width: 18.2rem;
		position: relative;
	}
	.concept_area {
		width: 11.5rem;
		height: 11.5rem;
		font-size: 1.3rem;
		top: 10rem;
		left: 0;
		line-height: 1.3;
	}
	.concept_area + .concept_area {
		top: 11.5rem;
		left: 10.3rem;
	}
}

/*gallery
----------------------------------------*/
.gallery {
	width: calc(50% + 55rem);
	margin: 21rem 0 15rem auto;
	color: #AEBBC4;
}
.gallery h2 {
	font-size: 10.1rem;
	letter-spacing: .05em;
	font-weight: 400;
	color: #fff;
	margin: 0 0 -6.5rem .6rem;
	z-index: 2;
}
.gallery_slider {
	margin: 0 0 0 22.4rem;
	overflow: hidden;
	opacity: 0;
	transform: translateX(10rem);
	transition: opacity .3s, transform .5s;
	transition-delay: .5s;
}
.gallery.show .gallery_slider {
	opacity: 1;
	transform: none;
}
.gallery .swiper {
	margin: 0;
	height: 44.5rem;
	width: 30.8rem;
	overflow: visible;
}
.gallery .swiper-wrapper {
	align-items: flex-end;
}
.gallery .swiper-slide {
	height: auto;
	transition: width .3s;
}
.gallery .swiper-slide-active {
	width: 44.8rem !important;
}
.gallery .swiper-button-next {
	width: 10.3rem;
	height: 10.3rem;
	border-radius: 50%;
	background: #fff;
	right: auto;
	top: 24.3rem;
	left: 14.4rem;
	mix-blend-mode: difference;
	opacity: 0;
	transform: translateX(10rem);
	transition: opacity .3s, transform .5s;
	transition-delay: .5s;
}
.gallery.show .swiper-button-next {
	opacity: 1;
	transform: none;
}
.gallery .swiper-button-next::after {
	display: none;
}
.gallery .swiper-button-next::before {
	content: '';
	display: block;
	width: 2.8775rem;
	height: .7248rem;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	background: url(../img/gallery_arrow.svg) no-repeat left top / 100% auto;
}
.gallery .swiper-button-next.swiper-button-disabled {
	opacity: 0;
}
.gallery .swiper-scrollbar {
	width: 37.2rem;
	height: .2rem;
	top: 0;
	left: calc(45.6rem + 46px);
	bottom: auto;
	border-radius: 0;
	background: rgba(255, 255, 255, .2);
}
.gallery .swiper-scrollbar-drag {
	background: rgba(255, 255, 255, .5);
}
.gallery_txt {
	width: 18.2rem;
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: .05em;
	position: absolute;
	left: .5rem;
	bottom: -.6rem;
	line-height: 2.15;
	opacity: 0;
	transform: translateY(5rem);
	transition: opacity .3s, transform .5s;
	transition-delay: 1s;
}
.gallery.show .gallery_txt {
	opacity: 1;
	transform: none;
}
@media only screen and (max-width: 768px) {
	.gallery {
		background: #001F36;
		width: auto;
		margin: 4.2rem 0 0 0;
		padding-bottom: 4rem;
	}
	.gallery h2 {
		font-size: 5.9rem;
		line-height: 1.15;
		text-align: right;
		margin: 0 1rem -2.1rem .6rem;
	}
	.gallery_slider {
		margin: 0 0 0 3.6rem;
	}
	.gallery .swiper {
		height: auto;
		width: 18.7rem;
	}
	.gallery .swiper-wrapper {
		height: 30rem;
		align-items: center;
	}
	.gallery .swiper-slide-active {
		width: 30.2rem !important;
	}
	.gallery .swiper-button-next {
		width: 3.9rem;
		height: 3.9rem;
		top: 17.8rem;
		left: .89rem;
		margin: 0;
	}
	.gallery .swiper-button-next::before {
		width: 1.2rem;
		height: .328rem;
	}
	.gallery .swiper-scrollbar {
		width: 30.2rem;
		height: .1rem;
		margin: 1.5rem auto 0;
		position: relative;
		top: auto;
		left: auto;
	}
	.gallery_txt {
		width: 30.2rem;
		margin: 2.2rem auto 0;
		font-size: 1.3rem;
		position: relative;
		left: auto;
		bottom: auto;
		line-height: 2.3;
	}
}

/*facilities
----------------------------------------*/
.facilities {
	background: #022A46 url(../img/body_bg.png) left top / 19.4rem auto;
	margin-top: 42.4rem;
	padding-bottom: 11rem;
	color: #AEBBC4;
	z-index: 2;
}
.facilities_inner {
	width: 110rem;
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
	padding: 13.4rem 0 0;
}
.facilities h2 {
	width: 37.4rem;
	color: #fff;
	font-weight: 400;
	font-size: 4rem;
	letter-spacing: .1em;
	padding-left: 2.8rem;
}
.facilities h2::before {
	content: '';
	display: block;
	width: .9rem;
	height: .9rem;
	border-radius: 50%;
	background: #fff;
	position: absolute;
	left: -.1rem;
	top: 0;
	bottom: 0;
	margin: auto 0;
}
.facilities dl {
	flex: 1;
	display: flex;
	flex-wrap: wrap;
	font-size: 1.4rem;
	letter-spacing: .05em;
	transition-delay: .5s !important;
}
.facilities dl dt {
	width: 18.3rem;
	padding: 1rem 0 2.3rem;
	margin-bottom: 1.5rem;
	line-height: 1.9;
}
.facilities dl dd {
	width: calc(100% - 18.3rem);
	padding: 1rem 0 2.3rem;
	margin-bottom: 1.5rem;
	line-height: 1.95;
	border-bottom: 1px solid #36505F;
}
.facilities dl dd:last-child {
	border-bottom: 0;
}
@media only screen and (max-width: 768px) {
	.facilities {
		background: #022A46;
		margin-top: 27.9rem;
		padding-bottom: 3.7rem;
	}
	.facilities_inner {
		width: auto;
		display: block;
		padding: 2.8rem 0 0;
	}
	.facilities h2 {
		width: auto;
		font-size: 3.8rem;
		margin: 0 0 1.8rem 6.4rem;
		padding-left: 2.3rem;
	}
	.facilities dl {
		width: 30.2rem;
		margin: 0 auto;
		display: block;
	}
	.facilities dl dt {
		width: auto;
		padding: 0;
		font-weight: 700;
		margin-bottom: .2rem;
	}
	.facilities dl dd {
		width: auto;
		padding: 0 0 1.4rem;
		font-size: 1.3rem;
		letter-spacing: .05em;
		line-height: 2.1;
	}
}

/*access
----------------------------------------*/
.access {
	background: #001F36;
	color: #AEBBC4;
	padding-bottom: 7.4rem;
}
.access::before {
	content: '';
	display: block;
	width: 1px;
	height: 12.1rem;
	background: #36505F;
	position: absolute;
	left: 0;
	right: 0;
	top: -6rem;
	margin: 0 auto;
	z-index: 10;
}
.access_head::before {
	content: '';
	display: block;
	width: calc(50% - 55rem);
	background: #022A46;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
}
.access::after {
	content: '';
	display: block;
	background: url(../img/body_bg.png) left top / 19.4rem auto;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}
.access_head {
	padding: 14.1rem 0 7.3rem;
	text-align: center;
}
.access h2 {
	color: #fff;
	font-size: 4rem;
	letter-spacing: .1em;
	font-weight: 400;
	margin-bottom: 2.1rem;
}
.access_head p {
	font-size: 1.5rem;
	letter-spacing: .1em;
}
.access_map iframe {
	display: block;
	width: 100%;
	height: 42.6rem;
	border: 0;
	filter: grayscale(100%);
}
.access_txt {
	width: calc(50% - 5.8rem);
	background: #001F36;
	margin: -9.8rem 0 0;
	padding: 6.2rem 0 0;
}
.access_txt dl {
	width: 49.2rem;
	margin: 0 0 0 auto;
}
.access_txt dl dt {
	font-size: 1.7rem;
	margin-bottom: 1.9rem;
}
.access_txt dl dd {
	font-size: 1.3rem;
	letter-spacing: .1em;
	margin-bottom: 4rem;
}
@media only screen and (max-width: 768px) {
	.access {
		padding-bottom: .4rem;
	}
	.access::before {
		height: 6rem;
		top: -3rem;
	}
	.access_head::before,
	.access::after {
		display: none;
	}
	.access_head {
		padding: 5.6rem 0 2.8rem;
	}
	.access h2 {
		font-size: 3.8rem;
		margin-bottom: .5rem;
	}
	.access_head p {
		font-size: 1.4rem;
	}
	.access_map iframe {
		height: 37.5rem;
	}
	.access_txt {
		width: auto;
		margin: 0;
		padding: 4rem 3.6rem 0;
	}
	.access_txt dl {
		width: auto;
		margin: 0;
	}
	.access_txt dl dt {
		font-size: 1.6rem;
		margin-bottom: 1.6rem;
	}
	.access_txt dl dd {
		font-size: 1.2rem;
		margin-bottom: 3.5rem;
	}
}

/*faq
----------------------------------------*/
.faq {
	background: #F0F0F0;
	color: #022A46;
}
.faq::after {
	content: '';
	display: block;
	background: url(../img/body_bg.png) left top / 19.4rem auto;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.faq_inner {
	width: calc(50% + 54.4rem);
	margin: 0 0 0 auto;
	display: flex;
	align-items: flex-start;
}
.faq h2 {
	width: 18rem;
	font-size: 4rem;
	letter-spacing: .1em;
	font-weight: 400;
	margin-top: 13.4rem;
	padding-left: 2.9rem;
	z-index: 10;
}
.faq h2::before {
	content: '';
	display: block;
	width: .9rem;
	height: .9rem;
	border-radius: 50%;
	background: #022A46;
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	margin: auto 0;
}
.faq_box {
	flex: 1;
	background: linear-gradient(135deg, #fff 0%,#e8e8e8 100%);
	padding: 14rem 0 15rem;
}
.faq_box dl {
	border-left: 1px solid #022A46;
	padding: .1rem 0 0 9.2rem;
	width: 91.3rem;
	z-index: 10;
	transition-delay: .5s !important;
}
.faq_box dl::after {
	content: '';
	display: block;
	margin-top: 3.2rem;
	border-bottom: 1px solid #022A46;
}
.faq_box dt {
	font-size: 1.5rem;
	font-weight: 500;
	margin-top: 3.2rem;
	padding: 3.5rem 6rem 0 0;
	border-top: 1px solid #022A46;
	cursor: pointer;
}
.faq_box dt::before,
.faq_box dt::after {
	content: '';
	display: block;
	width: 1.5rem;
	height: .1rem;
	background: #022A46;
	position: absolute;
	right: 2.9rem;
	top: 5.2rem;
}
.faq_box dt::after {
	transform: rotate(90deg);
}
.faq_box dt:first-child {
	margin-top: -.4rem;
	padding-top: 0;
	border-top: 0;
}
.faq_box dt:first-child::before,
.faq_box dt:first-child::after {
	top: 1.6rem;
}
.faq_box dt .en {
	font-size: 2.2rem;
	margin-right: 2rem;
}
.faq_box dd {
	font-size: 1.4rem;
	line-height: 2.15;
	letter-spacing: .05em;
	padding: 1.7rem 0 0 3.9rem;
	display: none;
}
@media only screen and (max-width: 768px) {
	.faq {
		padding-top: 6.7rem;
	}
	.faq::after {
		display: none;
	}
	.faq_inner {
		width: auto;
		margin: 0;
		display: block;
	}
	.faq h2 {
		width: auto;
		font-size: 3.8rem;
		margin: 0 0 2.4rem 3.7rem;
		padding-left: 2.4rem;
	}
	.faq_box {
		padding: 0 0 6.2rem;
	}
	.faq_box dl {
		border-left: 0;
		border-top: 1px solid #022A46;
		padding: 2.9rem 0 0;
		width: 30.2rem;
		margin: 0 auto;
	}
	.faq_box dl::after {
		margin-top: 1.8rem;
	}
	.faq_box dt {
		font-size: 1.4rem;
		letter-spacing: .1em;
		margin-top: 1.8rem;
		padding: 2rem 3rem 0 3.8rem;
	}
	.faq_box dt::before,
	.faq_box dt::after {
		right: 0;
		top: 3rem;
	}
	.faq_box dt:first-child {
		margin-top: 0;
		padding-top: 2rem;
	}
	.faq_box dt:first-child::before,
	.faq_box dt:first-child::after {
		top: 3rem;
	}
	.faq_box dt .en {
		font-size: 2.2rem;
		margin-right: 0;
		position: absolute;
		left: 0;
		top: 1.6rem;
	}
	.faq_box dd {
		font-size: 1.3rem;
		line-height: 2.1;
		padding: 1.5rem 0 1.7rem 3.8rem;
	}
}

/*contact
----------------------------------------*/
.contact {
	background: #022A46;
	padding: 16.7rem 0 11.2rem;
	color: #fff;
	opacity: 1 !important;
	transform: none !important;
}
.contact::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(../img/body_bg.png) left top / 19.4rem auto, url(../img/contact_bg.jpg) no-repeat center center / cover;
	opacity: 0;
	transition: opacity 1s;
}
.contact.show::before {
	opacity: 1;
}
.contact_inner {
	width: 110rem;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	opacity: 0;
	transform: translateY(5rem);
	transition: opacity .3s, transform .5s;
	transition-delay: .5s;
}
.contact.show .contact_inner {
	opacity: 1;
	transform: none;
}
.contact h2 {
	width: 19.2rem;
	line-height: 1.3;
	border-right: 1px solid rgba(255, 255, 255, .4);
	font-weight: 400;
	font-size: 3rem;
	letter-spacing: .1em;
}
.contact_item {
	width: 47.5rem;
	display: flex;
	align-items: center;
	padding-bottom: 9.5rem;
	border-bottom: 1px solid #fff;
}
.contact_item + .contact_item {
	width: 46.8rem;
}
.contact_link {
	flex: 1;
}
.contact_link a {
	font-size: 1.3rem;
	letter-spacing: .1em;
	display: block;
	padding: 0 0 0 3rem;
}
.contact_link a::after {
	content: '';
	display: block;
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	border: 1px solid #fff;
	background: url(../img/contact_icon.svg) no-repeat left top / 100% auto;
	position: absolute;
	right: .7rem;
	top: 0;
	bottom: 0;
	margin: auto 0;
	transition: background-position .3s;
}
.contact_item + .contact_item .contact_link a::after {
	right: 0;
}
@media (hover:hover) {
	.contact_link a:hover::after {
		background-position: .5rem top;
	}
}
@media only screen and (max-width: 768px) {
	.contact {
		display: none;
	}
}

/*footer
----------------------------------------*/
.footer .footer_link {
	position: fixed;
	right: 5.5rem;
	bottom: 4.7rem;
	color: #fff;
	z-index: 2000;
	opacity: 0;
	transition: opacity .5s, color .3s;
	transition-delay: 2s, 0s;
}
.loaded .footer_link {
	opacity: 1;
}
.footer .footer_link li + li {
	margin-top: 1.6rem;
}
.footer .footer_link a {
	display: block;
	padding-left: 2rem;
	font-size: 1.4rem;
	letter-spacing: .05em;
}
.footer {
	background: #001F36;
	color: #AEBBC4;
	margin-top: -1px;
	padding: 10rem 0 10.5rem;
}
.comingsoon .footer {
	padding: 0;
}
.footer_inner {
	width: 110rem;
	margin: 0 auto;
	display: flex;
}
.footer_logo {
	width: 14.679rem;
}
.footer_logo img {
	width: 100%;
}
.footer_info {
	width: 59.9rem;
	padding-left: 13.2rem;
}
.footer_address {
	margin-top: -.4rem;
	font-size: 1.4rem;
	line-height: 2;
}
.footer_sns {
	margin: 10.3rem 0 0 -.3rem;
	display: flex;
}
.footer_sns li {
	width: 2.8rem;
}
.footer_sns li img {
	width: auto;
	height: 2.785rem;
}
.footer_sns li + li {
	margin-left: 3.8rem;
}
.footer_sns li a {
	display: flex;
	justify-content: center;
	align-items: center;
}
.footer_navi {
	border-left: 1px solid rgba(255, 255, 255, .4);
	flex: 1;
	color: #fff;
	font-size: 1.4rem;
	letter-spacing: .05em;
	margin-top: -.2rem;
	padding: 0 0 0 9.5rem;
}
.footer_navi li + li {
	margin-top: 2.1rem;
}
.footer .copyright {
	font-size: 1.2rem;
	letter-spacing: .05em;
	display: block;
	color: #FFF;
	position: absolute;
	left: .1rem;
	bottom: -.2rem;
}
@media only screen and (min-width: 769px) {
	.footer .footer_link.blue {
		color: #022A46;
	}
	.footer .footer_link.hide {
		opacity: 0;
		pointer-events: none;
	}
	.footer .footer_link.blue a::before {
		background: #022A46;
	}
	.footer .footer_link a::before,
	.footer .footer_link a::after {
		content: '';
		display: block;
		width: .4rem;
		height: .4rem;
		border-radius: 50%;
		background: #fff;
		position: absolute;
		left: 0;
		top: .9rem;
		transition: background .3s;
	}
	.footer .footer_link a::after {
		box-sizing: border-box;
		background: none;
		border: 1px solid #fff;
		left: .2rem;
		top: 1.1rem;
		transform: translate(-50%, -50%);
		animation-fill-mode: forwards;
		animation-duration: 3s;
		animation-name: footer_link_icon;
		animation-iteration-count: infinite;
	}
	@keyframes footer_link_icon {
		0% {
			width: .4rem;
			height: .4rem;
			opacity: 1;
		}
		100% {
			width: 1.5rem;
			height: 1.5rem;
			opacity: 0;
		}
	}
	.footer_address a[href^="tel:"] {
		pointer-events: none;
	}
}
@media only screen and (max-width: 769px) {
	.comingsoon .footer .footer_link {
		right: 2.8rem;
		bottom: 2.8rem;
	}
	.comingsoon .footer .footer_link.blue {
		color: #022A46;
	}
	.comingsoon .footer .footer_link.hide {
		opacity: 0;
		pointer-events: none;
	}
	.comingsoon .footer .footer_link.blue a::before {
		background: #022A46;
	}
	.comingsoon .footer .footer_link a {
		padding-left: 1.5rem;
	}
	.comingsoon .footer .footer_link a::before,
	.comingsoon .footer .footer_link a::after {
		content: '';
		display: block;
		width: .4rem;
		height: .4rem;
		border-radius: 50%;
		background: #fff;
		position: absolute;
		left: 0;
		top: .9rem;
		transition: background .3s;
	}
	.comingsoon .footer .footer_link a::after {
		box-sizing: border-box;
		background: none;
		border: 1px solid #fff;
		left: .2rem;
		top: 1.1rem;
		transform: translate(-50%, -50%);
		animation-fill-mode: forwards;
		animation-duration: 3s;
		animation-name: footer_link_icon;
		animation-iteration-count: infinite;
	}
	@keyframes footer_link_icon {
		0% {
			width: .4rem;
			height: .4rem;
			opacity: 1;
		}
		100% {
			width: 1.5rem;
			height: 1.5rem;
			opacity: 0;
		}
	}
}
@media only screen and (max-width: 768px) {
	.wrapper:not(.comingsoon) .footer .footer_link {
		right: 0;
		left: 0;
		bottom: 0;
		background: url(../img/footer_link_bg.jpg) no-repeat center center / cover;
		transform: translateY(100%);
		transition: transform .3s;
	}
	.wrapper:not(.comingsoon) .footer .footer_link.show {
		transform: none;
		position: all;
	}
	.wrapper:not(.comingsoon) .footer .footer_link ul {
		display: flex;
	}
	.wrapper:not(.comingsoon) .footer .footer_link ul li {
		width: 50.2%;
	}
	.footer .footer_link ul li:first-child {
		width: 49.8%;
	}
	.wrapper:not(.comingsoon) .footer .footer_link li + li {
		margin-top: 0;
	}
	.wrapper:not(.comingsoon) .footer .footer_link li + li::before {
		content: '';
		display: block;
		width: .1rem;
		height: 3.9rem;
		position: absolute;
		left: 0;
		top: 1.1rem;
		background: rgba(255, 255, 255, .4);
	}
	.wrapper:not(.comingsoon) .footer .footer_link a {
		padding: .9rem 0 1.5rem;
		font-size: 1.8rem;
		line-height: 1.25;
		text-align: center;
		letter-spacing: .1em;
	}
	.wrapper:not(.comingsoon) .footer .footer_link li + li a {
		padding-right: 2.3rem;
	}
	.wrapper:not(.comingsoon) .footer .footer_link a::after {
		content: '';
		display: block;
		width: .8072rem;
		height: .5737rem;
		background: url(../img/footer_link_icon.svg) no-repeat left top / 100% auto;
		position: absolute;
		top: 0;
		bottom: 0;
		right: 2.2rem;
		margin: auto 0;
	}
	.wrapper:not(.comingsoon) .footer .footer_link li + li a::after {
		right: 4.2rem;
	}
	.wrapper:not(.comingsoon) .footer .footer_link a .sp {
		display: block;
		font-size: .9rem;
		letter-spacing: .1em;
	}
	.footer {
		background: #022A46;
		margin-top: 0;
		padding: 4rem 0 9rem;
	}
	.footer_inner {
		width: auto;
		display: block;
	}
	.footer_logo {
		width: 8.4rem;
		margin: 0 auto 2.5rem;
	}
	.footer_info {
		width: auto;
		padding-left: 0;
	}
	.footer_address {
		margin-top: 0;
		text-align: center;
	}
	.footer_sns {
		margin: 3.5rem 0 2.8rem;
		justify-content: center;
	}
	.footer_sns li {
		width: 2.22rem;
	}
	.footer_sns li img {
		height: 2.22rem;
	}
	.footer_sns li + li {
		margin-left: 2.2rem;
	}
	.footer_navi {
		display: none;
	}
	.footer .copyright {
		text-align: center;
		position: relative;
		left: auto;
		bottom: auto;
	}
}

/*inview
----------------------------------------*/
.inview {
	opacity: 0;
	transform: translateY(5rem);
	transition: opacity .3s, transform .5s;
}
.inview.show {
	opacity: 1;
	transform: none;
}