@charset "UTF-8";

/* mv
----------------------------------------*/
.mv_wrap {
	clip-path: polygon(0% .01%, 0% 100%, 100% 100%, 100% .01%);
	overflow: hidden;
}
.mv_wrap_bg span {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, .34);
	opacity: 0;
}
.mv {
	max-width: none;
	overflow: hidden;
	height: 100vh;
}
.mv > figure {
	margin: 0;
}
.mv_wrap_bg {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}
.mv > figure img,
.mv_wrap_bg img {
	width: 100%;
	height: 100vh;
	object-fit: cover;
}
.mv_wrap_bg::after {
	content: '';
	display: block;
	position: none;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to bottom, rgba(203,203,203,0) 0%,rgba(147,147,147,1) 100%);
	opacity: .15;
}
.mv_cube {
	position: static;
}
.mv_cube img {
	opacity: 0;
	position: absolute;
	z-index: 5;
	transition: opacity .3s;
	animation-fill-mode: forwards;
	animation-duration: .5s, 8s;
	animation-name: top_fade, mv_cube;
	animation-iteration-count: 1, infinite;
	animation-timing-function: linear;
	will-change: transform, opacity;
}
.mv_cube img:nth-child(1) {
	width: 32.2rem;
	top: 11.1rem;
	left: calc(50% - 71.5rem);
	animation-delay: 1.5s, -2s;
}
.mv_cube img:nth-child(2) {
	width: 19.4rem;
	top: 31.4rem;
	left: calc(50% - 35.4rem);
	animation-delay: .9s;
}
.mv_cube img:nth-child(3) {
	width: 20.6rem;
	top: 4rem;
	left: calc(50% + 13.6rem);
	animation-delay: 1.2s, -1s;
}
.mv_cube img:nth-child(4) {
	width: 42.3rem;
	top: 20.9rem;
	left: calc(50% + 31.6rem);
	animation-delay: 1.8s, -3s;
}
@keyframes top_fade {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
@keyframes mv_cube {
	0% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(30%);
	}
	100% {
		transform: translateY(0);
	}
}
.mv h1 {
	position: absolute;
	top: calc(50% - 16.6rem);
	left: 0;
	right: 0;
	display: block;
	opacity: 0;
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: .3s;
	will-change: transform, opacity;
}
.mv_wrap_bg::before {
	content: '';
	display: block;
	width: 46.8077rem;
	height: 52rem;
	background: url(../../img/index/mv_logo.svg) no-repeat left top / 100% auto;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
	z-index: 10;
	opacity: 0;
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	will-change: transform, opacity;
}
.mv h1 img {
	width: 9.086rem;
	margin: 0 auto;
	position: relative;
}
.mv h2 {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2.4rem;
	color: #fff;
	font-size: 18.7rem;
	letter-spacing: .04em;
	font-weight: 400;
	text-align: center;
	line-height: 1;
	opacity: 0;
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: .6s;
	will-change: transform, opacity;
}
.mv h2 span {
	display: block;
	font-size: 8.8rem;
	letter-spacing: 0;
	line-height: 1;
	margin-bottom: -1.8rem;
}
@media only screen and (max-width: 768px) {
	.mv > figure img {
		height: 100vh;
		object-position: 35% center;
	}
	.mv_cube img:nth-child(1) {
		width: 17.7rem;
		top: calc(50% - 32.2rem);
		left: -3.9rem;
	}
	.mv_cube img:nth-child(2) {
		width: 13.5rem;
		top: calc(50% + 9.2rem);
		left: 3.4rem;
	}
	.mv_cube img:nth-child(3) {
		width: 10.3rem;
		top: calc(50% - 29.2rem);
		left: 30.9rem;
	}
	.mv_cube img:nth-child(4) {
		width: 20.1rem;
		top: calc(50% - .2rem);
		left: 26rem;
	}
	.mv h1 {
		top: calc(50% - 14rem);
	}
	.mv_wrap_bg::before {
		width: 26rem;
		height: 29rem;
		top: -4.5rem;
	}
	.mv h1 img {
		width: 7.9rem;
	}
	.mv h2 {
		bottom: -1.4rem;
		left: -1rem;
		right: -1rem;
		font-size: 9.6rem;
	}
	.mv h2 span {
		font-size: 4.5rem;
		margin-bottom: -.6rem;
	}
}

