@charset "UTF-8";

body{
  font-family: "uddigikyokasho-pro", sans-serif;
font-weight: 400;
font-style: normal;
color: #535353;
}

.main{
    background-image: url(../img/background_bonus.jpg);
    background-position: center;
    background-size: cover;
    width: 100%;
    padding-top: 15em;
    padding-bottom: 9em;
    position: relative;
    z-index: -1;
}
.character_background{
  position: absolute;
  height: 100vh;
  background-image: url(../img/nomal_mono.png);
  width: 50%;
  opacity: .5;
  right: 0;
  z-index: -2;
}

.main_explain{
    max-width: 800px;
    width: 100%;
    text-align: center;
    margin: 0 auto;
}

.main_explain h3{
    color: #005183; /* 初期背景色（単色） */
}

.content{
    border-top: #b9b9b9 2px solid;
    border-bottom: #b9b9b9 2px solid;
    margin-bottom: 5em;
}
.content img{
    width: 70%;
}

.content h2{
    color: #005183; /* 初期背景色（単色） */
    padding: 1.5em 0;
}


.img_flex{
    display: flex;
    margin-bottom: 3em;
}

.img_flex img{
    width: 50%;
}


.caution{
    text-align: left;
    font-size: .7em;
    padding: 0 10em;
    margin: 0 auto;
}
.image2{
    display: none;
}

.steps{
    text-align: center;
    margin-bottom: 7em;
}

.steps img{
    max-width: 800px;
    width: 100%;
    margin: 2em 0;
    padding: 0 1em;
}

@media (max-width: 800px) {

    .caution{
        padding: 0 5em;
    }
    .character_background{
      position: absolute;
      height: 100vh;
      background-image: url(../img/nomal_mono_mini.png);
      width: 50%;
      opacity: .5;
      right: 0;
      top: 15em;
      z-index: -2;
    }
}
@media (max-width: 600px) {
    .main{
        padding-top: 10em;
        padding-bottom: 12em;
    }
    .img_flex{
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
    
    .img_flex img{
        width: 80%;
    }
    .image1{
        display: none;
    }
    .content img{
        width: 100%;
    }
    .steps img{
        max-width: 400px;
    }
    .image2{
        display: initial;
    }
}
@media (min-width: 1100px) {
  .main{
    background-image: url(../img/background_bonus2.jpg);
    background-position: center;
    background-size: cover;
    width: 100%;
    padding-top: 15em;
    padding-bottom: 9em;
  }

}

.btn,
a.btn,
button.btn {
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1rem 4rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}

/*ボタン周りの余白用*/
.btn-wrap {
  margin: 20px;
}

a.btn-coupon {
  line-height: 1.2;

  display: -webkit-box;

  display: -ms-flexbox;

  display: flex;

  width: 250px;
  height: 120px;
  margin: 0 auto;
  padding: 0;
}

a.btn-coupon .left {
  width: 80%;
  padding-top: 20px;

  -webkit-transition: all 0.6s;

  transition: all 0.6s;
  -webkit-transform-origin: top left;
  transform-origin: top left;

  border: 2px solid #71bb5e;
  border-right: 0;
  background: #fff;

  -webkit-transform-style: preserve-3d;

  transform-style: preserve-3d;
}


a.btn-coupon .left span.txt1 {
  color: #71bb5e;
}

a.btn-coupon .left em {
  font-size: 1.5em;
  font-style: normal;

  display: block;

  color: #71bb5e;
}

a.btn-coupon .right {
  position: relative;

  width: 20%;
  height: 100%;

  -webkit-transition: all 0.6s;

  transition: all 0.6s;
  -webkit-transform-origin: top left;
  transform-origin: top left;

  color: #fff;
  border-left: 2px dotted #fff;
  background: #71bb5e;

  -webkit-transform-style: preserve-3d;

  transform-style: preserve-3d;
}

a.btn-coupon .right span {
  font-size: 1.5em;
  line-height: 1;

  position: absolute;
  top: -0.8rem;
  left: calc(50% - 0.8rem);

  display: inline-block;

  -webkit-transform: rotate(90deg);

  transform: rotate(90deg);
  -webkit-transform-origin: bottom left;
  transform-origin: bottom left;
}

a.btn-coupon:hover .left {
  -webkit-transform: rotateX(-20deg);
  transform: rotateX(-20deg);
}

a.btn-coupon:hover .right {
  -webkit-transform: rotateX(-20deg) rotateY(75deg);
  transform: rotateX(-20deg) rotateY(75deg);
}



/* ここからローディング */


.wrapper_outside {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: burlywood;
  z-index: 9999; /* 最前面に表示 */
  transition: opacity 2s ease, transform 5s ease, visibility 1s ease; /* フェードと移動用 */
  opacity: 1;
  visibility: visible;
  transform: translateY(0); /* 初期位置 */
}

.wrapper_outside.fade-out {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-50px); /* 上に移動 */
}

.wrapper{
  width:200px;
  height:60px;
  position: absolute;
  left:50%;
  top:50%;
  transform: translate(-50%, -50%);
}
.circle{
  width:20px;
  height:20px;
  position: absolute;
  border-radius: 50%;
  background-color: #fff;
  left:15%;
  transform-origin: 50%;
  animation: circle .5s alternate infinite ease;
}

@keyframes circle{
  0%{
      top:60px;
      height:5px;
      border-radius: 50px 50px 25px 25px;
      transform: scaleX(1.7);
  }
  40%{
      height:20px;
      border-radius: 50%;
      transform: scaleX(1);
  }
  100%{
      top:0%;
  }
}
.circle:nth-child(2){
  left:45%;
  animation-delay: .2s;
}
.circle:nth-child(3){
  left:auto;
  right:15%;
  animation-delay: .3s;
}
.shadow{
  width:20px;
  height:4px;
  border-radius: 50%;
  background-color: rgba(0,0,0,.5);
  position: absolute;
  top:62px;
  transform-origin: 50%;
  z-index: -1;
  left:15%;
  filter: blur(1px);
  animation: shadow .5s alternate infinite ease;
}

@keyframes shadow{
  0%{
      transform: scaleX(1.5);
  }
  40%{
      transform: scaleX(1);
      opacity: .7;
  }
  100%{
      transform: scaleX(.2);
      opacity: .4;
  }
}
.shadow:nth-child(4){
  left: 45%;
  animation-delay: .2s
}
.shadow:nth-child(5){
  left:auto;
  right:15%;
  animation-delay: .3s;
}
.wrapper span{
  position: absolute;
  top:75px;
  font-size: 20px;
  letter-spacing: 12px;
  color: #fff;
  left:15%;
}


.character_loading img{
  width: 100%;
}




.character_loading {
  position: absolute;
  bottom: -4em;
  right: -7em; /* 初期位置を画面外に設定 */
  width: 100px; /* キャラクターの幅 */
  animation: move-horizontal 20s linear infinite, zigzag-rotate 1s ease-in-out infinite;
}



@media (max-width: 500px) {
  .character_loading {
    position: absolute;
    bottom: -4em;
    right: -4.5em; /* 初期位置を画面外に設定 */
    width: 80px; /* キャラクターの幅 */
    animation: move-horizontal 20s linear infinite, zigzag-rotate 1s ease-in-out infinite;
  }
  
}