/* Pagina di presentazione di NettoBoard (29 settembre 2026).
   Chi apre il sito senza una licenza su questo dispositivo vede questa pagina; chi ce l'ha (o apre
   l'app installata, o arriva con #accedi) va dritto all'app. Lo decide /avvio.js prima di disegnare.
   Solo tema chiaro, come le copertine: e' una pagina di vendita, non l'app. */

html.nb-vetrina, html.nb-vetrina body { overflow: auto; height: auto; overscroll-behavior: auto; background: #F3F5F1; color-scheme: light; }
/* 27 ottobre 2026: scorre la finestra, non il corpo. Con overflow:auto anche sul corpo, il corpo diventava una scatola
   che scorre per conto suo e niente restava agganciato in alto (ne' la barra ne' la scena del netto). */
html.nb-vetrina body { overflow: visible; }
#nb-presentazione [id] { scroll-margin-top: 80px; }
html.nb-app #nb-presentazione { display: none; }
html:not(.nb-app) #caricamento { display: none; }
/* 28 ottobre 2026: mentre /avvio.js porta al nuovo indirizzo non si disegna niente, cosi' non lampeggia la pagina sbagliata. */
html.nb-in-viaggio body { visibility: hidden; }

#nb-presentazione {
  --v-teal: #123A34; --v-teal-2: #1E5C51; --v-gold: #C9973E; --v-gold-text: #8A6420;
  --v-bg: #F3F5F1; --v-card: #FFFFFF; --v-ink: #14201C; --v-muted: #56655F; --v-line: #E2E7E1; --v-tint: #EAF0EA;
  color: var(--v-ink); background: var(--v-bg); font-size: 18px; line-height: 1.55;
}
#nb-presentazione a { color: inherit; }
#nb-presentazione *, #nb-presentazione *::before, #nb-presentazione *::after { box-sizing: border-box; }
#nb-presentazione img { max-width: 100%; height: auto; display: block; }
.v-contenuto { max-width: 1180px; margin: 0 auto; padding: 0 28px; }

/* barra in alto */
.v-barra { position: sticky; top: 0; z-index: 5; background: rgba(243,245,241,.92); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid transparent; }
.v-barra .v-contenuto { display: flex; align-items: center; gap: 20px; height: 72px; }
.v-logo { display: flex; align-items: center; gap: 12px; font-weight: 750; font-size: 21px; letter-spacing: -0.3px; text-decoration: none; color: var(--v-teal) !important; }
.v-logo img { width: 38px; height: 38px; border-radius: 9px; box-shadow: 0 2px 8px rgba(18,58,52,.18); }
.v-menu { display: flex; gap: 26px; margin-left: 18px; font-size: 15.5px; }
.v-menu a { text-decoration: none; color: var(--v-muted) !important; font-weight: 500; }
.v-menu a:hover { color: var(--v-ink) !important; }
.v-azioni { margin-left: auto; display: flex; gap: 10px; align-items: center; }

