@charset "UTF-8";

.cmnhd {
	transform: translateY(-100%);
	transition: transform 0.2s 2.7s;
}

.-load .cmnhd {
	transform: translateY(0%);
}

.hero {
	width: 100%;
	max-width: 1740px;
	height: 100dvh;
	min-height: 650px;
	margin: 0 auto;
	overflow: hidden;
}

.hero_wrap {
	position: relative;
	width: 100%;
	height: 100%;
	padding: 160px 0 0 93px;
}

.hero_catch {
	opacity: 0;
	font-weight: bold;
	transition: all 0.3s 3.7s;
}

.-load .hero_catch {
	opacity: 1;
}

.hero_catch h1 {
	font-size: 59px;
	line-height: 1.27;
}

.hero_catch {
	font-size: 14px;
}

.hero_crane {
	position: absolute;
	right: 50%;
	bottom: 30%;
	transform: translate(50%, calc(-177px  - 100dvh));
}

.-load .hero_crane {
	animation: crane ease-in-out forwards 2.5s;
}

@keyframes crane {
	0% {
		transform: translate(50%, calc(-177px  - 100dvh));
	}

	50% {
		transform: translate(50%, calc(177px + 100dvh));
	}

	100% {
		transform: translate(50%, 0);
	}
}

.hero_crane_wrap {
	position: relative;
}

.hero_crane_item {
	position: absolute;
}

.hero_crane_item.crane_item01 {
	bottom: 100%;
	left: 0;
	height: calc(800px + 100dvh);
}

.hero_crane_item.crane_item01 img {
	width: 100%;
	height: 100%;
}

.hero_crane_item.crane_item02 {
	position: relative;
}

.hero_crane_item.crane_item03 {
	opacity: 0;
	top: 100%;
	left: 0;
}

.-load .hero_crane_item.crane_item03 {
	opacity: 1;
	transition: opacity 0s 1.25s;
}

.hero_pic {
	opacity: 0;
	position: absolute;
}

.hero_pic.hpic01 {
	right: 0;
	bottom: 13%;
	transition: all 0.3s 3s;
}

.-load .hero_pic.hpic01 {
	opacity: 1;
}

.hero_pic.hpic02 {
	right: 95px;
	bottom: 34%;
	transition: all 0.3s 3.2s;
}

.-load .hero_pic.hpic02 {
	opacity: 1;
}

.hero_pic.hpic03 {
	bottom: 0;
	left: 0;
	transition: all 0.3s 3.4s;
}

.-load .hero_pic.hpic03 {
	opacity: 1;
}

.topnews {
	padding: 50px 0;
}

.topnews_wrap {
	display: flex;
	gap: 45px;
	position: relative;
	width: 100%;
	max-width: 970px;
	height: auto;
	margin: 0 auto;
	padding: 25px 70px 25px 46px;
	border-radius: 9999px;
	background: #e9ecf0;
}

.topnews_hd {
	flex-shrink: 0;
	padding: 1px 0;
	color: #004098;
	font-weight: bold;
	font-size: 14px;
}

.topnews_cnt {
}

.topnews_link {
	display: flex;
	gap: 20px;
}

.topnews_link time {
	flex-shrink: 0;
}

.topnews_list {
	position: absolute;
	right: 34px;
	bottom: 50%;
	font-size: 18px;
	transform: translateY(50%);
}

.icon-list {
}

.sec {
}

.sec_ttl {
	position: relative;
	overflow: hidden;
	color: #004098;
	font-weight: bold;
	font-size: 110px;
	line-height: 1.2;
}

.sec_ttl::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #f0f2f5;
	transform: translate(0, 0);
	transition: all 0.3s ease-out;
}

.-scrollact .sec_ttl::after {
	transform: translate(100%,0%);
}

.business {
	padding-top: 100px;
	padding-bottom: 380px;
	overflow: hidden;
}

.business_wrap {
}

.business_ttl {
	width: fit-content;
	margin: 0 165px 36px auto;
}

.business_intro {
	width: 520px;
	margin: 0 0 50px auto;
}

.business_intro_hd {
	margin-bottom: 25px;
	font-weight: bold;
	font-size: 30px;
	line-height: 1.33;
}

.business_intro_cnt {
}

.business_cnt {
}

.business_sec {
	position: relative;
}

.bussec_right.business_sec {
	margin-bottom: 470px;
}

.business_sec_wrap {
	display: flex;
	flex-flow: column;
}

.bussec_right .business_sec_wrap {
	align-items: end;
}

.bussec_left .business_sec_wrap {
	align-items: start;
}

