@charset "UTF-8";

/** ----------------
header
---------------- **/
/** -- fv -- **/
.fv {
	position: relative;
}

/** scroll **/
.fv .scroll {
	background-color: white;
	position: absolute;
	left: 0;
	height: 100%;
	width: 156px;
}
.fv .scroll p {
	font-family: "Roboto Condensed", serif;
	font-size: 36px;
	font-weight: 700;
	letter-spacing: 5px;
	position: absolute;
	bottom: 200px;
	left: 50%;
	transform: translateX(-50%);
	writing-mode: vertical-rl;
}

.fv .scroll .arrow {
	display: block;
	margin: 0 auto;
	position: absolute;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%);
	width: 10px;
	height: 150px;
}
.fv .scroll .arrow:after {
	border-top: 2px solid black;
	border-right: 2px solid black;
	behavior: url(-ms-transform.htc);
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	-moz-transform: rotate(135deg);
	-webkit-transform: rotate(135deg);
	-o-transform: rotate(135deg);
	-ms-transform: rotate(135deg);
	transform: rotate(135deg);
	height: 8px;
	width: 8px;
}
.fv .scroll .arrow::before {
	-webkit-animation: elasticus 1.2s cubic-bezier(1, 0, 0, 1) infinite;
	/* Safari 4+ */

	-moz-animation: elasticus 1.2s cubic-bezier(1, 0, 0, 1) infinite;
	/* Fx 5+ */

	-o-animation: elasticus 1.2s cubic-bezier(1, 0, 0, 1) infinite;
	/* Opera 12+ */

	animation: elasticus 1.2s cubic-bezier(1, 0, 0, 1) infinite;
	/* IE 10+, Fx 29+ */

	background: black;
	content: '';
	margin-left: -1px;
	position: absolute;
	top: 0px;
	left: 50%;
	height: 100%;
	width: 2px;
}
@-webkit-keyframes elasticus {
	0% {
		-webkit-transform-origin: 0% 0%;
		-ms-transform-origin: 0% 0%;
		-moz-transform-origin: 0% 0%;
		-o-transform-origin: 0% 0%;
		transform-origin: 0% 0%;
		-webkit-transform: scale(1, 0);
		-ms-transform: scale(1, 0);
		-moz-transform: scale(1, 0);
		-o-transform: scale(1, 0);
		transform: scale(1, 0);
	}
	50% {
		-webkit-transform-origin: 0% 0%;
		-ms-transform-origin: 0% 0%;
		-moz-transform-origin: 0% 0%;
		-o-transform-origin: 0% 0%;
		transform-origin: 0% 0%;
		-webkit-transform: scale(1, 1);
		-ms-transform: scale(1, 1);
		-moz-transform: scale(1, 1);
		-o-transform: scale(1, 1);
		transform: scale(1, 1);
	}
	50.1% {
		-webkit-transform-origin: 0% 100%;
		-ms-transform-origin: 0% 100%;
		-moz-transform-origin: 0% 100%;
		-o-transform-origin: 0% 100%;
		transform-origin: 0% 100%;
		-webkit-transform: scale(1, 1);
		-ms-transform: scale(1, 1);
		-moz-transform: scale(1, 1);
		-o-transform: scale(1, 1);
		transform: scale(1, 1);
	}
	100% {
		-webkit-transform-origin: 0% 100%;
		-ms-transform-origin: 0% 100%;
		-moz-transform-origin: 0% 100%;
		-o-transform-origin: 0% 100%;
		transform-origin: 0% 100%;
		-webkit-transform: scale(1, 0);
		-ms-transform: scale(1, 0);
		-moz-transform: scale(1, 0);
		-o-transform: scale(1, 0);
		transform: scale(1, 0);
	}
}
@-moz-keyframes elasticus {
	0% {
		-webkit-transform-origin: 0% 0%;
		-ms-transform-origin: 0% 0%;
		-moz-transform-origin: 0% 0%;
		-o-transform-origin: 0% 0%;
		transform-origin: 0% 0%;
		-webkit-transform: scale(1, 0);
		-ms-transform: scale(1, 0);
		-moz-transform: scale(1, 0);
		-o-transform: scale(1, 0);
		transform: scale(1, 0);
	}
	50% {
		-webkit-transform-origin: 0% 0%;
		-ms-transform-origin: 0% 0%;
		-moz-transform-origin: 0% 0%;
		-o-transform-origin: 0% 0%;
		transform-origin: 0% 0%;
		-webkit-transform: scale(1, 1);
		-ms-transform: scale(1, 1);
		-moz-transform: scale(1, 1);
		-o-transform: scale(1, 1);
		transform: scale(1, 1);
	}
	50.1% {
		-webkit-transform-origin: 0% 100%;
		-ms-transform-origin: 0% 100%;
		-moz-transform-origin: 0% 100%;
		-o-transform-origin: 0% 100%;
		transform-origin: 0% 100%;
		-webkit-transform: scale(1, 1);
		-ms-transform: scale(1, 1);
		-moz-transform: scale(1, 1);
		-o-transform: scale(1, 1);
		transform: scale(1, 1);
	}
	100% {
		-webkit-transform-origin: 0% 100%;
		-ms-transform-origin: 0% 100%;
		-moz-transform-origin: 0% 100%;
		-o-transform-origin: 0% 100%;
		transform-origin: 0% 100%;
		-webkit-transform: scale(1, 0);
		-ms-transform: scale(1, 0);
		-moz-transform: scale(1, 0);
		-o-transform: scale(1, 0);
		transform: scale(1, 0);
	}
}
@-o-keyframes elasticus {
	0% {
		-webkit-transform-origin: 0% 0%;
		-ms-transform-origin: 0% 0%;
		-moz-transform-origin: 0% 0%;
		-o-transform-origin: 0% 0%;
		transform-origin: 0% 0%;
		-webkit-transform: scale(1, 0);
		-ms-transform: scale(1, 0);
		-moz-transform: scale(1, 0);
		-o-transform: scale(1, 0);
		transform: scale(1, 0);
	}
	50% {
		-webkit-transform-origin: 0% 0%;
		-ms-transform-origin: 0% 0%;
		-moz-transform-origin: 0% 0%;
		-o-transform-origin: 0% 0%;
		transform-origin: 0% 0%;
		-webkit-transform: scale(1, 1);
		-ms-transform: scale(1, 1);
		-moz-transform: scale(1, 1);
		-o-transform: scale(1, 1);
		transform: scale(1, 1);
	}
	50.1% {
		-webkit-transform-origin: 0% 100%;
		-ms-transform-origin: 0% 100%;
		-moz-transform-origin: 0% 100%;
		-o-transform-origin: 0% 100%;
		transform-origin: 0% 100%;
		-webkit-transform: scale(1, 1);
		-ms-transform: scale(1, 1);
		-moz-transform: scale(1, 1);
		-o-transform: scale(1, 1);
		transform: scale(1, 1);
	}
	100% {
		-webkit-transform-origin: 0% 100%;
		-ms-transform-origin: 0% 100%;
		-moz-transform-origin: 0% 100%;
		-o-transform-origin: 0% 100%;
		transform-origin: 0% 100%;
		-webkit-transform: scale(1, 0);
		-ms-transform: scale(1, 0);
		-moz-transform: scale(1, 0);
		-o-transform: scale(1, 0);
		transform: scale(1, 0);
	}
}
@keyframes elasticus {
	0% {
		-webkit-transform-origin: 0% 0%;
		-ms-transform-origin: 0% 0%;
		-moz-transform-origin: 0% 0%;
		-o-transform-origin: 0% 0%;
		transform-origin: 0% 0%;
		-webkit-transform: scale(1, 0);
		-ms-transform: scale(1, 0);
		-moz-transform: scale(1, 0);
		-o-transform: scale(1, 0);
		transform: scale(1, 0);
	}
	50% {
		-webkit-transform-origin: 0% 0%;
		-ms-transform-origin: 0% 0%;
		-moz-transform-origin: 0% 0%;
		-o-transform-origin: 0% 0%;
		transform-origin: 0% 0%;
		-webkit-transform: scale(1, 1);
		-ms-transform: scale(1, 1);
		-moz-transform: scale(1, 1);
		-o-transform: scale(1, 1);
		transform: scale(1, 1);
	}
	50.1% {
		-webkit-transform-origin: 0% 100%;
		-ms-transform-origin: 0% 100%;
		-moz-transform-origin: 0% 100%;
		-o-transform-origin: 0% 100%;
		transform-origin: 0% 100%;
		-webkit-transform: scale(1, 1);
		-ms-transform: scale(1, 1);
		-moz-transform: scale(1, 1);
		-o-transform: scale(1, 1);
		transform: scale(1, 1);
	}
	100% {
		-webkit-transform-origin: 0% 100%;
		-ms-transform-origin: 0% 100%;
		-moz-transform-origin: 0% 100%;
		-o-transform-origin: 0% 100%;
		transform-origin: 0% 100%;
		-webkit-transform: scale(1, 0);
		-ms-transform: scale(1, 0);
		-moz-transform: scale(1, 0);
		-o-transform: scale(1, 0);
		transform: scale(1, 0);
	}
}

