@charset "UTF-8";

.border_ttl{
	font-size: 31px;
	color: #007451;
	font-weight: 700;
	position: relative;
	text-align: center;
	margin: 0 auto 20px;
}
.border_ttl .h3_inner{
	position: relative;
	z-index: 2;
	display: inline-block;
	background-color: #fff;
	padding: 0 15px;
}
.border_ttl::before{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: 1;
	height: 1.5px;
    background-image: radial-gradient(circle, #333 0.75px, transparent 0.75px);
    background-size: 8px 1.5px;
    background-repeat: repeat-x;
    background-position: left center;
}
.border_ttl .color_yellow{
	font-size: 22px;
	color: #f6eb00;
	position: relative;
    bottom: 4px;
}

.dotted_line{
	position: relative;
	padding-top: 65px;
}
.dotted_line::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background-image: radial-gradient(circle, #007451 1.5px, transparent 1.5px);
	background-size: 13px 3px;
	background-repeat: repeat-x;
}

@media screen and (max-width: 840px){
	.border_ttl{
		font-size: 24px;
	}
	.border_ttl::before{
		content: none;
	}
	.border_ttl .color_yellow{
		font-size: 18px;
		bottom: 1px;
	}

	.dotted_line{
		padding-top: 40px;
	}
}

/*-----------------------------------

	#mv_block

-----------------------------------*/
#mv_block{
	background: #007451;
	padding: 120px 0 105px;
}

@media screen and (max-width: 840px){
	#mv_block{
		padding: 120px 0 65px;
	}
}

/*-----------------------------------

	#about_block

-----------------------------------*/
#about_block{
	padding: 75px 0 60px;
}

/* point_box */
#about_block .point_box .point_list{
	gap: 10px;
}
#about_block .point_box .point_list li{
	width: calc((100% - 10px) / 2);
	position: relative;
	font-size: 25px;
	font-weight: 700;
	color: #007451;
	padding-left: 45px;
}
#about_block .point_box .point_list li::before{
	content: "";
	position: absolute;
	top: 6px;
	left: 0;
	background: url(../img/index/point_icon.svg)no-repeat center/contain;
	width: 35px;
	height: 35px;
}

/* program_box */
#about_block .program_box{
	padding: 90px 0 0;
}
#about_block .program_box .h3_ttl{
	font-size: 31px;
	font-weight: 700;
	color: #fff;
	text-align: center;
	background: #007451;
	border-radius: 60px;
}
#about_block .program_box .program_wrap{
}
#about_block .program_box .program_wrap .program{
	position: relative;
	padding: 25px 0;
}
#about_block .program_box .program_wrap .program::before{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	width: 0.5px;
	height: 80%;
	background: #007451;
}
#about_block .program_box .program_wrap:first-of-type .program:last-child::before,
#about_block .program_box .program_wrap:last-of-type .program:last-child::before{
	content: none;
}
#about_block .program_box .program_wrap:first-of-type .program{
	width: calc(100% / 4);
	border-bottom: 0.5px solid #007451;
}
#about_block .program_box .program_wrap:last-of-type .program{
	width: calc(100% / 5);
}
#about_block .program_box .program_wrap .program .box_ttl{
	font-size: 22px;
	font-weight: 700;
	color: #007451;
	text-align: center;
	margin: 0 auto 10px;
}
#about_block .program_box .program_wrap .program .img_box{
}

@media screen and (max-width: 840px){
	#about_block{
		padding: 35px 0 50px;
	}
	#about_block .point_box .point_list{
		gap: 2px;
		width: 320px;
		margin: auto;
	}
	#about_block .point_box .point_list li{
		width: 100%;
		font-size: 14px;
		padding-left: 25px;
	}
	#about_block .point_box .point_list li::before{
		width: 17px;
		height: 17px;
	}

	#about_block .program_box{
		padding: 40px 0 0;
	}
	#about_block .program_box .h3_ttl{
		font-size: 18px;
		margin: 0 auto 25px;
		padding: 9px 0;
	}
	#about_block .program_box .program_wrap:first-of-type .program,
	#about_block .program_box .program_wrap:last-of-type .program{
		width: calc(100% / 2);
		padding: 10px 0;
	}
	#about_block .program_box .program_wrap:last-of-type .program:not(:last-child){
		border-bottom: 0.5px solid #007451;
	}
	#about_block .program_box .program_wrap:last-of-type .program:last-child::before{
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		right: 0;
		margin: auto;
		width: 0.5px;
		height: 100%;
		background: #007451;
	}
	#about_block .program_box .program_wrap:first-of-type .program:first-child,
	#about_block .program_box .program_wrap:first-of-type .program:nth-child(2){
		padding-top: 0;
	}
	#about_block .program_box .program_wrap .program:before{
		height: 100%;
	}
	#about_block .program_box .program_wrap .program:nth-child(even):before{
		content: none;
	}
	#about_block .program_box .program_wrap .program .box_ttl{
		font-size: 15px;
	}
}

