/*-------------------------------------------------------------------------
　　CSS Reset
--------------------------------------------------------------------------*/

html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}


* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

body {
	min-height:100vh;
	font-family: 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
}

.error {
	background-color: rgba(255,0,0,0.7);
}

header {
	background-image: url("top_header_bg.jpg");
	background-position: center center;
	background-size: cover;
	height: 200px;
	position: relative;
	margin-bottom: 2em;
}
header h1 {
	font-family: 'Montserrat','Noto Sans JP', sans-serif;
	background-color: #07328c;
	color: #fff;
	padding: 0.5em 1.5em;
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
header p {
	position: absolute;
	top: 7px;
	right: 30px;
}
header p a {
	color: #fff;
	text-decoration: none;
}
@media(max-width:480px){
	header h1 {
		position: static;
	}
	header p {
		background-color: #07328C;
		position: static;
		text-align: right;
		padding: 0.5em;
	}
}
#container {
	max-width: 960px;
	margin: 0 auto;
}
h2 {
	font-family: 'Montserrat','Noto Sans JP', sans-serif;
	font-size: 2em;
	text-align: center;
	margin: 1em 0 0.5em;
}
h2 + p {
	text-align: center;
	margin-bottom: 1em;
}

#welcome p {
	text-align: center;
	padding-left: 1em;
	padding-right: 1em;
}
@media(max-width:600px){
	#welcome p {text-align: left;}
}
#lessonList {
	max-width:960px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
}
.lessonBox {
	width: 48%;
	border: 2px solid #666;
	padding: 1em;
	border-radius: 10px;
	margin-bottom: 1.5em;
}
.lessonBoxInner {
	display:flex;
	flex-wrap:wrap;
	justify-content: space-between;
}

