/* Table of contents
---------------------

01. Variables
02. Global
03. Header
04. Footer
05. Home Page
06. Chi Sono
07. Servizi
08. Contatti
09. Problematica

*/



/* 01. Variables
================================================================ */

:root {

    /* Colors */
    --clr-dr: #000;
    --clr-sc: #fff;
    --clr-tr: #d9d9d9;
    --clr-qt: #262626;

    --clr-1: #000;
    --clr-2: #fff;
    --clr-3: #d9d9d9;
    --clr-4: #262626;

    /* Typography */
    --fnt-fml-1: 'Hind', sans-serif;
    --fnt-fml-2: 'Queensila', sans-serif;

    --fnt-sz-s: 1.3rem;
    --fnt-sz-m: 1.5rem;
    --fnt-sz-1xl: 6.2rem;
    --fnt-sz-2xl: 3.6rem;
    --fnt-sz-0xl: 27rem; 

    --fnt-wgh-3: 300;
    --fnt-wgh-4: 400;
    --fnt-wgh-5: 500;

    --ltt-sp-s: .03em;

    --ln-hgh-s: 1;
    --ln-hgh-m: 1.2;

    /* Layout */
    --sz: 4.16666667;

}

@media screen and (min-width: 768px) and (max-width: 1199px) {

    :root {

        --fnt-sz-s: 1.25rem;
        --fnt-sz-m: 1.45rem;
        --fnt-sz-1xl: 5.2rem;
        --fnt-sz-2xl: 3.1rem;

    }

}

@media screen and (max-width: 767px) {

    :root {

        --fnt-sz-s: 1.2rem;
        --fnt-sz-m: 1.4rem;
        --fnt-sz-1xl: 4.2rem;
        --fnt-sz-2xl: 2.6rem;

    }

}



/* 02. Global
================================================================ */

@font-face {
    font-family: 'Queensila';
    src: url('../fonts/queensila.woff2'),
         url('../fonts/queensila.woff'),
         url('../fonts/queensila.ttf'),
         url('../fonts/queensila.eot');
    font-weight: normal;
    font-style: normal;
}

*::selection {
    color: var(--clr-2);
    background: var(--clr-3);
}

* {
    margin: 0;
    padding: 0;
    font-kerning: none;
}

*, *::before, *::after { 
    box-sizing: border-box; 
}

html {
    font-size: 62.5%;
}

body {
    color: var(--clr-1);
    background-color: var(--clr-2);
    width: 100%;
    font-family: 'Hind', sans-serif;
    font-size: var(--fnt-sz-m);
    font-weight: 300;
    line-height: 1.2;
}

main {
    max-width: 192rem;
    margin: 0 auto;
}

h1, h2, h3,
h4, h5, h6 {
    font: inherit;
}

a {
    color: inherit;
    text-decoration: none;
}

li {
    list-style: none;
}

p div {
    display: block;
}

img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.preloader {
    background-color: var(--clr-2);
    width: 100%;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1020;
    font-size: var(--fnt-sz-s);
    text-transform: uppercase;
    letter-spacing: 0.03rem;
}

.intro {
    width: 100%;
    min-height: 100vh;
    position: relative;
}

.intro .background-text {
    color: var(--clr-3);
    width: 25rem;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    position: absolute;
    top: 0;
    left: calc(var(--sz) * 6%);
    z-index: -1010;
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-0xl);
    line-height: 1;
    text-transform: uppercase;
}

.intro .background-text p {
    position: relative;
    left: -100%;
    transform: translateY(0) scale(1) rotate(-90deg);
    transform-origin: 100% 0%;
    white-space: nowrap; 
    font-kerning: none;
}

.intro .cta {
    width: 50%;
    height: 12rem;
    display: flex;
    align-items: center;
    position: absolute;
    bottom: 0;
    left: 50%;
}

.intro .cta svg {
    width: 1.1rem;
    height: 1.1rem;
    margin: -0.2rem .8rem 0 0;
}

.intro .cta svg path {
    stroke: var(--clr-1);
}

.intro .cta p {
    font-size: var(--fnt-sz-s);
    letter-spacing: 0.03rem;
    text-transform: uppercase;
}

