@charset "utf-8";

/*=====================================

layout.css

=====================================*/

/*-------------------------------------
 reset
-------------------------------------*/
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;
}
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;
}
img {
	max-width: 100%;
	line-height: 0;
	vertical-align: bottom;
}
iframe {
	vertical-align: bottom;
	border: 0;
}
table th,
table td {
	vertical-align: top;
}
input,
select,
textarea,
button {
	font-family: "游ゴシック", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo;
}
*, :after, :before {
	box-sizing: border-box;
}

/*-------------------------------------
 setting
-------------------------------------*/
body {
	position: relative;
	color: #333;
	font-family: "游ゴシック", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo;
	font-size: 14px;
	font-weight: normal;
	line-height: 1.5;
	word-break: break-all;
	background: #fff;
	-webkit-text-size-adjust: 100%;
}
a {
	color: #333;
	text-decoration: none;
}
a:hover{
	text-decoration: underline;
}
strong {
	font-weight: bold;
}
em {
	font-style: normal;
}
.forPC { display: block; }
.forSP { display: none; }
img.forPC, br.forPC { display: inline-block }

/*-------------------------------------
 layout
-------------------------------------*/
#wrapper {
	position: relative;
	padding: 60px 0 0 0;
	overflow: hidden;
}
.inner {
	position: relative;
	max-width: 1000px;
	margin: 0 auto;
}
.inner:after {
	clear: both;
	display: block;
	content: "";
}

/*-------------------------------------
 header
-------------------------------------*/
header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	height: 60px;
	background: #fff;
	box-shadow: 0 0 3px rgba(0,0,0,0.2);
}
.headerLogo {
	float: left;
	width: 160px;
	padding: 10px 0;
}
.headerTxt {
	float: left;
	padding: 16px 20px 0 20px;
	font-size: 16px;
}
.headerBtn {
	float: right;
	padding: 10px 0;
}
.headerBtn a {
	display: block;
	width: 182px;
	height: 40px;
	color: #fff;
	font-size: 16px;
	font-weight: bold;
	line-height: 40px;
	text-align: center;
	text-decoration: none;
	border-radius: 30px;
	background: #12b9dd;
}

/*-------------------------------------
 section
-------------------------------------*/
section .inner {
	padding: 70px 30px;
}
section h2 {
	margin: 0 0 85px 0;
	text-align: center;
}
section h2 em {
	display: block;
	color: #000;
	font-size: 34px;
}
section h2 span {
	color: #888;
	font-size: 22px;
	line-height: 1.8;
}
section h2 em span {
	color: #000;
}

/*-------------------------------------
 main_bg
-------------------------------------*/
.main_bg {
	text-align: center;
	background-image: url('main_bg.jpg');
	background-size: cover;
	background-color: #ffd659;
}

/* info
-------------------------------------*/
.info {
	background: #FFF;
	text-align: center;
	margin-bottom: 0px;
}
.info p {
	font-size: 18px;
	line-height: 30px; 
	padding: 40px 15% 0 15%;
	text-align: left;
	display: inline-block;
}
.info .orange {
	font-size: 22px;
	color: #eb6112;
    font-weight: bold;
	line-height: 28px; 
	text-align: center;
}

/* intro
-------------------------------------*/
.intro {
	margin: 0 0 30px 0;
}
.intro .flex_box {
    background-color: ;     /* 背景色指定 */
    padding:  5px;             /* 余白指定 */
	display: flex;              /* フレックスボックスにする */
	align-items: stretch;        /* 縦の位置指定 */
	justify-content: space-around;  /* 横の位置指定 */
}
.intro .flex_item {
	font-size: 16px;
    padding: 20px;          /* 内側の余白 */
    color:  ;               /* 文字色 */
    margin:  5px;              /* 外側の余白 */
    border-radius:  0px;        /* 角丸指定 */
	width: 25%;               /* 幅指定 */
}
.intro .flex_item:nth-child(1) {
    background-color:  #ffd659; /* 背景色指定 */
}
.intro .flex_item:nth-child(2) {
    background-color:  #ffe69b; /* 背景色指定 */
}
.intro .flex_item:nth-child(3) {
    background-color: #ffd659; /* 背景色指定 */
}
.intro .flex_item:nth-child(4) {
    background-color:  #ffe69b; /* 背景色指定 */
}
.intro .sub{
	font-size: 18px;
    font-weight: bold;
	text-align: center;
	padding-bottom: 15px;
}

