@charset "UTF-8";

/*===============*/
/*! index */
/*===============*/
/*! visual */
main.index .visual {
	position: relative;
	background-color: #59606A;
}

main.index .visual div::before {
	background: linear-gradient(-90deg, rgba(89, 96, 106, 0), rgba(89, 96, 106, 1));
}

main.index .visual div::after {
	background: linear-gradient(90deg, rgba(89, 96, 106, 0), rgba(89, 96, 106, 1));
}

/*! detail */
main.index .detail {
	position: relative;
	padding: 100px 0 180px;
	background-color: #EFEFEF;
}

main.index .detail>div {
	position: relative;
	z-index: 10;
	margin: 0 auto;
	max-width: 1000px;
	width: 90%;
}

main.index .detail ul li {
	margin-top: 80px;
}

main.index .detail ul li div {
	position: relative;
	margin-bottom: 40px;
}

main.index .detail ul li h2 {
	position: absolute;
	bottom: 25%;
	left: 0;
	padding: 0 0 20px 5em;
	border-bottom: 2px solid #FFF;
	color: #FFF;
}

main.index .detail ul li:first-child {
	margin-top: 0;
}

main.index .detail ul li:nth-child(2n-1) h2 {
	right: 0;
	left: auto;
	padding: 0 5em 20px 0;
}

main.index .detail ul li h2 strong {
	display: block;
	padding-left: .05em;
	letter-spacing: .05em;
	font-weight: 700;
	font-size: 240%;
	font-family: urw-din, sans-serif;
	line-height: 1.6;
}

main.index .detail ul li h2 small {
	display: block;
	padding-left: .05em;
	letter-spacing: .05em;
	font-weight: 700;
	font-size: 90%;
	line-height: 1.2;
}

a.more {
	width: 15em;
}

@media screen and (max-width:768px) {

	/*! detail */
	main.index .detail {
		padding: 3em 0;
	}

	main.index .detail>div {
		max-width: none;
	}

	main.index .detail ul li {
		margin-top: 2em;
	}

	main.index .detail ul li div {
		margin-bottom: 1em;
	}

	main.index .detail ul li h2 {
		bottom: 18%;
		padding: 0 0 .75em 2em;
	}

	main.index .detail ul li:first-child {
		margin-top: 0;
	}

	main.index .detail ul li:nth-child(2n-1) h2 {
		padding: 0 2em .75em 0;
	}

	main.index .detail ul li h2 strong {
		margin-bottom: .25em;
		font-size: 180%;
		line-height: 1;
	}

	main.index .detail ul li h2 small {
		font-size: 80%;
	}

	a.more {
		width: 10em;
	}
}

/*===============*/
/*! it-solution */
/*===============*/
/*! it-solution */
main.it-solution .visual {
	position: relative;
	background-color: #23365E;
}

main.it-solution .visual div::before {
	background: linear-gradient(-90deg, rgba(35, 54, 94, 0), rgba(35, 54, 94, 1));
}

main.it-solution .visual div::after {
	background: linear-gradient(90deg, rgba(35, 54, 94, 0), rgba(35, 54, 94, 1));
}

/*===============*/
/*! engineering */
/*===============*/
/*! engineering */
main.engineering .visual {
	position: relative;
	background-color: #183461;
}

main.engineering .visual div::before {
	background: linear-gradient(-90deg, rgba(24, 52, 97, 0), rgba(24, 52, 97, 1));
}

main.engineering .visual div::after {
	background: linear-gradient(90deg, rgba(24, 52, 97, 0), rgba(24, 52, 97, 1));
}

/*===============*/
/*! it_engineer */
/*===============*/
/*! detail */
main.it_engineer .detail {
	position: relative;
	padding: 100px 0 100px;
	background-color: #EFEFEF;
}

main.it_engineer .detail>div {
	position: relative;
	z-index: 10;
	margin: 0 auto;
	max-width: 1000px;
	width: 90%;
}

main.it_engineer .detail .box {
	position: relative;
	margin-bottom: 50px;
	padding: 80px;
	background-color: #FFF;
}

main.it_engineer .detail .box h2 {
	position: absolute;
	top: -1em;
	left: 50%;
	padding-left: .1em;
	color: #0e283a;
	text-align: center;
	white-space: nowrap;
	letter-spacing: .1em;
	font-weight: 700;
	font-size: 180%;
	line-height: 2;
	transform: translateX(-50%);
}

