/* Sito Proventum — foglio di stile unico, mobile-first.
   Brand book: Navy #16294C, Oro #C9A84C (solo simbolo, filetti, descrittore),
   Avorio #F4F1EA, Grafite #4A4A46, Bianco #FFFFFF.
   Inter soltanto in due pesi: 400 e 500. Nessun peso oltre il 500. */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/inter-400.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/inter-500.woff2") format("woff2");
}

:root {
  --navy: #16294C;
  --oro: #C9A84C;
  --avorio: #F4F1EA;
  --grafite: #4A4A46;
  --bianco: #FFFFFF;
  --navy-tenue: #2C3F63;
  --bordo: #DAD4C6;
  --errore: #8A2E25;
  --misura: 42rem;
  --margine: 1.25rem;
}

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

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--avorio);
  color: var(--grafite);
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  font-size: 1.0625rem;
  line-height: 1.55;
  text-align: left;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
main { flex: 1 0 auto; width: 100%; }

h1, h2, h3, h4, strong, b, th, dt, label, summary, button, .pulsante {
  font-weight: 500;
}
h1, h2, h3, h4 { color: var(--navy); line-height: 1.25; margin: 0 0 .75rem; }
h1 { font-size: 1.75rem; letter-spacing: -.005em; }
h2 { font-size: 1.25rem; margin-top: 2.5rem; }
h3 { font-size: 1.0625rem; margin-top: 1.75rem; }
p, ul, ol, dl { margin: 0 0 1rem; }
a { color: var(--navy); text-decoration-color: var(--oro); text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, summary:focus-visible {
  outline: 2px solid var(--oro);
  outline-offset: 2px;
}
img { max-width: 100%; height: auto; }

.salta {
  position: absolute; left: -999px; top: 0;
  background: var(--bianco); color: var(--navy); padding: .5rem 1rem; z-index: 10;
}
.salta:focus { left: .5rem; top: .5rem; }

/* ── testata ─────────────────────────────────────────────────────────── */
.testata { background: var(--navy); color: var(--avorio); border-bottom: 1px solid var(--oro); }
.testata-interno {
  max-width: 68rem; margin: 0 auto; padding: .9rem var(--margine);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.marchio { display: flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--avorio); }
.marchio .simbolo { width: 2.25rem; height: 2.25rem; flex: none; }
.parole { display: flex; flex-direction: column; line-height: 1; }
.wordmark {
  font-weight: 500; font-size: 1.15rem; letter-spacing: .17em;
  text-transform: uppercase;
}
.descrittore {
  color: var(--oro); font-size: calc(1.15rem * .36); letter-spacing: .42em;
  margin-top: .42rem; font-weight: 500;
}

.menu-largo { display: none; }
.menu-stretto { position: relative; }
.menu-stretto summary {
  list-style: none; cursor: pointer; color: var(--avorio);
  border: 1px solid rgba(244, 241, 234, .45); border-radius: 2px;
  padding: .45rem .85rem; font-size: .95rem;
}
.menu-stretto summary::-webkit-details-marker { display: none; }
.menu-stretto[open] summary { border-color: var(--oro); }
.menu-stretto nav {
  position: absolute; right: 0; top: calc(100% + .6rem); z-index: 5;
  background: var(--navy); border: 1px solid var(--oro);
  min-width: 14rem; padding: .5rem 0;
}
.menu-stretto ul { list-style: none; margin: 0; padding: 0; }
.menu-stretto a {
  display: block; padding: .7rem 1.1rem; color: var(--avorio); text-decoration: none;
}
.menu-stretto a[aria-current="page"] { color: var(--oro); }
.menu-stretto .riservata { border-top: 1px solid var(--navy-tenue); }

@media (min-width: 62rem) {
  .menu-stretto { display: none; }
  .menu-largo { display: flex; align-items: center; gap: 2rem; }
  .menu-largo ul { list-style: none; display: flex; gap: 1.5rem; margin: 0; padding: 0; }
  .menu-largo a { color: var(--avorio); text-decoration: none; font-size: .95rem; padding: .25rem 0; }
  .menu-largo a:hover, .menu-largo a[aria-current="page"] { box-shadow: inset 0 -1px 0 var(--oro); }
  .menu-largo .riservata { border: 1px solid rgba(244, 241, 234, .45); padding: .4rem .9rem; border-radius: 2px; }
}

/* ── corpo ───────────────────────────────────────────────────────────── */
main.pagina { max-width: 68rem; margin: 0 auto; padding: 2.5rem var(--margine) 4rem; }
.testo { max-width: var(--misura); }
.testo.stretto { max-width: 28rem; }
.introduzione, .sottotitolo { font-size: 1.15rem; color: var(--grafite); }
.nota { font-size: .95rem; border-left: 1px solid var(--oro); padding-left: 1rem; margin-top: 2rem; }

.testo ul, .testo ol { padding-left: 1.2rem; }
.testo li { margin-bottom: .6rem; }

.home .apertura { padding: 1.5rem 0 2.5rem; border-bottom: 1px solid var(--oro); }
.home .apertura h1 { font-size: 2rem; max-width: 18ch; }
.home .blocco { padding-top: .5rem; }
.home .chiusura { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--oro); }