.main {
    position: relative;
}

.main .title {
    width: 2rem;
    height: calc(100% - 12rem);
    display: flex;
    justify-content: flex-end;
    position: absolute;
    top: 12rem;
    left: calc((var(--sz) * 2%) - 2rem);
    font-size: var(--fnt-sz-s);
    letter-spacing: 0.03rem;
    text-transform: uppercase;
}

.main .title div {
    height: 100%;
    position: relative;
}

.main .title h3 {
    position: sticky;
    top: 24rem;
    left: -100%;
    margin-bottom: 30rem;
    transform: rotate(-90deg);
    transform-origin: 100% 0%;
    white-space: nowrap;
}

@media screen and (max-width: 767px) {

    .intro {
        min-height: auto;
    }

    .intro .background-text,
    .intro .cta {
        display: none;
    }

    .main .title {
        width: 100%;
        height: auto;
        justify-content: flex-start;
        position: relative;
        top: 0;
        left: 0;
        padding: 6rem calc(var(--sz) * 2%);
    }
    
    .main .title h3 {
        position: relative;
        top: 0;
        left: 0;
        margin-bottom: 0;
        transform: rotate(0deg);
    }

}



/* 03. Header
================================================================ */

header {
    color: var(--clr-2);
    mix-blend-mode: difference;
    width: 100%;
    max-width: 192rem;
    height: 12rem;
    display: none;
    align-items: center;
    position: fixed;
    left: 50%;
    padding: 0 min(calc(var(--sz) * 1%), 8rem);
    transform: translateX(-50%);
    z-index: 1030;
    letter-spacing: 0.03rem;
    text-transform: uppercase;
}

header a {
    display: inline-block;
}

header .logo {
    width: 50%;
    overflow: hidden;
    font-weight: 500;
}

header > nav {
    width: 50%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--fnt-sz-s);
}

header > nav > ul {
    display: flex;
}

header > nav > ul li {
    overflow: hidden;
}

header > nav > ul li:nth-of-type(2),
header > nav > ul li:nth-of-type(4) {
    margin: 0 0.8rem;
}

header > nav .cta a {
    background-color: var(--clr-4);
    padding: 1.6rem 4.8rem;
    overflow: hidden;
}

header > nav .cta a span {
    display: block;
}

header > nav .off-canvas-button {
    display: none;
    justify-content: center;
    align-items: center;
    padding: 1.6rem 0;
    cursor: pointer;
    z-index: 1010;
}

header > nav .off-canvas-button p {
    font-size: var(--fnt-sz-s);
    letter-spacing: 0.03rem;
    text-transform: uppercase;
}

header > nav .off-canvas-button > div {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-left: 0.8rem;
}

header > nav .off-canvas-button > div div {
    background-color: var(--clr-2);
    width: 2rem;
    height: 0.2rem;
}

header > nav .off-canvas-button div:first-of-type {
    margin-bottom: 0.3rem;
}

header > nav .off-canvas {
    color: var(--clr-1);
    background-color: var(--clr-2);
    opacity: 0;
    width: 100%;
    height: 100vh;
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    padding: 12rem calc(var(--sz) * 2%);
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-1xl);
    line-height: 1;
    text-transform: none;
}

header > nav .off-canvas nav {
    width: 100%;
    height: 100%;
}

header > nav .off-canvas nav ul {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

@media screen and (max-width: 767px) {

    header {
        height: 8rem;
    }

    header nav {
        justify-content: flex-end;
    }

    header nav ul,
    header nav .cta {
        display: none;
    }

    header nav .off-canvas-button {
        display: flex;
    }

}



/* 04. Footer
================================================================ */

footer {
    width: 100%;
    max-width: 192rem;
    position: relative;
    margin: 0 auto;
    overflow: hidden;
}

footer .title {
    width: 50%;
    margin-left: 50%;
    padding: 0 calc(var(--sz) * 2%) 12rem 0;
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-1xl);
    line-height: 1;
    text-wrap: balance;
}

footer .title span {
    display: block;
}

footer .content {
    display: flex;
    justify-content: space-between;
    padding-bottom: 6rem;
}


