*,
*:after,
*:before{
  -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
      box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-overflow-scrolling: touch;
  -webkit-font-smoothing: antialiased;
}

body{
  font-family: "Rounded Mplus 1c",sans-serif;
  color: #39455B;
}

.clearfix:after {
    content:" ";
    display:block;
    clear:both;
}
p{
  font-size: 1.2rem;
}

/* div id */
.sec{
  padding: 4rem 3.2rem 2rem 3.2rem;
}

#header{
  position: relative;
  text-align: center;
}
#header h1{
  margin: 8px;
}
#header .tokuten_info{
  position: relative;
  width: 360px;
  z-index: 100;
}

#sec-main{
  position: relative;
  padding: 0 3.2rem 2rem 3.2rem;
  background-color: #00D3CD;
  z-index: 4;
}
  #sec-main .div-main{
    margin-bottom: 16px;
    text-align: center;
  }

#sec-first1{
  position: relative;
  margin-top: -28px;
  width: 100%;
  height: 48vw;
  background-color: #00D3CD;
  overflow: hidden;
}
  #sec-first1 video{
    position: absolute;
    width: 100%;
    height: 100%;
  }

#sec1{
  position: relative;
  background-color: #ffffff;
  z-index: 3;
}
  #sec1 .sec1-in{
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    justify-content: center;
    -webkit-justify-content: center;
    -ms-justify-content: center;
    align-items: center;
    margin: 0 auto;
  }
  #sec1-left{
    padding: 16px;
  }
    #sec1-left h2{
      margin-bottom: 1em;
    }
  #sec1-right{

  }

#sec2{
  position: relative;
  background: rgb(55,236,186);
  background: -moz-linear-gradient(top, rgb(55,236,186) 0%, rgb(125,185,232) 84%);
  background: -webkit-linear-gradient(top, rgb(55,236,186) 0%,rgb(125,185,232) 84%);
  background: linear-gradient(to bottom, rgb(55,236,186) 0%,rgb(125,185,232) 84%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#37ecba', endColorstr='#7db9e8',GradientType=0 );
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#37ecba', endColorstr='#7db9e8',GradientType=0 );
  z-index: 2;
}
  #sec2 .sec2-in{
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: center;
    -webkit-justify-content: center;
    -ms-justify-content: center;
    margin: 0 auto;
    max-width: 960px;
  }
  #sec2 .div-step{
    margin: 16px;
    width: 240px;
    height: 240px;
    border-radius: calc(240px / 2);
    background-color: #ffffff;
    text-align: center;
  }
  #sec2 .div-step h3{
    margin: 0;
    margin-top: -1rem;
    font-size: 2rem;
  }
  #sec2 .div-step h3 small{
    color: #39455B;
  }
  #sec2 .div-step .multi{
    margin-top: -2.2rem;
  }
  #sec2 .div-step img{
    margin-top: 0.4rem;
    width: 70%;
  }

#sec3{
  position: relative;
  background-color: #ffffff;
  text-align: center;
  z-index: 1;
}
  #sec3 h2{
    margin: 0 auto;
  }
  #sec3 img{
    margin: 32px 0;
  }

#footer{
  padding: 40px 24px 16px 24px;
  font-weight: bold;
  background-color: #39455B;
  color: #ffffff;
  text-align: right;
}
  #footer i{
    padding-right: 8px;
  }
  #footer a, #footer a:visited{
    color: #81D4FA;
  }

  hr{
    margin-top: 40px;
    border-color: rgba(255, 255, 255, 0.1);
  }
  .logo{
    width: 120px;
    padding-bottom: 24px;
  }

/* div class */
.div-store{
  text-align: center;
}
  .div-store img{
    margin: 0 8px !important;
    max-width: 160px;
  }

.svg-bg{
  position: absolute;
  bottom: -40px;
  height: 50px;
  left: 0;
  width: 100%;
}

/* add css */
.fadein,
.fadein-soon{
    opacity : 0;
    transform : translate(0, 50px);
    transition : all 300ms;
}
.fadein.scrollin,
.fadein-soon.scrollin{
    opacity : 1;
    transform : translate(0, 0);
}

.accent{
  color: #00D3CD;
}

/* section */
.loading{
  position: fixed;
  top: 0;
  padding-top: 50vh;
  width: 100vw;
  height: 100vh;
  background-color: #00D3CD;
  z-index: 99;
  text-align: center;
}
  .loading .loading-in{
    margin-top: -7rem;
  }
  .loading .fas{
    color: #ffffff;
    font-size: 5rem;
  }
  .loading p{
    margin-top: 8px;
    color: #ffffff;
    font-weight: bold;
  }



#content{
  display: none;
}


@media screen and (max-width: 960px){
  #sec2 .div-step{
    margin: 8px;
    width: 180px;
    height: 180px;
    border-radius: 90px;
  }
  #sec2 .div-step h3{
    margin: 0;
    margin-top: -1rem;
    font-size: 1.4rem;
  }
  #sec2 .div-step .multi{
    margin-top: -1.8rem;
  }
}
@media screen and (max-width: 736px){
  .sec{
    padding: 4rem 1rem 1rem 1rem;
  }
  #sec1 .sec1-in{
    display: block;
  }
  #sec1 #sec1-right{
    text-align: center;
  }
  #sec1 #sec1-right img{
    width: 60%;
  }
  #sec3 h2{
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 640px){
  #sec2 .div-step{
    margin: 24px auto;
    width: 240px;
    height: 240px;
    border-radius: 120px;
  }
  #sec2 .div-step h3{
    margin: 0;
    margin-top: -1rem;
    font-size: 1.2rem;
  }
  #sec2 .div-step .multi{
    margin-top: -1.6rem;
  }
  #sec2 .sec2-in{
    display: block;
  }
  #sec2 .div-step h3{
    margin: 0;
    margin-top: -1rem;
    font-size: 1.6rem;
  }
  #sec2 .div-step .multi{
    margin-top: -2.2rem;
  }
}
@media screen and (max-width: 420px){
  #sec-first1{
    position: relative;
    width: 100%;
    height: 100vw;
  }
    #sec-first1 video{
      position: absolute;
      width: 100%;
      height: 100%;
    }
  .div-store img{
    margin: 0 !important;
    width: calc(50% - 24px);
  }
  #sec3.sec{
    padding-right: 0;
    padding-left: 0;
  }
  #sec-main{
    padding: 0 0.5rem 2rem 0.5rem;
  }
  #sec1 #sec1-right img{
    width: 100%;
  }
  #sec2 .div-step img{
    margin-top: 1rem;
    width: 70%;
  }
}
@media screen and (max-width: 321px){
  #sec3 h2{
    font-size: 1.4rem;
  }
  #sec2 .div-step{
    margin: 16px;
    width: calc(100vw - 64px);
    height: calc(100vw - 64px);
    border-radius: calc((100vw - 64px) / 2);
    background-color: #ffffff;
    text-align: center;
  }
}
