/*

HEADER

*/
html,
body {
    overflow-x: hidden;
}

header {
    width: 100%;
    margin: 0px;
    padding: 0px;
    overflow: hidden;
}

header a {
    font-family: var(--Jost);
    font-size: 1vw;
}

header {
    background: var(--header-background);
    padding-bottom: 5vmin;
}

header .nav-item {
    padding: 1.2em;
}

header .navbar-brand {
    padding-left: 8rem;
    display: inline-block;
    color: var(--brand-colour) !important;
    white-space: unset;
}

header .navbar-brand .navbar-icon {
    display: inline;
    vertical-align: middle;
}

header .navbar-brand span {
    vertical-align: middle;
    display: inline;
    font-size: 1.5rem;
    font-family: var(--Rock);
}

header .nav-link:hover {
    -webkit-filter: drop-shadow(5px 5px 5px var(--brand-colour)) !important;
    filter: drop-shadow(5px 5px 5px var(--brand-colour)) !important;
}

header .nav-link {
    position: relative;
    color: var(--navlink-colour) !important;
}

/*If the screen size is 321px or less*/
@media only screen and (max-width: 321px) {

    /*HEADER*/
    header .navbar .navbar-brand {
        padding-left: 0.5rem;
    }

    header .navbar .navbar-brand>span {
        font-size: 1rem;
    }
}

/*If the screen size is 480px or less*/
@media only screen and (max-width: 480px) {

    /*Header*/
    header .navbar .navbar-brand {
        padding-left: 0.5rem;
        width: 65%;
    }

    header .navbar .navbar-brand>span {
        font-size: 1rem !important;
        overflow-wrap: break-word;
    }

    header .nav-link {
        font-size: 4vw;
    }
}

/*If the screen size is 596px wide but less than or = 767px*/
@media only screen and (min-width: 597px) and (max-width: 767px) {}

/*If the screen size is 640px or less*/
@media only screen and (max-width: 640px) {}

/*If the screen size is 767px or less*/
@media only screen and (max-width: 767px) {}

/*If the screen size is 768px wide or more*/
@media only screen and (min-width: 768px) {}

/*If the screen size is at least 768px wide but less than or = 996px*/
@media only screen and (min-width: 768px) and (max-width: 996px) {

    /*Header*/
    header .navbar .navbar-brand {
        padding-left: 0.5rem;
    }

    header .navbar .navbar-brand>span {
        font-size: 1.25rem;
    }

    header a {
        font-size: 2vw;
    }
}

/*If the screen size is 996px wide or less*/
@media only screen and (max-width: 996px) {

    .navbar-toggler,
    .navbar-toggler:focus,
    .navbar-toggler:active {
        outline: none;
        box-shadow: none;
        border-color: transparent !important;
        border: transparent !important;
    }

    .navbar-toggler i {
        color: var(--brand-colour) !important;
    }
}

/*If the screen size is 1024px wide or more*/
@media only screen and (min-width: 1024px) {

    /*Header*/
    header .navbar .navbar-brand {
        padding-left: 0.5rem;
    }

    header .navbar .navbar-brand i {
        font-size: 3rem;
    }

    header .navbar .navbar-brand>span {
        font-size: 1.5rem;
    }

    header .navbar-nav .nav-item {
        margin-right: 0.5em;
        padding: 0.5em;
    }

    header .nav-link {
        font-size: 1vw;
    }
}

@media only screen and (min-width: 2560px) {

    header .navbar-brand i {
        font-size: 4rem;
    }

    header .navbar-brand span {
        font-size: 3rem !important;
    }

    header .form-inline .form-control {
        font-size: 1rem !important;
        width: 22vmin !important;
    }

    header .form-inline button {
        font-size: 1rem !important;
    }

}

