body {
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	font-size: 16px;
	line-height: 32px;
	color: #000;
}

a{
	color: #000;
}

p{
	margin-bottom: 1.2em!important;
}


.top-logo {
    display: block;
    width: 200px;
}

.fixed-menu {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9999;
    width: 100%;
    max-width: 430px;
}

.menu-button {
    width: 32px;
    height: 25px;
    position: absolute;
    top: 45px;
    right: 20px;
    z-index: 9999;
    cursor: pointer;
}

.menu-button .menu-line {
    display: block;
    height: 2px;
    background: #162779;
    position: absolute;
    width: 100%;
    transition-property: all;
    transition-duration: 0.3s;
}

.menu-button .menu-line:nth-child(2) {
    top: 12px;
}

.menu-button .menu-line:nth-child(3) {
    bottom: 0px;
}

.menu-button.close .menu-line:nth-child(1) {
    -ms-transform: rotate(-45deg); /* IE 9 */
    transform: rotate(-45deg);
    margin-top: 11px;
}

.menu-button.close .menu-line:nth-child(2) {
    opacity: 0;
}

.menu-button.close .menu-line:nth-child(3) {
    -ms-transform: rotate(45deg); /* IE 9 */
    transform: rotate(45deg);
    margin-bottom: 12px;
}



.menu ul li {
    display: block;
    line-height: 50px;
    white-space: nowrap;
    width: 92%;
    margin: 0 auto;
}

.menu ul li:after {
    display: block;
    height: 1px;
    background: #fff;
    content: '';
}

.menu ul li a {
    color: #fff;
    text-decoration: none;
}

.image-links {
    display: flex;
    max-width: 1000px;
    width: 100%;
    margin: 50px auto;
    padding: 0 20px;
}

.image-links .sp {
    display: none;
}

.image-links a.pc {
    display: block;
    width: 30%;
}

.image-links a.pc:nth-child(2) {
    margin: 0 5%;
}

.image-links a.pc img {
    display: block;
    width: 100%;
}


.block-0 {
    background: #35A9DC;
    width: 100%;
}

.main-image img.mv-sp {
    display: none;
}

.main-image {
    width: 100%;
    margin: 0 auto;
}

.main-image img {
    width: 100%;
    display: block;
    margin: 0 auto;
}

.block-1 {
    background: red;
}

.smartphone-base {
    position: absolute;
    width: 100%;
}

.smartphone-wrapper {
    max-width: 1200px;
    margin:0 auto;
}

.smartphone {
    width: 54.1%;
    margin: -4.2% auto;
    position: relative;
}

.smartphone img.i-frame {
    width: 100%;
    display: block;
}

.smartphone img.inside {
    width: 93%;
    position: absolute;
    top: 6%;
    left: 3.5%;
}

.smartphone img.inside.i-1 {
    opacity: 1;
    animation: change 18s infinite;
}

.smartphone img.inside.i-2 {
    opacity: 0;
    animation: change2 18s infinite;
}

.smartphone img.inside.i-3 {
    opacity: 0;
    animation: change3 18s infinite;
}

@keyframes change {
    0% {opacity: 0;}
    23% {opacity: 0;}
    33.333% {opacity: 1;}
    56.333% {opacity: 1;}
    66.666% {opacity: 0;}
    89.666% {opacity: 0;}
    100% {opacity: 0;}
}

@keyframes change2 {
    0% {opacity: 1;}
    23% {opacity: 1;}
    33.333% {opacity: 0;}
    56.333% {opacity: 0;}
    66.666% {opacity: 0;}
    89.666% {opacity: 0;}
    100% {opacity: 1;}
}

@keyframes change3 {
    0% {opacity: 0;}
    33% {opacity: 0;}
    33.333% {opacity: 0;}
    56.333% {opacity: 0;}
    66.666% {opacity: 1;}
    89.666% {opacity: 1;}
    100% {opacity: 0;}
}

.raquet {
    display: block;
    margin: 20px auto;
}

.content {
    margin: 0 auto;
}


.block-0 {
}

.block h2 {
    font-size: 36px;
    font-weight: bold;
    text-align: center;
    margin: 2em auto 2em auto;
    line-height: 40px;
	position: relative;
}

.block h2:before {
  content: '';
  position: absolute;
  bottom: -15px;
  width: 60px;
  height: 2px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background: #162779;
	display: inline-block;
  border-radius: 0px;
}