/** inner **/
.fv .inner {
	margin-left: 156px;
	position: relative;
	height: 990px;
}
.fv .inner .bg {
	object-fit: cover;
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 50%;
}

.fv .inner .text {
	color: white;
	padding-left: 80px;
	padding-top: 100px;
	position: relative;
	z-index: 1;
}
.fv .inner .text h2 {
	font-family: "Roboto Condensed", serif;
	font-size: 140px;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 14px;
}
.fv .inner .text h1 {
	font-size: 60px;
	font-weight: 900;
	letter-spacing: 4px;
}

@keyframes vertical-animation {
	from {
		transform: translateY(0);
	}

	to {
		transform: translateY(-75%);
	}
}
.fv .inner .fv_slider {
	overflow: hidden;
	position: absolute;
	right: 0;
	top: 0;
	height: 100%;
	width: 50%;
}
.fv .inner .fv_slider .slider-wrapper {
	animation: vertical-animation 30s linear infinite;
}
.fv .inner .fv_slider .slide-image {
	width: 100%;
}
.fv .inner .fv_slider .slide-image img {
	width: 100%;
}

@media screen and (max-width: 1600px) {

	/** scroll **/
	.fv .scroll {
		width: 10vw;
	}
	.fv .scroll p {
		font-size: 2.2vw;
		letter-spacing: .3vw;
		bottom: 12vw;
	}

	.fv .scroll .arrow {
		bottom: 2vw;
		width: 10px;
		height: 9vw;
	}
	.fv .scroll .arrow:after {
		border-top: 2px solid black;
		border-right: 2px solid black;
		height: 8px;
		width: 8px;
	}
	.fv .scroll .arrow::before {
		margin-left: -1px;
		width: 2px;
	}

	/** inner **/
	.fv .inner {
		margin-left: 10vw;
		height: 54vw;
	}

	.fv .inner .text {
		padding-left: 4vw;
		padding-top: 4vw;
	}
	.fv .inner .text h2 {
		font-size: 8.6vw;
		letter-spacing: .8vw;
	}
	.fv .inner .text h1 {
		font-size: 3.8vw;
		letter-spacing: .2vw;
	}

	@keyframes vertical-animation {
		from {
			transform: translateY(0);
		}

		to {
			transform: translateY(-75%);
		}
	}
	.fv .inner .fv_slider .slider-wrapper {
		animation: vertical-animation 30s linear infinite;
	}
}

