@charset "UTF-8";
@import "common.sp.css";

/* ---------------------------------------------------------
	CSS Document main
--------------------------------------------------------- */

#main {
	overflow: hidden;
	margin-bottom: 10vw;
	white-space: nowrap;
	position: relative;
	z-index: 0;
}

#main .slider {
	height: 66.7208vw;
	position: relative;
	z-index: 1;
}

#main .slick-slide {
	height: 66.7208vw;
	position: relative;
}

#main .slick-slide img {
	height: 66.7208vw;
	transform: translateY(-50%) translateX(-50%) scale(1);
	position: absolute;
	top: 50%;
	left: 50%;
}

#main .slick-animation img {
	animation: mainzoom 16s 0s none;
}

@keyframes mainzoom {
	0% {
		transform: translateY(-50%) translateX(-50%) scale(1);
	}
	100% {
		transform: translateY(-50%) translateX(-50%) scale(1.08);
	}
}

#main .main_01 {
	width: 80vw;
	height: 0;
	overflow: hidden;
	position: absolute;
	top: 0;
	left: -40vw;
	z-index: 4;
	transition-duration: 0.4s;
	transition-delay: 0.4s;
	transition-timing-function: ease-out;
}

#main .main_01 img {
	height: 70vw;
	position: absolute;
	top: 0;
	right: 0;
}

.loaded #main .main_01 {
	height: 66.7208vw;
}

#main .main_02 {
	display: none;
}

#main .main_03 {
	display: none;
}

#main .main_04 {
	text-align: left;
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 6vw;
	line-height: 1;
	color: var(--orange);
	position: absolute;
	top: 10vw;
	left: 100%;
	z-index: 4;
	opacity: 0;
	transition-duration: 0.6s;
	transition-delay: 0.5s;
	transition-timing-function: ease-out;
}

.loaded #main .main_04 {
	left: 8vw;
	opacity: 1;
}

#main .main_05 {
	text-align: left;
	font-weight: 500;
	font-size: 7vw;
	line-height: 1.3;
	color: #fff;
	position: absolute;
	top: 20vw;
	left: 100%;
	z-index: 4;
	opacity: 0;
	transition-duration: 0.6s;
	transition-delay: 0.8s;
	transition-timing-function: ease-out;
}

.loaded #main .main_05 {
	left: 8vw;
	opacity: 1;
}

#main p {
	text-align: left;
	font-weight: 600;
	font-size: 3.5vw;
	line-height: 1.5;
	color: #fff;
	position: absolute;
	top: 43vw;
	left: 100%;
	z-index: 4;
	opacity: 0;
	transition-duration: 0.6s;
	transition-delay: 1.0s;
	transition-timing-function: ease-out;
}

.loaded #main p {
	left: 8vw;
	opacity: 1;
}

#main .thumbnail {
	width: 200px;
	height: 8px;
	overflow: hidden;
	position: absolute;
	top: calc(61.7208vw - 6px);
	left: 8vw;
	z-index: 4;
}

#main .thumbnail .slick-slide {
	width: 15px;
	height: 6px;
}

#main .thumbnail .slick-slide span {
	display: block;
	width: 6px;
	height: 6px;
	border-radius: 100%;
	background: rgba(255, 255, 255, 0.8);
	font-size: 0;
}

#main .thumbnail .slick-current span {
	background: var(--orange);
}

#main .iso {
	font-size: 0;
	position: absolute;
	right: 5vw;
	bottom: -100%;
	z-index: 4;
	opacity: 0;
	transition-duration: 0.4s;
	transition-delay: 1.2s;
	transition-timing-function: ease-out;
}

.loaded #main .iso {
	bottom: 5vw;
	opacity: 1;
}

#main .iso img {
	height: 10vw;
}

/* ---------------------------------------------------------
	CSS Document concept
--------------------------------------------------------- */

#concept .container {
	margin: 0 5vw 15vw;
	padding-bottom: 1vw;
	position: relative;
	z-index: 0;
	translate: 0;
}