/*-----------------------------------

	#step_block

-----------------------------------*/
#step_block{
	padding: 70px 0 110px;
	background: #edf5f3;
}
#step_block .kdw_logo{
	width: 277px;
	margin: 0 auto 45px;
}
#step_block .h3_ttl{
	color: #007451;
	font-size: 36px;
	font-weight: 700;
	text-align: center;
}
#step_block .intro_txt{
	font-size: 20px;
	font-weight: 500;
	text-align: center;
	margin: 10px auto 0;
}

#step_block .border_ttl{
	margin: 100px auto 20px;
}
#step_block .border_ttl .h3_inner,
#can_block .border_ttl .h3_inner{
	background: #edf5f3;
}

#step_block .step_wrap{
	gap: 40px;
	align-items: stretch;
}
#step_block .step_wrap .step_box{
	width: calc((100% - 80px) / 3);
	background: #fff;
	border-radius: 15px;
	box-shadow: 5px 5px 5px rgba(35, 24, 21, 0.2);
	position: relative;
	padding: 50px 15px 20px;
}
#step_block .step_wrap .step_box::before{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: -20px;
	margin: auto;
	width: 20px;
	height: 50px;
	background: #007451;
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
#step_block .step_wrap .step_box:last-child::before{
	content: none;
}
#step_block .step_wrap .step_box .step_num{
	position: absolute;
	top: 0;
	left: 0;
	max-width: 203px;
	width: 80%;
}
#step_block .step_wrap .step_box .box_ttl{
	font-size: 28px;
	color: #007451;
	text-align: center;
}
#step_block .step_wrap .step_box .box_txt{
	font-size: 14px;
	font-weight: 400;
}
#step_block .step_wrap .step_box .list_ttl{
	font-size: 14px;
	font-weight: 700;
	margin: 10px auto 5px;
	color: #007451;
}
#step_block .step_wrap .step_box .box_list{
}
#step_block .step_wrap .step_box .box_list li{
	font-size: 16px;
	font-weight: 500;
	position: relative;
	padding-left: 1em;
}
#step_block .step_wrap .step_box .box_list li::before{
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
	font-size: 16px;
	font-weight: 500;
}

@media screen and (max-width: 840px){
	#step_block{
		padding: 50px 0 65px;
	}
	#step_block .kdw_logo{
		width: 189px;
		margin: 0 auto 30px;
	}
	#step_block .h3_ttl{
		font-size: 24px;
	}
	#step_block .intro_txt{
		font-size: 14px;
	}

	#step_block .border_ttl{
		margin: 50px auto 40px;
		font-size: 27px;
	}
	#step_block .step_wrap .step_box{
		width: 100%;
		border-radius: 10px;
	}
	#step_block .step_wrap .step_box::before{
		right: 0;
		left: 0;
		top: auto;
		bottom: -20px;
		width: 50px;
		height: 20px;
		clip-path: polygon(0 0, 50% 100%, 100% 0);
	}
	#step_block .step_wrap .step_box .step_num{
		max-width: 180px;
	}
	#step_block .step_wrap .step_box .box_ttl{
		font-size: 25px;
	}
	#step_block .step_wrap .step_box .box_txt,
	#step_block .step_wrap .step_box .list_ttl{
		font-size: 12px;
	}
	#step_block .step_wrap .step_box .box_list li{
		font-size: 14px;
	}
}

/*-----------------------------------

	#charm_block

-----------------------------------*/
#charm_block{
	padding: 80px 0;
	background: #007451;
	color: #fff;
}
#charm_block .h2_ttl{
	font-size: 56px;
	font-weight: 700;
	text-align: center;
	line-height: 1.4;
}
#charm_block .charm_wrap{
	margin: 10px auto 0;
	align-items: stretch;
	gap: 20px;
}
#charm_block .charm_wrap .charm_box{
	width: calc((100% - 60px) / 4);
}
#charm_block .charm_wrap .charm_box .ttl_box{
	color: #f6eb00;
	align-items: center;
	justify-content: flex-start;
	margin: 0 auto 7px;
}
#charm_block .charm_wrap .charm_box .ttl_box .num{
	font-size: 29px;
	font-weight: 700;
	font-style: italic;
	padding-right: 10px;
	width: 40px;
}
#charm_block .charm_wrap .charm_box .ttl_box .box_ttl{
	font-size: 24px;
	font-weight: 700;
	width: calc(100% - 50px);
	border-left: 1px solid #f6eb00;
	padding-left: 10px;
	line-height: 1.5;
}
#charm_block .charm_wrap .charm_box .txt{
	font-size: 14px;
	font-weight: 400;
}

