:root {
    --color-primary: #35332F;
    --color-secondary: #F55C00;
    --color-bg-light: transparent;
    --color-footer: transparent;
    --padding: 20px;
}

@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-VariableFont_wght.ttf') format('truetype');
    font-weight: 100 900; /* Definisci il range di peso variabile */
    font-style: normal; /* Puoi definire anche altri stili come italic */
}

/* COMMON */
html {
    font-size: 18px;
}
body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-family: 'Montserrat', sans-serif;
    min-height: 100vh;
}
p,
h1, h2, h3, h4, h5, h6 {
    color: var(--color-primary);
}
p {
    font-size: 1rem;
    line-height: 1.35rem;
}
p:not(:last-of-type) {
    margin-bottom: .35rem;
}
h1 {
    font-size: 4rem;
    font-weight: 300;
    margin-bottom: .5rem;
}
h2 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: .5rem;
}
h4 {
    font-size: 1.35rem;
    margin: .35rem 0;
}
a:hover {
    text-decoration: underline;
}
p a {
    color: var(--color-secondary);
}
strong {
    font-weight: 600;
}
img {
    display: block;
}
.container {
    max-width: 1140px;
    margin: 0 auto;
    padding: var(--padding);
}
.hruler {
    display: block;
    height: 2px;
    width: 15%;
    background-color: #7a7a7a;
    margin: 25px auto;
}
.buttonlink {
    display: inline-block;
    font-size: .9rem;
    color: white;
    background-color: var(--color-secondary);
    border-radius: 7px;
    width: 12em;
    padding: .35em .75em;
    margin: 7px;
}
.buttons {
    display: flex;
    flex-direction: row;
    justify-content: center;
}

/* HEADER */
header {
    z-index: 100;
    /* position: sticky; */
    top: 0;
    display: flex;
    background-color: white;
}
.logo {
    display: inline-block;
    border-left: 7px solid var(--color-primary);
    border-right: 1px solid var(--color-primary);
    padding: 0 15px;
}
header .logo img {
    /* width: 125px; */
    height: 75px;
}
.spacer {
    height: 1rem;
}

/* MAIN */
.main-container {
    display: flex;
    flex-direction: row;
    justify-self: stretch;
    align-items: center;
}
.welcome {
    display: inline-flex;
    align-items: center;
    flex-grow: 1;
    text-align: center;
    padding: 75px var(--padding);
}
.welcome h1{
    color: var(--color-secondary);
    font-size: 4.5rem;
    font-weight: 700;
}
.welcome h1 span {
    color: var(--color-primary);
    display: block;
    font-size: 1.4em;
    font-weight: 900;
}
.welcome p {
    font-weight: 500;
    margin-bottom: .25rem;
}

/* FOOTER */
footer {
    text-align: center;
    background-color: var(--color-bg-light);
}
footer > .container {
    padding-bottom: 75px;
}
footer img {
    width: 150px;
}

.colophon {
    background-color: var(--color-footer);
    color: var(--color-primary);
    font-size: .8rem;
}
.colophon nav {
    margin: 0 .5em;
}
.colophon > .container {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}
.cm-credits,
.cm-credits .cm-link {
    display: flex;
    flex-direction: row;
    align-items: center;
}
.cm-credits .cm-link img {
    width: 1.5em;
    margin: 0 .25em;
}

/* RESPONSIVE */
@media screen and (max-width: 650px) {
    .main-container {
        flex-direction: column;
        text-align: center;
    }
    .main-container .picture {
        display: none;
    }
    .welcome h1 {
        font-size: 3rem;
    }
    footer .container,
    .colophon .container {
        flex-direction: column;
        justify-content: center;
        text-align: center;
    }
    footer img {
        margin: auto;
    }
    .cm-credits {
        justify-content: center;
        font-size: 12px;
    }
    #footer-nav {
        margin-top: 1rem;
    }
}