    /* Common Settings */
    .wrapper {
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flex;
        display: -o-flex;
        display: flex;
        -webkit-flex-wrap: wrap;
        -moz-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        -o-flex-wrap: wrap;
        flex-wrap: wrap;
        width: 960px;
        margin: 0 auto;
    }
    .box {
        padding: 30px;
        border: 1px solid #ccc;
        width: 300px;
        margin:10px;
    }
    .button{
        display: block;
        overflow: hidden;
        position: relative;
        z-index: 2;
        width: 250px;
        height: 54px;
        margin: 0 auto;
        background-color: #333;
        border: 2px solid #333;
        -webkit-transition: all .3s 0s ease-in-out;
        -o-transition:all .3s ease-in-out;
        transition: all .3s ease-in-out;
    }
    .button a{
        display: block;
        position: relative;
        z-index: 2;
        top:50%;
        width: 100%;
        height: auto;
        font-size: 1rem;
        color: #fff;
        line-height: 1.5;
        text-decoration: none;
        text-align: center;
        -webkit-transition: all .4s 0s ease-in-out;
        -o-transition:all .4s 0s ease-in-out;
        transition: all .4s 0s ease-in-out;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        -o-transform: translateY(-50%);
        transform: translateY(-50%);
    }
    .button::before,
    .button::after {
        content:'';
        display: block;
        position: absolute;
        -webkit-transition: all .3s 0s ease-in-out;
        -o-transition:all .3s 0s ease-in-out;
        transition: all .3s 0s ease-in-out;
    }
    /*-- Common settings end --*/
    /* 上下に背景が分かれる設定 */
    .divide-up-down .button:hover {
        background-color: #fff;
        border-color:#0ab3dd;
    }
    .divide-up-down .button:hover a {
        color: #0ab3dd;
    }
    .divide-up-down .button::before,
    .divide-up-down .button::after {
        z-index: 0;
        content:'';
        left: 0;
        width: 100%;
        height: 50%;
        background: #333;
    }
    .divide-up-down .button::before {
        top:0;
    }
    .divide-up-down .button::after {
        bottom:0;
    }
    .divide-up-down .button:hover::before,
    .divide-up-down .button:hover::after {
        background-color: #2bbec3;
    }
    .divide-up-down .button:hover::before {
        -webkit-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
        -o-transform: translateY(-100%);
        transform: translateY(-100%);
    }
    .divide-up-down .button:hover::after {
        -webkit-transform: translateY(100%);
        -ms-transform: translateY(100%);
        -o-transform: translateY(100%);
    transform: translateY(100%);
    }
    /*上から背景が下がってくる設定 */
    .drop-down .button {
        background: #fff;
    }
    .drop-down .button a {
        color:#333;
    }
    .drop-down .button::after {
        z-index:0;
        top:0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #333;
        content:'';
        -webkit-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
        -o-transform: translateY(-100%);
        transform: translateY(-100%);
        
    }
    .drop-down .button:hover a {
        color: #fff;
    }
    .drop-down .button:hover::after {
        -webkit-transform: translateY(0%);
        -ms-transform: translateY(0%);
        -o-transform: translateY(0%);
        transform: translateY(0%);
        
    }
    /*-- 回転して現れる --*/
    .rotate-appear .button {
        background: #fff;
    }
    .rotate-appear .button a {
        color:#333;
    }
    .rotate-appear .button:hover a {
        color:#fff;
    }
    .rotate-appear .button::after {
        z-index:0;
        top:0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #fff;
        content:'';
    }
    .rotate-appear .button:hover::after {
        background: #333;
        -webkit-transform: rotate(180deg) scale(2);
        -ms-transform: rotate(180deg) scale(2);
        -o-transform: rotate(180deg) scale(2);
        transform: rotate(180deg) scale(2);
    }
    
    /*--窓が閉じるような動き --*/
    .door-close .button {
        background: #fff;
        overflow: visible;
    }
    .door-close .button a {
        color:#333;
    }
    .door-close .button:hover a {
        color:#fff;
    }
    .door-close .button::after {
        z-index:0;
        top:0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #333;
        opacity: 0;
        content:'';
        -webkit-transform-origin:  50% 0%;
        -moz-transform-origin:  50% 0%;
        -ms-transform-origin:  50% 0%;
        -o-transform-origin:  50% 0%;
        transform-origin: 50% 0%;
        -webkit-transform: perspective(200px) rotateX(90deg);
        -ms-transform: perspective(200px) rotateX(90deg);
        -o-transform:perspective(200px) rotateX(90deg) ;
        transform: perspective(200px) rotateX(90deg);
    }
    .door-close .button:hover::after {
    opacity: 1;
        -webkit-transform: rotate(0);
        -ms-transform: rotate(0);
        -o-transform: rotate(0);
        transform: rotate(0);
    }
    
    /*-- 窓が開くような動き --*/
    .door-open .button {
        background: #fff;
        overflow: visible;
    }
    .door-open .button:hover a {
        color: #333;
    }
    .door-open .button:before {
        width: 100%;
        height: 100%;
        background: #333;
        opacity: 1;
        -webkit-transform-origin: center bottom;
        -moz-transform-origin:  center bottom;
        -ms-transform-origin:  center bottom;
        -o-transform-origin:  center bottom;
        transform-origin:  center bottom;
        -webkit-transform: rotateX(0);
        -ms-transform: rotateX(0);
        -o-transform: rotateX(0);
        transform: rotateX(0);
    }
    .door-open .button:hover:before {
        opacity: .8;
        -webkit-transform: perspective(200px) rotateX(-170deg);
        -ms-transform: perspective(200px) rotateX(-170deg);
        -o-transform: perspective(200px) rotateX(-170deg);
        transform: perspective(200px) rotateX(-170deg) ;
    }
    
    /*-- キューブで回転 --*/
    .cube-rotate .button {
        overflow: visible;
        background: #fff;
        -webkit-transform: perspective(200px);
        -ms-transform: perspective(200px);
        -o-transform: perspective(200px);
        transform: perspective(200px);
        border: none;
    }
    .cube-rotate .button a {
        top:0;
        height: 100%;
        background: #fff;
        color: #000;
        overflow: visible;
    }
    .cube-rotate .button a span {
        display: block;
        position: absolute;
        top:50%;
        width: 100%;
        height: 100%;
        border: 2px solid #333;
        padding-top: 5%;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        text-align: center;
        -webkit-transition: all .4s
        -o-transition: all .4s;
        transition: all .4s;
    }
    .cube-rotate .button a span:nth-child(1) {
        background: #555;
        color:#fff;
        -webkit-transform:rotateX(90deg);
        -ms-transform: rotateX(90deg);
        -o-transform: rotateX(90deg);
        transform: rotateX(90deg);
        -webkit-transform-origin: 50% 50% -27px;
        -moz-transform-origin: 50% 50% -27px;
        -ms-transform-origin: 50% 50% -27px;
        -o-transform-origin: 50% 50% -27px;
        transform-origin:50% 50% -27px;
    }
    .cube-rotate .button a span:nth-child(2) {
        background: #fff;
        color: #333;
        -webkit-transform: rotateX(0deg);
        -ms-transform: rotateX(0deg);
        -o-transform: rotateX(0deg);
        transform: rotateX(0deg);
        -webkit-transform-origin: 0% 50% -27px;
        -moz-transform-origin: 50% 50% -27px;
        -ms-transform-origin: 50% 50% -27px;
        -o-transform-origin: 50% 50% -27px;
        transform-origin:50% 50% -27px;
    }
    .cube-rotate .button:hover a span:nth-child(1) {
        -webkit-transform: rotateX(0deg);
        -ms-transform: rotateX(0deg);
        -o-transform: rotateX(0deg);
        transform: rotateX(0deg);
    }
    .cube-rotate .button:hover a span:nth-child(2) {
        background: #333;
        -webkit-transform: rotateX(-90deg);
        -ms-transform: rotateX(-90deg);
        -o-transform: rotateX(-90deg);
        transform: rotateX(-90deg);
    }