/* message
----------------------------------------*/
.message {
	color: #fff;
	padding: 22.5rem 0 17.7rem;
}
.message_inner {
	max-width: 110rem;
	margin: 0 auto;
	display: flex;
	z-index: 3;
}
.message_inner h2 {
	font-size: 10.2rem;
	font-weight: 400;
	width: 50%;
	padding: 8.5rem 0 0 1.8rem;
}
.message_txt {
	width: 50%;
	font-size: 1.6rem;
	line-height: 2;
	font-weight: 500;
	letter-spacing: .05em;
}
.message_txt p + p {
	margin-top: 2.2rem;
}
@media only screen and (max-width: 768px) {
	.message {
		padding: 14.3rem 0 10rem;
		background-position: 35% center;
	}
	.message::after {
		width: 26rem;
		height: 29rem;
		top: 7.5rem;
		bottom: auto;
	}
	.message_inner {
		display: block;
	}
	.message_inner h2 {
		font-size: 6.2rem;
		text-align: center;
		width: auto;
		padding: 0;
		margin-bottom: 4.4rem;
	}
	.message_txt {
		width: auto;
		line-height: 1.625;
		letter-spacing: .01em;
		margin: 0 3rem 0 3.4rem;
	}
	.message_txt p + p {
		margin-top: 1.8rem;
	}
}

/* guide
----------------------------------------*/
.guide {
	background: url(../../img/index/guide_bg_01.jpg) no-repeat center center / cover;
	text-align: center;
	color: #fff;
	padding: 9.9rem 0 12.5rem;
}
.guide::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: #000;
	opacity: .34;
}
.guide h2 {
	font-size: 1.8rem;
	letter-spacing: .1em;
	margin-bottom: 9.8rem;
}
.guide h2 .en {
	font-size: 10.2rem;
	line-height: 1.2;
	font-weight: 400;
	display: block;
	letter-spacing: 0;
}
.guide h2 > span:not(.en) {
	font-size: 2.4rem;
	letter-spacing: .1em;
}
.guide h2 > span:not(.en) span {
	font-size: 4rem;
	line-height: 1.19;
	letter-spacing: .1em;
}
.guide p {
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 2.55;
	letter-spacing: .1em;
}
.guide p span {
	font-size: 1.8rem;
	letter-spacing: .1em;
}
.guide a {
	width: fit-content;
	margin: 10.9rem auto 0;
	font-size: 2rem;
	letter-spacing: .1em;
	display: flex;
	align-items: center;
	gap: 0 2.2rem;
}
.guide a::after {
	content: '';
	display: block;
	width: 7.9rem;
	height: 7.9rem;
	border: .1rem solid #fff;
	border-radius: 50%;
	box-sizing: border-box;
	background: url(../../img/common/btn_icon.svg) no-repeat center center / .8rem auto;
	transition: background-position .3s;
}
@media (hover:hover) {
	.guide a:hover::after {
		background-position: calc(50% + .5rem) center;
	}
}
@media only screen and (max-width: 768px) {
	.guide {
		padding: 12.5rem 0 12rem;
		background-image: url(../../img/index/guide_bg_01-sp.jpg);
	}
	.guide h2 {
		margin-bottom: 12.2rem;
	}
	.guide h2 .en {
		font-size: 6.2rem;
		line-height: 1.0968;
		margin-bottom: 4.2rem;
	}
	.guide p {
		line-height: 2.3889;
		font-size: 1.8rem;
	}
	.guide a {
		margin: 7rem auto 0;
	}
}