@media(max-width:959px){
	.lessonBox {width: 96%;}
}
@media(max-width:599px){
	.lessonBox {flex-direction: column;}
}
.lessonBox h3 {
	font-size: 1.2em;
	border-bottom: 2px solid #000;
	margin-bottom: 0.5em;
	font-weight: bold;
	width: 100%;
}
.lessonBox h3 img {
	vertical-align: middle;
	margin-right: 0.5em;
}
.ai h3 {border-color:#f80;}
.ps h3 {border-color:#2a95e3;}
.ind h3 {border-color:#fe368d;}
.web h3 {border-color:#35fa00;}
.lessonBox .lessonThumb {
	width: 35%;
}
.lessonBox .lessonThumb img {
	width: 100%;
}
.lessonBox .text {
	width: calc(65% - 1em);
}

@media(max-width:599px){
	.lessonBox .lessonThumb {width: 100%;}
	.lessonBox .lessonThumb img {
		width: 100%;
		height:200px;
		object-fit: cover;
	}
	.lessonBox .text {
		width: 100%;
	}
}
.lessonBox .startBtn a {
	display: block;
	width: 15em;
	background-color: #666;
	color: #fff;
	text-align: center;
	padding: 0.3em;
	margin: 0.8em auto 0;
	text-decoration: none;
	border: 2px solid #000;
	border-radius: 20px;
}
.ai .startBtn a {
	background-color: #300;
	border-color: #f80;
}
.ps .startBtn a {
	background-color: #001e36;
	border-color: #31a8ff;
}
.ind .startBtn a {
	background-color: #26000f;
	border-color: #fe368d;
}
.web .startBtn a {
	background-color: #072600;
	border-color: #35fa00;
}


.lessonBox .startBtn a i {
	margin-right: 0.5em;
}

footer {
	background-color: #07328c;
	color: #fff;
	padding: 0.5em;
}
footer p {
	text-align: center;
}


/*-------------------------------------------------------------------------
　　各レッスンページ用設定
--------------------------------------------------------------------------*/

.lower header {
	margin-bottom: 0;
}
.lower header h1 a {
	color: #fff;
	text-decoration: none;
}
.n-n header {
	background-image: none;
	height: auto;
}
.n-n header h1 {
	position: relative;
}
.lower .breadclumnbs {
	background-color: #ccc;
	display: flex;
	padding: 0.5em;
}
@media(max-width:480px) {
	.lower .breadclumnbs {
		flex-wrap: wrap;
	}
}
.lower .breadclumnbs li::after {
	content:" ＞ ";
}
.lower .breadclumnbs li:last-of-type::after {
	content:"";
}
.lower .breadclumnbs li a {
	color: #000;
}
.lower main {
	display: block;
	max-width: 768px;
	margin: 0 auto;
	padding-bottom: 30px;
}
.lower main h2 {
	margin-top: 2em;
}
.lower main #summary h2 {
	margin-top: 1em;
}
.lower main #summary .inner {
	display: flex;
}
.lower main #summary .inner p {
	padding: 0.5em;
}
.lower main #summary .inner .lessonThumb {
	width: 250px;
}
.lower main #summary .inner .lessonThumb img {
	width: 100%;
}
.lower main video {
	width: 100%;
	height:auto;
}
.lower .navBtn {
	margin-top: 2em;
}
.lower .navBtn p {
	text-align: center;
	margin-bottom: 0.5em;
}
.lower .navBtn p a {
	border: 2px solid #000;
	border-radius: 40px;
	display: inline-block;
	padding: 0.5em 1em 0.3em;
	text-decoration: none;
	color: #000;
}
.lower .navBtn p a i {
	margin-right: 0.5em;
}
.lower .navBtn #checkOnNext a {
	font-size: 1.5em;
	background-image: linear-gradient(yellow,orange);
	font-weight: bold;
	text-shadow: 1px 1px 0 #fff;
	box-shadow:2px 2px 10px #fff inset;
}
.lower .navBtn #backToTop a {
	background-color: #090;
	color: #fff;
}
.lower .navBtn #checkOff a {
	background-color: #ccc; 
}
@media(max-width:599px){
	.lower main h2 {
		font-size: 6vw;
	}
	.lower main p {
		text-align: left;
		margin-left: 1em;
		margin-right: 1em;
	}
	.lower main #summary .inner {
		display: block;
	}
	.lower main #summary .inner .lessonThumb {
		width: 90%;
		text-align: center;
		padding: 0;
		margin: 0 auto;
	}

}
.lower #download a {
	display: block;
	max-width: 25em;
	margin: 1em auto;
	padding: 0.5em 1em 0.3em;
	border: 2px solid #f00;
	border-radius: 10px;
	text-align: center;
	background-image: linear-gradient(#eee,#ccc);
	color: #000;
	text-decoration: none;
	font-weight: bold;
	box-shadow:2px 2px 5px #fff inset;
}
.lower #download a:hover {
	background-image: linear-gradient(#ccc,#eee);
	box-shadow:2px 2px 5px #000 inset;
}
.lower #download a:active {
	border-color: #ff0;
}
.lower #download a i {
	margin: 0 0.2em;
}
.lower #tableOfContents h3 {
	font-size: 1.2em;
	font-weight: bold;
	padding: 0.5em 1em;
	margin-top: 1em;
}
.lower #tableOfContents ul {
	margin: 0 2em;
}
.lower #tableOfContents ul li:nth-of-type(odd) {
	background-color: #eee;
}
.lower #tableOfContents ul li a:link,
.lower #tableOfContents ul li a:visited {
	display: block;
	padding: 0.5em 1em;
	color: #000;
	text-decoration: none;
}

.lower #tableOfContents ul li a:hover {
	background-color: #B4BCFD;
}

.lower #modal {
		background-color: rgba(0,0,0,0.8);
		background-image: url("../images/loading.gif");
		background-repeat: no-repeat;
		background-position: center center;
		position: fixed;
		width: 100vw;
		height: 100%;
		top: 0;
		left: 0;
		z-index: 999;
		display: none;
}
.lower #message p {
	text-align: center;
	padding: 0.5em;
}
.lower #sendBtn {
	font-size: 1.5em;
	background-image: linear-gradient(#999,#666);
	font-weight: bold;
	text-shadow: 1px 1px 0 #fff;
	box-shadow:2px 2px 10px #fff inset;
	border: 2px solid #000;
	border-radius: 40px;
	display: block;
	padding: 0.5em 1em 0.3em;
	color: #666;
	margin-left: auto;
	margin-right: auto;
	width: 10em;
}