@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;200;300;400;500;600;700;800;900&display=swap');

* {
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
}
body {
  font-family: 'Noto Sans JP', sans-serif;
  background-color: white;
}
main {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
}
img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
  box-sizing: border-box;
}
.img-wrap {
  margin: 0 auto;
  margin-top: -2.27px;
}

/*********floating*********/
#floatingmenu {
  display: none;
}
.floatingmenu {
  background-color:rgba(255, 255, 255, 0.8);
  position: fixed;
  bottom: 0;
  z-index: 99;
  width: 100%;
  max-width: 640px;
  padding: 18px 0 16px;
  box-shadow: 0 -3px 12px rgba(20, 20, 20, 0.1), inset 0 -4px 6px rgba(255, 255, 255, 1);
}

.floating-box {
  margin: 0 auto;
}
.floating-box-item {
  position:relative;
}
a .floating_cta {
  transition: 0.5s;
}
a .floating_cta:hover {
  transform: scale(1.04);
}

/* CTAボタン */
.relative {
  position: relative;
}
.absolute{
  position: absolute;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  width: 100%;
  max-width: 640px;
}
.absolute-01 {
  left: 50.2%;
  bottom: 3%;
  width: 10%;
  cursor: pointer;
}
.law-link {
  display: block;
  cursor: pointer;
  width: 100%;
  height: 30px;
  background-color: transparent;
}
.cta img {
  width: 100%;
  height: auto;
  margin: 0 auto;
  display: block;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), filter 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.cta:hover img {
  filter: saturate(120%);
}
.reflection {
  display:block;
  position:relative;
  overflow:hidden;
  width: 86%;
  height: auto;
  margin: 0 auto;
  border-radius: 55px;
}
.reflection:after {
  content:"";
  height:100%;
  width:30px;
  position:absolute;
  top:-180px;
  left:0;
  background-color: rgba(255, 255, 255, 0.7);
  opacity:0;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -webkit-transform: rotate(45deg);
  -webkit-animation: reflection 3s ease-in-out infinite;
}
  @keyframes reflection {
  0% { -webkit-transform: scale(0) rotate(45deg); opacity: 0; }
  80% { -webkit-transform: scale(0) rotate(45deg); opacity: 0.5; }
  81% { -webkit-transform: scale(4) rotate(45deg); opacity: 1; }
  100% { -webkit-transform: scale(50) rotate(45deg); opacity: 0; }
  }

@media screen and (max-width:640px) {
  .floatingmenu {
    padding: 2.4% 0;
  }
  .img-wrap {
    margin-top: -0.433vw;
  }
  .reflection {
    border-radius: 8vw;
  }
  .law-link {
    height: 4.2vw;
  }
  .absolute-01 {
    left: 50.6%;
    bottom: 4%;
  }
  .reflection:after {
    -webkit-animation: reflection 4s ease-in-out infinite;
  }
}