@charset "UTF-8";
body{
	font-size: 15px;
	background-color: #ffffff;
	-webkit-text-size-adjust: 100%;
}
a{
	color: #0789d7;
	transition: all .3s;
}
a:hover{
	transition: all .3s;
}

/* 404ページ -----------------------*/
#not_found h1{
	color:#0789d7;
}

/* フェードイン -----------------------*/
body{
	animation: fadeIn 1s ease 0s 1 normal;
	-webkit-animation: fadeIn 1s ease 0s 1 normal;
}
@keyframes fadeIn {
	0% {opacity: 0}
	100% {opacity: 1}
}

@-webkit-keyframes fadeIn {
	0% {opacity: 0}
	100% {opacity: 1}
}


/*------------------------------------------ font strong, em */

em.underline {
	font-weight: normal;
	text-decoration: underline;
}
strong.underline {
	text-decoration: underline;
}
.fred {
	color: #be0000;
}
.bold_red {
	font-weight: bold;
	color: #be0000;
}
.fblue {
	color: #0789d7;
}
.fgreen {
	color: #00974b;
}
.large {
	font-size: 1.15rem;
}
.small {
	font-size: 0.875rem;
}

/* link -----------------------*/

.link_btn {
	text-align: center;
}
.link_btn a {
	background: -moz-linear-gradient(right, #2d96d7, #37c1e4);
	background: -webkit-gradient( linear, right top, left top, from(#2d96d7), to(#37c1e4) );
	background: linear-gradient(-135deg, #2d96d7, #37c1e4);
	color: #fff;
	text-decoration: none;
	position: relative;
}
.link_btn a::after {
	display: block;
	content: '';
	position: absolute;
	z-index: 2;
	top: 40%;
	right: 8%;
	width: 8px;
	height: 8px;
	border-right: 1px solid #fff;
	border-bottom: 1px solid #fff;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
.link_btn a:hover {
	opacity: 0.6;
}


/*--------------------------------------------------------------------
 *	1025px未満用（SP用）の記述
 *--------------------------------------------------------------------*/
@media screen and (max-width: 1025px) {

/* header -----------------------*/
header {
    position: fixed;
    top: 0;
    transition: .5s;
    width: 100%;
    z-index: 1000;
    background-color: #fff;
}
header.hide{
	top: -130px;
}
body#home .logo {
	width: 65%;
	padding-left: 5.3333%;
	padding: 40px 0 20px 5.3333%;
	margin: 0;
}
body#home .logo img{
	width: 100%;
}
/* ハンバーガーメニュー -----------------------*/
/*アクティブになったエリア*/
#g-nav.panelactive{
    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
    position:fixed;
    z-index: 999;
	top: 0;
	width:100%;
    height: 100vh;
}
/*丸の拡大*/
.circle-bg{
    position: fixed;
    z-index:500;
    /*丸の形*/
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #283CE5;
    /*丸のスタート位置と形状*/
    top:calc(50% - 50px);/*50%から円の半径を引いた値*/
    left:calc(50% - 50px);/*50%から円の半径を引いた値*/
}
.initial{
	transform: scale(0);
}
.circleactive{
	transition: transform 1.8s;/*1秒かけてアニメーション*/
}
.circleactive{
  transform: scale(50);/*クラスが付与されたらscaleを拡大*/
}

/*ナビゲーションの縦スクロール*/
#g-nav-list{
    display: none;/*はじめは表示なし*/
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999; 
    width: 100%;
    height: 100vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

#g-nav.panelactive #g-nav-list{
     display: block; /*クラスが付与されたら出現*/
}

/*ナビゲーション*/
#g-nav ul {
  opacity: 0;/*はじめは透過0*/
	margin-top: 130px;
}
#g-nav ul li ul {
	margin-top: 0;
}

@keyframes gnaviAnime{
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}

/*背景が出現後にナビゲーションを表示*/
#g-nav.panelactive ul {
    opacity:1;
}

