@charset "utf-8";

/* 人材育成・働く環境
============================ */

.training h2::before {
	content: "TRAINING";
	left: -0.5em !important;
	}
	@media screen and (min-width:1025px) {
	.training h2::before {
		left: -0.4em !important;
	}
}

#contentsArea {
	text-align: left;
	overflow: hidden;
	margin-bottom: 37px;
	}
	@media screen and (min-width:1025px) {
	#contentsArea {
		margin-bottom: 126px;
	}
}

.wrap2 {
	width: 84%;
	margin: 0 auto;
	}
	@media screen and (min-width:1025px) {
	.wrap2 {
		width: 100%;
	}
}

.welfareArea h2::before {
	content: "WELFARE";
	left: -0.5em !important;
	}
	@media screen and (min-width:1025px) {
	.welfareArea h2::before {
		left: -0.3em !important;
	}
}
.diversityArea h2::before {
	content: "DIVERSITY";
	left: -0.5em !important;
	}
	@media screen and (min-width:1025px) {
	.diversityArea h2::before {
		left: -0.25em !important;
	}
}

.welfareArea,
.diversityArea {
	position: relative;
	padding-top: 120px;
	}
	@media screen and (min-width:1025px) {
	.welfareArea,
	.diversityArea {
		padding-top: 250px;
	}
}

h4 {
	clear: both;
	margin: 20px 0 16px;
	}
	@media screen and (min-width:1025px) {
	h4 {
		margin: 40px 0 16px;
	}
}

.wrap2 p {
	margin-bottom: 1em;
}

.flex {
	display: flex;
	width: 100%;
	max-width: 100%;
	text-align: left;
	margin-top: 0;
}

.picR,
.boxTxt {
	flex-basis: 100%;
	position: relative;
}
.picR {
	margin-bottom: 16px;
}
.picL {
	flex-basis: 42%;
	margin-top: 50px;
}
@media screen and (min-width:1025px) {
	.picR,
	.boxTxt {
		flex-basis: 50%;
		max-width: 50%;
	}
	.picR {
		margin-bottom: 0;
	}
	.picR img {
		display: block;
		width: 90%;
		position: absolute;
		top: 0;
		right: -12%;
	}
	.boxTxt .boxTxtWrap {
		padding-left: 16%;
		min-width: 100%;
	}
}


/* 人材育成
------------------------------------------------- */
.worldmap {
	position: relative;
}
.worldmap::before {
	display: block;
	content: "";
	position: absolute;
	top: -30px;
	left: 0;
	right: 0;
	margin: 0 auto;
	width: 100%;
	height: 0;
	padding-top: 48.8%;
	background: url("../training/images/worldmap.png") 0 0 no-repeat;
	background-size: 100% auto;
	z-index: -1;
}
.worldmap .txtC {
	text-align: center;
	font-size: 1.5rem;
	margin: 30px 0 40px;
	}
	@media screen and (min-width:1025px) {
	.worldmap::before {
		top: -200px;
		width: 85%;
		height: 0;
	}
	.worldmap .txtC {
		font-size: 2.2rem;
		margin: 60px 0 120px;
	}
}

@media screen and (min-width:1025px) {
	.trainingArea .flex .boxTxt {
		order: 1;
	}
	.trainingArea .flex .picR {
		order: 2;
	}
}
.trainingArea ul li {
	margin-left: 25px;
	list-style: disc;
}
.trainingArea .pic img {
	margin-top: 20px;
	}
	@media screen and (min-width:1025px) {
	.trainingArea .pic img {
		max-width: 1200px;
		margin-top: 40px;
	}
}
.trainingArea .step ol {
	width: 80%;
	margin: 0 auto;
}
.trainingArea .step ol li {
	margin-bottom: 45px;
	position: relative;
}
.trainingArea .step ol li em {
	display: block;
	text-align: center;
	width: 100%;
	background: #1e7bc0;
	color: #fff;
	font-weight: 500;
	line-height: 1.6;
	padding: 12px;
	position: relative;
}
.trainingArea .step ol li em::before,
.trainingArea .step ol li::after,
.trainingArea .step ol li:last-child::before{
	display: block;
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	margin: 0 auto;
	z-index: -1;
}
.trainingArea .step ol li em::before {
	top: 100%;
	width: 16px;
	height: 30px;
	background: #eee;
}
.trainingArea .step ol li::after {
	top: -26px;
	width: 0;
	height: 0;
	border: 16px solid transparent;
	border-top: 25px solid #eee;
}
.trainingArea .step ol li:last-child::before {
	top: auto;
	bottom: -60px;
	width: 0;
	height: 0;
	border: 16px solid transparent;
	border-top: 25px solid #eee;
}
.trainingArea .step ol li:first-child::after {
	display: none;
}
.trainingArea .step ol li span {
	display: block;
	position: absolute;
	bottom: -25px;
	right: 10px;
	font-size: 1.3rem;
	}
	@media screen and (min-width:1025px) {
	.trainingArea .step ol {
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: stretch;
	}
	.trainingArea .step ol li {
		flex-basis: calc((100% - 250px) / 5);
		margin-right: 50px;
		text-align: center;
		display: flex;
		align-items: stretch;
		position: relative;
	}
	.trainingArea .step ol li em {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		background: #1e7bc0;
		color: #fff;
		font-weight: 500;
		line-height: 1.6;
		padding: 16px 12px;
		display: flex;
		position: relative;
	}
	.trainingArea .step ol li em::before,
	.trainingArea .step ol li::after {
		right: auto;
		left: auto;
		top: 0;
		bottom: 0;
		margin: auto 0;
	}
	.trainingArea .step ol li em::before {
		right: -24px;
		width: 50px;
		height: 16px;
		background: #eee;
	}
	.trainingArea .step ol li::after {
		right: auto;
		left: -26px;
		width: 0;
		height: 0;
		border: 16px solid transparent;
		border-left: 25px solid #eee;
	}
	.trainingArea .step ol li:last-child::before {
		right: -60px;
		left: auto;
		bottom: 0;
		top: 0;
		width: 0;
		height: 0;
		margin: auto 0;
		border: 16px solid transparent;
		border-left: 25px solid #eee;
		z-index: 5;
	}
	.trainingArea .step ol li span {
		display: block;
		position: absolute;
		bottom: -35px;
		right: 8px;
		font-size: 1.5rem;
	}
}

