@charset "UTF-8";
.wrapper {
	overflow: hidden;
}
/* -------------------------------- */
.mv {
	position: relative;
	display: flex;
	align-items: center;
	height: 100vh;
	min-height: 800px;
	padding: 0 5%;
	background: #eee url("/_common/img/home/mv.webp") 50% 50% / cover no-repeat;
}
.mv__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	color: #fff;
}
.mv__content {
	max-width: 1100px;
	margin: 0 auto;
}
.mv__en {
	display: block;
	margin-left: -122px;
	color: rgba(184, 232, 237, .9);
	font-size: 35px;
	font-family: "Dancing Script", cursive;
	font-weight: bold;
	letter-spacing: .16em;
	transform: rotate(-4deg)!important;
}
@media screen and (max-width: 1201px) {
	.mv__en {
		margin-left: 0px;
	}
}
.mv__inner h1 {
	margin-top: 50px;
	font-size: 80px;
	font-weight: bold;
	line-height: 119px;
	letter-spacing: .115em;
}
@keyframes fadeUpAnime {
	from {
		opacity: 0;
		transform: translateY(3rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.mv__inner h1.scroll_fade_in.visible {
	animation-name: initial;
	animation-duration: initial;
	animation-fill-mode: initial;
	opacity: initial;
}
.mv__inner h1 span {
	display: inline-block;
}
.mv__inner h1.scroll_fade_in.visible span {
	animation-name: fadeUpAnime;
	animation-duration: .5s;
	animation-fill-mode: forwards;
	opacity: 0;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(1) {
	animation-delay: .0s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(2) {
	animation-delay: .05s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(3) {
	animation-delay: .1s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(4) {
	animation-delay: .15s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(5) {
	animation-delay: .2s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(6) {
	animation-delay: .25s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(7) {
	animation-delay: .3s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(8) {
	animation-delay: .35s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(9) {
	animation-delay: .4s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(10) {
	animation-delay: .45s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(11) {
	animation-delay: .5s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(12) {
	animation-delay: .55s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(13) {
	animation-delay: .6s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(14) {
	animation-delay: .65s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(15) {
	animation-delay: .7s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(16) {
	animation-delay: .75s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(17) {
	animation-delay: .8s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(18) {
	animation-delay: .85s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(19) {
	animation-delay: .9s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(20) {
	animation-delay: .95s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(21) {
	animation-delay: 1s;
}
.mv__inner h1.scroll_fade_in.visible span:nth-child(22) {
	animation-delay: 1.05s;
}
.mv__text {
	margin-top: 20px;
	font-size: 20px;
	font-weight: bold;
	letter-spacing: .065em;
	line-height: 40px;
	animation-delay: 1s;
}
@keyframes fadeUpAnime2 {
	from {
		opacity: 0;
		transform: translateY(1rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.mv__text.scroll_fade_in.visible {
	animation-name: initial;
	animation-duration: initial;
	animation-fill-mode: initial;
	opacity: initial;
}
.mv__text.scroll_fade_in.visible {
	animation-name: fadeUpAnime2;
	animation-duration: .5s;
	animation-fill-mode: forwards;
	opacity: 0;
}
.mv .triangle.left {
	position: absolute;
	left: 0;
	bottom: 0;
	border: 97px solid transparent;
	border-left: 50vw solid #1B8DCB;
	transform: translateY(50%);
}
.mv .triangle.right {
	position: absolute;
	right: 0;
	bottom: 0;
	border: 97px solid transparent;
	border-right: 50vw solid #19B2C3;
	transform: translateY(50%);
}
@media screen and (max-width: 767px) {
	.mv {
		/* align-items: flex-end; */
		height: 100svh;
		min-height: 600px;
		padding: 0;
		/* padding-top: 100px; */
	}
	.mv__inner {
		padding: 0 2rem;
	}
	.mv__content {
	}
	.mv__en {
		margin-left: 0px;
		font-size: 18px;
		letter-spacing: .16em;
	}
	.mv__inner h1 {
		margin-top: 20px;
		font-size: 36px;
		line-height: 1.5;
		letter-spacing: .115em;
	}
	.mv__inner h1 > div {
		height: 1.5em;
	}
	.mv__text {
		margin-top: 20px;
		font-size: 15px;
		line-height: 1.8;
	}
	.mv .triangle.left {
		border: 25px solid transparent;
		border-left: 50vw solid #1B8DCB;
	}
	.mv .triangle.right {
		border: 25px solid transparent;
		border-right: 50vw solid #19B2C3;
	}
}
/* -------------------------------- */
.about {
	background: #eee url("/_common/img/home/about-bg.webp") 50% 50% / cover no-repeat;
	overflow: hidden;
}
.about__inner {
	position: relative;
	max-width: 800px;
	margin: 0 auto;
	padding: 140px 0 240px;
}
.about__title {
	display: flex;
	justify-content: center;
}
.about__en {
	position: relative;
	display: block;
	margin-left: -46px;
	color: #205E93;
	font-size: 28px;
	font-family: "Dancing Script", cursive;
	font-weight: bold;
	letter-spacing: .16em;
	text-align: left;
	transform: rotate(-4deg)!important;
	z-index: 2;
}
.about h2 {
}
.about h2 .en {
	display: block;
	margin-top: -40px;
	color: rgba(184, 232, 237, .9);
	font-size: 129px;
	font-weight: 500;
	letter-spacing: .16em;
	text-align: center;
	/* white-space: nowrap; */
}
.about h2 .ja {
	display: block;
	margin-top: -20px;
	font-size: 20px;
	font-weight: bold;
	letter-spacing: .065em;
	text-align: center;
}
.about h3 {
	display: block;
	margin-top: 82px;
	color: #205E93;
	font-size: 50px;
	font-weight: bold;
	letter-spacing: .065em;
	text-align: center;
}
.about__text {
	margin-top: 44px;
	font-weight: bold;
	letter-spacing: .065em;
	line-height: 37px;
	text-align: center;
}
.about__btn {
	margin-top: 50px;
}
.about__btn a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 432px;
	height: 90px;
	margin: 0 auto;
	background-color: #19B2C3;
	color: #fff;
	font-size: 18px;
	font-weight: bold;
	letter-spacing: .065em;
	text-align: center;
	border-radius: 45px;
}
.about__btn a:hover {
	background-color: #205E93;
	transition: .3s;
}
.about__btn a .icon {
	position: absolute;
	top: 50%;
	right: 13px;
	transform: translate(0,-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 65px;
	height: 65px;
	background: #fff url("/_common/img/home/about-btn-icon.png") 50% 50% / 8px 13px no-repeat;
	border-radius: 32.5px;
}
.about__btn a:hover .icon {
	background: #fff url("/_common/img/home/about-btn-icon-hover.png") 50% 50% / 8px 13px no-repeat;
}
.about__btn a .icon img {
	width: 8px;
}
.about__visual1 {
	position: absolute;
	top: 60%;
	left: 159px;
	transform: translate(-100%,-50%)!important;
	width: 100%;
	max-width: 559px;
	z-index: 2;
}
.about__visual2 {
	position: absolute;
	top: 62.5%;
	left: calc(100% - 24px);
	transform: translate(0,-50%)!important;
	width: 100%;
	max-width: 461px;
	z-index: 2;
}
.about__obj1 {
	position: absolute;
	bottom: 0;
	left: 90px;
	transform: translate(-100%,0)!important;
	width: 739px;
}
.about__obj2 {
	position: absolute;
	bottom: 80px;
	left: calc(100% - 165px);
	transform: translate(0,50%)!important;
	width: 1291px;
}
@media screen and (max-width: 767px) {
	.about {
	}
	.about__inner {
		max-width: 800px;
		padding: 60px 1.5rem 120px;
	}
	.about__en {
		margin-left: -10px;
		font-size: 12px;
		letter-spacing: .16em;
	}
	.about h2 {
	}
	.about h2 .en {
		margin-top: -16px;
		font-size: 46px;
		letter-spacing: .16em;
	}
	.about h2 .ja {
		margin-top: 0;
		font-size: 15px;
		letter-spacing: .065em;
	}
	.about h3 {
		margin-top: 30px;
		font-size: 30px;
		letter-spacing: .065em;
		text-align: center;
	}
	.about__text {
		margin-top: 40px;
		letter-spacing: .065em;
		line-height: 2;
	}
	.about__btn {
		margin-top: 40px;
	}
	.about__btn a {
		height: 60px;
		font-size: 16px;
		letter-spacing: .065em;
	}
	.about__btn a .icon {
		right: 13px;
		width: 40px;
		height: 40px;
	}
	.about__btn a .icon img {
		width: 8px;
	}
	.about__visual-sp {
		position: relative;
		margin-top: 60px;
		z-index: 2;
	}
	.about__obj1 {
		bottom: 25%;
		left: 50%;
		transform: translate(-100%,0)!important;
		width: 80%;
	}
	.about__obj2 {
		bottom: 80px;
		left: 20%;
		transform: translate(0,50%)!important;
		width: 150%;
	}
}
/* -------------------------------- */
.service {
	position: relative;
	background: url("/_common/img/home/service-bg.webp") 50% 50% / cover no-repeat;
}
.service__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 133px 0 163px;
	color: #fff;
}
.service__content {
	max-width: 1100px;
	margin: 0 auto;
}
.service h2 {
	color: rgba(184, 232, 237, .9);
	font-size: 71px;
	font-family: "Dancing Script", cursive;
	letter-spacing: .16em;
	transform: rotate(-4deg)!important;
}
.service h3 {
	margin-top: 30px;
	color: #fff;
	font-size: 50px;
	font-weight: bold;
	letter-spacing: .065em;
}
.service__text {
	margin-top: 40px;
	font-weight: bold;
	letter-spacing: .065em;
	line-height: 37px;
}
.service__btn {
	margin-top: 50px;
}
.service__btn a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 432px;
	height: 90px;
	background-color: #fff;
	color: #19B2C3;
	font-size: 18px;
	font-weight: bold;
	letter-spacing: .065em;
	text-align: center;
	border-radius: 45px;
}
.service__btn a:hover {
	background-color: #19B2C3;
	color: #fff;
	transition: .3s;
}
.service__btn a .icon {
	position: absolute;
	top: 50%;
	right: 13px;
	transform: translate(0,-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 65px;
	height: 65px;
	background: #19B2C3 url("/_common/img/home/service-btn-icon.png") 50% 50% / 8px 13px no-repeat;
	border-radius: 32.5px;
}
.service__btn a:hover .icon {
	background: #fff url("/_common/img/home/service-btn-icon-hover.png") 50% 50% / 8px 13px no-repeat;
}
.service__btn a .icon img {
	width: 8px;
}
.service .triangle.left {
	position: absolute;
	top: 0;
	left: 0;
	border: 97px solid transparent;
	border-left: 50vw solid #19B2C3;
	transform: translateY(-50%);
}
.service .triangle.right {
	position: absolute;
	right: 0;
	bottom: 0;
	border: 97px solid transparent;
	border-right: 50vw solid #1B8DCB;
	transform: translateY(50%);
}
@media screen and (max-width: 767px) {
	.service {
	}
	.service__inner {
		padding: 100px 2rem 100px;
	}
	.service__content {
		max-width: 1100px;
		margin: 0 auto;
	}
	.service h2 {
		font-size: 40px;
	}
	.service h3 {
		margin-top: 10px;
		font-size: 30px;
		letter-spacing: .065em;
	}
	.service__text {
		margin-top: 20px;
		letter-spacing: .065em;
		line-height: 1.5;
	}
	.service__btn {
		margin-top: 40px;
	}
	.service__btn a {
		height: 60px;
		font-size: 16px;
		letter-spacing: .065em;
	}
	.service__btn a .icon {
		right: 13px;
		width: 40px;
		height: 40px;
	}
	.service__btn a .icon img {
		width: 8px;
	}
	.service .triangle.left {
		border: 25px solid transparent;
		border-left: 50vw solid #19B2C3;
	}
	.service .triangle.right {
		border: 25px solid transparent;
		border-right: 50vw solid #1B8DCB;
	}
}
/* -------------------------------- */
.banner {
	background: #eee url("/_common/img/home/banner-bg.webp") 50% 50% / cover no-repeat;
}
.banner__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 133px 5% 163px;
	color: #fff;
}
.banner ul {
	display: flex;
	gap: 40px;
}
.banner ul li {
	flex: 1;
}
.banner ul li a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	aspect-ratio: 1/.94;
	padding: 50px;
	color: #fff;
}
.banner ul li:nth-child(1) a {
	background: url("/_common/img/home/banner-works-bg.webp") 50% 50% / cover no-repeat;
}
.banner ul li:nth-child(2) a {
	background: url("/_common/img/home/banner-recruit-bg.webp") 50% 50% / cover no-repeat;
}
.banner ul li a h2 {
	font-size: 60px;
	font-weight: bold;
	letter-spacing: .16em;
}
.banner ul li a .banner__line {
	margin-top: 40px;
}
.banner ul li a .banner__text {
	margin-top: 40px;
	font-weight: bold;
	letter-spacing: .065em;
	line-height: 33px;
}
@media screen and (max-width: 767px) {
	.banner__inner {
		padding: 100px 2rem 100px;
	}
	.banner ul {
		flex-direction: column;
		gap: 40px;
	}
	.banner ul li a {
		padding: 20px;
	}
	.banner ul li a h2 {
		font-size: 30px;
		letter-spacing: .16em;
	}
	.banner ul li a .banner__line {
		margin-top: 20px;
	}
	.banner ul li a .banner__text {
		margin-top: 20px;
		letter-spacing: .065em;
		line-height: 1.5;
	}
}
/* -------------------------------- */
.contact {
	position: relative;
	padding: 133px 5% 163px;
	background: #eee url("/_common/img/home/contact-bg.webp") 50% 50% / cover no-repeat;
}
.contact__inner {
	display: flex;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
	padding: 50px;
	color: #fff;
	border: 2px solid #fff;
}
.contact__content {
	flex: 1;
}
.contact h2 {
	color: rgba(184, 232, 237, .9);
	font-size: 71px;
	font-family: "Dancing Script", cursive;
	letter-spacing: .16em;
	transform: rotate(-4deg)!important;
}
.contact h3 {
	position: relative;
	margin-top: -30px;
	color: #fff;
	font-size: 50px;
	font-weight: bold;
	letter-spacing: .065em;
	z-index: 2;
}
.contact__text {
	margin-top: 35px;
	font-weight: bold;
	letter-spacing: .065em;
	line-height: 37px;
}
.contact__btn {
	flex: 1;
	display: flex;
	justify-content: flex-end;
}
.contact__btn a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	max-width: 516px;
	height: 90px;
	background-color: #1B8DCB;
	color: #fff;
	font-size: 20px;
	font-weight: bold;
	letter-spacing: .065em;
	text-align: center;
	border-radius: 10px;
}
.contact__btn a:hover {
	background-color: #19B2C3;
	transition: .3s;
}
.contact__btn a .icon {
	width: 25px;
	min-width: 25px;
}
.contact .triangle.left {
	position: absolute;
	top: 0;
	left: 0;
	border: 97px solid transparent;
	border-left: 50vw solid #19B2C3;
	transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
	.contact {
		padding: 100px 2rem;
	}
	.contact__inner {
		flex-direction: column;
		padding: 40px 20px;
	}
	.contact__content {
		flex: 1;
	}
	.contact h2 {
		font-size: 40px;
	}
	.contact h3 {
		margin-top: -20px;
		font-size: 30px;
		letter-spacing: .065em;
	}
	.contact__text {
		margin-top: 20px;
		letter-spacing: .065em;
		line-height: 1.5;
	}
	.contact__btn {
		flex: 1;
		width: 100%;
		margin-top: 20px;
	}
	.contact__btn a {
		gap: 6px;
		height: 60px;
		font-size: 13px;
		letter-spacing: 0em;
	}
	.contact__btn a .icon {
		width: 16px;
		min-width: 16px;
	}
	.contact .triangle.left {
		border: 25px solid transparent;
		border-left: 50vw solid #19B2C3;
	}
}