footer .content > div:first-of-type {
    width: calc(var(--sz) * 4%);
    margin-left: calc(var(--sz) * 4%);
}

footer .content > div:last-of-type {
    width: calc(var(--sz) * 3%);
    margin-right: calc(var(--sz) * 4%);
    font-size: var(--fnt-sz-s);
    text-transform: uppercase;
}

footer .content > div .label {
    opacity: .6;
    font-size: var(--fnt-sz-s);
    text-transform: uppercase;
    margin-bottom: 1.6rem;
}

footer .content > div .address {
    margin-bottom: 1.6rem;
}

footer .content > div div a,
footer .content > div nav a {
    display: block;
}

footer .outro {
    height: 12rem;
    display: flex;
    align-items: center;
    padding: 0 calc(var(--sz) * 1%);
}

footer .outro > div:first-of-type {
    width: 50%;
}

footer .outro > div:last-of-type {
    width: 50%;
    display: flex;
    justify-content: space-between;
}

footer .outro > div:last-of-type .cta {
    display: flex;
    font-size: var(--fnt-sz-s);
    text-transform: uppercase;
    cursor: pointer;
}

footer .outro > div:last-of-type .cta svg {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0.1rem 0.8rem 0 0;
}

footer .outro > div:last-of-type .cta svg path {
    stroke: var(--clr-1);
}

footer .outro > div:last-of-type p a {
    text-decoration: underline;
}

@media screen and (max-width: 767px) {

    footer .title {
        width: 100%;
        margin-left: 0;
        padding: 0 calc(var(--sz) * 2%) 6rem calc(var(--sz) * 2%);
    }
    
    footer .content > div:first-of-type {
        width: calc(var(--sz) * 14%);
        margin-left: calc(var(--sz) * 2%);
    }
    
    footer .content > div:last-of-type {
        width: calc(var(--sz) * 6%);
        margin-right: calc(var(--sz) * 2%);
    }

    footer .outro {
        height: 8rem;
        flex-direction: column;
        align-items: flex-start;
    }

    footer .outro > div:last-of-type {
        width: 100%;
        flex-direction: row-reverse;
        justify-content: space-between;
    }

}



/* 05. Home Page
================================================================ */

.home-page .intro .quote {
    width: 50%;
    min-height: calc(var(--sz) * 16vh);
    margin-left: 50%;
    padding: max(calc(var(--sz) * 6vh), 12rem) calc(var(--sz) * 2%) 6rem 0;
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-1xl);
    line-height: 1;
    text-wrap: balance;
}

.home-page .intro .content {
    min-height: calc(var(--sz) * 8vh);
    display: flex;
    justify-content: space-between;
    padding-bottom: 6rem;
}

.home-page .intro .content > div:first-of-type {
    width: calc(var(--sz) * 4%); 
    margin-left: calc(var(--sz) * 4%); 
}

.home-page .intro .content > div:first-of-type h1 {
    margin-bottom: 1.6rem;
}

.home-page .intro .content > div:last-of-type {
    width: calc(var(--sz) * 3%); 
    margin-right: calc(var(--sz) * 4%); 
}

.home-page .intro .content > div:last-of-type p:first-of-type {
    margin-bottom: 1.6rem;
}

.home-page .main .text {
    width: calc(var(--sz) * 4%); 
    margin-left: calc(var(--sz) * 6%); ;
}

.home-page .main .text p:first-of-type {
    margin-bottom: 1.6rem;
}

.home-page .main .cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 6rem 0 12rem;
}

.home-page .main .cards .card {
    width: calc(var(--sz) * 7%);
    aspect-ratio: 1/1.3;
    align-self: flex-start;
    position: relative;
    overflow: hidden;
}

.home-page .main .cards .card:nth-of-type(1),
.home-page .main .cards .card:nth-of-type(3),
.home-page .main .cards .card:nth-of-type(5) {
    margin: 12rem 0 0 calc(var(--sz) * 5%);
}

.home-page .main .cards .card:nth-of-type(2),
.home-page .main .cards .card:nth-of-type(4),
.home-page .main .cards .card:nth-of-type(6) {
    margin: 0 calc(var(--sz) * 2%) 0 0;
}

