.workgrid {
    position: fixed;
    top: 0;
    width: 0px;
    height: 100vh;
    z-index: 999999999999;
    border-left: 1px dotted rgba(255, 255, 255, 0.5);
    mix-blend-mode: difference;
    pointer-events: none;
    opacity: 1;
}

/* ------------------------------------------------------ */
/* ROOT
/* ------------------------------------------------------ */

:root {
    /* colonne */
    --col: 8.3333%;
    --semicol: 4.1667%;
    /* colori */
    --nero: #000000;
    --blu: #3D4A60;
    --azzurro: #5C7B99;
    --beige: #928075;
    --arancione: #B1500E;
    --oro: #C5A901;
    --verdone: #18332F;
    --verde: #16614D;
    --marrone_scuro: #5B4522;
    --marrone_medio: #8C734E;
    --marrone_chiaro: #C0AB92;
}

/* ------------------------------------------------------ */
/* BACKGROUND COLOR
/* ------------------------------------------------------ */

.bg_nero {
    background-color: var(--nero) !important;
}

.bg_blu {
    background-color: var(--blu) !important;
}

.bg_azzurro {
    background-color: var(--azzurro) !important;
}

.bg_beige {
    background-color: var(--beige) !important;
}

.bg_arancione {
    background-color: var(--arancione) !important;
}

.bg_oro {
    background-color: var(--oro) !important;
}

.bg_verdone {
    background-color: var(--verdone) !important;
}

.bg_verde {
    background-color: var(--verde) !important;
}

.bg_marrone_scuro {
    background-color: var(--marrone_scuro) !important;
}

.bg_marrone_medio {
    background-color: var(--marrone_medio) !important;
}

.bg_marrone_chiaro {
    background-color: var(--marrone_chiaro) !important;
}

/* ------------------------------------------------------ */
/* IMAGE COVER
/* ------------------------------------------------------ */

picture.img_cover {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
    display: block;
}

picture.img_cover img {
    display: block;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    -o-object-fit: cover;
    object-fit: cover;
    overflow: hidden;
}

/* ------------------------------------------------------ */
/* BODY
/* ------------------------------------------------------ */

body {
    font-size: 1em;
    color: black;
    font-family: 'proxima-nova', sans-serif;
    font-weight: 400;
    font-style: normal;
}

@media only screen and (min-width: 1921px) {
    body {
        font-size: 0.8329vw;
    }
}

/* ------------------------------------------------------ */
/* HEADER NAV
/* ------------------------------------------------------ */

header nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: calc(var(--semicol)/2) var(--col);
}

header nav ul {
    list-style: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

header nav ul li {
    -ms-flex-item-align: center;
    -ms-grid-row-align: center;
    align-self: center;
}

header nav ul li a {
    display: inline-block;
    color: black;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 112.5%;
    font-weight: 600;
    -webkit-transition: color 0.35s;
    transition: color 0.35s;
}

header nav ul li a:hover {
    color: var(--oro);
    -webkit-transition: color 0.35s;
    transition: color 0.35s;
}

header nav ul li.logo {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

header nav ul li.logo a {
    -webkit-transition: opacity 0.35s;
    transition: opacity 0.35s;
}

header nav ul li.logo a:hover {
    opacity: 0.5;
    -webkit-transition: opacity 0.35s;
    transition: opacity 0.35s;
}

header nav ul li.logo a svg {
    width: 10.417vw;
    min-width: 200px;
}

header nav ul li:not(.logo) {
    margin-left: 2.5%;
}

header nav ul li:not(.logo):nth-child(2) {
    margin-left: 0;
}

header nav ul li.menu {
    display: none;
}

/* ------------------------------------------------------ */
/* FOOTER
/* ------------------------------------------------------ */

footer {
    background: var(--verdone);
    color: white;
    padding: var(--semicol) calc(var(--col) * 2);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

footer a {
    color: white;
    text-decoration: none;
    -webkit-transition: opacity 0.35s;
    transition: opacity 0.35s;
}

footer a:hover {
    opacity: 0.5;
    -webkit-transition: opacity 0.35s;
    transition: opacity 0.35s;
}

footer > div {
    -ms-flex-item-align: center;
    -ms-grid-row-align: center;
    align-self: center;
}

footer > div.logo {
    width: calc(var(--col) * 3);
}

footer > div.logo img {
    width: 10.417vw;
    min-width: 150px;
}

footer > div.info {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    font-weight: 400;
    font-size: 87.5%;
    line-height: 1.5em;
}

footer > div.info > div {
    -ms-flex-item-align: center;
    -ms-grid-row-align: center;
    align-self: center;
}

footer > div.info > div:nth-child(3) ul {
    list-style: none;
}

footer > div.info > div:nth-child(3) ul li {
    width: 25px;
    height: 25px;
    margin-bottom: 50%;
}

footer > div.info > div:nth-child(3) ul li:last-child {
    margin-bottom: 0;
}

footer > div.info > div:nth-child(3) ul li a {
    display: block;
    width: 100%;
    height: 100%;
}

/* ------------------------------------------------------ */
/* CREDITS
/* ------------------------------------------------------ */

div.credits {
    font-size: 80%;
    line-height: 1.5;
    text-align: center;
    padding: 2em 0;
    background: white;
}

div.credits a {
    font-weight: 700;
    text-decoration: none;
    color: black;
    -webkit-transition: opacity 0.35s;
    transition: opacity 0.35s;
}

div.credits a:hover {
    opacity: 0.5;
    -webkit-transition: opacity 0.35s;
    transition: opacity 0.35s;
}

div.credits span::after {
    content: ' | ';
    margin: 0 0.5em;
}

div.credits span:last-child::after {
    content: '';
    margin: 0;
}

/* ------------------------------------------------------ */
/* MENU MOBILE
/* ------------------------------------------------------ */

div#menu_mobile {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--oro);
    padding: var(--col) var(--col);
    font-size: 130%;
    line-height: 2;
    z-index: 999999;
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
    -webkit-transition: -webkit-transform 0.5s;
    transition: -webkit-transform 0.5s;
    transition: transform 0.5s;
    transition: transform 0.5s, -webkit-transform 0.5s;
}

div#menu_mobile.show {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
    -webkit-transition: -webkit-transform 1s;
    transition: -webkit-transform 1s;
    transition: transform 1s;
    transition: transform 1s, -webkit-transform 1s;
}

div#menu_mobile ul {
    list-style: none;
    opacity: 0;
    -webkit-transform: translate(-15%, 0);
    transform: translate(-15%, 0);
    -webkit-transition: opacity 0s 0.5s, -webkit-transform 0s 0.5s;
    transition: opacity 0s 0.5s, -webkit-transform 0s 0.5s;
    transition: transform 0s 0.5s, opacity 0s 0.5s;
    transition: transform 0s 0.5s, opacity 0s 0.5s, -webkit-transform 0s 0.5s;
}

