#loading {
	position : absolute;
	left : 50%;
	top : 50%;
	margin-top : -50px;
	margin-left : -50px;
	width : 100px;
	text-align : center;
}

#loading img {
	width : 32px;
	height : 32px;
}

#loading p {
	display : block;
	margin-top : 20px;
	color : #ca2420;
}

@media screen and (min-width: 768px) {
	#loading {
		margin-top : -32px;
		margin-left : -32px;
	}
	#loading img {
		width : 64px;
		height : 64px;
	}
}

#loader-bg {
	position : fixed;
	width : 100%;
	height : 100%;
	top : 0;
	left : 0;
	background-color : #fff;
	z-index : 999;
}

#main {
	position : relative;
}

#main .main-pc {
	width : 100%;
	display : none;
	position : relative;
}

@media screen and (min-width: 768px) {
	#main .main-pc {
		display : block;
	}
}

#main .main-sp {
	display : block;
}

@media screen and (min-width: 768px) {
	#main .main-sp {
		display : none;
	}
}

#main .main-btn {
	position : absolute;
	bottom : 90px;
	right : 0;
	left : 0;
	margin : auto;
	display : inline-block;
	width : 27px;
	height : 15px;
	z-index : 5;
	transition : all 0.2s ease-out;
}

@media screen and (min-width: 768px) {
	#main .main-btn {
		bottom : 50px;
		width : 36px;
		height : 20px;
	}
}

#main .main-btn > img {
	width : 27px;
	height : 15px;
}

@media screen and (min-width: 768px) {
	#main .main-btn > img {
		width : 36px;
		height : 20px;
	}
}

@media screen and (min-width: 961px) {
	#main .main-btn:hover {
		cursor : pointer;
		bottom : 40px;
	}
}

#program {
	position : relative;
	padding : 50px 0 45px;
	background-color : #fff;
}

@media screen and (min-width: 768px) {
	#program {
		padding : 70px 0 44px;
	}
}

#program .u-prog {
	*zoom : 1;
	padding-top : 30px;
	margin : 0;
}

#program .u-prog:after {
	content : ' ';
	display : table;
	clear : both;
}

@media screen and (min-width: 768px) {
	#program .u-prog {
		padding-top : 25px;
		margin : 30px -15px 0;
	}
}

#program .u-prog > *:first-child {
	margin-top : 0;
}

#program .u-prog .prog-img, #program .u-prog .prog-txt {
	margin-top : 10px;
}

@media screen and (min-width: 768px) {
	#program .u-prog .prog-img, #program .u-prog .prog-txt {
		padding : 0 15px;
		margin : 0;
	}
}

#program .u-prog .prog-img > *:first-child, #program .u-prog .prog-txt > *:first-child {
	margin-top : 0;
}

#program .u-prog .prog-img {
	display : inline-block;
	margin : 0 auto;
}

@media screen and (min-width: 768px) {
	#program .u-prog .prog-img {
		float : left;
		width : calc(100% / 3);
	}
}

@media screen and (min-width: 768px) {
	#program .u-prog .prog-txt {
		float : right;
		width : 66.6%;
	}
}

@media screen and (min-width: 768px) {
	#program .u-prog .prog-txt .m-txt-subttl2 {
		margin-top : -10px;
	}
}

#program .u-prog.prog01 .prog-img, #program .u-prog.prog02 .prog-img {
	position : relative;
}

#program .u-prog.prog01 .prog-img:before, #program .u-prog.prog02 .prog-img:before {
	content : '';
	position : absolute;
	top : -25px;
	left : 10px;
}

@media screen and (min-width: 768px) {
	#program .u-prog.prog01 .prog-img:before, #program .u-prog.prog02 .prog-img:before {
		top : -35px;
		left : 35px;
	}
}

#program .u-prog.prog01 .prog-img {
	position : relative;
}