@media screen and (max-width: 780px) {

	/** scroll **/
	.fv .scroll {
		width: 6vw;
	}
	.fv .scroll p {
		font-size: 3.4vw;
		letter-spacing: .5vw;
		bottom: 24vw;
	}

	.fv .scroll .arrow {
		bottom: 2vw;
		width: 8px;
		height: 20vw;
	}
	.fv .scroll .arrow:after {
		border-top: 1px solid black;
		border-right: 1px solid black;
		height: 6px;
		width: 6px;
	}
	.fv .scroll .arrow::before {
		margin-left: -1px;
		width: 1px;
	}

	/** inner **/
	.fv .inner {
		margin-left: 6vw;
		height: 80vh;
	}
	.fv .inner .bg {
		height: 40vh;
		width: 100%;
	}

	.fv .inner .text {
		padding-left: 4vw;
		padding-top: 10vw;
	}
	.fv .inner .text h2 {
		font-size: 9vw;
		letter-spacing: .8vw;
	}
	.fv .inner .text h1 {
		font-size: 5.6vw;
		letter-spacing: .4vw;
		margin: 4vw 0;
	}

	@keyframes vertical-animation {
		from {
			transform: translateY(0);
		}

		to {
			transform: translateY(-75%);
		}
	}
	.fv .inner .fv_slider {
		margin-top: 40vh;
		height: 40vh;
		width: 100%;
	}
	.fv .inner .fv_slider .slider-wrapper {
		animation: vertical-animation 30s linear infinite;
	}

}


/** ----------------
main
---------------- **/
/** -- mov -- **/
.mov {
	position: relative;
}

/** recruit_bn **/
.mov .recruit_bn {
	background-color: #FFD752;
	color: white;
	margin-left: auto;
	margin-right: -160px;
	margin-top: -120px;
	padding: 50px 0 100px 50px;
	position: relative;
	width: 1400px;
	z-index: 2;
}
.mov .recruit_bn hgroup p {
	font-size: 34px;
	font-weight: 800;
	line-height: 1.4;
}
.mov .recruit_bn hgroup h2 {
	font-size: 77px;
	font-weight: 800;
	line-height: 1.4;
}

.mov .recruit_bn .link {
	align-items: center;
	background: url("../img/common/txtcircle-recruit.svg") no-repeat center / contain;
	display: flex;
	margin-left: 50px;
	height: 140px;
	width: 140px;
}
.mov .recruit_bn .link p {
	font-size: 18px;
	font-weight: 800;
	text-align: center;
	width: 100%;
}

/** mov_box **/
.mov .mov_box {
	margin: 0 auto;
	margin-top: -50px;
	height: 700px;
	width: 1200px;
	position: relative;
	z-index: 3;
}

@media screen and (max-width: 1600px) {

	/** recruit_bn **/
	.mov .recruit_bn {
		margin-right: -10vw;
		margin-top: -7vw;
		padding: 3.2vw 0 6.3vw 3.2vw;
		width: 74vw;
	}
	.mov .recruit_bn hgroup p {
		font-size: 2.1vw;
	}
	.mov .recruit_bn hgroup h2 {
		font-size: 4.8vw;
	}

	.mov .recruit_bn .link {
		margin-left: 3.2vw;
		height: 9vw;
		width: 9vw;
	}
	.mov .recruit_bn .link p {
		font-size: 1.1vw;
	}

	/** mov_box **/
	.mov .mov_box {
		margin-top: -3vw;
		height: 36vw;
		width: 64vw;
	}
}

@media screen and (max-width: 780px) {

	/** recruit_bn **/
	.mov .recruit_bn {
		margin-right: -6vw;
		margin-top: -5vw;
		padding: 6vw 0 8vw 4vw;
		width: 78vw;
	}
	.mov .recruit_bn hgroup p {
		font-size: 3vw;
	}
	.mov .recruit_bn hgroup h2 {
		font-size: 5.6vw;
	}

	.mov .recruit_bn .link {
		margin-left: 3vw;
		margin-top: -2vw;
		height: 16vw;
		width: 16vw;
	}
	.mov .recruit_bn .link p {
		font-size: 2.4vw;
	}

	/** mov_box **/
	.mov .mov_box {
		margin-top: -5vw;
		height: 43vw;
		width: 76vw;
	}
}


/** -- about -- **/
.about {
	margin-bottom: 300px;
	padding-left: 80px;
	margin-top: 140px;
	position: relative;
}
.about::after {
	background-color: white;
	height: 1150px;
	width: 1350px;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
	content: '';
	display: block;
	position: absolute;
	bottom: -200px;
	right: 0;
	transition: ease .3s;
	z-index: -1;
}

/** inner **/
.about .text {
	position: relative;
	width: 500px;
	z-index: 2;
}
.about hgroup.headline_1 {
	margin-bottom: 40px;
}
.about .text p.exp {
	font-size: 18px;
	font-weight: 500;
	line-height: 2.6;
}

.about .text .deco {
	position: absolute;
	right: -320px;
	bottom: -100px;
	width: 190px;
}


.about .about_slider {
	overflow: hidden;
	position: absolute;
	right: 0;
	top: 0;
	height: 100%;
	width: 50%;
}
.about .about_slider .slider-wrapper {
	display: grid;
	animation: vertical-animation1 30s linear infinite;
	margin-right: 20px;
	width: calc(50% - 10px);
}
.about .about_slider .slider-wrapper-2 {
	display: grid;
	animation: vertical-animation2 30s linear infinite;
	width: calc(50% - 10px);
}
.about .about_slider .slide-image {
	margin-bottom: 20px;
	width: 100%;
}
.about .about_slider .slide-image img {
	width: 100%;
}