.block.block-page h2 {
    margin-top: 0;
}

.block-page .block-wrapper {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
}

.block-page p {
    max-width: 1000px;
}

.block-1 {
    background: url('../img/bg1.jpg');
    background-size: cover;
    padding: 70px 0 70px;
    background-attachment: fixed;
}


.block.block-1 h2 {
    margin-top: 0;
}

.block-1 .block-wrapper {
    max-width: 1000px;
    width: 100%;
    margin: 0 auto;
}



.block-2 .green-box {
    background: #ffe7f4;
    max-width: 1000px;
    width: 95%;
    margin: 0 auto 30px;
    padding: 20px;
    border-radius: 8px;
}

.block-2 .green-box h3 {
    font-size: 22px;
    font-weight: bold;
    color: #162779;
    border-bottom: 1px solid #162779;
    padding-bottom: 8px;
    margin-bottom: 10px;
}

.block-2 .green-box h4 {
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 10px;
}

.block-2 .green-box p {
    max-width: 1000px;
    margin: 0 auto;
}

.join-link {
    width: 380px;
    height: 60px;
    color: #fff;
    background: #162779;
    text-align: center;
    line-height: 60px;
    padding: 0;
    border-radius: 30px;
    margin: 0 auto;
    display: block;
    text-decoration: none;
    font-size: 16px;
}

.block-3 {
    background: #34AADC;
    z-index: 9;
    padding: 150px 0 90px;
}

.block-3 p {
    line-height: 25px;
    margin-bottom: 20px;
    font-size: 13px;
}

img.takuya {
    width: 240px;
    margin: 100px auto -120px;
    display: block;
    position: relative;
    z-index: 10;
    border-radius: 50%;
}

.profile {
    text-align: center;
    color: #fff;
    line-height: 25px;
    font-size: 13px;
}

.curriculum {
    width: 1000px;
    margin: 0 auto;
}

.profile h4 {
    font-size: 18px;
    margin-bottom: 10px;
}

.block-3 h3 {
    color: #fff;
    border-bottom: 1px solid #fff;
    padding-bottom: 6px;
    margin-bottom: 20px;
}

.in-block {
    padding: 10px;
    border-radius: 8px;
    background: #fff;
    margin-bottom: 30px;
}

.in-block .in-block-images {
    float: right;
    margin-left: 20px;
    width: 15%;
}

.in-block .in-block-images img {
    width: 100%;
}

.in-block .in-block-images img:first-child {
    margin-bottom: 10px;
}

.block-3 .in-block {
    background: #6bc6ef;
    color: #fff;
}

.in-block.ib-left {
    float: left;
    width: 480px;
}

.in-block.ib-right {
    float: right;
    width: 480px;
}

.in-block.ib-full {
    clear: both;
}

.block-6 .in-block {
    padding: 10px;
    border-radius: 8px;
    background: none!important;
    margin-bottom: 30px;
}


.block-4 {
    background: #ffe7f4;
    padding: 60px 0;
}

.block-4 h3 {
    color: #162779;
    border-bottom: 1px solid #162779;
    padding-bottom: 8px;
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 10px;
}

.block-4 .block-wrapper {
    max-width: 1000px;
    width: 95%;
    margin: 0 auto;
}

.block-4 .in-block {
}

.block-5 {
    background: url('../img/bg2.jpg');
	background-attachment: fixed;/*画面からの相対位置（背景固定）*/
    background-size: cover;
    color: #fff;
    padding: 60px 0;
}

.block-5 a{
	color: #fff;
}

.block-5 .block-wrapper {
    max-width: 1000px;
    width: 95%;
    margin: 0 auto;
}

.block-5 .block-wrapper h3 {
    font-size: 18px;
    font-weight: bold;
    border-bottom: 1px solid #fff;
    padding-bottom: 8px;
    margin-bottom: 20px;
}

.block-5 .block-wrapper .price-conditions {
    margin-bottom: 40px;
}

.block-6 {
    width: 100%;
    max-width: 1000px;
    margin: 20px auto 50px auto;
}

.block-6 .flow h3 {
    font-size: 18px;
    font-weight: bold;
    border-bottom: 1px solid;
    padding-bottom: 8px;
}

.block-6 .flow.flow-blue {
    background: #ECF7FB;
    margin-bottom: 20px;
}