#program .u-prog.prog01 .prog-img:before {
	width : 42px;
	height : 52px;
	background : url(../../images/i_num01.png) center center no-repeat;
	background-size : 42px auto;
}

@media screen and (min-width: 768px) {
	#program .u-prog.prog01 .prog-img:before {
		width : 57px;
		height : 70px;
		background-size : 57px auto;
	}
}

#program .u-prog.prog02 .prog-img {
	position : relative;
}

#program .u-prog.prog02 .prog-img:before {
	width : 54px;
	height : 54px;
	background : url(../../images/i_num02.png) center center no-repeat;
	background-size : 54px auto;
}

@media screen and (min-width: 768px) {
	#program .u-prog.prog02 .prog-img:before {
		width : 63px;
		height : 63px;
		background-size : 63px auto;
	}
}

#program .u-innovator {
	margin-top : 20px;
}

@media screen and (min-width: 768px) {
	#program .u-innovator {
		margin-top : 40px;
	}
}

#program .u-innovator .innovator-ttl {
	text-align : center;
	font-size : 25.6px;
	font-size : 1.6rem;
	font-weight : bold;
	line-height : 1;
	color : #ca2420;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-ttl {
		font-size : 1.9rem;
	}
}

#program .u-innovator .innovator-box {
	margin-top : 35px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
	#program .u-innovator .innovator-box {
		margin : 40px -10px 0;
		letter-spacing : -0.4em;
	}
}

@media screen and (min-width: 961px) {
	#program .u-innovator .innovator-box {
		margin : 40px -10px 0;
		display : -ms-flexbox;
		display : flex;
	}
}

#program .u-innovator .innovator-box .box-item {
	margin-top : 30px;
	position : relative;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
	#program .u-innovator .innovator-box .box-item {
		width : 50%;
		display : inline-block;
		letter-spacing : normal;
		padding : 0 10px;
		margin-top : 0;
	}
	#program .u-innovator .innovator-box .box-item:nth-child(n+3) {
		margin-top : 40px;
	}
}

@media screen and (min-width: 961px) {
	#program .u-innovator .innovator-box .box-item {
		width : 25%;
		padding : 0 10px;
		margin-top : 0;
	}
}

#program .u-innovator .innovator-box .box-item:before {
	content : '';
	width : 100%;
	height : 0;
	display : block;
	position : absolute;
	left : 0;
	margin : -15px 0 0;
	border-right : solid 15px transparent;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item:before {
		width : calc(100% - 20px);
		margin : -20px 10px 0;
		border-right : solid 20px transparent;
	}
}

#program .u-innovator .innovator-box .box-item:first-child {
	margin-top : 0;
}

#program .u-innovator .innovator-box .box-item .item-wrap {
	padding : 0 15px 15px;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item .item-wrap {
		padding : 0 20px 20px;
	}
}

#program .u-innovator .innovator-box .box-item .item-txt {
	color : #fff;
	text-align : center;
}

#program .u-innovator .innovator-box .box-item .item-txt .txt-en {
	font-family : 'Open Sans';
	font-weight : 900;
	margin-top : 5px;
	font-size : 28.8px;
	font-size : 1.8rem;
	font-weight : bold;
	letter-spacing : 0.05em;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item .item-txt .txt-en {
		font-size : 2.0rem;
	}
}

#program .u-innovator .innovator-box .box-item:nth-child(odd):before {
	border-bottom : solid 15px #ca2420;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item:nth-child(odd):before {
		border-bottom : solid 20px #ca2420;
	}
}

#program .u-innovator .innovator-box .box-item:nth-child(odd) .item-wrap {
	background-color : #ca2420;
}

#program .u-innovator .innovator-box .box-item:nth-child(even):before {
	border-bottom : solid 15px #000;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item:nth-child(even):before {
		border-bottom : solid 20px #000;
	}
}

#program .u-innovator .innovator-box .box-item:nth-child(even) .item-wrap {
	background-color : #000;
}

.u-configuration-container {
	margin-top : 10px;
}
