/*************************************
grid
**************************************/
.grid {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.grid.is-middle {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.grid.is-bottom {
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
}

.grid.is-center {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.grid.is-end {
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
}

.grid.is-between {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.grid.is-around {
  -ms-flex-pack: distribute;
  justify-content: space-around;
}

/*************************************
上下中央揃え
**************************************/
.flex-center{
  display:flex;
  display:-webkit-flex;
  flex-wrap:wrap;
  -webkit-flex-wrap:wrap;
  align-items:center;
  -webkit-align-items:center;
  justify-content:center;
  -webkit-justify-content:center;
}


/*************************************
擬似要素の中央寄せ
**************************************/
.element-center-x,
.element-center-y{
  position:relative;
}

.element-center-x::before,
.element-center-x::after{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
}

.element-center-y::before,
.element-center-y::after{
  position:absolute;
  top: 50%;
  transform:translateY(-50%);
}

@media screen and (max-width: 768px) {
  .grid {
    display: block;
  }
  .grid-sp {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .element-center-x-sp::before,
  .element-center-x-sp::after{
    top:auto;
    left:50% !important;
    transform: translate(-50%,0);
  }

  .element-center-y-sp::before,
  .element-center-y-sp::after{
    left:auto;
    top:50% !important;
    transform:translate(0,-50%);
  }
}