/* top_message
----------------------------------------*/
.top_message {
	padding: 13.6rem 0 0;
	position: static;
}
.top_message_inner {
	max-width: calc(50% + 55rem);
	margin: 0 0 0 auto;
	display: flex;
	padding-bottom: 21.7rem;
}
.top_message_inner::before {
	content: '';
	display: block;
	height: 34.5rem;
	position: absolute;
	right: 0;
	left: 51.3rem;
	bottom: 11rem;
	background: url(../../img/index/top_message_bg_01.jpg) no-repeat center center / cover;
	mix-blend-mode: multiply;
	opacity: 0;
}
.top_message.show .top_message_inner::before {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	will-change: transform, opacity;
}
.top_message_inner::after {
	content: '';
	display: block;
	width: 11rem;
	height: 11rem;
	background: url(../../img/index/top_message_bg_03.svg) no-repeat left top / 100% auto;
	position: absolute;
	bottom: 0;
	right: 0;
}
.top_message_txt {
	width: 70.4rem;
	padding: 1.8rem 0 0;
}
.top_message_txt::before {
	content: '';
	display: block;
	width: 20.3rem;
	height: 20.3rem;
	background: url(../../img/index/top_message_bg_02.svg) no-repeat left top / 100% auto;
	position: absolute;
	top: -13.6rem;
	left: -13.4rem;
}
.top_message_txt h2 {
	font-size: 2rem;
	letter-spacing: .1em;
	margin-bottom: 2.5rem;
	opacity: 0;
}
.top_message.show .top_message_txt h2 {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 1s;
	will-change: transform, opacity;
}
.top_message_txt h2 .en {
	display: block;
	font-size: 10.2rem;
	letter-spacing: 0;
	line-height: .9608;
	font-weight: 400;
	margin-bottom: 2.4rem;
}
.top_message_txt p {
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: .05em;
	line-height: 3.3125;
	opacity: 0;
}
.top_message.show .top_message_txt p {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 1.5s;
	will-change: transform, opacity;
}
.top_message figure {
	max-width: 41.8rem;
	opacity: 0;
}
.top_message.show figure {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: .5s;
	will-change: transform, opacity;
}
.top_message a {
	width: fit-content;
	margin: 7.6rem 0 0;
	font-size: 2rem;
	letter-spacing: .1em;
	display: flex;
	align-items: center;
	gap: 0 2.2rem;
	opacity: 0;
}
.top_message.show a {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 2s;
	will-change: transform, opacity;
}
.top_message a::after {
	content: '';
	display: block;
	width: 7.9rem;
	height: 7.9rem;
	border: .1rem solid #152B3E;
	border-radius: 50%;
	box-sizing: border-box;
	background: url(../../img/common/btn_icon.svg) no-repeat center center / .8rem auto;
	transition: background-position .3s;
}
@media (hover:hover) {
	.top_message a:hover::after {
		background-position: calc(50% + .5rem) center;
	}
}
@media only screen and (max-width: 768px) {
	.top_message {
		padding: 8.2rem 0 0;
	}
	.top_message_inner {
		max-width: none;
		display: block;
		padding-bottom: 6.1rem;
	}
	.top_message_inner::before {
		height: 26.5rem;
		right: 0;
		left: 0;
		bottom: 32rem;
	}
	.top_message_inner::after {
		width: 8rem;
		height: 8rem;
		bottom: -8rem;
	}
	.top_message_txt {
		width: auto;
		padding: 1.7rem 3.4rem 0;
	}
	.top_message_txt::before {
		width: 13.3rem;
		height: 13.3rem;
		top: -8.2rem;
		left: 0;
	}
	.top_message_txt h2 {
		font-size: 1.4rem;
		margin: 0 0 63.7rem 4.6rem;
	}
	.top_message_txt h2 .en {
		font-size: 5.2rem;
		line-height: 1.3077;
		margin-bottom: 1.4rem;
	}
	.top_message_txt p {
		line-height: 2.0625;
	}
	.top_message figure {
		max-width: 40rem;
		position: absolute;
		top: 24rem;
		right: 0;
	}
	.top_message a {
		margin: 3.5rem auto 0;
	}
}

