.background_image_header {
    height: 100%; 
    width: 100%; 
    position: absolute; 
    left: 0; 
    top: 0; 
    object-fit: cover;
}
.background_image_header img {
    width: 100%;
    height: 100%;
    max-width: unset;
    object-fit: cover;
}

.background_video {
    position: absolute;
    z-index: 0;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
}

.background_video iframe {
    position: absolute;
    z-index: 0;
    top: -50vh;
    width: 100vw;
    height: 200vh;
}
.background_video video {
    min-height: 100%;
    width: 100%;
}

.background_overlay {
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background-color: #000000;
    opacity: 0.5;
    z-index: 0;
}


/* for parallax stuff */
.parallax-mirror {
    z-index: 1 !important;
}
.row, .header_contents {
    z-index: 2;
}


@media (max-width: 768px) {
    .background_video {
        left: -20%;
        top: -40%;
        width: 140%;
        height: 140%;
    }

    .background_video iframe {
        position: absolute;
        z-index: 0;
        left: -500px;
        top: -50px;
        height: 1000px;
        width: 1200px;
    }
}


/*
 waves
 https://getwaves.io/
*/
@keyframes animateWave {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.1);
    }
}
.wave_container > svg {
    display: block;
    transform-origin: bottom;
    animation: animateWave 2000ms cubic-bezier(0.23, 1, 0.32, 1) forwards;
    /*
    -webkit-filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .7));
    filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .7));
    */
}

/** waves fixes (especially for mobile) */
.with-background-wave {
    z-index: 1;
}
@media (min-width: 768px) {
    .with-background-wave {
        padding-bottom: 14em;
        margin-bottom: -3em;
    }
}
@media (max-width: 768px) {
    .with-background-wave {
        padding-bottom: 12em !important;
    }
    .wave_container {
        width: 250% !important;
    }
}

