*, *::before, *::after {
  box-sizing: border-box;
}

.basicBox,  .checkBox {
  width: 100%;
  margin: 30px auto;
  text-transform: uppercase;
  text-align: center;
  position: relative;
  cursor: pointer;
}

.basicBox,  .checkBox p {
  color: #0aa095;
  font-size: 1.15rem;
  line-height: 65px;
}

svg {
  position: absolute;
  top: 0;
  left: 20%;
}
svg rect, svg path, svg polyline {
  fill: none;
  stroke: #0aa095;
  stroke-width: 1;
}

.basicBox:hover svg rect, {
  stroke: #0aa095;
}

/* Basic Box */
svg rect {
  stroke-dasharray: 400, 0;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  -ms-transition: all 0.8s ease-in-out;
  -o-transition: all 0.8s ease-in-out;
}
.basicBox:hover svg rect {
  stroke-width: 3;
  stroke-dasharray: 35, 245;
  stroke-dashoffset: 38;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  -ms-transition: all 0.8s ease-in-out;
  -o-transition: all 0.8s ease-in-out;
}

/* コンテンツ fade
------------------------------------------------------------*/
.fade{
    opacity: 0;
}

.fade.is-active{
	animation: zoomIn 0.8s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
    opacity: 1;
}
 
@keyframes zoomIn {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
/* コンテンツ js-marker
------------------------------------------------------------*/
.js-marker {
  display: inline;
  position: relative;
  background-image: linear-gradient(90deg, rgb(150,200,210,.7), rgb(150,200,210,.7)); 
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 20%; 
  transition: all 2s ease-in-out; 
}


.js-marker.inview {
  background-size: 100% 20%; /
}