@charset "utf-8";

/*----------------------------------------------------------------
 /category/ under
----------------------------------------------------------------*/
/*----------------------------------------------------------------
 base
----------------------------------------------------------------*/
body{ overflow-y: hidden; }

/*----------------------------------------------------------------
 layout
----------------------------------------------------------------*/
/*----------------------------------------------------------------
 styles
----------------------------------------------------------------*/
/*----------------------------------------------------------------
 layout
----------------------------------------------------------------*/
#video{
	margin				: 0 0 30px 0;
	padding				: 50px 0 20px 0;
	background			: #222222;
}
@media screen and (min-width: 769px) {
#video{ padding: 100px 0 30px 0; }
}


/*-----------------------------------------------------
 common
-----------------------------------------------------*/
#contents h2{
	margin				: 0 0 50px 0;
	text-align			: center;
	font-size			: 1.5rem;
	font-weight			: bold;
	line-height			: 1;
}
#contents h2>span{
	border-bottom		: 2px solid #FFF;
	padding				: 0 0 5px 0;
}

@media screen and (min-width: 769px) {
#contents h2{
	margin				: 0 0 80px 0;
	font-size			: 30px;
}
#contents h2>span{ border-bottom: 4px solid #FFF; }
}

/*-----------------------------------------------------
 labo
-----------------------------------------------------*/
/* class-select
-----------------------------------------------------*/
#main .class-select{ margin: 10px 0 30px 0; }
#main .class-select dl{
	text-align			: center;
	line-height			: 1;
}
#main .class-select dl dt{
	display				: inline-block;
	border				: 1px solid #999;
	width				: 60px;
	padding				: 2px 0;
	text-align			: center;
	vertical-align		: middle;
	font-size			: 1.2rem;
}
#main .class-select dl dd:before{
	content				: "";
	display				: block;
	margin				: 10px auto;
	width				: 13px;
	height				: 13px;
	background			: url(../../common/images/multiplied.png) center center /cover no-repeat;
}
#main .class-select dl dd ul,
#main .class-select dl dd ul li{ display: inline; }
#main .class-select dl dd span{
	display				: inline-block;
	margin				: 0 0 5px 0;
	border-radius		: 15px;
	padding				: 4px 9px;
	background			: #333;
	text-align			: center;
	font-size			: 1.2rem;
	cursor				: pointer;
}
#main .class-select dl dd span.is-checked{
	background			: #FFF;
	color				: #111;
}

#main .class-select dl dd .show-all{
	margin				: 20px 0 10px 0;
	text-align			: center;
}
#main .class-select dl dd .show-all span{
	border				: 1px solid #999;
	background			: transparent;
	color				: #FFF;
}
#main .class-select dl dd .show-all span.is-checked{
	border				: 1px solid transparent;
	background			: #FFF;
	color				: #111;
}
@media screen and (min-width: 769px) {
#main .class-select{ margin: 0 0 75px 0; }
#main .class-select dl dt{
	width				: 120px;
	padding				: 4px 0;
	font-weight			: bold;
	font-size			: 1.6rem;
}
#main .class-select dl dd:before{
	display				: inline-block;
	margin				: 0 10px;
	width				: 25px;
	height				: 25px;
	vertical-align		: middle;
}
#main .class-select dl dd,
#main .class-select dl dd ul,
#main .class-select dl dd ul li{ display: inline; }
#main .class-select dl dd span{
	min-width			: 80px;
	max-width			: 100px;
	padding				: 5px;
	font-size			: 1.4rem;
	font-weight			: bold;
}
#main .class-select dl dd .show-all span{
	max-width			: initial;
	width				: 150px;
}
}
@media screen and (min-width: 960px) {
#main .class-select dl dd span{
	max-width			: initial;
	width				: 115px;
}
}
@media screen and (min-width: 1180px) {
#main .class-select dl{ text-align: left; }
#main .class-select dl dd span{ width: 149px; }
}

