@charset "utf-8";

/*--------------------------------------------------------------
ENC/GNA　業務提携先用サイト（レスポンシブ）

>>> 目次:
----------------------------------------------------------------
# reset
# general
	## general classes

# 共通部分のレイアウト
	## header
	## main nav
	## contents
	## cta
	## footer
	## back to top button

# 各ページのレイアウト
	## home

--------------------------------------------------------------*/


/*--------------------------------------------------------------
# reset
--------------------------------------------------------------*/

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
/* IE11でmainがblock要素として認識されないため、mainも追加 (fukui*/
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, main {
	display: block;
}

body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/*--------------------------------------------------------------
# general
--------------------------------------------------------------*/

html {
	font-size: 62.5%;
	box-sizing: border-box;
}
*,
*:before,
*:after {
	box-sizing: inherit;
}
body,
button,
input,
select,
optgroup,
textarea {
	font-family: "メイリオ", Meiryo, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;;
	font-size: 14px;
	font-size: 1.4rem;
	line-height: 1.7;
	font-weight: 500;
	/*background: #e6f0f4;*/
	color: #666;
}
h1, h2, h3, h4, h5, h6 {
	font-feature-settings: "palt";
}
p {
	margin-bottom: 1em;
}
em {
	font-style: normal;
	font-weight: bold;
}
strong {
	font-weight: bold;
}
small {
	font-size: 80%;
}

img {
	border-style: none;
	height: auto;
	/* Make sure images are scaled correctly. */
	max-width: 100%;
	/* Adhere to container width. */
}
nav a {
	text-decoration: none;
}
figure img,
a img {
	display: block;
}
figcaption {
	font-size: 12px;
	font-size: 1.2rem;
	text-align: center;
	margin: .7em 0;
	font-weight: bold;
}
input, label, select {
    vertical-align: middle;
}
i {
    font-style: italic;
}

/*--------------------------------------------------------------
## general classes
--------------------------------------------------------------*/

.pc_only {
	display: block;
}
.sp_only {
	display: none;
}
.tiny_sp_only {
	display: none;
}
.sp_link {
	pointer-events: none;
}
.no_break {
	white-space: nowrap;
}

.mb_2 {
    margin-bottom: 2em;
}

@media screen and (max-width: 768px) {
	.pc_only {
		display: none;
	}
	.sp_only {
		display: block;
	}
	.sp_link {
	pointer-events: auto;
	}
}

@media screen and (max-width: 480px) {
	.tiny_sp_only {
		display: block;
	}
}


/*--- float for block elements */
.floatleft {
	float: left;
	margin-right: 3%;
}
.floatright {
	float: right;
	margin-left: 3%;
}

/*--- float none for responsive */

@media screen and (max-width: 480px) {
	.floatleft.tiny_sp,
	.floatright.tiny_sp {
		float: none;
		width: 100%;
	}
}

/*--- clearings */

.clearfix::after,
.site_header::after,
.main_menu::after {
    content: "";
    display: block;
    clear: both;
    height: 0;
}

/*--- margins*/
.mb-5 {
    margin-bottom: 5em!important;
}

/*--------------------------------------------------------------
# 共通部分のレイアウト
--------------------------------------------------------------*/



/*--------------------------------------------------------------
	## header
--------------------------------------------------------------*/

.site_header {
	padding-top: 10px;
	margin-bottom: 50px;
	box-shadow: 0px 0px 7px #ccc;
	background: #fff;
	
}
.site_header .logo {
	width: 190px;
	padding: 0 20px;
	margin-bottom: 0;
}
.site_nav {
	display: flex;
	align-items: baseline;
	padding: 10px 20px 5px;
	background: #fff;
	border-bottom: 1px solid #ccc;
	
}
.site_title {
	font-size: 1.8rem;
	font-weight: bold;
	letter-spacing: 0.01em;
	margin-right: 1.5em;
	line-height: 1.4;
	margin-bottom: 0;
	color: #2CA5F8;
}
.site_nav nav li {
	display: inline;
	margin-right: 8px;
}
.site_nav nav li a {
	color: #888;
	font-size: 1.3rem;
}
.site_nav nav li a:hover,
.site_nav nav li a:focus {
	color: #2CA5F8;
}

/*---- sticky menu */
.sticky {
	position: fixed;
    width: 100%;
    z-index: 100;
    top: 0;
    left: 0;
	box-shadow: 0px 0px 7px #ccc;
}

@media screen and (max-width: 400px) {
	
	.site_header .logo {
		margin: 0 auto 1em;
	}
	.site_nav {
		display: block;
		text-align: center;
	}
	.site_nav nav {
    	padding-left: 10px;
	}
	.site_title {
		margin-right: 0;
	}
	
} /* end media query */

