@charset "UTF-8";
.cmshtml #page-top {
  background: #0D3753;
  border: 1px solid #0D3753;
  display: block;
  position: fixed;
  bottom: 39px;
  right: 40px;
  z-index: 33;
  cursor: pointer;
  width: 60px;
  height: 60px;
  transition: all 0.3s;
}
.cmshtml #page-top:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  margin: -5px 0 0 -10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(-45deg);
  transition: all 0.3s;
}
.cmshtml #page-top:hover {
  background: #fff;
}
.cmshtml #page-top:hover:before {
  border-top: 2px solid #0D3753;
  border-right: 2px solid #0D3753;
}
.cmshtml .load-fade {
  opacity: 0;
  transition: all 2s;
  overflow: hidden;
}
.cmshtml .load-fade.done {
  opacity: 1;
}
.cmshtml #loader {
  -webkit-transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  -moz-transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  -o-transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  position: fixed;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: #0D3753;
  top: 0;
  left: 0;
  z-index: 99999;
  visibility: visible;
  opacity: 1;
}
.cmshtml #loader > div {
  -webkit-transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  -moz-transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  -o-transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  display: block;
  -webkit-animation: loaderAnime 0.5s ease-in-out;
  animation: loaderAnime 0.5s ease-in-out;
  position: relative;
}
.cmshtml #loader.loadComplete, .cmshtml #loader.loadComplete > div {
  visibility: hidden;
  opacity: 0;
}
@-webkit-keyframes loaderAnime {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes loaderAnime {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.cmshtml #loader > div:after {
  background: #0D3753;
  display: block;
  content: "";
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 99;
  -webkit-transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  -moz-transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  -o-transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  transition: all 0.6s cubic-bezier(0.5, 0, 0, 1);
  -webkit-animation: logoAnime 1s ease-in-out;
  animation: logoAnime 1s ease-in-out;
}
@-webkit-keyframes loaderAnime {
  0% {
    width: 100%;
  }
  100% {
    width: 0;
  }
}
@keyframes logoAnime {
  0% {
    width: 100%;
  }
  100% {
    width: 0;
  }
}
.cmshtml .slide-in {
  overflow: hidden;
  display: inline-block;
}
.cmshtml .slide-in_inner {
  display: inline-block;
}
.cmshtml .leftAnime {
  opacity: 0;
  /*事前に透過0にして消しておく*/
}
.cmshtml .slideAnimeLeftRight {
  animation-name: slideTextX100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes slideTextX100 {
  from {
    transform: translateX(-100%);
    /*要素を左の枠外に移動*/
    opacity: 0;
  }
  to {
    transform: translateX(0);
    /*要素を元の位置に移動*/
    opacity: 1;
  }
}
.cmshtml .slideAnimeRightLeft {
  animation-name: slideTextX-100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes slideTextX-100 {
  from {
    transform: translateX(100%);
    /*要素を右の枠外に移動*/
    opacity: 0;
  }
  to {
    transform: translateX(0);
    /*要素を元の位置に移動*/
    opacity: 1;
  }
}






.cmshtml .stepbox > div + div {
    margin-top: 20px;
}

.cmshtml .step_div {
    border: 1px solid #163D72;
    position: relative;
    flex-flow: nowrap;
    

}
.cmshtml .step_num {
    background: #163D72;
    font-size: 30px;
    font-weight: 600;
    position: relative;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-width: 80px;
    max-width: 80px;
}
.cmshtml .step_num,
.cmshtml .step_num a {
    color: #fff;
}
.cmshtml .step_txt {
    padding: 20px 10px;
    padding-left: 40px;
    position: relative;
}
.cmshtml .step_txt:before {
    background: url("../img/bg_step.png") no-repeat left top;
    background-size: 25px 100%;
    content: "";
    display: block;
    width: 25px;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
}






@media screen and (max-width: 680px) {

.cmshtml .step_num {
    font-size: 20px;
    min-width: 60px;
    max-width: 60px;
}
.cmshtml .step_txt {
    font-size: 14px;
    padding: 10px;
}
.cmshtml .step_txt:before {
    display: none;
}



  .cmshtml .wrap_sp2div, .cmshtml .wrap_sp4div {
    display: flex;
    flex-flow: wrap;
  }
  .cmshtml .wrap_sp2div > div {
    width: 50% !important;
    flex: unset;
  }
  .cmshtml .wrap_sp4div > div {
    width: 25% !important;
    flex: unset;
  }
}