.business_sec_hd {
	margin-bottom: 20px;
}

.business_sec_hd_en {
	margin-bottom: 16px;
	color: #004098;
	font-weight: bold;
	font-size: 60px;
}

.bussec_right .business_sec_hd_en {
	text-align: end;
}

.business_sec_hd_jp {
	font-weight: bold;
	font-size: 24px;
}

.bussec_right .business_sec_hd_jp {
	text-align: end;
}

.business_sec_cnt {
	width: 320px;
	margin-bottom: 60px;
}

.business_sec_link {
	width: fit-content;
}

.business_sec_pic {
	position: absolute;
	bottom: 37%;
	width: 759px;
	height: auto;
	overflow: hidden;
	aspect-ratio: 1;
}

.business_sec_pic::before {
	content: "";
	display: block;
	position: absolute;
	right: 50%;
	bottom: 50%;
	z-index: 1;
	width: 1200px;
	height: 1200px;
	background: #f0f2f5;
	transform: translate(50%, 50%) rotate(45deg);
	transition: all 0.8s ease-out;
}

.bussec_right .-scrollact.business_sec_pic:before {
	transform: translate(-50%, 150%) rotate(45deg);
}

.bussec_left .-scrollact.business_sec_pic:before {
	transform: translate(150%, -50%) rotate(45deg);
}

.business_sec_pic img {
	position: absolute;
	right: 50%;
	bottom: 50%;
	width: 1073px;
	max-width: unset;
	height: 1073px;
	max-height: fit-content;
	transform: translate(50%, 50%) rotate(-45deg);
}

.bussec_right .business_sec_pic {
	right: 27%;
	transform: translate(-50%, 50%) rotate(45deg);
}

.bussec_left .business_sec_pic {
	left: 27%;
	transform: translate(50%, 50%) rotate(45deg);
}

.about {
}

.about_wrap {
	position: relative;
}

.abou_ttl {
	width: fit-content;
	margin: 0 auto 100px;
}

.about_cnt {
	width: 560px;
	margin: 0 0 0 auto;
}

.about_link {
}

.about_link_list {
	border-top: #bec1c6 1px solid ;
}

.about_link_list:last-child {
	border-bottom: #bec1c6 1px solid ;
}

.about_link_list_cnt {
	display: block;
	position: relative;
	padding: 25px;
	transition: all 0.2s;
}

.about_link_list_cnt:hover {
	padding: 25px 25px 25px 45px;
	background: #e9ecf0;
}

.about_link_list_cnt .cmnlink_item {
	width: 22px;
}

.about_link_en {
	color: #004098;
	font-weight: bold;
	font-size: 22px;
	line-height: 1.2;
}

.about_link_jp {
	font-weight: bold;
	font-size: 24px;
	line-height: 1.5;
}

.about_item {
	position: absolute;
	right: 83%;
	bottom: 46%;
	width: 72%;
	max-width: 870px;
	height: auto;
	overflow: hidden;
	border-radius: 50%;
	transform: translate(45%, 50%);
	aspect-ratio: 1;
}

.about_item_pic {
	display: flex;
	justify-content: center;
	align-items: center;
	opacity: 0;
	position: absolute;
	right: 50%;
	bottom: 50%;
	width: 100%;
	height: 100%;
	transform: translate(50%, 50%);
	transition: all 0.2s;
}

.about_item_pic.-picact {
	opacity: 1;
}

.news {
	padding-top: 260px;
	padding-bottom: 150px;
}

.news_wrap {
}

.news_hd {
	display: flex;
	justify-content: space-between;
	align-items: end;
	margin-bottom: 30px;
}

.news_hd_ttl {
	font-size: 90px;
}

.news_hd_link {
}

.news_hd_link .cmnlink {
	justify-content: center;
	align-items: center;
	gap: 10px;
	width: 190px;
	height: 50px;
	padding: 0 !important;
	font-size: 20px;
}

.news_hd_link .cmnlink .icon-list {
	font-size: 18px;
}

.news_cnt {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 40px;
}

.news_link {
	display: flex;
	flex-flow: column;
	gap: 9px;
	position: relative;
	padding: 40px 40px 70px 40px;
	border-radius: 20px;
	background: #e9ecf0;
	transition: all 0.2s;
}

.news_link:hover {
	background: #dce3eb;
}

.news_link time {
}

.news_link p {
	font-weight: bold;
	font-size: 20px;
	line-height: 1.5;
}

.news_link .cmnlink_item {
	position: absolute;
	right: 31px;
	bottom: 31px;
	width: 22px;
	transform: translate(50%, 50%);
}