.block-6 .flow.flow-blue h3 {
    color: #37A8DD;
    border-color: #37A8DD;
}

.block-6 .flow h3 {
    font-size: 18px;
    font-weight: bold;
    border-bottom: 1px solid;
    padding-bottom: 8px;
    margin-bottom: 10px;
}

.block-6 .flow.flow-pink {
    background: #FFECF7;
    margin-bottom: 20px;
}

.block-6 .flow.flow-pink h3 {
    color: #162779;
    border-color: #162779;
}

.top_banner {
	margin-bottom: 100px;
}

.top_banner .box{
	margin: 80px auto;
	max-width: 1000px;
}


.flow-orange {
    background: #fff2e5;
    margin-bottom: 20px;
}

.flow-orange h3 {
    color: #ff7e00;
    border-color: #ff7e00;
	font-size: 22px;
    font-weight: bold;
    border-bottom: 1px solid;
    padding-bottom: 8px;
    margin-bottom: 10px;
}


.flow {
    width: 100%;
    padding: 10px 15px;
    border-radius: 8px;
}

.banners {
    background: #FEEBF7;
    padding: 30px 10px;
}

.banners .banners-wrap {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.banner {
    flex-basis: 33.33%;
    margin: 15px 0;
}

.banner a {
    display: block;
    width: 90%;
    margin: 0 auto;
    background: #ccc;
}

.banner a img {
    width: 100%;
    display: block;
}

.footer {
    height: 50px;
    color: #fff;
    font-size: 12px;
    text-align: center;
    background: #373839;
    line-height: 50px;
}

.red {
    color: #ff0000;
}

.light-red {
    color: #FF0004;
	font-weight: bold;
}

.light-blue {
    color: #57B2DF;
}


/*メニュー*/

.menu-menu-1-container ul li {
    display: block;
    line-height: 60px;
    white-space: nowrap;
    width: 92%;
    margin: 0 auto;
}

@media (max-width: 640px) {
    .menu-menu-1-container ul li{
      line-height: 60px!important;
    }
  }

 @media (max-width: 330px) {
    .menu-menu-1-container ul li{
      line-height: 40px!important;
    }
  }



.menu-menu-1-container ul li:after {
    display: block;
    height: 0px;
    background: rgba(255,255,255,0.4);
    content: '';
}

.menu-menu-1-container ul li a {
	color: #fff;
	text-decoration: none;
}

.menu-menu-1-container ul li a:hover {
    color: #162779;
    text-decoration: underline;
}

.clear {
    clear: both;
}

.bold {
    font-weight: bold;
}

.down {
    width: 50px;
    margin: 10px auto;
    display: block;
}

.flex {
    display: flex;
}

.flex .grow {
    flex-grow: 1;
}

.flex .right-image {
    width: 15%;
    margin-left: 5%;
}

.header h2 {
    background: url('../img/bg3.jpg') center center;
    background-size: cover;
	background-attachment: fixed;/*画面からの相対位置（背景固定）*/
    padding: 6em 0;
    text-align: center;
    color: #fff;
    font-size: 45px;
}

.modal {
    width: 100%;
    height: 100vh;
    margin: 0 auto;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    z-index: 9999;
    top: 0;
    left: 0;
}

.modal.hide {
    display: none
}

.modal img {
    width: 95%;
    display: block;
    margin: 0 auto;
    max-width: 800px;
    padding: 10px;
    background: #fff;
    border-radius: 5px;
}

.modal .modal-close {
    width: 95%;
    margin: 2vh auto 0;
    max-width: 800px;
    padding: 10px;
    color: #fff;
    font-size: 30px;
    text-align: right;
    cursor: pointer;
}


.modal2 {
    width: 100%;
    height: 100vh;
    margin: 0 auto;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    z-index: 9999;
    top: 0;
    left: 0;
}

.modal2.hide {
    display: none
}

.modal2 img {
    width: 95%;
    display: block;
    margin: 0 auto;
    max-width: 800px;
    padding: 10px;
    background: #fff;
    border-radius: 5px;
}

.modal2 .modal-close {
    width: 95%;
    margin: 2vh auto 0;
    max-width: 800px;
    padding: 10px;
    color: #fff;
    font-size: 30px;
    text-align: right;
    cursor: pointer;
}

.show-modal {
    cursor: pointer;
}

.contact {
    width: 100%;
    max-width: 1000px;
    margin: 50px auto 50px auto;
    background: #F1F1F1;
    padding: 30px;
    border-radius: 10px;
	border: 1px solid #ccc;
}

.contact input[type=text],
.contact input[type=tel],
.contact input[type=url],
.contact input[type=email],
.contact input[type=number] {
    width: 100%;
    border: 0px solid;
    height: 30px;
    margin-top: 5px;
}

.contact textarea {
    width: 100%;
    border: 0px solid;
    height: 200px;
    margin-top: 5px;
}

.contact input[type=submit] {
    border: 0;
    background: #162779;
    color: #fff;
    height: 40px;
    line-height: 40px;
    padding: 0 20px;
    border-radius: 3px;
    display: block;
    margin: 10px auto;
    min-width: 100px;
    font-size: 18px;
}

/* スクロール用 */
html{
  scroll-behavior: smooth;
}


.contact_box {
    background: #ebeeff;
    z-index: 9;
    padding: 70px 0 70px;
	margin-bottom: 0px!important;
}


.container a:hover {
    opacity: 0.8;
}


.law_table{
    width: 100%;
    text-align: left;
    border: none;
    border-collapse: separate;
    border-spacing : 6px 4px;
  }
  .law_table th{
    width: 30%;
    background-color: #ECF7FB;
	  padding: 1%;
  }
  .law_table td{
    background-color: #f7f7f7;
	  padding: 1%;

  }
  @media (max-width: 640px) {
    .law_table{
      font-size: 14px;
    }
  }

.terms_box{
	margin-bottom: 1.5em;
}

.terms_box p{
	margin-bottom: 0!important;
}
.indentback{
  padding-left: 2em;
	margin-bottom: 0!important;
}


*,
*::after,
*::before {
  box-sizing: border-box;
}

.accordion {
  max-width: 100%;
	margin-top: 2em;
}


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

ここからアコーディオンのCSS

------------------------------*/
/* チェックボックスは非表示 */
.accordion-hidden{
  display: none;
}

/* Question部分 */
.accordion-open {
  display: block;
  padding: 10px;
  background: #5bbce7;
  cursor: pointer;
  margin: 5px 0;
  font-weight: 700;
	color: #fff;
	font-size: 20px;
  position: relative;/* 変更部分 */
}

/* 開閉状態を示すアイコン+の作成 */
.accordion-open::before,
.accordion-open::after {
  content: '';
  width: 20px;
  height: 3px;
  background: #fff;
  position: absolute;
  top: 50%;
  right: 2%;
  transform: translateY(-50%);
}

/* 一本は縦にして+を作る */
.accordion-open::after {
  transform: translateY(-50%) rotate(90deg);
  transition: .5s;
}

/* アコーディオンが開いたら縦棒を横棒にして-にする */
.accordion-hidden:checked + .accordion-open:after {
  transform: translateY(-50%) rotate(0);
}

/* Answer部分 */
.accordion-close {
  display: block;
  height: 0;
  overflow: hidden;
  padding: 0;
  opacity: 0;
  transition: 0.5s;/* 表示速度の設定 */
}

/* チェックボックスにチェックが入ったらAnswer部分を表示する */
.accordion-hidden:checked + .accordion-open + .accordion-close {
  height: auto;
  opacity: 1;
  padding: 10px;
  background: #5bbce7;
}



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

ここからアコーディオンのCSS

------------------------------*/
.accordion2 {
  max-width: 100%;
	margin-bottom:  2em;
}

.accordion2 .in-block{
	margin-bottom: 0px;
}

/* チェックボックスは非表示 */
.accordion-hidden2{
  display: none;
}

/* Question部分 */
.accordion-open2 {
  display: block;
  padding: 10px;
  background: #162779;
  cursor: pointer;
  margin: 5px 0;
  font-weight: 700;
	color: #fff;
	font-size: 20px;
  position: relative;/* 変更部分 */
}

/* 開閉状態を示すアイコン+の作成 */
.accordion-open2::before,
.accordion-open2::after {
  content: '';
  width: 20px;
  height: 3px;
  background: #fff;
  position: absolute;
  top: 50%;
  right: 2%;
  transform: translateY(-50%);
}

/* 一本は縦にして+を作る */
.accordion-open2::after {
  transform: translateY(-50%) rotate(90deg);
  transition: .5s;
}

/* アコーディオンが開いたら縦棒を横棒にして-にする */
.accordion-hidden2:checked + .accordion-open2:after {
  transform: translateY(-50%) rotate(0);
}

/* Answer部分 */
.accordion-close2 {
  display: block;
  height: 0;
  overflow: hidden;
  padding: 0;
  opacity: 0;
  transition: 0.5s;/* 表示速度の設定 */
}

/* チェックボックスにチェックが入ったらAnswer部分を表示する */
.accordion-hidden2:checked + .accordion-open2 + .accordion-close2 {
  height: auto;
  opacity: 1;
  padding: 10px;
  background: #ffc0e3;
}


.big_text {
	text-align: center;
	font-size: 30px;
	line-height: 45px;
	font-weight: bold;
}

@media (max-width: 640px) {
    .big_text {
        font-size: 24px;
        line-height: 40px;
    }
}

.text-small{
	font-size: 10px;
	text-align: right;
	margin-bottom: 0;
}

@media screen and (min-width: 1370px){
	.fixed_btn {
	  position: fixed;
	  bottom: 10px; 
	  right: 10px;
	  padding: 6px 20px;
      z-index: 9999;
	}
}

@media screen and (max-width: 1369px){
	.fixed_btn{
	  display: none;
	}
}

@media screen and (min-width: 1024px){   
  .pc { display:block; }
  .sp { display:none; }
}
@media screen and (max-width: 1024px){
  .pc { display:none; }
  .sp { display:block; }
}



/*
 * moreボタン雛形 (hình dạng button more)
 */
.more {
  display: block;
  overflow: hidden;
  margin: auto;
}

.more a {
  display: block;
  border: 1px solid #162779;
  background: #162779;
  color: #ffffff;
  padding: 0.6em;
  border-radius: 10px;
  margin: 10px auto;
  max-width: 280px;
  width: 100%;
  text-align: center;
  text-decoration: none;
  transition: .3s;
}

.more a:after {
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}

.more a:hover {
  border: 1px solid #162779;
  color: #162779;
  background: transparent;
}

.more a:hover:after {
  border-top: 1px solid #162779;
  border-right: 1px solid #162779;
}

/*
 * ボタン矢印(mũi tên button)
 */
.add_arrow {
  display: block;
  position: relative;
  color: #fff;
}

.add_arrow:after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 5%;
  margin: auto;
  width: 6px;
  height: 6px;
  border-top: 1px solid #ffffff;
  border-right: 1px solid #ffffff;
  -webkit-transform: translate(0, -50%) rotate(45deg);
          transform: translate(0, -50%) rotate(45deg);
  transition: 0.2s;
}

