/* ====================================
	共通スタイル
 ==================================== */


.deep-blue {
	color: #008EC8;
}

article {
	line-height: 1.8;
	overflow: hidden;
}

#sub02 .em {
	color: #C73434;
	display: block;
	text-align: center;
	padding: .2rem 1rem;
	border: 1px solid #C73434;
}

#sub02 .em span {
	text-align: left;
	display: inline-block;
}


#sub01 .period,
#sub02 .period,
#sub03 .period {
	color: #7C8890;
	position: relative;
}

#sub03 .period.lines {
	text-indent: -2.8rem;
	padding-left: 2.8rem;
}

#sub01 .period:before,
#sub02 .period:before,
#sub03 .period:before {
	position: relative;
	top: -5px;
	left: 0;
	transform: translateY(-50%);
	content: '';
	width: 20px;
	height: 1px;
	background-color: #7C8890;
	display: inline-block;
	margin-right: 1rem;
}

#sub03 .text {}


#sub04 .title {
	position: relative;
}

#sub04 .title::before {
	content: '';
	position: absolute;
	bottom: -20px;
	display: inline-block;
	width: 20px;
	height: 1px;
	left: 0;
	background-color: #B9B6A9;
}

#sub04 .program {
	color: #008EC8;
}


#sub04 .period {
	color: #7C8890;
	position: relative;
}

#sub04 .period:before {
	position: relative;
	top: -5px;
	left: 0;
	transform: translateY(-50%);
	content: '';
	width: 20px;
	height: 1px;
	background-color: #7C8890;
	display: inline-block;
	margin-right: 1rem;
}


#sub05 table.table-price {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}


#sub05 table.table-price th {
	padding: 10px;
	background-color: #008EC8;
	color: #fff;
}

#sub05 table.table-price td {
	width: 30%;
	padding-left: 1em;
	word-break: break-word;
	border-bottom: solid 1px #008EC8;
	padding: 10px;

}

#sub05 table.table-price td.index {
	font-weight: 500;
}

#sub05 table.table-price.online td.price {
	width: 66%;
}

#sub05 .title {
	position: relative;
}

#sub05 .sub-ttl+.title {
	margin-top: 0;
}


#sub05 .title::before {
	content: '';
	position: absolute;
	bottom: -20px;
	display: inline-block;
	width: 20px;
	height: 1px;
	left: 0;
	background-color: #B9B6A9;
}

#sub05 a {
	text-decoration: underline;
	color: #008EC8;
}

#sub05 a:hover {
	color: #008EC8;
	text-decoration: none;
}

/* アローボタン */
#sub05 .text a[target=_blank] span.link {
	background: url(/common/images/link.svg) right 67%/14px auto no-repeat;
	padding-right: 16px;
	margin-right: 4px;
}

#sub06 .num-box::after {
	content: "";
	display: inline-block;
	width: 1px;
	background-color: #008EC8;
	position: absolute;
	left: 50%;
	transform: translate(-50%, 0);
}

#sub06 .num-box.last::after {
	display: none;
}

#sub06 .list-figures.col2 .num-item .num {
	color: #66bbde;
	text-align: center;
}

#sub06 .list-figures.col2 {
	display: flex;
	justify-content: space-between;
	align-items: center;


}






.has-bg {
	background-color: #F2F9FC;
	text-align: center;
}

.has-bg .text {
	position: relative;

}

.has-bg .text::before {
	content: '';
	position: absolute;
	bottom: -15px;
	display: inline-block;
	width: 100px;
	height: 1px;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	background-color: #66bbde;
}