@media screen and (max-width: 1600px) {
	.about {
		margin-bottom: 19vw;
		padding-left: 5vw;
		margin-top: 9vw;
	}
	.about::after {
		height: 60vw;
		width: 64vw;
		bottom: -12.6vw;
	}

	/** inner **/
	.about .text {
		width: 31vw;
	}
	.about hgroup.headline_1 {
		margin-bottom: 2.6vw;
	}
	.about .text p.exp {
		font-size: 1.1vw;
	}

	.about .text .deco {
		right: -10vw;
		bottom: -6vw;
		width: 12vw;
	}

	.about .about_slider .slider-wrapper {
		margin-right: 1.2vw;
		width: calc(50% - .6vw);
	}
	.about .about_slider .slider-wrapper-2 {
		width: calc(50% - .6vw);
	}
	.about .about_slider .slide-image {
		margin-bottom: 1.2vw;
	}
}

@media screen and (max-width: 780px) {
	.about {
		margin-bottom: 20vw;
		padding: 0 5vw;
		margin-top: 14vw;
	}
	.about::after {
		height: 72vw;
		width: 82vw;
		bottom: -10vw;
	}

	/** inner **/
	.about .text {
		width: 100%;
	}
	.about hgroup.headline_1 {
		margin-bottom: 4vw;
	}
	.about .text p.exp {
		font-size: 3.6vw;
	}

	.about .text .deco {
		right: -8vw;
		bottom: -16vw;
		width: 24vw;
	}

	.about .about_slider {
		margin-top: 8vw;
		position: relative;
		right: auto;
		top: auto;
		height: 50vw;
		width: 100%;
	}
	.about .about_slider .slider-wrapper {
		animation: vertical-animation1 20s linear infinite;
		margin-right: 2vw;
		width: calc(50% - 1vw);
	}
	.about .about_slider .slider-wrapper-2 {
		animation: vertical-animation2 20s linear infinite;
		width: calc(50% - 1vw);
	}
	.about .about_slider .slide-image {
		margin-bottom: 2vw;
	}
}


/** -- service -- **/
.service {
	padding-bottom: 80px;
	position: relative;
}
.service::after {
	background-color: #25368C;
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	height: 50%;
	width: 100%;
	z-index: -1;
}

/** block_1 **/
.service .block_1 .image {
	overflow: hidden;
	height: 1150px;
	width: 50%;
}
@keyframes about-animation {
	from {
		transform: translateX(-20%);
	}

	to {
		transform: translateX(0);
	}
}
.service .block_1 .image img {
	animation: about-animation 50s linear infinite;
	max-width: initial;
	height: 100%;
	width: auto;
}

.service .block_1 .text {
	padding-right: 80px;
	padding-top: 60px;
	position: relative;
	width: 50%;
	z-index: 1;
}
.service .block_1 .text hgroup.headline_2 {
	position: absolute;
	left: -70px;
	top: 100px;
	writing-mode: vertical-lr;
}
.service .block_1 .text hgroup.headline_2 h2 {
	color: white;
	font-family: "Roboto Condensed", serif;
	font-size: 140px;
	font-weight: 700;
	letter-spacing: 15px;
	line-height: 1.0;
}
.service .block_1 .text hgroup.headline_2 p {
	color: #88C7EA;
	font-size: 48px;
	font-weight: 700;
	letter-spacing: 4px;
	position: absolute;
	bottom: 0;
	right: -70px;
}

.service .block_1 .text hgroup.headline_1 {
	display: table;
	margin-left: auto;
}
.service .block_1 .text p.exp {
	display: table;
	font-size: 18px;
	font-weight: 500;
	line-height: 2.4;
	margin-left: auto;
	margin-top: 50px;
	text-align: right;
}
@keyframes about-animation2 {
	from {
		transform: translateX(-5%);
	}

	to {
		transform: translateX(0);
	}
}
.service .block_1 .text .deco {
	overflow: hidden;
	position: absolute;
	right: 0;
	bottom: 0;
	height: 500px;
	width: 650px;
	z-index: -1;
}
.service .block_1 .text img {
	animation: about-animation2 10s linear infinite;
	max-width: initial;
	height: auto;
	width: 140%;
}

/** block_2 **/
.service .block_2 {
	position: relative;
	margin: 0 50px;
	margin-top: -50px;
	z-index: 2;
}

.service .list {
	margin-bottom: 60px;
}
.service .list article {
	background-color: white;
	margin: 0 15px;
	padding: 40px;
	padding-top: 80px;
	position: relative;
	width: calc(33.3333% - 30px);
	z-index: 1;
}
.service .list article a {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	z-index: 1;
}
.service .list article figure {
	position: relative;
	z-index: -1;
}
.service .list article figure::after {
	content: '';
	display: block;
	opacity: .2;
	position: absolute;
	left: 0;
	top: 0;
	transition: ease .3s;
	height: 100%;
	width: 100%;
}
.service .list article:hover figure::after {
	background-color: #D2ECFF;
}
.service .list article .label {
	background-color: #88C7EA;
	color: white;
	font-family: "Roboto Condensed", serif;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 75px;
	padding-top: 20px;
	position: absolute;
	left: 0;
	top: 0;
	writing-mode: vertical-rl;
	height: 300px;
	width: 75px;
}
.service .list article .label::after {
	background-color: #88C7EA;
	clip-path: polygon(0 0, 100% 0, 0 100%);
	content: '';
	display: block;
	position: absolute;
	bottom: -60px;
	left: 0;
	transition: ease .3s;
	height: 60px;
	width: 100%;
}
.service .list article .num {
	color: #FFD752;
	font-family: "bahnschrift";
	font-size: 100px;
	font-weight: 600;
	letter-spacing: 8px;
	line-height: 1.0;
	position: absolute;
	left: 90px;
	top: -40px;
}
.service .list article h3 {
	font-size: 36px;
	font-weight: 700;
	letter-spacing: 2px;
	margin-bottom: 50px;
	margin-left: 60px;
}