.v-bottone { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 20px; border-radius: 12px; font: inherit; font-size: 16px; font-weight: 650; text-decoration: none; cursor: pointer; border: 1px solid transparent; white-space: nowrap; }
.v-primario { background: var(--v-teal); color: #fff !important; }
.v-primario:hover { background: var(--v-teal-2); }
.v-oro { background: var(--v-gold); color: #1A1407 !important; }
.v-oro:hover { background: #D6A54C; }
.v-secondario { background: transparent; color: var(--v-teal) !important; border-color: #C9D3CC; }
.v-secondario:hover { background: #fff; }
.v-grande { min-height: 54px; padding: 14px 26px; font-size: 18px; border-radius: 14px; }
.v-bottone:focus-visible, .v-menu a:focus-visible, .v-logo:focus-visible { outline: 3px solid var(--v-gold); outline-offset: 3px; }

/* apertura: testo sul chiaro, schermate sul verde (come la copertina A3) */
.v-eroe { position: relative; overflow: hidden; }
.v-eroe::after { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 44%; background: radial-gradient(900px 700px at 70% 10%, #1E5C51 0%, #123A34 60%, #0C2824 100%); z-index: 0; }
.v-eroe .v-contenuto { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; min-height: 620px; padding-top: 56px; padding-bottom: 72px; }
.v-eroe h1 { font-size: 56px; line-height: 1.06; letter-spacing: -1.8px; font-weight: 780; margin: 0; }
/* oro un filo piu' scuro sul fondo chiaro: il dorato pieno non si leggeva abbastanza (contrasto 2,3:1, servono 3:1) */
.v-eroe h1 em { font-style: normal; color: #A97A2C; }
.v-riga-oro { width: 84px; height: 6px; border-radius: 3px; background: var(--v-gold); margin: 30px 0 26px; }
.v-eroe .v-sotto { font-size: 21px; color: var(--v-muted); margin: 0 0 30px; max-width: 520px; }
.v-eroe .v-cta { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.v-prezzo-breve { font-size: 15px; color: var(--v-muted); margin-top: 16px; }
.v-scena { position: relative; min-height: 460px; }
.v-finestra { border-radius: 14px; overflow: hidden; background: #fff; box-shadow: 0 30px 80px rgba(0,0,0,.35), 0 3px 10px rgba(0,0,0,.18); }
.v-finestra .v-punti { height: 26px; background: #E9EDE8; display: flex; align-items: center; gap: 7px; padding: 0 12px; }
.v-finestra .v-punti i { width: 9px; height: 9px; border-radius: 50%; background: #CBD3CC; display: block; }
.v-scena .v-finestra { position: absolute; left: 70px; top: 10px; width: 760px; }
.v-telefono { border-radius: 38px; padding: 9px; background: #0E1512; box-shadow: 0 28px 70px rgba(0,0,0,.4); }
.v-telefono img { border-radius: 30px; }
.v-scena .v-telefono { position: absolute; left: -10px; top: 150px; width: 210px; }

/* sezioni */
.v-sezione { padding: 96px 0; }
.v-sezione.v-chiara { background: #fff; }
.v-occhiello { font-size: 14px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--v-gold-text); margin-bottom: 12px; }
.v-sezione h2 { font-size: 40px; line-height: 1.12; letter-spacing: -1.1px; font-weight: 760; margin: 0 0 18px; max-width: 820px; }
.v-sezione .v-intro { font-size: 20px; color: var(--v-muted); max-width: 760px; margin: 0; }
.v-riquadro { background: var(--v-card); border: 1px solid var(--v-line); border-radius: 18px; padding: 24px 24px 22px; }
.v-sezione.v-chiara .v-riquadro { background: var(--v-bg); border-color: transparent; }
.v-riquadro .v-numero { font-size: 34px; font-weight: 780; letter-spacing: -1px; color: var(--v-teal); }
.v-riquadro h3 { font-size: 19px; margin: 6px 0 6px; font-weight: 700; letter-spacing: -0.2px; }
.v-riquadro p { margin: 0; font-size: 16.5px; color: var(--v-muted); }
.v-passi { counter-reset: passo; margin-top: 40px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.v-passi .v-riquadro::before { counter-increment: passo; content: counter(passo); display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--v-teal); color: #fff; font-weight: 700; font-size: 17px; margin-bottom: 10px; }

.v-funzione { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; margin-top: 72px; }
.v-funzione:first-of-type { margin-top: 48px; }
.v-funzione.v-rovescia { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.v-funzione.v-rovescia .v-testo { order: 2; }
.v-funzione h3 { font-size: 30px; line-height: 1.15; letter-spacing: -0.7px; margin: 0 0 14px; font-weight: 760; }
.v-funzione p { color: var(--v-muted); margin: 0 0 12px; }
.v-funzione ul { margin: 12px 0 0; padding: 0; list-style: none; }
.v-funzione li { padding-left: 26px; position: relative; margin: 8px 0; font-size: 17px; }
.v-funzione li::before { content: ""; position: absolute; left: 2px; top: 10px; width: 10px; height: 10px; border-radius: 3px; background: var(--v-gold); }
.v-coppia-telefoni { display: flex; gap: 22px; justify-content: center; }
.v-coppia-telefoni .v-telefono { width: 250px; }
.v-foglio { max-width: 420px; margin: 0 auto; border-radius: 8px; overflow: hidden; box-shadow: 0 24px 60px rgba(18,58,52,.22); border: 1px solid var(--v-line); }

.v-elenco-piccolo { margin-top: 44px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }

/* fascia verde: dati e privacy */
.v-verde { background: radial-gradient(1100px 800px at 80% 0%, #1E5C51 0%, #123A34 58%, #0C2824 100%); color: #fff; }
.v-verde h2 { color: #fff; }
.v-verde .v-intro, .v-verde p { color: rgba(255,255,255,.82); }
.v-verde .v-occhiello { color: #E3B876; }
.v-verde .v-riquadro { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); }
.v-verde .v-riquadro h3 { color: #fff; }
.v-verde .v-riquadro p { color: rgba(255,255,255,.78); }

/* prezzi */
.v-prezzi { margin-top: 40px; display: grid; grid-template-columns: repeat(2, minmax(0, 360px)); gap: 20px; }
.v-piano { background: #fff; border: 1px solid var(--v-line); border-radius: 20px; padding: 28px; position: relative; }
.v-piano.v-consigliato { border: 2px solid var(--v-teal); }
.v-etichetta { position: absolute; top: -13px; left: 24px; background: var(--v-gold); color: #1A1407; font-size: 13px; font-weight: 700; padding: 4px 12px; border-radius: 999px; }
.v-piano h3 { margin: 0; font-size: 18px; font-weight: 650; color: var(--v-muted); }
.v-cifra { font-size: 46px; font-weight: 790; letter-spacing: -1.5px; margin: 8px 0 2px; }
.v-cifra small { font-size: 18px; font-weight: 600; color: var(--v-muted); letter-spacing: 0; }
.v-totale { font-size: 15px; color: var(--v-muted); margin: 0 0 12px; }
.v-piano p { margin: 0 0 20px; color: var(--v-muted); font-size: 16px; }
.v-piano .v-bottone { width: 100%; }
.v-garanzie { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 10px 28px; color: var(--v-muted); font-size: 16px; }
.v-garanzie span::before { content: "✓"; color: var(--v-teal); font-weight: 800; margin-right: 8px; }
/* garanzie sul pagamento, sotto i prezzi (5 ottobre 2026): chi non conosce Gumroad deve sapere prima
   chi incassa, cosa riceve e come esce. */
.v-fiducia { margin-top: 30px; display: grid; grid-template-columns: repeat(2, minmax(0, 360px)); gap: 16px 20px; }
.v-fiducia-voce { display: flex; gap: 12px; align-items: flex-start; background: var(--v-card); border: 1px solid var(--v-line); border-radius: 16px; padding: 18px 18px 16px; }
.v-fiducia-voce strong { display: block; font-size: 16.5px; font-weight: 700; letter-spacing: -0.1px; }
.v-fiducia-voce p { margin: 4px 0 0; font-size: 15px; line-height: 1.45; color: var(--v-muted); }
.v-icona { flex: none; width: 24px; height: 24px; margin-top: 1px; fill: none; stroke: var(--v-teal); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.v-nota-valuta { margin: 14px 0 0; font-size: 14.5px; color: var(--v-muted); }

/* domande */
.v-domande { margin-top: 36px; max-width: 860px; }
.v-domande details { border-bottom: 1px solid var(--v-line); padding: 4px 0; }
.v-domande summary { cursor: pointer; list-style: none; font-weight: 650; font-size: 18.5px; padding: 18px 40px 18px 0; position: relative; }
.v-domande summary::-webkit-details-marker { display: none; }
.v-domande summary::after { content: "+"; position: absolute; right: 6px; top: 12px; font-size: 28px; font-weight: 400; color: var(--v-teal); }
.v-domande details[open] summary::after { content: "−"; }
.v-domande details p { margin: 0 0 20px; color: var(--v-muted); }
.v-non-fa { margin-top: 36px; background: var(--v-tint); border-radius: 16px; padding: 22px 26px; max-width: 860px; }
.v-non-fa strong { display: block; margin-bottom: 4px; }
.v-non-fa p { margin: 0; color: var(--v-muted); }

/* chiusura e piede */
.v-chiusura { text-align: center; }
.v-chiusura h2 { margin-left: auto; margin-right: auto; }
.v-chiusura .v-cta { justify-content: center; display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.v-piede { background: #0C2824; color: rgba(255,255,255,.7); font-size: 15px; padding: 36px 0 44px; }
.v-piede .v-contenuto { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; }
.v-piede a { color: rgba(255,255,255,.86) !important; }
.v-piede .v-logo { color: #fff !important; font-size: 18px; }
.v-piede .v-logo img { width: 30px; height: 30px; }
.v-piede .v-link { display: flex; gap: 22px; margin-left: auto; flex-wrap: wrap; }
.v-piede .v-link a { display: inline-flex; align-items: center; min-height: 44px; }

/* sito su piu' pagine (8 ottobre 2026): testata delle pagine interne, indice, rimandi, menu del telefono */
.v-menu a[aria-current="page"] { color: var(--v-teal) !important; font-weight: 650; box-shadow: inset 0 -2px 0 var(--v-gold); }
.v-pagina-testa { padding: 64px 0 56px; }
.v-pagina-testa h1 { font-size: 48px; line-height: 1.08; letter-spacing: -1.5px; font-weight: 780; margin: 0 0 18px; max-width: 860px; }
.v-pagina-testa .v-intro { font-size: 20px; color: var(--v-muted); max-width: 760px; margin: 0; }
.v-pagina-testa .v-intro a, .v-rimando a, .v-domande a { color: var(--v-teal) !important; font-weight: 600; }
.v-indice { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.v-indice a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--v-line); text-decoration: none; font-size: 16px; font-weight: 600; color: var(--v-teal) !important; }
.v-sezione-stretta { padding: 72px 0; scroll-margin-top: 72px; }
.v-titolo-gruppo { font-size: 30px !important; }
.v-rimando { margin: 24px 0 0; font-size: 17px; }
.v-rimando a { display: inline-flex; align-items: center; min-height: 44px; }
.v-rimando a::after { content: " \2192"; }
.v-verde .v-rimando a { color: #E3B876 !important; }
.v-passi-quattro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.v-cta-sinistra { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.v-menu-tel { display: none; position: relative; }
.v-logo img { flex: none; }
.v-menu-tel nav a.v-menu-accedi { display: none; border-top: 1px solid var(--v-line); border-radius: 0 0 10px 10px; color: var(--v-teal) !important; font-weight: 700; }
.v-menu-tel summary { list-style: none; cursor: pointer; width: 44px; height: 44px; border-radius: 12px; border: 1px solid #C9D3CC; display: flex; align-items: center; justify-content: center; }
.v-menu-tel summary::-webkit-details-marker { display: none; }
.v-menu-tel summary span, .v-menu-tel summary span::before, .v-menu-tel summary span::after { display: block; width: 18px; height: 2px; border-radius: 2px; background: var(--v-teal); position: relative; content: ""; }
.v-menu-tel summary span::before { position: absolute; top: -6px; }
.v-menu-tel summary span::after { position: absolute; top: 6px; }
.v-menu-tel[open] summary { background: #fff; }
.v-menu-tel nav { position: absolute; right: 0; top: 52px; min-width: 220px; background: #fff; border: 1px solid var(--v-line); border-radius: 16px; box-shadow: 0 18px 50px rgba(18,58,52,.18); padding: 8px; display: flex; flex-direction: column; }
.v-menu-tel nav a { display: flex; align-items: center; min-height: 46px; padding: 0 14px; border-radius: 10px; text-decoration: none; font-size: 17px; font-weight: 550; color: var(--v-ink) !important; }
.v-menu-tel nav a[aria-current="page"] { background: var(--v-tint); color: var(--v-teal) !important; font-weight: 700; }
.v-menu-tel summary:focus-visible, .v-indice a:focus-visible, .v-menu-tel nav a:focus-visible { outline: 3px solid var(--v-gold); outline-offset: 2px; }

/* tablet e telefono */
@media (max-width: 980px) {
  .v-menu { display: none; }
  .v-menu-tel { display: block; }
  .v-pagina-testa { padding: 44px 0 40px; }
  .v-pagina-testa h1 { font-size: 38px; letter-spacing: -1px; }
  .v-sezione-stretta { padding: 56px 0; }
  .v-passi-quattro { grid-template-columns: 1fr 1fr; }
  .v-eroe::after { display: none; }
  .v-eroe .v-contenuto { grid-template-columns: 1fr; min-height: 0; padding-top: 36px; padding-bottom: 0; gap: 36px; }
  .v-eroe h1 { font-size: 42px; letter-spacing: -1.2px; }
  .v-scena { min-height: 0; margin: 0 -28px; padding: 36px 28px 40px; background: radial-gradient(700px 500px at 70% 0%, #1E5C51 0%, #123A34 60%, #0C2824 100%); display: flex; justify-content: center; gap: 18px; }
  .v-scena .v-finestra { display: none; }
  .v-scena .v-telefono { position: static; width: 240px; }
  .v-sezione { padding: 64px 0; }
  .v-sezione h2 { font-size: 32px; }
  .v-passi, .v-elenco-piccolo { grid-template-columns: 1fr; }
  .v-funzione, .v-funzione.v-rovescia { grid-template-columns: 1fr; gap: 26px; margin-top: 56px; }
  .v-funzione.v-rovescia .v-testo { order: 0; }
  .v-prezzi { grid-template-columns: 1fr; }
  .v-fiducia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  #nb-presentazione { font-size: 17px; }
  .v-contenuto { padding: 0 18px; }
  .v-barra .v-contenuto { height: 64px; gap: 10px; }
  .v-logo span { display: none; }
  .v-azioni .v-bottone { padding: 8px 14px; font-size: 15px; min-height: 40px; }
  .v-eroe h1 { font-size: 35px; }
  .v-eroe .v-sotto { font-size: 18.5px; }
  /* 26 ottobre 2026, proposta B scelta da Alessandro: sul telefono il prodotto si vede nel primo schermo,
     in una fascia verde subito sotto il titolo (parte alta del telefono), poi frase, pulsanti e prezzo. */
  .v-eroe .v-contenuto { display: flex; flex-direction: column; gap: 0; padding-top: 24px; padding-bottom: 28px; }
  .v-eroe .v-contenuto > div:first-child { display: contents; }
  .v-eroe h1 { order: 1; }
  .v-eroe .v-riga-oro { display: none; }
  .v-scena { order: 2; align-self: stretch; margin: 22px -18px 0; padding: 26px 18px 0; height: 250px; overflow: hidden; }
  .v-scena .v-telefono { width: 210px; }
  .v-eroe .v-sotto { order: 3; margin: 22px 0; font-size: 17px; }
  .v-eroe .v-cta { order: 4; }
  .v-eroe .v-prezzo-breve { order: 5; }
  .v-coppia-telefoni .v-telefono { width: 44%; }
  .v-funzione h3 { font-size: 25px; }
  .v-cifra { font-size: 40px; }
  .v-grande { width: 100%; }
  .v-fiducia { grid-template-columns: 1fr; }
  .v-pagina-testa h1 { font-size: 32px; }
  .v-pagina-testa .v-intro { font-size: 18px; }
  .v-passi-quattro { grid-template-columns: 1fr; }
  .v-azioni { gap: 8px; }
}
@media (max-width: 400px) {
  .v-azioni > .v-secondario { display: none; }
  .v-menu-tel nav a.v-menu-accedi { display: flex; }
}
@media (prefers-reduced-motion: no-preference) { html.nb-vetrina { scroll-behavior: smooth; } }

/* 27 ottobre 2026: confronto tra due collaborazioni e movimenti della pagina.
   Solo trasformazioni e opacita'. Senza JavaScript o con "riduci movimento" tutto resta visibile e fermo. */

#nb-presentazione {
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --t-press: 120ms; --t-hover: 180ms; --t-reveal: 800ms;
  --stagger: 80ms;
}

/* ---------- confronto ---------- */
.v-confronto { margin-top: 36px; }
.v-imposta { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: flex-end; margin-bottom: 18px; }
.v-imposta label { max-width: 100%; display: flex; flex-direction: column; gap: 6px; font-size: 15px; font-weight: 600; color: var(--v-muted); }
/* max-width (27 ottobre 2026): con sei casse la voce piu' lunga allargava il menu oltre lo schermo dei telefoni piccoli */
.v-imposta select { max-width: 100%; font: inherit; font-size: 16px; font-weight: 600; color: var(--v-ink); min-height: 44px; padding: 8px 12px; border-radius: 12px; border: 1px solid #C9D3CC; background: #fff; }
.v-scelta { display: inline-flex; background: var(--v-tint); border-radius: 12px; padding: 4px; }
.v-scelta button { font: inherit; font-size: 15.5px; font-weight: 650; min-height: 40px; padding: 8px 14px; border: 0; border-radius: 9px; background: transparent; color: var(--v-muted); cursor: pointer; transition: background-color var(--t-hover) ease, color var(--t-hover) ease, transform var(--t-press) var(--ease-out); }
.v-scelta button.v-attivo { background: #fff; color: var(--v-teal); }
.v-scelta button:active { transform: scale(.96); }

.v-coppia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.v-collab { background: var(--v-bg); border-radius: 18px; padding: 24px; }
.v-collab h3 { font-size: 22px; margin: 0 0 14px; font-weight: 750; letter-spacing: -0.3px; }
/* nome della collaborazione: si scrive sopra, come un titolo con la riga tratteggiata di chi si puo' cambiare */
.v-nome { font: inherit; color: inherit; letter-spacing: inherit; width: 100%; min-height: 44px; padding: 4px 0; border: 0; border-bottom: 2px dashed #B9C6BF; border-radius: 0; background: transparent; }
.v-nome:hover { border-bottom-color: var(--v-teal-2); }
.v-nome:focus-visible { outline: 3px solid var(--v-gold); outline-offset: 2px; border-bottom-color: transparent; }
.v-suggerimento { margin: 8px 0 0; font-size: 15px; color: var(--v-muted); }
.v-cursore { display: block; margin: 0 0 14px; }
.v-cursore span { display: flex; justify-content: space-between; gap: 12px; font-size: 16px; color: var(--v-muted); }
.v-cursore output { font-weight: 700; color: var(--v-ink); font-variant-numeric: tabular-nums; }
.v-cursore input { width: 100%; height: 44px; margin: 0; accent-color: var(--v-teal); cursor: pointer; }
.v-cursore input:focus-visible, .v-scelta button:focus-visible, .v-imposta select:focus-visible { outline: 3px solid var(--v-gold); outline-offset: 2px; }

.v-esito { margin-top: 8px; padding-top: 16px; }
.v-resta { font-size: 18px; color: var(--v-muted); }
.v-resta span { display: block; font-size: 44px; line-height: 1.05; font-weight: 790; letter-spacing: -1.4px; color: var(--v-teal); font-variant-numeric: tabular-nums; }
.v-ora { margin-top: 6px; font-size: 17px; color: var(--v-muted); }
.v-ora span { font-weight: 750; font-size: 22px; color: var(--v-ink); font-variant-numeric: tabular-nums; }
.v-collab.v-vince .v-ora span { color: #A97A2C; }

/* barra: strati sovrapposti che si allungano solo con scaleX, nessun ricalcolo della pagina */
.v-barra-netto { position: relative; height: 14px; margin: 16px 0 10px; border-radius: 7px; overflow: hidden; background: transparent; }
.v-barra-netto i { position: absolute; inset: 0; transform-origin: left center; transform: scaleX(var(--f, 1)); border-radius: 7px; }
.v-p-struttura { background: #C9D3CC; }
.v-p-contributi { background: #8FA79E; }
.v-p-tasse { background: var(--v-gold); }
.v-p-resta { background: var(--v-teal); }
.v-legenda { margin: 0; font-size: 15px; color: var(--v-muted); font-variant-numeric: tabular-nums; }
.v-verdetto { margin: 22px 0 0; font-size: 22px; line-height: 1.35; font-weight: 700; letter-spacing: -0.3px; max-width: 760px; }
.v-nota-calcolo { margin: 10px 0 0; font-size: 15px; color: var(--v-muted); max-width: 760px; }

@media (max-width: 760px) {
  .v-coppia { grid-template-columns: minmax(0, 1fr); }
  .v-collab { padding: 20px; }
  .v-resta span { font-size: 38px; }
  .v-verdetto { font-size: 20px; }
}

/* ---------- risposta al tocco, su tutti i pulsanti ---------- */
#nb-presentazione .v-bottone { transition: background-color var(--t-hover) ease, transform var(--t-press) var(--ease-out); }
#nb-presentazione .v-bottone:active { transform: scale(.97); }

/* ---------- movimenti: solo con JavaScript e senza "riduci movimento" ---------- */
@media (prefers-reduced-motion: no-preference) {
  .v-barra-netto i { transition: transform 600ms var(--ease-expo); }

  /* apertura: titolo, riga d'oro, testo e pulsanti arrivano in ordine; finita entro 1,2 secondi */
  html.js .v-eroe h1, html.js .v-eroe .v-sotto, html.js .v-eroe .v-cta, html.js .v-eroe .v-prezzo-breve {
    animation: v-sale var(--t-reveal) var(--ease-expo) both;
  }
  html.js .v-eroe .v-sotto { animation-delay: 140ms; }
  html.js .v-eroe .v-cta { animation-delay: 220ms; }
  html.js .v-eroe .v-prezzo-breve { animation-delay: 300ms; }
  html.js .v-riga-oro { transform-origin: left center; animation: v-riga 900ms var(--ease-expo) 120ms both; }
  html.js .v-scena .v-finestra { animation: v-posa 1000ms var(--ease-expo) 180ms both; }
  html.js .v-scena .v-telefono { animation: v-sale 1000ms var(--ease-expo) 360ms both; }

  /* ingressi delle sezioni: le parti arrivano una dopo l'altra, una volta sola */
  html.js [data-entra] { opacity: 0; transform: translateY(24px); }
  html.js [data-entra].v-dentro { opacity: 1; transform: none; transition: opacity 700ms var(--ease-out), transform var(--t-reveal) var(--ease-expo); transition-delay: calc(var(--i, 0) * var(--stagger)); }
  html.js [data-entra="immagine"] { transform: translateY(16px) scale(1.03); }

  /* le schermate dell'apertura si spostano appena mentre si scorre (meno dell'8%) */
  .v-scena .v-telefono, .v-scena .v-finestra { will-change: transform; }
}
@keyframes v-sale { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes v-riga { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes v-posa { from { opacity: 0; transform: translateY(20px) scale(.98); } to { opacity: 1; transform: none; } }

/* ---------- 27 ottobre 2026: il netto che si scompone ---------- */
/* Sera, scelta di Alessandro: la fascia non trattiene piu' lo scorrimento (era alta quattro schermi). E' una sezione
   normale: quando arriva sullo schermo il conto si racconta da solo, una volta, da sinistra a destra come una ricevuta.
   Composizione finita (senza JavaScript o con "riduci movimento"): il conto gia' fatto, tutti i pezzi in vista. */
.v-scomposto { background: var(--v-teal); color: #fff; padding: 104px 0 112px; overflow-x: clip; } /* clip: le voci che entrano da destra non devono allargare la pagina del telefono */
.v-scomposto h2 { font-size: 40px; line-height: 1.12; letter-spacing: -1.1px; font-weight: 760; margin: 0 0 12px; color: #fff; max-width: 820px; text-wrap: balance; }
.v-scomposto-intro { margin: 0 0 40px; font-size: 19px; color: rgba(255,255,255,.78); }
.v-scomposto-cifra { container-type: inline-size; }
/* la cifra larga circa 4,9 volte il carattere: legata alla larghezza (14% della riga, 19% sul telefono) entra sempre */
.v-cifra-grande { font-size: clamp(48px, 9vw, 150px); font-size: min(150px, 14cqw); line-height: 1.1; font-weight: 800; letter-spacing: -0.045em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v-scomposto-sotto { margin: 12px 0 0; font-size: 20px; color: rgba(255,255,255,.82); }
.v-barra-grande { position: relative; height: 26px; margin: 32px 0 24px; border-radius: 13px; overflow: hidden; }
.v-barra-grande i { position: absolute; inset: 0; transform-origin: left center; transform: scaleX(var(--f, 1)); border-radius: 13px; }
.v-g-struttura { background: rgba(255,255,255,.16); }
.v-g-contributi { background: #8FA79E; }
.v-g-tasse { background: var(--v-gold); }
.v-g-resta { background: #fff; }
.v-pezzi { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.v-pezzi li { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border-radius: 14px; background: rgba(255,255,255,.07); font-size: 16px; color: rgba(255,255,255,.82); }
.v-pezzi li::before { content: ""; width: 12px; height: 12px; border-radius: 4px; margin-bottom: 6px; }
.v-pezzi li[data-pezzo="1"]::before { background: rgba(255,255,255,.3); }
.v-pezzi li[data-pezzo="2"]::before { background: var(--v-gold); }
.v-pezzi li[data-pezzo="3"]::before { background: #8FA79E; }
.v-pezzi li[data-pezzo="4"]::before { background: #fff; }
.v-pezzi li[data-pezzo="4"] { background: rgba(255,255,255,.14); color: #fff; }
.v-pezzi strong { font-size: 24px; font-weight: 760; letter-spacing: -0.4px; color: #fff; font-variant-numeric: tabular-nums; }
.v-scomposto-nota { margin: 18px 0 0; font-size: 15px; color: rgba(255,255,255,.7); }
.v-rivedi { margin-top: 24px; background: transparent; color: #fff !important; border-color: rgba(255,255,255,.4); }
.v-rivedi:hover { background: rgba(255,255,255,.08); }
.v-rivedi[hidden] { display: none; } /* .v-bottone lo mostrerebbe comunque */
.v-rivedi:focus-visible { outline: 3px solid var(--v-gold); outline-offset: 3px; }

@media (max-width: 760px) {
  .v-scomposto { padding: 72px 0 80px; }
  .v-scomposto h2 { font-size: 30px; }
  .v-scomposto-intro { font-size: 17px; margin-bottom: 28px; }
  .v-cifra-grande { font-size: min(150px, 19cqw); }
  .v-scomposto-sotto { font-size: 17px; }
  .v-barra-grande { height: 18px; margin: 22px 0 18px; }
  .v-pezzi { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .v-pezzi li { padding: 14px; font-size: 15px; }
  .v-pezzi strong { font-size: 20px; }
}

/* Dal vivo: il conto parte da 1.000 euro e ogni pezzo arriva da destra, uno dopo l'altro */
@media (prefers-reduced-motion: no-preference) {
  /* la barra segue la cifra fotogramma per fotogramma: niente transizione, che la farebbe arrivare in ritardo */
  .v-scomposto.v-pronto .v-pezzi li { opacity: 0; transform: translateX(28px); }
  .v-scomposto.v-pronto .v-pezzi li.v-arrivato { opacity: 1; transform: none; transition: opacity 700ms var(--ease-out), transform 1000ms var(--ease-expo); }
  .v-scomposto.v-pronto .v-scomposto-sotto { transition: opacity 160ms ease; }
  .v-scomposto.v-pronto .v-scomposto-sotto.v-cambia { opacity: 0; }
}

/* ---------- 27 ottobre 2026: rifiniture ---------- */
@media (prefers-reduced-motion: no-preference) {
  /* titoli che salgono parola per parola da una fessura, riga dopo riga */
  .v-parola { display: inline-block; overflow: clip; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
  .v-parola > span { display: inline-block; }
  html.js .v-da-alzare .v-parola > span { transform: translateY(108%); }
  html.js .v-da-alzare.v-alzato .v-parola > span { transform: none; transition: transform 950ms var(--ease-expo); transition-delay: calc(var(--riga, 0) * 90ms + var(--ritardo, 0ms)); }
  html.js .v-eroe h1.v-da-alzare { animation: none; }
  /* le schermate di "Cosa vedi" si aprono da una finestra piu' piccola */
  html.js [data-entra="immagine"] { clip-path: inset(10% 14% 10% 14%); transform: scale(.97); opacity: 1; }
  html.js [data-entra="immagine"].v-dentro { clip-path: inset(-160px -160px -160px -160px); transform: none; transition: clip-path 1200ms var(--ease-expo), transform 1200ms var(--ease-expo); }
  /* una frase che si riempie d'inchiostro mentre la si legge */
  .v-inchiostro .v-w { color: #B4C0BA; transition: color 250ms ease; }
  .v-inchiostro .v-w.v-scritta { color: var(--v-ink); }
}