/* business
----------------------------------------*/
.business {
	padding: 5.7rem 0 4.8rem;
	overflow: hidden;
}
.business_inner {
	max-width: 110rem;
	margin: 0 auto;
	display: flex;
}
.business h2 {
	font-size: 2rem;
	letter-spacing: .1em;
	flex: 1;
	opacity: 0;
}
.business.show h2 {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 1s;
	will-change: transform, opacity;
}
.business h2 .en {
	display: block;
	font-size: 10.2rem;
	line-height: .9608;
	font-weight: 400;
	letter-spacing: 0;
	margin-bottom: 1.7rem;
}
.business_txt {
	width: 56rem;
	padding: 3.7rem 0 0;
}
.business_txt p {
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: .05em;
	opacity: 0;
}
.business.show .business_txt p {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 1.5s;
	will-change: transform, opacity;
}
.business_txt a {
	width: fit-content;
	margin: 1.5rem 0 0 auto;
	font-size: 2rem;
	letter-spacing: .1em;
	display: flex;
	align-items: center;
	gap: 0 2.2rem;
	opacity: 0;
}
.business.show .business_txt a {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 2s;
	will-change: transform, opacity;
}
.business_txt a::after {
	content: '';
	display: block;
	width: 7.9rem;
	height: 7.9rem;
	border: .1rem solid #152B3E;
	border-radius: 50%;
	box-sizing: border-box;
	background: url(../../img/common/btn_icon.svg) no-repeat center center / .8rem auto;
	transition: background-position .3s;
}
.business_slider {
	margin-top: 8rem;
	overflow: hidden;
	display: flex;
	margin-left: calc(-82 / 1366 * 100vw);
	opacity: 0;
}
.business.show .business_slider {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	will-change: transform, opacity;
}
.business_slider figure {
	flex-shrink: 0;
}
.business_slider_01 {
	width: calc(448 / 1366 * 100vw);
}
.business_slider_02 {
	width: calc(359 / 1366 * 100vw);
}
.business_slider_03 {
	width: calc(430 / 1366 * 100vw);
}
.business_slider_04 {
	width: calc(528 / 1366 * 100vw);
}
.business_marquee {
	font-size: 10rem;
	line-height: 1;
	color: #479E38;
	white-space: nowrap;
	z-index: 10;
	position: absolute;
	left: 0;
	bottom: 0;
	animation-fill-mode: forwards;
	animation-duration: 50s;
	animation-name: business_marquee;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
	will-change: transform, opacity;
	opacity: 0;
}
.business.show .business_marquee {
	animation-fill-mode: forwards;
	animation-duration: 50s, .5s;
	animation-name: business_marquee, top_fade;
	animation-iteration-count: infinite, 1;
	animation-timing-function: linear;
	animation-delay: .5s;
	will-change: transform, opacity;
}
@keyframes business_marquee {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}
@media (hover:hover) {
	.business_txt a:hover::after {
		background-position: calc(50% + .5rem) center;
	}
}
@media only screen and (max-width: 768px) {
	.business {
		padding: 2.9rem 0 4.8rem;
	}
	.business_inner {
		display: block;
	}
	.business h2 {
		font-size: 1.4rem;
		margin: 0 0 36.3rem 3rem;
	}
	.business h2 .en {
		font-size: 5.2rem;
		margin-bottom: 2.8rem;
	}
	.business_txt {
		width: auto;
	}
	.business_txt p {
		margin: 0 3rem;
	}
	.business_txt a {
		margin: 4.1rem auto 0;
	}
	.business_slider {
		margin-top: 0;
		position: absolute;
		top: 17rem;
		margin-left: -8.2rem;
	}
	.business_slider_01 {
		width: 36.7rem;
	}
	.business_slider_02 {
		width: 29.5rem;
	}
	.business_slider_03 {
		width: 35.2rem;
	}
	.business_slider_04 {
		width: 43.3rem;
	}
	.business_marquee {
		font-size: 6rem;
		bottom: auto;
		top: 42.6rem;
	}
}