@media screen and (max-width: 1600px) {
	.service {
		padding-bottom: 80px;
	}

	/** block_1 **/
	.service .block_1 .image {
		height: 64vw;
	}

	.service .block_1 .text {
		padding-right: 3vw;
		padding-top: 3vw;
	}
	.service .block_1 .text hgroup.headline_2 {
		left: -3.9vw;
		top: 4vw;
	}
	.service .block_1 .text hgroup.headline_2 h2 {
		font-size: 7.8vw;
		letter-spacing: 1vw;
	}
	.service .block_1 .text hgroup.headline_2 p {
		font-size: 2.9vw;
		letter-spacing: .3vw;
		right: -4vw;
	}

	.service .block_1 .text p.exp {
		font-size: 1.1vw;
		margin-top: 3vw;
	}
	.service .block_1 .text .deco {
		height: 24vw;
		width: 32vw;
	}

	/** block_2 **/
	.service .block_2 {
		margin: 0 2vw;
		margin-top: -3.2vw;
	}

	.service .list {
		margin-bottom: 4vw;
	}
	.service .list article {
		margin: 0 .8vw;
		padding: 2vw;
		padding-top: 4vw;
		width: calc(33.3333% - 1.6vw);
	}
	.service .list article .label {
		font-size: 1.5vw;
		letter-spacing: .06vw;
		line-height: 4.5vw;
		padding-top: 1.2vw;
		height: 18vw;
		width: 4.5vw;
	}
	.service .list article .label::after {
		bottom: -3.6vw;
		height: 3.6vw;
	}
	.service .list article .num {
		font-size: 6.2vw;
		letter-spacing: .4vw;
		left: 5.2vw;
		top: -2.4vw;
	}
	.service .list article h3 {
		font-size: 2.1vw;
		letter-spacing: .12vw;
		margin-bottom: 3vw;
		margin-left: 3.6vw;
	}
}

@media screen and (max-width: 780px) {
	.service {
		padding: 5vw;
		padding-bottom: 14vw;
	}
	.service::after {
		bottom: auto;
		left: 0;
		top: 0;
		height: 90vw;
		width: 54vw;
	}

	/** block_1 **/
	.service .block_1 .image {
		height: 80vw;
		width: 72vw;
	}

	.service .block_1 .text {
		margin-top: 12vw;
		padding-right: 0;
		padding-top: 0;
		width: 100%;
	}
	.service .block_1 .text hgroup.headline_1 {
		margin-left: 0;
	}
	.service .block_1 .text hgroup.headline_2 {
		left: auto;
		right: 2vw;
		top: -80vw;
	}
	.service .block_1 .text hgroup.headline_2 h2 {
		font-size: 13vw;
		letter-spacing: 1.4vw;
	}
	.service .block_1 .text hgroup.headline_2 p {
		font-size: 4.6vw;
		letter-spacing: .3vw;
		bottom: 1.6vw;
		right: -6vw;
	}

	.service .block_1 .text p.exp {
		font-size: 3.6vw;
		margin-left: 0;
		margin-top: 4vw;
		text-align: left;
	}
	.service .block_1 .text .deco {
		display: none;
	}

	/** block_2 **/
	.service .block_2 {
		margin: 0;
		margin-top: 10vw;
	}

	.service .list {
		margin: 0;
		margin-bottom: 0;
	}
	.service .list article {
		margin: 0 0 8vw;
		padding: 4vw;
		padding-top: 9vw;
		width: 70vw;
	}
	.service .list article:nth-child(2) {
		margin-left: auto;
	}
	.service .list article .label {
		font-size: 3.2vw;
		letter-spacing: .06vw;
		line-height: 9vw;
		padding-top: 3vw;
		height: 40vw;
		width: 9vw;
	}
	.service .list article .label::after {
		bottom: calc(-6vw + .5px);
		height: 6vw;
	}
	.service .list article .num {
		font-size: 12vw;
		letter-spacing: 0.7vw;
		left: 13vw;
		top: -5vw;
	}
	.service .list article h3 {
		font-size: 5.2vw;
		letter-spacing: .4vw;
		margin-bottom: 6vw;
		margin-left: 10vw;
	}
}


/** -- works -- **/
.works {
	padding: 0 80px;
	padding-bottom: 230px;
	padding-top: 100px;
	position: relative;
}
.works::before {
	background-color: #D2ECFF;
	height: 1150px;
	width: 1350px;
	clip-path: polygon(0 0, 100% 0, 0 100%);
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	transition: ease .3s;
	z-index: -1;
}

/** hgroup **/
.works hgroup {
	align-items: flex-end;
	margin-bottom: 40px;
}
.works hgroup h2 {
	color: #25368C;
	font-family: "Roboto Condensed", serif;
	font-size: 140px;
	font-weight: 700;
	letter-spacing: 18px;
	line-height: 1.0;
}
.works hgroup p {
	font-size: 24px;
	font-weight: 700;
	line-height: 3.0;
	margin-left: 20px;
}

/** works_slider **/
.works .works_slider {
	margin-bottom: 50px;
	overflow: hidden;
	padding-bottom: 40px;
}
.works .works_slider .swiper-slide {
	position: relative;
	z-index: 1;
}
.works .works_slider .swiper-slide a {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	z-index: 1;
}
.works .works_slider .swiper-slide figure {
	position: relative;
	height: 330px;
	z-index: -1;
}
.works .works_slider .swiper-slide figure::after {
	content: '';
	display: block;
	opacity: .2;
	position: absolute;
	left: 0;
	top: 0;
	transition: ease .3s;
	height: 100%;
	width: 100%;
}
.works .works_slider .swiper-slide:hover figure::after {
	background-color: #D2ECFF;
}
.works .works_slider .swiper-slide figure img {
	object-fit: cover;
	height: 100%;
	width: 100%;
}
.works .works_slider .swiper-slide figure figcaption {
	background-color: white;
	color: #25368C;
	font-size: 24px;
	font-weight: 700;
	padding: 5px 30px;
	position: absolute;
	bottom: 0;
	left: 0;
}
.works .works_slider .swiper-slide h3 {
	font-size: 24px;
	margin-top: 20px;
}
.works .works_slider .swiper-slide p {
	color: #25368C;
	font-weight: 500;
}