/* course
-------------------------------------*/
.course {
    width: 100%;
	background: #FFF;
	padding-top: 100px;
}
.course h2 em {
	color: #426294;
	font-weight: bold;
}
.course h2 span {
	color: #426294;
	font-size: 18px;
}
.course img {
     width: 100%;
}
.text-center {
    text-align: center;
}
.course .flex_box {
    background-color: #FFF;     /* 背景色指定 */
    padding:  10px;             /* 余白指定 */
    display: flex;              /* フレックスボックスにする */
    flex-wrap: wrap;            /* 折り返し指定 */
    align-content: stretch;      /* 折り返し時の配置指定 */
	justify-content: center;
}
.course .flex_item {
    padding: 0px;
    color:  #fff;               /* 文字色 */
    margin:  0 15px 80px 15px;              /* 外側の余白 */
    border-radius:  0px;        /* 角丸指定 */
    font-size:  30px;           /* 文字サイズ */
    width: 35%;               /* 幅指定 */
    text-align:  center;        /* 文字中央揃え */
}
.course .flex_item:nth-child(1) {
    background-color:  #FFF; /* 背景色指定 */
}
.course .flex_item:nth-child(2) {
    background-color:  #FFF; /* 背景色指定 */
}
.course .flex_item:nth-child(3) {
    background-color: #FFF; /* 背景色指定 */
}
.course .flex_item:nth-child(4) {
    background-color:  #FFF; /* 背景色指定 */
}

/* features
-------------------------------------*/
.features {
	background: #f8f8f8;
	margin-bottom: 50px;
}
.features h2 em {
	color: #426294;
	font-weight: bold;
}
.features h2 span {
	color: #426294;
	font-size: 1.8rem;
}
.features .text-indent {
	padding-left: 6.9em; 
}
.features .text-indent2 {
	padding-left: 1.0em;
	font-size: 14px;
}
.features .text-indent3 {
	padding-left: 1.0em;
	font-size: 14px;
}
.features .text-indent4 {
	padding-left: 4.7em;
}
.features a {
	color: #319ffe;
	text-decoration: underline;
}
table {
    border-top: 1px solid #4f4d47;
    border-right: 1px solid #4f4d47;
    width: 100%;
    border-spacing: 0;
    margin-bottom: 25px;
}
th {
	border-bottom: 1px solid #4f4d47;
    border-left: 1px solid #4f4d47;
	background-color: #add8e6;
	font-weight: bold;
    text-align: center;
	vertical-align: middle;
    padding: 10px;
	font-size: 16px;
	width: 18%;
}
td {
    border-bottom: 1px solid #4f4d47;
    border-left: 1px solid #4f4d47;
	text-align: left;
    padding: 10px;
	font-size: 16px;
	line-height: 1.4; /*文の行高*/
}
ul, ol {
  background: #f8f8f8; /*背景色*/
  padding-left: 1.0em; /*ボックス内の余白*/
  text-align: left;
  list-style: disc;     /* アイコンの種類指定 */
}
ul li, ol li {
  line-height: 1.3; /*文の行高*/
  padding: 0em; /*前後の文との余白*/
}

/* btn-area
-------------------------------------*/
.btn-area {
	width: 100%;
	text-align: center;
	padding: 0;
	margin: 30px 0 40px 0;
}
.btn-area .flex_box {
	width: 100%;
	padding:  0px;             /* 余白指定 */
    display: flex;              /* フレックスボックスにする */
    align-content: stretch;      /* 折り返し時の配置指定 */
	justify-content: center;
}
.btn-area .flex_item {
    padding: 0px;   /* 余白指定 */
    margin:  5px;   /* 外側の余白 */
    width: 40%;     /* 幅指定 */
}

/* contact
-------------------------------------*/
.contact {
    background: url(../images/contact_bg.jpg) no-repeat center center;
	background-size: cover;     /* 画像のサイズを指定    */
	width:100%;     /* 横幅のサイズを指定    */
	background-color: #111;
	color: #fff;
	margin-top: 100px;
}
.contactLead {
    margin: 0 0 35px 0;
    font-size: 20px;
    text-align: center;
}
.contactLead a {
	color: #31ecff;
	text-decoration: underline;
}
.contact h2 {
    margin: 0 0 50px 0;
}
.contact h2 em {
	color: #fff;
}

