body {
    min-height: 100vh;
    background: url('background.jpg');
    background-size: cover;
}
/*
*
* ==========================================
* CUSTOM UTIL CLASSES
* ==========================================
*
*/

/* DEMO GENERAL ============================== */
.hover {
    overflow: hidden;
    position: relative;
    padding-bottom: 100%;
}

.hover-overlay {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 90;
    transition: all 0.4s;
}

.hover img {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transition: all 0.3s;
}

.hover-content {
    position: relative;
    z-index: 99;
}


/* DEMO 1 ============================== */
.hover-1 img {
    width: 105%;
    position: absolute;
    top: 0;
    left: -5%;
    transition: all 0.3s;
    opacity: 0.5;
}
@media(max-width: 991px){
    .hover-1 img {
        opacity: 1;
    }
}
.hover-2 img {
    left:5%;
}

.hover-1-content {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 99;
    transition: all 0.4s;
}

.hover-1 .hover-overlay {
    background: rgba(0, 0, 0, 0);
}

.hover-1-description {
    transform: translateY(0.5rem);
    transition: all 0.4s;
    opacity: 0;
}

.hover-1:hover .hover-1-content {
    bottom: 2rem;
    background: rgba(0,0,0,0.7);
}

.hover-1:hover .hover-1-description {
    opacity: 1;
    transform: none;
}
@media(max-width: 991px){
    .hover-1 .hover-1-content {
        background: rgba(0,0,0,0.7);
    }
    .hover-1 .hover-1-description {
        opacity: 1;
        transform: none;
    }
}

.hover-1:hover img {
    left: 0;
    opacity: 1;
}

.hover-1:hover .hover-overlay {
    opacity: 0.5;
}
.lang {
    display:none;
}
.lang.visible {
    display: initial;
}

/*
*
* ==========================================
* FOR DEMO PURPOSES
* ==========================================
*
*/

footer {
    color: #ffffff;
}
footer h1 {
    font-family: 'Syne', sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-weight: 800;
}
.flags{
    font-size:6em;
    line-height:1;
    margin:0;

}
.flag{
    box-sizing:content-box;
    display:inline-block;
    position:relative;
    width:1em;
    height:1em;
    margin:0;
    background:#fff;
    border-radius:50%;
    border:solid #eee;
    overflow:hidden;
    box-shadow: 0;
    opacity:.5;
    transition: 1s;
    transform: scale(50%) !important;
}
.flag:hover, .flag.visible{
    display: inline-block !important;
    border-radius:50%;
    box-shadow:0 0 .2em #666;
    opacity:1;
    transform:rotate(-360deg);
}
/* UK */
.en {
    position:relative;
    border:1px solid #444;
    border-right:1px solid #999;
    border-bottom:1px solid #999;
    -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.25);
    box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.25);
    margin-right:8px;
}
.en.usa {
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(204,0,0,1)), color-stop(50%,rgba(204,0,0,1)), color-stop(51%,rgba(255,255,255,1)), color-stop(99%,rgba(255,255,255,1)));
    background-size:15px 25px;
}
.en.usa:before {
    position:absolute;
    display:block;
    content:"* * ";
    font-size: 15px;
    font-weight:bold;
    color:#fff;
    padding:10px 10px 0 10px;
    margin: 0;
    width:35%;
    height:43%;
    line-height:20px;
    top:-5px;
    left:-1px;
    background: #000066;
}

.en.usa:after {
    position:absolute;
    display:block;
    content:"";
    width:100%;
    height:100%;
    top:0;
    left:0;
    background: linear-gradient(135deg,  rgba(255,255,255,0.15) 0%,rgba(255,255,255,0.5) 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 99%,rgba(255,255,255,0) 100%);
    box-shadow: inset 1px 1px 0px 0px rgba(255, 255, 255, 0.45), inset -2px -2px 0px 0px rgba(255, 255, 255, 0.35);
}

/* Deutchland DE */
.de{
    background:rgb(200,10,10);
}
.de:after{
    display:block;
    content:"";
    width:1em;
    height:.5em;
    background:rgb(255,255,255);
}

.content{
    overflow:hidden;
    background:#eee;
    width:80%;
    padding:2em;
    margin:0 auto;
}