.works .works_slider .swiper-pagination {
	background-color: white;
	display: flex;
	bottom: 0;
	height: 13px;
}
.works .works_slider .swiper-pagination-bullet {
	background-color: white;
	border-radius: 0;
	cursor: pointer;
	display: block;
	margin: 0;
	height: 100%;
	width: calc(100% / 6);
}
.works .works_slider .swiper-pagination-bullet-active {
	background-color: #FFD752;
}

@media screen and (max-width: 1600px) {
	.works {
		padding: 0 4vw;
		padding-bottom: 14vw;
		padding-top: 6vw;
	}
	.works::before {
		height: 60vw;
		width: 64vw;
	}

	/** hgroup **/
	.works hgroup {
		margin-bottom: 2.4vw;
	}
	.works hgroup h2 {
		font-size: 8.7vw;
		letter-spacing: 1.1vw;
	}
	.works hgroup p {
		font-size: 1.5vw;
		margin-left: 1.3vw;
	}

	/** works_slider **/
	.works .works_slider {
		margin-bottom: 4vw;
		padding-bottom: 2.6vw;
	}
	.works .works_slider .swiper-slide figure {
		height: 15vw;
	}
	.works .works_slider .swiper-slide figure figcaption {
		font-size: 1.5vw;
		padding: .2vw 2vw;
	}
	.works .works_slider .swiper-slide h3 {
		font-size: 1.5vw;
		margin-top: 1.2vw;
	}
}

@media screen and (max-width: 780px) {
	.works {
		padding: 0 5vw;
		padding-bottom: 19vw;
		padding-top: 6vw;
	}
	.works::before {
		height: 72vw;
		width: 82vw;
	}

	/** hgroup **/
	.works hgroup {
		margin-bottom: 6vw;
	}
	.works hgroup h2 {
		font-size: 12vw;
		letter-spacing: 1.6vw;
	}
	.works hgroup p {
		font-size: 3.4vw;
		line-height: 2.4;
		margin-left: 3vw;
	}

	/** works_slider **/
	.works .works_slider {
		margin-bottom: 10vw;
		padding-bottom: 6vw;
	}
	.works .works_slider .swiper-slide figure {
		height: 34vw;
	}
	.works .works_slider .swiper-slide figure figcaption {
		font-size: 3.6vw;
		padding: 1vw 4vw;
	}
	.works .works_slider .swiper-slide h3 {
		font-size: 3.6vw;
		margin-top: 3vw;
	}

	.works .works_slider .swiper-pagination {
		height: 2vw;
	}
}


/** -- recruit -- **/
.recruit {
	position: relative;
}

/** hgroup **/
.recruit hgroup {
	position: relative;
}
.recruit hgroup img {
	object-fit: cover;
	height: 830px;
	width: 100%;
}
.recruit hgroup .inner {
	position: absolute;
	left: 50%;
	top: -10px;
	transform: translateX(-50%);
	writing-mode: vertical-rl;
	height: 625px;
}
.recruit hgroup .inner::before {
	background-color: rgba(37, 54, 140, .7);
	content: '';
	display: block;
	position: absolute;
	left: 35px;
	top: -90px;
	height: 100%;
	width: 240px;
	z-index: -1;
}
.recruit hgroup h2 {
	color: white;
	font-family: "Roboto Condensed", serif;
	font-size: 140px;
	font-weight: 700;
	letter-spacing: 20px;
	line-height: 1.0;
	margin-left: 20px;
}
.recruit hgroup p {
	background-color: white;
	color: #25368C;
	font-size: 36px;
	font-weight: 700;
	margin-right: 20px;
	margin-top: 200px;
	padding: 15px 5px;
}

/** scroll_txt **/

.recruit .scroll_txt {
	margin-top: 20px;
	overflow: hidden;
	position: relative;
	z-index: 1;
}
.recruit .scroll_txt p {
	animation: recruit-scroll_txt 20s linear infinite;
	color: #FFD752;
	font-size: 2.5vw;
	font-weight: 700;
	letter-spacing: 2px;
	padding: 0 40px;
	width: 170vw;
}

/** text **/
.recruit .text {
	margin-top: 80px;
	padding-bottom: 100px;
	position: relative;
	text-align: center;
}
.recruit .text::after {
	background-color: white;
	height: 1150px;
	width: 1350px;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	transition: ease .3s;
	z-index: -1;
}
.recruit .text p {
	font-size: 24px;
	font-weight: 500;
	line-height: 2.4;
	margin-bottom: 80px;
}

.recruit .text .deco {
	position: absolute;
}
.recruit .text .deco_1 {
	left: 80px;
	top: -50px;
	width: 130px;
}
.recruit .text .deco_2 {
	left: 190px;
	top: 0;
	width: 190px;
}
.recruit .text .deco_3 {
	right: 150px;
	top: -50px;
	width: 150px;
}
.recruit .text .deco_4 {
	bottom: 0;
	left: 30px;
	width: 420px;
}
.recruit .text .deco_5 {
	bottom: -20px;
	right: 30px;
	width: 420px;
}

