/* Italvance Group. Palette e caratteri dalle brand guidelines v1.0 */
@font-face { font-family: Montserrat; font-weight: 600; font-display: swap; src: url(../fonts/montserrat-600-latin.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD; }
@font-face { font-family: Montserrat; font-weight: 600; font-display: swap; src: url(../fonts/montserrat-600-latin-ext.woff2) format("woff2"); unicode-range: U+0100-0130,U+0132-0151,U+0154-02BA,U+1E00-1EFF,U+2C60-2C7F; }
@font-face { font-family: Montserrat; font-weight: 700; font-display: swap; src: url(../fonts/montserrat-700-latin.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD; }
@font-face { font-family: Montserrat; font-weight: 700; font-display: swap; src: url(../fonts/montserrat-700-latin-ext.woff2) format("woff2"); unicode-range: U+0100-0130,U+0132-0151,U+0154-02BA,U+1E00-1EFF,U+2C60-2C7F; }
@font-face { font-family: Inter; font-weight: 100 900; font-display: swap; src: url(../fonts/inter-latin.woff2) format("woff2"); }

:root {
  --notte: #0B1F3B;
  --elettrico: #2563EB;
  --elettrico-scuro: #1D4FC4;
  --secondario: #3882F6;
  --azzurro: #E8F1FF;
  --grigio: #F5F7FA;
  --bianco: #FFFFFF;
  --testo: #0B1F3B;
  --testo-2: #46566E;
  --bordo: #DBE3EF;
  --bordo-notte: rgba(255,255,255,.16);
  --chiaro-su-notte: #C5D3E6;
  --titoli: Montserrat, "Helvetica Neue", Arial, sans-serif;
  --corpo: Inter, -apple-system, "Segoe UI", Arial, sans-serif;
  --raggio: 12px;
  --ombra: 0 12px 32px rgba(11,31,59,.09);
  --altezza-testata: 76px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--altezza-testata) + 16px); }
body { margin: 0; background: var(--bianco); color: var(--testo); font: 400 17px/1.65 var(--corpo); -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, svg { display: block; max-width: 100%; height: auto; }
h1, h2, h3 { margin: 0; font-family: var(--titoli); font-weight: 700; letter-spacing: -.018em; line-height: 1.16; text-wrap: balance; }
h3 { font-size: 1.14rem; font-weight: 600; letter-spacing: -.01em; line-height: 1.3; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
a { color: var(--elettrico); text-underline-offset: .18em; }
a:hover { color: var(--elettrico-scuro); }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--secondario); outline-offset: 2px; border-radius: 4px; }
[hidden] { display: none !important; }
.icona { flex: none; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.salta { position: absolute; left: 16px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--bianco); border-radius: 8px; font-weight: 600; }
.salta:focus { top: 12px; }

.contenitore { width: min(100% - 48px, 1200px); margin-inline: auto; }
.contenitore--stretto { width: min(100% - 48px, 780px); }
.centrato { text-align: center; }
.sezione { padding: clamp(64px, 8vw, 112px) 0; }
.sezione--bianca { background: var(--bianco); }
.sezione--grigia { background: var(--grigio); }
.sezione--azzurra { background: var(--azzurro); }
.sezione--notte { background: var(--notte); color: var(--bianco); }
.titolo-sezione { font-size: clamp(1.75rem, 3.2vw, 2.6rem); margin-bottom: .55em; }
.testo-grande { font-size: clamp(1.1rem, 1.6vw, 1.28rem); line-height: 1.55; color: var(--testo); }
.nota { margin-top: 28px; color: var(--testo-2); font-size: .94rem; max-width: 70ch; }

.occhiello { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--elettrico); font: 600 .84rem/1.3 var(--titoli); letter-spacing: .02em; }
.occhiello .diagonali { width: 20px; flex: none; fill: currentColor; }
.occhiello--chiaro { color: var(--chiaro-su-notte); }
.occhiello--chiaro .diagonali { fill: var(--secondario); }
.centrato .occhiello { justify-content: center; }

/* Bottoni */
.bottone { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 20px; border: 1.5px solid transparent; border-radius: 9px; background: none; font: 600 .95rem/1.2 var(--corpo); text-align: center; text-decoration: none; cursor: pointer; transition: background-color .18s, border-color .18s, color .18s; }
.bottone--grande { min-height: 54px; padding: 14px 26px; font-size: 1rem; }
.bottone--primario { background: var(--elettrico); color: var(--bianco); }
.bottone--primario:hover { background: var(--elettrico-scuro); color: var(--bianco); }
.bottone--secondario { background: var(--bianco); border-color: var(--bordo); color: var(--notte); }
.bottone--secondario:hover { border-color: var(--elettrico); color: var(--elettrico); }
.bottone--contorno { border-color: rgba(255,255,255,.42); color: var(--bianco); }
.bottone--contorno:hover { border-color: var(--bianco); background: rgba(255,255,255,.08); color: var(--bianco); }
.bottone:disabled { opacity: .65; cursor: progress; }
.azioni { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.azioni--centro { justify-content: center; }
.link-freccia { display: inline-flex; align-items: center; gap: 6px; color: var(--elettrico); font-weight: 600; font-size: .95rem; text-decoration: none; }
.link-freccia .icona { transition: transform .18s; }
a.link-freccia:hover .icona, .card:hover .link-freccia .icona { transform: translateX(3px); }

/* Testata */
.testata { position: sticky; top: 0; z-index: 50; background: var(--notte); border-bottom: 1px solid var(--bordo-notte); color: var(--bianco); }
.testata__riga { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--altezza-testata); }
.testata__logo { flex: none; padding: 6px 0; }
.testata__logo img { width: 151px; }
.testata__menu { display: none; width: 46px; height: 46px; place-items: center; border: 0; border-radius: 8px; background: none; color: var(--bianco); cursor: pointer; }
.testata__menu-chiudi { display: none; }
.testata__menu[aria-expanded="true"] .testata__menu-apri { display: none; }
.testata__menu[aria-expanded="true"] .testata__menu-chiudi { display: block; }
.nav { display: flex; align-items: center; gap: 20px; }
.nav__lista { display: flex; align-items: center; gap: 2px; }
.nav__voce { position: relative; display: flex; align-items: center; }
.nav__link { display: block; padding: 10px; color: var(--bianco); font-size: .92rem; font-weight: 500; text-decoration: none; border-radius: 6px; white-space: nowrap; }
.nav__link:hover { color: var(--bianco); background: rgba(255,255,255,.08); }
.nav__link[aria-current] { box-shadow: inset 0 -2px 0 var(--secondario); border-radius: 6px 6px 0 0; }
.nav__apri { display: grid; place-items: center; width: 24px; height: 36px; margin-left: -8px; padding: 0; border: 0; background: none; color: var(--chiaro-su-notte); cursor: pointer; }
.nav__cta { flex: none; min-height: 42px; padding: 8px 16px; font-size: .9rem; }
.pannello { position: absolute; top: 100%; left: -180px; width: 660px; padding-top: 12px; visibility: hidden; opacity: 0; transform: translateY(-4px); transition: opacity .16s, transform .16s, visibility .16s; }
.pannello__griglia { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 12px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); box-shadow: var(--ombra); }
.pannello__voce { display: flex; gap: 12px; padding: 12px; border-radius: 8px; color: var(--testo); text-decoration: none; }
.pannello__voce:hover { background: var(--azzurro); color: var(--testo); }
.pannello__voce strong { display: block; font: 600 .93rem/1.3 var(--titoli); }
.pannello__voce small { display: block; margin-top: 2px; color: var(--testo-2); font-size: .82rem; line-height: 1.4; }
.pannello__icona { color: var(--elettrico); padding-top: 2px; }
@media (hover: hover) and (min-width: 1081px) {
  .nav__voce--apribile:hover .pannello { visibility: visible; opacity: 1; transform: none; }
}
@media (min-width: 1081px) {
  .nav__voce--apribile.aperto .pannello, .nav__voce--apribile:focus-within .pannello { visibility: visible; opacity: 1; transform: none; }
}