main.it_engineer .detail .box h2::first-letter {
	color: #b62b00;
}

main.it_engineer .detail .box h2::before {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 100%;
	height: 4px;
	background-color: #0e283a;
	content: "";
	transform: translateX(-50%);
}

main.it_engineer .detail .box>div>div {
	display: table;
	width: 100%;
}

main.it_engineer .detail .box>div>div>* {
	display: table-cell;
	vertical-align: middle;
}

main.it_engineer .detail .box .txt {
	padding-right: 10px;
	line-height: 2;
}

main.it_engineer .detail .box .txt h3 {
	margin-bottom: 20px;
	color: #0e283a;
	font-weight: 700;
	font-size: 120%;
	line-height: 1.6;
}

main.it_engineer .detail .box .txt h3 span {
	display: inline-block;
}

main.it_engineer .detail .box .txt li {
	position: relative;
	display: block;
	padding: 5px 0 5px 1.25em;
	line-height: 1.6;
}

main.it_engineer .detail .box .txt li em {
	font-weight: 700;
}

main.it_engineer .detail .box .txt li span {
	display: inline-block;
}

main.it_engineer .detail .box .txt li::before {
	position: absolute;
	left: 0;
	margin-right: .25em;
	color: #0e283a;
	content: "■";
}

main.it_engineer .detail .box .img {
	width: 200px;
}

main.it_engineer .interview_link {
	padding-top: 50px;
}

main.it_engineer .interview_link h2 {
	position: relative;
	margin-bottom: 65px;
	padding-left: .1em;
	color: #0e283a;
	text-align: center;
	letter-spacing: .1em;
	font-weight: 700;
	font-size: 160%;
	line-height: 3;
}

main.it_engineer .interview_link h2::before {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 2.5em;
	height: 2px;
	background-color: #0e283a;
	content: "";
	transform: translateX(-50%);
}

main.it_engineer .interview_link h2::first-letter {
	color: #b62b00;
}

main.it_engineer .interview_link ul {
	display: flex;
    flex-wrap: wrap;
}

main.it_engineer .interview_link ul::after {
	display: block;
	clear: both;
	content: "";
}

main.it_engineer .interview_link ul li {
	position: relative;
	/*float: left;*/
	margin-left: 30px;
	padding: 0 20px 50px 0;
	width: calc(33.3333% - 20px);
}

main.it_engineer .interview_link ul li:nth-child(3n+1) {
	margin-left: 0;
}

main.it_engineer .interview_link ul li:nth-child(n+4) {
	margin-top: 30px;
}

main.it_engineer .interview_link img {
	display: block;
}

main.it_engineer .interview_link a {
	position: absolute;
	right: 0;
	bottom: 0;
	width: calc(100% - 20px);
	height: 100px;
	background-color: #FFF;
}

main.it_engineer .interview_link a::before,
main.it_engineer .interview_link a::after {
	position: absolute;
	top: 50%;
	right: 30px;
	width: 8px;
	height: 8px;
	border-top: 3px solid #b62b00;
	border-right: 3px solid #b62b00;
	content: "";
	transition: right .2s .2s, opacity .2s .2s;
	transform: translateY(-50%) rotate(45deg);
}

main.it_engineer .interview_link a::before {
	opacity: 0;
}

body.dv_pc main.it_engineer .interview_link a:hover::before {
	right: 20px;
	opacity: 1;
}

main.it_engineer .interview_link a span {
	position: absolute;
	top: 50%;
	padding: 0 30px 0;
	line-height: 1.4;
	transform: translateY(-50%);
}

main.it_engineer .interview_link a small {
	display: block;
	font-size: 70%;
}

main.it_engineer .interview_link a strong {
	display: block;
	color: #0e283a;
	letter-spacing: .1em;
	font-weight: 700;
	font-size: 140%;
}

