/*
███████████████████████████████████████████
████████████     @IMPORTS      ████████████
███████████████████████████████████████████
/*░░░░░░░░░░     RESET CSS     ░░░░░░░░░░░*/
@import url(./reset.css);

/*░░░░░░░░░░    LOCAL FONTS    ░░░░░░░░░░░*/
/* @import url(./fonts.css); */

/*░░░░░░░░░░    GOOGLE FONTS   ░░░░░░░░░░░*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;500;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;500;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Rowdies:wght@300;400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Rock+Salt&family=Rowdies:wght@300;400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&display=swap');

/*
███████████████████████████████████████████
████████████     VARIABLES     ████████████
███████████████████████████████████████████
*/
:root {
    --title-font: 'Montserrat';
    --body-font: 'Roboto';
    --special-font: ;

    --header-color: #000000;

    --color-primary: #ad0000;
    --primary-darken-color: #6f0000;

    --second-color: #005cad;
    --second-darken-color: #003d73;

    --light-color: #ffffff;
    --dark-color: #000000;

    --light-grey: #dfdfdf;
    --dark-grey: #666666;

    --shadow-color: rgba(0,0,0,.2);
    --overlay-color: rgba(0,0,0,.6);
    
    --main-wrapper: 1400px;
    --gap-width: 1rem;

    --transition: all .3s ease-in-out;

    --loader-layer: 99999;
    --modal-layer: 9999;
    --menu-layer: 999;
    --deco-layer: 99;
    --text-layer: 9;
    --base-layer: 1;
    --bg-layer: -1;
}

/*
██████████████████████████████████████████
██████████   GENERAL CONTROLS   ██████████
██████████████████████████████████████████
*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    width: 100%;
    height: 100vh;
    background-color: var(--light-color);
    font-family: var(--title-font), sans-serif;

    position: relative;
    z-index: var(--base-layer);
}

/*
██████████████████████████████████████████
███████████     HELPPERS      ████████████
██████████████████████████████████████████
*/
.main-wrapper {
    width: 100%;
    max-width: var(--main-wrapper);
    margin: 0 auto;
    padding: 0 1em;
}

.hide {
    display: none !important;
}

.show {
    display: block !important;
}

.no-desktop {
    display: none !important;
}

.no-mobile {
    display: block !important;
}

.highlight {
    color: var(--color-primary);
}

/*
██████████████████████████████████████████
███████████       LAYOUT      ████████████
██████████████████████████████████████████
*/
main#index-page {
    padding: 0;
}

main {
    padding: 4rem 0;
}

/*
██████████████████████████████████████████
███████████      LOADING      ████████████
██████████████████████████████████████████
*/
#loading {
    display: none;
    width: 100vw;
    height: 100vh;
    background-color: var(--light-grey);

    position: fixed;
    top: 0;
    left: 0;
    z-index: var(--loader-layer);
}

#loading.active {
    display: block;
}

#loading .wrapper {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#loading .wrapper .gif {
    max-width: 50px;
}

#loading .wrapper .text {
    font-size: .8rem;
    font-weight: bold;
    text-align: center;
    color: var(--dark-color);
}

/*
██████████████████████████████████████████
███████████      MODAL BOX    ████████████
██████████████████████████████████████████
*/
.modal-box {
    width: 100%;
    height: 100%;
    background-color: var(--overlay-color);
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: var(--transition);
    position: fixed;
    top: 0;
    left: 0;
    z-index: var(--modal-layer);
    
    -webkit-transition: var(--transition);
    -moz-transition: var(--transition);
    -ms-transition: var(--transition);
    -o-transition: var(--transition);
}

.modal-box.active {
    opacity: 1;
    visibility: visible;
}

.modal-box .wrapper {
    width: 100%;
    max-width: 720px;
    padding: 1rem;
    margin: 1rem;
    background-color: var(--light-color);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-shadow: 0 0 20px var(--shadow-color);

    position: relative;

    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    -ms-border-radius: 10px;
    -o-border-radius: 10px;
}

.modal-box .wrapper .header {
    width: 100%;
    text-align: right;

    position: absolute;
    top: 1rem;
    right: 1rem;
}

.modal-box .wrapper .header .btn {
    font-size: 1.5rem;
    line-height: 1;
    padding: .5rem .8rem;
    background-color: var(--color-primary);
    color: var(--light-color);
    cursor: pointer;
}

.modal-box .wrapper .body {
    margin-bottom: 1rem;
}

.modal-box .wrapper .body h2 {
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1.2;
    color: var(--dark-color);
    margin-bottom: .5rem;
    margin-top: 1rem;
}