/* Eroe */
.eroe { position: relative; background: var(--notte); color: var(--bianco); overflow: hidden; }
.eroe__griglia { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 32px; align-items: center; min-height: min(640px, calc(100vh - var(--altezza-testata))); }
.eroe__testo { padding: clamp(56px, 8vw, 96px) 0; }
.eroe h1 { font-size: clamp(2.3rem, 4.8vw, 3.85rem); }
.eroe__intro { margin: 22px 0 0; max-width: 58ch; color: var(--chiaro-su-notte); font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.6; }
.eroe__nota { margin: 18px 0 0; max-width: 54ch; color: var(--chiaro-su-notte); font-size: .94rem; line-height: 1.5; }
.eroe__visuale { align-self: end; margin-right: calc((100vw - min(100vw - 48px, 1200px)) / -2); height: 100%; min-height: 480px; position: relative; }
.torre { position: absolute; inset: auto 0 0 0; width: 100%; height: 100%; min-height: 480px; }
.torre__finestra { fill: #E8F1FF; opacity: 0; animation: finestra 9s ease-in-out infinite; }
.torre__finestra--d { fill: #fff; }
@keyframes finestra { 0%, 100% { opacity: 0; } 30%, 60% { opacity: .55; } }
.eroe--pagina { padding-bottom: 8px; }
.eroe--pagina .eroe__testo { padding: 30px 0 64px; }
.eroe--pagina h1 { font-size: clamp(2.05rem, 4vw, 3.2rem); }
.eroe__testo--largo { max-width: 860px; }
.eroe__griglia--area { min-height: 0; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(32px, 6vw, 80px); align-items: start; padding-bottom: 56px; }
.eroe__griglia--area .eroe__testo { padding-bottom: 0; }
.eroe__pannello { margin-top: 30px; padding: 26px; border: 1px solid var(--bordo-notte); border-radius: var(--raggio); background: rgba(255,255,255,.04); }
.eroe--breve .eroe__testo { padding-bottom: 44px; }
.eroe--breve h1 { margin: 24px 0 8px; }
.eroe--breve .eroe__testo h1 { margin: 0; }
.eroe--articolo { padding-bottom: 48px; }
.eroe--articolo .occhiello { margin-top: 30px; }
.eroe__data { margin: 16px 0 28px; color: var(--chiaro-su-notte); font-size: .95rem; }
.briciole { padding-top: 24px; font-size: .86rem; }
.briciole ol { display: flex; flex-wrap: wrap; gap: 4px 8px; }
.briciole li { color: var(--chiaro-su-notte); }
.briciole li + li::before { content: "/"; margin-right: 8px; opacity: .55; }
.briciole a { color: var(--chiaro-su-notte); text-decoration: none; }
.briciole a:hover { color: var(--bianco); text-decoration: underline; }
.briciole li[aria-current] { color: var(--bianco); }

/* Prove verificabili: elementi editoriali, non metriche decorative. */
.prova-rapida { padding: 0; background: var(--notte); color: var(--bianco); border-top: 1px solid var(--bordo-notte); }
.prova-rapida__griglia { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(36px, 7vw, 96px); padding: 42px 0; align-items: start; }
.prova-rapida h2 { max-width: 15ch; font-size: clamp(1.45rem, 2.4vw, 2rem); }
.prova-rapida p { max-width: 52ch; margin: 12px 0 0; color: var(--chiaro-su-notte); font-size: .96rem; line-height: 1.55; }
.prova-rapida__punti { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--bordo-notte); }
.prova-rapida__punti li { min-width: 0; padding: 16px 18px 0; border-left: 1px solid var(--bordo-notte); }
.prova-rapida__punti li:first-child { padding-left: 0; border-left: 0; }
.prova-rapida__punti strong { display: block; margin-bottom: 7px; font: 600 .94rem/1.35 var(--titoli); }
.prova-rapida__punti span { display: block; color: var(--chiaro-su-notte); font-size: .86rem; line-height: 1.5; }

/* Griglie e card */
.griglia { display: grid; gap: 20px; }
.griglia > * { min-width: 0; }
.griglia--2 { grid-template-columns: repeat(2, 1fr); }
.griglia--3 { grid-template-columns: repeat(3, 1fr); }
.griglia--4 { grid-template-columns: repeat(4, 1fr); }
.griglia--servizi { grid-template-columns: repeat(6, 1fr); }
.griglia--servizi > * { grid-column: span 2; }
.griglia--servizi > :nth-child(n+4) { grid-column: span 3; }
.griglia--servizi { margin-top: 12px; }
.intestazione { display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px 56px; align-items: end; margin-bottom: 44px; }
.intestazione .titolo-sezione { margin: 0; }
.intestazione > p { margin: 0; color: var(--testo-2); }
.card { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 28px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); transition: border-color .18s, box-shadow .18s; }
.sezione--bianca .card { background: var(--grigio); border-color: transparent; }
.card p { margin: 0; color: var(--testo-2); font-size: .97rem; line-height: 1.55; }
.card:has(.card__link):hover { border-color: var(--elettrico); box-shadow: var(--ombra); }
.card__link { color: inherit; text-decoration: none; }
.card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.card__link:hover { color: inherit; }
.card__link:focus-visible { outline: none; }
.card__link:focus-visible::after { outline: 3px solid var(--secondario); outline-offset: 2px; }
.card__testa { display: flex; justify-content: space-between; align-items: center; width: 100%; margin-bottom: 8px; }
.card__icona { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 10px; background: var(--azzurro); color: var(--elettrico); margin-bottom: 4px; }
.card__numero { color: var(--testo-2); font: 600 .84rem/1 var(--titoli); }
.card--area .link-freccia { margin-top: auto; padding-top: 10px; }
.card__categoria { color: var(--elettrico) !important; font: 600 .8rem/1.3 var(--titoli) !important; }
.card__titolo { font-size: 1.22rem; font-weight: 600; line-height: 1.28; letter-spacing: -.01em; }
.card time { margin-top: auto; padding-top: 8px; color: var(--testo-2); font-size: .86rem; }

/* Marcatore a parallelogramma: la diagonale del simbolo */
.segno { display: inline-grid; place-items: center; flex: none; width: 38px; height: 30px; background: var(--elettrico); color: var(--bianco); transform: skewX(-23.5deg); border-radius: 3px; font: 700 .86rem/1 var(--titoli); }
.segno > span { transform: skewX(23.5deg); }
.segno--vuoto { width: 26px; height: 22px; }

.percorso__titolo { margin-bottom: 18px; color: inherit; font: 600 .92rem/1.3 var(--titoli); }
.percorso ol { position: relative; display: grid; gap: 16px; }
.percorso li { display: flex; align-items: center; gap: 16px; font-weight: 500; line-height: 1.35; }
.eroe__pannello .segno { background: var(--secondario); }

/* Prodotto */
.prodotto { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 72px); align-items: center; }
.prodotto__logo { width: 56px; border-radius: 12px; margin-bottom: 18px; }
.prodotto .stato { margin-bottom: 18px; }
.spunte { display: grid; gap: 10px; margin: 20px 0 0; }
.spunte li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.45; }
.spunte .icona { color: var(--elettrico); margin-top: 3px; }
.spunte--chiare .icona { color: var(--secondario); }
.schermata { margin: 0; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); box-shadow: var(--ombra); overflow: hidden; }
.schermata__barra { display: flex; gap: 6px; padding: 12px 14px; background: var(--grigio); border-bottom: 1px solid var(--bordo); }
.schermata__barra i { width: 9px; height: 9px; border-radius: 50%; background: var(--bordo); }
.schermata img { width: 100%; }
.schermata figcaption { padding: 10px 14px; color: var(--testo-2); font-size: .82rem; border-top: 1px solid var(--bordo); }

/* Metodo: i passi salgono come le diagonali */
.metodo { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; align-items: stretch; }
.metodo__passo { min-width: 0; padding: 24px 20px; margin-top: calc((4 - var(--passo)) * 26px); background: var(--grigio); border-radius: var(--raggio); }
.metodo__passo:last-child { background: var(--notte); color: var(--bianco); }
.metodo__passo:last-child p { color: var(--chiaro-su-notte); }
.metodo__passo:last-child .segno { background: var(--secondario); }
.metodo h3 { margin: 16px 0 8px; }
.metodo p { color: var(--testo-2); font-size: .94rem; line-height: 1.5; }