@media screen and (max-width:768px) {

	/*! detail */
	main.it_engineer .detail {
		padding: 4em 0 3em;
	}

	main.it_engineer .detail>div {
		max-width: none;
	}

	main.it_engineer .detail .box {
		margin-bottom: 2em;
		padding: 3.5em 2em 1.5em;
	}

	main.it_engineer .detail .box.pls {
		padding-top: 5.5em;
	}

	main.it_engineer .detail .box h2 {
		top: -.7em;
		font-size: 140%;
		line-height: 1.4;
	}

	main.it_engineer .detail .box h2::before {
		bottom: -.25em;
		height: 2px;
	}

	main.it_engineer .detail .box>div>div {
		display: block;
	}

	main.it_engineer .detail .box>div>div>* {
		display: block;
	}

	main.it_engineer .detail .box .txt {
		padding-right: 10px;
		line-height: 2;
	}

	main.it_engineer .detail .box .txt h3 {
		margin-bottom: 1em;
		line-height: 1.4;
	}

	main.it_engineer .detail .box .txt h3 span {
		display: inline;
	}

	main.it_engineer .detail .box .txt li {
		padding: .25em 0 .25em 1.25em;
	}

	main.it_engineer .detail .box .txt li span {
		display: inline;
	}

	main.it_engineer .detail .box .img {
		margin: 1em auto 0;
		width: 50%;
	}

	/*main.it_engineer .interview_link {
		padding-top: 0;
	}*/

	main.it_engineer .interview_link h2 {
		margin-bottom: 1.5em;
		font-size: 140%;
	}

	main.it_engineer .interview_link ul::after {
		display: block;
		clear: both;
		content: "";
	}

	main.it_engineer .interview_link ul li {
		margin-left: 1em;
		padding: 0 .5em 3em 0;
		width: calc(50% - .5em);
	}

	main.it_engineer .interview_link ul li:nth-child(3n+1) {
		margin-left: 1em;
	}

	main.it_engineer .interview_link ul li:nth-child(2n+1) {
		margin-left: 0;
	}

	main.it_engineer .interview_link ul li:nth-child(n+4) {
		margin-top: 0;
	}

	main.it_engineer .interview_link ul li:nth-child(n+3) {
		margin-top: 1em;
	}

	main.it_engineer .interview_link a {
		width: calc(100% - .5em);
		height: 4.5em;
	}

	main.it_engineer .interview_link a::before,
	main.it_engineer .interview_link a::after {
		right: 1em;
		width: .4em;
		height: .4em;
		border-top: 2px solid #E50012;
		border-right: 2px solid #E50012;
	}

	main.it_engineer .interview_link a::after {
		display: none;
	}

	main.it_engineer .interview_link a span {
		padding: 0 1em;
	}

	main.it_engineer .interview_link a strong {
		font-size: 110%;
	}
}

/*===============*/
/*! validation-service */
/*===============*/
main.validation-service .visual {
	position: relative;
	background-color: #121D1C;
}

main.validation-service .visual div::before {
	background: linear-gradient(-90deg, rgba(18, 29, 28, 0), rgba(18, 29, 28, 1));
}

main.validation-service .visual div::after {
	background: linear-gradient(90deg, rgba(18, 29, 28, 0), rgba(18, 29, 28, 1));
}

/*! detail */
main.validation-service .detail {
	position: relative;
	padding: 100px 0 100px;
	background-color: #EFEFEF;
}

main.validation-service .detail>div {
	position: relative;
	z-index: 10;
	margin: 0 auto;
	max-width: 1000px;
	width: 90%;
}

main.validation-service .detail .box {
	position: relative;
	margin-bottom: 90px;
	padding: 80px;
	background-color: #FFF;
}

main.validation-service .detail .box h2 {
	position: absolute;
	top: -1em;
	left: 50%;
	padding-left: .1em;
	color: #0e283a;
	text-align: center;
	white-space: nowrap;
	letter-spacing: .1em;
	font-weight: 700;
	font-size: 180%;
	line-height: 2;
	transform: translateX(-50%);
}

main.validation-service .detail .box h2::first-letter {
	color: #b62b00;
}

main.validation-service .detail .box h2::before {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 100%;
	height: 4px;
	background-color: #0e283a;
	content: "";
	transform: translateX(-50%);
}

/* box_about */
main.validation-service .detail .box_about h2+p {
	margin-bottom: 50px;
	text-align: center;
	line-height: 2.2;
}

main.validation-service .detail .box_about h3 {
	padding: 15px 0;
	border: dashed #0e283a;
	border-width: 1px 0;
	color: #0e283a;
	text-align: center;
	font-weight: 700;
	font-size: 140%;
	line-height: 1.2;
}

