/* ==================== #program/<h2>.css ==================== */

@media (max-width: 640px) {

	#program h2 {
		margin: 0 -1em;
	}

	#program h2 + * {
		margin-top: 1.5em;
	}

}


@media (min-width: 641px) {

	#program h2 {
		margin-bottom: 0.5em;
	}

}



/* ==================== #program/@.css ==================== */

@media (max-width: 640px) {

	#program {
		margin-top: 3em;
	}

}


@media (min-width: 641px) {

	#program {
		margin-top: 2.5em;
	}

}



/* ==================== #program/> div/<h3>.css ==================== */

#program > div h3 {
	position: absolute;
	top: 0;
	margin: 0;
	transform: translate(0, -50%);
	line-height: 1;
}

#program > div h3 img {
	width: auto;
	height: 1em;
}


@media (max-width: 640px) {

	#program > div h3 {
		left: 0;
		width: 100%;
		font-size: 190%;
	}

}


@media (min-width: 641px) {

	#program > div h3 {
		left: 0.5em;
		font-size: 250%;
	}

}



/* ==================== #program/> div/> img.css ==================== */

@media (max-width: 640px) {

	#program > div > img {
		display: block;
		margin: 2em auto 1em;
		width: 55%;
	}

}


@media (min-width: 641px) {

	#program > div > img {
		position: absolute;
		left: 20px;
		top: 50%;
		width: 178px;
		-webkit-transform: translate(0, -50%);
		transform: translate(0, -50%);
	}

}



/* ==================== #program/> div/@.css ==================== */

#program > div {
	position: relative;
}

#program > div:nth-of-type(n+2) {
	margin-top: 2em;
}


@media (max-width: 640px) {

	#program > div {
		border: 2px solid #0091d7;
		border-radius: 1em;
	}

	#program > div:nth-of-type(1) { background-color: #ebf4ec; }
	#program > div:nth-of-type(2) { background-color: #fceef4; }
	#program > div:nth-of-type(3) { background-color: #fffded; }

}


@media (min-width: 641px) {

	#program > div {
		width: 720px;
		height: 237px;
		background: no-repeat center top;
		background-size: 100% 100%;
		text-align: left;
	}

	#program > div:nth-of-type(1) { background-image: url(../images/program_base1.png); }
	#program > div:nth-of-type(2) { background-image: url(../images/program_base2.png); }
	#program > div:nth-of-type(3) { background-image: url(../images/program_base3.png); }

}



/* ==================== #program/> div/<ul>/<li>.css ==================== */

#program > div ul li {
	text-align: justify;
}


@media (max-width: 640px) {

	#program > div ul li {
		display: grid;
		grid-template-columns: 45% 1fr;
		grid-gap: 2em;
		align-items: center;
		padding: 1.5em;
		font-size: 95%;
	}

	#program > div ul li:nth-of-type(-n+2) {
		position: relative;
	}

	#program > div ul li:nth-of-type(-n+2) .img::after {
		content: "";
		display: block;
		position: absolute;
		left: 1em;
		bottom: 0;
		width: 45%;
		height: 1.5em;
		background: url(../images/program_arrow.png) no-repeat center center / contain;
		transform: translate(0, 50%) rotate(90deg);
	}

}


@media (min-width: 641px) {

	#program > div ul li {
		display: grid;
		grid-gap: 1em;
		align-content: start;
		font-size: 90%;
		line-height: 1.3;
	}

	#program > div ul li .img {
		position: relative;
	}

	#program > div ul li .text {
		margin: 0 -0.25em;
	}

	#program > div ul li:nth-of-type(-n+2) .img::after {
		content: "";
		display: block;
		position: absolute;
		left: 100%;
		top: 0;
		width: 30px;
		height: 100%;
		background: url(../images/program_arrow.png) no-repeat center center;
		background-size: 40%;
	}

}



/* ==================== #program/> div/<ul>/@.css ==================== */

@media (max-width: 640px) {

	#program > div ul {
		margin: 0;
		padding: 0;
		list-style-type: none;
	}

}


@media (min-width: 641px) {

	#program > div ul {
		display: grid;
		grid-gap: 30px;
		grid-template-columns: repeat(3, 1fr);
		padding-left: 260px;
		padding-right: 20px;
		padding-top: 30px;
	}

	#program > div ul::after {
		content: none;
	}

}



/* ==================== #summary/@.css ==================== */

#summary ul {
	display: grid;
	grid-gap: 1em;
	margin: 0;
	padding: 0;
	list-style-type: none;
}


@media (max-width: 640px) {

	#summary h2 {
		width: 90%;
		margin: 1em auto;
	}

	#summary li:nth-of-type(n+2) {
		margin-top: 1em;
	}

}


@media (min-width: 641px) {

	#summary h2 {
		width: 60%;
		margin: 2em auto 1em;
	}

	#summary ul {
		grid-auto-flow: column;
		grid-auto-columns: 1fr;
	}

	#summary ul::after {
		content: none;
	}

	#summary li {
		display: table-cell;
		vertical-align: top;
	}

}



/* ==================== concept/@.css ==================== */

.concept {
	margin-top: 2em;
}

.concept ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 2em;
	color: #e03837;
	border: solid #e03837;
	margin: 0;
	list-style-type: none;
}

.concept li {
	font-weight: bold;
}

.concept li:nth-of-type(-n+2) {
	position: relative;
}

.concept li:nth-of-type(-n+2)::after {
	content: '';
	display: block;
	position: absolute;
	left: 100%;
	top: 0;
	width: 2em;
	height: 100%;
	background: url(../images/concept_plus.png) no-repeat center center / auto 1em;
}


@media (max-width: 640px) {

	.concept ul {
		border-radius: 1em;
		border-width: 2px;
		padding: 1em;
		font-size: 130%;
	}

}

@media (min-width: 641px) {

	.concept {
		display: grid;
		justify-items: center;
	}

	.concept ul {
		border-radius: 25px;
		border-width: 3px;
		padding: 20px 25px;
		font-size: 160%;
	}
	.concept ul::after {
		content: none;
	}

	.concept li {
		padding: 0 1em;
	}

}