@charset "utf-8";
/* CSS Document */

section {
	padding-bottom: 0px;
}

@media screen and (min-width: 600px) {
	/* パンくずの下マージンが親要素外へ相殺されてできる空白を除去 */
	body#flow .page_green_ttl_wrap .breadcrumb,
	body.flow .page_green_ttl_wrap .breadcrumb {
		margin-bottom: 0;
	}
}

@media screen and (max-width: 599px) {
	/* 選択肢は600px版と同じ2列 */
	.which_select_box {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.667vw;
		margin-block: 8vw;
	}

	.which_select_box .which_select_inner a::after {
		width: 6.667vw;
		height: 6.667vw;
		right: 3.333vw;
		bottom: 3.333vw;
	}

	.flow_list {
		row-gap: 5.333vw;
		padding-bottom: 10.667vw;
	}

	.flow_list::after {
		left: 3.667vw;
		width: 4vw;
	}

	.flow_list dl {
		grid-template-columns: 10.833vw minmax(0, 1fr);
		column-gap: 2.667vw;
	}

	.flow_list dl .flow_num span {
		box-sizing: border-box;
		aspect-ratio: 1;
		align-content: center;
		padding-block: 0;
		font-size: clamp(22px, 5.33334vw, 32px);
	}

	.flow_list dl .flow_num span::before {
		font-size: clamp(10px, 2.33334vw, 14px);
	}

	.rule_box {
		padding: 5.333vw;
	}
}

.which_select_ttl_wrap {
	display: grid;
	row-gap: 20px;
	.which_select_ttl {
		color: var(--main-green);
		background: var(--pale-green);
		text-align: center;
		font-size: clamp(20px, 4.33334vw, 26px);
		border-radius: 30px;
		padding: 8px 10px;
		position: relative;
	}
	& > picture {
		display: flex;
		max-width: 157px;
		width: 80%;
		margin: 0px auto;
		position: relative;
	}
}

.which_select_box {
	display: grid;
	grid-template-columns: repeat(auto-fit,minmax(200px,1fr));
	gap: 1rem;
	margin-block: 3rem;
	.which_select_inner {
		display: flex;
		align-items: stretch;
		border-radius: 10px;
		overflow: hidden;
		a {
			display: flex;
			flex-direction: column;
			align-items: stretch;
			position: relative;
			width: 100%;
			&::after {
				content: '';
				background: url("../images/common/arrow_green-line.svg");
				background-repeat: no-repeat;
				background-size: contain;
				display: inline-block;
				width: 40px;
				height: 40px;
				right: 20px;
				bottom: 20px;
				position: absolute;
			}
			.which_select_inner_ttl {
				color: #FFF;
				text-align: center;
				display: flex;
				align-items: center;
				justify-content: center;
				flex-grow: 1;
				line-height: 130%;
				font-size: clamp(16px, 3.33334vw, 20px);
				padding: 1rem;
				&.goukakumae {
					background: var(--main-green);
				}
				&.student {
					background: var(--brown);
				}
			}
		}
	}
}


.flow_under_ttl {
	color: #FFF;
	border-radius: 50px;
	text-align: center;
	padding: 11px 20px;
	font-size: clamp(20px, 4.33334vw, 26px);
	line-height: 1.3;
	&.goukakumae {
		background: var(--main-green);
	}
	&.student {
		background: var(--brown);
	}
}