main.validation-service .detail .box_about ul {
	display: block;
	margin: 30px 0 50px;
	text-align: center;
}

main.validation-service .detail .box_about ul li {
	display: inline-block;
	margin: 10px;
}

main.validation-service .detail .box_about ul li img {
	max-width: 120px;
}

main.validation-service .detail .box_about ul li span {
	display: block;
	margin-top: 10px;
	text-align: center;
	white-space: nowrap;
	font-weight: 700;
	line-height: 1.2;
}

main.validation-service .detail .box_about figure {
	margin: 50px auto 0;
	max-width: 707px;
	text-align: center;
}

/* box_strengths */
main.validation-service .detail .box_strengths .col {
	position: relative;
}

main.validation-service .detail .box_strengths .col::after {
	display: block;
	clear: both;
	content: "";
}

main.validation-service .detail .box_strengths .col div {
	position: absolute;
	top: 0;
	width: calc(100% - 500px);
}

main.validation-service .detail .box_strengths .col div p {
	position: absolute;
	top: 50%;
	width: 100%;
	line-height: 2.2;
	transform: translateY(-50%);
	text-justify: inter-ideograph;
}

main.validation-service .detail .box_strengths .col div p a {
	position: relative;
	display: block;
	margin: 40px auto 0;
	padding: 18px .5em 18px .05em;
	max-width: 100%;
	width: 250px;
	background-color: #0e283a;
	color: #FFF;
	text-align: center;
	letter-spacing: .05em;
	font-size: 95%;
	line-height: 1.2;
}

main.validation-service .detail .box_strengths .col div p a::before {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	border: 1px solid #0e283a;
	content: "";
	transition-delay: 0s;
	transition-timing-function: linear;
	transition-duration: .05s;
	transition-property: top, right, bottom, left;
}

body.dv_pc main.validation-service .detail .box_strengths .col div p a:hover::before {
	top: -3px;
	right: -3px;
	bottom: -3px;
	left: -3px;
	transition-delay: .2s;
}

main.validation-service .detail .box_strengths .col div p a::after {
	position: absolute;
	top: 50%;
	right: 1.5em;
	width: .4em;
	height: .4em;
	border: solid #FFF;
	border-width: 2px 2px 0 0;
	content: "";
	transform: translateY(-50%) rotate(45deg);
}

main.validation-service .detail .box_strengths .col figure {
	width: 456px;
}

main.validation-service .detail .box_strengths .col1 {
	margin-bottom: 50px;
	padding-bottom: 50px;
	border-bottom: 1px dashed #1F2A66;
}

main.validation-service .detail .box_strengths .col1 div {
	right: 0;
	bottom: 50px;
}

main.validation-service .detail .box_strengths .col1 figure {
	float: left;
}

main.validation-service .detail .box_strengths .col2 div {
	bottom: 0;
	left: 0;
}

main.validation-service .detail .box_strengths .col2 figure {
	float: right;
}

/* box_aims */
main.validation-service .detail .box_aims {
	margin-bottom: 0;
}

main.validation-service .detail .box_aims h2+p {
	margin-bottom: 40px;
	text-align: center;
	line-height: 2.2;
}

main.validation-service .detail .box_aims ul {
	display: block;
}

main.validation-service .detail .box_aims ul::after {
	display: block;
	clear: both;
	content: "";
}

main.validation-service .detail .box_aims ul li {
	position: relative;
	float: left;
	margin-top: 40px;
	padding: 50px 0 30px;
	width: calc(50% - 20px);
	background: #F6F6F6;
}

main.validation-service .detail .box_aims ul li:nth-child(2n - 1) {
	margin-right: 40px;
}

main.validation-service .detail .box_aims ul li h3 {
	position: absolute;
	top: -.4em;
	padding-left: .05em;
	width: 100%;
	color: #0e283a;
	text-align: center;
	letter-spacing: .05em;
	font-weight: 700;
	font-size: 260%;
	font-family: urw-din, sans-serif;
	line-height: 1;
}

main.validation-service .detail .box_aims ul li img {
	display: block;
	margin: 0 auto;
	width: 240px;
}

