.ef {
	opacity : 0;
	transform : translate(0, 30px);
	transition : all 1.5s;
}
.ef.active {
	opacity : 1;
	transform : translate(0, 0);
}

/*cover*/
#cover {
	padding-top: 70px;
}
#cover .cover-keyVisual {
	width: 100%;
}
#cover .cover-keyVisual img {
	height: 100%;
	max-height: 70vh;
	object-fit: cover;
	object-position: center;
}
#cover .cover-msg {
	position: absolute;
	top: 100px;
	right: 50px;
	z-index: 2;
	margin: auto;
	width: fit-content;
}
#cover .cover-msg h1 {
	overflow: hidden;
	width: 0%;
	animation: covertxt1 forwards 1.5s ease 1s;
}
#cover .cover-msg h1 span {
	display: block;
	width: fit-content;
	padding: 10px;
	color: #FFF;
	font-size: 1.6em;
	margin-top: 10px;
	background: var(--color-yel);
	text-align: center;
	font-weight: bold;
	white-space: nowrap;
}
#cover .cover-msg h1 span:before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	width: 100%;
	margin: auto;
	background: var(--color-yel);
	animation: covertxt2 forwards 1s ease 1.5s;
}

@keyframes covertxt1 {
	0%{
		width: 0%;
	}
	100%{
		width: 100%;
	}
}
@keyframes covertxt2 {
	0%{
		width: 100%;
	}
	100%{
		width: 0%;
	}
}

#cover .cover-tmbscroll {
	z-index: 3;
	margin: auto;
	height: 10vw;
	height: 10dvw;
	width: 100%;
	background: var(--color-gre);
	border-bottom: 10px solid #097017;
}
#cover .cover-tmbscroll .cover-tmb-slide {
	z-index: 2;
	height: 100%;
	bottom: 20%;
}
#cover .cover-tmbscroll .cover-tmb-slide li {
	height: 100%;
	width: calc(100% / 5);
	margin: auto 20px;
}
#cover .cover-tmbscroll .cover-tmb-slide li img {
	object-fit: contain;
	object-position: top center;
	height: 100%;
}
#cover .cover-tmbscroll .cover-tmbscroll--bg {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: 1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	opacity: 0.2;
}



/*プログラミングカレッジとは*/
#pgcoll {}
#pgcoll .pgcoll-contents {
	background-image: url(/top/img/pgcoll_bg.png);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	padding: 200px 0;
}
#pgcoll .pgcoll-contents h2 {
	text-align: center;
	color: #000;
	font-weight: bold;
	font-size: 1.4em;
	text-shadow: 2px 2px 0px rgb(0 0 0 / 0.2);
}
#pgcoll .pgcoll-contents .pgcoll-contents--msg {
	width: 90%;
	max-width: 1000px;
	background: var(--color-gre);
	border: 10px solid var(--color-gre-str);
	padding: 30px;
	margin-top: 30px;
	border-radius: 10px;
	margin: 50px auto auto;
}
#pgcoll .pgcoll-contents .pgcoll-contents--msg p {
	color: #FFF;
	font-size: 0.8em;
	line-height: 1.6;
}
#pgcoll .pgcoll-contents .pgcoll-contents--msg .pgcoll-contents--icon {
	display: flex;
	margin-top: 30px;
}
#pgcoll .pgcoll-contents .pgcoll-contents--msg .pgcoll-contents--icon img {
	width: 20%;
	display: block;
	margin-right: 20px;
	object-fit: contain;
	object-position: center;
}
#pgcoll .pgcoll-contents .pgcoll-contents--msg .pgcoll-contents--icon img:last-child {
	margin-right: 0;
}