.flow_list {
	margin-block: 2rem 0rem;
	padding-bottom: 4rem;
	display: grid;
	row-gap: 2rem;
	position: relative;
	&::after {
		content: '';
		background: var(--pale-green);
		display: inline-block;
		width: 24px;
		height: 100%;
		top: 0px;
		left: 22px;
		position: absolute;
		z-index: 0;
	}
	dl {
		display: grid;
		grid-template-columns: 65px auto;
		column-gap: 1rem;
		position: relative;
		.flow_num {
			span {
				display: grid;
				justify-content: center;
				position: relative;
				color: var(--main-green);
				border: 2px solid var(--main-green);
				background: #FFF;
				border-radius: 100px;
				font-size: 32px;
				line-height: 1;
				text-align: center;
				width: 100%;
				padding-block: 10px;
				z-index: 1;
				&::before {
					content: 'STEP';
					font-size: 14px;
					display: inline-block;
					position: relative;
				}
			}
		}
		dd {
			margin-block: 1rem;
			.flow_list_inner {
				.flow_list_ttl {
					color: var(--main-green);
					border-bottom: 2px solid var(--main-green);
					font-size: clamp(18px, 4vw, 24px);
				}
				.flow_list_txt {
					font-size: clamp(15px, 3vw, 18px);
					font-family: '游ゴシックMedium';
					text-align: justify;
					line-height: 160%;
					margin-block: 1rem;
				}
				.red {
					color: #B7002C;
					text-indent: -1em;
					margin-left: 1em;
					display: grid;
				}
				.flow_memo {
					margin-block: 1rem;
					&:nth-of-type(n+2) {
						margin-top: 2rem;
					}
					.flow_memo_ttl {
						font-size: clamp(16px, 3.33334vw, 20px);
						color: #FFF;
						background: #CE8C16;
						border-radius: 10px;
						padding: 2px 20px;
						display: inline-flex;
					}
					.flow_memo_list {
						margin-block: 1rem;
						display: grid;
						row-gap: 5px;
						li {
							font-size: clamp(15px, 3vw, 18px);
							font-family: '游ゴシックMedium';
							text-indent: -1em;
							margin-left: 1em;
						}
					}
					.flow_memo_txt {
						font-size: clamp(15px, 3vw, 18px);
						font-family: '游ゴシックMedium';
						margin-block: 1rem;
						text-align: justify;
						line-height: 160%;
					}
				}
				.flow_memo_caution {
					li {
						font-size: clamp(15px, 3vw, 18px);
						font-family: '游ゴシックMedium';
						text-align: justify;
						color: #B7002C;
						line-height: 160%;
					}
				}
			}
		}
	}
}

.rule_box{
	background: var(--pale-green);
	border-radius: 20px;
	padding: 2rem 2rem;
	margin-top: 1rem;
	.rule_list {
		margin-top: 1rem;
		display: grid;
		row-gap: 5px;
		li {
			font-size: 14px;
			font-family: '游ゴシックMedium';
			color: #333333;
			text-indent: -1em;
			margin-left: 1em;
			text-align: justify;
			line-height: 160%;
			.rule_caution {
				li {
					color: #B7002C;
				}
			}
		}
	}
}

/* 最終優先：auto-fitによる1列化を防ぎ、600px版の構図を維持 */
@media screen and (max-width: 599px) {
	.which_select_box {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.667vw;
		margin-block: 8vw;
	}

	.flow_list dl {
		grid-template-columns: 10.833vw minmax(0, 1fr);
		column-gap: 2.667vw;
	}
}

.goukaku_box {
	background: #FFF5F9;
	border-radius: 30px;
	padding: 1rem 2rem;	
	.goukaku_box_ttl {
		font-size: clamp(16px, 3.33334vw, 20px);
		color: #DC2B70;
		display: flex;
		align-items: center;
		position: relative;
		column-gap: 5px;
		line-height: 1;
		&::before,
		&::after {
			content: '';
			background: url("../images/common/icon_sakura.svg");
			background-repeat: no-repeat;
			background-size: contain;
			display: inline-block;
			width: 23px;
			height: 23px;
			top: 2px;
			position: relative;
		}
	}
	.goukaku_sub_ttl {
		font-size: 14px;
		font-family: '游ゴシックBold';
		color: #333333;
		margin-block: 10px 3px;
	}
	.goukaku_txt {
		font-size: 14px;
		font-family: '游ゴシックMedium';
		color: #333333;
		text-align: justify;
		line-height: 160%;
	}
}

/* ----------------------------------------------
STEP円と背景帯：最終優先
---------------------------------------------- */
@media screen and (min-width: 600px) {
	body#flow .flow_list::after,
	body.flow .flow_list::after {
		left: 20.5px;
		width: 24px;
	}

	body#flow .flow_list dl .flow_num span,
	body.flow .flow_list dl .flow_num span {
		box-sizing: border-box;
		width: 65px;
		height: 65px;
		aspect-ratio: 1;
		padding: 0;
		align-content: center;
		font-size: 26px;
	}

	body#flow .flow_list dl .flow_num span::before,
	body.flow .flow_list dl .flow_num span::before {
		font-size: 12px;
	}
}

@media screen and (max-width: 599px) {
	body#flow .flow_list::after,
	body.flow .flow_list::after {
		left: 3.417vw;
		width: 4vw;
	}

	body#flow .flow_list dl .flow_num span,
	body.flow .flow_list dl .flow_num span {
		box-sizing: border-box;
		width: 100%;
		height: auto;
		aspect-ratio: 1;
		padding: 0;
		align-content: center;
		font-size: clamp(18px, 4.66667vw, 28px);
	}

	body#flow .flow_list dl .flow_num span::before,
	body.flow .flow_list dl .flow_num span::before {
		font-size: clamp(8px, 2vw, 12px);
	}
}



