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

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

#main {
	height: 810px;
	overflow: hidden;
	margin-bottom: 150px;
	background: #e6e6e6;
	background: linear-gradient(to right, #e6e6e6 60%, #1A1A1A 60%);
	position: relative;
	z-index: 0;
}

#main .slider {
	width: 1214px;
	height: 810px;
	overflow: hidden;
	margin-left: -495px;
	background: var(--black);
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 1;
}

#main .slick-slide {
	width: 1214px;
	height: 810px;
	overflow: hidden;
}

#main .slick-slide img {
	width: 1214px;
	height: 810px;
	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: 840px;
	height: 0;
	overflow: hidden;
	margin-left: -720px;
	text-align: left;
	position: absolute;
	bottom: 0;
	left: 50%;
	z-index: 4;
	transition-duration: 0.4s;
	transition-delay: 0.4s;
	transition-timing-function: ease-out;
}

#main .main_01 img {
	height: 810px;
	position: absolute;
	bottom: 0;
	left: 0;
}

.loaded #main .main_01 {
	height: 810px;
}

#main .main_02 {
	width: 420px;
	height: 810px;
	overflow: hidden;
	margin-right: 300px;
	position: absolute;
	bottom: 0;
	right: 50%;
	z-index: 2;
}

#main .main_03 {
	width: 220px;
	height: 810px;
	margin-right: 500px;
	position: absolute;
	top: 100%;
	right: 50%;
	z-index: 3;
	opacity: 0;
	transition-duration: 0.6s;
	transition-delay: 0.5s;
	transition-timing-function: ease-out;
}

.loaded #main .main_03 {
	top: 0;
	opacity: 1;
}

#main .main_04 {
	margin-left: -600px;
	text-align: left;
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 60px;
	line-height: 1;
	color: var(--orange);
	position: absolute;
	top: 245px;
	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: 50%;
	opacity: 1;
}

#main .main_05 {
	margin-left: -450px;
	text-align: left;
	font-weight: 500;
	font-size: 68px;
	line-height: 1.2;
	color: #fff;
	position: absolute;
	top: 320px;
	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: 50%;
	opacity: 1;
}

#main p {
	margin-left: -450px;
	text-align: left;
	font-weight: 600;
	font-size: 18px;
	line-height: 1.4;
	color: #fff;
	position: absolute;
	top: 510px;
	left: 50%;
	z-index: 4;
	opacity: 0;
	transition-duration: 0.6s;
	transition-delay: 1.0s;
	transition-timing-function: ease-out;
}

.loaded #main p {
	left: 50%;
	opacity: 1;
}

#main .thumbnail {
	width: 200px;
	height: 8px;
	overflow: hidden;
	margin-left: -450px;
	position: absolute;
	top: 560px;
	left: 50%;
	z-index: 4;
}

#main .thumbnail .slick-slide {
	width: 20px;
	height: 8px;
}

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

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

#main .iso {
	width: 385px;
	margin-left: 215px;
	padding: 20px 0;
	border: solid 1px rgba(255, 255, 255, 0.3);
	background: rgba(255, 255, 255, 0.5);
	font-weight: 600;
	font-size: 15px;
	letter-spacing: 0.01em;
	line-height: 1.4;
	position: absolute;
	bottom: 0;
	left: 50%;
	z-index: 4;
	opacity: 0;
	transition-duration: 0.3s;
	transition-delay: 1.4s;
	transition-timing-function: ease-out;
}

.loaded #main .iso {
	bottom: 50px;
	opacity: 1;
}

#main .iso .flex {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 10px;
}

#main .iso img {
	height: 60px;
}

#main .iso .num {
	margin-left: 15px;
	text-align: left;
}

#main .iso .en {
	display: block;
	font-weight: 500;
}

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

#concept .container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 1120px;
	margin-bottom: 120px;
}

#concept h2 {
	text-align: left;
	font-weight: 700;
	font-size: 32px;
	letter-spacing: 0.1em;
	line-height: 260%;
	--ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
	opacity: 0;
	translate: 7% 0;
}

#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 {
	width: 700px;
	padding: 1px 50px 50px;
	background: #f0f0f0;
	text-align: justify;
}

#concept .en {
	margin: -40px 0 30px;
	text-align: center;
	font-weight: 500;
	font-size: 80px;
	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;
}

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

#concept .about p {
	margin-bottom: 2em;
}

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

#facility {
	margin-bottom: 120px;
	padding: 120px 0 120px;
	background: #f0f0f0;
}

#facility .flex {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

#facility .find {
	width: 380px;
	margin-bottom: 32px;
	padding: 30px;
	background: #fff;
	text-align: justify;
	--ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
	opacity: 0;
	translate: 0 7%;
}

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

#facility figure {
	width: 320px;
	height: 198px;
	overflow: hidden;
	margin-bottom: 20px;
	position: relative;
}

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

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

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

#facility .find:hover .cat:after {
	transform: translateX(6px);
}

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

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

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

#information .container {
	display: flex;
	justify-content: space-between;
	margin-bottom: 130px;
	text-align: left;
}

#information .caption {
	padding-top: 1em;
	--ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
	opacity: 0;
	translate: 15% 0;
}

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