/* 背景が出現後にナビゲーション li を表示※レイアウトによって調整してください。不必要なら削除*/
#g-nav.panelactive ul li,
#g-nav.panelactive .btn_blue{
animation-name:gnaviAnime;
animation-duration:1s;
animation-delay:.2s;/*0.2 秒遅らせて出現*/
animation-fill-mode:forwards;
opacity:0;
}
@keyframes gnaviAnime{
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/*リストのレイアウト設定*/
#g-nav li{
  list-style: none;
}
#g-nav li a{
  color: #fff;
  text-decoration: none;
  padding:3.5% 0;
  display: inline-block;
  /* text-transform: uppercase; */
  letter-spacing: 0.1em;
  font-size: 5vw;
}
/*========= ボタンのためのCSS ===============*/
.openbtn{
  position:absolute;
  right: 10.1333% ;
  top: 49.6333%;
  z-index: 9999;/*ボタンを最前面に*/
  cursor: pointer;
    width: 6.6667%;
    height:50px;
	
    border-radius: 50%;
}
/*×に変化*/  
.active{
	width: 50px;
	background-color: #fff;
  }
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    height: 1px;
    border-radius: 2px;
  	background-color: #000000;
    width: 100%;
  }
.openbtn span:nth-of-type(1) {
  top:0%; 
}
.openbtn span:nth-of-type(2) {
	top:20%; 
}
.openbtn span:nth-of-type(3) {
	top:40%; 
}
.openbtn.active span:nth-of-type(1) {
	top: 19px;
    left: 5px;
    transform: translateY(6px) rotate(-30deg);
    width: 80%;
}
.openbtn.active span:nth-of-type(2) {
  opacity: 0;
}
.openbtn.active span:nth-of-type(3){
	top: 31px;
    left: 5px;
    transform: translateY(-6px) rotate(30deg);
    width: 80%;
}
#g-nav{
	position: relative;
}
#g-nav .btn_blue{
	display: block;
	background-color: #EF2828;
	color: #fff;
	padding: 6% 0;
	opacity: 0;
	width: 90%;
	margin: 0 auto;
	border-radius: 90px;
	text-align: center;
	border: 2px solid #fff;
	text-decoration: none;
	font-size: 5vw;
}
#g-nav .request{
	margin-top: 15%;
}
#g-nav .lesson{
	margin-top: 6%;
	margin-bottom: 10%;
}




/* footer -----------------------*/
footer #btn {
	display: none;
}
footer .btn_box {
	display: flex !important;
	justify-content: center;
	margin: 0 auto;
	position: fixed;
	padding: 4.5% 0;
	bottom: 0;
	z-index: 900;
	width: 100%;
	background: rgba(0,10,80,0.3);
}
footer .btn_blue{
	background-color: #EF2828;
	color: #fff;
	border-radius: 60px;
	width: 90%;
	margin: 0 auto;
	text-align: center;
	text-decoration: none;
	padding: 2.5% 0;
	font-size: 5.1vw;
	letter-spacing: 2px;
	border: 2px solid #fff;
	-webkit-box-shadow: 4px 4px 0 #989898;
	box-shadow: 4px 4px 0 #989898;
}
footer .btn_blue a{
	color: #fff;
}
footer #footer_contents {
	background-color: #283CE5;
	margin-top: -2px;
}
#footer_contents p{
	margin: 0;
	text-align: center;
	color: #fff;
}
#footer_contents a{
	display: inline-block;
	margin-bottom: 0.5em;
	text-decoration: none;
	color: #fff;
}
#footer_contents img{
	width: 100%;
	padding-top: 1%;
}
#footer_contents .footer_logo{
	width: 65.3333%;
	margin: 0 auto;
}
#footer_contents .address{
	margin-top: 5.0143%;
    font-size: 3.5vw;
}
#footer_contents .address a,
#footer_contents .address a:visited{
	color: #fff;
}
#footer_contents .reception{
	margin-top: 10.2714%;
	font-size: 3.5vw;
}
#footer_contents .phone{
	margin: 0;
	color: #fff;
	font-size: 7.07141vw;
}
#footer_contents .logo_box{
	margin-top: 9.1429%;
	text-align: center;
}
#footer_contents .logo_box a:first-child{
	margin-right: 3%;
}
#footer_contents .ucan{
	width: 66.6667%;
	margin: 13.3333% auto 0 auto;
}
#footer_contents .copy{
	margin-top: 13.3333%;
	padding-bottom: 26.1429%;
	font-size: 3.3vw;
}




/*------------------------------------------ visible hidden */

.visible-sp, .visible-pc {
	display: none !important;
}

.visible-sp {
	display: block !important;
}
.hidden-sp{
	display:none !important
}


/* 1025px未満用（SP用）の記述 end -------------------------------------*/
}



/*--------------------------------------------------------------------
 *	1025px以上用（PC用）の記述
 *--------------------------------------------------------------------*/
