@charset "utf-8";

/*-------------------------------------------------------------------------------------------------------------------------------
* requirements
------------------------------------------------------------------------------------------------------------------------------- */
/* requirements_nav */
.requirements_nav ul{
	display: flex;
	justify-content: center;
}
.requirements_nav ul li{
	padding: 0 30px;
}
.requirements_nav ul li a{
	position: relative;
	padding: 0 25px 0 0;
	font-weight: 500;
}
.requirements_nav ul li a::before{
	position: absolute;
	top: 5px;
	right: 0;
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border-right: 2px solid #79AECE;
	border-bottom: 2px solid #79AECE;
	transform: rotate(45deg);
}
.requirements_nav ul li a:hover{
	opacity: 0.7;
}
@media screen and (max-width:767px) {
	.requirements_nav ul{
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
	}
	.requirements_nav ul li{
		padding: 0 20px 10px;
	}
	.requirements_nav ul li a{
		padding: 0 20px 0 0;
	}
	.requirements_nav ul li a::before{
		top: 5px;
		width: 6px;
		height: 6px;
		border-right: 1px solid #79AECE;
		border-bottom: 1px solid #79AECE;
	}
}

/* section */
section {
	margin: 70px 0 0;
}
section h2{
	font-family: 'Noto Serif JP', serif;
	font-weight: 700;
	font-size: 34px;
	letter-spacing: 0.15em;
	text-align: center;
	padding: 0 0 10px;
	border-bottom: 2px solid #7AB5D7;
	margin: 0 0 55px;
}
section .sub_title{
	font-family: 'Noto Serif JP', serif;
	font-weight: 700;
	font-size: 24px;
	background: #e4f0f7;
	text-align: center;
	padding: 13px;
	margin: 0 0 25px;
}
section .cap_title span{
	font-weight: 500;
	font-size: 80%;
}
@media screen and (max-width:767px) {
	section{
		margin: 30px 0 0;
	}
	section h2{
		font-size: 22px;
		letter-spacing: 0.1em;
		padding: 0 0 5px;
		border-bottom: 1px solid #7AB5D7;
		margin: 0 0 30px;
	}
	section .sub_title{
		font-size: 17px;
		line-height: 1.5;
		padding: 10px;
		margin: 0 0 20px;
	}
}

section > section.block {
	margin: 60px 0 0;
}
section > section.block > section{
	margin: 0;
	padding: 40px 0;
	border-top: 1px solid #E6E6E6;
}
section > section.block > section:first-of-type{
	padding-top: 25px;
	border-top: none;
}
@media screen and (max-width:767px) {
	section > section.block {
		margin: 20px 0 0;
	}
	section > section.block > section{
		padding: 25px 0;
	}
	section > section.block > section:first-of-type{
		padding-top: 20px;
	}
}


/* requirements_box01 */
.requirements_box01 ul li{
	padding-left: 1.5em;
	margin: 0 0 5px;
}
.requirements_box01 ul li::before{
	display: inline-block;
	content: "●";
	color: #D0E4EF;
	text-indent: -1.5em;
}
.requirements_box01 p:last-child{
	margin-top: 1em;
}

/* requirements_box02 */
.requirements_box02 ul li{
	padding-left: 1em;
	text-indent: -1em;
}
.requirements_box02 ul sup{
	vertical-align: top;
	font-size: 50%;
}


/* requirements02 */
#requirements02 {
	padding: 0 0 40px;
}
#requirements02 > section{
	margin: 40px 0 0;
}
@media screen and (max-width:767px) {
	#requirements02 {
		padding: 0 0 30px;
	}
	#requirements02 > section{
		margin: 20px 0 0;
	}
}

/* flow */
.flow_box h3{
	position: relative;
	font-family: 'Noto Serif JP', serif;
	font-weight: 700;
	font-size: 24px;
	text-align: center;
	padding: 12px;
	border: 1px solid #B3B3B3;
	cursor: pointer;
}
.flow_box h3::before{
	content: "";
	position: absolute;
	top: 50%;
	margin-top: -1px;
	right: 20px;
	display: block;
	width: 28px;
	height: 2px;
	background-color: #7AB5D7;
}
.flow_box h3::after{
	content: "";
	position: absolute;
	top: 50%;
	margin-top: -14px;
	right: 33px;
	display: block;
	width: 2px;
	height: 28px;
	background-color: #7AB5D7;
	transition: 0.4s;
}
.flow_box h3.active::after{
	transform: rotate(90deg);
}
@media screen and (max-width:767px) {
	.flow_box h3{
		font-size: 17px;
		line-height: 1.4;
		padding: 12px;
	}
	.flow_box h3::before{
		top: 50%;
		margin-top: -1px;
		right: 15px;
		width: 19px;
		height: 1px;
	}
	.flow_box h3::after{
		top: 50%;
		margin-top: -10px;
		right: 24px;
		width: 1px;
		height: 19px;
	}
}

.flow_box ul{
	display: none;
	background: #F8F8F8;
	padding: 40px 60px;
}
.flow_box ul li{
	position: relative;
	background: #FFF;
	border: 1px solid #7AB5D7;
	margin: 0 0 40px;
	display: flex;
	font-weight: 500;
}
.flow_box ul li::after{
	position: absolute;
	bottom: -28px;
	left: 50%;
	margin-left: -15px;
	content: "";
	width: 0;
  height: 0;
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-top: 18px solid #7AB5D7;
}
.flow_box ul li .num{
	background: #7AB5D7;
	width: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 25px;
	font-weight: 500;
	color: #FFF;
}
.flow_box ul li .txt{
	padding: 15px 30px;
	flex: 1;
}
.flow_box ul li:last-child{
	margin: 0;
}
.flow_box ul li:last-child::after{
	content: none;
}
@media screen and (max-width:767px) {
	.flow_box ul{
		padding: 30px 15px 30px 25px;
	}
	.flow_box ul li{
		position: relative;
		background: #FFF;
		border: 1px solid #7AB5D7;
		margin: 0 0 30px;
		display: block;
	}
	.flow_box ul li::after{
		position: absolute;
		bottom: -20px;
		left: 50%;
		margin-left: -15px;
		border-left: 12px solid transparent;
		border-right: 12px solid transparent;
		border-top: 12px solid #7AB5D7;
	}
	.flow_box ul li .num{
		position: absolute;
		left: -10px;
		top: 50%;
		margin-top: -15px;
		background: #7AB5D7;
		width: 30px;
		height: 30px;
		font-size: 15px;
	}
	.flow_box ul li .txt{
		display: block;
		padding: 10px 10px 10px 30px;
		line-height: 1.5;
	}
	/*.flow_box ul li .txt.col2{
		display: flex;
	}
	.flow_box ul li .txt.col2 span:last-child{
		flex: 1;
	}*/
}