/*プログラミングカレッジならではの特長*/
#features {
	background: var(--color-yel);
	padding: 100px 0;
	border-radius: 0 0 50px 50px;
	box-shadow: 0 -30px 30px 0 rgb(0 0 0 / 20%);
	border-top: 10px solid #D18900;
	z-index: 2;
}
#features:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
	height: 100%;
	width: 55%;
	background: var(--color-yel-str);
	border-radius: 0 0 0 50px;
	clip-path: polygon(0 0, 100% 0, 60% 100%, 0% 100%);
}
#features:after {
	content: '';
	position: absolute;
	display: block;
	right: 10%;
	bottom: -7vw;
	max-width: 300px;
	max-height: 300px;
	width: 10vw;
	height: 10vw;
	border-radius: 100%;
	background: #FFF;
}
#features .features-contents {
	max-width: 1000px;
	width: 90%;
	margin: auto;
}
#features .features-contents h2 {
	text-align: center;
	font-size: 1.4em;
	font-weight: bold;
	color: #000;
}
#features .features-contents .features-block {
	display: -webkit-flex;
	display: flex;
	margin: 50px auto;
}
#features .features-contents .features-block .features-block--tmb {
	max-width: 300px;
	width: 30%;
	display: block;
	object-fit: contain;
	object-position: center;

}
#features .features-contents .features-block .features-block--txt {
	width: 70%;
	padding-left: 30px;
}
#features .features-contents .features-block .features-block--txt h3 {
	color: #000;
	margin: auto auto 30px 0;
	max-width: 85%;
	font-size: 0.9em;
	font-weight: bold;
}
#features .features-contents .features-block .features-block--txt .features-block--txt_msg {
	color: #000;
	font-size: 0.7em;
	line-height: 1.8;
}



/*プログラミング必修化について*/
#compulsory {
	background: #FFF;
	padding: 100px 0;
}
#compulsory:before {
	content: '';
	position: absolute;
	top: -50px;
	left: 0;
	right: 0;
	width: 100%;
	height: 50px;
	background: #FFF;
	display: block;
}
#compulsory .compulsory-contents {
	max-width: 1000px;
	width: 90%;
	margin: auto;
}
#compulsory .compulsory-contents h2 {
	color: #000;
	text-align: center;
	font-size: 1.4em;
	font-weight: bold;
	text-shadow: 2px 2px 0px rgb(0 0 0 / 0.2);
}
#compulsory .compulsory-contents p {
	font-size: 0.7em;
	line-height: 1.8;
}



/*カリキュラム・コース紹介*/
#course {
	background: #FFF;
	width: 100%;
	margin: auto;
	padding: 100px 0;
	overflow: hidden;
}
#course .course-contents {
	max-width: 1400px;
	width: 90%;
	margin: auto;
}
#course .course-contents .course-block {
	max-width: 1000px;
	width: 90%;
	margin: auto;
	background: var(--color-gra);
	border-radius: 50px;
}
#course .course-contents .course-block .course-block--wrap {
	width: 100%;
	margin: auto;
}
#course .course-contents .course-block h2 {
	font-weight: bold;
	color: #000;
	font-size: 1.4em;
	text-align: center;
	padding: 50px 20px 20px;
}
#course .course-contents .course-block p {
	color: #000;
	font-size: 0.7em;
	line-height: 1.6;
	margin: auto;
	padding: 0 50px 50px;
	text-align: center;
}
#course .course-contents .course-block .course-introduction {
	max-width: 800px;
	width: 90%;
	display: block;
	margin: auto;
	padding-bottom: 50px;
}
#course .course-contents .course-block.course-step1,
#course .course-contents .course-block.course-step2,
#course .course-contents .course-block.course-step3 {}


#course .course-contents .course-block:before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	width: 70%;
	height: 100%;
	margin: auto;
	display: block;
	background: var(--color-gra-str);
	clip-path: polygon(30% 0, 100% 0, 100% 100%, 0% 100%);
	border-radius: 0 50px 50px 0;
}
#course .course-contents .course-block.course-step1:before {
	background: var(--color-gre-str);
}
#course .course-contents .course-block.course-step2:before {
	background: var(--color-yel-str);
}
#course .course-contents .course-block.course-step3:before {
	background: var(--color-red-str);
}

#course .course-contents .course-block:after {
	content: '';
	position: absolute;
	display: block;
	right: 10%;
	top: -2vw;
	max-width: 300px;
	max-height: 300px;
	width: 10vw;
	height: 10vw;
	border-radius: 100%;
	background: var(--color-gra-str);
}
#course .course-contents .course-block.course-step1:after {
	background: var(--color-gre-str);
}
#course .course-contents .course-block.course-step2:after {
	background: var(--color-yel-str);
}
#course .course-contents .course-block.course-step3:after {
	background: var(--color-red-str);
}

#course .course-contents .course-block.course-step1 .course-block--wrap:before,
#course .course-contents .course-block.course-step2 .course-block--wrap:before,
#course .course-contents .course-block.course-step3 .course-block--wrap:before {
	content: '';
	position: absolute;
	display: block;
	max-width: 300px;
	max-height: 300px;
	width: 10vw;
	height: 10vw;
	border-radius: 100%;
	background: #FFF;
	margin: auto;
}
#course .course-contents .course-block.course-step1 .course-block--wrap:before {
	background: var(--color-gre);
	top: 0;
	bottom: 0;
	left: -2vw;
}
#course .course-contents .course-block.course-step2 .course-block--wrap:before {
	top: 0;
	bottom: 0;
	right: -8vw;
}
#course .course-contents .course-block.course-step3 .course-block--wrap:before {
	top: 0;
	bottom: 0;
	left: -12vw;
}