.home-page .main .cards .card a {
    color: var(--clr-2);
    width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-end;
    position: absolute;
    top: 0;
    left: 0;
    padding: 3.2rem;
}

.home-page .main .cards .card a svg {
    width: 1.1rem;
    height: 1.1rem;
    display: block;
    margin: 0 1.6rem 1.2rem 0;
}

.home-page .main .cards .card a svg path {
    stroke: var(--clr-2);
}

.home-page .main .cards .card a h3 {
    color: var(--clr-2);
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-2xl);
}

@media screen and (max-width: 767px) {

    .home-page .intro .quote {
        width: 100%;
        min-height:auto;
        margin-left: 0;
        padding: max(calc(var(--sz) * 6vh), 16rem) calc(var(--sz) * 2%) 6rem calc(var(--sz) * 2%);
    }

    .home-page .intro .content {
        min-height: auto;
        flex-direction: column;
        padding-bottom: 6rem;
    }

    .home-page .intro .content > div:first-of-type {
        width: calc(var(--sz) * 19%); 
        margin-left: calc(var(--sz) * 2%); 
    }

    .home-page .intro .content > div:first-of-type h1 {
        margin-bottom: 0.8rem;
    }
    
    .home-page .intro .content > div:last-of-type {
        width: calc(var(--sz) * 19%); 
        margin-top: 6rem;
        margin-left: calc(var(--sz) * 2%); 
        margin-right: calc(var(--sz) * 2%); 
    }

    .home-page .intro .content > div:last-of-type p:first-of-type {
        margin-bottom: 0.8rem;
    }

    .home-page .main .text {
        width: calc(var(--sz) * 19%); 
        margin-left: calc(var(--sz) * 2%);
    }

    .home-page .main .text p:first-of-type {
        margin-bottom: 0.8rem;
    }

    .home-page .main .cards {
        padding: 0rem 0 9rem;
    }

    .home-page .main .cards .card {
        width: calc(var(--sz) * 20%);
    }

    .home-page .main .cards .card:nth-of-type(1) {
        margin: 0 0 0 calc(var(--sz) * 2%);
    }
    
    .home-page .main .cards .card:nth-of-type(2),
    .home-page .main .cards .card:nth-of-type(3),
    .home-page .main .cards .card:nth-of-type(4),
    .home-page .main .cards .card:nth-of-type(6),
    .home-page .main .cards .card:nth-of-type(5) {
        margin: 6rem 0 0 calc(var(--sz) * 2%);
    }

    .home-page .main .cards .card a {
        padding: 1.6rem;
    }

}



/* 06. Chi Sono
================================================================ */

.chi-sono .intro .quote {
    display: flex;
    justify-content: space-between;
    min-height: calc(var(--sz) * 16vh);
    padding: max(calc(var(--sz) * 6vh), 12rem) 0 6rem 0;
}

.chi-sono .intro .quote blockquote {
    width: 50%; 
    margin-left: calc(var(--sz) * 4%);
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-1xl);
    line-height: 1;
    text-wrap: balance;
}

.chi-sono .intro .quote p {
    width: calc(var(--sz) * 3%);
    margin: 18rem calc(var(--sz) * 4%) 6rem 0;
}

.chi-sono .intro .content {
    min-height: calc(var(--sz) * 8vh);
    padding-bottom: 6rem;
}

.chi-sono .intro .content h1,
.chi-sono .intro .content h2 {
    width: calc(var(--sz) * 4%);
    margin-left: calc(var(--sz) * 4%);
}

.chi-sono .intro .content h1 {
    margin-bottom: 1.6rem;
}

.chi-sono .main {
    display: flex;
    justify-content: space-between;
    padding: 12rem 0;
}

.chi-sono .main .picture {
    width: calc(var(--sz) * 7%);
    aspect-ratio: 1/1.3;
    position: absolute;
    top: calc(var(--sz) * -4vw);
    left: calc(var(--sz) * 15%);
    overflow: hidden;
}

.chi-sono .main .column {
    width: calc(var(--sz) * 7%);
    position: relative;
}