/* work
----------------------------------------*/
.work {
	padding: 13.5rem 0 6.5rem;
}
.work::before {
	content: '';
	display: block;
	background: #fff url(../../img/index/work_bg_01.jpg) no-repeat right top / calc(50% + 13.6rem) auto;
	position: absolute;
	top: 19rem;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0;
}
.work.show::before {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	will-change: transform, opacity;
}
.work h2 {
	font-size: 2rem;
	letter-spacing: .1em;
	text-align: center;
	margin-bottom: 5.8rem;
	opacity: 0;
}
.work.show h2 {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 1s;
	will-change: transform, opacity;
}
.work h2 .en {
	display: block;
	font-size: 10.2rem;
	line-height: .9608;
	font-weight: 400;
	letter-spacing: 0;
	margin-bottom: .2rem;
}
.work_inner {
	max-width: calc(50% + 55rem);
	display: flex;
	align-items: flex-end;
}
.work_inner::before {
	content: '';
	display: block;
	width: 17.5rem;
	height: 17.5rem;
	background: url(../../img/index/work_bg_02.svg) no-repeat left top / 100% auto;
	position: absolute;
	left: 0;
	top: -17.5rem;
}
.work_inner figure {
	flex: 1;
	opacity: 0;
}
.work.show .work_inner figure {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: .5s;
	will-change: transform, opacity;
}
.work_inner figure::before {
	content: '';
	display: block;
	width: 6.4rem;
	height: 6.4rem;
	background: url(../../img/index/work_bg_03.svg) no-repeat left top / 100% auto;
	position: absolute;
	right: -3.7rem;
	bottom: -3.2rem;
	mix-blend-mode: multiply;
}
.work_inner figure::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, .2);
}
.work_txt {
	width: 40.1rem;
	padding: 0 0 4rem 10rem;
}
.work_txt p {
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: .05em;
	line-height: 3.3125;
	opacity: 0;
}
.work.show .work_txt p {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 1.5s;
	will-change: transform, opacity;
}
.work_txt a {
	width: fit-content;
	margin: 11.5rem 0 0 auto;
	font-size: 2rem;
	letter-spacing: .1em;
	display: flex;
	align-items: center;
	gap: 0 2.2rem;
	opacity: 0;
}
.work.show .work_txt a {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 2s;
	will-change: transform, opacity;
}
.work_txt a::after {
	content: '';
	display: block;
	width: 7.9rem;
	height: 7.9rem;
	border: .1rem solid #152B3E;
	border-radius: 50%;
	box-sizing: border-box;
	background: url(../../img/common/btn_icon.svg) no-repeat center center / .8rem auto;
	transition: background-position .3s;
}
@media (hover:hover) {
	.work_txt a:hover::after {
		background-position: calc(50% + .5rem) center;
	}
}
@media only screen and (max-width: 768px) {
	.work {
		padding: 5rem 0 2.2rem;
	}
	.work::before {
		background: #fff url(../../img/index/work_bg_01-sp.jpg) no-repeat 3.1rem top / 48.3rem auto;
		top: 7rem;
		left: 0;
		right: 0;
	}
	.work h2 {
		font-size: 1.4rem;
		margin-bottom: 4rem;
	}
	.work h2 .en {
		font-size: 5.2rem;
		margin-bottom: 1.7rem;
	}
	.work_inner {
		max-width: none;
		display: block;
	}
	.work_inner::before {
		width: 7.3rem;
		height: 7.3rem;
		top: -12.5rem;
		mix-blend-mode: multiply;
	}
	.work_inner figure {
		width: 40rem;
	}
	.work_inner figure img {
		position: relative;
	}
	.work_inner figure::before {
		width: 5.6rem;
		height: 5.6rem;
		right: -3rem;
		bottom: -3.4rem;
	}
	.work_txt {
		width: auto;
		padding: 4.7rem 3rem 2rem;
	}
	.work_txt p {
		line-height: 2.0625;
	}
	.work_txt a {
		margin: 3.5rem auto 0;
	}
}