.modal-box .wrapper .body p {
    font-size: .8rem;
    line-height: 1.2;
    color: var(--dark-grey);
    margin-bottom: .5rem;
}

.modal-box .wrapper .body p:last-of-type {
    margin-bottom: 0;
}

.modal-box .wrapper .footer {
    width: 100%;
    text-align: center;
}

.modal-box .wrapper .footer .cta {
    display: inline-block;
    min-width: 250px;
    padding: .5rem 2rem;
    text-align: center;
    background-color: var(--color-primary);
    color: var(--light-color);
}

/*
██████████████████████████████████████████
███████████    TOP HEADER     ████████████
██████████████████████████████████████████
*/
.top-header {
    display: none;
    width: 100%;
    padding: .3rem;
    background-color: var(--color-primary);
    overflow: hidden;
    position: relative;
}

.top-header.active {
    display: flex;
}

.top-header .text {
    font-size: 1.2rem;
    font-weight: 800;
    text-transform: uppercase;
    white-space: nowrap;
}

.top-header .close {
    width: 2rem;
    height: 100%;
    text-align: center;
    font-size: 1.5rem;
    line-height: 1.5rem;
    color: #ffffff;
    background-color: var(--primary-darken-color);
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate3d(0, -50%, 0);
    -webkit-transform: translate3d(0, -50%, 0);
    -moz-transform: translate3d(0, -50%, 0);
    -ms-transform: translate3d(0, -50%, 0);
    -o-transform: translate3d(0, -50%, 0);
    cursor: pointer;
}

/*
██████████████████████████████████████████
███████████      HEADER       ████████████
██████████████████████████████████████████
*/
/*░░░░░░░░░░░   NAVBAR   ░░░░░░░░░░░*/
#header {
    width: 100%;
    padding: .5rem 0;
    background-color: var(--header-color);

    position: relative;
    z-index: var(--menu-layer);
}

#header .wrapper {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

#header .wrapper .brand {
    flex: 0 0 150px;
    align-self: stretch;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

#header .wrapper .brand .logo {
    max-height: 50px;
    font-size: 1.2rem;
    color: var(--light-color);
    font-weight: bold;
    text-transform: uppercase;
}

#header .wrapper .navbar {
    flex: 0 0 50%;
    align-self: stretch;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
}

#header .wrapper .navbar .list {
    width: 100%;
    align-self: stretch;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
    list-style: none;
}

#header .wrapper .navbar .list .item {
    position: relative;
    margin-left: 2rem;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    height: 100%;
    transform: scale(1);
    transition: var(--transition);
    -webkit-transition: var(--transition);
    -moz-transition: var(--transition);
    -ms-transition: var(--transition);
    -o-transition: var(--transition);
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
}

#header .wrapper .navbar .list .item.cta:hover {
    transform: scale(1.02);
    -webkit-transform: scale(1.02);
    -moz-transform: scale(1.02);
    -ms-transform: scale(1.02);
    -o-transform: scale(1.02);
}

#header .wrapper .navbar .list .item:first-child {
    margin-left: 0;
}

#header .wrapper .navbar .list .item.cta .link {
    color: var(--light-color);
    background-color: var(--color-primary);
    padding: .7rem 1.5rem;
    border-radius: 3rem;
    -webkit-border-radius: 3rem;
    -moz-border-radius: 3rem;
    -ms-border-radius: 3rem;
    -o-border-radius: 3rem;
}

#header .wrapper .navbar .list .item .link {
    font-size: .8rem;
    color: var(--light-grey);
    text-decoration: none;
    transition: var(--transition);
    -webkit-transition: var(--transition);
    -moz-transition: var(--transition);
    -ms-transition: var(--transition);
    -o-transition: var(--transition);
}

#header .wrapper .navbar .list .item .link:hover {
    color: var(--color-primary);
}

#header .wrapper .navbar .list .item.cta .link:hover {
    color: var(--light-color);
}

#header .wrapper .navbar .list .item .sublist {
    display: none;
    min-width: 200px;
    border-top: .5rem solid var(--header-color);
    border-bottom: 4px solid var(--header-color);
    background-color: var(--light-grey);
    list-style: none;
    position: absolute;
    top: 100%;
    left: 0;
}

#header .wrapper .navbar .list .item:hover .sublist {
    display: block;
}

#header .wrapper .navbar .list .item:last-child:hover .sublist {
    left: auto;
    right: 0;
}

#header .wrapper .navbar .list .item .sublist .item {
    padding: 1rem;
    border-bottom: 1px solid var(--header-color);
    margin-left: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