/* class-list
-----------------------------------------------------*/
#main .class-list>ul>li{ list-style: none; }
@media screen and (max-width: 768px) {
#main .class-list>ul{ margin: 0 -8px; }
#main .class-list>ul>li{
	margin				: 0 7px 0 7px;
	width				: 45%;
	padding				: 0 0 30px 0;
}
}
@media screen and (min-width: 769px) {
#main .class-list>ul{ margin: 0 -14px; }
#main .class-list>ul>li{
	margin				: 0 12px 0 12px;
	width				: 30%;
	padding				: 0 0 57px 0;
}
}
@media screen and (min-width: 960px) {
#main .class-list>ul>li{ width: 30.6%; }
}
@media screen and (min-width: 1180px) {
#main .class-list>ul>li{ width: 31%; }
}

/* item --------------------------------------------*/
#main .class-list>ul>li .open_button figure{ cursor: pointer; }
#main .class-list>ul>li .open_button:hover{ opacity: 0.8; }

#main .class-list>ul>li .open_button figure>span{
	display				: block;
	overflow			: hidden;
	margin				: 0 0 12px 0;
	aspect-ratio		: 175 / 100;
	border-radius		: 5px;
}
#main .class-list>ul>li .open_button figure img{ object-fit: cover; }
#main .class-list>ul>li .open_button figcaption{
	position			: relative;
	display				: block;
	padding				: 0 20px 0 0;
	font-size			: 1.2rem;
	line-height			: 1.3;
}
#main .class-list>ul>li .open_button figcaption:after{
	content				: "";
	position			: absolute;
	right				: 0;
	top					: 1px;
	display				: inline-block;
	width				: 18px;
	height				: 18px;
	background			: url(../../common/images/close.png) center center /cover no-repeat;
	transform			: rotate(45deg);
	transition			: transform ease-in-out .2s;
}
#main .class-list>ul>li .open_button:hover figcaption:after{ transform: rotate(135deg); }
#main .class-list>ul>li .open_button strong{
	display				: block;
	margin				: 5px 0 0 0;
	line-height			: 1.4;
	font-size			: 1.2rem;
	font-weight			: normal;
}
@media screen and (min-width: 769px) {
#main .class-list>ul>li .open_button figure>span{
	margin				: 0 0 17px 0;
	border-radius		: 10px;
}
#main .class-list>ul>li .open_button figcaption{
	padding				: 0 25px 0 0;
	font-size			: 2rem;
	line-height			: 1.3;
}
#main .class-list>ul>li .open_button figcaption:after{
	top					: 2px;
	width				: 24px;
	height				: 24px;
	font-size			: 2rem;
}
#main .class-list>ul>li .open_button strong{ font-size: 1.6rem; }
}


/*-----------------------------------------------------
 video
-----------------------------------------------------*/

/* video-list
-----------------------------------------------------*/
#video .video-list ul{
	-js-display			: flex; /* IE */
	display				: -webkit-flex; /* Safari */
	display				: flex;
}
#video .video-list ul li{ list-style: none; }
#video .video-list ul li .caption{
	margin				: 8px 0 0 0;
	font-size			: 1.2rem;
	line-height			: 1.5;
}

@media screen and (max-width: 768px) {
#video .video-list{
	width				: calc(100vw - 10px);
	overflow-x			: auto;
	overflow-y			: hidden;
}
#video .video-list ul{
	width				: 100%;
	overflow-scrolling			: touch;
	-webkit-overflow-scrolling	: touch;
}
#video .video-list ul li{
	flex				: 0 0 262px;
	margin				: 0 20px 0 0;
}
}
@media screen and (min-width: 769px) {
#video .video-list ul{
	flex-direction		: row;
	flex-wrap			: wrap;
}
#video .video-list ul li{
	flex				: 0 0 31.5%;
	padding				: 0 0 57px 0;
	margin				: 0 2.7% 0 0;
}
#video .video-list ul li:nth-child(3n){ margin: 0; }
#video .video-list ul li .caption{ font-size: 1.4rem; }
}