#concept h2 {
	margin-bottom: 10vw;
	font-weight: 700;
	font-size: 5vw;
	--ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
	opacity: 0;
	translate: 7% 0;
	transition-delay: 1.2s;
}

#concept .isActive h2 {
	opacity: 1;
	translate: 0;
	transition-duration: 0.6s;
	transition-timing-function: opacity var(--ease-out-cubic), translate var(--ease-out-quint);
}

#concept h2 span {
	color: var(--orange);
}

#concept .about {
	padding: 1px 0 10vw;
	background: #f0f0f0;
	text-align: justify;
}

#concept .en {
	margin: -6vw 0 6vw;
	text-align: center;
	font-weight: 500;
	font-size: 11vw;
	line-height: 1;
	color: rgba(43, 43, 43, 0.1);
	--ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
	opacity: 0;
	translate: 7% 0;
	transition-delay: 1.5s;
}

#concept .isActive .en {
	opacity: 1;
	translate: 0;
	transition-duration: 0.6s;
	transition-timing-function: opacity var(--ease-out-cubic), translate var(--ease-out-quint);
}

#concept .about p {
	margin: 0 8vw 2em;
}

#concept .more {
	margin-left: 8vw;
}

/* ---------------------------------------------------------
	CSS Document facility
--------------------------------------------------------- */

#facility {
	margin-bottom: 15vw;
	padding: 15vw 5vw 10vw;
	background: #f0f0f0;
}

#facility .find {
	margin-bottom: 5vw;
	padding: 8vw;
	background: #fff;
	text-align: justify;
}

#facility figure {
	height: 45.78746666666667vw;
	overflow: hidden;
	margin-bottom: 15px;
}

#facility figure img {
	transition: transform 2.4s ease;
}

#facility .isActive img {
	transform: scale(1.05);
}

#facility .cat {
	margin-bottom: 10px;
	text-align: center;
	line-height: 1.5;
	position: relative;
}

#facility .en {
	font-size: 3.5vw;
	color: var(--orange);
}

#facility .ja a {
	display: block;
	margin-top: 0.3em;
	text-decoration: none;
	font-weight: 700;
	font-size: 5vw;
	color: var(--black);
}

/* ---------------------------------------------------------
	CSS Document gallery
--------------------------------------------------------- */

#gallery {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin-bottom: 15vw;
}

#gallery figure {
	width: 50%;
	height: 33.33333333333333vw;
}

/* ---------------------------------------------------------
	CSS Document flow
--------------------------------------------------------- */

#flow {
	margin-bottom: 10vw;
}

#flow .container {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	margin: 0 2vw;
}

#flow .find {
	width: 33.3%;
	margin-bottom: 7vw;
	position: relative;
}

#flow .find:nth-of-type(n + 4) {
	width: 45%;
}

#flow .find:before {
	content: '';
	width: 1px;
	height: 100%;
	background: #dcdfe5;
	transform: translateX(-50%);
	position: absolute;
	left: 0;
	bottom: 0;
}

#flow .find:nth-of-type(1):before {
	display: none;
}

#flow .find:nth-of-type(4):before {
	display: none;
}

#flow .find:after {
	content: '';
	width: 100%;
	height: 1.5vw;
	background: url(../top/flow_arrow.svg) no-repeat top / auto 100%;
	position: absolute;
	bottom: 4vw;
	right: 0;
}

#flow .num {
	margin-bottom: 3vw;
}

#flow .num a {
	display: block;
	text-decoration: none;
	color: var(--blue);
}

#flow figure {
	padding-bottom: 10vw;
	position: relative;
	z-index: 0;
}

#flow figure:before {
	content: '';
	width: 20vw;
	height: 20vw;
	border-radius: 100%;
	background: #eceef3;
	transform: translateX(-50%);
	position: absolute;
	left: 50%;
	bottom: 0;
	z-index: -1;
}

#flow figure img {
	height: 15vw;
}

/* ---------------------------------------------------------
	CSS Document information
--------------------------------------------------------- */

#information .container {
	margin: 0 8vw 20vw;
	text-align: left;
}

#information .caption {
	display: flex;
	justify-content: space-between;
}

