@charset "utf-8";

.keyVisual_content .innerBox .figure{
	background: url("../img/keyvisual.jpg") no-repeat center top / cover;
}

.keyVisual_content .keyVisual_title span::before{
	background: url("../img/p_section_blue.png") no-repeat center top / contain;
	max-width: 164px;
	width: 100%;
	aspect-ratio: 328/175;
}


@media screen and (max-width: 1024px){
	.keyVisual_content .keyVisual_title span{
		margin-left: 20px;
	}
	.keyVisual_content .keyVisual_title span::before{
		left: -0.2em;
	}
}
@media screen and (max-width: 768px){
	.keyVisual_content .keyVisual_title span{
		margin-left: 7.8125vw;
	}
	.keyVisual_content .keyVisual_title span::before{
		left: -5.599vw;
		width: 24%;
	}
}


/* ------------------------------------------------------------------------ */

/*  部署一覧

/* ------------------------------------------------------------------------ */

#sec_works{
	background: #66ccc5;
	border-bottom: solid 1px #000;
	padding: 60px 0 100px;
	position: relative;
	z-index: 10;
	overflow: hidden;
}
	#sec_works::before{
		content: "";
		display: block;
		background: url("../img/img_deco.svg") no-repeat center;
		width: 1543px;
		height: 491px;
		position: absolute;
		top: -227px;
		left: 50%;
		transform: translateX(-50%);
	}

#sec_works .lead{
	font-size: 18px;
	line-height: 1.667;
}

.list-person{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: auto auto;
	gap: 50px 40px;
	margin-top: 60px;
}
	.list-person li{
		display: contents;
	}
		.list-person a{
			display: grid;
			grid-template-rows: subgrid;
			grid-row: span 2;
			gap: 0;
			color: #000;
			width: 100%;
			max-width: 320px;
			margin: 0 auto;
		}

.list-person li .figure{
	display: block;
	background-position: center;
	background-size: cover;
	max-width: 320px;
	width: 100%;
	aspect-ratio: 1/1;
	border-radius: 10px;
	overflow: hidden;
	border: solid 1px #000;
}
.list-person li.list-person__soumu .figure{
	background-image: url("../img/img_work_01.webp");
}
.list-person li.list-person__seikatsu .figure{
	background-image: url("../img/img_work_02.webp");
}
.list-person li.list-person__chiiki .figure{
	background-image: url("../img/img_work_03.webp");
}
.list-person li.list-person__keiji .figure{
	background-image: url("../img/img_work_04.webp");
}
.list-person li.list-person__koutsuu .figure{
	background-image: url("../img/img_work_05.webp");
}
.list-person li.list-person__keibi .figure{
	background-image: url("../img/img_work_06.webp");
}
.list-person li.list-person__keisatsu .figure{
	background-image: url("../img/img_work_07.webp");
}

.list-person li .txtBox{
	background: #fff;
	border: solid 1px #000;
	border-radius: 10px;
	margin: -40px auto 0;
	padding: 20px;
	width: calc(100% - 40px);
	position: relative;
	z-index: 5;
}
	.list-person .txtBox p{
		margin-top: 18px;
		text-align: left;
	}

.btn-txt{
	text-align: left;
	font-size: 22px;
	font-weight: 900;
	padding-left: 40px;
	position: relative;
	z-index: 1;
}
	.btn-txt::before,
	.btn-txt::after{
		content: "";
		display: block;
	}
	.btn-txt::before{
		background: #000;
		border-radius: 50%;
		text-align: center;
		width: 30px;
		height: 30px;
		position: absolute;
		top: 50%;
		left: 0;
		transform: translateY(-50%);
		transition: 0.3s;
	}
	.btn-txt::after{
		display: inline-block;
		content: "\f061";
		font-family: 'FontAwesome';
		line-height: 1;
		font-size: 12px;
		color: #fff;
		position: absolute;
		top: 50%;
		left: 10px;
		transform: translateY(-50%);
		transition: 0.3s;
	}
	.list-person a:hover .txtBox .btn-txt::before{
		transform: translateY(-50%) scale(1.3);
	}

.list-person li.noneFig{
	display: block;
	margin: 0 auto;
	max-width: 320px;
	width: 100%;
}
	.list-person li.noneFig .txtBox{
		aspect-ratio: 320 / 320;
		background: #ccfffc;
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 0;
		width: 100%;
	}

@media screen and (max-width: 1440px){
	.list-person{
		gap: 40px 20px;
	}
}
@media screen and (max-width: 1200px){
	.list-person{
		grid-template-columns: repeat(3, 1fr);
	}
}
@media screen and (max-width: 880px){
	.list-person{
		grid-template-columns: repeat(2, 1fr);
	}
}
@media screen and (max-width: 768px){
	#sec_works{
		padding: 60px 0;
	}
	#sec_works::before{
		top: -231px;
		right: -40px;
		left: auto;
		transform: translateX(0);
		width: 703px;
	}
	#sec_works .lead{
		text-align: left;
		font-size: 16px;
	}
	.list-person{
		margin-top: 40px;
	}
}

