:root {
  --navy: #1A2E4A;
  --teal: #00C9A7;
  --teal-chiaro: #D8F5EE;
  --sfondo: #FFFFFF;
  --superficie: #F0F4FA;
  --superficie-media: #E3EAF5;
  --testo: #1C1E2A;
  --testo-sec: #55637A;
  --bordo: #C9D3E5;
  --bordo-leggero: #E6ECF5;
  --bianco: #FFFFFF;

  --font-intestazione: Georgia, 'Times New Roman', Times, serif;
  --font-corpo: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

  --gap-xs: 0.375rem;
  --gap-s: 0.75rem;
  --gap-m: 1.25rem;
  --gap-l: 2rem;
  --gap-xl: 3.5rem;
  --gap-xxl: 6rem;

  --largh-max: 1200px;
  --largh-testo: 700px;
  --pad-h: 1.5rem;

  --r-s: 4px;
  --r-m: 8px;
  --r-l: 16px;

  --ombra-s: 0 1px 4px rgba(26,46,74,0.08);
  --ombra-m: 0 4px 18px rgba(26,46,74,0.13);

  --trans: 0.2s ease;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-corpo);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--testo);
  background: var(--sfondo);
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--navy); text-decoration: underline; transition: color var(--trans); }
a:hover { color: var(--teal); }
a:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: var(--r-s); }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; }

h1, h2, h3, h4, h5 {
  font-family: var(--font-intestazione);
  line-height: 1.22;
  color: var(--navy);
}
h1 { font-size: clamp(1.85rem, 4vw, 2.8rem); }
h2 { font-size: clamp(1.4rem, 3vw, 2.05rem); }
h3 { font-size: clamp(1.1rem, 2.5vw, 1.4rem); }
h4 { font-size: 1.05rem; }
p { margin-bottom: var(--gap-m); }
p:last-child { margin-bottom: 0; }

.involucro {
  max-width: var(--largh-max);
  margin: 0 auto;
  padding: 0 var(--pad-h);
}
.involucro--stretto {
  max-width: var(--largh-testo);
  margin: 0 auto;
  padding: 0 var(--pad-h);
}

.testatina {
  background: var(--navy);
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.testatina-interno {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem var(--pad-h);
  max-width: var(--largh-max);
  margin: 0 auto;
}
.logo-sito {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  text-decoration: none;
  color: var(--bianco);
  flex-shrink: 0;
}
.logo-sito:hover { color: var(--teal); }
.logo-sito:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: var(--r-s); }
.logo-nome {
  font-family: var(--font-intestazione);
  font-size: 1.25rem;
  font-weight: bold;
  letter-spacing: -0.01em;
}
.nav-principale {
  display: flex;
  align-items: center;
  gap: 0.2rem;
}
.nav-principale a {
  display: inline-block;
  padding: 0.42rem 0.9rem;
  color: rgba(255,255,255,0.8);
  text-decoration: none;
  font-size: 0.9rem;
  border-radius: var(--r-s);
  transition: background var(--trans), color var(--trans);
}
.nav-principale a:hover { background: rgba(255,255,255,0.1); color: var(--bianco); }
.nav-principale a.attiva { background: rgba(0,201,167,0.15); color: var(--teal); }
.nav-principale a:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 1.6rem;
  font-size: 0.92rem;
  font-weight: 600;
  border-radius: var(--r-m);
  text-decoration: none;
  transition: background var(--trans), color var(--trans), border-color var(--trans);
  line-height: 1;
  font-family: var(--font-corpo);
  cursor: pointer;
}
.btn:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }

.btn-primario {
  background: var(--teal);
  color: var(--navy);
  border: 2px solid var(--teal);
}
.btn-primario:hover { background: #00B394; border-color: #00B394; color: var(--navy); }

.btn-fantasma {
  background: transparent;
  color: var(--bianco);
  border: 2px solid rgba(255,255,255,0.55);
}
.btn-fantasma:hover { background: rgba(255,255,255,0.1); color: var(--bianco); border-color: rgba(255,255,255,0.85); }

.btn-secondario {
  background: transparent;
  color: var(--navy);
  border: 2px solid var(--navy);
}
.btn-secondario:hover { background: var(--navy); color: var(--bianco); }

.sezione-apertura {
  background: var(--navy);
  color: var(--bianco);
  padding: var(--gap-xxl) 0;
  overflow: hidden;
}
.apertura-griglia {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--gap-xl);
  align-items: center;
}
.apertura-testo h1 { color: var(--bianco); margin-bottom: var(--gap-m); }
.apertura-testo h1 em { color: var(--teal); font-style: normal; }
.apertura-sottotitolo {
  color: rgba(255,255,255,0.75);
  font-size: 1.1rem;
  margin-bottom: var(--gap-l);
  line-height: 1.75;
}
.apertura-azioni { display: flex; gap: var(--gap-m); flex-wrap: wrap; }
.apertura-figura { display: flex; justify-content: flex-end; align-items: center; }
.apertura-figura img { border-radius: var(--r-l); max-width: 440px; width: 100%; }

.sezione-interna { padding: var(--gap-xl) 0; }
.sezione-interna--sfondo { background: var(--superficie); }
.sezione-interna--bordo { border-top: 1px solid var(--bordo-leggero); }

.etichetta-sezione {
  display: inline-block;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: var(--gap-s);
  font-family: var(--font-corpo);
}
.sezione-intestazione { margin-bottom: var(--gap-l); }
.sezione-intestazione h2 { margin-bottom: var(--gap-s); }
.sezione-intestazione p { color: var(--testo-sec); max-width: 62ch; }

.griglia-doppia {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gap-xl);
  align-items: center;
}
.griglia-doppia--inv .col-figura { order: -1; }
.col-testo h2 { margin-bottom: var(--gap-m); }
.col-testo p { color: var(--testo-sec); }
.col-testo .btn { margin-top: var(--gap-m); }
.col-figura {
  display: flex;
  justify-content: center;
  align-items: center;
}
.col-figura img { border-radius: var(--r-l); width: 100%; max-width: 480px; }

.griglia-tre {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-l);
}
.scheda-punto {
  background: var(--bianco);
  border: 1px solid var(--bordo-leggero);
  border-radius: var(--r-l);
  padding: var(--gap-l);
  box-shadow: var(--ombra-s);
}
.punto-numero {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  background: var(--teal-chiaro);
  color: var(--navy);
  font-weight: 700;
  font-size: 0.9rem;
  border-radius: 50%;
  margin-bottom: var(--gap-m);
  font-family: var(--font-intestazione);
}
.scheda-punto h3 { margin-bottom: var(--gap-s); font-size: 1.05rem; }
.scheda-punto p { color: var(--testo-sec); font-size: 0.92rem; margin: 0; }

.griglia-esplora {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-m);
  margin-top: var(--gap-l);
}
.scheda-esplora {
  display: block;
  background: var(--bianco);
  border: 1px solid var(--bordo);
  border-radius: var(--r-l);
  padding: var(--gap-l);
  text-decoration: none;
  color: var(--testo);
  transition: border-color var(--trans), box-shadow var(--trans);
}
.scheda-esplora:hover { border-color: var(--teal); box-shadow: var(--ombra-m); color: var(--testo); }
.scheda-esplora:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; border-radius: var(--r-l); }
.scheda-esplora h3 { font-size: 1.05rem; margin-bottom: var(--gap-s); color: var(--navy); }
.scheda-esplora p { font-size: 0.9rem; color: var(--testo-sec); margin: 0; }
.scheda-esplora .link-interno { display: block; margin-top: var(--gap-m); color: var(--teal); font-weight: 600; font-size: 0.88rem; text-decoration: none; }