@media screen and (max-width: 840px){
	#charm_block{
		padding: 45px 0 35px;
	}
	#charm_block .h2_ttl{
		font-size: 40px;
	}
	#charm_block .charm_wrap{
		margin: 20px auto 0;
	}
	#charm_block .charm_wrap .charm_box{
		width: 100%;
	}
}

/*-----------------------------------

	#can_block

-----------------------------------*/
#can_block{
	padding: 65px 0 90px;
	background: #edf5f3;
}
#can_block .can_wrap{
	gap: 15px;
	align-items: stretch;
}
#can_block .can_wrap .can_box{
	border-radius: 8px;
	background: #fff;
	width: calc((100% - 75px) / 6);
	text-align: center;
	padding: 13px 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
#can_block .can_wrap .can_box p{
	font-size: 18px;
	font-weight: 700;
	color: #007451;
	line-height: 1.5;
}

@media screen and (max-width: 840px){
	#can_block{
		padding: 30px 0 45px;
	}
	#can_block .border_ttl{
		font-size: 28px;
		line-height: 1.4;
		margin: 0 auto 15px;
	}
	#can_block .can_wrap .can_box{
		width: calc((100% - 15px) / 2);
		padding: 5px 0;
		min-height: 91px;
	}
}

/*-----------------------------------

	#faq_block

-----------------------------------*/
#faq_block{
	background: #f5f5f5;
	padding: 70px 0 95px;
}
#faq_block .border_ttl{
	margin: 0 auto 40px;
}
#faq_block .border_ttl::before,
#recruit_block .border_ttl::before,
#training_block .border_ttl::before,
#company_block .border_ttl::before{
	content: none;
}
#faq_block .border_ttl .h3_inner,
#recruit_block .border_ttl .h3_inner,
#training_block .border_ttl .h3_inner,
#company_block .border_ttl .h3_inner{
	background: #f5f5f5;
}

#faq_block .qa-list {
	display: flex;
    flex-direction: column;
    gap: 17px;
}
#faq_block .qa-item {
	background: #fff;
    border-radius: 30px;
    overflow: hidden;
}
#faq_block .qa-question {
	display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 55px 20px 35px;
    position: relative;
    min-height: 73px;
    box-sizing: border-box;
    cursor: pointer;
    list-style: none;
	user-select: none;
}
#faq_block .qa-question::-webkit-details-marker {
	display: none;
}
#faq_block .qa-q {
	font-family: 'Barlow', sans-serif;
    font-weight: 700;
    font-size: 32px;
    color: #007451;
    line-height: 1;
}
#faq_block .qa-question-text {
    font-weight: 700;
    font-size: 20px;
    color: #007451;
    line-height: 1.8;
}

#faq_block .qa-question::before,
#faq_block .qa-question::after{
	content: "";
	position: absolute;
	right: 35px;
	top: 50%;
	width: 15px;
	height: 2px;
	background: #007451;
	border-radius: 1px;
	transform-origin: center center;
	transition: transform 0.3s ease;
}
#faq_block .qa-question::before {
	transform: translateY(-50%) rotate(0deg);
}
#faq_block .qa-question::after {
	transform: translateY(-50%) rotate(90deg);
}
#faq_block .qa-item[open] .qa-question::before {
	transform: translateY(-50%) rotate(0deg);
}
#faq_block .qa-item[open] .qa-question::after {
	transform: translateY(-50%) rotate(0deg);
}

#faq_block .qa-answer {
	display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 0 55px 28px 35px;
}
#faq_block .qa-a {
	font-family: 'Barlow', sans-serif;
    font-weight: 700;
    font-size: 32px;
    color: #cb5920;
    line-height: 1;
}
#faq_block .qa-answer-text {
    font-weight: 400;
    font-size: 18px;
    color: #000;
    line-height: 1.8;
}

@media screen and (max-width: 840px){
	#faq_block{
		padding: 60px 0 50px;
	}
	#faq_block .contents_inner{
		position: relative;
		padding-top: 45px;
	}
	#faq_block .contents_inner::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 3px;
		background-image: radial-gradient(circle, #007451 1.5px, transparent 1.5px);
		background-size: 13px 3px;
		background-repeat: repeat-x;
	}
	#faq_block .border_ttl{
		margin: 0 auto 30px;
	}
	#faq_block .qa-list{
		gap: 12px;
	}
	#faq_block .qa-item{
		border-radius: 8px;
	}
	#faq_block .qa-question{
		padding: 13px 45px 13px 15px;
	}
	#faq_block .qa-q,
	#faq_block .qa-a{
		font-size: 22px;
	}
	#faq_block .qa-question-text{
		font-size: 14px;
	}
	#faq_block .qa-answer{
		padding: 0 45px 15px 15px;
	}
	#faq_block .qa-answer-text{
		font-size: 12px;
	}
}