@media screen and (max-width: 1600px) {

	/** hgroup **/
	.recruit hgroup img {
		height: 45vw;
	}

	.recruit hgroup .inner {
		top: -.5vw;
		height: 40vw;
	}
	.recruit hgroup .inner::before {
		left: 2.2vw;
		top: -5.6vw;
		width: 15.6vw;
	}
	.recruit hgroup h2 {
		font-size: 8.6vw;
		letter-spacing: 1.3vw;
		margin-left: 1.2vw;
	}
	.recruit hgroup p {
		font-size: 2.3vw;
		margin-right: 1.2vw;
		margin-top: 12.6vw;
		padding: .9vw .3vw;
	}

	/** scroll_txt **/

	.recruit .scroll_txt {
		margin-top: 1.2vw;
	}
	.recruit .scroll_txt p {
		animation: recruit-scroll_txt 20s linear infinite;
		font-size: 2.5vw;
		letter-spacing: .12vw;
		margin-right: 6vw;
		padding: 0 2vw;
		width: 170vw;
	}

	/** text **/
	.recruit .text {
		margin-top: 6vw;
		padding-bottom: 6vw;
	}
	.recruit .text::after {
		height: 60vw;
		width: 64vw;
	}
	.recruit .text p {
		font-size: 1.5vw;
		margin-bottom: 5vw;
	}

	.recruit .text .deco_1 {
		left: 5.1vw;
		top: -3.2vw;
		width: 8.2vw;
	}
	.recruit .text .deco_2 {
		left: 12vw;
		width: 11.8vw;
	}
	.recruit .text .deco_3 {
		right: 9.6vw;
		top: -3.2vw;
		width: 9.4vw;
	}
	.recruit .text .deco_4 {
		left: 2vw;
		width: 26vw;
	}
	.recruit .text .deco_5 {
		bottom: -1.2vw;
		right: 2vw;
		width: 26vw;
	}
}

@media screen and (max-width: 780px) {

	/** hgroup **/
	.recruit hgroup img {
		height: 62vw;
		object-position: -12vw 0;
	}

	.recruit hgroup .inner {
        top: -.5vw;
        height: 50vw;
	}
	.recruit hgroup .inner::before {
        left: 4vw;
        top: -7vw;
        width: 21vw;
	}
	.recruit hgroup h2 {
        font-size: 12vw;
        letter-spacing: 1.6vw;
        margin-left: 1vw;
	}
	.recruit hgroup p {
        font-size: 3.4vw;
        margin-right: 1vw;
        margin-top: 13vw;
        padding: 2vw 1vw;
	}

	/** scroll_txt **/
	@keyframes recruit-scroll_txt {
		from {
			transform: translateX(0);
		}

		to {
			transform: translateX(-50%);
		}
	}
	.recruit .scroll_txt {
		margin: 0 -6vw;
        margin-top: 4vw;
	}
	.recruit .scroll_txt p {
        animation: recruit-scroll_txt 15s linear infinite;
        font-size: 6.4vw;
        letter-spacing: .4vw;
        margin-right: 6vw;
        padding: 0 4vw;
        width: 220vw;
	}

	/** text **/
	.recruit .text {
        margin-top: 12vw;
        padding-bottom: 10vw;
	}
	.recruit .text::after {
		height: 72vw;
		width: 82vw;
	}
	.recruit .text p {
        font-size: 3.6vw;
        margin-bottom: 8vw;
	}

	.recruit .text .deco_1 {
        left: 2vw;
        top: -8vw;
        width: 12vw;
	}
	.recruit .text .deco_2 {
        left: 2vw;
        top: 21vw;
        width: 20vw;
	}
	.recruit .text .deco_3 {
        right: 2vw;
        top: -11vw;
        width: 14vw;
	}
	.recruit .text .deco_4 {
        left: -3vw;
        width: 34vw;
	}
	.recruit .text .deco_5 {
        bottom: -1vw;
        right: -5vw;
        width: 34vw;
	}
}


/** -- co_info -- **/
.co_info {
	padding-bottom: 80px;
	padding-top: 120px;
	position: relative;
}
.co_info::before {
	background-color: #FFD752;
	content: '';
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	height: 975px;
	width: 370px;
	z-index: -1;
}

.co_info h2 {
	color: white;
	font-family: "Roboto Condensed", serif;
	font-size: 160px;
	font-weight: 700;
	letter-spacing: 25px;
	line-height: 1.0;
	margin-bottom: 60px;
}

/** inner **/
.co_info .inner {
	margin-left: 30px;
}
.co_info .inner > div {
	margin-left: 50px;
	width: calc(50% - 50px);
}
.co_info .box {
	position: relative;
}
.co_info .box figure {
	position: relative;
}
.co_info .box figure figcaption {
	position: absolute;
	left: 20px;
	top: -25px;
	writing-mode: vertical-lr;
}
.co_info .box figure figcaption h3 {
	color: #88C7EA;
	font-family: "Roboto Condensed", serif;
	font-size: 90px;
	font-weight: 700;
	letter-spacing: 10px;
	line-height: 1.0;
}
.co_info .box figure figcaption p {
	color: white;
	font-size: 24px;
	font-weight: 700;
	position: absolute;
	bottom: 14px;
}
.co_info .box .link_btn {
	margin-left: 0;
	margin-top: 30px;
}

.co_info .right {
	padding-top: 120px;
}

@media screen and (max-width: 1600px) {
	.co_info {
		padding-bottom: 5vw;
		padding-top: 7vw;
	}
	.co_info::before {
		height: 51vw;
		width: 22vw;
	}

	.co_info h2 {
		font-size: 7.4vw;
		letter-spacing: 1.6vw;
		margin-bottom: 4vw;
	}

	/** inner **/
	.co_info .inner {
		margin-left: 1.6vw;
	}
	.co_info .inner > div {
		margin-left: 3vw;
		width: calc(50% - 3vw);
	}
	.co_info .box figure figcaption {
		left: 1.3vw;
		top: -2vw;
	}
	.co_info .box figure figcaption h3 {
		font-size: 5.2vw;
		letter-spacing: .6vw;
	}
	.co_info .box figure figcaption p {
		font-size: 1.5vw;
		bottom: .8vw;
	}
	.co_info .box .link_btn {
		margin-top: 2vw;
	}

	.co_info .right {
		padding-top: 7.6vw;
	}
}