/*--------------------------------------------------------------
	## main contents
--------------------------------------------------------------*/

.main_contents {
	margin: 0 auto 50px;
	max-width: 1040px;
	padding: 0 20px;
}
.header_section,
.contents_section {
	border: 1px solid #ccc;
	padding: 40px 5%;
	margin-bottom: 40px;
	background: #fff;
	box-shadow: 1px 1px 2px #ddd;
}
.header_section {
	display: flex;
}
.header_section .course_icon {
	width: 25%;
	max-width: 180px;
	margin-right: 3%;
}
.course_icon img {
	display: block;
}
.course_description {
    flex-grow: 1;
	width: 75%;
}

.course_title {
	font-size: 1.8rem;
	font-weight: bold;
	color: #2CA5F8;
	line-height: 1.4;
	border-bottom: 2px solid #2CA5F8;
	margin-bottom: 20px;
}
.course_title small {
	display: block;
}
.course_title.title_only {
    border-bottom: none;
    margin-bottom: 0;
}
.section_title {
	font-size: 1.8rem;
	font-weight: bold;
	color: #2CA5F8;
	line-height: 1.4;
	margin-bottom: 1em;
}
section h3 {
    color: #2CA5F8;
    font-weight: bold;
    margin-bottom: .5em;
}
.section_instruction {
    color: #666;
    float: right;
    position: relative;
    top: 0.6em;

}

/*---- material list */

.material_list {
	border-top: 1px dotted #ccc;
}
ol.material_list {
    counter-reset: my-counter;
}

ol.material_list > li {
	display: table;
	width: 100%;
	border-bottom: 1px dotted #ccc;
	clear: both;
}
ol.material_list > li::before {
	content: "Lesson " counter(my-counter, decimal-leading-zero);
	counter-increment: my-counter;	
	color: #2CA5F8;
	display: table-cell;
	width: 80px;
}
ol.material_list a {
	display: block;
	line-height: 1.5;
	font-weight: bold;
	color: #666;
	text-decoration: none;
}
ol.material_list a:hover,
ol.material_list a:focus {
	color: #2CA5F8;
	background: #eee;
}
ol.material_list > li > a {
	display: table-cell;
	padding: 12px 20px;
}

/*--- Lessonが必要ない場合　ただの番号　*/
ol.material_list.just_num > li::before {
	content: counter(my-counter, decimal-leading-zero);
	counter-increment: my-counter;	
	width: 25px;
}


/*--- 手書きで番号をつける場合　span.chap_numに番号を入れる　*/
ol.material_list.manual_num > li::before {
	content: none;
}
.manual_num .chap_num {
	display: table-cell;
	width: 25px;
	color: #2CA5F8;
}

/*---- ページ全体にわたって、セクションをまたいで連番を打つ場合。mainタグに、.total_countクラスを追加（テンプレートを使った場合）*/

.total_count {
    counter-reset: total-counter;
}
.total_count ol.material_list > li::before {
	content: counter(total-counter, decimal-leading-zero);
	counter-increment: total-counter;	
}


/*----- 1chapter内が小分けされている場合。見出しにリンクはつかないので、em.chap_titleで囲む。小分けはul.chap_listを入れ子にして各liにリンクをはる*/

ol.material_list .chap_title {
	display: table-cell;
    padding: 12px 20px;
	width: 50%;
}
ol.material_list .chap_list {
	padding: 12px 20px 12px 0;
}
ol.material_list .chap_list a {
	padding-left: 10px;
	line-height: 1.7;
}

/*---- ページ番号の右寄せ(spanにクラスをつける)　*/
.page_num {
    float: right;
}