/*-----------------------------------------------------
 modal
-----------------------------------------------------*/
/* function
-----------------------------------------------------*/
.modal_trigger{
	position			: absolute;
	width				: 100%;
	height				: 100%;
}
.close_button{
	position			: absolute;
	top					: -15px;
	right				: -5px;
	z-index				: 999;
	cursor				: pointer;
	display				: block;
	width				: 36px;
	height				: 36px;
	background			: url(../../common/images/close.png) center center /cover no-repeat;
	text-indent			: -99999em;
}
@media screen and (min-width: 769px) {
.close_button{
	top					: -15px;
	right				: -15px;
	width				: 48px;
	height				: 48px;
}
}

/* modaal setting overwrite
-----------------------------------------------------*/
.modaal-close{
	position			: absolute;
	top					: -15px;
	right				: 5px;
	z-index				: 999;
}
.modaal-close span{
	cursor				: pointer;
	display				: block;
	width				: 36px;
	height				: 36px;
	background			: url(../../common/images/close.png) center center /cover no-repeat;
	text-indent			: -99999em;
}
@media screen and (min-width: 768px) {
.modaal-close{
	top					: -18px;
	right				: -18px;
}
.modaal-close span{
	width				: 48px;
	height				: 48px;
}
}

.modaal-container{
	max-width			: 520px;
	background			: transparent;
}

@media screen and (max-height: 1000px) {
.modaal-content-container { padding: 0; }
.modaal-inner-wrapper { padding: 0;}
}

/* modal default view
-----------------------------------------------------*/
.modal{ display: none; }

/* content
-----------------------------------------------------*/
.modal_content{
	box-sizing			: border-box;
	align-self			: center;
	width				: calc(100vw - 20px);
	border-radius		: 20px;
	margin: 0 auto;
	padding				: 30px 15px 15px 15px;
	background			: linear-gradient(-39deg,  #222222 0%,#666666 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
	filter				: progid:DXImageTransform.Microsoft.gradient( startColorstr='#222222', endColorstr='#666666',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
	color: #FFF;

}
@media screen and (min-width: 769px) {
.modal_content{
	width				: 520px;
	border-radius		: 40px;
	padding				: 30px;
}
}

@media screen and (max-width: 768px) {
.modal_content .content_wrap{
	max-height			: 70vh;
	width				: 100%;
	overflow-x			: auto;
	overflow-y			: scroll;
	overflow-scrolling	: auto;
}
.modal_content .content_wrap::-webkit-scrollbar{ height:10px; }/*バーの太さ*/
.modal_content .content_wrap::-webkit-scrollbar-thumb{ background:#fff; }/*バーの色*/
}

.modal_content .image{
	margin				: 0 0 20px 0;
	text-align			: center;
}
.modal_content .image img{ border-radius: 5px; }

@media screen and (min-width: 769px) {
.modal_content .image img{ border-radius: 10px; }
}

.modal_content .field{
margin: 0 0 5px 5px;
}
.modal_content h3{
	margin				: 0 0 13px 0;
	text-align			: center;
	font-size			: 1.6rem;
	line-height			: 1.3;
	font-weight			: bold;
}

.modal_content .teacher{
	margin				: 0 0 13px 0;
	text-align			: center;
}
.modal_content .multiplied{
	margin				: 20px 0;
	text-align			: center;
}
.modal_content .text{
	margin				: 15px 0;
	line-height			: 1.7;
}

.modal_content .link{ text-align: center; }
.modal_content .link>a{
	display				: block;
	border-radius		: 20px;
	margin				: 0 auto;
	border				: 1px solid transparent;
	max-width			: 275px;
	padding				: 5px;
	background			: #FFF;
	text-decoration		: none;
	font-size			: 1.5rem;
	color				: #000;
}
.modal_content .link>a:hover{
	border				: 1px solid #FFF;
	background			: transparent;
	color				: #FFF;
}
@media screen and (min-width: 769px) {
.modal_content h3{
	margin				: 30px 0 10px 0;
	font-size			: 2.4rem;
}
.modal_content .teacher{
	margin				: 0 0 15px 0;
	font-size			: 16px;
}
.modal_content .text{
	margin				: 20px 0;
	font-size			: 16px;
}
.modal_content .link{ margin: 0 0 5px 0; }
.modal_content .link>a{ font-size: 16px; }
}