.testata-pagina {
  background: var(--superficie);
  border-bottom: 1px solid var(--bordo);
  padding: var(--gap-xl) 0 var(--gap-l);
}
.testata-pagina h1 { margin-bottom: var(--gap-m); }
.testata-pagina .descrizione-pagina {
  color: var(--testo-sec);
  font-size: 1.05rem;
  max-width: 66ch;
  line-height: 1.75;
}

.sezione-faq { padding: var(--gap-xl) 0; }
.faq-lista { display: flex; flex-direction: column; gap: var(--gap-m); margin-top: var(--gap-l); }
.faq-voce {
  background: var(--bianco);
  border: 1px solid var(--bordo-leggero);
  border-radius: var(--r-m);
  padding: var(--gap-l);
  box-shadow: var(--ombra-s);
}
.faq-domanda {
  font-family: var(--font-intestazione);
  font-size: 1.05rem;
  color: var(--navy);
  font-weight: bold;
  margin-bottom: var(--gap-s);
}
.faq-risposta { color: var(--testo-sec); line-height: 1.75; margin: 0; }

.cap-lista { display: flex; flex-direction: column; gap: var(--gap-xl); margin-top: var(--gap-l); }
.cap-voce {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gap-xl);
  align-items: center;
}
.cap-voce--inv .cap-figura { order: -1; }
.cap-figura {
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--superficie);
  border-radius: var(--r-l);
  padding: var(--gap-l);
  min-height: 200px;
}
.cap-figura img { max-width: 100%; border-radius: var(--r-m); }
.cap-testo h3 { font-size: 1.3rem; margin-bottom: var(--gap-m); }
.cap-testo p { color: var(--testo-sec); }

.griglia-fasi {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--gap-m);
  margin-top: var(--gap-l);
}
.fase-item {
  background: var(--bianco);
  border: 1px solid var(--bordo-leggero);
  border-radius: var(--r-m);
  padding: var(--gap-l);
}
.fase-num {
  font-family: var(--font-intestazione);
  font-size: 2.2rem;
  font-weight: bold;
  color: var(--bordo);
  line-height: 1;
  margin-bottom: var(--gap-s);
}
.fase-item h4 { color: var(--navy); margin-bottom: var(--gap-xs); font-size: 0.95rem; }
.fase-item p { color: var(--testo-sec); font-size: 0.88rem; margin: 0; }

.pannello-cta {
  background: var(--navy);
  color: var(--bianco);
  padding: var(--gap-xl) 0;
  text-align: center;
}
.pannello-cta h2 { color: var(--bianco); margin-bottom: var(--gap-m); }
.pannello-cta p { color: rgba(255,255,255,0.72); margin-bottom: var(--gap-l); max-width: 55ch; margin-left: auto; margin-right: auto; }
.pannello-cta-azioni { display: flex; gap: var(--gap-m); justify-content: center; flex-wrap: wrap; }

.layout-contatto {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: var(--gap-xl);
  align-items: start;
  margin-top: var(--gap-l);
}
.modulo-contatto { display: flex; flex-direction: column; gap: var(--gap-m); }
.campo-gruppo { display: flex; flex-direction: column; gap: var(--gap-xs); }
.campo-etichetta { font-size: 0.88rem; font-weight: 600; color: var(--navy); }
.campo-etichetta .obbligatorio { color: #C0392B; margin-left: 2px; }
.campo-input,
.campo-textarea,
.campo-select {
  border: 1.5px solid var(--bordo);
  border-radius: var(--r-m);
  padding: 0.65rem 0.9rem;
  font-size: 0.95rem;
  color: var(--testo);
  background: var(--bianco);
  transition: border-color var(--trans), box-shadow var(--trans);
  width: 100%;
  appearance: none;
}
.campo-input:focus,
.campo-textarea:focus,
.campo-select:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-chiaro);
}
.campo-textarea { resize: vertical; min-height: 130px; }
.nota-modulo { font-size: 0.82rem; color: var(--testo-sec); margin: 0; }