@media screen and (min-width: 1025px), print {

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

header{
    position: fixed;
    top: 0;
    transition: .5s;
	width: 100%;
	z-index: 1000;
	background-color: #fff;
}
header.hide{
    top: -130px;
}
#header_contents{
	padding: 14px 0 0;
	z-index: 1000;
}
#header_contents #logo{
	width: 17.8571%;
}
#header_contents #logo img{
	width: 100%;
}
#header_contents_inner{
	display: flex !important;
	justify-content: space-between;
	align-items: baseline;
	margin:0 2.5714%;
}
#header_contents_inner #gmenu_container{
	z-index: 200;
	width: 70%;
	text-align: end;
}
#header_contents_inner ul > li{
    display: inline-block;
	margin: 10px;
	text-align: initial;
}
#header_contents_inner ul > li > a{
    display: block;
    font-size: 1vw;
  /* text-transform: uppercase; */
    letter-spacing: .2em;
	text-decoration: none;
	color: #1D1F35;
	font-weight: bold;
	letter-spacing: 0px;
}
#header_contents_inner ul > li > span{
    margin-left: 1.2em;
}
#header_contents_inner ul > li:hover > a{
    color: #283CE5;
	text-decoration: underline;
}
 
/* Submenu */
#header_contents_inner ul li ul{
    position: absolute;
    margin: 15px 0 0;
	background-color: #fff;
	box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.2);
}
#header_contents_inner ul li#gmenu_reading ul{
    margin-left: -25px;
}
#header_contents_inner ul li#gmenu_school ul{
    margin-left: -25px;
}
#header_contents_inner ul li#gmenu_experience ul{
    margin-left: -25px;
}
#header_contents_inner ul li#gmenu_partners ul{
    margin-left: -25px;
}
#header_contents_inner ul li ul li{
    display: block;
}
#header_contents_inner ul li ul li a{
    color: #1D1F35;
	margin: 20px;
}
#header_contents_inner ul li ul li a:hover{
    color: #283CE5;
}
#header_contents_inner ul li ul{
	visibility: hidden;
    opacity: 0;
    transition: all .3s;
}
#header_contents_inner ul li:hover ul{
	visibility: visible;
    opacity: 1;
}

#header_contents_inner ul .btn_blue{
	display: block;
	background-color: #EF2828;
	color: #fff;
	border-radius: 40px;
	text-align: center;
	padding:0.5em 0;
	transition:0.5s;
	text-decoration: none;
}
#header_contents_inner ul .btn_blue:hover{
	background-color: #1D1F35;
	color: #fff;
	text-decoration: none;
}
#header_contents_inner ul .request{
	width: 10%;
}
#header_contents_inner ul .lesson{
	width: 21%;
	margin-right: 0;
}

/* footer -----------------------*/
footer #footer_contents {
	background-color: #283CE5;
}
#footer_contents p{
	margin: 0;
	text-align: center;
	color: #fff;
}
#footer_contents .address{
	margin-top: 1.0143%;
	font-size: 1vw;
}
#footer_contents .address a,
#footer_contents .address a:visited{
	color: #fff;
}
#footer_contents a:hover{
	opacity: 0.7;
}
#footer_contents .reception{
	margin-top: 3.2714%;
	font-size: 1vw;
}
#footer_contents .phone{
	margin: 0;
	color: #fff;
}
#footer_contents .logo_box{
	margin-top: 4.1429%;
	text-align: center;
}
#footer_contents .logo_box a:first-child{
	margin-right: 1%;
}
#footer_contents .ucan{
	margin-top: 3.5714%;
}
#footer_contents .copy{
	margin-top: 3.5714%;
	padding-bottom: 7.1429%;
}
#footer_contents .copy a{
	display: inline-block;
	margin-right: 1em;
	text-decoration: none;
	color: #fff;
}
/* link -----------------------*/


.link_btn a {
	font-size: 1.125rem;
	padding: 3px 60px;
	border-radius: 40px;
}

/*------------------------------------------ visible hidden */

.visible-sp, .visible-pc {
	display: none !important;
}

.visible-pc {
	display: block !important;
}
.hidden-pc{
	display:none !important
}


/* 737px以上用（PC用）の記述 end -------------------------------------*/
}



/*--------------------------------------------------------------------
 *	clear fix
 *--------------------------------------------------------------------*/
body,
.wrap,
header #header_contents_inner,
header #gmenu_container ul#gmenu,
footer #link_area,
footer #footer_contents #footer_info_area {
	zoom: 100%;
}