/*-------------------------------------
 pagetop
-------------------------------------*/
.pagetop a {
	position: fixed;
	right: 30px;
	bottom: 30px;
	z-index: 100;
	display: block;
	width: 50px;
	height: 50px;
	text-indent: 100%;
	white-space: nowrap;
	border-radius: 100%;
	background: url(../images/pagetop.png) no-repeat center center #000;
	overflow: hidden;
}

/*-------------------------------------
 footer
-------------------------------------*/
footer {
	background: #333;
}
footer p {
	padding: 30px 0;
	color: #fff;
	text-align: center;
}

/*-------------------------------------
 common
-------------------------------------*/
.sup {
	font-size: 0.7em;
	vertical-align: top;
	position: relative;
	top: 0;
}
.sub {
	font-size: 0.7em;
	vertical-align: bottom;
	position: relative;
	top: 0.1em;
}
.bold {
	font-weight: bold;
}

/*-------------------------------------------------------------------
 Media Queries
-------------------------------------------------------------------*/

/* SP layout
-------------------------------------------------------------------*/
@media screen and (max-width: 767px) {

.forPC { display: none !important; }
.forSP { display: block; }
img.forSP, br.forSP { display: inline-block }

body {
	font-size: 13px;
}

/*-------------------------------------
 header
-------------------------------------*/
header .inner {
	padding: 0 15px;
}
.headerLogo {
	width: 100px;
	padding: 18px 0 12px;
}
.headerTxt {
	display: none;
}
.headerBtn {
	padding: 15px 0;
}
.headerBtn a {
	width: 145px;
	height: 30px;
	font-size: 12px;
	line-height: 30px;
}

/*-------------------------------------
 visual
-------------------------------------*/
.visual {
	width: 100%;
	height: 340px;
	margin: 0;
	padding: 0;
	background: url(../images/main_bg.jpg) no-repeat center center;
	background-size: cover;
}
.visual:after {
	display: none;
}
.visualTxt {
	left: 0;
	padding: 0 15px;
	text-align: center;
}
.visualTxt h1 {
	font-size: 24px;
	text-indent: 0;
}
.visualTxt p {
	margin: 0;
	font-size: 15px;
}
.visual .camp {
  font-size: 12px;
  color: #fff;
  font-weight: bold;
  text-shadow: 0px 0px 6px #000000;
  background-color: rgba( 222,42,111,0.6 );
  padding: 10px;
  display: block;
  text-align: center;
  position: absolute;
  top: 100px;
  right: -200px;
  left: -200px;
}
.visual .camp span {
  font-size: 14px;
  color: #fff;
  font-weight: bold;
  text-shadow: 0px 0px 6px #000000;
}
.visual .camp .comment_s {
  font-size: 12px;
  color: #fff;
  font-weight: bold;
  text-shadow: 0px 0px 6px #000000;
}

/*-------------------------------------
 section
-------------------------------------*/
section {
	
}
section .inner {
	padding: 20px 15px;
}
section h2 {
	margin: 0 0 30px 0;
}
section h2 em {
	font-size: 20px;
	margin-bottom: 15px;
}
section h2 span {
	font-size: 15px;
}

/* info
-------------------------------------*/
.info p {
	font-size: 0.9rem;
	line-height: 20px;
	padding: 22px;
}
.info .orange {
	font-size: 16px;
	color: #eb6112;
    font-weight: bold;
	line-height: 22px; 
	text-align: center;
}
	
/* intro
-------------------------------------*/
.intro {
	background: #FFF;
	padding: 0 20px;
}
.intro .flex_box {
    background-color: #FFF;     /* 背景色指定 */
    padding:  5px;             /* 余白指定 */
	display: flex;              /* フレックスボックスにする */
	align-items: stretch;        /* 縦の位置指定 */
	flex-direction: column;         /* 要素の並び順 */
}
.intro .flex_item {
	font-size: 14px;
    padding: 20px;
    color:  ;               /* 文字色 */
    margin: 10px;        /* 外側の余白 */
    border-radius:  0px;        /* 角丸指定 */
	width: 90%;               /* 幅指定 */
}
.flex_item:nth-child(1) {
    background-color:  #ffd659; /* 背景色指定 */
}
.flex_item:nth-child(2) {
    background-color:  #ffe69b; /* 背景色指定 */
}
.flex_item:nth-child(3) {
    background-color: #ffd659; /* 背景色指定 */
}
.flex_item:nth-child(4) {
    background-color:  #ffe69b; /* 背景色指定 */
}
.intro .sub{
	font-size: 16px;
    font-weight: bold;
	text-align: center;
	padding-bottom: 5px;
}
	
/* course
-------------------------------------*/
.course {
    padding-top: 0px;
}
.course .flex_box {
    background-color: #FFF;     /* 背景色指定 */
    padding:  10px;             /* 余白指定 */
    display: flex;              /* フレックスボックスにする */
    flex-wrap: wrap;            /* 折り返し指定 */
	flex-direction: column;         /* 要素の並び順 */
    align-content: stretch;      /* 折り返し時の配置指定 */
	justify-content: center;
}
.course .flex_item {
    padding: 0px;
    color:  #fff;               /* 文字色 */
    margin:  10px;              /* 外側の余白 */
    border-radius:  0px;        /* 角丸指定 */
    font-size:  30px;           /* 文字サイズ */
    width: 95%;               /* 幅指定 */
    text-align:  center;        /* 文字中央揃え */
}
.course .flex_item:nth-child(1) {
    background-color:  #FFF; /* 背景色指定 */
}
.course .flex_item:nth-child(2) {
    background-color:  #FFF; /* 背景色指定 */
}
.course .flex_item:nth-child(3) {
    background-color: #FFF; /* 背景色指定 */
}
.course .flex_item:nth-child(4) {
    background-color:  #FFF; /* 背景色指定 */
}

/* features
-------------------------------------*/
.features h2 span {
	font-size: 15px;
}
.last td:last-child {
    border-bottom: solid 1px #4f4d47;
    width: 100%;
}
.tbl_01 {
    width: 100%;
}
.tbl_01 th,
.tbl_01 td {
  　border-bottom: none;
    display: block;
    width: 100%;
	font-size: 0.8rem;
}
.features .text-indent2 {
	font-size: 12px;
}
.features .text-indent3 {
	font-size: 12px;
}

/* btn-area
-------------------------------------*/
.btn-area {
	width: 100%;
	text-align: center;
	padding: 0 10%;
	margin: 30px 0 20px 0;
}
.btn-area .flex_box {
	padding:  0px;             /* 余白指定 */
    display: flex;              /* フレックスボックスにする */
	flex-direction: column;
	justify-content: center;
}
.btn-area .flex_item {
    padding: 0px;   /* 余白指定 */
    margin:  0px;   /* 外側の余白 */
    width: 100%;     /* 幅指定 */
	background-color: #FFF;
}

/* contact
-------------------------------------*/
.contact{
	margin-top: 20px;
}
.contact h2 em {
	font-size: 16px;
	padding-top: 20px;
}
.contactLead {
    font-size: 12px;
}

/*-------------------------------------
 pagetop
-------------------------------------*/
.pagetop a {
	right: 15px;
	bottom: 15px;
	width: 40px;
	height: 40px;
	background: url(../images/pagetop_sp.png) no-repeat center center #000;
	background-size: 17px 10px;
}

/*-------------------------------------
 footer
-------------------------------------*/
footer p {
	padding: 10px 0;
	font-size: 11px;
}

/*-------------------------------------
 player
-------------------------------------*/
.course .pic {
	padding-top: 56.25%;
}	
.course .picA3 .pic {
	padding-top: 56.25%;
}	
.course .picA1 {
	width: 100%;
}
.course .picA3 {
	width: 100%;
}
	
}

/* PC layout
-------------------------------------------------------------------*/
@media screen and (min-width: 768px) {

a img,
.hover,
.pagetop a {
	transition: all 0.2s linear;
	-webkit-transition: all 0.2s linear;
	-moz-transition: all 0.2s linear;
	backface-visibility: hidden;
}
a:hover img,
.hover:hover,
.pagetop a:hover {
	opacity: 0.6;
}

.courseList ul li .pic a:hover:after {
	background: url(../images/play_on.png) no-repeat center center;
}
	
}