.chi-sono .main .column:nth-of-type(3) {
    margin: 0 0 0 calc(var(--sz) * 5%);
}

.chi-sono .main .column:nth-of-type(4) {
    margin: calc(var(--sz) * 5vw) calc(var(--sz) * 2%) 0 0;
}

.chi-sono .main .column div:first-of-type {
    margin-bottom: 12rem;
}

.chi-sono .main .column h3 {
    margin-bottom: 3.2rem;
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-2xl);
}

.chi-sono .main .column p:not(:last-of-type) {
    margin-bottom: 1.6rem;
}

@media screen and (max-width: 767px) {

    .chi-sono .intro .quote {
        flex-direction: column;
        justify-content: space-between;
        min-height: auto;
        padding: max(calc(var(--sz) * 6vh), 16rem) 0 6rem;
    }
    
    .chi-sono .intro .quote blockquote {
        width: 100%; 
        margin-left: 0;
        padding: 0 calc(var(--sz) * 2%);
    }
    
    .chi-sono .intro .quote p {
        width: calc(var(--sz) * 19%);
        align-self: flex-start;
        margin: 6rem 0 0 calc(var(--sz) * 2%);
    }

    .chi-sono .intro .content {
        min-height: auto;
        padding-bottom: 0;
    }
    
    .chi-sono .intro .content h1,
    .chi-sono .intro .content h2 {
        width: calc(var(--sz) * 19%);
        margin-left: calc(var(--sz) * 2%);
    }

    .chi-sono .main {
        flex-direction: column;
        padding: 0;
    }
    
    .chi-sono .main .picture {
        width: calc(var(--sz) * 20%);
        position: relative;
        top: 0;
        left: calc(var(--sz) * 2%);
    }

    .chi-sono .main .column {
        width: calc(var(--sz) * 19%);
    }
    
    .chi-sono .main .column:nth-of-type(3) {
        margin: 6rem 0 0 calc(var(--sz) * 2%);
    }
    
    .chi-sono .main .column:nth-of-type(4) {
        margin: 6rem 0 6rem calc(var(--sz) * 2%);
    }

    .chi-sono .main .column div:first-of-type {
        margin-bottom: 6rem;
    }

}



/* 07. Servizi
================================================================ */

.servizi .intro .quote {
    display: flex;
    justify-content: space-between;
    min-height: calc(var(--sz) * 16vh);
    padding: max(calc(var(--sz) * 6vh), 12rem) 0 6rem 0;
}

.servizi .intro .quote h1 {
    width: calc(var(--sz) * 3%);
    margin: 18rem 0 6rem calc(var(--sz) * 4%);
}

.servizi .intro .quote blockquote {
    width: 50%; 
    padding-right: calc(var(--sz) * 2%);
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-1xl);
    line-height: 1;
    text-wrap: balance;
}

.servizi .intro .content {
    min-height: calc(var(--sz) * 8vh);
    padding-bottom: 6rem;
}

.servizi .intro .content h2 {
    width: calc(var(--sz) * 4%);
    margin-left: 50%;
}

.servizi .main {
    padding: 12rem 0;
}

.servizi .main .picture {
    width: calc(var(--sz) * 22%);
    margin: 0 auto 12rem;
    overflow: hidden;
}

.servizi .main .content {
    position: relative;
}

.servizi .main .content .cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 12rem 0;
}

.servizi .main .cards .card {
    width: calc(var(--sz) * 7%);
    align-self: flex-start;
    position: relative;
}

.servizi .main .cards .card:nth-of-type(1),
.servizi .main .cards .card:nth-of-type(3),
.servizi .main .cards .card:nth-of-type(5) {
    margin: 12rem 0 0 calc(var(--sz) * 5%);
}

.servizi .main .cards .card:nth-of-type(2),
.servizi .main .cards .card:nth-of-type(4),
.servizi .main .cards .card:nth-of-type(6) {
    margin: 0 calc(var(--sz) * 2%) 0 0;
}

.servizi .main .cards .card h3 {
    margin-bottom: 3.2rem;
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-2xl);
}

.servizi .main .cards .card p:not(:last-of-type) {
    margin-bottom: 1.6rem;
}