main.validation-service .detail .box_aims ul li p {
	position: relative;
	margin: 0 auto;
	width: 95%;
	height: 4em;
}

main.validation-service .detail .box_aims ul li p span {
	position: absolute;
	top: 50%;
	width: 100%;
	transform: translateY(-50%);
}

main.validation-service .detail .box_aims ul li p span>* {
	display: block;
	padding: 2px 0;
	text-align: center;
}

main.validation-service .detail .box_aims ul li p strong {
	color: #1F2A66;
	font-weight: 700;
	font-size: 120%;
	line-height: 1.4;
}

main.validation-service .detail .box_aims ul li p small {
	font-size: 95%;
	line-height: 1.6;
}

@media screen and (max-width:768px) {

	/*! detail */
	main.validation-service .detail {
		position: relative;
		padding: 4em 0 3em;
		background-color: #EFEFEF;
	}

	main.validation-service .detail>div {
		max-width: none;
	}

	main.validation-service .detail .box {
		margin-bottom: 3em;
		padding: 3.5em 2em 3em;
	}

	main.validation-service .detail .box h2 {
		top: -.7em;
		font-size: 140%;
		line-height: 1.4;
	}

	main.validation-service .detail .box h2::before {
		bottom: -.25em;
		height: 2px;
	}

	/* box_about */
	main.validation-service .detail .box_about h2+p {
		margin-bottom: 2em;
		text-align: left;
		line-height: 2;
	}

	main.validation-service .detail .box_about h3 {
		padding: .5em 0;
		font-size: 120%;
	}

	main.validation-service .detail .box_about ul {
		margin: 1em 0 2em;
	}

	main.validation-service .detail .box_about ul li {
		margin: .5em;
		width: 40%;
	}

	main.validation-service .detail .box_about ul li img {
		max-width: none;
	}

	main.validation-service .detail .box_about ul li span {
		margin-top: .5em;
	}

	main.validation-service .detail .box_about figure {
		margin: 2em auto 0;
		max-width: none;
	}

	/* box_strengths */
	main.validation-service .detail .box_strengths {
		padding-top: 5.5em;
	}

	main.validation-service .detail .box_strengths .col div {
		position: relative;
		top: auto;
		width: 100%;
	}

	main.validation-service .detail .box_strengths .col div p {
		position: relative;
		top: auto;
		width: 100%;
		line-height: 2;
		transform: translateY(0);
	}

	main.validation-service .detail .box_strengths .col div p a {
		margin: 2em auto 0;
		padding: 1em .5em 1.1em .05em;
		width: 20em;
	}

	main.validation-service .detail .box_strengths .col figure {
		margin-bottom: 1em;
		width: 100%;
	}

	main.validation-service .detail .box_strengths .col1 {
		margin-bottom: 3em;
		padding-bottom: 3em;
	}

	main.validation-service .detail .box_strengths .col1 div {
		right: auto;
		bottom: auto;
	}

	main.validation-service .detail .box_strengths .col1 figure {
		float: none;
	}

	main.validation-service .detail .box_strengths .col2 div {
		bottom: auto;
		left: auto;
	}

	main.validation-service .detail .box_strengths .col2 figure {
		float: none;
		margin-bottom: 1.5em;
	}


	/* box_aims */
	main.validation-service .detail .box_aims {
		margin-bottom: 0;
		padding-top: 5.5em;
	}

	main.validation-service .detail .box_aims h2+p {
		margin-bottom: 0;
		text-align: left;
		line-height: 2;
	}

	main.validation-service .detail .box_aims ul li {
		float: none;
		margin-top: 2em;
		padding: 2em 0 2em;
		width: 100%;
	}

	main.validation-service .detail .box_aims ul li:nth-child(2n - 1) {
		margin-right: 0;
	}

	main.validation-service .detail .box_aims ul li h3 {
		font-size: 200%;
	}

	main.validation-service .detail .box_aims ul li img {
		width: 75%;
	}

	main.validation-service .detail .box_aims ul li p {
		height: auto;
	}

	main.validation-service .detail .box_aims ul li p span {
		position: static;
		top: auto;
		transform: translateY(0);
	}

	main.validation-service .detail .box_aims ul li p span>* {
		padding: .25em 0;
	}

	main.validation-service .detail .box_aims ul li p small {
		font-size: 90%;
	}
}