/* ============================================================
   Stile comune ai tre marchi (vedi DESIGN.md, versione 3).
   Riferimento: candidate-flow.de. Linee morbide, pulsanti a pillola, sfumature tenui, ombre leggere.
   L'unico colore che cambia da un marchio all'altro è --brand (marchio.json): le tinte chiare si ricavano da lì.
   ============================================================ */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/Inter-latin.woff2) format('woff2'); }

:root {
  --brand: #DC5540; --brand-scuro: #BF3F2C; --su-brand: #FFFFFF;
  --tinta: #FBEAE6; --tinta-2: #F6D5CE; --brand-chiaro: #EE9484;
  --cielo: #E9EEF5; --cielo-2: #F2F5F9; --nebbia: #F5F6F8;
  --bianco: #FFFFFF; --inchiostro: #1F2328; --testo-2: #555C66; --testo-3: #626973;
  --linea: rgba(31, 35, 40, .09); --linea-forte: rgba(31, 35, 40, .18);
  --ok: #1F7A4D; --ok-tinta: #E2F3E9; --errore: #B3261E;
  --r-s: 10px; --r: 16px; --r-l: 24px; --r-xl: 32px;
  --ombra: 0 2px 12px rgba(0, 0, 0, .06); --ombra-alta: 0 16px 48px rgba(31, 35, 40, .10);
  --f: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --largo: 1200px; --margine: 20px; --sez: 64px; --testa: 64px;
  --molla: cubic-bezier(.22, 1, .36, 1);
}
@supports (color: color-mix(in srgb, red, white)) {
  :root {
    --tinta: color-mix(in srgb, var(--brand) 11%, white);
    --tinta-2: color-mix(in srgb, var(--brand) 24%, white);
    --brand-chiaro: color-mix(in srgb, var(--brand) 62%, white);
  }
}
@media (min-width: 900px) { :root { --margine: 40px; --sez: 112px; --testa: 72px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--testa) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; background: var(--bianco); color: var(--inchiostro); font: 400 17px/1.55 var(--f); font-optical-sizing: auto; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
main { flex: 1 0 auto; }
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote, fieldset { margin: 0; padding: 0; }
:where(ul, ol)[role="list"] { list-style: none; }
fieldset { border: 0; min-width: 0; }
img, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: var(--linea-forte); }
a:hover { text-decoration-color: currentColor; }
button { font: inherit; color: inherit; }
strong { font-weight: 600; }
:focus-visible { outline: 2px solid var(--inchiostro); outline-offset: 3px; border-radius: 6px; }
.piede :focus-visible, .banda :focus-visible { outline-color: #fff; }
[hidden] { display: none !important; }

.largo { width: 100%; max-width: calc(var(--largo) + 2 * var(--margine)); margin-inline: auto; padding-inline: var(--margine); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.salta { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--inchiostro); color: #fff; padding: 10px 16px; border-radius: 999px; }
.salta:focus { top: 12px; }
.icona { width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Tipografia ---------- */
.t1, .t2, .t3, .t-guida, .t-capitolo, .vf__domanda { font-weight: 600; text-wrap: balance; }
.t1 { font-size: clamp(36px, 4.6vw, 62px); line-height: 1.04; letter-spacing: -0.038em; }
.t2 { font-size: clamp(29px, 3.3vw, 46px); line-height: 1.08; letter-spacing: -0.034em; }
.t3 { font-size: clamp(19px, 1.5vw, 22px); line-height: 1.25; letter-spacing: -0.018em; }
.etichetta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-2); }
.etichetta .spia { display: none; }
.spia { display: inline-block; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--brand); }
.anim .spia--viva { animation: spia 1.8s ease-in-out infinite; }
@keyframes spia { 50% { opacity: .3; } }
.numero, .dato__valore, .problema__valore, .mestiere__primo dd, .g-dati__v, .caso__numero { background: linear-gradient(100deg, var(--brand), var(--brand-scuro)); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.fonte { margin-top: 28px; font-size: 12.5px; line-height: 1.5; color: var(--testo-3); }
.nota-sez { margin-top: 28px; font-size: 16px; color: var(--testo-2); }
.frase { margin-top: 48px; font-size: clamp(22px, 2.2vw, 30px); font-weight: 600; line-height: 1.2; letter-spacing: -0.025em; max-width: 28ch; }
.collegamento { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; font-weight: 600; font-size: 16px; text-decoration: none; }
.collegamento .icona { width: 18px; height: 18px; transition: transform .25s var(--molla); }
.collegamento:hover .icona { transform: translateX(4px); }
.pillola { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; background: rgba(255, 255, 255, .7); border: 1px solid var(--linea); font-size: 13.5px; font-weight: 500; line-height: 1.3; }

/* ---------- Pulsanti ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 26px; border: 1px solid transparent; border-radius: 999px; font: 600 16px/1.1 var(--f); letter-spacing: -0.01em; text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .2s var(--molla); }
.btn--primario { background: var(--inchiostro); color: #fff; }
.btn--primario:hover { background: #000; box-shadow: 0 6px 20px rgba(31, 35, 40, .22); }
.btn--secondario, .btn--su-notte { background: rgba(255, 255, 255, .6); border-color: var(--linea-forte); color: var(--inchiostro); }
.btn--secondario:hover, .btn--su-notte:hover { background: #fff; border-color: var(--inchiostro); }
.btn--testo { background: none; padding-inline: 8px; min-height: 44px; font-weight: 500; color: var(--testo-2); }
.btn--testo:hover { color: var(--inchiostro); }
.btn--piccolo { min-height: 44px; padding: 0 20px; font-size: 15px; }
.btn--pieno { width: 100%; }
.btn__freccia { width: 18px; height: 18px; transition: transform .25s var(--molla); }
.btn:hover .btn__freccia { transform: translateX(3px); }
.btn.in-corso { opacity: .7; pointer-events: none; }
.nota-cta { margin-top: 14px; font-size: 13.5px; color: var(--testo-2); }
.comelink { background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; font: inherit; color: inherit; }

/* ---------- Testata ---------- */
.testa { position: sticky; top: 0; z-index: 50; background: rgba(233, 238, 245, .82); -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px); }
.testa__dentro { display: flex; align-items: center; gap: 24px; height: var(--testa); }
.logo { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; }
.logo__spia { width: 10px; height: 10px; border-radius: 50%; background: var(--brand); }
.logo__testo { font-size: 19px; font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
.logo__testo span { font-weight: 500; color: var(--testo-2); }
.testa__menu { display: none; align-items: center; gap: 6px; margin-left: 20px; font-size: 15px; font-weight: 500; }
.testa__menu a, .tendina summary { padding: 9px 14px; border-radius: 999px; text-decoration: none; transition: background-color .2s; }
.testa__menu a:hover, .tendina summary:hover, .testa__menu a[aria-current="page"] { background: rgba(31, 35, 40, .06); }
.testa__azioni { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.testa__wa { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 44px; padding: 0 12px; border-radius: 999px; font-size: 15px; font-weight: 600; text-decoration: none; }
.testa__wa span { display: none; }
.testa__cta { display: none; }
.testa__apri { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: rgba(255, 255, 255, .7); border: 1px solid var(--linea); border-radius: 50%; cursor: pointer; }
@media (min-width: 700px) { .testa__cta { display: inline-flex; } }
@media (min-width: 1040px) {
  .testa__menu { display: flex; }
  .testa__apri { display: none; }
  .testa__wa { padding: 0 18px; background: var(--tinta-2); }
  .testa__wa:hover { background: var(--brand-chiaro); }
  .testa__wa span { display: inline; }
}
.tendina { position: relative; }
.tendina summary { display: flex; align-items: center; gap: 4px; cursor: pointer; list-style: none; }
.tendina summary::-webkit-details-marker { display: none; }
.tendina summary .icona { width: 16px; height: 16px; transition: transform .2s; }
.tendina[open] summary .icona { transform: rotate(180deg); }
.tendina__lista { position: absolute; top: calc(100% + 12px); left: -8px; z-index: 60; width: 560px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 8px; padding: 12px; background: #fff; border: 1px solid var(--linea); border-radius: var(--r-l); box-shadow: var(--ombra-alta); }
.tendina__lista a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; }
.tendina__lista a .icona { width: 38px; height: 38px; padding: 9px; border-radius: 12px; background: var(--nebbia); }
.tendina__lista a:hover { background: var(--nebbia); }
.tendina__lista a:hover .icona { background: #fff; }
.pannello { background: #fff; border-radius: 0 0 var(--r-l) var(--r-l); box-shadow: var(--ombra-alta); max-height: calc(100dvh - var(--testa)); overflow-y: auto; }
.pannello__dentro { display: flex; flex-direction: column; padding-block: 8px 24px; }
.pannello a { padding: 15px 0; border-bottom: 1px solid var(--linea); font-size: 21px; font-weight: 600; letter-spacing: -0.02em; text-decoration: none; }
.pannello__gruppo { padding-top: 18px; font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-3); }
.pannello a.pannello__figlio { padding: 12px 0; font-size: 17px; font-weight: 500; letter-spacing: 0; }
.pannello a.pannello__wa { display: flex; align-items: center; gap: 10px; border-bottom: 0; font-size: 17px; font-weight: 500; letter-spacing: 0; }
@media (min-width: 1040px) { .pannello { display: none !important; } }

/* ---------- Sezioni e intestazioni ---------- */
.sez { padding-block: var(--sez); }
.sez + .sez { padding-top: 0; }
.testata { margin-bottom: clamp(28px, 4vw, 56px); }
.testata .etichetta { margin-bottom: 16px; }
.testata__testo { margin-top: 16px; font-size: clamp(17px, 1.45vw, 20px); line-height: 1.5; max-width: 56ch; color: var(--testo-2); }
@media (min-width: 900px) {
  .testata--due { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 64px; align-items: end; }
  .testata--due .testata__testo { margin-top: 0; color: var(--inchiostro); }
}

/* ---------- Apertura ---------- */
.apertura { margin-top: calc(-1 * var(--testa)); padding-block: calc(var(--testa) + 36px) 48px; background: linear-gradient(180deg, var(--cielo) 0%, var(--tinta) 72%, #fff 100%); }
.apertura__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px; align-items: center; }
.apertura__etichetta { margin-bottom: 20px; }
.apertura__sotto { margin-top: 20px; font-size: clamp(18px, 1.6vw, 21px); line-height: 1.45; max-width: 36ch; }
.apertura__azioni { display: flex; flex-direction: column; gap: 10px; margin-top: 30px; }
.sigillo { display: flex; align-items: center; gap: 10px; margin-top: 20px; font-size: 15px; color: var(--testo-2); }
@media (min-width: 560px) { .apertura__azioni { flex-direction: row; flex-wrap: wrap; } }
@media (min-width: 960px) {
  .apertura { padding-block: calc(var(--testa) + 72px) 88px; }
  .apertura__griglia { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 72px; }
  .apertura__prova { justify-self: end; width: 100%; max-width: 480px; }
}

/* ---------- Avanzamento (i 30 giorni) ---------- */
.righello { --p: 0%; }
.r__barra { height: 8px; border-radius: 999px; background: var(--nebbia); overflow: hidden; }
.r__pieno { display: block; width: var(--p); height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--brand-chiaro), var(--brand)); }
.anim.pronto .righello .r__pieno { width: 0; transition: width 1.2s var(--molla) .2s; }
.anim.pronto .righello.visto .r__pieno { width: var(--p); }
.r__segni, .r__numeri { display: flex; justify-content: space-between; gap: 16px; font-size: 13.5px; font-weight: 600; }
.r__segni { margin-bottom: 12px; }
.r__numeri { margin-top: 10px; font-weight: 500; color: var(--testo-2); }
.righello--grande .r__barra { height: 14px; background: rgba(255, 255, 255, .75); }

/* ---------- Schede ---------- */
.scheda { background: #fff; border: 1px solid var(--linea); border-radius: var(--r); color: var(--inchiostro); }
.scheda__testa { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px 0; font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-3); }
.scheda__testa .icona { width: 20px; height: 20px; color: var(--inchiostro); }
.scheda__codice { min-width: 0; }
.scheda__stato, .scheda__lato { flex: none; white-space: nowrap; display: inline-flex; align-items: center; gap: 7px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--testo-2); }
.scheda__corpo { padding: 14px 20px 20px; }
.scheda__alto { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 12px; margin-bottom: 16px; }
.scheda__alto > div { flex: 1 1 150px; min-width: 0; }
.scheda__titolo { font-size: clamp(21px, 1.9vw, 25px); font-weight: 600; line-height: 1.15; letter-spacing: -0.025em; }
.scheda__titolo--p { font-size: 18px; line-height: 1.3; letter-spacing: -0.015em; }
.scheda__dettagli { margin-top: 5px; font-size: 14px; color: var(--testo-2); }
.scheda__esito { margin-top: 16px; }
.scheda__esito .stato { white-space: normal; }
.scheda__titolo--p + .verifiche, .scheda__titolo--p + .righe { margin-top: 10px; }
.scheda--mostra { border: 0; border-radius: var(--r-l); box-shadow: var(--ombra-alta); }
.scheda--mostra .scheda__testa { padding: 20px 22px 0; }
.scheda--mostra .scheda__corpo { padding: 14px 22px 22px; }
.contatori { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 16px; }
.contatori > div { display: flex; flex-direction: column-reverse; padding: 12px 14px; border-radius: 12px; background: var(--nebbia); }
.contatori dd { font-size: 24px; font-weight: 600; line-height: 1.1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.contatori dt { margin-top: 3px; font-size: 13px; color: var(--testo-2); }
@media (max-width: 359px) { .contatori > div { min-width: 0; padding: 10px 8px; } .contatori dt { font-size: 12px; overflow-wrap: anywhere; hyphens: auto; } }
.righe { margin-top: 14px; }
.riga { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid var(--linea); }
.riga__sigla { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--tinta-2); font-size: 11.5px; font-weight: 600; }
.riga:nth-child(3n+2) .riga__sigla { background: var(--cielo); }
.riga:nth-child(3n) .riga__sigla { background: var(--nebbia); }
.riga__chi strong { display: block; font-size: 14.5px; line-height: 1.25; }
.riga__chi small { display: block; font-size: 13px; line-height: 1.3; color: var(--testo-2); }
.stato { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; background: var(--nebbia); font-size: 12.5px; font-weight: 600; line-height: 1.2; white-space: nowrap; }
.stato--ok { background: var(--ok-tinta); color: var(--ok); }
.stato--viva, .stato--brand { background: var(--tinta-2); }
.verifiche li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--linea); font-size: 16px; line-height: 1.35; }
.verifiche li:first-child { border-top: 0; }
.verifiche .icona { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--ok-tinta); color: var(--ok); stroke-width: 2.4; }
.cal { width: 100%; border-collapse: separate; border-spacing: 4px; table-layout: fixed; }
.cal th { font-size: 12px; font-weight: 500; color: var(--testo-2); padding: 0 4px 4px; text-align: center; }
.cal tbody th { width: 46px; padding: 0 6px 0 0; text-align: right; }
.cal td { height: 30px; border-radius: 8px; background: var(--nebbia); }
.cal .cal__preso { background: linear-gradient(100deg, var(--brand-chiaro), var(--brand)); }