.tre-righe ul, .criteri ul { list-style: none; padding-left: 0 !important; }
.tre-righe li, .criteri li { padding: 1rem 0; border-bottom: 1px solid var(--bordo); margin: 0; }
.tre-righe li:last-child, .criteri li:last-child { border-bottom: 0; }
.tre-righe strong, .criteri strong { color: var(--navy); display: block; margin-bottom: .2rem; }

.passi { counter-reset: passo; list-style: none; padding-left: 0 !important; margin: 2rem 0; }
.passi li {
  counter-increment: passo; position: relative;
  padding: 1rem 0 1rem 2.75rem; border-top: 1px solid var(--bordo); margin: 0;
}
.passi li::before {
  content: counter(passo); position: absolute; left: 0; top: 1rem;
  width: 1.9rem; height: 1.9rem; border: 1px solid var(--oro); border-radius: 50%;
  display: grid; place-items: center; font-size: .9rem; color: var(--navy); font-weight: 500;
}
.passi strong { color: var(--navy); }

.pulsanti { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.75rem 0 .5rem; }
.pulsante {
  display: inline-block; background: var(--navy); color: var(--avorio);
  border: 1px solid var(--navy); border-radius: 2px;
  padding: .8rem 1.35rem; font: inherit; font-weight: 500; font-size: 1rem;
  text-decoration: none; cursor: pointer; line-height: 1.2;
  transition: background-color .15s ease, color .15s ease;
}
.pulsante:hover { background: var(--navy-tenue); }
.pulsante.secondario { background: transparent; color: var(--navy); }
.pulsante.secondario:hover { background: var(--bianco); }
.pulsante.piccolo { padding: .45rem .8rem; font-size: .9rem; }
.collegamento { font-weight: 500; }
.come-collegamento {
  background: none; border: 0; padding: 0; font: inherit; color: var(--navy);
  text-decoration: underline; text-decoration-color: var(--oro); cursor: pointer;
}

/* ── persone e dati ─────────────────────────────────────────────────── */
.persone { margin-top: 2rem; }
.persona { background: var(--bianco); border-top: 1px solid var(--oro); padding: 1rem 1.1rem; margin-bottom: 1rem; }
.nome-persona { color: var(--navy); font-weight: 500; margin: 0; }
.ruolo { margin: 0 0 .25rem; font-size: .95rem; }
.recapiti { margin: .25rem 0 0; }
.dati-societari { background: var(--bianco); padding: 1rem 1.1rem; border-top: 1px solid var(--oro); }
.dati-societari dt { color: var(--navy); font-size: .9rem; margin-top: .6rem; }
.dati-societari dt:first-child { margin-top: 0; }
.dati-societari dd { margin: 0; overflow-wrap: anywhere; }