.settori-home { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 72px); align-items: center; }
.settori-home > * { min-width: 0; }
.card--impegno { padding: 32px; }
.card--impegno h3 { font-size: 1.25rem; }
.prova-prodotto { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.prova-prodotto > * { min-width: 0; }

/* Colonne */
.due-colonne { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.due-colonne > * { min-width: 0; }
.due-colonne--centro { align-items: center; }
.problemi { display: grid; margin-top: 8px; border-top: 1px solid var(--bordo); }
.problemi li { padding: 16px 0; border-bottom: 1px solid var(--bordo); color: var(--testo-2); }
.riquadro-soluzione { padding: clamp(24px, 3vw, 40px); background: var(--azzurro); border-radius: var(--raggio); }
.riquadro-prova { padding: 32px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.sezione--bianca .riquadro-prova { background: var(--grigio); border-color: transparent; }
.riquadro-prova > .icona { color: var(--elettrico); margin-bottom: 14px; }
.riquadro-prova h3 { margin-bottom: 8px; font-size: 1.22rem; }
.riquadro-prova p { color: var(--testo-2); }
.beneficio h3 { margin: 14px 0 8px; font-size: 1.2rem; }
.beneficio p { color: var(--testo-2); }
.sezione--bianca .beneficio { padding-right: 16px; }

.bisogni { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--bordo); border-left: 1px solid var(--bordo); margin-top: 12px; }
.bisogni li { min-width: 0; border-right: 1px solid var(--bordo); border-bottom: 1px solid var(--bordo); }
.bisogni a { display: flex; flex-direction: column; justify-content: space-between; gap: 20px; height: 100%; padding: 26px; color: var(--testo); text-decoration: none; font: 600 1.08rem/1.32 var(--titoli); transition: background-color .18s; }
.bisogni a:hover { background: var(--azzurro); color: var(--testo); }
.bisogni small { display: inline-flex; align-items: center; gap: 6px; color: var(--elettrico); font: 600 .88rem/1.3 var(--corpo); }

/* Funzioni di Scheduly */
.griglia--funzioni { margin-top: 12px; }
.funzione { padding: 24px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.funzione h3 { margin: 12px 0 6px; }
.funzione p { color: var(--testo-2); font-size: .95rem; line-height: 1.5; }
.funzione--roadmap { background: var(--azzurro); border-style: dashed; border-color: var(--secondario); }
.stato { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 99px; background: var(--azzurro); color: var(--notte); font-size: .76rem; font-weight: 600; }
.funzione--roadmap .stato { background: var(--bianco); }
.stato--attivo { color: var(--elettrico-scuro); }

/* FAQ */
.faq { border-top: 1px solid var(--bordo); }
.faq__voce { border-bottom: 1px solid var(--bordo); }
.faq__voce summary { display: flex; justify-content: space-between; gap: 16px; padding: 20px 0; font: 600 1.05rem/1.35 var(--titoli); cursor: pointer; list-style: none; }
.faq__voce summary::-webkit-details-marker { display: none; }
.faq__voce summary .icona { color: var(--elettrico); transition: transform .18s; margin-top: 2px; }
.faq__voce[open] summary .icona { transform: rotate(180deg); }
.faq__voce p { padding: 0 36px 22px 0; color: var(--testo-2); }

/* CTA con modulo */
.cta-finale__griglia { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 6vw, 80px); align-items: start; }
.cta-finale h2 { font-size: clamp(1.9rem, 3.4vw, 2.85rem); margin-bottom: .5em; }
.cta-finale__testo > p { color: var(--chiaro-su-notte); font-size: 1.1rem; }
.cta-finale__modulo { padding: clamp(22px, 3vw, 36px); background: var(--bianco); border-radius: var(--raggio); color: var(--testo); }

/* Modulo */
.modulo__griglia { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.modulo__griglia > * { min-width: 0; }
.campo--intero { grid-column: 1 / -1; }
.campo label { display: block; margin-bottom: 6px; font-size: .9rem; font-weight: 600; }
.campo label span { color: var(--testo-2); font-weight: 400; }
.campo input, .campo select, .campo textarea { width: 100%; min-height: 48px; padding: 11px 13px; background: var(--bianco); border: 1px solid #A9B7CB; border-radius: 8px; font-size: 16px; transition: border-color .15s, box-shadow .15s; }
.campo textarea { display: block; resize: vertical; min-height: 110px; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--elettrico); box-shadow: 0 0 0 3px rgba(37,99,235,.2); }
.campo [aria-invalid="true"] { border-color: #B42318; }
.campo__errore { margin: 6px 0 0; color: #B42318; font-size: .87rem; font-weight: 500; }
.modulo__avviso { margin-bottom: 18px; padding: 12px 14px; background: #FEF3F2; border: 1px solid #FDA29B; border-radius: 8px; color: #912018; font-size: .94rem; }
.modulo__esca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.modulo__consensi { display: grid; gap: 12px; margin: 20px 0; }
.spunta { display: flex; gap: 10px; align-items: flex-start; color: var(--testo-2); font-size: .88rem; line-height: 1.45; cursor: pointer; }
.spunta input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--elettrico); }
.modulo .bottone { width: 100%; }

/* Contatti */
.contatti { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(32px, 6vw, 72px); align-items: start; }
.contatti h2 { font-size: 1.3rem; margin-bottom: 18px; }
.contatti__info h2:not(:first-child) { margin-top: 40px; }
.contatti__modulo { padding: clamp(22px, 3vw, 40px); background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.contatti__nota { max-width: 58ch; margin: -6px 0 24px; color: var(--testo-2); font-size: .95rem; line-height: 1.5; }
.recapiti { display: grid; gap: 12px; }
.recapiti li { display: flex; gap: 10px; align-items: center; overflow-wrap: anywhere; }
.recapiti .icona { color: var(--elettrico); }

/* Testi lunghi */
.testo-lungo { font-size: 1.05rem; line-height: 1.72; }
.testo-lungo h2 { margin: 2em 0 .6em; font-size: 1.45rem; font-weight: 600; }
.testo-lungo h2:first-child { margin-top: 0; }
.testo-lungo ul { margin: 0 0 1em; padding-left: 1.2em; list-style: disc; }
.testo-lungo li { margin-bottom: .45em; }
.testo-lungo li::marker { color: var(--elettrico); }
.caso h2 { margin: 1.6em 0 .5em; font-size: 1.4rem; }
.caso h2:first-child { margin-top: 0; }
.scheda { display: grid; grid-template-columns: auto 1fr; gap: 8px 24px; padding: 20px 24px; margin: 0 0 1em; background: var(--grigio); border-radius: var(--raggio); }
.scheda dt { font-weight: 600; }
.scheda dd { margin: 0; overflow-wrap: anywhere; }
.tabella-scorre { overflow-x: auto; margin: 0 0 1.2em; }
.testo-lungo table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .94rem; line-height: 1.5; }
.testo-lungo th { padding: 10px 12px; background: var(--notte); color: var(--bianco); text-align: left; font-weight: 600; }
.testo-lungo td { padding: 12px; border-bottom: 1px solid var(--bordo); vertical-align: top; }
.grazie { min-height: 52vh; display: grid; align-items: center; }
.grazie h1 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: .4em; }
.grazie__segno { display: inline-grid; place-items: center; width: 68px; height: 68px; margin-bottom: 22px; border-radius: 50%; background: var(--azzurro); color: var(--elettrico); }

/* Piede */
.piede { background: var(--notte); color: var(--chiaro-su-notte); border-top: 1px solid var(--bordo-notte); font-size: .94rem; }
.piede__griglia { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; padding: 64px 0 44px; }
.piede__griglia > * { min-width: 0; }
.piede__marchio img { width: 151px; margin-bottom: 20px; }
.piede__marchio p { max-width: 34ch; }
.piede__email { display: flex; align-items: center; gap: 8px; margin-top: 8px; color: var(--bianco); text-decoration: none; overflow-wrap: anywhere; }
.piede__email:hover { color: var(--bianco); text-decoration: underline; }
.piede__titolo { margin-bottom: 14px; color: var(--bianco); font-size: .92rem; font-weight: 600; letter-spacing: 0; }
.piede__titolo--social { margin-top: 28px; }
.piede ul { display: grid; gap: 8px; }
.piede ul a, .piede__link { color: var(--chiaro-su-notte); text-decoration: none; }
.piede ul a:hover, .piede__link:hover { color: var(--bianco); text-decoration: underline; }
.piede__link { padding: 0; border: 0; background: none; cursor: pointer; }
.piede__legale { padding: 20px 0 28px; border-top: 1px solid var(--bordo-notte); font-size: .85rem; }

/* Barra CTA mobile */
.barra-cta { display: none; }

/* Consenso cookie */
.consenso { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 70; display: flex; gap: 24px; align-items: center; justify-content: space-between; max-width: 1040px; margin-inline: auto; padding: 22px 24px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); box-shadow: 0 16px 48px rgba(11,31,59,.25); }
.consenso:focus { outline: none; }
.consenso__chiudi { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; display: grid; place-items: center; background: none; border: 0; border-radius: 50%; color: var(--testo-2); cursor: pointer; }
.consenso__chiudi:hover { background: rgba(11,31,59,.07); color: var(--testo); }
.consenso__testo { padding-right: 28px; }
.consenso__azioni { max-width: 340px; padding-top: 22px; }
.consenso__azioni .bottone { flex: 1 1 40%; justify-content: center; }
.consenso a { text-decoration: underline; }
.consenso h2 { font-size: 1.05rem; margin-bottom: 6px; }
.consenso p { font-size: .9rem; line-height: 1.5; color: var(--testo-2); }
.consenso__scelte { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 10px; font-size: .9rem; }
.consenso__scelte label { display: flex; align-items: center; gap: 8px; }
.consenso__azioni { display: flex; flex-wrap: wrap; gap: 8px; flex: none; }

/* Responsive */
@media (max-width: 1080px) {
  .testata__menu { display: grid; }
  .nav { position: fixed; inset: var(--altezza-testata) 0 0 0; z-index: 49; flex-direction: column; align-items: stretch; gap: 18px; padding: 16px 24px 32px; background: var(--notte); overflow-y: auto; visibility: hidden; opacity: 0; transition: opacity .16s, visibility .16s; }
  .nav.aperto { visibility: visible; opacity: 1; }
  .nav__lista { flex-direction: column; align-items: stretch; }
  .nav__voce { flex-wrap: wrap; justify-content: space-between; border-bottom: 1px solid var(--bordo-notte); }
  .nav__link { flex: 1; padding: 15px 0; font-size: 1.05rem; }
  .nav__link[aria-current] { box-shadow: none; color: var(--secondario); }
  .nav__apri { width: 46px; height: 46px; margin: 0; }
  .nav__voce.aperto .nav__apri { transform: rotate(180deg); }
  .pannello { position: static; width: 100%; padding: 0 0 12px; display: none; visibility: visible; opacity: 1; transform: none; transition: none; }
  .nav__voce.aperto .pannello { display: block; }
  .pannello__griglia { grid-template-columns: 1fr; padding: 0; background: none; border: 0; box-shadow: none; }
  .pannello__voce { color: var(--bianco); padding: 10px 0; }
  .pannello__voce:hover { background: none; color: var(--bianco); }
  .pannello__voce small { color: var(--chiaro-su-notte); }
  .pannello__icona { color: var(--secondario); }
  .nav__cta { min-height: 52px; }
  .griglia--4 { grid-template-columns: repeat(2, 1fr); }
  .griglia--3 { grid-template-columns: repeat(2, 1fr); }
  .griglia--servizi { grid-template-columns: repeat(2, 1fr); }
  .griglia--servizi > *, .griglia--servizi > :nth-child(n+4) { grid-column: auto; }
  .griglia--servizi > :last-child { grid-column: 1 / -1; }
  .metodo { grid-template-columns: 1fr; gap: 12px; }
  .metodo__passo { display: grid; grid-template-columns: auto 1fr; column-gap: 18px; margin-top: 0; padding: 20px; }
  .metodo__passo .segno { grid-row: span 2; }
  .metodo h3 { margin: 2px 0 4px; }
  .bisogni { grid-template-columns: repeat(2, 1fr); }
  .piede__griglia { grid-template-columns: repeat(3, 1fr); }
  .piede__marchio { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  body { font-size: 16px; padding-bottom: 0; }
  .eroe__griglia { grid-template-columns: 1fr; min-height: 0; gap: 0; }
  .eroe__visuale { min-height: 0; height: 300px; margin: 0 -24px; overflow: hidden; }
  .eroe__testo { padding-bottom: 12px; }
  .torre { min-height: 0; height: 420px; width: 100%; inset: 0 0 auto 0; }
  .eroe__griglia--area { padding-bottom: 40px; }
  .eroe__pannello { margin-top: 20px; }
  .intestazione, .due-colonne, .prodotto, .settori-home, .prova-prodotto, .cta-finale__griglia, .contatti, .prova-rapida__griglia { grid-template-columns: 1fr; }
  .prova-rapida__punti { grid-template-columns: repeat(3, 1fr); }
  .intestazione { margin-bottom: 28px; }
  .consenso { flex-direction: column; align-items: stretch; }
  .barra-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: block; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--bianco); border-top: 1px solid var(--bordo); box-shadow: 0 -6px 20px rgba(11,31,59,.08); transform: translateY(100%); transition: transform .2s; }
  .barra-cta.visibile { transform: none; }
  .barra-cta .bottone { width: 100%; }
}
@media (max-width: 620px) {
  .contenitore, .contenitore--stretto { width: calc(100% - 32px); }
  .griglia--2, .griglia--3, .griglia--4, .griglia--servizi, .bisogni, .modulo__griglia, .prova-rapida__punti { grid-template-columns: 1fr; }
  .prova-rapida__punti { border-top: 0; gap: 0; }
  .prova-rapida__punti li, .prova-rapida__punti li:first-child { padding: 14px 0; border-top: 1px solid var(--bordo-notte); border-left: 0; }
  .eroe__visuale { margin: 0 -16px; height: 250px; }
  .torre { height: 340px; }
  .azioni .bottone { width: 100%; }
  .piede__griglia { grid-template-columns: 1fr 1fr; gap: 32px 20px; padding-top: 48px; }
  .card { padding: 22px; }
  .scheda { grid-template-columns: 1fr; gap: 2px; }
  .scheda dd { margin-bottom: 10px; }
  .consenso__azioni { max-width: none; padding-top: 0; }
  .consenso__azioni .bottone { flex: 1 1 40%; }
}
/* ---- Divisione, banda Scheduly, settori ---- */
.pannello__intero { grid-column: 1 / -1; padding-top: 4px; margin-top: 4px; border-top: 1px solid var(--bordo); }
.link-esterno { margin-top: 18px; }
.testo-rimando { margin-top: 18px; color: var(--testo-2); font-size: .95rem; }
.casi-home, .impegno { margin-top: 20px; }
.impegno { display: flex; align-items: center; gap: 20px; padding: 22px 26px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); }
.impegno > div { flex: 1; min-width: 0; }
.impegno h3 { margin-bottom: 4px; }
.impegno p { color: var(--testo-2); font-size: .95rem; line-height: 1.5; }
.impegno .card__icona { flex: none; margin: 0; }
.impegno .link-freccia { flex: none; }
.card--evidenza { background: var(--notte) !important; border-color: var(--notte) !important; color: var(--bianco); }
.card--evidenza p { color: var(--chiaro-su-notte); }
.card--evidenza .card__icona { background: rgba(255,255,255,.1); color: var(--bianco); }
.card--evidenza .link-freccia { color: var(--bianco); }
.divisione { position: relative; overflow: hidden; background: var(--notte); color: var(--bianco); }
.divisione__griglia { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 56px; align-items: center; padding: clamp(48px, 6vw, 72px) 0; }
.divisione .titolo-sezione { margin-bottom: .4em; }
.divisione p:not(.occhiello) { max-width: 62ch; color: var(--chiaro-su-notte); }
.banda-sito { background: var(--azzurro); border-bottom: 1px solid var(--bordo); }
.banda-sito__griglia { display: flex; align-items: center; gap: 20px; padding: 24px 0; }
.banda-sito img { flex: none; width: 56px; border-radius: 12px; }
.banda-sito__griglia > div { flex: 1; min-width: 0; }
.banda-sito h2 { margin-bottom: 2px; font-size: 1.2rem; }
.banda-sito p { color: var(--testo-2); font-size: .97rem; }
.banda-sito .bottone { flex: none; }