.btn-invia {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--navy);
  color: var(--bianco);
  border: 2px solid var(--navy);
  padding: 0.85rem 2.2rem;
  font-size: 1rem;
  font-weight: 600;
  border-radius: var(--r-m);
  cursor: pointer;
  font-family: var(--font-corpo);
  transition: background var(--trans), border-color var(--trans), color var(--trans);
  align-self: flex-start;
}
.btn-invia:hover { background: var(--teal); border-color: var(--teal); color: var(--navy); }
.btn-invia:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }

.blocco-info {
  background: var(--superficie);
  border-radius: var(--r-l);
  padding: var(--gap-l);
  border: 1px solid var(--bordo);
}
.blocco-info h3 { font-size: 1rem; margin-bottom: var(--gap-m); color: var(--navy); }
.info-riga { display: flex; gap: var(--gap-s); margin-bottom: var(--gap-m); align-items: flex-start; }
.info-riga:last-child { margin-bottom: 0; }
.info-label { font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--testo-sec); min-width: 80px; padding-top: 2px; }
.info-val { font-size: 0.92rem; color: var(--testo); line-height: 1.55; }
.info-val a { color: var(--navy); }
.info-val a:hover { color: var(--teal); }

.passo-lista { display: flex; flex-direction: column; gap: var(--gap-m); margin-top: var(--gap-m); }
.passo-voce { display: flex; gap: var(--gap-m); align-items: flex-start; }
.passo-n {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  background: var(--teal);
  color: var(--navy);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.82rem;
  font-family: var(--font-intestazione);
}
.passo-contenuto h4 { font-size: 0.95rem; margin-bottom: var(--gap-xs); color: var(--navy); }
.passo-contenuto p { font-size: 0.88rem; color: var(--testo-sec); margin: 0; }

.processo-breve-titolo { font-size: 1rem; margin-bottom: var(--gap-m); color: var(--navy); }
.processo-breve-blocco { margin-top: 1.5rem; }
.sidebar-lista-secondaria { margin-top: 1.5rem; border-top: 1px solid var(--bordo-leggero); padding-top: 1rem; }

.layout-legale {
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: var(--gap-xl);
  align-items: start;
  padding: var(--gap-xl) 0;
}
.sidebar-legale {
  position: sticky;
  top: 5rem;
  background: var(--superficie);
  border-radius: var(--r-m);
  padding: var(--gap-m);
  border: 1px solid var(--bordo);
}
.sidebar-legale h4 {
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--testo-sec);
  margin-bottom: var(--gap-m);
  font-family: var(--font-corpo);
}
.sidebar-legale ul { display: flex; flex-direction: column; gap: var(--gap-xs); }
.sidebar-legale a {
  display: block;
  font-size: 0.88rem;
  color: var(--testo-sec);
  text-decoration: none;
  padding: 0.3rem 0.5rem;
  border-radius: var(--r-s);
  transition: background var(--trans), color var(--trans);
}
.sidebar-legale a:hover { background: var(--bordo-leggero); color: var(--navy); }
.sidebar-legale a:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }

.corpo-legale h2 { font-size: 1.55rem; margin-bottom: var(--gap-l); }
.corpo-legale h3 { font-size: 1.05rem; margin: var(--gap-l) 0 var(--gap-s); color: var(--navy); }
.corpo-legale p { color: var(--testo-sec); line-height: 1.8; margin-bottom: var(--gap-m); }
.corpo-legale ul { margin-bottom: var(--gap-m); display: flex; flex-direction: column; gap: var(--gap-s); padding-left: var(--gap-m); }
.corpo-legale ul li { color: var(--testo-sec); font-size: 0.95rem; position: relative; list-style: disc; }
.nota-riquadro {
  font-size: 0.88rem;
  color: var(--testo-sec);
  background: var(--superficie);
  border-radius: var(--r-m);
  padding: var(--gap-m);
  border-left: 3px solid var(--teal);
  margin: var(--gap-l) 0;
  line-height: 1.7;
}
.link-nav-legale { margin-top: var(--gap-xl); display: flex; flex-wrap: wrap; gap: var(--gap-m); padding-top: var(--gap-l); border-top: 1px solid var(--bordo-leggero); }
.link-nav-legale a { font-size: 0.88rem; }