/*-----------------------------------

	#recruit_block

-----------------------------------*/
#recruit_block{
	background: #f5f5f5;
	padding: 0 0 70px;
}
#recruit_block .border_ttl,
#training_block .border_ttl{
	margin: 0 auto 30px;
}
#recruit_block .recruit_flex{
	gap: 0 20px;
}

#recruit_block .recruit-grid {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	gap: 0 40px;
	width: 90%;
	margin: 0 auto;
}
#recruit_block .recruit-col{
	width: calc((100% - 40px) / 2);
}
#recruit_block .recruit-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 5px;
}
#recruit_block .recruit-col li {
	padding-left: 1em;
	text-indent: -1em;
	line-height: 1.2;
}
#recruit_block .recruit-col ul li {
	font-weight: 400;
	font-size: 14px;
	line-height: 2;
}
#recruit_block .recruit-col ul li .recruit-label {
	font-weight: 900;
	color: #007451;
}

@media screen and (max-width: 840px){
	#recruit_block{
		padding: 0 0 70px;
	}
	#recruit_block .border_ttl,
	#training_block .border_ttl{
		margin: 0 auto 20px;
	}
	
	#recruit_block .recruit-grid {
		flex-direction: column;
		width: 100%;
	}
	#recruit_block .recruit-col{
		width: 100%;
		margin: auto;
	}
	#recruit_block .section-recruit .section-heading {
		font-size: 24px;
	}
	#recruit_block .recruit-col ul li,
	#recruit_block .recruit-note {
		font-size: 14px;
	}
}

/*-----------------------------------

	#training_block

-----------------------------------*/
#training_block,
#company_block{
	background: #f5f5f5;
	padding: 0 0 115px;
}
#training_block .img_box{
	width: 280px;
	margin: 0 auto 20px;
}
#training_block .company_name{
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}
#training_block .add_txt,
#training_block .bottom_txt{
	font-size: 14px;
	font-weight: 400;
	text-align: center;
	margin: 5px auto 0;
}
#training_block .bottom_txt{
	margin: 15px auto 0;
}

#training_block .btn_box{
	margin: 70px auto 0;
	text-align: center;
}
#training_block .btn_box a{
	font-size: 27px;
	font-weight: 700;
	text-align: center;
	color: #fff;
	background: #b81c25;
	width: 420px;
	display: inline-block;
	padding: 15px 60px;
	position: relative;
	border-radius: 70px;
}
#training_block .btn_box a::before{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto;
	width: 27px;
	height: 27px;
	background: url(../img/common/button_arrow.svg)no-repeat center/contain;
}

@media screen and (max-width: 840px){
	#training_block,
	#company_block{
		padding: 0 0 50px;
	}
	#training_block .img_box{
		width: 200px;
		margin: 0 auto 10px;
	}
	#training_block .company_name{
		font-size: 21px;
	}
	#training_block .add_txt,
	#training_block .bottom_txt{
		font-size: 12px;
		margin: 0 auto;
	}
	#training_block .bottom_txt{
		margin: 10px auto;
	}
	#training_block .btn_box{
		margin: 30px auto 0;
	}
	#training_block .btn_box a{
		font-size: 20px;
		padding: 10px 0;
		width: 304px;
	}
	#training_block .btn_box a::before{
		right: 15px;
		width: 20px;
		height: 20px;
	}
}

/*-----------------------------------

	company_block

-----------------------------------*/
#company_block .table_box{
	max-width: 640px;
	width: 100%;
	margin: auto;
}
#company_block .table_box table{
	width: 100%;
}
#company_block .table_box table tr th,
#company_block .table_box table tr td{
	font-size: 16px;
	padding: 10px 0;
	border-bottom: 0.5px solid #007451;
}
#company_block .table_box table tr th{
	font-weight: 900;
    color: #007451;
	text-align: left;
	width: 130px;
}
#company_block .table_box table tr td{
	font-weight: 400;
    line-height: 1.8;
	width: calc(100% - 130px);
}

@media screen and (max-width: 840px){
	#company_block .table_box table tr th,
	#company_block .table_box table tr td{
		width: 100%;
		display: block;
		font-size: 14px;
		padding: 8px 0;
	}
	#company_block .table_box table tr th{
		border-bottom: none;
		padding-bottom: 0;
	}
}