:root {
    --bv-green: #173f3b;
    --bv-green-2: #214b47;
    --bv-ink: #263431;
    --bv-muted: #696d68;
    --bv-ivory: #f5f0e6;
    --bv-ivory-2: #efe8db;
    --bv-paper: #fbfaf7;
    --bv-white: #ffffff;
    --bv-line: #dcd5c9;
    --bv-accent: #ca651c;
    --bv-container: 1380px;
    --bv-serif: Georgia, 'Times New Roman', serif;
    --bv-sans: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.bv-patto-page {
    margin: 0;
    background: var(--bv-paper);
    color: var(--bv-ink);
    font-family: var(--bv-sans);
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}
body.bv-patto-page.admin-bar .bv-topbar { top: 32px; }
body.bv-patto-page h1,
body.bv-patto-page h2,
body.bv-patto-page h3,
body.bv-patto-page p { margin-top: 0; }
body.bv-patto-page h1,
body.bv-patto-page h2,
body.bv-patto-page h3 {
    font-family: var(--bv-serif);
    font-weight: 400;
    letter-spacing: -0.022em;
}
body.bv-patto-page h1 {
    max-width: 640px;
    margin-bottom: 22px;
    font-size: clamp(2.75rem, 3.35vw, 3.75rem);
    line-height: 1.06;
}
body.bv-patto-page h2 {
    margin-bottom: 24px;
    font-size: clamp(2.35rem, 3.5vw, 4rem);
    line-height: 1.06;
}
body.bv-patto-page h3 { margin-bottom: 16px; }
body.bv-patto-page a { color: inherit; }

.bv-container { width: min(var(--bv-container), calc(100% - 80px)); margin-inline: auto; }
.bv-section { padding: 104px 0; }
.bv-lead { max-width: 690px; color: var(--bv-muted); font-size: 1.08rem; line-height: 1.72; }
.bv-small { max-width: 560px; color: #85857d; font-size: .95rem; }
.bv-eyebrow {
    margin-bottom: 19px;
    color: var(--bv-accent);
    font-size: .71rem;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}
.bv-eyebrow--light { color: #efa061; }

.bv-skip-link { position: fixed; left: 12px; top: -80px; z-index: 99999; background: #fff; padding: 10px 14px; }
.bv-skip-link:focus { top: 12px; }

/* Header: riprende l'identità del sito istituzionale senza importare il vecchio layout Genesis. */
.bv-topbar {
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid #dedbd3;
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(8px);
}
.bv-topbar__inner { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.bv-brand { display: inline-flex; align-items: center; gap: 13px; min-width: 0; text-decoration: none; }
.bv-brand__mark {
    flex: 0 0 auto;
    color: var(--bv-green);
    font-family: var(--bv-serif);
    font-size: 1.08rem;
    font-weight: 700;
    letter-spacing: .08em;
    white-space: nowrap;
}
.bv-brand__identity { display: flex; flex-direction: column; min-width: 0; }
.bv-brand__identity strong { color: #2b3432; font-family: var(--bv-serif); font-size: .9rem; font-weight: 700; line-height: 1.12; }
.bv-brand__identity small { margin-top: 3px; color: #7b7e78; font-size: .65rem; line-height: 1.15; }
.bv-nav { display: flex; align-items: center; gap: 26px; font-size: .74rem; }
.bv-nav > a:not(.bv-btn) { text-decoration: none; }
.bv-nav > a:not(.bv-btn):hover { color: var(--bv-green); text-decoration: underline; text-underline-offset: 4px; }
.bv-menu-toggle { display: none; border: 1px solid var(--bv-green); border-radius: 2px; background: transparent; padding: 8px 12px; color: var(--bv-green); }
.bv-mobile-nav { border-top: 1px solid #e0dcd3; padding: 8px 24px 18px; background: #fff; }
.bv-mobile-nav a { display: block; padding: 11px 0; border-bottom: 1px solid #ebe7df; text-decoration: none; }

.bv-btn {
    appearance: none;
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bv-green);
    border-radius: 2px;
    background: var(--bv-green);
    color: #fff !important;
    padding: 13px 22px;
    font: 700 .85rem/1.15 var(--bv-sans);
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.bv-btn:hover { transform: translateY(-1px); border-color: var(--bv-green-2); background: var(--bv-green-2); }
.bv-btn--small { min-height: 36px; padding: 8px 14px; font-size: .72rem; }
.bv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 30px; }

/* Prima sezione */
.bv-future { min-height: 0; display: flex; align-items: center; background: var(--bv-white); padding-top: 88px; padding-bottom: 94px; }
.bv-future-grid { display: grid; grid-template-columns: minmax(430px, .92fr) minmax(0, 1.45fr); gap: 86px; align-items: center; }
.bv-future-copy .bv-lead { max-width: 500px; }
.bv-signals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 52px; }
.bv-signals > div {
    min-height: 64px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--bv-line);
    padding: 17px 4px 17px 0;
    color: #373f3d;
    font-size: .97rem;
}
.bv-signals > div:nth-child(2n) { border-left: 1px solid var(--bv-line); padding-left: 38px; }

/* Seconda sezione */
.bv-proposal { border-top: 1px solid #e7e0d5; border-bottom: 1px solid #e1d9cc; background: var(--bv-ivory); }
.bv-proposal-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(430px, .9fr); gap: 82px; align-items: center; }
.bv-proposal-copy { max-width: 700px; }
.bv-promise-card {
    border-radius: 3px;
    background: var(--bv-green);
    color: #f7f4ee;
    padding: 48px 48px 42px;
    box-shadow: 0 14px 40px rgba(26,49,46,.06);
}
.bv-promise-card h3 { max-width: 560px; color: #fff; font-size: clamp(1.7rem, 2.2vw, 2.35rem); line-height: 1.12; }
.bv-promise-card ul { list-style: none; margin: 0; padding: 0; }
.bv-promise-card li { position: relative; padding: 12px 0 12px 32px; font-weight: 600; }
.bv-promise-card li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 12px;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    color: #ef9a54;
    font-size: .76rem;
    font-weight: 700;
}
.bv-promise-note { margin: 24px 0 0; border-top: 1px solid rgba(255,255,255,.14); padding-top: 22px; color: #dbe3e0; font-size: .9rem; line-height: 1.65; }

/* Form finale */
.bv-contact { background: var(--bv-paper); }
.bv-contact-layout { display: grid; grid-template-columns: minmax(330px, .82fr) minmax(0, 1.18fr); gap: 72px; align-items: start; }
.bv-contact-copy { padding-top: 18px; }
.bv-contact-copy h2 { max-width: 520px; }
.bv-contact-copy > p:not(.bv-eyebrow) { max-width: 530px; color: var(--bv-muted); font-size: 1.01rem; line-height: 1.68; }
.bv-contact-note { margin-top: 32px; border-left: 2px solid var(--bv-accent); padding: 6px 0 6px 20px; }
.bv-contact-note strong { display: block; color: var(--bv-accent); font-family: var(--bv-serif); font-size: 1.55rem; font-style: italic; }
.bv-contact-note span { display: block; margin-top: 3px; color: var(--bv-muted); font-size: .92rem; }
.bv-form-card {
    border: 1px solid #ddd8cf;
    border-radius: 3px;
    background: #fff;
    width: 100%;
    max-width: 790px;
    justify-self: end;
    padding: 34px 36px;
    box-shadow: 0 2px 10px rgba(30,45,41,.025);
}
.bv-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 18px; }
.bv-form label { display: block; margin-bottom: 14px; color: var(--bv-green); font-size: .78rem; font-weight: 700; }
.bv-form input[type='text'],
.bv-form input[type='tel'],
.bv-form input[type='email'],
.bv-form select,
.bv-form textarea {
    width: 100%;
    margin-top: 7px;
    border: 1px solid #d3cdc2;
    border-radius: 1px;
    background: #fff;
    padding: 10px 12px;
    color: var(--bv-ink);
    font: 400 .94rem/1.4 var(--bv-sans);
}
.bv-form input:focus,
.bv-form select:focus,
.bv-form textarea:focus { outline: 3px solid rgba(23,63,59,.10); outline-offset: 1px; border-color: var(--bv-green); }
.bv-form-help { margin: 0 0 10px; color: #7c7b75; font-size: .74rem; }
.bv-optional { color: #88857f; font-weight: 400; }
.bv-privacy { display: flex !important; align-items: flex-start; gap: 10px; color: #626965 !important; font-size: .75rem !important; font-weight: 400 !important; }
.bv-privacy input { margin-top: 3px; }
.bv-form-footnote { max-width: 620px; margin: 14px 0 0; color: #8b8a84; font-size: .72rem; }
.bv-form-message { margin-bottom: 20px; border-left: 3px solid #984838; background: #f8e9e6; padding: 14px 16px; font-size: .86rem; }
.bv-form-message--ok { border-left-color: var(--bv-green); background: #e7f1ec; }
.bv-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(1px,1px,1px,1px) !important; }

/* Footer allineato ai contenuti/denominazioni del sito esistente. */
.bv-footer { border-top: 1px solid rgba(255,255,255,.08); background: #112f2c; color: #edf2f0; padding: 38px 0 22px; font-size: .77rem; }
.bv-footer__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.bv-footer__brand { display: flex; align-items: center; gap: 14px; }
.bv-footer__mark { font-family: var(--bv-serif); font-size: 1rem; font-weight: 700; letter-spacing: .08em; }
.bv-footer__brand strong { font-family: var(--bv-serif); font-size: .88rem; }
.bv-footer__brand span { color: #bccac6; }
.bv-footer__links { display: flex; flex-wrap: wrap; gap: 22px; }
.bv-footer a { color: #edf2f0; text-underline-offset: 3px; }
.bv-footer__legal { margin-top: 28px; border-top: 1px solid rgba(255,255,255,.10); padding-top: 16px; color: #9eb0ab; font-size: .67rem; letter-spacing: .03em; }

@media (max-width: 1100px) {
    .bv-future-grid { grid-template-columns: minmax(360px, .9fr) minmax(0, 1.2fr); }
    .bv-future-grid, .bv-proposal-grid, .bv-contact-layout { gap: 54px; }
    .bv-proposal-grid { grid-template-columns: 1fr 1fr; }
    .bv-nav { gap: 20px; }
}

@media (max-width: 900px) {
    body.bv-patto-page.admin-bar .bv-topbar { top: 46px; }
    .bv-container { width: min(100% - 40px, var(--bv-container)); }
    .bv-section { padding: 84px 0; }
    .bv-nav { display: none; }
    .bv-menu-toggle { display: inline-flex; }
    .bv-future-grid,
    .bv-proposal-grid,
    .bv-contact-layout { grid-template-columns: 1fr; }
    .bv-future-grid, .bv-proposal-grid, .bv-contact-layout { gap: 46px; }
    .bv-future-copy, .bv-proposal-copy, .bv-contact-copy { max-width: 720px; }
    .bv-future { min-height: auto; padding-top: 76px; padding-bottom: 80px; }
    .bv-contact-copy { padding-top: 0; }
}

@media (max-width: 680px) {
    .bv-container { width: min(100% - 28px, var(--bv-container)); }
    .bv-topbar__inner { min-height: 66px; }
    .bv-brand { gap: 10px; }
    .bv-brand__identity strong { font-size: .82rem; }
    .bv-brand__identity small { display: none; }
    body.bv-patto-page h1 { max-width: 560px; font-size: clamp(2.45rem, 10.6vw, 3.25rem); line-height: 1.05; }
    body.bv-patto-page h2 { font-size: clamp(2.15rem, 9.4vw, 3.05rem); }
    .bv-signals, .bv-form-grid { grid-template-columns: 1fr; }
    .bv-signals > div:nth-child(2n) { border-left: 0; padding-left: 0; }
    .bv-promise-card { padding: 34px 26px 30px; }
    .bv-form-card { max-width: none; justify-self: stretch; padding: 26px 22px; }
    .bv-actions { align-items: flex-start; flex-direction: column; }
    .bv-footer__inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 420px) {
    .bv-brand__identity strong { max-width: 185px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .bv-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .bv-btn { transition: none; }
}