@media screen and (max-width: 767px){
	.list-person{
		grid-template-columns: repeat(1, 1fr);
	}
}


/* ------------------------------------------------------------------------ */

/*  職種適性シミュレーター（選択項目）

/* ------------------------------------------------------------------------ */
#sec_simulator{
	background: #ffe66b;
	padding-top: 20px;
	overflow: hidden;
}

#sec_simulator .page_title{
	font-weight: 900;
}
#sec_simulator .page_title span{
	display: inline-block;
	position: relative;
	z-index: 1;
}
#sec_simulator .page_title span::before{
	content: "";
	display: block;
	background: url("../img/p_image_pc.png") no-repeat center / contain;
	max-width: 373px;
	width: 100%;
	aspect-ratio: 746/222;
	position: absolute;
	bottom: 60%;
	left: -34%;
}
#sec_simulator .lead{
	font-size: 18px;
	margin-top: 10px;
}

#sec_simulator strong{
	font-size: 28px;
	font-size: 1.555556em;
	font-weight: 900;
	margin: 0 10px;
}

.cnt-check{
	background: #fff3b8;
	border: solid 1px #000;
	border-radius: 10px;
	overflow: hidden;
	margin-top: 35px;
}

.cnt-check dl{
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding: 30px 0;
}

.cnt-check dl + dl{
	border-top: dashed 1px #000;
}

	.cnt-check dl dt{
		font-size: 28px;
		font-weight: 900;
		flex-shrink: 0;
		width: 270px;
		padding: 0 10px;
		position: relative;
		z-index: 1;
	}
	.cnt-check dl dt::before{
		content: "";
		display: block;
		position: absolute;
	}
	.cnt-check dl.box-mind dt::before{
		background: url("../img/icon_heart.svg") no-repeat center / contain;
		width: 59px;
		height: 55px;
		bottom: 100%;
		left: 0;
	}
	.cnt-check dl.box-style dt::before{
		background: url("../img/icon_star.svg") no-repeat center / contain;
		width: 54px;
		height: 45px;
		bottom: 100%;
		left: 16px;
	}
	.cnt-check dl.box-skill dt::before{
		background: url("../img/icon_kiran.svg") no-repeat center / contain;
		width: 55px;
		height: 57px;
		bottom: calc(100% + 30px);
		left: 36px;
	}

	.cnt-check dl dd{
		display: flex;
		justify-content: flex-start;
		align-items: center;
		flex-wrap: wrap;
		gap: 10px;
		padding-right: 15px;
		padding-left: 30px;
		position: relative;
		z-index: 10;
	}

.checkBtn{
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
	.checkBtn input{
		display: none;
	}

	.checkBtn .checkBox{
		background: #fff;
		border-radius: 25px;
		display: block;
		padding-left: 49px;
		padding-right: 20px;
		line-height: 50px;
		user-select: none;
		overflow: hidden;
		position: relative;
		z-index: 1;
	}
	.checkBtn input:checked + .checkBox{
		background: #00aeef;
		color: #fff;
	}
		.checkBtn .checkBox::before,
		.checkBtn .checkBox::after{
			content: "";
			display: block;
		}
		.checkBtn .checkBox::before{
			background: #fff;
			border: solid 1px #00aeef;
			border-radius: 4px;
			position: absolute;
			top: calc(100% / 2 - 10px);
			left: 20px;
			height: 20px;
			width: 20px;
		}
		.checkBtn .checkBox::after{
			background: url("/common/img/icon/icon_check.svg") no-repeat center / contain;
			width: 14px;
			height: 14px;
			opacity: 0;
			position: absolute;
			top: calc(100% / 2 - 7px);
			left: 23px;
			line-height: 20px;
		}
		.checkBtn input:checked + .checkBox::after{
			opacity: 1;
		}

@media screen and (max-width: 1280px){
	#sec_simulator .page_title span::before{
		background-image: url("../img/p_image_sp.png");
		max-width: 251px;
		aspect-ratio: 638/285;
		right: -12vw;
		bottom: 64%;
		left: auto;
	}
}
@media screen and (max-width: 880px){
	#sec_simulator .page_title{
		text-align: left;
	}
	#sec_simulator .page_title .spStyle{
		display: inherit!important;
	}
	#sec_simulator .page_title span::before{
		bottom: 69%;
		right: -11vw;
		width: 56%;
	}
}
@media screen and (max-width: 768px){
	#sec_simulator .page_title{
		font-size: 46px;
	}
	#sec_simulator .lead{
		font-size: 16px;
		text-align: left;
	}
	#sec_simulator strong{
		margin-left: 0;
	}
	.cnt-check dl{
		display: block;
	}
		.cnt-check dl dt{
			font-size: 22px;
			margin-bottom: 20px;
			width: 100%;
			text-align: center;
		}
		.cnt-check dl.box-mind dt::before{
			width: 69px;
			height: 65px;
			top: -10px;
			bottom: auto;
		}
		.cnt-check dl.box-style dt::before{
			top: -10px;
			bottom: auto;
			left: 30px;
		}
		.cnt-check dl.box-skill dt::before{
			top: -20px;
			bottom: auto;
			left: 16px;
		}

	.cnt-check dl dd{
		padding-left: 15px;
	}
}
@media screen and (max-width: 767px){
	#sec_simulator{
		padding-top: 60px;
	}
	#sec_simulator .page_title{
		font-size: clamp(34px,11vw,46px);
	}
	#sec_simulator .page_title span::before{
		right: -18vw;
	}
	.cnt-check dl.box-skill dt::before{
		width: 48px;
	}
	.checkBtn{
		display:block;
		text-align: left;
		width: 100%;
	}
	.checkBtn .checkBox::before{
		top: calc(100% / 2 - 14px);
		left: 15px;
		height: 25px;
		width: 25px;
	}
	.checkBtn .checkBox::after{
		width: 16px;
		height: 16px;
		top: calc(100% / 2 - 9px);
		left: 19px;
	}

}