/* people
----------------------------------------*/
.people {
	padding: 10.9rem 0 36.2rem;
	background: #fff url(../../img/index/people_bg_01.svg) no-repeat calc(50% + .4rem) top / 137rem auto;
}
.people::before {
	content: '';
	display: block;
	position: absolute;
	top: 12.7rem;
	left: 0;
	right: 0;
	background: url(../../img/index/people_bg_02.svg) no-repeat center top / 136.6rem auto;
	height: 24.6rem;
}
.people_inner {
	max-width: 110rem;
	margin: 0 auto;
	padding-bottom: 18rem;
}
.people_inner::after {
	content: '';
	display: block;
	width: 12.4rem;
	height: 12.4rem;
	background: url(../../img/index/people_bg_03.svg) no-repeat left top / 100% auto;
	position: absolute;
	right: 0;
	bottom: 0;
}
.people h2 {
	width: fit-content;
	font-size: 2rem;
	letter-spacing: .1em;
	text-align: right;
	margin-bottom: 9rem;
	opacity: 0;
}
.people.show h2 {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: .5s;
	will-change: transform, opacity;
}
.people h2::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 1rem;
	width: 22.3rem;
	height: 8rem;
	background: #fff;
}
.people h2 .en {
	display: block;
	line-height: .9608;
	font-size: 10.2rem;
	letter-spacing: 0;
	font-weight: 400;
	margin-bottom: .2rem;
}
.people_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2.7rem;
	opacity: 0;
}
.people.show .people_list {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	will-change: transform, opacity;
}
.people_list a {
	display: block;
}
.people_list h3 {
	font-size: 1.3rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: .2rem;
}
.people_list h3 .en {
	font-size: 2.8rem;
	font-weight: 400;
}
.people_list h3 .en span {
	color: #479D38;
}
.people_item::before {
	content: '';
	display: block;
	background: #063D84;
	position: absolute;
	top: 11.4rem;
	right: 0;
	width: 18.8rem;
	height: 20.4rem;
}
.people_list figure {
	margin: 0 .7rem 1.9rem 0;
	overflow: hidden;
}
.people_list figure img {
	position: relative;
	transition: transform .3s;
}
.people_list p {
	font-size: 1.3rem;
	line-height: 1.6923;
	margin-right: -.5rem;
	letter-spacing: .1em;
}
@media (hover:hover) {
	.people_list a:hover {
		opacity: 1;
	}
	.people_list a:hover figure img {
		transform: scale(1.1);
	}
}
@media only screen and (min-width: 1366px) {
	.people {
		background-size: 100% 128.6rem;
	}
	.people::before {
		background-size: 100% 100%;
	}
}
@media only screen and (max-width: 768px) {
	.people {
		padding: 5.8rem 0 31.4rem;
		margin-top: -.1rem;
		overflow: hidden;
		background: #fff url(../../img/index/people_bg_01-sp.svg) no-repeat left top / 100% auto;
	}
	.people::before {
		display: none;
	}
	.people_inner {
		padding-bottom: 0;
	}
	.people_inner::after {
		width: 6.4rem;
		height: 6.4rem;
		right: 1.6rem;
		bottom: 1.6rem;
	}
	.people h2 {
		width: auto;
		font-size: 1.4rem;
		text-align: center;
		margin-bottom: 4.7rem;
	}
	.people h2::before {
		display: none;
	}
	.people h2 .en {
		font-size: 5.2rem;
		margin-bottom: 1.5rem;
	}
	.people_list {
		display: block;
		width: 29.3rem;
		margin: 0 auto;
	}
	.people_list::after,
	.people_list .slick-list::after {
		content: '';
		display: block;
		clear: both;
	}
	.people_list .slick-next,
	.people_list .slick-prev {
		appearance: none;
		width: 3.9rem;
		height: 3.9rem;
		display: block;
		border: .1rem solid #152B3E;
		background: url(../../img/common/btn_icon.svg) no-repeat center center / .5rem auto;
		border-radius: 50%;
		position: absolute;
		top: 17rem;
		right: -3.5rem;
		overflow: hidden;
		text-indent: -99rem;
		z-index: 10;
	}
	.people_list .slick-prev {
		transform: scale(-1, 1);
		right: auto;
		left: -3.5rem;
	}
	.people_list::after,
	.people_list .slick-list::after {
		content: '';
		display: block;
		clear: both;
	}
	.people_item {
		width: 25.6rem;
		float: left;
		margin: 0 1.85rem;
		opacity: .35;
		transition: opacity .3s;
	}
	.people_item.slick-active,
	.people_item.is-active-next {
		opacity: 1;
	}
	.people_inner > a {
		width: fit-content;
		margin: 4.8rem auto 0;
		font-size: 2rem;
		letter-spacing: .1em;
		display: flex;
		align-items: center;
		gap: 0 2.2rem;
		opacity: 0;
	}
	.people.show .people_inner > a {
		animation-fill-mode: forwards;
		animation-duration: .5s;
		animation-name: top_fade;
		animation-iteration-count: 1;
		animation-timing-function: linear;
		animation-delay: .5s;
		will-change: transform, opacity;
	}
	.people_inner > a::after {
		content: '';
		display: block;
		width: 7.9rem;
		height: 7.9rem;
		border: .1rem solid #152B3E;
		border-radius: 50%;
		box-sizing: border-box;
		background: url(../../img/common/btn_icon.svg) no-repeat center center / .8rem auto;
	}
}