/* ---- Movimento. Sempre transform e opacity, spento con prefers-reduced-motion ---- */
.testata { transition: background-color .25s; }
.testata::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 100%; height: 2px; background: var(--secondario); transform: scaleX(var(--avanzamento, 0)); transform-origin: left; }
.testata__riga { transition: height .25s; }
@media (min-width: 1081px) {
  .testata--scorsa .testata__riga { height: 62px; }
}

/* Fasci diagonali sugli sfondi blu notte: riprendono il simbolo */
.eroe::before, .eroe::after, .cta-finale::before, .cta-finale::after, .divisione::before, .divisione::after, .sezione--azzurra::before {
  content: ""; position: absolute; top: -20%; bottom: -20%; width: 180px; transform: skewX(-23.5deg); pointer-events: none;
}
.eroe::before, .cta-finale::before, .divisione::before { right: 22%; background: linear-gradient(180deg, rgba(56,130,246,.2), rgba(56,130,246,0) 75%); animation: fascio 14s ease-in-out infinite alternate; }
.eroe::after, .cta-finale::after, .divisione::after { right: 4%; width: 110px; background: linear-gradient(180deg, rgba(232,241,255,.09), rgba(232,241,255,0) 70%); animation: fascio 18s ease-in-out infinite alternate-reverse; }
.eroe--home::before { right: auto; left: 34%; opacity: .55; }
.eroe--home::after { display: none; }
.sezione--azzurra { position: relative; overflow: hidden; }
.sezione--azzurra::before { right: 6%; width: 240px; background: linear-gradient(180deg, rgba(37,99,235,.09), rgba(37,99,235,0)); }
.cta-finale, .eroe { position: relative; overflow: hidden; }
.sezione--azzurra > .contenitore, .cta-finale > .contenitore, .eroe > .contenitore { position: relative; z-index: 1; }
@keyframes fascio { from { translate: -40px 0; } to { translate: 60px 0; } }