#course .course-contents .course-block.course-step1 h2,
#course .course-contents .course-block.course-step2 h2,
#course .course-contents .course-block.course-step3 h2 {
	color: #FFF;
}
#course .course-contents .course-block.course-step1 p,
#course .course-contents .course-block.course-step2 p,
#course .course-contents .course-block.course-step3 p {
	color: #FFF;
}
#course .course-contents .course-block.course-step1 .course-block--subttl,
#course .course-contents .course-block.course-step2 .course-block--subttl,
#course .course-contents .course-block.course-step3 .course-block--subttl {
	font-size: 0.8em;
	padding: 0 50px 20px;
}
#course .course-contents .course-block.course-step1 {
	background: var(--color-gre);
}
#course .course-contents .course-block.course-step2 {
	background: var(--color-yel);
}
#course .course-contents .course-block.course-step3 {
	background: var(--color-red);
}



/*教室一覧*/
#classroom {
	padding: 100px 0;
	background: var(--color-gra);
	border-radius: 50px;
}
#classroom:after {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	height: 70%;
	background: var(--color-gra-str);
	border-radius: 0 0 50px 50px;
	clip-path: polygon(0 50%, 100% 0, 100% 100%, 0% 100%);
}
#classroom .classroom-contents {
	max-width: 1000px;
	width: 90%;
	margin: auto;
}
#classroom .classroom-contents h2 {
	color: #000;
	text-align: center;
	font-size: 1.4em;
	font-weight: bold;
	text-shadow: 2px 2px 0px rgb(0 0 0 / 0.2);
}
#classroom .classroom-contents .classroom-select {
	display: block;
}
#classroom .classroom-contents .classroom-select .classroom-select--item {
	display: inline-block;
	margin: auto 20px 20px 0;
	border-radius: 10px;
	border: 1px solid #000;
	box-shadow: 0px 5px 0 0px rgb(0 0 0 / 40%);
	cursor: pointer;
	font-size: 0.7em;
	padding: 5px 10px;
	background: #FFF;
	-webkit-user-select:none;
	-moz-user-select:none;
	-ms-user-select:none;
}
#classroom .classroom-contents .classroom-select .classroom-select--item:last-child {
	margin-right: 0px;
}
#classroom .classroom-contents .classroom-select .classroom-select--item.active {
	background: var(--color-gre);
	color: #FFF;
	box-shadow: 0px 0px 0 0px rgb(0 0 0 / 40%);
}
#classroom .classroom-contents .classroom-list {
	margin: 20px auto;
	display: flex;
	-ms-flex-pack: justify;
	width: 100%;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
}
#classroom .classroom-contents .classroom-list .classroom-list--item {
	display: none;
	max-width: 300px;
	width: calc(90% / 3);
	margin: 50px 4% 0 0;
}
#classroom .classroom-contents .classroom-list .classroom-list--item:nth-child(3n) {
	margin-right: 0;
}
#classroom .classroom-contents .classroom-list .classroom-list--item.active {
	display: block;
}
#classroom .classroom-contents .classroom-list .classroom-list--item .classroom-list-tmb {
	display: block;
	border-radius: 10px;
	box-shadow: 10px 10px 0 0px rgb(0 0 0 / 40%);
}
#classroom .classroom-contents .classroom-list .classroom-list--item .classroom-list--name {
	margin: 20px auto;
	font-size: 0.7em;
}
#classroom .classroom-contents .classroom-list .classroom-list--item .classroom-list--link {
	text-align: right;
	text-decoration: underline;
	font-size: 0.7em;
}
#classroom .classroom-contents .classroom-list .classroom-list--item.none {
	margin: auto;
	max-width: 100%;
	width: 100%;
}
#classroom .classroom-contents .classroom-list .classroom-list--item.none .classroom-list--name {
	text-align: center;
	width: 100%;
	padding: 100px 0;
	border-top: 1px solid #dddddd;
	border-bottom: 1px solid #dddddd;
}



