/* ここから下に記載していく */

body{
    background: url("../img/bg.png") no-repeat center center fixed;
    background-position: auto;
    color: #fff;
}

.inner{
    width: 90%;
    margin: 0 auto;
}

.flex{
    display: flex;
    justify-content: space-between;
}

@media screen and (max-width:768px) {
    .flex{
        display: block;
        justify-content: space-between;
    }
    br{
        display: none;
    }
}

img{
	max-width: 100%;
}

header{
}
.logo{
    width: 300px;
    margin-top: 60px;
}
.logo img{}

@media screen and (max-width:768px) {
    .logo{
        width: 65%;
        margin-top: 40px;
    }
    .logo img{}
}


/*============
nav
=============*/
nav {
    display: block;
    position: fixed;
    top: 0;
    left: -500px;
    bottom: 0;
    width: 500px;
    max-width: 100%;
    background: #111;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transition: all .5s;
    z-index: 3;
    opacity: 0.2;
  }
  .open nav {
    left: 0;
    opacity: 1;
  }
  nav .inner {
    padding: 25px;
  }
  nav .inner ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  nav .inner ul li {
    position: relative;
    margin: 0;
    border-bottom: 1px solid #fff;
  }
  nav .inner ul li a {
    display: block;
    color: #fff;
    font-size: 20px;
    padding: 2em 1em;
    text-decoration: none;
    transition-duration: 0.2s;
  }
  nav .inner ul li a:hover {
    background: #e4e4e4;
  }
  @media screen and (max-width: 768px) {
    nav {
      left: -100%;
      width: 100%;
      max-width: 100%;
    }
  }


  /*============
  .toggle_btn
  =============*/
  .toggle_btn {
    display: block;
    position: fixed;
    top: 40px;
    right: 60px;
    width: 45px;
    height: 45px;
    transition: all .5s;
    cursor: pointer;
    z-index: 3;
  }
  .toggle_btn span {
    display: block;
    position: absolute;
    left: 0;
    width: 45px;
    height: 4px;
    background-color: #fff;
    border-radius: 4px;
    transition: all .5s;
  }
  .toggle_btn span:nth-child(1) {
    top: 4px;
  }
  .toggle_btn span:nth-child(2) {
    top: 20px;
  }
  .toggle_btn span:nth-child(3) {
    bottom: 4px;
  }
  .open .toggle_btn span {
    background-color: #fff;
  }
  .open .toggle_btn span:nth-child(1) {
    -webkit-transform: translateY(10px) rotate(-315deg);
    transform: translateY(10px) rotate(-315deg);
  }
  .open .toggle_btn span:nth-child(2) {
    opacity: 0;
  }
  .open .toggle_btn span:nth-child(3) {
    -webkit-transform: translateY(-10px) rotate(315deg);
    transform: translateY(-22px) rotate(315deg);
  }
  /*============
  #mask
  =============*/
  #mask {
    display: none;
    transition: all .5s;
  }
  .open #mask {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: .8;
    z-index: 2;
    cursor: pointer;
  }