@media screen and (max-width: 780px) {
	.co_info {
        padding: 0 5vw;
        padding-bottom: 10vw;
        padding-top: 8vw;
	}
	.co_info::before {
        height: 96vw;
        width: 38vw;
	}

	.co_info h2 {
        font-size: 9.2vw;
        letter-spacing: 1.6vw;
        margin: 0 -3vw;
        margin-bottom: 8vw;
	}

	/** inner **/
	.co_info .inner {
		margin-left: 1.6vw;
	}
	.co_info .inner > div {
        margin-left: 0;
        margin-right: 5vw;
        width: 100%;
	}
	.co_info .box figure figcaption {
        left: 4vw;
        top: -3vw;
	}
	.co_info .box figure figcaption h3 {
        font-size: 9.4vw;
        letter-spacing: 1vw;
	}
	.co_info .box figure figcaption p {
        font-size: 3.4vw;
        bottom: 1vw;
	}
	.co_info .box .link_btn {
		margin-top: 6vw;
	}

	.co_info .inner .right {
        margin-left: 5vw;
        margin-right: 0;
		padding-top: 14vw;
	}
}


/** -- faq -- **/
.faq {
	background-color: #D2ECFF;
	padding-bottom: 100px;
	padding-top: 180px;
	position: relative;
	z-index: 1;
}
.faq::before,
.faq::after {
	content: '';
	display: block;
	position: absolute;
	z-index: -1;
}
.faq::before {
	background: url("../img/top/bg-deco-image-1.svg") no-repeat center / contain;
	right: 0;
	top: 20px;
	height: 400px;
	width: 545px;
}
.faq::after {
	background: url("../img/top/bg-deco-image-2.svg") no-repeat center / contain;
	bottom: 140px;
	left: 0;
	height: 310px;
	width: 430px;
}

/** inner **/
.faq .inner {
	margin: 0 auto;
	width: 1100px;
}

.faq hgroup {
	display: table;
	margin: 0 auto 50px;
	position: relative;
	text-align: center;
}
.faq hgroup h2 {
	color: #25368C;
	font-size: 100px;
	font-weight: bold;
	letter-spacing: 10px;
	line-height: 1.0;
}
.faq hgroup p {
	font-size: 18px;
	font-weight: 700;
}
.faq hgroup img {
	position: absolute;
	left: -200px;
	top: 0;
	width: 160px;
}

.faq .inner h3 {
	font-size: 17px;
	font-weight: 700;
	border-bottom: solid 1px #B3B3B3;
}

.faq .inner dl {
	background-color: white;
	margin-bottom: 40px;
}
.faq .inner dt,
.faq .inner dd {
	position: relative;
}
.faq .inner dt {
	background-color: #25368C;
	color: white;
	font-size: 20px;
	padding: 20px 40px;
	padding-left: 80px;
}
.faq .inner dd {
	padding: 20px 40px;
	padding-left: 80px;
}
.faq .inner dt::before,
.faq .inner dd::before {
	display: block;
	font-family: "BebasKai";
	font-size: 53px;
	font-weight: 400;
	line-height: 1.0;
	position: absolute;
	left: 30px;
	top: 10px;
}
.faq .inner dt::before {
	content: 'Q';
}
.faq .inner dd::before {
	content: 'A';
	color: #FFD752;
	top: 15px;
}

.faq .link_btn {
	margin-top: 60px;
}

@media screen and (max-width: 1600px) {
	.faq {
		padding-bottom: 6.4vw;
		padding-top: 11.6vw;
	}
	.faq::before {
		top: 1.2vw;
		height: 24vw;
		width: 32vw;
	}
	.faq::after {
		bottom: 1vw;
		height: 20vw;
		width: 27vw;
	}

	/** inner **/
	.faq .inner {
		margin: 0 5vw;
		width: auto;
	}

	.faq hgroup {
		margin-bottom: 3.2vw;
	}
	.faq hgroup h2 {
		font-size: 6.4vw;
		letter-spacing: .6vw;
	}
	.faq hgroup p {
		font-size: 1.1vw;
	}
	.faq hgroup img {
		left: -12.8vw;
		width: 10.2vw;
	}

	.faq .inner h3 {
		font-size: 1.08vw;
		margin-bottom: 1.2vw;
	}

	.faq .inner dl {
		margin-bottom: 2.6vw;
	}
	.faq .inner dt {
		font-size: 1.28vw;
		padding: 1.2vw 2.6vw;
		padding-left: 5vw;
	}
	.faq .inner dd {
		padding: 1.2vw 2.6vw;
		padding-left: 5vw;
	}
	.faq .inner dt::before,
	.faq .inner dd::before {
		font-size: 3.4vw;
		left: 1.8vw;
		top: .6vw;
	}
	.faq .inner dd::before {
		top: 1vw;
	}

	.faq .link_btn {
		margin-top: 4vw;
	}
}

@media screen and (max-width: 780px) {
	.faq {
		overflow-x: hidden;
		padding-bottom: 10vw;
		padding-top: 14vw;
	}
	.faq::before {
        right: -10vw;
        top: 1vw;
        height: 34vw;
        width: 46vw;
	}
	.faq::after {
        bottom: 0;
        left: -9vw;
        height: 30vw;
        width: 40vw;
	}

	/** inner **/
	.faq .inner {
		margin: 0 5vw;
		width: auto;
	}

	.faq hgroup {
		margin-bottom: 6vw;
	}
	.faq hgroup h2 {
		font-size: 12vw;
		letter-spacing: 1.2vw;
	}
	.faq hgroup p {
		font-size: 3.4vw;
	}
	.faq hgroup img {
		left: -12.8vw;
		width: 10.2vw;
	}

	.faq .inner h3 {
		font-size: 3.6vw;
		margin-bottom: 3vw;
	}

	.faq .inner dl {
		margin-bottom: 6vw;
	}
	.faq .inner dt {
		font-size: 3.6vw;
        padding: 3vw 2vw;
        padding-left: 10vw;
	}
	.faq .inner dd {
        padding: 3vw 2vw;
        padding-left: 10vw;
	}
	.faq .inner dt::before,
	.faq .inner dd::before {
        font-size: 6.4vw;
        left: 4vw;
        top: 3vw;
	}

	.faq .link_btn {
		margin-top: 8vw;
	}
}