/* Ingresso dell'hero */
.eroe__testo > *, .eroe--articolo .contenitore > *, .eroe--breve .contenitore > :not(.eroe__testo) { animation: sali .7s cubic-bezier(.2,.7,.2,1) both; }
.eroe__testo > :nth-child(2) { animation-delay: .08s; }
.eroe__testo > :nth-child(3) { animation-delay: .16s; }
.eroe__testo > :nth-child(4) { animation-delay: .24s; }
.eroe__testo > :nth-child(5) { animation-delay: .32s; }
.eroe__pannello { animation: sali .7s .2s cubic-bezier(.2,.7,.2,1) both; }
@keyframes sali { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

/* Tappe: linea che collega i marcatori e ingresso in sequenza */
.percorso ol::before { content: ""; position: absolute; left: 17px; top: 14px; bottom: 14px; width: 2px; background: linear-gradient(var(--secondario), rgba(56,130,246,.15)); transform-origin: top; animation: cresci 1.1s .3s cubic-bezier(.2,.7,.2,1) both; }
.percorso li { position: relative; animation: entra .55s cubic-bezier(.2,.7,.2,1) both; }
.percorso li:nth-child(1) { animation-delay: .25s; }
.percorso li:nth-child(2) { animation-delay: .4s; }
.percorso li:nth-child(3) { animation-delay: .55s; }
.percorso li:nth-child(4) { animation-delay: .7s; }
.percorso li:nth-child(5) { animation-delay: .85s; }
@keyframes cresci { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes entra { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: none; } }

/* Torre: si disegna all'avvio, poi impulsi lungo gli spigoli e movimento col puntatore */
.torre { transform: translate3d(var(--mx, 0), calc(var(--my, 0px) + var(--sy, 0px)), 0); transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.torre__faccia { animation: compari 1.4s .2s ease-out both; }
.torre__griglia { stroke-dasharray: 1; animation: traccia 2.4s .1s cubic-bezier(.4,0,.2,1) both; }
.torre__spigolo { stroke-dasharray: 1; animation: traccia 1.6s .5s cubic-bezier(.4,0,.2,1) both; }
.torre__impulso { stroke-dasharray: 7 200; opacity: 0; animation: impulso 5s 2s linear infinite; }
.torre__impulso--2 { animation-duration: 6.5s; animation-delay: 3.2s; }
.torre__impulso--3 { animation-duration: 7.5s; animation-delay: 4.4s; }
@keyframes compari { from { opacity: 0; } to { opacity: 1; } }
@keyframes traccia { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes impulso { 0% { stroke-dashoffset: 7; opacity: 0; } 8% { opacity: .95; } 55% { opacity: .95; } 70% { stroke-dashoffset: -100; opacity: 0; } 100% { stroke-dashoffset: -100; opacity: 0; } }

/* Nastro delle competenze */
.nastro { overflow: hidden; background: var(--elettrico); color: var(--bianco); }
.nastro__scorri { display: flex; width: max-content; animation: nastro 42s linear infinite; }
.nastro:hover .nastro__scorri { animation-play-state: paused; }
.nastro ul { display: flex; flex: none; }
.nastro li { display: flex; align-items: center; gap: 12px; padding: 13px 22px; font: 600 .92rem/1.2 var(--titoli); white-space: nowrap; }
.nastro .diagonali { width: 18px; fill: rgba(255,255,255,.65); }
@keyframes nastro { to { transform: translateX(-50%); } }

/* Aree a schede */
.esploratore { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 24px; align-items: stretch; }
.esploratore__lista { display: grid; gap: 6px; align-content: start; }
.esploratore__scheda { position: relative; display: flex; align-items: center; gap: 14px; width: 100%; min-height: 66px; padding: 14px 18px; background: var(--grigio); border: 0; border-radius: 10px; color: var(--testo); text-align: left; cursor: pointer; overflow: hidden; transition: background-color .22s, color .22s, transform .22s; }
.esploratore__scheda::before { content: ""; position: absolute; inset: 0 auto 0 -30px; width: 16px; background: var(--secondario); transform: skewX(-23.5deg); transition: translate .28s cubic-bezier(.2,.7,.2,1); }
.esploratore__scheda:hover { background: var(--azzurro); transform: translateX(4px); }
.esploratore__scheda[aria-selected="true"] { background: var(--notte); color: var(--bianco); transform: translateX(8px); }
.esploratore__scheda[aria-selected="true"]::before { translate: 26px 0; }
.esploratore__scheda > .icona { color: var(--elettrico); }
.esploratore__scheda[aria-selected="true"] > .icona { color: var(--secondario); }
.esploratore__numero { min-width: 22px; color: var(--testo-2); font: 600 .8rem/1 var(--titoli); }
.esploratore__scheda[aria-selected="true"] .esploratore__numero { color: var(--chiaro-su-notte); padding-left: 10px; }
.esploratore__nome { font: 600 1.02rem/1.25 var(--titoli); }
.esploratore__pannelli { min-width: 0; }
.esploratore__pannello { position: relative; display: none; height: 100%; min-height: 440px; padding: clamp(28px, 4vw, 48px); background: var(--notte); border-radius: var(--raggio); color: var(--bianco); overflow: hidden; }
.esploratore__pannello.attivo { display: block; animation: pannello .45s cubic-bezier(.2,.7,.2,1) both; }
@keyframes pannello { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
.esploratore__sfondo { position: absolute; right: -60px; bottom: -50px; width: 340px; fill: var(--elettrico); opacity: .2; }
.esploratore__pannello.attivo .esploratore__sfondo { animation: sfondo .8s cubic-bezier(.2,.7,.2,1) both; }
@keyframes sfondo { from { opacity: 0; transform: translate(50px, 30px); } to { opacity: .2; transform: none; } }
.esploratore__pannello > :not(.esploratore__sfondo) { position: relative; }
.esploratore__etichetta { margin-bottom: 14px; color: var(--chiaro-su-notte); font: 600 .84rem/1.3 var(--titoli); }
.esploratore__pannello h3 { margin-bottom: 14px; font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 700; letter-spacing: -.018em; line-height: 1.15; }
.esploratore__testo { max-width: 52ch; color: var(--chiaro-su-notte); font-size: 1.08rem; }
.esploratore__pannello .spunte { margin: 22px 0 28px; }

/* Card: alone che segue il puntatore e leggero sollevamento */
.card, .funzione { position: relative; overflow: hidden; transition: border-color .2s, box-shadow .2s, transform .2s, background-color .2s; }
.card::before, .funzione::before { content: ""; position: absolute; inset: 0; z-index: 0; background: radial-gradient(240px circle at var(--x, 50%) var(--y, 50%), rgba(56,130,246,.16), transparent 70%); opacity: 0; transition: opacity .25s; pointer-events: none; }
.card:hover::before, .funzione:hover::before { opacity: 1; }
.card:has(.card__link):hover { transform: translateY(-4px); }
.funzione:hover { transform: translateY(-3px); box-shadow: var(--ombra); }
.card__icona { transition: background-color .2s, color .2s, transform .2s; }
.card:has(.card__link):hover .card__icona { background: var(--elettrico); color: var(--bianco); transform: rotate(-6deg); }
.card--evidenza:hover .link-freccia { color: var(--bianco); }

/* Bottoni: riflesso diagonale e freccia che avanza */
.bottone { position: relative; overflow: hidden; }
.bottone--primario::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: rgba(255,255,255,.2); transform: skewX(-23.5deg); transition: left .5s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
.bottone--primario:hover::after { left: 120%; }
.bottone .icona { transition: transform .18s; }
.bottone:hover .icona { transform: translateX(3px); }

.segno { transition: transform .2s, background-color .2s; }
.metodo__passo { transition: transform .22s, box-shadow .22s; }
.metodo__passo:hover { transform: translateY(-6px); box-shadow: var(--ombra); }
.metodo__passo:hover .segno { background: var(--secondario); }
.bisogni a { position: relative; overflow: hidden; }
.bisogni small .icona { transition: transform .18s; }
.bisogni a:hover small .icona { transform: translateX(4px); }

/* Schermata di Scheduly con etichette di funzioni reali */
.schermata--viva { position: relative; overflow: visible; }
.schermata--viva img { border-radius: 0; }
.etichetta-viva { position: absolute; z-index: 2; display: flex; align-items: center; gap: 8px; padding: 9px 13px; background: var(--bianco); border: 1px solid var(--bordo); border-radius: 10px; box-shadow: var(--ombra); color: var(--notte); font-size: .84rem; font-weight: 600; white-space: nowrap; animation: galleggia 6s ease-in-out infinite; }
.etichetta-viva .icona { color: var(--elettrico); }
.etichetta-viva--1 { top: 20%; right: -20px; }
.etichetta-viva--2 { bottom: 16%; left: -22px; animation-delay: -3s; }
@keyframes galleggia { 0%, 100% { translate: 0 0; } 50% { translate: 0 -9px; } }

/* Comparsa allo scorrimento, applicata da sito.js solo agli elementi fuori schermo */
.rivela { opacity: 0; transform: translateY(26px); transition: opacity .65s cubic-bezier(.2,.7,.2,1), transform .65s cubic-bezier(.2,.7,.2,1) !important; }
.rivela.visibile { opacity: 1; transform: none; }
.rivela--laterale { transform: translateX(32px) rotate(1deg); }
@media print { .rivela { opacity: 1; transform: none; } .nastro { display: none; } }

@media (max-width: 1080px) {
  .pannello__intero { border-top: 0; margin: 0; padding: 0; }
  .griglia--4 .card--evidenza { grid-column: auto; }
  .etichetta-viva--1 { right: 8px; }
  .etichetta-viva--2 { left: 8px; }
}
@media (max-width: 860px) {
  .esploratore { grid-template-columns: 1fr; gap: 12px; }
  .esploratore__lista { display: flex; gap: 8px; overflow-x: auto; margin-inline: -24px; padding: 2px 24px 8px; scrollbar-width: none; }
  .esploratore__lista::-webkit-scrollbar { display: none; }
  .esploratore__scheda, .esploratore__scheda:hover, .esploratore__scheda[aria-selected="true"] { flex: none; width: auto; min-height: 46px; padding: 10px 14px; gap: 8px; transform: none; }
  .esploratore__scheda::before, .esploratore__numero { display: none; }
  .esploratore__nome { font-size: .9rem; white-space: nowrap; }
  .esploratore__pannello { min-height: 0; }
  .divisione__griglia { grid-template-columns: 1fr; }
  .eroe--home::before { left: 55%; }
  .etichetta-viva { display: none; }
  .rivela--laterale { transform: translateY(26px); }
}
@media (max-width: 620px) {
  .esploratore__lista { margin-inline: -16px; padding-inline: 16px; }
  .banda-sito__griglia { flex-wrap: wrap; }
  .banda-sito__griglia > div { flex: 1 1 60%; }
  .banda-sito .bottone { width: 100%; }
  .impegno { flex-wrap: wrap; }
  .impegno > div { flex: 1 1 100%; }
  .eroe::before, .eroe::after, .cta-finale::before, .cta-finale::after { width: 90px; }
}
/* ---- Popup "Parla con un esperto" ---- */
html.popup-aperto { overflow: hidden; }
.popup { width: min(100% - 32px, 980px); max-width: none; max-height: min(100dvh - 40px, 760px); margin: auto; padding: 0; border: 0; border-radius: 16px; background: linear-gradient(90deg, var(--notte) 30%, var(--bianco) 30%); color: var(--testo); box-shadow: 0 32px 80px rgba(11,31,59,.42); overflow: hidden; }
.popup[open] { display: block; animation: popup-entra .32s cubic-bezier(.2,.8,.2,1) both; }
.popup::backdrop { background: rgba(11,31,59,.68); animation: compari .25s ease-out both; }
.popup.in-chiusura { animation: popup-esce .17s ease-in both; }
.popup.in-chiusura::backdrop { animation: popup-velo-esce .17s ease-in both; }
@keyframes popup-entra { from { opacity: 0; transform: translateY(24px) scale(.975); } to { opacity: 1; transform: none; } }
@keyframes popup-esce { to { opacity: 0; transform: translateY(12px) scale(.985); } }
@keyframes popup-velo-esce { to { opacity: 0; } }
.popup__contenuto { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); }
.popup__chiudi { position: absolute; top: 12px; right: 12px; z-index: 3; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: var(--bianco); color: var(--notte); cursor: pointer; transition: background-color .18s, transform .18s; }
.popup__chiudi:hover { background: var(--azzurro); transform: rotate(90deg); }
.popup__lato { position: relative; display: flex; flex-direction: column; gap: 14px; max-height: min(100dvh - 40px, 760px); padding: 40px 34px; background: var(--notte); color: var(--bianco); overflow: hidden; }
.popup__lato > :not(.popup__sfondo) { position: relative; }
.popup__sfondo { position: absolute; right: -70px; bottom: -40px; width: 300px; fill: var(--elettrico); opacity: .2; }
.popup__lato .occhiello { margin: 0; }
.popup__lato h2 { font-size: clamp(1.7rem, 2.6vw, 2.15rem); }
.popup__lato > p:not(.occhiello) { color: var(--chiaro-su-notte); font-size: .98rem; line-height: 1.55; }
.popup__tappe { margin-top: 10px; font-size: .94rem; }
.popup__tappe .segno { background: var(--secondario); }
.popup__email { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 18px; color: var(--bianco); font-size: .9rem; text-decoration: none; overflow-wrap: anywhere; }
.popup__email:hover { color: var(--bianco); text-decoration: underline; }
.popup__corpo { min-width: 0; max-height: min(100dvh - 40px, 760px); padding: 34px 34px 28px; background: var(--bianco); overflow-y: auto; overscroll-behavior: contain; }
.popup__corpo .modulo__griglia { gap: 12px 14px; }
.popup__corpo .campo textarea { min-height: 84px; }
.popup__corpo .modulo__consensi { gap: 8px; margin: 14px 0; }
.popup__corpo .spunta { font-size: .82rem; }
.popup__corpo .modulo__avviso { margin-right: 36px; }
.popup__esito { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 420px; text-align: center; outline: none; animation: sali .45s cubic-bezier(.2,.7,.2,1) both; }
.popup__esito h3 { margin-bottom: 8px; font-size: 1.7rem; font-weight: 700; }
.popup__esito p { max-width: 42ch; color: var(--testo-2); overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .popup { width: 100%; max-height: 100dvh; height: 100dvh; margin: 0; border-radius: 0; background: var(--bianco); overflow-y: auto; }
  /* Solo dissolvenza: un transform animato annullerebbe il position: fixed della X */
  .popup[open] { animation-name: compari; }
  .popup.in-chiusura { animation-name: popup-velo-esce; }
  .popup__contenuto { grid-template-columns: 1fr; max-height: none; }
  .popup__chiudi, .popup__chiudi:hover { position: fixed; top: 10px; right: 10px; background: var(--elettrico); color: var(--bianco); }
  .popup__lato { gap: 8px; max-height: none; padding: 22px 64px 22px 20px; }
  .popup__lato h2 { font-size: 1.5rem; }
  .popup__lato > p:not(.occhiello) { font-size: .92rem; }
  .popup__tappe, .popup__email, .popup__lato .occhiello { display: none; }
  .popup__corpo { max-height: none; padding: 22px 20px 28px; overflow: visible; }
  .popup__corpo .modulo__avviso { margin-right: 0; }
  .popup__esito { min-height: 340px; }
}
@media (max-width: 620px) {
  .popup__esito .bottone { width: 100%; }
}

/* ==== Liquid glass ====
   Il vetro ha bisogno di qualcosa dietro: sui fondi chiari c'è un campo di luce fisso con le diagonali del logo.
   Il blur non va mai sulla testata: la renderebbe contenitore del menu mobile in position: fixed. */
:root {
  --vetro-riflesso: inset 0 1px 0 rgba(255,255,255,.95), inset 1px 0 0 rgba(255,255,255,.45), inset 0 -1px 0 rgba(37,99,235,.1);
  --vetro-riflesso-notte: inset 0 1px 0 rgba(255,255,255,.34), inset 1px 0 0 rgba(255,255,255,.12), inset 0 -1px 0 rgba(255,255,255,.06);
  --vetro-ombra: 0 12px 34px rgba(11,31,59,.11);
  --vetro-sfoca: blur(18px) saturate(185%);
  --raggio: 16px;
}
body:not(.admin)::before { content: ""; position: fixed; inset: -10%; z-index: -1; pointer-events: none; background:
  radial-gradient(38vmax 30vmax at 12% 18%, rgba(56,130,246,.34), transparent 70%),
  radial-gradient(34vmax 30vmax at 88% 34%, rgba(37,99,235,.26), transparent 70%),
  radial-gradient(40vmax 30vmax at 62% 92%, rgba(56,130,246,.28), transparent 70%),
  linear-gradient(113.5deg, transparent 18%, rgba(37,99,235,.11) 18% 30%, transparent 30% 36%, rgba(37,99,235,.08) 36% 43%, transparent 43% 71%, rgba(37,99,235,.1) 71% 84%, transparent 84%);
  animation: campo 26s ease-in-out infinite alternate; }
@keyframes campo { from { transform: translate3d(-2%, -1%, 0); } to { transform: translate3d(2%, 2%, 0); } }
.sezione--bianca { background: transparent; }
.sezione--grigia { background: rgba(245,247,250,.5); }
.sezione--azzurra { background: rgba(232,241,255,.55); }
.banda-sito { background: rgba(232,241,255,.5); backdrop-filter: var(--vetro-sfoca); -webkit-backdrop-filter: var(--vetro-sfoca); }

/* Vetro chiaro */
.card, .sezione--bianca .card, .funzione, .riquadro-prova, .sezione--bianca .riquadro-prova, .riquadro-soluzione, .impegno, .contatti__modulo,
.metodo__passo, .esploratore__scheda, .faq__voce, .pannello__griglia, .schermata, .etichetta-viva, .barra-cta, .consenso, .scheda, .bottone--secondario {
  background: radial-gradient(280px circle at var(--x, -320px) var(--y, -320px), rgba(255,255,255,.55), transparent 70%), linear-gradient(140deg, rgba(255,255,255,.74), rgba(255,255,255,.42));
  border: 1px solid rgba(255,255,255,.78);
  box-shadow: var(--vetro-riflesso), var(--vetro-ombra);
  -webkit-backdrop-filter: var(--vetro-sfoca);
  backdrop-filter: var(--vetro-sfoca);
}
.card:has(.card__link):hover, .sezione--bianca .card:has(.card__link):hover { border-color: rgba(37,99,235,.55); box-shadow: var(--vetro-riflesso), 0 18px 44px rgba(11,31,59,.16); }
.funzione--roadmap { background: linear-gradient(140deg, rgba(232,241,255,.8), rgba(232,241,255,.45)); border: 1px dashed var(--secondario); }
.esploratore__scheda:hover { background: linear-gradient(140deg, rgba(255,255,255,.9), rgba(232,241,255,.6)); }
.bottone--secondario { box-shadow: var(--vetro-riflesso), 0 4px 14px rgba(11,31,59,.08); }
.bottone--secondario:hover { border-color: var(--elettrico); }
.faq { display: grid; gap: 10px; border-top: 0; }
.faq__voce { padding: 0 20px; border-radius: 14px; }
.card__icona { background: rgba(255,255,255,.65); box-shadow: inset 0 1px 0 #fff, 0 2px 8px rgba(37,99,235,.14); }
.schermata__barra { background: rgba(255,255,255,.35); border-bottom-color: rgba(255,255,255,.6); }
.schermata figcaption { border-top-color: rgba(255,255,255,.6); color: var(--notte); }
.schermata { overflow: hidden; }
.schermata--viva { overflow: visible; }

/* Vetro scuro */
.eroe__pannello, .esploratore__pannello, .card--evidenza, .metodo__passo:last-child, .esploratore__scheda[aria-selected="true"], .prova-rapida__punti li, .bottone--contorno {
  -webkit-backdrop-filter: var(--vetro-sfoca);
  backdrop-filter: var(--vetro-sfoca);
}
.esploratore__pannello, .card--evidenza, .sezione--grigia .card--evidenza, .metodo__passo:last-child, .esploratore__scheda[aria-selected="true"] {
  background: radial-gradient(280px circle at var(--x, -320px) var(--y, -320px), rgba(255,255,255,.1), transparent 70%), linear-gradient(140deg, rgba(11,31,59,.96), rgba(11,31,59,.88)) !important;
  border: 1px solid rgba(255,255,255,.2) !important;
  box-shadow: var(--vetro-riflesso-notte), 0 18px 44px rgba(11,31,59,.24);
}
.eroe__pannello { background: radial-gradient(280px circle at var(--x, -320px) var(--y, -320px), rgba(255,255,255,.1), transparent 70%), linear-gradient(140deg, rgba(255,255,255,.13), rgba(255,255,255,.04)); border-color: rgba(255,255,255,.24); box-shadow: var(--vetro-riflesso-notte), 0 18px 44px rgba(0,0,0,.2); }
.bottone--contorno { background: linear-gradient(140deg, rgba(255,255,255,.16), rgba(255,255,255,.05)); border-color: rgba(255,255,255,.36); box-shadow: var(--vetro-riflesso-notte); }

/* Bottone principale: colore del brand con riflesso di vetro */
.bottone--primario { background: linear-gradient(180deg, #3172EE, var(--elettrico) 55%); box-shadow: inset 0 1px 0 rgba(255,255,255,.45), inset 0 -1px 0 rgba(11,31,59,.18), 0 8px 20px rgba(37,99,235,.3); }
.bottone--primario:hover { background: linear-gradient(180deg, #2A65DD, var(--elettrico-scuro) 55%); }
.campo input, .campo select, .campo textarea { background: rgba(255,255,255,.72); box-shadow: inset 0 1px 2px rgba(11,31,59,.06); }
.campo input:focus, .campo select:focus, .campo textarea:focus { background: rgba(255,255,255,.92); }

/* Testata: il vetro è su un livello proprio, la testata resta senza filtri */
.testata { background: transparent; border-bottom-color: rgba(255,255,255,.14); }
.testata::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11,31,59,.8), rgba(11,31,59,.68)); box-shadow: inset 0 -1px 0 rgba(255,255,255,.1), 0 8px 24px rgba(11,31,59,.12); -webkit-backdrop-filter: blur(20px) saturate(190%); backdrop-filter: blur(20px) saturate(190%); }
.testata:has(+ main > .sezione:first-child)::before { background: var(--notte); }
main > .eroe:first-child { margin-top: calc(var(--altezza-testata) * -1); padding-top: var(--altezza-testata); }

/* Nastro di vetro sopra la base della torre */
.nastro { position: relative; z-index: 2; margin-top: -47px; height: 47px; background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.05)); border-top: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.1); box-shadow: inset 0 1px 0 rgba(255,255,255,.14); -webkit-backdrop-filter: blur(16px) saturate(180%); backdrop-filter: blur(16px) saturate(180%); }
.nastro .diagonali { fill: var(--secondario); }

/* Modulo finale trasparente su blu notte */
.cta-finale { background: radial-gradient(36vmax 30vmax at 74% 30%, rgba(37,99,235,.55), transparent 70%), radial-gradient(30vmax 24vmax at 92% 92%, rgba(56,130,246,.34), transparent 70%), radial-gradient(26vmax 22vmax at 48% 86%, rgba(56,130,246,.2), transparent 70%), var(--notte); }
.cta-finale__modulo { background: radial-gradient(320px circle at var(--x, -320px) var(--y, -320px), rgba(255,255,255,.1), transparent 70%), linear-gradient(140deg, rgba(255,255,255,.1), rgba(255,255,255,.025)); border: 1px solid rgba(255,255,255,.24); border-radius: 20px; color: var(--bianco); box-shadow: var(--vetro-riflesso-notte), 0 24px 60px rgba(0,0,0,.26); -webkit-backdrop-filter: blur(16px) saturate(170%); backdrop-filter: blur(16px) saturate(170%); }
.cta-finale__modulo .campo label span, .cta-finale__modulo .spunta { color: var(--chiaro-su-notte); }
.cta-finale__modulo .spunta a { color: var(--bianco); }
.cta-finale__modulo .campo input, .cta-finale__modulo .campo select, .cta-finale__modulo .campo textarea { color-scheme: dark; background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.34); color: var(--bianco); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.cta-finale__modulo .campo input:focus, .cta-finale__modulo .campo select:focus, .cta-finale__modulo .campo textarea:focus { background: rgba(255,255,255,.13); border-color: var(--bianco); box-shadow: 0 0 0 3px rgba(56,130,246,.5); }
.cta-finale__modulo .campo textarea::placeholder { color: var(--chiaro-su-notte); opacity: .85; }
.cta-finale__modulo .campo select option { background: var(--notte); color: var(--bianco); }
.cta-finale__modulo .campo input:-webkit-autofill { -webkit-text-fill-color: var(--bianco); box-shadow: inset 0 0 0 60px #17345F; caret-color: var(--bianco); }
.cta-finale__modulo .spunta input { accent-color: var(--secondario); }
.cta-finale__modulo .campo__errore { color: #FFC2BC; }
.cta-finale__modulo .campo [aria-invalid="true"] { border-color: #FF9C93; }
.cta-finale__modulo .modulo__avviso { background: rgba(255,120,110,.16); border-color: rgba(255,156,147,.6); color: #FFE1DE; }

/* Popup */
.popup { background: rgba(255,255,255,.88); border: 1px solid rgba(255,255,255,.3); box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 32px 80px rgba(11,31,59,.42); -webkit-backdrop-filter: blur(26px) saturate(180%); backdrop-filter: blur(26px) saturate(180%); }
.popup::backdrop { background: rgba(11,31,59,.42); }
.popup__lato { background: rgba(11,31,59,.9); }
.popup__corpo { background: transparent; }
.popup__chiudi { background: rgba(255,255,255,.6); box-shadow: inset 0 1px 0 #fff, 0 2px 8px rgba(11,31,59,.14); }

/* Rifrazione liquida: solo Chromium su desktop (classe da sito.js) */
.vetro-rifrange .cta-finale__modulo, .vetro-rifrange .eroe__pannello, .vetro-rifrange .nastro { -webkit-backdrop-filter: url(#vetro-liquido) blur(9px) saturate(175%); backdrop-filter: url(#vetro-liquido) blur(9px) saturate(175%); }
.vetro-rifrange .testata::before { -webkit-backdrop-filter: url(#vetro-liquido) blur(24px) saturate(190%); backdrop-filter: url(#vetro-liquido) blur(24px) saturate(190%); }

@media (max-width: 860px) {
  :root { --vetro-sfoca: blur(12px) saturate(170%); }
  .popup { background: rgba(255,255,255,.92); }
  .popup__lato { background: rgba(11,31,59,.92); }
  .nastro { margin-top: 0; }
}
@media (prefers-reduced-transparency: reduce) {
  body:not(.admin)::before { display: none; }
  .card, .sezione--bianca .card, .funzione, .riquadro-prova, .sezione--bianca .riquadro-prova, .riquadro-soluzione, .impegno, .contatti__modulo, .metodo__passo, .esploratore__scheda, .faq__voce, .pannello__griglia, .schermata, .etichetta-viva, .barra-cta, .consenso, .scheda, .bottone--secondario { background: var(--bianco); -webkit-backdrop-filter: none; backdrop-filter: none; border-color: var(--bordo); }
  .testata::before, .cta-finale__modulo, .eroe__pannello, .nastro { background: var(--notte); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .popup { background: var(--bianco); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .popup__lato { background: var(--notte); }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .card, .sezione--bianca .card, .funzione, .riquadro-prova, .sezione--bianca .riquadro-prova, .riquadro-soluzione, .impegno, .contatti__modulo, .metodo__passo, .esploratore__scheda, .faq__voce, .pannello__griglia, .schermata, .etichetta-viva, .barra-cta, .consenso, .scheda, .bottone--secondario { background: rgba(255,255,255,.92); }
  .testata::before { background: var(--notte); }
  .popup { background: var(--bianco); }
  .popup__lato { background: var(--notte); }
}
@media print { body:not(.admin)::before { display: none; } }

/* ==== Linguaggio ispirato ad apple.com: titoli grandi e stretti, testi centrati, bottoni a pillola,
   riquadri chiari e scuri a tutta larghezza. Caratteri e colori restano quelli del brand kit. ==== */
:root { --altezza-testata: 60px; --raggio: 18px; --vetro-ombra: 0 6px 24px rgba(11,31,59,.06); }
body { letter-spacing: -.011em; line-height: 1.5; }
h1, h2, h3 { font-weight: 600; }
.titolo-sezione { font-size: clamp(2.1rem, 4.6vw, 3.5rem); line-height: 1.08; letter-spacing: -.028em; }
.sezione { padding: clamp(80px, 10vw, 136px) 0; }
.eroe h1 { font-size: clamp(2.6rem, 6.2vw, 5rem); line-height: 1.04; letter-spacing: -.035em; }
.eroe--pagina h1 { font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1.06; letter-spacing: -.032em; }
body:not(.admin)::before { background:
  radial-gradient(38vmax 30vmax at 10% 22%, rgba(56,130,246,.2), transparent 70%),
  radial-gradient(34vmax 30vmax at 90% 42%, rgba(37,99,235,.15), transparent 70%),
  radial-gradient(40vmax 30vmax at 55% 95%, rgba(56,130,246,.16), transparent 70%); }
.eroe::before, .cta-finale::before, .divisione::before { opacity: .5; }
.eroe::after, .cta-finale::after, .divisione::after { opacity: .5; }

/* Barra in alto sottile */
.testata__logo img { width: 128px; }
.nav__link { padding: 8px 10px; font-size: .82rem; font-weight: 400; letter-spacing: -.005em; opacity: .9; transition: opacity .18s; }
.nav__link:hover { background: none; opacity: 1; }
.nav__link[aria-current] { box-shadow: none; opacity: 1; font-weight: 600; }
.testata::before { background: rgba(11,31,59,.84); box-shadow: none; }
.testata { border-bottom-color: rgba(255,255,255,.1); }
.testata--scorsa .testata__riga { height: var(--altezza-testata) !important; }
.nav__cta { min-height: 36px; padding: 6px 16px; font-size: .82rem; }
.pannello__griglia { border-radius: 22px; padding: 14px; }
.pannello__voce { border-radius: 14px; }

/* Bottoni a pillola con pressione */
.bottone { border-radius: 980px; font-weight: 500; letter-spacing: -.01em; transition: background-color .18s, border-color .18s, color .18s, transform .16s cubic-bezier(.2,.7,.2,1); }
.bottone:active { transform: scale(.96); }
.bottone--grande { min-height: 52px; padding: 13px 28px; font-size: 1.02rem; }
.bottone--primario { background: var(--elettrico); box-shadow: inset 0 1px 0 rgba(255,255,255,.28); }
.bottone--primario:hover { background: var(--elettrico-scuro); }
.link-freccia { letter-spacing: -.01em; }
.link-freccia:hover { text-decoration: underline; text-underline-offset: .2em; }
.campo input, .campo select, .campo textarea { border-radius: 12px; }

/* Hero della home centrato: il testo sopra, la torre che sale da sotto */
.eroe--home .eroe__griglia { grid-template-columns: 1fr; gap: 0; justify-items: center; min-height: 0; text-align: center; }
.eroe--home .eroe__testo { max-width: 940px; padding: clamp(64px, 8vw, 104px) 0 8px; }
.eroe--home .occhiello { justify-content: center; }
.eroe--home .eroe__intro { margin-inline: auto; max-width: 54ch; }
.eroe--home .azioni { justify-content: center; }
.eroe--home .eroe__visuale { align-self: auto; width: 100vw; height: clamp(300px, 36vw, 520px); min-height: 0; margin: 12px calc(50% - 50vw) 0; overflow: hidden; }
.eroe--home .torre { inset: 0; min-height: 0; height: 100%; }
.eroe--home::before { left: 12%; opacity: .35; }

/* Testate di pagina e di sezione centrate */
.eroe__testo--largo { max-width: 900px; margin-inline: auto; text-align: center; padding-block: clamp(40px, 6vw, 72px) clamp(56px, 7vw, 88px) !important; }
.eroe__testo--largo .occhiello, .eroe__testo--largo .azioni { justify-content: center; }
.eroe__testo--largo .eroe__intro { margin-inline: auto; }
.intestazione { grid-template-columns: 1fr; gap: 18px; justify-items: center; margin-inline: auto; margin-bottom: clamp(40px, 5vw, 64px); max-width: 860px; text-align: center; }
.intestazione .occhiello { justify-content: center; }
.intestazione > p { max-width: 58ch; font-size: 1.14rem; line-height: 1.45; }
.sezione > .contenitore > .occhiello { justify-content: center; }
.sezione > .contenitore > .titolo-sezione { margin-inline: auto; margin-bottom: clamp(32px, 4vw, 56px); max-width: 860px; text-align: center; }

/* Prova rapida: tre colonne essenziali */
.prova-rapida { border-top: 0; }
.prova-rapida__griglia { grid-template-columns: 1fr; gap: 40px; padding: clamp(64px, 8vw, 96px) 0; justify-items: center; text-align: center; }
.prova-rapida h2 { max-width: none; font-size: clamp(1.9rem, 3.6vw, 2.8rem); letter-spacing: -.026em; }
.prova-rapida p { margin-inline: auto; font-size: 1.06rem; }
.prova-rapida__punti { width: 100%; gap: 14px; border-top: 0; }
.prova-rapida__punti li, .prova-rapida__punti li:first-child { padding: 24px; background: linear-gradient(140deg, rgba(255,255,255,.1), rgba(255,255,255,.03)); border: 1px solid rgba(255,255,255,.14); border-radius: var(--raggio); box-shadow: var(--vetro-riflesso-notte); }
.prova-rapida__punti span { font-size: .94rem; }

/* Aree: selettore a capsula di vetro e pannello centrato */
.esploratore { grid-template-columns: 1fr; gap: 20px; }
.esploratore__lista { display: flex; justify-self: center; gap: 2px; max-width: 100%; padding: 5px; overflow-x: auto; scrollbar-width: none; background: linear-gradient(140deg, rgba(255,255,255,.74), rgba(255,255,255,.42)); border: 1px solid rgba(255,255,255,.78); border-radius: 980px; box-shadow: var(--vetro-riflesso), var(--vetro-ombra); -webkit-backdrop-filter: var(--vetro-sfoca); backdrop-filter: var(--vetro-sfoca); }
.esploratore__lista::-webkit-scrollbar { display: none; }
.esploratore__scheda, .esploratore__scheda:hover, .esploratore__scheda[aria-selected="true"] { flex: none; gap: 8px; width: auto; min-height: 42px; padding: 9px 16px; border-radius: 980px; transform: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.esploratore__scheda { background: transparent; border: 0; box-shadow: none; }
.esploratore__scheda:hover { background: rgba(255,255,255,.7); border: 0; box-shadow: none; }
.esploratore__scheda[aria-selected="true"] { background: var(--notte) !important; border: 0 !important; box-shadow: none; }
.esploratore__scheda:active { transform: scale(.96); }
.esploratore__scheda::before, .esploratore__numero { display: none; }
.esploratore__nome { font: 500 .88rem/1.2 var(--corpo); letter-spacing: -.01em; white-space: nowrap; }
.esploratore__pannello { min-height: 0; padding: clamp(40px, 7vw, 88px) clamp(24px, 6vw, 80px); border-radius: 26px; text-align: center; }
.esploratore__pannello h3 { font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 600; letter-spacing: -.032em; line-height: 1.05; }
.esploratore__testo { margin-inline: auto; font-size: clamp(1.08rem, 1.6vw, 1.3rem); line-height: 1.4; }
.esploratore__pannello .spunte { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; margin: 26px auto 32px; }
.esploratore__sfondo { right: -40px; bottom: -40px; width: 300px; opacity: .16; }

/* Scheda prodotto a tutta larghezza */
.prodotto--centrato { grid-template-columns: 1fr; gap: clamp(40px, 6vw, 72px); justify-items: center; text-align: center; }
.prodotto--centrato .prodotto__testo { max-width: 800px; }
.prodotto--centrato .occhiello, .prodotto--centrato .azioni { justify-content: center; }
.prodotto--centrato .prodotto__logo { margin-inline: auto; border-radius: 14px; }
.prodotto--centrato .titolo-sezione { color: var(--bianco); }
.prodotto--centrato > .prodotto__testo > p:not(.occhiello) { margin-inline: auto; max-width: 60ch; color: var(--chiaro-su-notte); font-size: 1.14rem; line-height: 1.45; }
.spunte--riga { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; }
.tavola-prodotto .link-esterno { justify-content: center; margin-top: 20px; color: var(--bianco); }
.tavola-prodotto .schermata { width: min(100%, 880px); border-color: rgba(255,255,255,.28); border-radius: 20px; box-shadow: 0 30px 80px rgba(0,0,0,.42); }
.tavola-prodotto .schermata figcaption { border-radius: 0 0 20px 20px; }
.tavola-prodotto .schermata__barra { border-radius: 20px 20px 0 0; }
.tavola-prodotto { position: relative; overflow: hidden; background: radial-gradient(44vmax 30vmax at 50% 72%, rgba(37,99,235,.45), transparent 70%), var(--notte); }

/* La schermata cresce entrando nello schermo, dove il browser lo consente */
@supports (animation-timeline: view()) {
  .schermata--viva { animation: ingrandisci linear both; animation-timeline: view(); animation-range: entry 0% cover 42%; }
  @keyframes ingrandisci { from { transform: scale(.88); } to { transform: none; } }
}

/* Card e riquadri più silenziosi */
.card, .sezione--bianca .card { padding: 32px; border-color: rgba(255,255,255,.7); border-radius: var(--raggio); }
.card h3, .funzione h3, .riquadro-prova h3, .beneficio h3 { letter-spacing: -.018em; }
.card:has(.card__link):hover { transform: scale(1.012); }
.card__icona { border-radius: 14px; }
.segno { border-radius: 4px; }
.metodo { gap: 12px; }
.metodo__passo { border-radius: var(--raggio); }
.metodo__passo:hover { transform: translateY(-3px); box-shadow: var(--vetro-riflesso), var(--vetro-ombra); }
.faq__voce summary { letter-spacing: -.012em; }
.riquadro-soluzione, .riquadro-prova, .impegno, .contatti__modulo { border-radius: var(--raggio); }
.cta-finale h2 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: 1.06; letter-spacing: -.03em; }
.cta-finale__modulo { border-radius: 26px; }
.popup { border-radius: 26px; }
.divisione .titolo-sezione { font-size: clamp(1.9rem, 3.6vw, 2.9rem); }

@media (max-width: 860px) {
  .eroe--home .eroe__visuale { height: 280px; }
  .esploratore__lista { justify-self: stretch; margin-inline: 0; border-radius: 24px; }
  .prova-rapida__punti { grid-template-columns: 1fr; }
  .eroe__griglia--area .eroe__testo { text-align: left; }
}
@media (max-width: 620px) {
  .eroe--home .azioni .bottone { width: 100%; }
  .card, .sezione--bianca .card { padding: 24px; }
}

/* ---- Pagina Contatti ---- */
.contatti { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); }
.contatti .occhiello { justify-content: flex-start; }
.contatti h2.contatti__titolo { margin-bottom: 24px; font-size: clamp(2.1rem, 4.6vw, 3.5rem); line-height: 1.08; letter-spacing: -.028em; }
.contatti__nota { margin: -10px 0 22px; }
.contatti__voci { display: grid; gap: 12px; }
.contatto-voce { display: flex; gap: 16px; align-items: flex-start; padding: 20px; background: radial-gradient(280px circle at var(--x, -320px) var(--y, -320px), rgba(255,255,255,.55), transparent 70%), linear-gradient(140deg, rgba(255,255,255,.74), rgba(255,255,255,.42)); border: 1px solid rgba(255,255,255,.78); border-radius: var(--raggio); box-shadow: var(--vetro-riflesso), var(--vetro-ombra); -webkit-backdrop-filter: var(--vetro-sfoca); backdrop-filter: var(--vetro-sfoca); }
.contatto-voce > div { min-width: 0; }
.contatto-voce .card__icona { flex: none; margin: 0; }
.contatto-voce h3 { margin-bottom: 4px; font-size: 1.14rem; letter-spacing: -.018em; line-height: 1.3; }
.contatto-voce p, .contatto-voce > div > a:not(.bottone) { margin: 0; font-size: .97rem; line-height: 1.55; }
.contatto-voce p { color: var(--testo-2); }
.contatto-voce > div > a:not(.bottone) { overflow-wrap: anywhere; }
.contatto-voce__wa { margin-top: 12px; }
.contatti__social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.modulo__nota { margin: 12px 0 0; color: var(--testo-2); font-size: .88rem; text-align: center; }
@media (max-width: 860px) {
  .contatti { grid-template-columns: 1fr; }
}

/* Banner cookie: fondo pieno, il testo del consenso deve restare leggibile su ogni sezione */
body .consenso { background: rgba(255,255,255,.98); -webkit-backdrop-filter: none; backdrop-filter: none; border-color: var(--bordo); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .torre__finestra { opacity: .4; }
  .nastro__scorri { width: auto; }
  .nastro ul { flex-wrap: wrap; justify-content: center; }
  .nastro ul[aria-hidden] { display: none; }
  .torre__impulso { display: none; }
  .card:has(.card__link):hover, .funzione:hover, .metodo__passo:hover { transform: none; }
}