.mainVisual{ 
    margin: auto;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

.mainVisual .inner{
    width: 90%;
}
.mainVisual > div > h1{ 
    font-size: 72px!important;
    color: #fff;
    margin-bottom: 40px;
	font-weight: 900;
    line-height: 1.4;   
}
.mainVisual > div > h2{
    font-size: 30px!important;
    font-weight: 300;
    color: #fff;
}

@media screen and (max-width:768px) {
    .mainVisual{ 
    }
    
    .mainVisual .inner{
    }
    .mainVisual > div > h1{ 
        font-size: 32px!important; 
    }
    .mainVisual > div > h1 br{ 
        display: none;
    }
    .mainVisual > div > h2{
        font-size: 18px!important;
        font-weight: 300;
        color: #fff;
    }
}



.sec{
    width: 100%;
    height: 100vh;
    padding: 100px 0 0 0;
}

.sec h1{
    font-size: 36px;
    margin-bottom: 100px;
    font-weight: 900;
    line-height: 1.4; 
    font-family: "Josefin Sans", sans-serif;
}
.sec h2{
    font-size: 54px;
    font-weight: 900;
	color: #fff;
    line-height: 1.4; 
    font-family: "Josefin Sans", sans-serif;
}
.sec p{
    font-size: 16px;
    padding: 20px 0;
    line-height: 1.7;
}


@media screen and (max-width:768px) {
    .sec{
        padding: 0;
    }
    
    .sec h1{
        font-size: 32px;
        margin-bottom: 100px;
        line-height: 1.4; 
    }
    .sec h2{
        font-size: 18px;
        line-height: 1.4;
    }

    .sec p br{
        display: none;
    }
}


.about{
    padding: 100px 0;
    text-align: left;;
}
.about h1{
 }
.about h2{
}
.about .text{
    padding: 40px 0 80px;
}
.about .text p{
}

@media screen and (max-width:768px) {
    .sec{
        padding: 0;
    }
    
    .about h1{
        font-size: 32px;
        margin-bottom: 100px;
        line-height: 1.4; 
    }
    .about h2{
        font-size: 18px;
        line-height: 1.4;
    }
.about .text p br{
        display: none;
    }
}

.course{
    padding: 100px 0;
    text-align: left;
}
.course > div > sections.flex > div{
    width: 50%;
    justify-content: space-between;
    
}
.course h1{
    color: #fff;
 }
.course h2{
}
.course .text{
    padding: 40px 0 80px 0;
}

@media screen and (max-width:768px) {
    .course{
        padding: 0;
    }
    
    .course h1{
        font-size: 32px;
        margin-bottom: 100px;
        line-height: 1.4; 
    }
    .course h2{
        font-size: 18px;
        line-height: 1.4;
    }
    .course .text p br{
        display: none;
}
}


.courseFlex{
    width: 600px;
    margin-top: 50px;
}
.courseFlex ul{
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-align: start;
    -webkit-box-align: start;
    align-items: flex-start;
}
.courseFlex ul li{
    width: 180px;
    height: 180px;
    background: #fff;
    font-size: 14px;
    font-weight: 900;
    color: #333;
    margin: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    line-height: 1.7;
}


@media screen and (max-width:768px) {
.courseFlex{
    width: 90%;
    margin-top: 50px;
}
.courseFlex ul li{
    width: 140px;
    height: 140px;
}

}



.news{
    padding: 100px 0;
    text-align: left;
}
.news h1{
    text-align: left;
    color: #fff;
 }
 .news h2{
    text-align: left;
}
.news .contents{
    margin: 0 auto;
    padding: 60px 0;
}
.news .contents a{
}

.news .contents a:hover{
    opacity: 0.7;
    -webkit-transition: 0.5s; -moz-transition: 0.5s; -ms-transition: 0.5s; -o-transition: 0.5s; transition: 0.5s;
}
.news .contents dl{
    width: 300px;
}
.news .contents dl dd.title{
    font-size: 14px;
    line-height: 1.5;
    margin: 30px 0 24px 0;
}
.news .contents dl dd.text{
    font-size: 14px;
    line-height: 1.5;
}
.news a.btnArea {
    width: 360px;
    margin: auto;
    display: block;
    text-align: center;
    color: #fff;
    font-weight: 900;
    text-decoration: none;
}
.news a.btnArea:hover{
}


.access{
    padding: 100px 0;
    text-align: left;
}
.access h1{
    text-align: left;
 }
.access h2{
    text-align: left;
}

.access .map{
    padding: 60px 0;
}
.access .map iframe{
    width: 100%;
}

.access .map iframe::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50px; /* メニューバーの高さに応じて調整 */
    background-color: white; /* 背景色をサイトの背景色に合わせる */
    z-index: 10;
  }

  .i4ewOd-pzNkMb-haAclf{
    display: none !important;
  }