.recruit {
	max-width: 1680px;
	margin: 0 auto;
	padding: 0 60px 150px;
}

.recruit_cnt {
	display: block;
	position: relative;
	width: 100%;
	height: 620px;
	padding-left: 50%;
	overflow: hidden;
	border-radius: 20px;
	background: #e9ecf0;
	transition: all 0.2s;
}

.recruit_cnt:hover {
	background: #dce3eb;
}

.recruit_cnt::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(../img/home/recruit-item@2x.png) center / cover;
	transform: scale(1);
	transform-origin: left;
	transition: all 0.2s;
}

.recruit_cnt:hover:after {
	transform: scale(1.1);
}

.recruit_wrap {
}

.recruit_wrap {
	display: flex;
	flex-flow: column;
	justify-content: center;
	gap: 25px;
	position: relative;
	position: relative;
	z-index: 10;
	height: 100%;
	padding: 0 80px 0;
}

.recruit_ttl {
	font-size: 90px;
	line-height: 1.24;
}

.recruit_ttl.sec_ttl::after {
	display: none;
}

.recruit_catch {
	font-weight: bold;
	font-size: 40px;
	line-height: 1.4;
}

.recruit_txt {
	line-height: 1.4;
}

.recruit_cnt .cmnlink_item {
	right: 46px;
	bottom: 46px;
	width: 22px;
}

@media screen and (max-width:1240px) {
}