@media screen and (max-width: 767px) {

    .servizi .intro .quote {
        flex-direction: column-reverse;
        min-height: auto;
        padding: max(calc(var(--sz) * 6vh), 16rem) 0 6rem;
    }
    
    .servizi .intro .quote h1 {
        width: calc(var(--sz) * 19%);
        margin: 6rem 0 0 calc(var(--sz) * 2%);
    }
    
    .servizi .intro .quote blockquote {
        width: 100%; 
        padding: 0 calc(var(--sz) * 2%);
    }
    
    .servizi .intro .content {
        min-height: auto;
        padding-bottom: 9rem;
    }
    
    .servizi .intro .content h2 {
        width: calc(var(--sz) * 19%);
        margin-left: calc(var(--sz) * 2%);
    }

    .servizi .main {
        padding: 0;
    }
    
    .servizi .main .picture {
        aspect-ratio: 1/1.3;
        margin: 0 auto 3rem;
    }

    .servizi .main .content {
        position: relative;
    }

    .servizi .main .content .cards {
        padding: 0 0 6rem;
    }
    
    .servizi .main .cards .card {
        width: calc(var(--sz) * 19%);
        align-self: flex-start;
        position: relative;
    }
    
    .servizi .main .cards .card:nth-of-type(1) {
        margin: 0 0 0 calc(var(--sz) * 2%);
    }

    .servizi .main .cards .card:nth-of-type(2),
    .servizi .main .cards .card:nth-of-type(3),
    .servizi .main .cards .card:nth-of-type(4),
    .servizi .main .cards .card:nth-of-type(5),
    .servizi .main .cards .card:nth-of-type(6) {
        margin: 6rem 0 0 calc(var(--sz) * 2%);
    }

}



/* 08. Contatti
================================================================ */

.contatti .intro .quote {
    width: 50%;
    min-height: calc(var(--sz) * 16vh);
    margin-left: calc(var(--sz) * 4%);
    padding: max(calc(var(--sz) * 6vh), 12rem) 0 6rem 0;
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-1xl);
    line-height: 1;
    text-wrap: balance;
}

.contatti .intro .content {
    min-height: calc(var(--sz) * 8vh);
    display: flex;
    justify-content: space-between;
    padding-bottom: 6rem;
}

.contatti .intro .content h1 {
    width: calc(var(--sz) * 4%);
    margin-left: calc(var(--sz) * 4%);
}

.contatti .intro .content > div {
    width: 50%;
    display: flex;
    justify-content: space-between;
}

.contatti .intro .content > div > div:first-of-type {
    width: calc(var(--sz) * 8%);
}

.contatti .intro .content > div > div:first-of-type h2 {
    margin-bottom: 1.6rem;
}

.contatti .intro .content > div div:last-of-type {
    width: calc(var(--sz) * 8%);
    margin-right: calc(var(--sz) * 4%);
}

.contatti .intro .content > div div:last-of-type a {
    display: block;
}

.contatti .main {
    display: flex;
    justify-content: space-between;
    padding: 0 0 12rem;
}

.contatti .main .picture {
    width: calc(var(--sz) * 7%);
    aspect-ratio: 1/1.3;
    margin-left: calc(var(--sz) * 2%);
    overflow: hidden;
}

.contatti .main .content {
    width: 50%;
    display: flex;
    justify-content: space-between;
    padding-top: 12rem;
}

.contatti .main .content div h3,
.contatti .main .content div p:first-of-type {
    margin-bottom: 1.6rem;
}

.contatti .main .content div:first-of-type {
    width: calc(var(--sz) * 6%);
}

.contatti .main .content div:last-of-type {
    width: calc(var(--sz) * 8%);
    margin-right: calc(var(--sz) * 4%);
}

.contatti .main .content div:first-of-type p:last-of-type {
    opacity: 0.6;
    font-size: var(--fnt-sz-s);
    letter-spacing: 0.03rem;
    text-transform: uppercase;
}

