@charset "UTF-8";

/* header
----------------------------------------*/
.header_logo {
	opacity: 0;
	transition: opacity .3s;
}
.header.show .header_logo {
	opacity: 1;
}

/* loading
----------------------------------------*/
.loading {
	background: #EDEBDD;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2000;
	animation-fill-mode: forwards;
	animation-duration: 1s;
	animation-name: loading;
	animation-iteration-count: 1;
	animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	animation-delay: 5s;
}
@keyframes loading {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		pointer-events: none;
	}
}
.loaded .mv_logo {
	z-index: 0;
}
.loaded .loading {
	opacity: 0;
	animation: none;
	pointer-events: none;
}
.loaded .mv_logo::after {
	background: #282221;
	animation: none;
}
.loaded .mv_logo > img {
	opacity: .3;
	animation: none;
}
.loaded .mv_logo > h1 {
	opacity: 1;
	animation: none;
}

/* mv
----------------------------------------*/
.mv {
	padding-bottom: 13.9rem;
}
.mv_inner {
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mv_logo {
	z-index: 2010;
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: mv_logo_04;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 5.5s;
}
.mv_logo::after {
	content: '';
	display: block;
	width: 20.3rem;
	height: 20.4rem;
	border-radius: 50%;
	background: #EDEBDD;
	position: absolute;
	left: 0;
	right: 0;
	top: .3rem;
	margin: 0 auto;
	animation-fill-mode: forwards;
	animation-duration: 1s;
	animation-name: mv_logo_01;
	animation-iteration-count: 1;
	animation-timing-function: cubic-bezier(0, 0, 0.58, 1);
	animation-delay: 1s;
}
.mv_logo > img {
	width: 21.3rem;
	opacity: 1;
	animation-fill-mode: forwards;
	animation-duration: 1s;
	animation-name: mv_logo_03;
	animation-iteration-count: 1;
	animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	animation-delay: 3s;
}
.mv_logo > h1 {
	width: 7.4rem;
	margin: 4.1rem auto 0;
	opacity: 0;
	animation-fill-mode: forwards;
	animation-duration: 1s;
	animation-name: mv_logo_02;
	animation-iteration-count: 1;
	animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
	animation-delay: 3s;
}
@keyframes mv_logo_01 {
	0% {
		background: #EDEBDD;
	}
	100% {
		background: #282221;
	}
}
@keyframes mv_logo_02 {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
@keyframes mv_logo_03 {
	0% {
		opacity: 1;
	}
	100% {
		opacity: .3;
	}
}
@keyframes mv_logo_04 {
	0% {
		z-index: 2010;
	}
	99.99% {
		z-index: 2010;
	}
	100% {
		z-index: 0;
	}
}
.mv_txt {
	max-width: 72.4rem;
	margin: calc(-50vh + 5.3rem) auto 0;
}
.mv_txt h2 {
	font-size: 3rem;
	letter-spacing: .1em;
	font-weight: 400;
	margin: 0 -1rem 8.5rem 0;
}
.mv_txt h2 img {
	width: 44.17rem;
	display: block;
	margin-bottom: 6.3rem;
}
.mv_txt p {
	font-size: 1.6rem;
	line-height: 3.0625;
	letter-spacing: .1em;
	margin-left: .9rem;
	color: #EDEBDD;
}
@media only screen and (max-width: 768px) {
	.mv {
		padding-bottom: 7.6rem;
	}
	.mv_logo::after {
		width: 18.5rem;
		height: 18.6rem;
		top: .3rem;
	}
	.mv_logo > img {
		width: 19.4rem;
	}
	.mv_logo > h1 {
		width: 6.7rem;
		margin: 3.7rem auto 0;
	}
	.mv_txt {
		margin: calc(-50vh + 10.9rem) auto 0;
	}
	.mv_txt h2 {
		line-height: 1.9667;
		margin: 0 3rem 3.4rem;
	}
	.mv_txt h2 img {
		max-width: none;
		width: 27.3rem;
		margin: 0 0 4.7rem;
	}
	.mv_txt p {
		font-size: 1.4rem;
		line-height: 2.5714;
		margin: 0 3rem;
	}
}

/* information
----------------------------------------*/
.information {
	padding-bottom: 21.4rem;
}
.information_inner {
	max-width: calc(50% + 35.3rem);
	margin: 0 0 0 auto;
}
.information h2 {
	font-size: 1.6rem;
	letter-spacing: .1em;
	font-weight: 400;
	margin-bottom: 2.5rem;
}
.information ul {
	margin-bottom: 4.5rem;
}
.information li {
	border-bottom: .1rem solid #565550;
	margin-bottom: 2.7rem;
}
.information li a {
	display: grid;
	grid-template-columns: 9.8rem 1fr;
	font-size: 1.3rem;
	letter-spacing: .1em;
	padding: .1rem 0 1.5rem;
}
@media only screen and (max-width: 768px) {
	.information {
		padding-bottom: 16.4rem;
	}
	.information_inner {
		max-width: none;
		margin: 0 0 0 3rem;
	}
	.information h2 {
		margin-bottom: 2.1rem;
	}
	.information ul {
		margin-bottom: 4.8rem;
	}
	.information li {
		margin-bottom: 2.1rem;
	}
	.information li a {
		display: block;
		line-height: 2.1538;
		padding: .1rem 3rem 1.5rem 0;
	}
	.information li time {
		display: block;
		margin-bottom: .4rem;
	}
}

/* menu
----------------------------------------*/
.menu::after {
	content: '';
	display: block;
	width: 61.3rem;
	height: 61.3rem;
	background: url(../../img/index/menu_logo_01.png) no-repeat left top / 100% auto;
	position: absolute;
	top: -8.4rem;
	left: calc(50% - 47.5rem);
	z-index: 1000;
}
.menu_bg {
	overflow: hidden;
	position: absolute;
	width: 100%;
	left: 0;
	top: 0;
}
.menu.fixed .menu_bg {
	position: fixed;
}
.menu_bg figure {
	width: 100%;
	float: left;
}
.menu_bg figure img {
	object-fit: cover;
	width: 100%;
	height: 100vh;
}
.menu_inner {
	max-width: 70rem;
	margin: 0 auto;
	color: #EDEBDD;
	z-index: 1010;
	padding: 62.8rem 0 0;
}
.menu h2 {
	font-size: 2rem;
	font-weight: 400;
	letter-spacing: .1em;
	margin-bottom: 3.6rem;
}
.menu h3 {
	font-size: 1.6rem;
	font-weight: 400;
	letter-spacing: .1em;
	margin: 8.6rem 0 2.6rem;
}
.menu_inner p {
	font-size: 1.4rem;
	letter-spacing: .15em;
	line-height: 2.2857;
}
.menu_inner h3 ~ p {
	font-size: 1.3rem;
	letter-spacing: .15em;
	line-height: 2.1538;
	margin-right: -.5rem;
}
.menu_img {
	overflow: hidden;
	margin: 20.3rem 0 0;
}
.menu_img figure {
	width: 34.2rem;
	float: left;
}
.menu_btn {
	background: #282221;
	padding: 8.3rem 0 19.4rem;
}
.menu_btn:empty {
	padding: 10rem 0 0;
}
.menu .btn {
	margin: 0 auto;
}
@media only screen and (max-width: 768px) {
	.menu::after {
		width: 33.1rem;
		height: 32.8rem;
		top: -7.1rem;
		left: 3rem;
	}
	.menu_inner {
		max-width: 33rem;
		padding: 42.2rem 0 0;
	}
	.menu h2 {
		margin-bottom: 2.4rem;
	}
	.menu h3 {
		margin: 7.2rem 0 2.5rem;
	}
	.menu_inner p {
		font-size: 1.3rem;
		line-height: 1.9231;
	}
	.menu_inner h3 ~ p {
		line-height: 1.9231;
		margin-right: 0;
	}
	.menu_img {
		margin: 9.1rem 0 0;
	}
	.menu_img figure {
		width: 26rem;
	}
	.menu_img figure img {
		height: 28.4rem;
		object-fit: cover;
	}
	.menu_btn {
		padding: 7.8rem 0 8.4rem;
	}
	.menu_btn:empty {
		padding: 8.4rem 0 0;
	}
}

/* access
----------------------------------------*/
.access {
	background: #282221;
	padding-bottom: 20rem;
}
.access_inner {
	max-width: calc(50% + 55rem);
	margin: 0 0 0 auto;
	display: grid;
	grid-template-columns: 19.7rem 1fr;
}
.access h2 {
	font-size: 1.8rem;
	letter-spacing: .1em;
	font-weight: 400;
}
.access h3 {
	font-size: 1.5rem;
	letter-spacing: .15em;
	font-weight: 400;
	margin: 6.8rem 0 1.3rem .3rem;
}
.access figure {
	margin-bottom: 3rem;
}
.access p {
	font-size: 1.3rem;
	line-height: 2.1538;
	letter-spacing: .15em;
	margin-left: .3rem;
}
.access_map {
	height: 48.5rem;
	overflow: hidden;
	margin: 0 0 2.2rem .3rem;
}
.access_map iframe {
	height: calc(48.5rem + 340px);
	display: block;
	width: 100%;
	border: 0;
	margin-top: -170px;
	filter: grayscale(1);
}
.access_link {
	display: block;
	width: fit-content;
	font-size: 1.3rem;
	letter-spacing: .1em;
	text-decoration: underline;
	color: #EDEBDD;
	margin: 0 0 5.3rem .3rem;
}
.access_link::before {
	content: '';
	display: inline-block;
	background: url(../../img/common/icon_access.svg) no-repeat left top / 100% auto;
	width: 1.2rem;
	height: 1.6rem;
	vertical-align: -.6rem;
	margin-right: 1rem;
}
.access_list {
	margin-top: 2.5rem;
	max-width: 89.8rem;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 3.1rem 5.4rem;
}
.access_list h4 {
	border-bottom: .1rem solid #565550;
	font-size: 1.5rem;
	font-weight: 400;
	letter-spacing: .15em;
	padding-bottom: .6rem;
	margin-bottom: 1.3rem;
}
.access_list p {
	margin-right: -3rem;
}
@media only screen and (max-width: 768px) {
	.access {
		padding-bottom: 13.4rem;
	}
	.access_inner {
		max-width: 36rem;
		display: block;
	}
	.access h2 {
		margin-bottom: 3.4rem;
	}
	.access h3 {
		margin: 5.2rem 0 1.3rem;
	}
	.access figure {
		margin-bottom: 2.7rem;
	}
	.access p {
		font-size: 1.3rem;
		margin-left: 0;
		margin-right: 3rem;
	}
	.access_map {
		width: 33rem;
		height: 33rem;
		margin: 0 0 1.8rem;
	}
	.access_map iframe {
		height: calc(33rem + 340px);
	}
	.access_link {
		margin: 0 0 4.5rem;
	}
	.access_list {
		max-width: 33rem;
		grid-template-columns: repeat(1, 1fr);
	}
	.access_list h4 {
		padding-bottom: .8rem;
		margin-bottom: 2.3rem;
	}
	.access_list p {
		margin-right: 0;
	}
}