#information .entries {
	width: 800px;
	--ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
	opacity: 0;
	translate: 0 7%;
}

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

#information dl {
	display: flex;
	align-items: center;
	overflow: hidden;
	padding: 1em 0;
	box-shadow: 0 -1px 0 0 var(--silver) inset;
	position: relative;
}

#information dt {
	width: 140px;
	font-size: 15px;
	color: var(--gray);
}

#information dd {
	flex: 1;
	position: relative;
}

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

#information .find:before {
	content: '';
	width: 100%;
	height: 2px;
	background: var(--black);
	position: absolute;
	left: 0;
	bottom: 0;
	transform: translateY(2px);
	transition-property: transform;
	transition-duration: 0.3s;
	transition-timing-function: ease-out;
}

#information .find:hover:before {
	transform: translateY(0);
}

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

#information .find:hover:after {
	animation-name: info-icon;
	animation-duration: 0.4s;
	animation-timing-function: ease-in-out;
	animation-iteration-count: 1;
}

@keyframes info-icon {
	50% {
		transform: translateY(-50%) translateX(5px);
	}
	100% {
		transform: translateY(-50%) translateX(0);
	}
}

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

#company {
	padding: 100px 0 20px;
	background: #f0f0f0;
}

#company .container {
	height: 450px;
	padding-left: 440px;
	text-align: justify;
	position: relative;
	opacity: 0;
	position: relative;
	translate: 15% 0;
}

#company .container.isActive {
	opacity: 1;
	translate: 0;
	transition-duration: 0.5s;
	transition-delay: 0.4s;
	transition-timing-function: opacity, translate;
}

#company .about {
	display: flex;
	align-items: center;
	margin-bottom: 36px;
}

#company .logo {
	margin-right: 20px;
}

#company .logo img {
	height: 90px;
}

#company .copy {
	font-weight: 600;
	font-size: 24px;
	line-height: 1.5;
}

#company .copy .en {
	font-size: 18px;
}

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

#company .photo {
	display: flex;
	justify-content: flex-start;
	width: 360px;
	height: 450px;
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	translate: 15% 0;
}

#company .container.isActive .photo {
	opacity: 1;
	translate: 0;
	transition-duration: 0.5s;
	transition-delay: 0.8s;
	transition-timing-function: opacity, translate;
}

#company .photo img {
	max-width: 200%;
	height: 450px;
}

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

#area {
	margin-bottom: 100px;
	padding: 100px 0;
	background: #f0f0f0;
}

#area .container {
	height: 371px;
	padding-right: 700px;
	text-align: justify;
	position: relative;
	opacity: 0;
	translate: 15% 0;
}

#area .container.isActive {
	opacity: 1;
	translate: 0;
	transition-duration: 0.5s;
	transition-delay: 0.4s;
	transition-timing-function: opacity, translate;
}

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

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

#area dt {
	font-weight: 700;
}

#area figure {
	position: absolute;
	top: 0;
	right: 0;
	opacity: 0;
	translate: 15% 0;
}

#area .container.isActive figure {
	opacity: 1;
	translate: 0;
	transition-duration: 0.5s;
	transition-delay: 0.8s;
	transition-timing-function: opacity, translate;
}

#area figure img {
	height: 370px;
}

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

#recruit .container {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height: 440px;
	margin-bottom: 100px;
	border-radius: 4px;
	padding: 0 60px;
	background: linear-gradient(to bottom, #1a1a1a 0%, var(--black) 100%);
	text-align: left;
	color: #fff;
	position: relative;
	opacity: 0;
	translate: 15% 0;
}

#recruit .container.isActive {
	opacity: 1;
	translate: 0;
	transition-duration: 0.5s;
	transition-delay: 0.4s;
	transition-timing-function: opacity, translate;
}

#recruit figure {
	width: 564px;
	height: 360px;
	position: absolute;
	top: 40px;
	left: 60px;
	opacity: 0;
	translate: 15% 0;
}

#recruit .container.isActive figure {
	opacity: 1;
	translate: 0;
	transition-duration: 0.5s;
	transition-delay: 0.8s;
	transition-timing-function: opacity, translate;
}

#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 {
	color: #fff;
}

#recruit .more a:before {
	background: rgba(255, 255, 255, 0.3);
}

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

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

#f_external {
	padding: 100px 0 50px;
	background: #f0f0f0;
	background: linear-gradient(to right, #f0f0f0 0%, #f6f6f6 100%);
}

#f_external .container {
	display: flex;
	justify-content: space-between;
}

#f_external .link {
	min-width: 350px;
}

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

#f_external a:hover {
	opacity: 0.6;
}

#f_external a:after {
	content: '';
	width: 12px;
	height: 13px;
	background: url(../images/f_external.svg) no-repeat 0 0 / 100% auto;
	transform: translateY(-50%);
	position: absolute;
	top: 50%;
	right: 20px;
}

#f_external a img {
	height: 50px;
	margin-right: 16px;
}

#f_external .en {
	display: block;
	font-size: 13px;
	color: var(--gray);
	color: rgba(43, 43, 43, 0.5);
}