/* 福利厚生
------------------------------------------------- */
.boxTxtWrap p {
	margin-bottom: 1.5em;
}
.welfareArea .boxTxt {
	padding-right: 8%;
}
.welfareArea dl {
	display: flex;
	flex-wrap: wrap;
}
.welfareArea dl dt {
	flex-basis: 9em;
	max-width: 9em;
	text-align: right;
	padding-right: 0.5em;
	}
	@media screen and (min-width:1025px) {
	.welfareArea dl dt {
		flex-basis: 12em;
		max-width: 12em;
	}
}
.welfareArea dl dd {
	flex-basis: calc(100% - 9em);
	max-width: calc(100% - 9em);
	text-indent: -1.5em;
	padding-left: 1.5em;
	margin-bottom: 0.5em;
	}
	@media screen and (min-width:1025px) {
	.welfareArea dl dd {
		flex-basis: calc(100% - 12em);
		max-width: calc(100% - 12em);
		margin-bottom: 0;
	}
}
.welfareArea dl dd::before {
	content: "：";
	padding-right: 0.5em;
}
.welfareArea h4 + p {
	margin-bottom: 0;
}

/* ダイバーシティへの取組み
------------------------------------------------- */
.diversityArea .flex {
	display: flex;
	flex-direction: column;
}
.diversityArea .flex dl {
	flex-basis: 100%;
	display: flex;
	flex-direction: column;
	margin-top: 30px;
	border: 1px solid #ddd;
	padding: 10px 24px 20px;
}
.diversityArea .flex dl:first-of-type {
	margin-top: 0;
	}
	@media screen and (min-width:1025px) {
	.diversityArea .flex {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
	}
	.diversityArea .flex dl {
		flex-basis: 22%;
		max-width: 22%;
		display: flex;
		flex-direction: column;
		margin-top: 30px;
		border: 1px solid #ddd;
		padding: 10px 24px 20px;
	}
	.diversityArea .flex dl:first-of-type {
		margin-top: 0;
	}
	.diversityArea .flex dl {
		margin-top: 0;
	}
}
.diversityArea .flex dt {
	font-size: 1.7rem;
	line-height: 1.6;
	margin-bottom: 0.5em;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	order: 2;
	}
	@media screen and (min-width:1025px) {
.diversityArea .flex dt {
	font-size: 1.7rem;
	line-height: 1.6;
	min-height: 70px;
	}
}
.diversityArea dl dd.logo {
	order: 1;
	text-align: center;
}
.diversityArea dl dd.logo img {
	width: 120px;
	height: auto;
	}
	@media screen and (min-width:1025px) {
	.diversityArea dl dd.logo img {
		width: 160px;
	}
}
.diversityArea .flex dd:nth-of-type(2) {
	font-size: 1.5rem;
	line-height: 1.8;
	order: 3;
}

/* 活躍する女性バナー */
.diversityArea .bnrArea {
	width: 100%;
	margin: 0 auto;
}
.diversityArea .bnrArea a {
	text-decoration: none !important;
	position: relative;
	display: block;
}
.diversityArea .bnrArea dl {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	border: 1px solid #faf6f6;
	background: #fbf8f8;
}
.diversityArea .bnrArea dl dt {
	flex-basis: 100%;
	overflow: hidden;
}
.diversityArea .bnrArea dl dd {
	flex-basis: 100%;
	padding: 16px 20px 40px;
	font-size: 1.5rem;
}
.diversityArea .bnrArea dl dd span {
	display: block;
	font-size: 1.3rem;
	margin-top: 16px;
}
.sp .diversityArea .bnrArea .btn {
	opacity: 0;
	position: absolute;
	right: 70px;
	bottom: -23px;
	width: 220px;
	margin-bottom: 0;
	padding-right: 20px;
}
.sp .diversityArea .bnrArea .btn.is-active {
	right:10%;
	opacity: 1;
	}
	@media screen and (min-width:1025px) {
	.diversityArea .bnrArea {
		width: 100%;
	}
	.diversityArea .bnrArea dl {
		display: flex;
		align-items: center;
	}
	.diversityArea .bnrArea dl dt {
		flex-basis: 25%;
		max-width: 25%;
		overflow: hidden;
	}
	.diversityArea .bnrArea dl dd {
		flex-basis: 75%;
		max-width: 75%;
		padding: 0 50px;
		font-size: 1.9rem;
	}
	.diversityArea .bnrArea dl dd span {
		display: block;
		font-size: 1.5rem;
		margin-top: 16px;
	}
	.diversityArea .bnrArea a dl dt img {
		transition: all .3s ease-out;
	}
	.diversityArea .bnrArea a:hover dl dt img {
		-webkit-transform: scale(1.1);
		transform: scale(1.1);
	}
	.pc .diversityArea .bnrArea .btn {
		opacity: 0;
		position: absolute;
		right: 130px;
		bottom: -34px;
		width: 360px;
		padding-right: 0;
		margin-bottom: 0;
		transition: 0.8s;
	}
	.pc .diversityArea .bnrArea .btn.is-active {
		opacity: 1;
		right:80px;
	}
}