.access .addres{
    margin: auto;
}
.access .addres dl{
    display: flex;
    justify-content: space-between;
    padding: 20px 0;
}
.access .addres dl dt{
    width: 30%;
}
.access .addres dl dd{
    width: 70%;
}




.contact {
padding: 100px 0 140px 0;
text-align: left;;
}
.contact h1{
}
.contact h2{
}
.contact .text{
    padding: 60px 0 40px;
}
.contact .form{
    width: 640px;
    margin: -80px auto auto;
    text-align: left;
}
.contact .form dl{
    display: flex;
    display: table;
    justify-content: space-between;
    padding: 10px 0;
    color: #fff;
}
.contact .form dl dt{
    width: 240px;
    line-height: 1.5;
    display: table-cell;
    vertical-align: middle;
    font-size: 14px;
}
.contact .form dl dd{
    width: 398px;
    font-size: 14px;
}

.contact .form dl ul li{
    padding: 6px 0;
}
.cta {
    width: 360px;
    margin: 60px 0 0;
    display: block;
    text-align: center;
    color: #fff;
    font-weight: 900;
    text-decoration: none;
    background-image: linear-gradient(90deg, rgba(248, 15, 15, 1), rgba(207, 63, 245, 1));
    color: #fff;
    padding: 15px 0;
    font-size: 14px;
}
.copyright{
    font-size: 14px;
    text-align: center;
    padding: 30px 0;
}



@media screen and (max-width:768px) {
   
.contact .form{
    width: 100%!important;
    margin: auto;
    text-align: left;
} 
    .contact .form dl dt{
        width: 100%!important;
        line-height: 1.5;
        display: table-cell;
        vertical-align: middle;
        font-size: 14px;
    }
    .contact .form dl dd{
        width: 100%!important;
        font-size: 14px;
    }
}


/* fadeUp
---------------------- */

    .fadeUp {
        opacity: 0;
      }
      
      .fadeUp.active {
        animation: 1.5s fadeup ease-in-out forwards;
      }
      
      @keyframes fadeup {
        0% {
          opacity: 0;
          transform: translateX(-150px);
        }
      
        100% {
          opacity: 1;
          transform: translateX(0);
        }
      }

@keyframes fadeup {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}


/* ボタンデザイン 
---------------------- */

.c-btn.slip{
    background: transparent;
    border: none;
    position: relative;
    border-radius: 0;
    z-index: 1;
    padding: 15px 0;
  }
  .c-btn.slip::before,
  .c-btn.slip::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin: auto;
    transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  }
  .c-btn.slip::before {
    background-image: linear-gradient(90deg, rgba(248, 15, 15, 1), rgba(207, 63, 245, 1));
    z-index: -1;
  }
  .c-btn.slip::after{
    background: #fff;
    z-index: -2;
  }
  .c-btn.slip:hover {
    color: #E72979;
  }
  .c-btn.slip:hover::before {
    background: transparent;
  }
   
.c-btn.slip:hover::after {
  top: 6px;
  left: 6px;
}


/* フォーム 
---------------------- */

input[type="text"],
select {
    border: 1px solid #ccc;
    border-radius: 3px;
    box-sizing: border-box;
    font-size: 18px;
    padding: 5px;
    max-width: 100%;
    width: 100%;
}
textarea[type="text"]{
    border: 1px solid #ccc;
    border-radius: 3px;
    box-sizing: border-box;
    font-size: 18px;
    padding: 5px;
    max-width: 100%;
    width: 100%;
}
input[type="text"],
select {
    height: 40px;
    background: #fff;
    color: #333;
}
textarea[type="text"]{
    height: 250px;
    background: #fff;
    color: #333;
}
input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin-right: 20px;
    border-radius: 5px;
    border: 1px #c2c2c2 solid;
    background: #ddd;
}


@media screen and (max-width:768px) {

}