/*----- 各リンクにページ数を表示する場合、olに「show_page」クラスをつけ、ページをspanで囲む*/
.material_list.show_page > li > a {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

@media screen and (max-width: 768px) {
    .material_list.show_page > li > a {
        flex-direction: column;
        justify-content: flex-start;
        align-items: baseline;
    }
	
} /* end media query */

/*---- 特殊なリンクを色分けする（TOEICの解答など）*/

ol.material_list .chap_list a.alt_link {
    color: #ea4b4b;
}

/*--- リンクのない教材をグレーにする
（dimmed のクラスは、リンクが＃の親要素にjQueryでつけている）*/

ol.material_list li.dimmed a,
ol.material_list li.dimmed a.alt_link{
	color: #999;
	pointer-events: none;
}
ol.material_list li.dimmed::before {
	color: #999;
}


@media screen and (max-width: 768px) {
	
	.header_section .course_icon {
		width: 55%;
		max-width: 150px;
	}
	.course_description {
		max-width: calc(100% - 150px);
	}
	
} /* end media query */

@media screen and (max-width: 479px) {
	
	.header_section {
    	display: block;
	}
	.course_description {
		width: 100%;
		max-width: none;
	}
	
	.header_section .course_icon {
		width: 60%;
		max-width: 200px;
		margin: 0 auto 1.5em;
	}
	
	ol.material_list .chap_title {
		display: block;
		padding: 12px 5px 0px;
		width: 100%;
	}
	ol.material_list .chap_list {
    	padding: 0 20px 12px 10px;
	}
	
	
} /* end media query */

/*--------------------------------------------------------------
	## site footer
--------------------------------------------------------------*/

.site_footer {
    background: #333;
    padding:20px 20px 10px;
	color: #fff;
	font-size: 1.2rem;
	text-align: center;
	width: 100%;
	position: fixed;
	bottom: 0;
}
.site_footer .logo {
    width: 140px;
    margin: 0 auto 1em;
}
.footer_menu {
	margin-bottom: .8em;
}
.footer_menu li {
    display: inline;
    padding: 0 0.7em 0 0.3em;
    border-right: 1px solid #fff;
    white-space: nowrap;
}
.footer_menu li:last-child {
	border-right: none;
}
.footer_menu a {
    color: #fff;
}
.footer_menu a:hover,
.footer_menu a:focus {
	color: #bbe4f7;
}
.copyright {
	margin-bottom: 0;
}

/*--------------------------------------------------------------
	## back to top button
--------------------------------------------------------------*/
#back_top {
    position: fixed;
    right: 10px;
    bottom: 10px;
    cursor: pointer;
    z-index: 150;
    width: 75px;
    height: 75px;
    background: #FC8E32;
    display: none;
    border-radius: 60px;
    font-size: 12px;
    text-decoration: none;
    color: white;
    text-align: center;
    line-height: 1.2;
    padding-top: 4px;
}
#back_top::before {
    font-family: "Font Awesome 5 Free";
    content: "\f062";
    font-weight: 900;
    display: block;
    font-size: 28px;
    margin-bottom: 0;
}
#back_top:hover {
    background: #eeab32;
}



/*--------------------------------------------------------------
# 各ページのレイアウト
--------------------------------------------------------------*/



/*--------------------------------------------------------------
	## home
--------------------------------------------------------------*/

/*----- header */

.home .header_section {
    display: block;
    border: none;
    box-shadow: none;
    padding: 0 20px;
}
.home h1 {
    text-align: center;
    font-size: 3rem;
    margin-bottom: 30px;
    line-height: 1.4;
}
.home .lead {
    max-width: 940px;
    margin: 0 auto;
    text-align: center;
}

/*----- course list */
.home .main_contents {
	max-width: 1200px;
}
.home .contents_section {
    padding: 20px 16px;
}
.category_title {
	font-size: 2.4rem;
	font-weight: bold;
	line-height: 2;
	margin-bottom: .5em;
	color: #2CA5F8;
	margin-left: 8px;
}
.category_intro  {
    padding: 0 3em;
}
.category_subtitle {
    font-size: 1.8rem;
    margin-left: .5em;
}
.category_title::before {
	font-family: "Font Awesome 5 Free";
	content: "\f14a";
	font-weight: 900;
	margin-right: 8px;
	font-size: 110%;
}
.course_list {
    display: flex;
	flex-wrap: wrap;
	margin: -8px;
    margin-bottom: 2em;
}
.course_list:last-of-type {
    margin-bottom: -8px;
}
.course_list > li {
	width: calc((25% - 8px) - 8px);
    margin: 8px;
	border: 1px solid #ccc;
	box-shadow: 1px 1px 2px #ddd;
	padding: 0;
}
.course_list > li > a {
	display: block;
	text-decoration: none;
	color: #666;
	padding: 20px;
	transition: 0.5s ease-out;
	height: 100%;
}
.course_list > li > a:hover,
.course_list > li > a:focus {
	box-shadow: 1px 1px 4px #999;
}
.course_list > li > a .course_description {
	transition: .5s ease-out;
}
.course_list > li > a:hover .course_summary,
.course_list > li > a:focus .course_summary {
	opacity: 0.6;
}
.course_list .course_icon {
	width: 75%;
	max-width: 220px;
	margin: 0 auto 1em;
}
.course_list .course_title {
	text-align: center;
}
.course_list p {
	font-size: 13px;
	font-size: 1.3rem;
}

@media screen and (max-width: 1000px) {
	
	.course_list > li {
		width: calc((33% - 8px) - 8px);
	}
	
} /* end media query */

@media screen and (max-width: 768px) {
	
	.course_list > li {
		width: calc((50% - 8px) - 8px);
	}
	
} /* end media query */

@media screen and (max-width: 480px) {
	
	.course_list > li {
		flex-grow: 1;
		width: 100%;
	}
	
} /* end media query */