/* ---------- Fatti ---------- */
.fatti { padding-block: 8px 0; }
.fatti__lista { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.fatti__lista li { display: flex; align-items: center; gap: 12px; font-size: 14.5px; font-weight: 500; line-height: 1.3; }
.fatti__lista .icona { width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: var(--cielo-2); }
@media (min-width: 900px) { .fatti__lista { grid-template-columns: repeat(4, auto); justify-content: space-between; } .fatti__lista li { font-size: 15.5px; } }

/* ---------- Mercato ---------- */
.dati { display: grid; gap: 12px; }
.dato { padding: 24px; border-radius: var(--r-l); background: var(--cielo-2); }
.dato:first-child { background: var(--tinta); }
.dato__codice { display: none; }
.dato__valore { font-size: clamp(48px, 5vw, 68px); font-weight: 600; line-height: 1; letter-spacing: -0.045em; font-variant-numeric: tabular-nums; }
.dato__testo { margin-top: 12px; font-size: 16.5px; line-height: 1.45; max-width: 32ch; }
@media (min-width: 900px) { .dati { grid-template-columns: repeat(3, 1fr); gap: 20px; } .dato { padding: 32px; } }

/* ---------- Garanzia ---------- */
.garanzia__pannello { padding: 28px 20px; border-radius: var(--r-xl); background: linear-gradient(160deg, var(--tinta) 0%, var(--tinta-2) 100%); }
.garanzia__testa { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.garanzia__testa .testata { margin-bottom: 20px; }
.garanzia__testa .testata--due { display: block; }
.garanzia__testa .testata__testo { margin-top: 16px; max-width: 58ch; color: var(--inchiostro); }
.garanzia__linea { margin-block: 28px 32px; }
.garanzia__dopo { display: flex; justify-content: flex-end; margin-top: 14px; }
.garanzia__punti { display: grid; gap: 12px; }
.garanzia__punti li { padding: 22px; border-radius: var(--r); background: rgba(255, 255, 255, .86); }
.garanzia__n, .pm__n, .prossimi__n, .spiega__n, .capitolo__n { display: grid; place-items: center; width: 30px; height: 30px; margin-bottom: 14px; border-radius: 50%; background: var(--tinta-2); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.garanzia__punti p:last-child { margin-top: 8px; font-size: 16px; line-height: 1.5; color: var(--testo-2); }
@media (min-width: 900px) {
  .garanzia__pannello { padding: 64px; }
  .garanzia__testa { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 32px; }
  .garanzia__testa .testata { flex: 1; margin-bottom: 0; }
  .garanzia__linea { margin-block: 48px 48px; }
  .garanzia__punti { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .garanzia__punti li { padding: 28px; }
}

/* ---------- Metodo ---------- */
.passi-metodo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.pm { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 20px; border-radius: var(--r-xl); background: var(--cielo-2); }
.pm:nth-child(even) { background: var(--tinta); }
.pm__testo { padding: 8px 4px 0; }
.pm__n { background: #fff; }
.pm__testo p:last-child { margin-top: 10px; max-width: 44ch; color: var(--testo-2); }
@media (min-width: 900px) {
  .passi-metodo { gap: 20px; }
  .pm { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; padding: 48px 56px; align-items: center; }
  .pm__testo { padding: 0; }
  .pm__testo .t3 { font-size: 30px; line-height: 1.12; letter-spacing: -0.03em; }
  .pm__testo p:last-child { margin-top: 14px; font-size: 18px; }
  .pm__scheda { max-width: 440px; width: 100%; justify-self: end; }
}

/* ---------- Invito a metà pagina ---------- */
.banda__dentro { display: grid; gap: 24px; padding: 32px 24px; border-radius: var(--r-xl); background: var(--inchiostro); color: #fff; }
.banda__testo { margin-top: 14px; max-width: 50ch; font-size: 17px; color: rgba(255, 255, 255, .72); }
.banda .btn--primario { background: #fff; color: var(--inchiostro); }
.banda .btn--primario:hover { background: var(--tinta); box-shadow: none; }
.banda .nota-cta { color: rgba(255, 255, 255, .6); }
@media (min-width: 900px) { .banda__dentro { grid-template-columns: 1fr auto; align-items: center; gap: 56px; padding: 56px 64px; } }

/* ---------- Settori ---------- */
.settori { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.settore { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; height: 100%; padding: 14px; border-radius: 14px; background: var(--nebbia); font-size: 14.5px; font-weight: 500; line-height: 1.2; text-decoration: none; transition: background-color .2s, box-shadow .2s; min-width: 0; }
.settore__nome { min-width: 0; overflow-wrap: anywhere; hyphens: auto; }
.settore__icona { display: grid; place-items: center; width: 36px; height: 36px; flex: none; border-radius: 10px; background: #fff; }
.settore__icona .icona { width: 20px; height: 20px; }
.settore__freccia { display: none; margin-left: auto; width: 18px; height: 18px; color: var(--testo-3); transition: transform .25s var(--molla); }
a.settore:hover { background: var(--tinta); box-shadow: var(--ombra); }
a.settore:hover .settore__freccia { transform: translateX(3px); color: var(--inchiostro); }
@media (min-width: 560px) { .settori { gap: 12px; } .settore { flex-direction: row; align-items: center; gap: 14px; min-height: 60px; padding: 12px 16px; font-size: 16px; } .settore__freccia { display: block; } .settore__icona { width: 42px; height: 42px; border-radius: 12px; } }
@media (min-width: 900px) { .settori { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1140px) { .settori { grid-template-columns: repeat(4, 1fr); } }

/* ---------- Figure ---------- */
.famiglie { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.famiglia { overflow: hidden; border: 1px solid var(--linea); border-radius: var(--r-l); background: #fff; }
.famiglia__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.famiglia__dentro { padding: 16px 16px 10px; }
.famiglia__nome { font-size: 17px; font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; }
.famiglia__codice { display: none; }
.famiglia__figure { margin-top: 10px; }
.famiglia__figure li { padding: 8px 0; border-top: 1px solid var(--linea); font-size: 14px; line-height: 1.3; color: var(--testo-2); }
.famiglia__figure a { color: var(--inchiostro); font-weight: 500; }
@media (min-width: 640px) { .famiglie { gap: 20px; } .famiglia__dentro { padding: 22px 22px 14px; } .famiglia__nome { font-size: 20px; } .famiglia__figure li { padding: 9px 0; font-size: 15.5px; } }
@media (min-width: 1040px) { .famiglie { grid-template-columns: repeat(4, 1fr); } }

/* ---------- Confronto ---------- */
.confronto__riga { padding: 18px 0; border-top: 1px solid var(--linea); }
.confronto__riga--testa { display: none; }
.confronto__nome { display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 600; line-height: 1.25; letter-spacing: -0.015em; }
.confronto__nome .spia { display: none; }
.confronto__segno { display: none; margin-left: auto; width: 20px; height: 20px; color: var(--testo-3); transition: transform .25s var(--molla); }
.confronto__riga [data-colonna] { margin-top: 12px; font-size: 16px; line-height: 1.45; }
.confronto__riga [data-colonna]::before { content: attr(data-colonna); display: block; margin-bottom: 2px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-3); }
.confronto__riga--noi { margin-top: 12px; padding: 20px; border-top: 0; border-radius: var(--r); background: var(--tinta); }
.confronto__apri { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 28px; padding: 0; background: none; border: 0; text-align: left; font: inherit; letter-spacing: inherit; color: inherit; cursor: pointer; }
@media (max-width: 899px) {
  .confronto--tocco .confronto__segno { display: block; }
  .confronto--tocco .confronto__riga:not(.aperta) [data-colonna] { display: none; }
  .confronto--tocco .confronto__riga.aperta .confronto__segno { transform: rotate(180deg); }
}
@media (min-width: 900px) {
  .confronto__riga { display: grid; grid-template-columns: 1.05fr 1.35fr 1.2fr 1.4fr; gap: 32px; align-items: start; }
  .confronto__riga--testa { display: grid; padding: 0 0 12px; border-top: 0; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-3); }
  .confronto__riga [data-colonna] { margin-top: 0; }
  .confronto__riga [data-colonna]::before { display: none; }
  .confronto__riga--noi { padding: 22px 24px; margin-inline: -24px; }
}

/* ---------- Chi siamo ---------- */
.chi { display: grid; gap: 28px; }
.chi__persona { display: flex; align-items: flex-end; gap: 16px; }
.chi__foto { width: 120px; flex: none; }
.chi__foto img { width: 100%; border-radius: var(--r-l); filter: grayscale(1); }
.chi__nome strong { display: block; font-size: 17px; letter-spacing: -0.015em; }
.chi__nome span { display: block; font-size: 14px; color: var(--testo-2); }
.chi__testo > p { margin-top: 16px; max-width: 60ch; color: var(--testo-2); }
.chi__testo > p:first-of-type { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.45; color: var(--inchiostro); }
.chi__testo .testata { margin-bottom: 8px; }
.regole { display: grid; gap: 12px; margin-top: 28px; }
.regole li { display: flex; gap: 14px; padding: 18px; border-radius: var(--r); background: var(--nebbia); }
.regole .icona { width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: #fff; }
.regole__t { font-size: 16.5px; font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; }
.regole p { margin-top: 4px; font-size: 15px; color: var(--testo-2); }
.sedi { display: grid; gap: 0; margin-top: 20px; }
.sedi > div { padding: 14px 0; border-top: 1px solid var(--linea); }
.sedi dt { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-3); margin-bottom: 4px; }
.sedi dd { font-size: 16px; }
@media (min-width: 640px) { .regole, .sedi { grid-template-columns: 1fr 1fr; gap: 12px 32px; } .sedi { gap: 0 32px; } .sedi--larghe { grid-template-columns: 1fr; } }
@media (min-width: 900px) { .chi { grid-template-columns: 300px minmax(0, 1fr); gap: 80px; } .chi__persona { display: block; } .chi__foto { width: auto; } .chi__nome { margin-top: 14px; } }
.regole-grandi { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.regola { padding: 24px; border-radius: var(--r-l); background: var(--cielo-2); }
.regola:nth-child(even) { background: var(--tinta); }
.regola__icona { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 20px; border-radius: 50%; background: #fff; }
.regola__icona .icona { width: 20px; height: 20px; }
.regola p { margin-top: 8px; font-size: 16px; color: var(--testo-2); max-width: 44ch; }
@media (min-width: 900px) { .regola { padding: 32px; } }

/* ---------- Prossimi passi ---------- */
.prossimi { display: grid; gap: 12px; }
.prossimi li { padding: 24px; border-radius: var(--r-l); background: var(--nebbia); }
.prossimi__n { background: #fff; }
.prossimi .t3 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.prossimi__durata { padding: 4px 11px; border-radius: 999px; background: var(--tinta-2); font-size: 12.5px; font-weight: 600; line-height: 1.3; letter-spacing: 0; }
.prossimi li > p:last-child { margin-top: 8px; font-size: 16px; max-width: 36ch; color: var(--testo-2); }
.prossimi__azione { margin-top: 28px; }
@media (min-width: 900px) { .prossimi { grid-template-columns: repeat(3, 1fr); gap: 20px; } .prossimi li { padding: 32px; } .prossimi__azione { margin-top: 40px; } }

/* ---------- Domande ---------- */
.domande { display: grid; gap: 8px; }
.domanda { border-top: 1px solid var(--linea); }
.domanda:last-child { border-bottom: 1px solid var(--linea); }
.domanda summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0; font-size: 18px; font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; cursor: pointer; list-style: none; }
.domanda summary::-webkit-details-marker { display: none; }
.domanda__segno { position: relative; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--nebbia); transition: background-color .2s; }
.domanda__segno::before, .domanda__segno::after { content: ''; position: absolute; left: 10px; top: 15px; width: 12px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .25s var(--molla); }
.domanda__segno::after { transform: rotate(90deg); }
.domanda[open] .domanda__segno { background: var(--tinta-2); }
.domanda[open] .domanda__segno::after { transform: rotate(0); }
.domanda__corpo { padding: 0 48px 22px 0; font-size: 16.5px; max-width: 64ch; color: var(--testo-2); }
@media (min-width: 900px) { .domande { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 80px; } .domande .testata { position: sticky; top: calc(var(--testa) + 32px); align-self: start; } }

/* ---------- Chiusura ---------- */
.chiusura__dentro { display: flex; flex-direction: column; align-items: center; text-align: center; }
.chiusura__dentro { padding: 48px 24px; border-radius: var(--r-xl); background: linear-gradient(180deg, var(--cielo) 0%, var(--tinta) 100%); }
.chiusura .t1 { font-size: clamp(30px, 3.8vw, 52px); max-width: 18ch; }
.chiusura__testo { margin-top: 18px; font-size: clamp(17px, 1.5vw, 20px); max-width: 44ch; color: var(--testo-2); }
.chiusura__azione { margin-top: 28px; }
@media (min-width: 900px) { .chiusura__dentro { padding: 96px 64px; } }

/* ---------- Pagine interne ---------- */
.intestazione { margin-top: calc(-1 * var(--testa)); padding-block: calc(var(--testa) + 40px) 48px; background: linear-gradient(180deg, var(--cielo) 0%, var(--tinta) 78%, #fff 100%); }
.intestazione + .sez { padding-top: 24px; }
.intestazione__etichetta { margin-bottom: 20px; }
.intestazione__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px; align-items: center; }
.intestazione__visivo { min-width: 0; }
.intestazione__foto { position: relative; }
.intestazione__foto img { width: 100%; background: var(--cielo-2); aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-xl); box-shadow: var(--ombra-alta); }
.intestazione__sigillo { position: absolute; left: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: rgba(255, 255, 255, .94); box-shadow: var(--ombra); font-size: 14px; font-weight: 600; line-height: 1.3; }
.intestazione__sigillo .icona { width: 18px; height: 18px; }
@media (min-width: 960px) {
  .intestazione--due .intestazione__griglia { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 72px; }
  .intestazione__visivo { justify-self: end; width: 100%; max-width: 500px; }
}
.intestazione .t1 { max-width: 20ch; }
.intestazione__sotto { margin-top: 22px; font-size: clamp(18px, 1.7vw, 22px); line-height: 1.45; max-width: 44ch; }
.intestazione__testo { margin-top: 16px; max-width: 64ch; color: var(--testo-2); }
.intestazione__azione { margin-top: 30px; }
@media (min-width: 900px) { .intestazione { padding-block: calc(var(--testa) + 80px) 80px; } .intestazione + .sez { padding-top: 40px; } }
.sez--testo { padding-top: 24px; }
.prosa { max-width: 68ch; }
.prosa > * + * { margin-top: 18px; }
.prosa ul { padding-left: 22px; }
.bozza { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--tinta-2); font-size: 13px; font-weight: 600; }
.aggiornamento { padding-block: 0 40px; font-size: 13px; line-height: 1.6; color: var(--testo-3); }
.aggiornamento .largo > p { padding-top: 16px; border-top: 1px solid var(--linea); }
.aggiornamento ul { margin-top: 8px; }

/* ---------- Pagina settore: problema, mercato, posizioni, approfondimenti ---------- */
.problemi { display: grid; gap: 12px; }
.problema { padding: 26px 22px; border-radius: var(--r-l); background: var(--tinta); }
.problema:nth-child(even) { background: var(--cielo); }
.problema__etichetta { font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-2); }
.problema__valore { margin-top: 18px; font-size: clamp(52px, 5.4vw, 72px); font-weight: 600; line-height: 1; letter-spacing: -0.045em; font-variant-numeric: tabular-nums; }
.problema__cosa { margin-top: 10px; max-width: 34ch; font-size: 14px; line-height: 1.45; color: var(--testo-2); }
.problema .t3 { margin-top: 24px; }
.problema__punti { margin-top: 12px; display: grid; gap: 10px; }
.problema__punti li { position: relative; padding-left: 18px; font-size: 16.5px; line-height: 1.45; }
.problema__punti li::before { content: ''; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--inchiostro); }
@media (min-width: 900px) { .problemi { grid-template-columns: 1fr 1fr; gap: 20px; } .problema { padding: 40px; } }
.mestieri { display: grid; gap: 28px; }
.mestieri__testo > p { margin-top: 16px; max-width: 56ch; color: var(--testo-2); }
.mestieri__testo .testata { margin-bottom: 8px; }
.mestieri__schede { display: grid; gap: 12px; align-content: start; }
.mestiere { border-radius: var(--r-l); }
.mestiere__dati { margin-top: 14px; }
.mestiere__dati > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid var(--linea); }
.mestiere__dati dt { font-size: 14px; line-height: 1.35; color: var(--testo-2); }
.mestiere__dati dd { font-size: 16px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.mestiere__dati dd small { display: block; font-weight: 400; font-size: 13px; color: var(--testo-2); white-space: normal; }
.mestiere__dati .mestiere__primo { align-items: flex-end; padding-block: 4px 12px; border-top: 0; }
.mestiere__dati .mestiere__primo dd { font-size: 40px; line-height: 1; letter-spacing: -0.04em; }
@media (min-width: 900px) { .mestieri { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 72px; } .mestieri__schede { grid-template-columns: 1fr 1fr; gap: 16px; } }
.posizioni { display: grid; gap: 32px; }
.posizioni__testo > p { margin-top: 16px; max-width: 56ch; color: var(--testo-2); }
.posizioni__testo .testata { margin-bottom: 8px; }
.posizioni__verifiche { margin-top: 24px; border: 0; border-radius: var(--r-l); background: var(--nebbia); }
.posizioni__t { padding-bottom: 12px; font-size: 12.5px; font-weight: 600; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-2); }
.posizioni__voci { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.posizioni__voci li { padding: 11px 0; border-top: 1px solid var(--linea); font-size: 15px; line-height: 1.3; }
@media (min-width: 900px) { .posizioni { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 72px; } .posizioni__voci { gap: 0 32px; } .posizioni__voci li { font-size: 16.5px; } }
.vicini__guide { display: grid; gap: 12px; margin-bottom: 32px; }
.vicini__guida { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; align-items: center; padding: 20px; text-decoration: none; }
.vicini__guida .scheda__codice { grid-column: 1 / -1; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-3); }
.vicini__guida strong { font-size: 17px; line-height: 1.3; }
.vicini__guida:hover { box-shadow: var(--ombra); }
.vicini__t { margin-bottom: 12px; font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-2); }
@media (min-width: 900px) { .vicini__guide { grid-template-columns: repeat(3, 1fr); } }

/* ---------- Spiegazione: definizioni, impegni, condizioni, chi fa cosa ---------- */
.spiega { display: grid; gap: 28px; }
.spiega__testo > p { margin-top: 16px; max-width: 60ch; color: var(--testo-2); }
.spiega__testo .testata { margin-bottom: 8px; }
.spiega__testo .spiega__definizione { padding: 22px 24px; border-radius: var(--r-l); background: var(--tinta); font-size: clamp(19px, 1.8vw, 23px); line-height: 1.4; letter-spacing: -0.015em; color: var(--inchiostro); }
.spiega--solo .spiega__testo { max-width: 860px; }
.spiega__punti { display: grid; gap: 12px; align-content: start; }
.spiega__punti li { padding: 22px 24px; border-radius: var(--r-l); background: var(--nebbia); }
.spiega__n { background: #fff; }
.spiega__punti li > p:last-child { margin-top: 6px; font-size: 16px; color: var(--testo-2); max-width: 48ch; }
.spiega__punti--cielo li { background: var(--cielo-2); }
.spiega__punti--tinta li { background: var(--tinta); }
.spiega--griglia { display: block; }
.spiega__altro { margin-bottom: 28px; max-width: 60ch; color: var(--testo-2); }
.spiega__colonne { display: grid; gap: 12px; align-content: start; }
.colonna { padding: 24px; border-radius: var(--r-l); background: var(--nebbia); }
.colonna--noi { background: var(--tinta); }
.colonna .t3 { margin-bottom: 8px; }
.colonna .verifiche li { align-items: flex-start; }
.colonna .verifiche .icona { flex: none; margin-top: 1px; }
.colonna--noi .verifiche .icona { background: #fff; }
@media (min-width: 900px) {
  .spiega:not(.spiega--solo):not(.spiega--griglia) { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 72px; }
  .spiega--griglia .spiega__punti { grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .spiega--griglia .spiega__punti li { padding: 32px; }
  .colonna { padding: 32px; }
  .spiega__testo { position: sticky; top: calc(var(--testa) + 32px); align-self: start; }
  .spiega--solo .spiega__testo { position: static; }
  .spiega__colonne { grid-template-columns: 1fr 1fr; gap: 16px; }
}

/* ---------- Verifica: pagina e pannello ---------- */
.verifica-pagina { margin-top: calc(-1 * var(--testa)); padding-top: calc(var(--testa) + 40px); background: linear-gradient(180deg, var(--cielo) 0%, var(--tinta) 60%, #fff 100%); }
.verifica-pagina__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: start; }
.verifica-pagina .etichetta { margin-bottom: 16px; }
.verifica-pagina__testo { margin-top: 18px; font-size: clamp(17px, 1.6vw, 20px); max-width: 40ch; color: var(--testo-2); }
.scheda--modulo { border: 0; border-radius: var(--r-l); box-shadow: var(--ombra-alta); }
.scheda--modulo .vf { padding: 24px 20px 26px; }
.scheda--tally { padding-bottom: 12px; }
.tally { display: block; width: 100%; min-height: 420px; margin-top: 8px; padding-inline: 20px; border: 0; }
.tally__senza { padding: 20px; }
@media (min-width: 960px) { .verifica-pagina { padding-top: calc(var(--testa) + 80px); } .verifica-pagina__griglia { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 72px; } .scheda--modulo .vf { padding: 36px; } }

.vf__testa { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.vf__conta { font-size: 13px; font-weight: 600; color: var(--testo-2); }
.vf__avanzamento { display: flex; gap: 5px; }
.vf__avanzamento i { width: 26px; height: 6px; border-radius: 999px; background: var(--nebbia); box-shadow: inset 0 0 0 1px var(--linea); }
.vf__avanzamento i.on { background: linear-gradient(90deg, var(--brand-chiaro), var(--brand)); box-shadow: none; }
.vf__passo + .vf__passo { margin-top: 32px; }
.vf--passi .vf__passo { display: none; margin-top: 0; }
.vf--passi .vf__passo.attivo { display: block; }
.anim .vf--passi .vf__passo.attivo { animation: passo .35s var(--molla); }
@keyframes passo { from { opacity: 0; transform: translateY(8px); } }
.vf__domanda { display: block; font-size: clamp(25px, 2.8vw, 32px); line-height: 1.1; letter-spacing: -0.03em; padding: 0; outline: none; }
.vf__aiuto { margin-top: 8px; font-size: 15px; color: var(--testo-2); }
.vf__grande { display: block; width: 100%; height: 60px; margin-top: 20px; padding: 0 18px; background: #fff; border: 1px solid var(--linea-forte); border-radius: 14px; font: 400 19px var(--f); color: var(--inchiostro); transition: border-color .2s, box-shadow .2s; }
.vf__grande::placeholder, .campo input::placeholder { color: #9AA1AB; }
.vf__scelte { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.vf__scelta { position: relative; display: block; cursor: pointer; }
.vf__scelta input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.vf__scelta span { display: flex; align-items: center; min-height: 58px; padding: 10px 18px; background: #fff; border: 1px solid var(--linea-forte); border-radius: 14px; font-size: 16.5px; font-weight: 500; line-height: 1.25; transition: background-color .15s, color .15s, border-color .15s; }
.vf__scelta:hover span { border-color: var(--inchiostro); }
.vf__scelta input:checked + span { background: var(--inchiostro); border-color: var(--inchiostro); color: #fff; }
.vf__scelta input:focus-visible + span { outline: 2px solid var(--inchiostro); outline-offset: 3px; }
.vf__campi { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 20px; }
.vf--unico { padding: 24px 20px 26px; }
.vf--unico .vf__campi { margin-top: 0; }
.campo { min-width: 0; }
.campo--pieno { grid-column: 1 / -1; }
.campo label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 500; }
.facoltativo { font-weight: 400; color: var(--testo-2); }
.campo input:not([type="checkbox"]) { display: block; width: 100%; height: 52px; padding: 0 14px; background: #fff; border: 1px solid var(--linea-forte); border-radius: 12px; font: 400 16.5px var(--f); color: var(--inchiostro); transition: border-color .2s, box-shadow .2s; }
.campo input:focus, .vf__grande:focus { outline: none; border-color: var(--inchiostro); box-shadow: 0 0 0 3px rgba(31, 35, 40, .12); }
.campo input[aria-invalid="true"], .vf__grande[aria-invalid="true"] { border-color: var(--errore); box-shadow: 0 0 0 3px rgba(179, 38, 30, .12); }
.campo__errore { margin-top: 6px; font-size: 14px; line-height: 1.35; color: var(--errore); }
.campo--spunta { display: grid; grid-template-columns: 24px 1fr; gap: 4px 12px; align-items: start; margin-top: 4px; }
.campo--spunta input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--inchiostro); }
.campo--spunta label { margin: 0; font-size: 14.5px; font-weight: 400; line-height: 1.45; }
.campo--spunta .campo__errore { grid-column: 2; margin-top: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.vf__dopo { margin-top: 20px; padding: 16px 18px; border-radius: var(--r); background: var(--nebbia); }
.vf__dopo .etichetta { color: var(--testo-2); }
.vf__dopo ol { margin-top: 10px; display: grid; gap: 8px; }
.vf__dopo li { display: grid; grid-template-columns: 24px 1fr; gap: 10px; font-size: 15px; line-height: 1.4; }
.vf__dopo li span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #fff; font-size: 12px; font-weight: 600; }
.vf__azioni { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 24px; }
.vf__azioni .btn--primario { margin-left: auto; }
.no-js [data-vf-avanti], .no-js [data-vf-indietro], .vf--passi:not(.ultimo) [data-vf-invia], .vf--passi.ultimo [data-vf-avanti] { display: none; }
.vf__garanzia { display: flex; align-items: center; gap: 8px; margin-top: 18px; font-size: 14px; line-height: 1.35; color: var(--testo-2); }
.vf__garanzia .icona { width: 18px; height: 18px; }
.form__errore { margin-top: 16px; padding: 12px 16px; border-radius: 12px; background: #FBEDEC; font-size: 15px; line-height: 1.4; color: #7A1A14; }
.vf__ok { padding: 8px 0; }
.vf__ok-icona { width: 44px; height: 44px; padding: 10px; margin-bottom: 16px; border-radius: 50%; background: var(--ok-tinta); color: var(--ok); stroke-width: 2.2; }
.vf__ok p + p { margin-top: 8px; color: var(--testo-2); }
.vf.fatto > :not(.vf__ok) { display: none; }

.dialogo { width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; background: #fff; color: var(--inchiostro); border: 0; }
.dialogo::backdrop { background: rgba(31, 35, 40, .45); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.dialogo[open] { display: flex; flex-direction: column; }
.dialogo__testa { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 12px 12px 20px; }
.dialogo__titolo { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-2); }
.dialogo__titolo .spia { display: none; }
.dialogo__chiudi { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--nebbia); border: 0; cursor: pointer; }
.dialogo__corpo { flex: 1; overflow-y: auto; padding: 16px 20px 32px; overscroll-behavior: contain; }
@media (min-width: 700px) {
  .dialogo { width: min(600px, calc(100vw - 48px)); height: fit-content; max-height: calc(100dvh - 48px); margin: auto; border-radius: var(--r-xl); box-shadow: var(--ombra-alta); }
  .dialogo__corpo { padding: 12px 36px 36px; }
  .dialogo__testa { padding: 20px 20px 8px 36px; }
}
.anim .dialogo[open] { animation: dialogo .3s var(--molla); }
@keyframes dialogo { from { opacity: 0; transform: translateY(16px) scale(.98); } }

/* ---------- Barra mobile ---------- */
.molo { position: fixed; inset: auto 12px calc(12px + env(safe-area-inset-bottom)) 12px; z-index: 40; display: flex; gap: 8px; padding: 8px; border-radius: 999px; background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px); box-shadow: var(--ombra-alta), 0 0 0 1px var(--linea); transform: translateY(160%); transition: transform .4s var(--molla); }
.molo.su { transform: none; }
.molo__cta { flex: 1; min-width: 0; min-height: 50px; padding: 0 14px; font-size: 15.5px; }
.molo__wa { display: grid; place-items: center; width: 50px; height: 50px; flex: none; border-radius: 50%; background: var(--tinta-2); }
@media (min-width: 900px) { .molo { display: none; } }

/* ---------- Piè di pagina ---------- */
.piede { background: var(--inchiostro); color: #fff; padding-block: 56px calc(104px + env(safe-area-inset-bottom)); font-size: 15px; border-radius: var(--r-xl) var(--r-xl) 0 0; }
.sez + .piede, .aggiornamento + .piede { margin-top: 0; }
.piede a { text-decoration-color: transparent; color: rgba(255, 255, 255, .86); }
.piede a:hover { text-decoration-color: currentColor; color: #fff; }
.piede__alto { display: grid; gap: 32px; }
.piede .logo__testo span { color: rgba(255, 255, 255, .6); }
.piede__claim { margin-top: 12px; color: rgba(255, 255, 255, .6); }
.piede__t { margin-bottom: 12px; font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: rgba(255, 255, 255, .5); }
.piede ul { display: grid; gap: 8px; color: rgba(255, 255, 255, .86); }
.piede__legale { margin-top: 44px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: 12.5px; line-height: 1.7; color: rgba(255, 255, 255, .5); }
.piede__legale a, .piede__legale .comelink { color: rgba(255, 255, 255, .7); }
@media (min-width: 900px) { .piede { padding-bottom: 40px; } .piede__alto { grid-template-columns: 1.4fr repeat(3, auto); justify-content: space-between; gap: 64px; } }

/* ---------- Cookie ---------- */
.cookie { position: fixed; inset: 0; z-index: 90; display: flex; align-items: flex-end; justify-content: center; padding: 12px 12px calc(12px + env(safe-area-inset-bottom)); background: rgba(31, 35, 40, .44); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.cookie__carta { position: relative; width: 100%; max-width: 460px; max-height: calc(100dvh - 24px); overflow-y: auto; overscroll-behavior: contain; padding: 56px 22px 22px; border-radius: var(--r-xl); background: #fff; box-shadow: var(--ombra-alta); outline: 0; }
.anim .cookie:not([hidden]) .cookie__carta { animation: cookie-su .5s var(--molla) both; }
@keyframes cookie-su { from { opacity: 0; transform: translateY(28px); } }
.cookie__senza { position: absolute; top: 8px; right: 14px; min-height: 44px; padding: 0 8px; background: none; border: 0; font: 500 14px/1.2 var(--f); color: var(--testo-2); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linea-forte); cursor: pointer; }
.cookie__senza:hover { color: var(--inchiostro); text-decoration-color: currentColor; }
.cookie__icona { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 16px; border-radius: 50%; background: var(--tinta); }
.cookie__titolo { font-size: 24px; font-weight: 600; line-height: 1.15; letter-spacing: -0.025em; text-wrap: balance; }
.cookie__testo { margin-top: 10px; font-size: 15.5px; line-height: 1.5; color: var(--testo-2); }
.cookie__azioni { display: grid; gap: 6px; margin-top: 22px; }
.cookie__scelte { display: grid; gap: 6px; margin-top: 18px; }
.cookie__voce { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; border-radius: var(--r); background: var(--nebbia); font-size: 14.5px; line-height: 1.35; color: var(--testo-2); cursor: pointer; }
.cookie__voce strong { color: var(--inchiostro); }
.cookie__voce input { -webkit-appearance: none; appearance: none; flex: none; position: relative; width: 44px; height: 26px; margin: 0; border-radius: 999px; background: #8A919B; cursor: pointer; transition: background-color .2s; }
.cookie__voce input::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .25s var(--molla); }
.cookie__voce input:checked { background: var(--inchiostro); }
.cookie__voce input:checked::after { transform: translateX(18px); }
.cookie__voce input:disabled { opacity: .5; cursor: default; }
@media (min-width: 640px) { .cookie { align-items: center; padding: 24px; } .cookie__carta { padding: 60px 32px 28px; } .cookie__titolo { font-size: 26px; } }

/* ---------- Blog: guida per professione ed elenco delle guide ---------- */
.guida__testa { margin-top: calc(-1 * var(--testa)); padding-block: calc(var(--testa) + 36px) 36px; background: linear-gradient(180deg, var(--cielo) 0%, var(--tinta) 80%, #fff 100%); }
.guida__testa .etichetta { margin-bottom: 16px; }
.guida__testa .etichetta a { text-decoration: none; }
.guida__testa .etichetta a:hover { text-decoration: underline; }
.t-guida { font-size: clamp(31px, 4vw, 54px); line-height: 1.06; letter-spacing: -0.036em; max-width: 22ch; }
.guida__meta { margin-top: 18px; font-size: 14px; line-height: 1.6; color: var(--testo-2); }
.guida__meta strong { color: var(--inchiostro); }
.guida__corpo { display: grid; gap: 24px; padding-block: 12px var(--sez); }
.guida__indice { padding: 18px 20px; border-radius: var(--r-l); background: var(--nebbia); }
.guida__indice-t { font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-2); margin-bottom: 8px; }
.guida__indice li a { display: grid; grid-template-columns: 24px 1fr; gap: 8px; padding: 7px 0; font-size: 14.5px; line-height: 1.35; text-decoration: none; color: var(--testo-2); }
.guida__indice li a:hover { color: var(--inchiostro); }
.guida__indice li span { font-size: 12.5px; line-height: 1.6; font-variant-numeric: tabular-nums; color: var(--testo-3); }
.guida__testo { min-width: 0; max-width: 720px; }
.guida__intro p { font-size: clamp(18px, 1.7vw, 21px); line-height: 1.5; letter-spacing: -0.012em; }
.guida__intro p + p { margin-top: 14px; }
.guida__aggiornati { margin-top: 16px; font-size: 13px; color: var(--testo-3); }
.guida__breve { margin-top: 28px; border: 0; border-radius: var(--r-l); background: var(--tinta); }
.guida__breve .scheda__testa { color: var(--testo-2); }
.guida__breve .scheda__testa .spia { display: none; }
.capitolo { margin-top: 56px; scroll-margin-top: calc(var(--testa) + 20px); }
.t-capitolo { font-size: clamp(25px, 2.6vw, 34px); line-height: 1.12; letter-spacing: -0.03em; }
.capitolo > p, .capitolo > .g-lista, .capitolo > .g-tabella, .capitolo > .g-dati, .capitolo > .g-strade, .capitolo > .g-annuncio, .capitolo > .g-nota { margin-top: 18px; }
.g-lista { padding-left: 0; list-style: none; display: grid; gap: 10px; }
.g-lista li { position: relative; padding-left: 20px; line-height: 1.5; }
.g-lista li::before { content: ''; position: absolute; left: 2px; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: var(--inchiostro); }
.g-lista--n { counter-reset: n; }
.g-lista--n li { padding-left: 40px; counter-increment: n; }
.g-lista--n li::before { content: counter(n); top: -.05em; left: 0; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--tinta-2); font-size: 13px; font-weight: 600; }
.g-tabella { overflow-x: auto; border: 1px solid var(--linea); border-radius: var(--r); background: #fff; }
.g-tabella table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.4; }
.g-tabella--larga table { min-width: 560px; }
.g-tabella th, .g-tabella td { padding: 12px 16px; text-align: left; vertical-align: top; border-top: 1px solid var(--linea); font-weight: 400; }
.g-tabella thead th { border-top: 0; background: var(--nebbia); font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--testo-2); white-space: nowrap; }
.g-tabella tbody th { font-weight: 600; }
.g-fonte { margin-top: 10px !important; }
.g-dati { display: grid; gap: 10px; }
.g-dati li { padding: 20px; border-radius: var(--r); background: var(--cielo-2); }
.g-dati li:first-child { background: var(--tinta); }
.g-dati__v { font-size: 40px; font-weight: 600; line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.g-dati__t { margin-top: 8px; font-size: 14.5px; line-height: 1.4; color: var(--testo-2); }
.g-strade { display: grid; gap: 12px; }
.g-strada { border-radius: var(--r-l); }
.g-strada .scheda__corpo > p { margin-top: 8px; font-size: 16.5px; color: var(--testo-2); }
.g-strada__dati { margin-top: 14px; }
.g-strada__dati > div { display: grid; gap: 2px; padding: 9px 0; border-top: 1px solid var(--linea); }
.g-strada__dati dt { font-size: 13px; font-weight: 500; color: var(--testo-3); }
.g-strada__dati dd { font-size: 15px; line-height: 1.4; }
.g-annuncio { border: 0; border-radius: var(--r-l); background: var(--nebbia); }
.g-annuncio .g-lista { margin-top: 12px; font-size: 16px; }
.g-nota { padding: 18px 20px; border-radius: var(--r); background: var(--tinta); font-size: 16.5px; }
.capitolo--fonti { margin-top: 56px; padding-top: 20px; border-top: 1px solid var(--linea); font-size: 14.5px; color: var(--testo-2); }
.guida__fonti-t { margin-bottom: 12px; font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--testo-2); }
@media (min-width: 640px) { .g-dati { grid-template-columns: repeat(3, 1fr); } .g-strada__dati > div { grid-template-columns: 140px 1fr; gap: 16px; } }
@media (min-width: 1000px) {
  .guida__testa { padding-block: calc(var(--testa) + 64px) 56px; }
  .guida__corpo { grid-template-columns: 280px minmax(0, 720px); gap: 80px; padding-top: 24px; }
  .guida__indice { position: sticky; top: calc(var(--testa) + 24px); align-self: start; max-height: calc(100dvh - var(--testa) - 48px); overflow-y: auto; }
  .capitolo { margin-top: 72px; }
}
.elenco-guide { display: grid; gap: 16px; }
.guida-card { display: flex; flex-direction: column; height: 100%; border-radius: var(--r-l); text-decoration: none; transition: box-shadow .25s, transform .25s var(--molla); }
.guida-card:hover { box-shadow: var(--ombra-alta); transform: translateY(-2px); }
.guida-card .scheda__corpo { display: flex; flex-direction: column; flex: 1; gap: 10px; }
.guida-card__testo { font-size: 15.5px; line-height: 1.45; color: var(--testo-2); }
.guida-card__piede { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 14px; font-size: 13px; color: var(--testo-3); }
.guida-card__piede .icona { width: 18px; height: 18px; color: var(--inchiostro); transition: transform .25s var(--molla); }
.guida-card:hover .guida-card__piede .icona { transform: translateX(4px); }
@media (min-width: 760px) { .elenco-guide { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
@media (min-width: 1100px) { .elenco-guide { grid-template-columns: repeat(3, 1fr); } }

/* ---------- Risultati e recensioni (compaiono solo con contenuti veri) ---------- */
.casi, .recensioni { display: grid; gap: 16px; }
.casi .scheda, .recensioni .scheda { border-radius: var(--r-l); }
.caso__numero { font-size: 56px; font-weight: 600; line-height: 1; letter-spacing: -0.045em; }
.caso__citazione, .recensione blockquote { margin-top: 14px; font-size: 16.5px; line-height: 1.5; }
.caso__citazione footer, .recensione__chi { margin-top: 12px; font-size: 14px; color: var(--testo-2); }
@media (min-width: 900px) { .casi, .recensioni { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