.pie-pagina {
  background: var(--navy);
  color: rgba(255,255,255,0.68);
  padding: var(--gap-xl) 0 var(--gap-l);
}
.pie-griglia {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1.3fr;
  gap: var(--gap-xl);
  margin-bottom: var(--gap-xl);
}
.pie-brand .logo-pie {
  font-family: var(--font-intestazione);
  font-size: 1.2rem;
  color: var(--bianco);
  font-weight: bold;
  display: block;
  text-decoration: none;
  margin-bottom: var(--gap-m);
}
.pie-brand .logo-pie:hover { color: var(--teal); }
.pie-brand p { font-size: 0.87rem; line-height: 1.75; }
.pie-col h4 {
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.42);
  margin-bottom: var(--gap-m);
  font-family: var(--font-corpo);
}
.pie-col ul { display: flex; flex-direction: column; gap: 0.55rem; }
.pie-col a {
  font-size: 0.87rem;
  color: rgba(255,255,255,0.68);
  text-decoration: none;
  transition: color var(--trans);
}
.pie-col a:hover { color: var(--teal); }
.pie-col a:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.pie-fondo {
  border-top: 1px solid rgba(255,255,255,0.09);
  padding-top: var(--gap-m);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gap-s);
}
.pie-copyright { font-size: 0.82rem; }
.pie-legali { display: flex; gap: var(--gap-m); }
.pie-legali a { font-size: 0.82rem; color: rgba(255,255,255,0.45); text-decoration: none; }
.pie-legali a:hover { color: var(--teal); }

@media (max-width: 1024px) {
  :root { --pad-h: 1.25rem; }
  .apertura-griglia { grid-template-columns: 1fr; }
  .apertura-figura { display: none; }
  .griglia-doppia { grid-template-columns: 1fr; gap: var(--gap-l); }
  .griglia-doppia--inv .col-figura { order: 0; }
  .griglia-tre { grid-template-columns: 1fr 1fr; }
  .griglia-esplora { grid-template-columns: 1fr 1fr; }
  .griglia-fasi { grid-template-columns: 1fr 1fr; }
  .cap-voce { grid-template-columns: 1fr; }
  .cap-voce--inv .cap-figura { order: 0; }
  .layout-contatto { grid-template-columns: 1fr; }
  .layout-legale { grid-template-columns: 1fr; }
  .sidebar-legale { position: static; }
  .pie-griglia { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  :root {
    --pad-h: 1rem;
    --gap-xl: 2.5rem;
    --gap-xxl: 4rem;
  }
  .testatina-interno { flex-wrap: wrap; gap: var(--gap-s); }
  .nav-principale { flex-wrap: wrap; gap: 0.1rem; }
  .nav-principale a { font-size: 0.82rem; padding: 0.3rem 0.6rem; }
  .griglia-tre { grid-template-columns: 1fr; }
  .griglia-esplora { grid-template-columns: 1fr; }
  .griglia-fasi { grid-template-columns: 1fr; }
  .pie-griglia { grid-template-columns: 1fr; gap: var(--gap-l); }
  .pie-fondo { flex-direction: column; align-items: flex-start; }
  .apertura-azioni { flex-direction: column; align-items: flex-start; }
  .pannello-cta-azioni { flex-direction: column; align-items: center; }
  .btn-invia { align-self: stretch; }
}
