* {
    box-sizing: border-box;
}
/* MANROPE REGULAR */
@font-face {
    font-family: 'Manrope';
    src: url('../fonts/manrope-v23-latin-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* MANROPE MEDIUM */
@font-face {
    font-family: 'Manrope';
    src: url('../fonts/manrope-v23-latin-500.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* INSTRUMENT SERIF */
@font-face {
    font-family: 'Instrument Serif';
    src: url('../fonts/instrument-serif-v5-latin-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
/* SORA LIGHT */
@font-face {
    font-family: 'Sora';
    src: url('../fonts/sora-v17-latin-300.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

/* SORA REGULAR */
@font-face {
    font-family: 'Sora';
    src: url('../fonts/sora-v17-latin-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
html {
    scroll-behavior: smooth;
}
body {
    margin: 0;
    background: #f1eee8;
    color: #292923;
    font-family: 'Manrope', Arial, sans-serif;
}
a {
    color: inherit;
    text-decoration: none;
}
a:focus-visible {
    outline: 2px solid #ab7853;
    outline-offset: 7px;
}
header {
    height: 105px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 6%;
    background: transparent;
    color: white;
}
/* Navigazione sovrapposta alla fotografia nelle pagine con hero. */
.has-hero header {
    position: absolute;
    inset: 0 0 auto;
    z-index: 10;
    background: transparent;
}
.has-hero nav {
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.65);
}
.has-hero .hero {
    min-height: 795px;
    height: 100svh;
    max-height: 1105px;
    padding-top: calc(105px + 7%);
}
/* Sulle pagine chiare il menu e il logo rimangono leggibili. */
body:not(.has-hero) header {
    color: #292923;
}
body:not(.has-hero) header img {
    filter: brightness(0);
}
header img {
    width: 220px;
    height: auto;
}
nav {
    display: flex;
    gap: 35px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 2px;
}
nav a {
    padding: 12px 0;
    border-bottom: 1px solid transparent;
}
nav a[aria-current] {
    border-color: currentColor;
}
.hero {
    min-height: 690px;
    height: calc(100svh - 105px);
    max-height: 1000px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 7% 6%;
    color: white;
    background:
        linear-gradient(90deg, #0007, #0001),
        url(assets/doc0-p0-1.png) center/cover;
}
.hero h1 {
    max-width: 1100px;
}
h1,
h2,
h3,
p {
    margin-top: 0;
}
h1,
h2 {
    font-family: 'Sora', Arial, sans-serif;
    font-weight: 300;
}

h3 {
    font-family: 'Manrope', Arial, sans-serif;
    font-weight: 500;
}
h1 {
    font-size: clamp(52px, 7.5vw, 116px);
    line-height: 1.12;
    letter-spacing: -3px;
    margin-bottom: 36px;
}
h2 {
    font-size: clamp(38px, 4.6vw, 70px);
    line-height: 1.15;
    letter-spacing: -2px;
}
h3 {
    font-size: 30px;
}
h1 em,
h2 em {
    font-style: normal;
    font-weight: inherit;
}
.hero p {
    font-size: 19px;
    line-height: 1.6;
    max-width: 630px;
}
.eyebrow {
    display: block;
    font-size: 10px;
    letter-spacing: 2.6px;
    text-transform: uppercase;
    margin-bottom: 28px;
}
.hero .eyebrow {
    color: #eee;
}
.button {
    display: inline-flex;
    align-items: center;
    gap: 40px;
    padding: 18px 0;
    border-bottom: 1px solid;
    letter-spacing: 1.5px;
    font-size: 11px;
    text-transform: uppercase;
    width: fit-content;
}
.hero .button {
    margin-top: 15px;
}
.section {
    padding: 110px 8%;
}
.split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9%;
    align-items: center;
}
.copy {
    font-size: 17px;
    line-height: 1.85;
    max-width: 600px;
}
.rows {
    border-top: 1px solid #bbb6ac;
}
.row {
    display: grid;
    grid-template-columns: 55px 1fr;
    gap: 20px;
    padding: 29px 0;
    border-bottom: 1px solid #bbb6ac;
}
.row span {
    font-size: 11px;
    letter-spacing: 2px;
    padding-top: 8px;
    color: #756b5d;
}
.row h3 {
    margin-bottom: 12px;
}
.row p {
    line-height: 1.7;
    margin: 0;
    color: #666359;
}
.wide {
    width: 100%;
    height: 580px;
    object-fit: cover;
    display: block;
}
.split img {
    width: 100%;
    max-height: 650px;
    object-fit: cover;
}
.dark {
    background: #30312b;
    color: #f1eee8;
}
.dark .row p,
.dark .row span {
    color: #ccc7bb;
}
.cta {
    padding: 100px 8%;
    background: #ddd7cb;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}
.cta h2 {
    margin: 0;
}
footer {
    padding: 48px 6%;
    background: #242620;
    color: #c6c5bc;
    font-size: 11px;
    line-height: 1.8;
}
footer .top {
    display: flex;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 35px;
}
footer img {
    width: 180px;
    object-fit: contain;
}
footer small {
    display: block;
    max-width: 800px;
    color: #92958a;
}
.bio-hero {
    background-image:
        linear-gradient(90deg, #0009, #0002), url(assets/doc1-p0-2.jpg);
}
.contact h1 {
    max-width: 850px;
}
.contact .email {
    font-family: Georgia, serif;
    font-size: clamp(25px, 4vw, 58px);
    border-bottom: 1px solid #aaa;
    display: inline-block;
    padding-bottom: 15px;
}
.note {
    font-size: 12px;
    color: #777368;
    line-height: 1.6;
}
.contact-grid {
    margin-top: 75px;
    align-items: start;
}
.contact-grid h3 {
    font-size: 26px;
}
form {
    display: grid;
    gap: 20px;
}
label {
    font-size: 12px;
    letter-spacing: 1px;
}
input,
textarea {
    font: inherit;
    display: block;
    width: 100%;
    border: 0;
    border-bottom: 1px solid #aaa;
    background: transparent;
    border-radius: 0;
    padding: 14px 0;
    color: inherit;
}
textarea {
    min-height: 100px;
    resize: vertical;
}
button {
    cursor: pointer;
    background: none;
    color: inherit;
    border: 0;
    font: inherit;
}
.contact .button {
    border-bottom: 1px solid;
}
.caption {
    padding: 12px 8%;
    font-size: 10px;
    color: #777368;
    letter-spacing: 0.5px;
}
@media (max-width: 700px) {
    header {
        height: 85px;
        padding: 0 6%;
    }
    header img {
        width: 145px;
    }
    nav {
        gap: 15px;
        font-size: 10px;
        letter-spacing: 1px;
    }
    .hero {
        min-height: 620px;
        height: calc(90svh - 85px);
        padding: 60px 7%;
    }
    h1 {
        letter-spacing: -2px;
    }
    .section {
        padding: 65px 7%;
    }
    .split {
        grid-template-columns: 1fr;
        gap: 35px;
    }
    .wide {
        height: 350px;
    }
    .cta {
        padding: 65px 7%;
        display: block;
    }
    .cta .button {
        margin-top: 25px;
    }
    footer .top {
        flex-wrap: wrap;
    }
    .contact-grid {
        margin-top: 50px;
    }
}
@media (max-width: 700px) {
    .has-hero .hero {
        min-height: 705px;
        height: 90svh;
        padding-top: 145px;
    }
}
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}