div#menu_mobile.show ul {
    opacity: 1;
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
    -webkit-transition: opacity 0.5s 0.75s, -webkit-transform 0.5s 0.75s;
    transition: opacity 0.5s 0.75s, -webkit-transform 0.5s 0.75s;
    transition: transform 0.5s 0.75s, opacity 0.5s 0.75s;
    transition: transform 0.5s 0.75s, opacity 0.5s 0.75s, -webkit-transform 0.5s 0.75s;
}

div#menu_mobile ul li a {
    color: white;
    text-decoration: none;
    text-transform: uppercase;
}

div#menu_mobile ul li.logo {
    margin-bottom: var(--col);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

div#menu_mobile ul li.logo a {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
}

div#menu_mobile ul li.logo a:nth-child(1) svg {
    width: calc(var(--col) * 5);
    height: auto;
}

div#menu_mobile ul li.logo a:nth-child(2) svg {
    width: calc(var(--col) * 1.5);
    max-width: 50px;
    height: auto;
}

div#menu_mobile ul li.logo a svg .svg_logo {
    fill: white;
}

div#menu_mobile ul li.logo a svg .svg_logo_text {
    fill: white;
}

/* ------------------------------------------------------ */
/* RESPONSIVE
/* ------------------------------------------------------ */

@media only screen and (min-width: 1921px) {
    footer > div.info > div:nth-child(3) ul li {
        width: 1.3vw;
        height: 1.3vw;
    }
}

@media only screen and (max-width: 1200px) {
    footer {
        padding: var(--semicol) var(--col);
    }

    footer > div.logo {
        width: calc(var(--col) * 3);
    }
}

@media only screen and (max-width: 768px) {
    header nav {
        padding: var(--semicol) var(--col);
    }

    header nav ul li.logo a svg {
        min-width: calc(var(--col) * 4);
    }

    header nav ul li:not(.logo) {
        display: none;
    }

    header nav ul li.menu {
        display: inline;
    }

    header nav ul li.menu a svg {
        width: 34px;
        height: auto;
    }
}

@media only screen and (max-width: 767px) {
    footer {
        text-align: center;
        display: block;
        padding: var(--col);
    }

    footer > div.logo {
        width: 100%;
        margin-bottom: var(--col);
    }

    footer > div.logo img {
        width: calc(var(--col) * 4);
        margin: 0 auto;
    }

    footer > div.info {
        display: block;
    }

    footer > div.info > div {
        margin-bottom: var(--semicol);
    }

    footer > div.info > div:nth-child(2) {
        margin-bottom: var(--col);
    }

    footer > div.info > div:last-child {
        margin-bottom: 0;
    }

    footer > div.info > div:nth-child(3) ul {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
    }

    footer > div.info > div:nth-child(3) ul li {
        margin: 0 0.5em;
    }
}

@media only screen and (max-width: 480px) {
    div.credits {
        font-size: 87.5%;
    }

    div.credits span:nth-child(1),
    div.credits span:nth-child(4) {
        display: block;
    }

    div.credits span:nth-child(1)::after,
    div.credits span:nth-child(3)::after {
        content: '';
        margin: 0;
    }
}