/* culture
----------------------------------------*/
.culture {
	padding: .1rem 0 15.3rem;
	background: #ECECE7;
}
.culture::before {
	content: '';
	display: block;
	background: url(../../img/index/culture_bg_01.svg) no-repeat calc(50% + 5.3rem) top / 165.1rem auto;
	height: 27.1393rem;
	position: absolute;
	top: -37.9rem;
	left: 0;
	right: 0;
}
.culture h2 {
	font-size: 2rem;
	letter-spacing: .1em;
	text-align: center;
	margin: -25.2rem 0 5.3rem;
	opacity: 0;
}
.culture h2.show {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: .5s;
	will-change: transform, opacity;
}
.culture h2 .en {
	display: block;
	line-height: .9608;
	font-size: 10.2rem;
	letter-spacing: 0;
	font-weight: 400;
	margin-bottom: .2rem;
}
.culture figure {
	max-width: 93rem;
	margin: 0 auto;
	opacity: 0;
}
.culture h2.show ~ figure {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	will-change: transform, opacity;
}
.culture_btn {
	display: flex;
	justify-content: center;
	gap: 1.8rem;
	margin: -5rem 0 0;
	opacity: 0;
}
.culture h2.show ~ .culture_btn {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 1s;
	will-change: transform, opacity;
}
.culture_btn a {
	width: 40rem;
	display: block;
	background: #479E38;
	color: #fff;
	font-size: 1.4rem;
	text-align: center;
	letter-spacing: .1em;
	font-weight: 500;
	padding: 4.5rem 0;
}
.culture_btn a + a {
	background: #063D84;
}
.culture_btn a::after {
	content: '';
	display: block;
	width: 3.5rem;
	height: 3.5rem;
	background: #fff url(../../img/common/btn_icon.svg) no-repeat 55% center / .8rem auto;
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 4rem;
	margin: auto 0;
	transition: background-position .3s;
}
@media (hover:hover) {
	.culture_btn a:hover::after {
		background-position: calc(55% + .5rem) center;
	}
}
@media only screen and (max-width: 768px) {
	.culture {
		padding: .1rem 0 7rem;
	}
	.culture::before {
		background: url(../../img/index/culture_bg_01-sp.svg) no-repeat right top / 45.2rem auto;
		height: 12.8rem;
		top: -31.8rem;
	}
	.culture h2 {
		font-size: 1.4rem;
		margin: -16.9rem 0 4rem;
	}
	.culture h2 .en {
		font-size: 5.2rem;
		margin-bottom: 1.6rem;
	}
	.culture figure {
		max-width: 37rem;
	}
	.culture_btn {
		display: block;
		width: 33.5rem;
		margin: -6.1rem auto 0;
	}
	.culture_btn a {
		width: auto;
		font-size: 1.3rem;
		padding: 2.5rem 0;
	}
	.culture_btn a + a {
		margin-top: .2rem;
	}
	.culture_btn a::after {
		width: 2.9rem;
		height: 2.9rem;
		background: #fff url(../../img/common/btn_icon.svg) no-repeat 50% center / .65rem auto;
		right: 2rem;
	}
}

