.button01 {
  display: inline-block;
  width: 200px;
  height: 54px;
  text-align: center;
  text-decoration: none;
  line-height: 54px;
  outline: none;
}
.button01::before,
.button01::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: '';
}
.button01,
.button01::before,
.button01::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all .3s;
  transition: all .3s;
}


.button01 {
  position: relative;
  z-index: 2;
  background-color: #fff;
  border: 2px solid #333;
  color: #333;
  line-height: 50px;
  overflow: hidden;
}
.button01:hover {
  color: #fff;  
}
.button01::after {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(.5);
  transform: scale(.5);
}
.button01:hover::after {
  background: #333;
  -webkit-transform: scale(1);
  transform: scale(1);
}

/*端丸ボタン*/
.button02 {
  display: inline-block;
  width: 200px;
  height: 54px;
  text-align: center;
  text-decoration: none;
  line-height: 54px;
  outline: none;
}
.button02::before,
.button02::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: '';
}
.button02,
.button02::before,
.button02::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all .3s;
  transition: all .3s;
}

.button02 {
  background-color: #71BDCD;
  border: 2px solid #71BDCD;
  color: #fff;
  line-height: 50px;
  border-radius:27px;
}
.button02:hover {
  background-color: #fff;
  border-color: #59b1eb;
  color: #59b1eb;
  text-decoration:none;
}


/*背景黒色ボタン*/
.btn-flat-simple_black:hover {
    background: #BDC0B7;
    color: #FFFFFF;
}
.btn-flat-simple_black {
    position: relative;
    display: inline-block;
    font-weight: normal;
    padding: 0.3em 0.5em;
    text-decoration: none;
    color: #FFFFFF;
    background: #000;
    transition: .4s;
    border-radius: 5px;
    width:100%;
    max-width:280px;
    height:35px;
    text-align:center;
    font-size:1.2vw;
    line-height:39px;
}

/*黒線交差*/
.btn-cross {
  display: inline-block;
  position: relative;
  padding: 0.25em 1em;
  border-top: solid 2px black;
  border-bottom: solid 2px black;
  text-decoration: none;
  font-weight: normal;
  color: #000;
  /*width: 200px;*/
  /*height: 30px;*/
  font-size: calc(1rem + 0.5vw);
  padding: 12px 25px 17px;
}
.btn-cross:before, .btn-cross:after {
  content: '';
  position: absolute;
  top: -7px;
  width: 2px;
  height: -webkit-calc(100% + 14px);
  height: calc(100% + 14px);
  background-color: black;
  transition: .3s;
}
.btn-cross:before {
  left: 7px;
}
.btn-cross:after {
  right: 7px;
}
.btn-cross:hover:before {
  top: 0px;
  left:0;
  height: 100%;
}
.btn-cross:hover:after {
  top: 0px;
  right: 0;
  height: 100%;
}


