/* Contatti: stile isolato, componenti condivisi invariati. */
.contact-page { flex: 1; scroll-margin-top: 8rem; }
.contact-hero { background: var(--color-navy); color: #F4EFE6; padding-block: clamp(48px, 5.5vw, 80px); }
.contact-hero-copy { max-width: 680px; }
.contact-hero h1 { font-size: clamp(2rem, 1.5rem + 1.5vw, 2.625rem); margin-bottom: 24px; }
.contact-hero p + p { margin-top: 12px; }
.contact-hero .contact-lead { font-size: 1.25rem; margin-bottom: 16px; }
.contact-write { max-width: calc(720px + 2 * var(--gutter)); padding-block: clamp(48px, 5vw, 64px); }
.contact-write h2 { margin-bottom: 20px; }
.contact-form-note, .contact-required, .contact-support, #privacy-note { font-size: .9375rem; color: var(--color-text-secondary); }
.contact-form-note { max-width: 550px; margin-bottom: 24px; }
.contact-required { margin-bottom: 16px; }
.contact-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 20px; }
.contact-field-wide { grid-column: 1 / -1; }
.contact-field label { display: block; font-weight: 600; margin-bottom: 5px; }
.contact-field label span { font-size: .875rem; font-weight: 400; }
.contact-field input, .contact-field textarea { display: block; width: 100%; min-width: 0; padding: 10px 12px; min-height: 48px; border: 1px solid rgba(1,32,65,.35); border-radius: 0; background: var(--color-white); color: var(--color-navy); box-shadow: none; }
.contact-field textarea { min-height: 150px; resize: vertical; }
.contact-field :is(input,textarea):focus-visible { outline: 2px solid var(--color-navy); outline-offset: 3px; border-color: var(--color-gold); }
.contact-consent { margin-block: 22px; }
.contact-consent label { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding-block: 8px; cursor: pointer; }
.contact-consent input { width: 20px; height: 20px; flex: 0 0 20px; margin: calc((1.7em - 20px) / 2) 0 0; accent-color: var(--color-navy); }
#privacy-note { margin: 4px 0 0 32px; }
.contact-submit { min-height: 48px; padding: 12px 40px; border: 1px solid var(--color-navy); background: var(--color-navy); color: var(--color-white); font-weight: 600; cursor: pointer; }
.contact-submit:hover { color: var(--color-gold); }
.contact-submit:disabled { cursor: not-allowed; }
.contact-status:not(:empty) { margin-top: 20px; font-weight: 600; }
.contact-support { margin-top: 20px; max-width: 540px; }
.contact-closing { background: #F4EFE6; padding-block: 48px; text-align: center; }
.contact-closing h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); margin-bottom: 12px; }
.contact-closing p { max-width: 640px; margin-inline: auto; }

@media (max-width: 35rem) {
  .contact-fields { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .contact-submit { width: 100%; }
  .contact-closing { padding-block: 40px; }
}