/* information
----------------------------------------*/
.information {
	padding-bottom: 4.5rem;
	background: #fff;
}
.information::after {
	content: '';
	display: block;
	width: 17.5rem;
	height: 17.5rem;
	background: url(../../img/index/information_bg_02.svg) no-repeat left top / 100% auto;
	position: absolute;
	top: -8.7rem;
	left: calc(50% - 61.4rem);
	mix-blend-mode: multiply;
}
.information_inner {
	background: url(../../img/index/information_bg_01.jpg) no-repeat center center / cover;
	color: #fff;
	padding: 14.3rem 0 14.8rem;
	text-align: center;
	overflow: hidden;
	opacity: 0;
}
.information.show .information_inner {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	will-change: transform, opacity;
}
.information_inner::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, .34);
}
.information_inner::after {
	content: 'INFORMATION';
	display: block;
	font-size: 20.2rem;
	font-weight: 400;
	line-height: .4851;
	-webkit-text-stroke: .2rem rgba(255, 255, 255, .53);
	white-space: nowrap;
	position: absolute;
	left: calc(50% - 75rem);
	top: 14.8rem;
	color: transparent;
	font-family: "EB Garamond", serif;
	opacity: .3;
	width: 150rem;
	text-align: center;
}
.information h2 {
	font-size: 2rem;
	letter-spacing: .1em;
	margin-bottom: 7rem;
	opacity: 0;
}
.information.show h2 {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: .5s;
	will-change: transform, opacity;
}
.information h2 .en {
	display: block;
	line-height: .9608;
	font-size: 10.2rem;
	letter-spacing: 0;
	font-weight: 400;
	margin-bottom: 1.4rem;
}
.information p {
	font-size: 1.6rem;
	letter-spacing: .05em;
	line-height: 3.3125;
	font-weight: 500;
	opacity: 0;
}
.information.show p {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 1.5s;
	will-change: transform, opacity;
}
.information a {
	width: fit-content;
	margin: 7.9rem auto 0;
	font-size: 2rem;
	letter-spacing: .1em;
	display: flex;
	align-items: center;
	gap: 0 2.2rem;
	opacity: 0;
}
.information.show a {
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-name: top_fade;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 2s;
	will-change: transform, opacity;
}
.information a::after {
	content: '';
	display: block;
	width: 7.9rem;
	height: 7.9rem;
	border: .1rem solid #fff;
	border-radius: 50%;
	box-sizing: border-box;
	background: url(../../img/common/btn_icon.svg) no-repeat center center / .8rem auto;
	transition: background-position .3s;
}
@media (hover:hover) {
	.information a:hover::after {
		background-position: calc(50% + .5rem) center;
	}
}
@media only screen and (max-width: 768px) {
	.information {
		padding-bottom: 0;
	}
	.information::after {
		display: none;
	}
	.information_inner {
		background: url(../../img/index/information_bg_01-sp.jpg) no-repeat center center / cover;
		padding: 7rem 0 12rem;
	}
	.information_inner::after {
		font-size: 6rem;
		-webkit-text-stroke: .1rem rgba(255, 255, 255, .53);
		left: -2rem;
		right: -2rem;
		top: 5.5rem;
		width: auto;
	}
	.information h2 {
		font-size: 1.4rem;
		margin-bottom: 3.3rem;
	}
	.information h2 .en {
		font-size: 5.2rem;
		margin-bottom: 1.5rem;
	}
	.information p {
		line-height: 2.0625;
	}
	.information a {
		margin: 7.5rem auto 0;
	}
}