/* ------------------------------------------------------------------------ */

/*  職種適性シミュレーター（おすすめ職種）

/* ------------------------------------------------------------------------ */

.cnt-recommend{
	border-top: solid 1px #000;
	margin-top: 60px;
	padding: 60px 0;
	width: 100%;
	position: relative;
	z-index: 1;
}

.cnt-recommend::before{
	content: "";
	display: block;
	background: url("../img/icon_arrow.svg") no-repeat center / contain;
	width: 49px;
	height: 89px;
	position: absolute;
	top: -30px;
	left: calc(100% / 2 - 25px);
}

.cnt-recommend .sub-ttl{
	text-align: left;
	color: #fff;
	font-size: 42px;
	font-weight: 900;
	-webkit-text-stroke: 1px #000;
}

.recommendBox{
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 40px;
	margin-top: 25px;
}

.recommendBox .item{
	display: none;
	background: #fff;
	border-radius: 10px;
	text-align: left;
	overflow: hidden;
	width: calc(100% / 2 - 20px)
}

.recommendBox .item a{
	display: block;
	color: #000;
	padding: 30px 40px;
}

.recommendBox .item a:hover .btn-txt::before{
	transform: translateY(-50%) scale(1.3);
}

.recommendBox .ttl{
	display: flex;
	justify-content: flex-start;
	align-items: center;
	font-size: 28px;
	font-weight: 900;
	text-align: left;
}

.recommendBox .item .notes{
	font-size: 16px;
	font-weight: 400;
	display: inline-block;
	background: #000;
	color: #fff;
	padding: 0 16px;
	line-height: 38px;
	border-radius: 19px;
	margin-left: 20px;
	position: relative;
}
	.recommendBox .item .notes::before{
		content: "";
		display: block;
		width: 0;
		height: 0;
		border-style: solid;
		border-top: 6px solid transparent;
		border-bottom: 6px solid transparent;
		border-right: 14px solid #000000;
		border-left: 0;
		position: absolute;
		top: calc(100% / 2 - 6px);
		right: calc(100% - 4px);
	}

.recommendBox .item p{
	margin-top: 20px;
}

@media screen and (max-width: 1440px){
	.recommendBox{
		gap: 20px;
	}
	.recommendBox .item{
		width: calc(100% / 2 - 10px);
	}
}
@media screen and (max-width: 1200px){
	.recommendBox .ttl{
		flex-direction: column-reverse;
		align-items: flex-start;
	}
	.recommendBox .item .notes{
		margin-bottom: 15px;
		margin-left: 0;
	}
	.recommendBox .item .notes::before{
		width: 0;
		height: 0;
		border-style: solid;
		border-right: 8px solid transparent;
		border-left: 8px solid transparent;
		border-top: 12px solid #000000;
		border-bottom: 0;
		top: calc(100% - 1px);
		left: 40px;
	}
}
@media screen and (max-width: 1023px){
	.recommendBox .item a{
		padding: 16px;
	}
}
@media screen and (max-width: 768px){
	.cnt-recommend .sub-ttl{
		font-size: 32px;
	}
	.recommendBox{
		margin-top: 20px;
	}
	.recommendBox .item{
		width: 100%;
	}

	.recommendBox .btn-txt{
		font-size: 19px;
	}
	.recommendBox .item p{
		font-size: 15px;
		margin-top: 13px;
	}
	.recommendBox .item .notes{
		font-size: clamp(12px,4vw,15px);
		padding: 0 12px;
	}
}