/* ====================================
	767px以下専用スタイル
===================================== */
@media only screen and (max-width: 767px) {
	#mainVisual .main-img {
		background-image: url(images/mv-menu_sp.jpg);
	}

	.sub-text {
		font-size: 1.4rem;
	}

	.flex-container>.flex-item {
		width: 100%;
	}



	#sub01 .caption,
	#sub03 .caption {
		margin-top: 4rem;
	}

	.menu.flex-container .title {
		font-size: 1.8rem;
		margin-top: 2rem;
	}


	.menu.flex-container .period {
		font-size: 1.4rem;
		margin-top: 1rem;
	}

	.menu.flex-container .text {
		font-size: 1.4rem;
		margin-top: 1.4rem;
	}

	.menu.flex-container .flex-item {
		padding-bottom: 3rem;
		border-bottom: solid 1px #008EC8;
		margin-top: 4rem;
	}

	.flex-container.btn-box {
		margin-top: 4rem;
	}

	.flex-container.btn-box .flex-item:last-of-type {
		margin-top: 1rem;

	}

	#sub02 .em {
		font-size: 1.2rem;
		margin-bottom: 1.4rem;

	}

	#sub01 .btn-arrow-right,
	#sub02 .btn-arrow-right,
	#sub04 .btn-arrow-right {
		margin-top: 4rem;
	}



	#sub03 .btn-arrow-right.online a {
		padding-right: 1.4rem;
	}

	#sub04.sub-section {
		/* padding-bottom: 8rem; */
	}

	#sub04 .flex-container.program-box .flex-item {
		padding-bottom: 3rem;
		border-bottom: solid 1px #008EC8;
		margin-top: 4rem;
	}

	#sub04 .flex-container .flex-item.image {
		margin-top: 4rem;
	}

	#sub04 .title {
		font-size: 2rem;
		margin-top: 5rem;
	}



	#sub04 .title::before {
		bottom: -15px;
	}

	#sub04 .program {
		font-size: 1.4rem;

	}

	#sub04 .program-title {
		font-size: 1.8rem;
		line-height: 1.4;
		margin-top: 1rem;
	}

	#sub04 .program-title .small-text {
		font-size: 1.2rem;
	}

	#sub04 .mail-container {
		margin-top: 4rem;
	}

	#sub04 .mail-container .text .mail {
		font-size: 1.2rem;
		margin-top: 1rem;
	}

	#sub04 .text {
		font-size: 1.4rem;
	}



	#sub04 .period {
		font-size: 1.4rem;
		margin-top: 1rem;
	}



	#sub04 .program-box .text {
		font-size: 1.4rem;
		margin-top: 1.4rem;
	}


	#sub05 .title {
		font-size: 1.8rem;
		margin-top: 5rem;
	}

	#sub05 .title::before {
		bottom: -15px;
	}



	#sub05 table {
		display: block;
		overflow-x: auto;
		overflow-y: hidden;
		white-space: nowrap;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 2px;
		/* -ms-overflow-style: none; */
		/* IE, Edge 対応 */
		/* scrollbar-width: none; */
	}

	#sub05 table::-webkit-scrollbar {
		/* Chrome, Safari 対応 */
		/* display: none; */
	}

	/*スクロールバー全体の高さ*/
	#sub05 table::-webkit-scrollbar {
		height: 10px;
	}

	/*スクロールバー全体の背景*/
	#sub05 table::-webkit-scrollbar-track {
		background: #F2F9FC;
	}

	/*スクロールバーの動く部分*/
	#sub05 table::-webkit-scrollbar-thumb {
		background: #66BBDE;
		border-radius: 10px;

	}

	#sub05 table::-webkit-scrollbar-track-piece {
		padding-top: 5px;
	}

	/*スクロールバー 指*/
	#sub05 .scroll-item {
		color: #008EC8;
		font-size: 1rem;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		margin-top: 10px;
	}

	#sub05 .scroll-item .scroll-img {
		width: 23px;
		margin-right: 6px;
	}


	/*スクロールバー プラグイン*/
	.scroll-hint-icon-wrap .scroll-hint-icon {
		opacity: .8;
	}

	.scroll-hint-icon-wrap .scroll-hint-icon:after {
		opacity: 1;
	}

	.scroll-hint-icon-wrap .scroll-hint-icon:before {
		animation: scroll-hint-appear 1.2s linear;
		animation-iteration-count: 2;
	}

	.scroll-hint-icon-wrap .scroll-hint-icon {
		top: calc(50% - -5px);
	}

	#sub05 .js-scrollable.scroll-hint {
		overflow-y: hidden;
	}



	#sub05 table tbody {
		width: 100%;
		display: table;
	}

	#sub05 table.table-price {
		font-size: 1.4rem;
		line-height: 1.4;
		margin-top: 4.2rem;
	}


	#sub05 table.table-price th {
		padding: 8px;
	}


	#sub05 table.table-price th {
		width: 30%;
		padding-left: 1em;
		padding: 6px 10px;
		line-height: 1.6;
	}

	#sub05 table.table-price.online td.index,
	#sub05 table.table-price.online th.index {
		width: 28%;

	}


	#sub05 .text {
		font-size: 1.6rem;
		margin-top: 3rem;
	}

	#sub06.sub-section {
		padding-bottom: 10rem;
	}

	#sub06 .num-box::after {
		height: 20px;
		bottom: -35px;
	}

	#sub06 .num-box {
		width: 100%;
		background-color: #F2F9FC;
		position: relative;
		margin-bottom: 5rem;
	}

	#sub06 .num-box::after {
		height: 20px;
		bottom: -35px;
	}

	#sub06 .num-box .flex-container {
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 4rem 1.8rem 4rem;
	}

	#sub06 .num-box .flex-container .flex-item-title {
		width: 100%;
		margin-bottom: 2rem;
	}



	#sub06 .num-box .flex-container .flex-item-text {
		width: 100%;
		font-size: 1.2rem;
	}



	#sub06 .list-figures.col2 .num-item {
		width: 10%;
		line-height: 1;
		position: relative;
		top: 4px;
	}



	#sub06 .list-figures.col2 .num-item .num {
		font-size: 6rem;

	}

	#sub06 .list-figures.col2 {
		justify-content: flex-start;
		margin-top: 0rem;
		position: relative;
		margin-bottom: 20px;
	}

	#sub06 .list-figures.col2::before {
		content: '';
		position: absolute;
		bottom: -15px;
		display: inline-block;
		width: 24px;
		height: 1px;
		left: 10px;
		transform: translate(-50%, 0);
		background-color: #B9B6A9;
	}

	#sub06 .list-figures.col2 .title-item {
		width: 80%;
		padding-left: 3rem;
		font-size: 1.6rem;

	}

	.has-bg .flex-container.btn-box {
		margin-top: 6rem;
	}

	.has-bg .text {
		line-height: 1.8;
		font-size: 1.8rem;
	}

	.has-bg {
		padding: 5rem 0;
		margin-bottom: 4rem;
	}

	.mail-maga .btn-arrow-right {
		margin-top: 6rem;
	}

	.mail-maga .mail {
		font-size: 1.2rem;
		margin-top: 1rem;
		display: block;
		text-align: center;
	}

	/* .mail-maga .mail .text-left {
		display: inline-block;
		text-align: left;
	} */

	.mail-maga .text {
		font-size: 1.6rem;
	}

	/* .btn-wrap.yoyaku {
		margin-bottom: 10rem;
	} */
}