#information .entries {
	box-shadow: 0 1px 0 0 var(--silver) inset;
}

#information dl {
	padding: 1.5em 0;
	box-shadow: 0 -1px 0 0 var(--silver) inset;
	line-height: 1.5;
	position: relative;
}

#information .find {
	padding-right: 15px;
}

#information .find:after {
	content: '';
	width: 3vw;
	height: 4vw;
	background: url(../images/arrow.svg) no-repeat left / 100% auto;
	transform: translateY(-50%) translateZ(0);
	position: absolute;
	right: 0;
	top: 50%;
}

#information dt {
	margin-bottom: 1vw;
	font-weight: 600;
	color: var(--gray);
}

#information dd {
	position: relative;
}

#information dd a {
	text-decoration: none;
}

/* ---------------------------------------------------------
	CSS Document company
--------------------------------------------------------- */

#company .container {
	margin: 0 8vw 20vw;
	text-align: left;
	position: relative;
}

#company .logo img {
	height: 24vw;
	position: absolute;
	top: -5vw;
	right: 0;
}

#company .copy {
	margin-bottom: 5vw;
	font-weight: 700;
	font-size: 4.5vw;
	line-height: 1.7;
}

#company .copy .en {
	font-size: 3.5vw;
}

#company .photo {
	margin-bottom: 2em;
}

#company .photo img {
	height: 56vw;
}

#company p {
	margin-bottom: 2em;
	text-align: justify;
}

#company .more {
	text-align: left;
}

/* ---------------------------------------------------------
	CSS Document area
--------------------------------------------------------- */

#area {
	padding: 15vw 8vw 20vw;
	background: #f0f0f0;
}

#area p {
	margin-bottom: 2em;
	text-align: justify;
}

#area dl {
	margin-bottom: 2em;
	padding: 1em 1.5em;
	border-radius: 5px;
	background: #fff;
	text-align: justify;
}

#area dt {
	font-weight: 700;
}

#area figure {
	height: 51.9376vw;
	margin-bottom: 2em;
}

#area .more {
	text-align: left;
}

/* ---------------------------------------------------------
	CSS Document recruit
--------------------------------------------------------- */

#recruit {
	padding: 15vw 8vw 20vw;
	background: linear-gradient(to bottom, #1a1a1a 0%, var(--black) 100%);
	text-align: left;
	color: #fff;
}

#recruit figure {
	height: 53.7624vw;
	margin-bottom: 8vw;
}

#recruit .h3 {
	color: #fff;
}

#recruit .h3:before {
	background-image: url(../images/f_logo.svg);
}

#recruit p {
	margin-bottom: 2em;
	text-align: justify;
}

#recruit .more a {
	border-bottom: solid 1px rgba(255, 255, 255, 0.3);
	color: #fff;
}

#recruit .more a:after {
	background-image: url(../images/arrow_white.svg);
}

/* ---------------------------------------------------------
	CSS Document f_external
--------------------------------------------------------- */

#f_external {
	padding: 10vw 8vw 2vw;
	background: #f0f0f0;
	background: linear-gradient(to right, #f0f0f0 0%, #f6f6f6 100%);
}

#f_external .link {
	margin: 4vw 0;
}

#f_external a {
	display: flex;
	align-items: center;
	height: 20vw;
	padding-left: 5vw;
	border-radius: 5px;
	border: solid 1px #e0e0e0;
	background: #fff;
	text-align: left;
	text-decoration: none;
	font-weight: 600;
	font-size: 4vw;
	line-height: 1.6;
	color: var(--black);
	position: relative;
}

#f_external a:after {
	content: '';
	width: 3.5vw;
	height: 4vw;
	background: url(../images/f_external.svg) no-repeat 0 0 / 100% auto;
	position: absolute;
	bottom: 4vw;
	right: 4vw;
}

#f_external a .img {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 14vw;
	height: 20vw;
	margin-right: 3vw;
}

#f_external a img {
	height: 9vw;
}

#f_external .en {
	display: block;
	font-weight: 400;
	font-size: 3.5vw;
	color: #acacac;
}