@media screen and (max-width: 767px) {

    .contatti .intro .quote {
        width: 100%;
        min-height: auto;
        margin-left: 0;
        padding: max(calc(var(--sz) * 6vh), 16rem) calc(var(--sz) * 2%) 6rem calc(var(--sz) * 2%);
    }
    
    .contatti .intro .content {
        min-height: auto;
        flex-direction: column;
        padding: 0 0 6rem;
    }
    
    .contatti .intro .content h1 {
        width: calc(var(--sz) * 19%);
        margin: 0 0 6rem calc(var(--sz) * 2%);
    }
    
    .contatti .intro .content > div {
        width: 100%;
        flex-direction: column;
    }
    
    .contatti .intro .content > div > div:first-of-type {
        width: calc(var(--sz) * 19%);
        margin-left: calc(var(--sz) * 2%);
    }

    
    .contatti .intro .content > div div:last-of-type {
        width: calc(var(--sz) * 19%);
        margin: 6rem 0 0 calc(var(--sz) * 2%);
    }

    .contatti .main {
        flex-direction: column;
        padding: 0 0 6rem;
    }
    
    .contatti .main .picture {
        width: calc(var(--sz) * 20%);
        margin-left: calc(var(--sz) * 2%);
    }
    
    .contatti .main .content {
        width: 100%;
        flex-direction: column-reverse;
        padding-top: 6rem;
    }

    .contatti .main .content div:first-of-type {
        width: calc(var(--sz) * 19%);
        margin-left: calc(var(--sz) * 2%);
    }
    
    .contatti .main .content div:last-of-type {
        width: calc(var(--sz) * 19%);
        margin: 0 0 6rem calc(var(--sz) * 2%);
    }

}



/* 09. Problematica
================================================================ */

.problematica .intro {
    display: flex;
    justify-content: space-between;
}

.problematica .intro .back-home {
    display: flex;
    position: absolute;
    top: max(calc(var(--sz) * 8vh), 32rem);
    left: calc(var(--sz) * 2%);
    font-size: var(--fnt-sz-s);
    text-transform: uppercase;
    z-index: 1010;
}

.problematica .intro .back-home a {
    display: flex;
}

.problematica .intro .back-home svg {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0.1rem .8rem 0 0;
}

.problematica .intro .content {
    width: 50%;
    padding: max(calc(var(--sz) * 12vh), 40rem) calc(var(--sz) * 2%) 24rem;
}

.problematica .intro .content h1 {
    margin-bottom: 3.2rem;
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-1xl);
}

.problematica .intro .content > p:not(:last-of-type) {
    margin-bottom: 1.6rem;
} 

.problematica .intro .content .next {
    margin-top: 6.4rem;
}

.problematica .intro .content .next p {
    opacity: 0.6;
    font-size: var(--fnt-sz-s);
    text-transform: uppercase;
}

.problematica .intro .content .next a {
    display: flex;
    align-items: flex-end;
    font-family: 'Queensila', sans-serif;
    font-size: var(--fnt-sz-2xl);
}

.problematica .intro .content .next a svg {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0 1.6rem 1.2rem 0;
}

.problematica .intro .content .next a svg path {
    stroke: var(--clr-1);
}

.problematica .intro .picture {
    width: 50%;
    min-height: 100vh;
    align-self: flex-start;
    display: flex;
    position: sticky;
    top: 0;
    padding: max(calc(var(--sz) * 12vh), 12rem) 0 12rem;
    padding: 24rem 0 12rem;
}

.problematica .intro .picture div {
    width: calc(var(--sz) * 20%);
    aspect-ratio: 1/1.3;
    align-self: center;
    overflow: hidden;
}

@media screen and (max-width: 767px) {

    .problematica .intro {
        flex-direction: column-reverse;
    }
    
    .problematica .intro .back-home {
        position: absolute;
        top: 12rem;
        left: calc(var(--sz) * 2%);
    }
    
    .problematica .intro .content {
        width: 100%;
        padding: 0 calc(var(--sz) * 3%) 6rem calc(var(--sz) * 2%);
    }
    
    .problematica .intro .picture {
        width: 100%;
        min-height: auto;
        justify-content: flex-end;
        position: relative;
        padding: 24rem calc(var(--sz) * 2%) 6rem calc(var(--sz) * 2%);
    }
    
    .problematica .intro .picture div {
        width: 100%;
    }

}

   