.add_arrow.inverse:after {
  border-top: 1px solid #ffffff;
  border-right: 1px solid #ffffff;
}

.add_arrow.inverse:hover {
  border-color: #ffffff;
  color: #ffffff;
  background: #ab8846;
}

.add_arrow.inverse:hover:after {
  border-color: #ffffff;
}

.add_arrow:hover {
  color: #fff;
}

.add_arrow:hover:after {
  right: 4%;
  border-color: #ffffff;
}

.add_arrow2 {
  display: block;
  position: relative;
  color: #fff;
}

.add_arrow2:before {
  content: "";
  position: absolute;
  top: calc(43% - 2px);
  right: 13px;
  height: 11px;
  border-right: 1px solid #ffffff;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.add_arrow2:after {
  content: "";
  position: absolute;
  display: inline-block;
  width: 30px;
  right: 10px;
  top: calc(58% - 1px);
  border-top: 1px solid #ffffff;
}

.rain{
	padding: 1em;
	border-bottom: 1px solid #ccc;
}

.top_circle_bg{
	width: 200px;
}


.text-xxlarge{
	font-size: 36px;
}
.text-xlarge{
	font-size: 28px;
}
.text-large{
	font-size: 20px;
}


/*
 * 下層用
 */
article {
    width: 100%;
    background: url('../img/bg1.jpg') center center;
    background-size: cover;
    background-attachment: fixed;
}


article h3 {
    font-size: 26px;
    color: #162779;
    border-bottom: 1px solid #162779;
    padding-bottom: 8px;
    margin-bottom: 15px;
}



.scroll-table {
  overflow: auto;
  white-space: nowrap;
}