/* ====================================
	768px以上印刷専用スタイル
===================================== */
@media print,
screen and (min-width: 768px) {
	#mainVisual .main-img {
		background-image: url(images/mv-menu.jpg);
	}

	/* #mainVisual .main-img {
		background-position: center -440px !important;
	} */
	.sp-only-scroll {
		display: none;
	}

	.sub-text {
		font-size: 1.8rem;
	}

	/* 画像下揃え */
	.fix-bottom-img .flex-item {
		display: flex;
		flex-direction: column;
	}

	.fix-bottom-img .img-container {
		min-height: 0%;
		/* IE対応 */
		width: 100%;
		margin-top: auto;
		padding-top: 2rem;
	}

	.flex-container.half>.flex-item {
		width: 48%;
	}

	#sub01 .caption,
	#sub02 .caption,
	#sub03 .caption {
		margin-top: 5rem;
	}



	#sub03 .btn-arrow-right.right {
		margin-left: 0;
	}

	#sub03 .btn-arrow-right.left {
		margin-right: 0;
	}

	.menu.flex-container {
		margin-top: 6rem;
	}

	.menu.flex-container .title {
		font-size: 3rem;
		margin-top: 1rem;
		line-height: 1.4;
	}


	.menu.flex-container .period {
		font-size: 1.6rem;
		margin-top: 0;
	}


	.menu.flex-container .text {
		font-size: 1.6rem;
		margin-top: 2rem;
		padding-bottom: 3rem;
		border-bottom: solid 1px #008EC8;
	}


	.menu.flex-container .flex-item {
		width: 48%;
		/* border-bottom: solid 1px #008EC8; */
	}

	.flex-container.btn-box {
		margin-top: 8rem;
	}

	.flex-container.btn-box .flex-item {
		width: 48%;
	}

	.flex-container.btn-box .left {
		margin-left: auto;

	}

	#sub01 .btn-arrow-right.right {
		margin-left: 0;
	}

	#sub01 .btn-arrow-right.left {
		margin-right: 0;
	}

	#sub02 .em {
		font-size: 1.4rem;
		margin-bottom: 2.3rem;
	}


	#sub04.sub-section {
		/* padding-bottom: 14rem; */
	}


	#sub04 .flex-container.program-box {
		margin-top: 8rem;
	}

	#sub04 .flex-container.program-box .flex-item {
		width: 45%;
		padding-bottom: 3rem;
		border-bottom: solid 1px #008EC8;
	}

	#sub04 .title::before {
		bottom: -20px;
	}

	#sub04 .program {
		font-size: 1.8rem;

	}

	#sub04 .title {
		font-size: 3rem;
		margin-top: 14rem;
	}

	#sub04 .program-title {
		font-size: 2.8rem;
		line-height: 1.2;
	}

	#sub04 .program-title .small-text {
		font-size: 1.8rem;
	}

	#sub04 .period {
		font-size: 1.6rem;
		margin-top: 2rem;
	}

	#sub04 .text {
		font-size: 1.8rem;
		margin-top: 2rem;
	}

	#sub04 .btn-arrow-right {
		margin-top: 8rem;
	}

	/* #sub04 .btn-arrow-right.right {
		margin-left: 0;
	} */

	#sub04 .btn-arrow-right.left {
		margin-right: 0;
	}

	#sub04 .mail-container {
		margin-top: 5rem;
	}

	#sub04 .mail-container .text .mail {
		font-size: 1.2rem;
		margin-top: 1rem;
	}

	#sub05 .title {
		font-size: 3rem;
		margin-top: 6rem;
	}

	#sub05 .title::before {
		bottom: -20px;
	}


	#sub05 table.table-price {
		font-size: 1.6rem;
		line-height: 1.4;
		margin-top: 8rem;
	}


	#sub05 table.table-price th {
		padding: 10px;
	}

	#sub05 table.table-price td {
		width: 30%;
		padding-left: 1em;
		padding: 10px;
		line-height: 2;
	}

	#sub05 .text {
		font-size: 1.8rem;
		margin-top: 8rem;
	}

	#sub06.sub-section {
		padding-bottom: 16rem;
	}

	#sub06 .num-box {
		width: 100%;
		background-color: #F2F9FC;
		position: relative;
		margin-bottom: 5rem;
	}

	#sub06 .num-box::after {
		height: 20px;
		bottom: -35px;
	}

	#sub06 .num-box .flex-container {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	#sub06 .num-box .flex-container .flex-item-text {
		width: 60%;
		padding-right: 4rem;
		font-size: 1.4rem;
	}

	#sub06 .num-box .flex-container .flex-item-title {
		width: 40%;
		font-size: 1.8rem;
	}



	#sub06 .list-figures.col2 .num-item {
		width: 40%;
	}

	#sub06 .list-figures.col2 .title-item {
		width: 60%;
		padding-right: 3rem;
	}


	#sub06 .list-figures.col2 .num-item .num {
		font-size: 10rem;
	}

	#sub06 .title-item .title {
		position: relative;
		margin-bottom: 20px;
	}

	#sub06 .title-item .title::before {
		content: '';
		position: absolute;
		bottom: -20px;
		display: inline-block;
		width: 20px;
		height: 1px;
		left: 0;
		background-color: #B9B6A9;
	}



	.has-bg {
		padding: 7rem 1.5%;
		margin-bottom: 10rem;
	}

	.has-bg .text {
		line-height: 1.8;
		font-size: 2.8rem;
	}

	.has-bg .text::before {
		bottom: -25px;
	}

	/* .btn-wrap.yoyaku {
		margin-bottom: 20rem;
	} */

	.about .btn-arrow-right.right {
		margin-left: 0;
	}

	.about .btn-arrow-right.left {
		margin-right: 0;
	}

	.mail-maga .btn-arrow-right {
		margin-top: 9rem;
	}

	.mail-maga .mail {
		font-size: 1.2rem;
		margin-top: 2rem;
	}

	.mail-maga .text {
		font-size: 2.4rem;
	}

}

/* ====================================
	580px以上767px以下専用スタイル
===================================== */
@media only screen and (min-width: 580px) and (max-width: 767px) {
	.sp-only-scroll {
		display: none;
	}
}

/* ====================================
	768px以上1023px以下専用スタイル
===================================== */
@media only screen and (min-width: 768px) and (max-width: 1023px) {
	#sub05 .sp-small {
		display: none;
	}

	#sub06 .num-box .flex-container .flex-item-text {
		width: 56%;
	}

	#sub06 .num-box .flex-container .flex-item-title {
		width: 44%;
	}

}


/* ====================================
	1024px以上1199px以下専用スタイル
===================================== */
@media print,
screen and (min-width: 1024px) and (max-width: 1199px) {}

/* ====================================
	1200px以上専用スタイル
===================================== */
@media screen and (min-width: 1200px) {}

/* ====================================
	1500px以上専用スタイル
===================================== */
@media screen and (min-width: 1500px) {}

/* ====================================
	IE
===================================== */
@media all and (-ms-high-contrast: none),
(-ms-high-contrast: active) {}