/*Q&A*/
#qa {
	padding: 100px 0;
}
#qa .qa-contents {
	max-width: 1000px;
	width: 90%;
	margin: auto;
}
#qa .qa-contents h2 {
	color: #000;
	text-align: center;
	font-size: 1.4em;
	font-weight: bold;
	text-shadow: 2px 2px 0px rgb(0 0 0 / 0.2);
}
#qa .qa-contents .qa-block {
	padding-left: 20px;
	margin: 50px auto;
}
#qa .qa-contents .qa-block.hide {
	display: none;
}
#qa .qa-contents .qa-block:before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 10px;
	height: 100%;
	border-radius: 10px;
	background: var(--color-gra);
}
#qa .qa-contents .qa-block:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 10px;
	height: 50%;
	border-radius: 0 0 10px 10px;
	background: var(--color-gra-str);
	z-index: 2;
	clip-path: polygon(0 50%, 100% 0, 100% 100%, 0% 100%);
}
#qa .qa-contents .qa-block .qa-que {
	padding-top: 15px;
	padding-left: 60px;
	margin-bottom: 30px;
	font-weight: bold;
}
#qa .qa-contents .qa-block .qa-ans {
	padding-top: 15px;
	padding-left: 60px;
	font-size: 0.8em;
	line-height: 1.6;
}
#qa .qa-contents .qa-block .qa-que:before,
#qa .qa-contents .qa-block .qa-ans:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0px;
	width: 50px;
	height: 50px;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
}
#qa .qa-contents .qa-block .qa-que:before {
	background-image: url(/common/img/qa_q.png);
}
#qa .qa-contents .qa-block .qa-ans:before {
	background-image: url(/common/img/qa_a.png);
}




/*===========================
=============================
SP ~750
=============================
===========================*/
@media screen and (max-width:750px) {

	#cover {

	}
	#cover .cover-keyVisual {
		height: 36vh;
	}
	#cover .cover-msg {
		right: 20px;
	}
	#cover .cover-msg h1 span {
		font-size: 5vw;
	}
	#cover .cover-tmbscroll {
		height: 30vw;
		height: 30dvw;
	}
	#cover .cover-tmbscroll .cover-tmb-slide li {
		width: calc(100% / 2);
	}


	#pgcoll .pgcoll-contents .pgcoll-contents--msg .pgcoll-contents--icon img {
		width: 30%;
	}


	#features .features-contents .features-block {
		display: block;
		max-width: 500px;
		width: 90%;
	}
	#features .features-contents .features-block .features-block--tmb {
		max-width: 100%;
		width: 100%;
		margin: auto auto 20px;
	}
	#features .features-contents .features-block .features-block--txt {
		width: 100%;
		padding: 0;
	}


	#compulsory .compulsory-contents h2 {
		font-size: 6vw;
	}



	/*カリキュラム・コース紹介*/
	#course .course-contents .course-block h2 {
		font-size: 1em;
	}
	#course .course-contents .course-block p {
		font-size: 0.6em;
		padding: 0 30px 50px;
		text-align: left;
	}
	#course .course-contents .course-block.course-step1 .course-block--subttl, 
	#course .course-contents .course-block.course-step2 .course-block--subttl, 
	#course .course-contents .course-block.course-step3 .course-block--subttl {
		padding: 0 30px 20px;
	}
	#course .course-contents .course-block:after {
		top: -4vw;
		width: 20vw;
		height: 20vw;
	}
	#course .course-contents .course-block.course-step1 .course-block--wrap:before, 
	#course .course-contents .course-block.course-step2 .course-block--wrap:before, 
	#course .course-contents .course-block.course-step3 .course-block--wrap:before, 
	#course .course-contents .course-block.course-step3 .course-block--wrap:after {
		width: 20vw;
		height: 20vw;
	}
	#course .course-contents .course-block.course-step1 .course-block--wrap:before {
		left: -4vw;
	}
	#course .course-contents .course-block.course-step2 .course-block--wrap:before {
		right: -15vw;
	}
	#course .course-contents .course-block.course-step3 .course-block--wrap:before {
		left: -15vw;
	}
	#course .course-contents .course-block.course-step3 .course-block--wrap:after {
		bottom: -15vw;
	}


	#classroom .classroom-contents .classroom-list .classroom-list--item {
		margin: 30px auto;
		width: 100%;
	}
	#classroom .classroom-contents .classroom-list .classroom-list--item:nth-child(3n) {
		margin: 30px auto;
	}


	#pgcoll .pgcoll-contents h2 {
		font-size: 6vw;
	}

}