* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

/* button */
.button {
    display: inline-block;
    background: #fff;
    border: none;
    color: #0F75B8;
    font-family: Oswald;
    font-size: 0.7em;
    cursor: pointer;
    height: 5em;
    width: 24%;
    margin: 0 1% 1em 0;
}

.button:hover,
.button:active,
.button.is-checked {
    background-color: #F60;
    color: #fff;
}

/* button-group */
.button-group:after {
    content: '';
    display: block;
    clear: both;
}

/* button */
.button-group .button {
    float: left;
}

/* clear fix */
.grid:after {
    content: '';
    display: block;
    clear: both;
}

/* element-item */
.element-item {
    position: relative;
    width: 49%;
    height: 150px;
    background: transparent;
    margin: 0 1% 0.3em 0;
    vertical-align: middle;
}

.element-item > * {
    color: #0F75B8;
}

.element-item .hover-box {
    height: 0px;
    -webkit-transition: height 1s; /* For Safari 3.1 to 6.0 */
    transition: height 1s;
}

.element-item:hover .hover-box {
    height: 150px;
    background: #F50;
}

.element-item:hover img {
    opacity: 0.1;
}


.element-item .hover-box .text {
    display: none;
    margin: auto;
    height: 1.5em;
    font-size: 1.5em;
    color: #FFF;
    position: absolute;
    text-align: center;
    width: 100%;
    top: 0; left: 0; bottom: 0; right: 0;
}

.element-item:hover .hover-box .text {
    display: block;
}


@media only screen and (max-width: 500px) {

    .element-item .hover-box .text {
        font-size: 0.8em;
    }
}

@media only screen and (min-width: 600px) {

    /* button */
    .button {
        font-size: 1em;
        margin: 0 1% 1em 0;
    }
    
    /* .element-item */
    .element-item {
        height: 266px;
        margin: 0 1% 0.6em 0;
    }

    .element-item:hover .hover-box {
        height: 266px;
    }
}

@media only screen and (min-width: 1024px) {
    /* button */
    .button {
        width: 24%;
        margin: 0 1% 1em 0;
    }

    /* .element-item */
    .element-item {
        width: 24%;
        height: 140px;
        margin: 0 1% 0.6em 0;
    }

    .element-item:hover .hover-box {
        height: 140px;
    }
    
    .element-item .hover-box .text {
        font-size: 1.3em;
    }
}

@media only screen and (min-width: 1921px) {

    /* .element-item */
    .element-item {
        margin: 0 1% 3em 0;
    }
    
    .element-item:hover .hover-box {
        height: 160px;
    }
}