@media (hover: hover) {

    /* stroke */
    nav ul li a,
    nav ul li a:after,
    nav ul li a:before {
        transition: all .2s;
    }

    nav.stroke ul li a {
        position: relative;
    }

    nav.stroke ul li a:after {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        margin: auto;
        width: 0%;
        content: '.';
        color: transparent;
        background: var(--brand-colour);
        height: 1px;
    }

    nav.stroke ul li a:hover:after {
        width: 100%;
    }
}

/*

FOOTER

*/
footer {
    background: var(--footer-background);
    overflow-x: hidden;
    padding: 14vmin 18vmin;
}

footer input {
    border: none;
}

footer input::placeholder {
    color: var(--light-gray);
}

footer .input-group .input-group-text {
    background: var(--header-background);
    color: var(--footer-text);
    border: none;
}

footer .column i {
    color: var(--header-background);
}

footer .column i {
    padding: 0 0.75em;
}

/*If the screen size is 321px or less*/
@media only screen and (max-width: 321px) {

    /*Footer*/
    footer {
        padding: 7vmin 7vmin;
    }

    footer .row .col-md-5 {
        padding-top: 5vmin;
        padding-bottom: 5vmin;
    }

    footer .row .col-md-5 h1 {
        font-size: 1.5rem;
    }

    footer .row .col-md-5 h4 {
        font-size: 1rem;
    }

    footer .row .col-md-5 h2 {
        font-size: 1rem;
    }

    footer .row .col-md-5 p {
        font-size: 0.75rem;
    }

    footer .row .col-md-5 .input-group {
        padding-right: 0 !important;
    }
}

/*If the screen size is 480px or less*/
@media only screen and (max-width: 480px) {

    /*Footer*/
    footer {
        padding: 7vmin 7vmin;
    }

    footer .row .col-md-5 {
        padding-top: 5vmin;
        padding-bottom: 5vmin;
    }

    footer .row .col-md-5 h1 {
        font-size: 1.5rem;
    }

    footer .row .col-md-5 h4 {
        font-size: 1rem;
    }

    footer .row .col-md-5 h2 {
        font-size: 1rem;
    }

    footer .row .col-md-5 p {
        font-size: 0.75rem;
    }

    footer .row .col-md-5 .input-group {
        padding-right: 0 !important;
    }
}

/*If the screen size is 596px wide but less than or = 767px*/
@media only screen and (min-width: 597px) and (max-width: 767px) {}

/*If the screen size is 640px or less*/
@media only screen and (max-width: 640px) {}

/*If the screen size is 767px or less*/
@media only screen and (max-width: 767px) {}

/*If the screen size is 768px wide or more*/
@media only screen and (min-width: 768px) {}

/*If the screen size is at least 768px wide but less than or = 996px*/
@media only screen and (min-width: 768px) and (max-width: 996px) {

    /*Footer*/
    footer {
        padding: 5vmin 5vmin;
    }

    footer .row .col-md-5 {
        padding-left: 1vmin;
        padding-right: 1vmin;
    }

    footer .row .col-md-5 h1 {
        font-size: 1.5rem;
    }

    footer .row .col-md-5 h4 {
        font-size: 1rem;
    }

    footer .row .col-md-5 h2 {
        font-size: 1rem;
    }

    footer .row .col-md-5 p {
        font-size: 0.75rem;
    }

    footer .row .col-md-5 .input-group {
        padding-right: 0 !important;
    }

    footer .row .col-md-2 h4 {
        font-size: 1rem;
    }

    footer .column i {
        padding: 0 0.5em;
    }
}

@media only screen and (min-width: 2560px) {

    footer {
        padding: 5vmin 8vmin;
    }

    footer p {
        font-size: 1rem;
    }

    footer .input-group {
        padding-right: 17rem !important;
    }

    footer .input-group .form-control {
        font-size: 1.25rem !important;
    }

    footer .col-md-5 h4 {
        font-size: 2rem;
    }

    footer .col-md-2 h4 {
        font-size: 2rem;
    }

    footer .col-md-2 .column i {
        font-size: 2rem;
    }

}