#header .wrapper .navbar .list .item .sublist .item:last-child {
    border-bottom: none;
}

#header .wrapper .navbar .list .item .sublist .item .link {
    display: block;
    color: var(--header-color);
    font-weight: bold;
}

#header .wrapper .navbar .switch {
    flex: 0 0 2rem;
    display: none;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
}

#header .wrapper .navbar .switch .btn {
    display: none;
    font-size: 2rem;
    line-height: 1;
    color: var(--light-grey);
    background-color: transparent;
    border: none;
    cursor: pointer;
}

#header .wrapper .navbar .switch .btn.active {
    display: block;
}

/*
██████████████████████████████████████████
███████████      FOOTER       ████████████
██████████████████████████████████████████
*/

/*░░░░░░░░░░░   FOOTER   ░░░░░░░░░░░*/
#footer {
    width: 100%;
    background-color: var(--dark-color);
    padding: 5rem 0;
}

#footer .wrapper {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
}

#footer .wrapper .column {
    flex: 1 0 0;
    margin: 0 .5rem;
    align-self: stretch;
}

#footer .wrapper .column.company {
    flex: 1.3 0 0;
}

#footer .wrapper .column .brand {
    max-width: 150px;
    margin-bottom: 1.5rem;
}

#footer .wrapper .column .brand .logo {
    max-height: 30px;
    font-size: 1.2rem;
    color: var(--light-color);
    font-weight: bold;
    text-transform: uppercase;
    filter: brightness(0) invert(1);
    -webkit-filter: brightness(0) invert(1);
}

#footer .wrapper .column .extract {
    font-size: .8rem;
    line-height: 1.5;
    color: var(--light-grey);
    margin-bottom: 1rem;
    margin-right: 2rem;
}

#footer .wrapper .column .rrss {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
}

#footer .wrapper .column .rrss .link .icon {
    width: 100%;
    fill: var(--color-primary);
    max-width: 30px;
    margin-right: .3rem;
    transform: scale(1);
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transition: var(--transition);
    -webkit-transition: var(--transition);
    -moz-transition: var(--transition);
    -ms-transition: var(--transition);
    -o-transition: var(--transition);
}

#footer .wrapper .column .rrss .link:hover .icon {
    transform: scale(1.08);
    -webkit-transform: scale(1.08);
    -moz-transform: scale(1.08);
    -ms-transform: scale(1.08);
    -o-transform: scale(1.08);
}

#footer .wrapper .column .title {
    font-size: 1.2rem;
    font-weight: bold;
    color: var(--light-color);
    margin-bottom: 1.5rem;
}

#footer .wrapper .column .list {
    width: 100%;
    list-style: none;
}

#footer .wrapper .column .list .link {
    font-size: .9rem;
    line-height: 1.5;
    color: var(--light-grey);
    text-decoration: none;
    opacity: 1;
    transition: var(--transition);
    -webkit-transition: var(--transition);
    -moz-transition: var(--transition);
    -ms-transition: var(--transition);
    -o-transition: var(--transition);
}

#footer .wrapper .column .list .link:hover {
    opacity: .6;
}

#footer .wrapper .column .list .link i {
    font-size: .9rem;
    line-height: 1.5;
    color: var(--color-primary);
    margin-right: .3rem;
}

#footer .wrapper .column .form {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: flex-start;
}

#footer .wrapper .column .form .input {
    flex: 5 0 0;
    background-color: transparent;
    border: 2px solid var(--color-primary);
    color: var(--light-grey);
    padding: .5rem 1rem;
    border-radius: 3rem;
    -webkit-border-radius: 3rem;
    -moz-border-radius: 3rem;
    -ms-border-radius: 3rem;
    -o-border-radius: 3rem;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

#footer .wrapper .column .form .input:focus {
    outline: none;
}

#footer .wrapper .column .form .submit {
    flex: 1 0 0;
    text-align: center;
    padding: .5rem;
    padding-left: 0;
    border: none;
    background-color: var(--color-primary);
    border: 2px solid var(--color-primary);
    color: var(--light-color);
    font-weight: bold;
    border-radius: 3rem;
    -webkit-border-radius: 3rem;
    -moz-border-radius: 3rem;
    -ms-border-radius: 3rem;
    -o-border-radius: 3rem;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    cursor: pointer;
}

#footer .wrapper .column form span input {
    color: #666666;
    width: 100%;
    padding: .5rem 1rem;
    border: 1px solid var(--light-color);
    margin-bottom: .5rem;
    border-radius: 3rem;
}