@media screen and (max-width:768px) {
	.cmnhd {
	}

	.-load .cmnhd {
	}

	.hero {
	}

	.hero_wrap {
		padding: 0;
	}

	.hero_catch {
		position: absolute;
		right: 50%;
		bottom: 85px;
		white-space: nowrap;
		transform: translateX(50%);
	}

	.-load .hero_catch {
	}

	.hero_catch h1 {
		font-size: 36px;
	}

	.hero_catch span {
		font-size: 9px;
	}

	.hero_crane {
		bottom: 320px;
		max-width: 250px;
	}

	.-load .hero_crane {
	}

	@keyframes crane {
		0% {
			transform: translate(50%, calc(-177px  - 100dvh));
		}

		50% {
			transform: translate(50%, calc(177px + 100dvh));
		}

		100% {
			transform: translate(50%, 0);
		}
	}

	.hero_crane_wrap {
	}

	.hero_crane_item {
	}

	.hero_crane_item.crane_item01 {
	}

	.hero_crane_item.crane_item01 img {
	}

	.hero_crane_item.crane_item02 {
	}

	.hero_crane_item.crane_item03 {
	}

	.-load .hero_crane_item.crane_item03 {
	}

	.hero_pic {
	}

	.hero_pic.hpic01 {
		bottom: 57%;
		width: 69px;
	}

	.-load .hero_pic.hpic01 {
	}

	.hero_pic.hpic02 {
		right: 15%;
		bottom: 72%;
		width: 111px;
	}

	.-load .hero_pic.hpic02 {
	}

	.hero_pic.hpic03 {
		bottom: 64%;
		width: 137px;
	}

	.-load .hero_pic.hpic03 {
	}

	.topnews {
		padding: 30px 0;
	}

	.topnews_wrap {
		flex-flow: column;
		gap: 10px;
		padding: 28px 24px;
		border-radius: 30px;
	}

	.topnews_hd {
	}

	.topnews_cnt {
	}

	.topnews_link {
		flex-flow: column;
		gap: 0;
	}

	.topnews_link time {
	}

	.topnews_list {
		display: flex;
		top: 23px;
		bottom: unset;
	}

	.icon-list {
	}

	.sec {
	}

	.sec_ttl {
		font-size: 53px;
	}

	.sec_ttl::after {
	}

	.-scrollact .sec_ttl::after {
	}

	.business {
		padding-top: 50px;
		padding-bottom: 80px;
	}

	.business_wrap {
	}

	.business_ttl {
		margin: 0 0 28px;
	}

	.business_intro {
		width: 100%;
		margin: 0 0 70px auto;
	}

	.business_intro_hd {
	}

	.business_intro_cnt {
	}

	.business_cnt {
	}

	.business_sec {
		display: flex;
		flex-flow: column-reverse;
		gap: 90px;
	}

	.bussec_right.business_sec {
		gap: 90px;
		margin-bottom: 105px;
	}

	.business_sec_wrap {
	}

	.bussec_right .business_sec_wrap {
	}

	.bussec_left .business_sec_wrap {
	}

	.business_sec_hd {
	}

	.business_sec_hd_en {
		font-size: 34px;
	}

	.bussec_right .business_sec_hd_en {
	}

	.business_sec_hd_jp {
	}

	.bussec_right .business_sec_hd_jp {
	}

	.business_sec_cnt {
		width: 100%;
		margin-bottom: 27px;
	}

	.business_sec_link {
	}

	.business_sec_pic {
		position: relative;
		width: 300px;
	}

	.business_sec_pic::before {
	}

	.bussec_right .-scrollact.business_sec_pic:before {
	}

	.bussec_left .-scrollact.business_sec_pic:before {
	}

	.business_sec_pic img {
		width: 150%;
		height: auto;
		aspect-ratio: 1;
	}

	.bussec_right .business_sec_pic {
		right: 14%;
		transform: translate(0, 0) rotate(45deg);
	}

	.bussec_left .business_sec_pic {
		left: 14%;
		transform: translate(0, 0) rotate(45deg);
	}

	.about {
		overflow: hidden;
	}

	.about > .inner {
		padding: 0;
	}

	.about_wrap {
	}

	.abou_ttl {
		margin: 0 auto 40px;
	}

	.about_cnt {
		width: 100%;
	}

	.about_link {
	}

	.about_link_list {
	}

	.about_link_list:last-child {
	}

	.about_link_list_cnt {
	}

	.about_link_list_cnt:hover {
	}

	.about_link_list_cnt .cmnlink_item {
	}

	.about_link_en {
		font-size: 18px;
	}

	.about_link_jp {
		font-size: 20px;
	}

	.about_item {
		position: relative;
		right: unset;
		bottom: unset;
		width: 100%;
		margin-bottom: 50px;
		overflow: unset;
		border-radius: unset;
		transform: unset;
	}

	.about_item_pic {
		opacity: 0;
		z-index: calc(10 - var(--fade));
		width: 110%;
		height: auto;
		overflow: hidden;
		border-radius: 50%;
		animation: image-switch-animation 30s infinite;
		aspect-ratio: 1;
	}

	.about_item_pic:nth-of-type(1) {
		animation-delay: 0s;
	}

	.about_item_pic:nth-of-type(2) {
		animation-delay: 5s;
	}

	.about_item_pic:nth-of-type(3) {
		animation-delay: 10s;
	}

	.about_item_pic:nth-of-type(4) {
		animation-delay: 15s;
	}

	.about_item_pic:nth-of-type(5) {
		animation-delay: 20s;
	}

	.about_item_pic:nth-of-type(6) {
		animation-delay: 25s;
	}

	@keyframes image-switch-animation {
		0% {
			opacity: 0;
		}

		5% {
			opacity: 1;
		}

		25% {
			opacity: 1;
		}

		30% {
			opacity: 0;
		}

		100% {
			opacity: 0;
		}
	}

	.about_item_pic.-picact {
	}

	.news {
		padding-top: 80px;
		padding-bottom: 45px;
	}

	.news_wrap {
	}

	.news_hd {
		margin-bottom: 10px;
	}

	.news_hd_ttl {
		font-size: 53px;
	}

	.news_hd_link {
		width: fit-content;
		margin: 0 auto;
	}

	.news_hd_link .cmnlink {
	}

	.news_hd_link .cmnlink .icon-list {
	}

	.news_cnt {
		grid-template-columns: 1fr;
		gap: 10px;
		margin-bottom: 40px;
	}

	.news_link {
		gap: 0;
		padding: 25px 37px 45px 25px;
	}

	.news_link:hover {
	}

	.news_link time {
	}

	.news_link p {
		font-size: 16px;
	}

	.news_link .cmnlink_item {
		right: 25px;
		bottom: 25px;
	}

	.recruit {
		padding: 0 0 45px;
	}

	.recruit_cnt {
		height: auto;
		padding-bottom: 250px;
		padding-left: 0;
	}

	.recruit_cnt:hover {
	}

	.recruit_cnt::after {
		top: auto;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 250px;
		background: url(../img/home/recruit-item_sp@2x.jpg) center / cover;
	}

	.recruit_cnt:hover:after {
		transform: unset;
	}

	.recruit_wrap {
		gap: 15px;
		padding: 45px 24px 35px;
	}

	.recruit_ttl {
		overflow: unset;
		font-size: 53px;
	}

	.recruit_ttl.sec_ttl::after {
	}

	.recruit_catch {
		font-size: 28px;
	}

	.recruit_txt {
	}

	.recruit_cnt .cmnlink_item {
		display: none;
	}
}