/* ── moduli ──────────────────────────────────────────────────────────── */
.modulo { margin-top: 1.5rem; }
.campo { margin-bottom: 1.1rem; }
.campo label { display: block; color: var(--navy); margin-bottom: .35rem; }
.facoltativo { font-weight: 400; color: var(--grafite); }
input[type="text"], input[type="email"], input[type="tel"], input[type="password"],
input[type="file"], textarea, select {
  width: 100%; font: inherit; font-size: 1rem; color: var(--grafite);
  background: var(--bianco); border: 1px solid var(--bordo); border-radius: 2px;
  padding: .7rem .8rem;
}
textarea { resize: vertical; }
.campo.spunta { display: grid; grid-template-columns: auto 1fr; gap: .6rem; align-items: start; }
.campo.spunta label { font-weight: 400; color: var(--grafite); margin: 0; }
.campo.spunta input { width: 1.2rem; height: 1.2rem; margin-top: .2rem; accent-color: var(--navy); }
.campo.spunta .errore-campo { grid-column: 1 / -1; }
.con-errore input, .con-errore textarea { border-color: var(--errore); }
.errore-campo { color: var(--errore); font-size: .95rem; margin: .35rem 0 0; }
.aiuto { font-size: .9rem; margin: .35rem 0 0; }
.campo-nascosto { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.avvisi { max-width: var(--misura); }
.avviso { background: var(--bianco); border-left: 2px solid var(--navy); padding: .75rem 1rem; }
.avviso.errore { border-left-color: var(--errore); color: var(--errore); }

/* ── area riservata e amministrazione ───────────────────────────────── */
.barra-riservata, .barra-admin {
  display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center;
  font-size: .95rem; padding-bottom: .75rem; margin-bottom: 1.25rem;
  border-bottom: 1px solid var(--bordo);
}
.barra-riservata form { margin: 0; }
.barra-admin { margin-top: -.5rem; }
.schede { list-style: none; padding: 0 !important; margin: 1rem 0 2rem; }
.schede li { margin: 0 0 .75rem; }
.schede a, .riga-scheda {
  display: block; background: var(--bianco); border-top: 1px solid var(--oro);
  padding: .9rem 1rem; text-decoration: none; color: var(--grafite);
}
.titolo-scheda { display: block; color: var(--navy); font-weight: 500; }
.dettaglio { display: block; font-size: .9rem; margin-top: .2rem; overflow-wrap: anywhere; }
.azioni { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; align-items: center; }
.azioni form { margin: 0; display: flex; gap: .5rem; align-items: center; }
.rimuovi label { font-size: .9rem; display: flex; gap: .3rem; align-items: center; }
.etichetta { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 500; }
.stato-nuova { color: var(--navy); }
.stato-sospeso { color: var(--errore); }
.filtri { font-size: .95rem; }
.filtri a[aria-current] { text-decoration-thickness: 2px; }
.messaggio { white-space: pre-wrap; background: var(--bianco); padding: 1rem; }
.link-invito { font-family: ui-monospace, Menlo, monospace; font-size: .85rem; }
.documenti { list-style: none; padding: 0 !important; }
.documenti a { display: block; background: var(--bianco); border-top: 1px solid var(--oro); padding: .9rem 1rem; text-decoration: none; margin-bottom: .75rem; }

/* ── piede ───────────────────────────────────────────────────────────── */
.piede { background: var(--navy); color: rgba(244, 241, 234, .82); border-top: 1px solid var(--oro); font-size: .875rem; line-height: 1.5; }
.piede-interno { max-width: 68rem; margin: 0 auto; padding: 2.25rem var(--margine) 2.5rem; }
.marchio-piede { display: flex; flex-direction: column; line-height: 1; color: var(--avorio); margin-bottom: 1.25rem; }
.piede a { color: var(--avorio); }
.avvertenza { border-top: 1px solid var(--navy-tenue); margin-top: 1.25rem; padding-top: 1.25rem; font-size: .8125rem; }
.avvertenza p { margin: 0; }

@media (min-width: 48rem) {
  body { font-size: 1.125rem; }
  h1 { font-size: 2.25rem; }
  .home .apertura h1 { font-size: 2.75rem; }
  main.pagina { padding-top: 4rem; }
  .wordmark { font-size: 1.3rem; }
  .descrittore { font-size: calc(1.3rem * .36); }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}