#footer .wrapper .column form input[type=submit] {
    width: max-content;
    min-width: 150px;
    background-color: var(--color-primary);
    color: var(--light-color);
    font-size: .8rem;
    font-weight: normal;
    text-align: center;
    display: inline-block;
    padding: .5rem 1rem;
    border-radius: 3rem;
    cursor: pointer;
}

#footer .wrapper .column form .wpcf7-response-output {
    color: #ffffff;
    bottom: 2rem;
}



/*░░░░░░░░░░░   COPYRIGHT   ░░░░░░░░░░░*/
#copyright {
    width: 100%;
    padding: 2rem 0;
    background-color: var(--light-color);

    position: relative;
    z-index: var(--modal-layer);
}

#copyright .wrapper {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
}

#copyright .wrapper .legal {
    font-size: .8rem;
    color: var(--dark-color);
}

#copyright .wrapper .legal {
    font-size: .8rem;
}

#copyright .wrapper .legal .bold {
    font-weight: bold;
}

#copyright .wrapper .legal .color {
    color: var(--color-primary);
}

#copyright .wrapper .legal .logo {
    max-width: 130px;
    display: inline;
    margin-left: .2rem;
}


/*
████████████████████████████████████████████████████████████████
██████████████████████  @MEDIA QUERRYS   ███████████████████████
████████████████████████████████████████████████████████████████
*/

/*░░░░░░░░░░░   TABLET DEVICES   ░░░░░░░░░░░*/
@media only screen and (max-width: 780px) {
    /*
    ██████████████████████████████████████████
    ███████████     HELPPERS      ████████████
    ██████████████████████████████████████████
    */
    .no-desktop {
        display: block !important;
    }
    
    .no-mobile {
        display: none !important;
    }

    /*
    ██████████████████████████████████████████
    ███████████      HEADER       ████████████
    ██████████████████████████████████████████
    */
    #header .wrapper .brand {
        flex: 0 0 100px;
    }
    
    #header .wrapper .navbar .list {
        padding: 0;
        visibility: hidden;
        opacity: 0;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        max-height: 0%;
        overflow: hidden;
        background-color: var(--light-grey);
        border-bottom: 4px solid var(--header-color);
        position: absolute;
        top: 100%;
        left: 0;
        z-index: -1;
        transition: all .5s ease-out;
        -webkit-transition: all .5s ease-out;
        -moz-transition: all .5s ease-out;
        -ms-transition: all .5s ease-out;
        -o-transition: all .5s ease-out;
    }

    #header .wrapper .navbar .list.active {
        visibility: visible;
        opacity: 1;
        display: flex;
        max-height: 1000%;
    }

    #header .wrapper .navbar .list .item {
        display: block;
        width: 100%;
        border-bottom: 1px solid var(--header-color);
        margin-left: auto;
    }

    #header .wrapper .navbar .list .item:last-child {
        border-bottom: 0;
    }

    #header .wrapper .navbar .list .item.cta {
        padding: .5rem 1rem;
        text-align: center;
    }

    #header .wrapper .navbar .list .item .sublist {
        display: flex;
        flex-direction: column;
        
        border-top: 1px solid var(--header-color);
        border-bottom: 0;
        position: relative;
        top: 0;
        left: 0;
    }

    #header .wrapper .navbar .list .item .sublist .item {
        padding: 0 1rem;
    }

    #header .wrapper .navbar .list .item .sublist .item .link {
        padding: .5rem 2rem;
    }

    #header .wrapper .navbar .list .item .link {
        display: block;
        width: 100%;
        padding: 1rem 2rem;
        color: var(--header-color);
        font-weight: bold;
    }

    #header .wrapper .navbar .switch {
        display: flex;
    }

    /*
    ██████████████████████████████████████████
    ███████████      FOOTER       ████████████
    ██████████████████████████████████████████
    */
    /*░░░░░░░░░░░   FOOTER   ░░░░░░░░░░░*/
    #footer .wrapper {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
    }
    
    #footer .wrapper .column {
        margin: 0;
        margin-bottom: 3rem;
    }

    #footer .wrapper .column:last-child {
        margin-bottom: 0;
    }
    
    #footer .wrapper .column.company {
        flex: 1 0 0;
    }

    #footer .wrapper .column .extract {
        margin-right: 0;
    }
    /*░░░░░░░░░░░   COPYRIGHT   ░░░░░░░░░░░*/
    #copyright .wrapper {
        justify-content: center;
    }

    #copyright .wrapper .legal .logo {
        display: block;
        margin: 0 auto;
        margin-top: .5rem;
    }
}

/*░░░░░░░░░░░   MOBILE DEVICES   ░░░░░░░░░░░*/
@media only screen and (max-width: 520px) {
    
}
