
    :root{
      --blue-900:#0a2540; --blue-800:#0d3160; --blue-700:#114a8a; --blue-500:#3b82f6; --blue-300:#93c5fd; --blue-100:#e1effe;
      --accent:#A8D1FF; --bg:#f9fbfd; --text:#0f172a; --muted:#475569; --shadow:0 10px 30px rgba(16,24,40,.08); --radius:16px;
      --space-1:8px; --space-2:12px; --space-3:16px; --space-4:clamp(16px,1.8vw,24px); --space-5:clamp(20px,2.2vw,32px);
      --space-6:clamp(32px,3.5vw,48px); --space-7:clamp(48px,6vw,80px); --space-8:clamp(56px,8vw,96px);
    }
    *{ box-sizing:border-box } html{ scroll-behavior:smooth }
    body{ margin:0; font-family:'Roboto',system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,"Noto Sans",sans-serif; color:var(--text); background:var(--bg); line-height:1.55; }
    em,i{ font-style:italic } strong,b{ font-weight:700 } a{ color:inherit; text-decoration:none }
    .container{ width:min(1160px,92%); margin:0 auto }

    /* Header */
    .header{ position:sticky; top:0; background:rgba(255,255,255); backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid #e2e8f0; z-index:50 }
    .header .inner{ display:flex; align-items:center; justify-content:space-between; padding:10px 0; min-height:64px }
    .logo{ display:flex; align-items:center; gap:12px; color:var(--blue-900); letter-spacing:.1px; }
    .logo img{ display:block; height:55px; width:auto; max-width:500px }
    .logo .sr-only{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0 }
    .nav ul{ list-style:none; display:flex; gap:24px; margin:0; padding:0; align-items:center }
    .nav li{ display:flex; align-items:center }
    .nav a{ color:#0f172a; opacity:.9; display:inline-flex; align-items:center }
    .btn{ display:inline-flex; align-items:center; gap:8px; padding:12px 16px; border-radius:12px; border:1px solid transparent; font-weight:700; cursor:pointer; }
    .btn.primary{ background:var(--accent); color:var(--blue-900) }
    .btn.ghost{ background:transparent; border-color:#cbd5e1; color:#0f172a }
    [hidden]{ display:none !important; }
    .menu-toggle{ display:none }

    @media (max-width:960px){
      .header .inner{ flex-wrap:wrap }
      .menu-toggle{ display:inline-flex; align-items:center; gap:8px; border:1px solid #cbd5e1; background:white; border-radius:12px; padding:8px 12px; order:2; }
      .logo{ order:1 }
      .logo img{ height:70px;}
      .nav{ order:3; width:100%; display:none; position:static; background:white; border-top:1px solid #e2e8f0; padding:12px 0; }
      .nav.open{ display:block } .nav ul{ flex-direction:column; gap:12px; align-items:flex-start } .nav a{ font-size:1.02rem; padding:6px 0 }
    }

    /* Hero */
    .hero{ background:linear-gradient(180deg,var(--blue-700),var(--blue-900)); color:white; padding:var(--space-8) 0 var(--space-6) }
    .hero .grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:var(--space-5); align-items:center }
    .hero h1{ font-size:clamp(2rem,3.2vw,3.1rem); line-height:1.1; margin:0 0 10px; letter-spacing:-.02em }
    .hero p{ font-size:clamp(1.02rem,1.2vw,1.18rem); opacity:.95; margin:0; max-width:60ch }
    .hero .actions{ display:flex; gap:12px; margin-top:18px; flex-wrap:wrap }
    .hero .illustration{ background:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,.06)); border:1px solid rgba(255,255,255,.2); border-radius:var(--radius); height:320px; display:grid; place-items:center }
    @media (max-width:960px){
      .hero .grid{ grid-template-columns:1fr }
      .hero .illustration{ display:none; } /* NASCOSTA SOLO DA MOBILE */
    }

    .badge{ display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.25); color:white; padding:8px 10px; border-radius:999px; font-size:.875rem }

    /* ===== Intro centrata + feature (SEZIONE RICOSTRUITA) ===== */
    .logo-cloud{ background:white; border-top:1px solid #e2e8f0; border-bottom:1px solid #e2e8f0; padding:calc(var(--space-7) + 10px) 0 }
    /* New: layout come nell'immagine */
    .kv-hero{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(20px,4vw,48px); align-items:start; margin-bottom:clamp(28px,4.5vw,44px); }
    .kv-title{ font-size:clamp(1.8rem,2.4vw,2.2rem); line-height:1.15; margin:0 0 10px; color:#0f172a; font-weight:900; letter-spacing:.01em }
    .kv-sub{ color:var(--muted); margin:0 0 16px; max-width:60ch; }
    .kv-accent{ color:var(--blue-700); }
    .kv-actions{ margin-top:10px; display:flex; gap:12px; flex-wrap:wrap }
    .kv-right{ display:flex; flex-direction:column; gap:18px }
    .kv-item{ display:grid; grid-template-columns:44px 1fr; gap:12px; align-items:start }
    .kv-ico{ width:44px; height:44px; border-radius:10px; display:grid; place-items:center; background:var(--blue-100); color:var(--blue-700); border:1px solid #dbe7ff }
    .kv-item h3{ margin:2px 0 4px; font-size:1.03rem; color:#0f172a }
    .kv-item h3 .kv-accent{ font-weight:800 }
    .kv-item p{ margin:0; color:#334155 }
    @media (max-width:960px){ .kv-hero{ grid-template-columns:1fr } }

    /* Titolo risultati */
    .results-title{
      margin:36px auto 12px;
      text-align:center;
      font-size:clamp(1.8rem,2.8vw,2.5rem);
      color:#0f172a;
      letter-spacing:.02em;
      font-weight:800;
      line-height:1.15;
    }

    /* ===== BLOCCO RISULTATI (stile band come screenshot) ===== */
    .kv-metrics{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
    .kv-metric{ background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:20px; text-align:center; box-shadow:0 6px 18px rgba(16,24,40,.06) }
    .kv-metric-value{ font-size:clamp(2rem,3.2vw,2.8rem); font-weight:900; color:#0f172a; line-height:1; margin:0 0 6px; letter-spacing:.01em; font-variant-numeric:tabular-nums }
    .kv-metric-title{ font-weight:800; color:var(--blue-700); margin:0 0 4px }
    .kv-metric-desc{ color:#334155; margin:0; font-size:.98rem }
    @media (max-width:1024px){ .kv-metrics{ grid-template-columns:repeat(2,1fr) } }
    @media (max-width:560px){ .kv-metrics{ grid-template-columns:1fr } }

    /* ====== (ORIGINALE) RISULTATI CON GRAFICO ======
       Manteniamo la sezione e la logica JS, ma la rendiamo invisibile
       e fuori dal flusso per rispettare la richiesta di non modificare la logica. */
    .pv-offscreen{
      position:absolute !important; width:1px !important; height:1px !important;
      overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important;
      border:0 !important; padding:0 !important; margin:-1px !important;
    }

    /* ====== STILI ORIGINALI (manteniuti) ====== */
    .pv-results{
      --pv-accent: 59,130,246;
      --pv-hex-0:#73C892; --pv-rgb-0:22,163,74;   /* Decisioni pi??? rapide */
      --pv-hex-1:#dc2626; --pv-rgb-1:220,38,38;  /* Riduzione costi */
      --pv-hex-2:#7CA1F3; --pv-rgb-2:37,99,235;  /* Marginalit??? in aumento */
      --pv-hex-3:#F9C56D; --pv-rgb-3:245,158,11; /* Controllo H24 */
      --pv-sec-h: clamp(380px, 36vw, 480px);
    }
    .pv-card{ background:#fff; border:1px solid #e5e7eb; border-radius:16px; box-shadow:0 6px 18px rgba(16,24,40,.06); padding:22px; display:flex; flex-direction:column; gap:18px }
    .pv-card-unified{ background:
      radial-gradient(140% 120% at 60% -10%, rgba(99,102,241,.06), transparent 55%),
      linear-gradient(180deg,#fff 0%, #f7f9ff 100%); }

    .pv-head{ display:flex; flex-direction:column; gap:8px }
    .pv-metric-title{ margin:0; font-weight:900; font-size:clamp(1.9rem,3.2vw,2.45rem); line-height:1; color:#0f172a; font-variant-numeric:tabular-nums; transition:opacity .25s ease }
    .pv-metric-title.is-fading{ opacity:.35 }
    .pv-meter{ height:6px; background:#eef2f7; border-radius:999px; overflow:hidden; width:100%; box-shadow: inset 0 1px 2px rgba(15,23,42,.08) }
    .pv-meter>span{ display:block; height:100%; width:0%; border-radius:999px; transition:width .6s cubic-bezier(.22,1,.36,1), background .2s ease; background:linear-gradient(90deg,#7CA1F3,#6366f1); box-shadow:0 0 0 1px rgba(255,255,255,.6) inset, 0 6px 14px rgba(2,6,23,.08) }

    .pv-dots{ display:flex; justify-content:center; gap:10px; margin-top:2px }
    .pv-dot{ width:8px; height:8px; border-radius:999px; background:#cbd5e1; cursor:pointer; transition:transform .2s ease, background .2s ease, opacity .2s ease, box-shadow .2s ease }
    .pv-dots .pv-dot:nth-child(1).is-active{ background:var(--pv-hex-0); box-shadow:0 0 0 4px rgba(var(--pv-rgb-0),.18) }
    .pv-dots .pv-dot:nth-child(2).is-active{ background:var(--pv-hex-1); box-shadow:0 0 0 4px rgba(var(--pv-rgb-1),.18) }
    .pv-dots .pv-dot:nth-child(3).is-active{ background:var(--pv-hex-2); box-shadow:0 0 0 4px rgba(var(--pv-rgb-2),.18) }
    .pv-dots .pv-dot:nth-child(4).is-active{ background:var(--pv-hex-3); box-shadow:0 0 0 4px rgba(var(--pv-rgb-3),.18) }
    .pv-dot.is-active{ transform:scale(1.15); opacity:.95 }

    .pv-unigrid{
      display:grid;
      grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
      gap:22px;
      align-items:stretch;
    }
    .pv-chart-cell, .pv-captions-cell{
      height:var(--pv-sec-h);
      display:flex; flex-direction:column;
    }

    .pv-chart-wrap{
      position:relative;
      flex:1 1 auto;
      height:100%;
      display:grid; place-items:center;
      border:none; border-radius:14px; overflow:hidden;
      background:radial-gradient(120% 120% at 60% 20%, #f7f9ff 0%, #ffffff 60%);
      box-shadow:
        0 0 0 1px rgba(16,24,40,.04) inset,
        0 22px 40px rgba(var(--pv-accent), .10),
        0 10px 22px rgba(2,6,23,.06);
      margin:0 auto;
      width:100%;
    }
    .pv-chart-wrap::after{
      content:''; position:absolute; inset:0; pointer-events:none; border-radius:14px;
      background:
        radial-gradient(90% 55% at 40% 0%, rgba(var(--pv-accent), .16), transparent 60%),
        radial-gradient(60% 60% at 80% 20%, rgba(var(--pv-accent), .10), transparent 65%);
    }
    #pv-area-chart{ width:100%; height:100%; min-height:280px }

    .pv-captions-scroll{ flex:1 1 auto; padding-right:0; display:block; }
    .pv-captions-list{ display:flex; flex-direction:column; gap:12px; width:100%; }

    .pv-caption-item{
      position:relative;
      display:flex; gap:14px; align-items:flex-start;
      border-radius:14px; padding:14px 14px;
      background:linear-gradient(180deg,#ffffff 0%, #f9fbff 100%);
      border:1px solid #e5e7eb;
      transition:transform .18s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease, opacity .2s ease, filter .2s ease;
      will-change:transform;
      isolation:isolate;
    }
    .pv-captions-list .pv-caption-item{ --pv-item-hex: var(--pv-hex-2); --pv-item-rgb: var(--pv-rgb-2); }
    .pv-captions-list .pv-caption-item:nth-child(1){ --pv-item-hex: var(--pv-hex-0); --pv-item-rgb: var(--pv-rgb-0); }
    .pv-captions-list .pv-caption-item:nth-child(2){ --pv-item-hex: var(--pv-hex-1); --pv-item-rgb: var(--pv-rgb-1); }
    .pv-captions-list .pv-caption-item:nth-child(3){ --pv-item-hex: var(--pv-hex-2); --pv-item-rgb: var(--pv-rgb-2); }
    .pv-captions-list .pv-caption-item:nth-child(4){ --pv-item-hex: var(--pv-hex-3); --pv-item-rgb: var(--pv-rgb-3); }

    .pv-caption-item::before{
      content:''; position:absolute; inset:0; border-radius:14px; pointer-events:none;
      padding:1px;
      background:linear-gradient(145deg, rgba(var(--pv-item-rgb), .28), rgba(var(--pv-item-rgb), .06));
      -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
      -webkit-mask-composite: xor; mask-composite: exclude;
      opacity:.6; transition:opacity .25s ease, filter .25s ease;
    }
    .pv-caption-item::after{
      content:''; position:absolute; inset:-10px; border-radius:18px; pointer-events:none;
      background:radial-gradient(70% 70% at 50% 50%, rgba(var(--pv-item-rgb),.16), transparent 70%);
      filter: blur(12px); opacity:0; transition:opacity .25s ease, filter .25s ease;
    }
    .pv-caption-item:hover{ transform:translateY(-1px); box-shadow:0 10px 20px rgba(2,6,23,.06); border-color:#dfe3ea }
    .pv-caption-item:hover::before{ opacity:.9 }
    .pv-caption-item.active{
      border-color: rgba(var(--pv-item-rgb), .42);
      background:linear-gradient(180deg, rgba(var(--pv-item-rgb), .06), #ffffff 60%);
      box-shadow:0 12px 24px rgba(16,24,40,.08), 0 0 0 2px rgba(var(--pv-item-rgb), .10) inset;
    }
    .pv-caption-item.active::before{ opacity:1; filter:saturate(1.05) }
    .pv-caption-item.active::after{ opacity:1 }

    .pv-caption-icon{
      width:44px; height:44px; flex:0 0 44px; border-radius:12px; display:grid; place-items:center;
      background:rgba(var(--pv-item-rgb), .10); border:1px solid rgba(var(--pv-item-rgb), .30);
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.6);
      color: var(--pv-item-hex);
    }
    .pv-caption-icon svg{ width:22px; height:22px; }

    .pv-caption-body{ flex:1 1 auto; min-width:0 }
    .pv-caption-top{ display:grid; grid-template-columns:1fr auto; align-items:start; gap:6px 12px; margin-bottom:4px; }
    .pv-caption-title{ margin:0; font-size:1.04rem; font-weight:800; color:#0f172a; line-height:1.25 }
    .pv-caption-perc{ font-weight:900; color:var(--pv-item-hex); font-variant-numeric:tabular-nums; text-align:right; min-width:5ch; letter-spacing:.02em }
    .pv-caption-text{ margin:0; color:#334155; line-height:1.45 }
    .pv-caption-item.inactive{ opacity:.96 }

    /* Sezioni generiche */
    .section{ padding:calc(var(--space-7) + 10px) 0 }
    .kicker{ text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; font-weight:700; color:var(--blue-500) }
    .title{ font-size:clamp(1.6rem,2.2vw,2.2rem); margin:8px 0 8px }
    .lead{ color:var(--muted); max-width:120ch; margin:0 } 

    /* Cards generiche */
    .cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:20px }
    .card{ background:white; border:1px solid #e2e8f0; border-radius:16px; padding:20px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:10px }
    .card .icon{ width:42px; height:42px; border-radius:10px; background:var(--blue-100); display:flex; align-items:center; justify-content:center; color:var(--blue-700) }
    .card ul{ margin:0 0 0 18px; color:#334155 }
    .card a.cta-link{ margin-top:auto }
    .card a.cta-link.btn{ display:flex; justify-content:center; width:100%; text-align:center }
    @media (max-width:1200px){ .cards{ grid-template-columns:repeat(2,1fr) } }
    @media (max-width:960px){ .cards{ grid-template-columns:1fr } }

    /* Come funziona */
    .split{ display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:center; margin-top:24px }
    .split .illustration{ height:300px; border-radius:16px; border:1px solid #e2e8f0; background:linear-gradient(180deg,var(--blue-100),#fff); display:grid; place-items:center; color:var(--blue-700) }
    .split h3{ margin:0 0 8px }
    @media (max-width:960px){ .split{ grid-template-columns:1fr } }

    .how-icon { width:100%; max-width:470px; aspect-ratio: 45 / 25; border-radius:14px; }
    .how-icon img{ width:100%; height:100%; object-fit:contain; display:block }

    /* CTA finale */
    .cta-band{ background:linear-gradient(180deg,var(--blue-700),var(--blue-900)); color:white; border-radius:16px; padding:22px; display:flex; align-items:center; justify-content:space-between; gap:16px }
    .cta-band h3{ margin:0 }
    @media (max-width:960px){ .cta-band{ flex-direction:column; align-items:flex-start } }

    /* Footer */
    .footer{ background:#0b1f36; color:#cbd5e1; padding:48px 0; margin-top:var(--space-7) }
    .footer a{ color:#cbd5e1 }
    .footer .cols{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:24px }
    .footer .brand{ color:white; font-weight:800; font-size:1.1rem }
    @media (max-width:960px){ .footer .cols{ grid-template-columns:1fr 1fr } }

    /* ========= Soluzioni (2x2) ========= */
    .section.solutions-band{ background:linear-gradient(180deg,var(--blue-700),var(--blue-900)); color:white; padding:calc(var(--space-8) + 10px) 0; min-height:clamp(560px,72vh,900px); position:relative; overflow:hidden; scroll-margin-top:90px; }
    .section.solutions-band .kicker{ color:var(--blue-100) } .section.solutions-band .title{ color:#fff } .section.solutions-band .lead{ color:rgba(255,255,255,.92) }
    .solutions-3d{ display:flex; flex-direction:column; gap:16px }
    .cards-3d{ display:grid; grid-template-columns:repeat(2,minmax(280px,1fr)); gap:32px 28px; align-items:stretch; margin-top:22px; overflow:visible }
    @media (max-width:980px){ .cards-3d{ grid-template-columns:1fr; gap:22px } }

    .box{ --card-accent:var(--blue-500); position:relative; width:100%; min-height:360px; display:flex; justify-content:center; align-items:center; padding:8px; transition:transform .35s ease, filter .35s ease; will-change:transform; isolation:isolate }
    .box:hover{ transform:translateY(-3px) }
    .box::before,.box::after{ content:''; position:absolute; inset:8px 18% 8px 18%; border-radius:12px; transform:skewX(10deg); transition:.45s ease; z-index:0 }
    .box::after{ filter:blur(24px); opacity:.85 }
    .box:hover::before,.box:hover::after{ inset:8px 12% 8px 12%; transform:skewX(0) }
    .cards-3d .box:nth-child(1){ --card-accent:#3b82f6 } 
    .cards-3d .box:nth-child(2){ --card-accent:#3b82f6 }
    .cards-3d .box:nth-child(3){ --card-accent:#3b82f6 }
    .cards-3d .box:nth-child(4){ --card-accent:#3b82f6 }
    .cards-3d .box:nth-child(1)::before,.cards-3d .box:nth-child(1)::after{ background:linear-gradient(315deg,var(--card-accent),#114a8a) } 
    .cards-3d .box:nth-child(2)::before,.cards-3d .box:nth-child(2)::after{ background:linear-gradient(315deg,#114a8a,var(--card-accent)) }
    .cards-3d .box:nth-child(3)::before,.cards-3d .box:nth-child(3)::after{ background:linear-gradient(315deg,var(--card-accent),#114a8a)  }
    .cards-3d .box:nth-child(4)::before,.cards-3d .box:nth-child(4)::after{ background:linear-gradient(315deg,#114a8a,var(--card-accent)) }

    .box>span{ position:absolute; inset:0; z-index:1; pointer-events:none; display:block }
    .box>span::before,.box>span::after{ content:''; position:absolute; border-radius:12px; background:rgba(255,255,255,.12); backdrop-filter:blur(10px); box-shadow:0 5px 15px rgba(0,0,0,.08); opacity:0; transition:.45s ease; animation:solutions-float 2.2s ease-in-out infinite }
    .box>span::before{ top:8px; left:8px; width:0; height:0 } .box>span::after{ bottom:8px; right:8px; width:0; height:0; animation-delay:-1.1s }
    .box:hover>span::before,.box:hover>span::after{ width:88px; height:88px; opacity:1 }
    @keyframes solutions-float{ 0%,100%{ transform:translateY(6px) } 50%{ transform:translate(-6px) } }
    @media (prefers-reduced-motion:reduce){ .box,.box::before,.box::after,.box>span::before,.box>span::after{ transition:none; animation:none } }

    .content{ position:relative; z-index:2; padding:26px 28px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(10px); border-radius:14px; box-shadow:0 5px 15px rgba(0,0,0,.18); color:#fff; width:100%; transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease }
    .box:hover .content{ transform:translateY(-2px); box-shadow:0 12px 32px rgba(0,0,0,.28),0 0 0 1px rgba(255,255,255,.28); border-color:rgba(255,255,255,.32) }
    .content .icon{ width:44px; height:44px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.16); color:#fff; border:1px solid rgba(255,255,255,.24); margin-bottom:10px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.12) }
    .content h3{ font-size:1.5rem; margin:6px 0 8px; color:#fff } .content p{ margin:0 0 10px; color:rgba(255,255,255,.92) } .content ul{ margin:0 0 0 18px; color:rgba(255,255,255,.9) }
    .content a.btn.primary{ background:#fff; color:#111; border-color:transparent; margin-top:6px; transition:background .25s ease,color .25s ease,box-shadow .25s ease }
    .content a.btn.primary:hover{ background:var(--card-accent); color:#0b1f36; box-shadow:0 1px 16px rgba(0,0,0,.22) }

    /* Biscotto */
    .cookie-fab{ position:fixed; bottom:max(16px,env(safe-area-inset-bottom)); left:max(16px,env(safe-area-inset-left)); right:auto; z-index:9999; display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:999px; border:1px solid rgba(15,23,42,.08); background:#fff; box-shadow:0 8px 24px rgba(2,6,23,.12); color:#0f172a; cursor:pointer; transition:transform .15s ease, box-shadow .2s ease, background .2s ease }
    .cookie-fab:hover{ transform:translateY(-1px); box-shadow:0 12px 28px rgba(2,6,23,.16) } .cookie-fab:active{ transform:translateY(0) }
    .cookie-fab:focus-visible{ outline:2px solid #93c5fd; outline-offset:3px }
    .cookie-fab .hint{ position:absolute; left:66px; bottom:50%; transform:translateY(50%); background:#0b1f36; color:#fff; padding:6px 10px; border-radius:10px; font-size:.8rem; white-space:nowrap; box-shadow:0 6px 20px rgba(0,0,0,.2); opacity:0; pointer-events:none; transition:opacity .2s ease }
    .cookie-fab:hover .hint{ opacity:.95 }      

     
    /* ===== Cards piani ===== */
    .plans-wrap {
      padding: var(--space-5) 0;
      background:
        radial-gradient(1200px 400px at 10% 0%, rgba(17, 74, 138, 0.00), transparent 60%),
        radial-gradient(1200px 400px at 90% 100%, rgba(59, 130, 246, 0.00), transparent 60%);
    }
    .plans-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom: 6px; }
    .section-title { margin: 0; font-size: clamp(1.35rem, 2.6vw, 1.85rem); color: #0f172a; letter-spacing: -.01em; }
    .section-kicker { margin: 0; color: #475569; font-size: .98rem; }

    .grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px }
    .plan {
      grid-column: span 12;
      background: linear-gradient(180deg, rgba(255, 255, 255, .75), rgba(255, 255, 255, .55));
      border: 1px solid rgba(16, 24, 40, .12);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 22px; position: relative; display: flex; flex-direction: column; overflow: hidden;
      backdrop-filter: saturate(140%) blur(8px); transform: translateZ(0);
      transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
    }
    .plan:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(16,24,40,.12); border-color: rgba(17,74,138,.25); }
    .plan::before { content: ''; position: absolute; inset: -50% -50% auto auto; width: 200%; height: 200%;
      background: linear-gradient(45deg, transparent, rgba(255,255,255,.18), transparent); transform: rotate(45deg) translateX(-100%); pointer-events: none; }
    .plan:hover::before { animation: shine 1s forwards; }
    @keyframes shine { 0%{transform:rotate(45deg) translateX(-100%);}100%{transform:rotate(45deg) translateX(30%);} }
    .plan.popular::after { content: "Popolare"; position: absolute; top: 14px; right: -34px; transform: rotate(45deg);
      background: linear-gradient(135deg, var(--blue-700), var(--blue-500)); color:#fff; font-size:.75rem; font-weight:800; letter-spacing:.06em; padding:6px 48px; box-shadow:0 6px 16px rgba(17,74,138,.25); }
    .plan h3 { margin: 0 0 6px; color: #0f172a; font-size: 1.25rem }
    .subtitle { color: #475569; font-size: .95rem; margin-bottom: 10px }
    .price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; transition: transform .5s ease, opacity .5s ease; }
    .price .currency { font-weight: 800; color: var(--blue-700) }
    .price .amount { font-size: 2rem; font-weight: 900; color: #0f172a; line-height: 1 }
    .price .vat { color: #475569; font-size: .9rem }
    .price.animate { animation: priceChange .5s ease; }
    @keyframes priceChange { 0%{transform:translateY(-14px);opacity:0;}100%{transform:translateY(0);opacity:1;} }
    .plan.flip { animation: flipCard .6s ease; transform-style: preserve-3d; }
    @keyframes flipCard { 0%{transform:rotateY(0deg);}50%{transform:rotateY(90deg);}100%{transform:rotateY(0deg);} }
    .features { margin: 14px 0 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; color: #334155 }
    .check { width: 22px; height: 22px; border-radius: 6px; background: var(--blue-100); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 22px; color: var(--blue-700) }
    .check svg { width: 14px; height: 14px; fill: currentColor }
    .features li { display: flex; align-items: flex-start; gap: 10px }
    .plan .note { margin-top: 8px; color: #475569; font-size: .85rem }
    .setup-badge { margin-top: 8px; display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 999px; background: rgba(168,209,255,.18); border: 1px solid rgba(168,209,255,.55); color: var(--blue-800); font-weight: 700; font-size: .9rem; width: fit-content; }
    .audience { margin-top: 12px; color: #475569; font-size: .95rem; }
    .plan .cta { margin-top: auto; display: flex; justify-content: center; padding-top: 16px; }
    .plan .cta a { display: inline-flex; align-items: center; gap: 8px; padding: 12px 16px; border-radius: 12px; background: linear-gradient(180deg, rgba(168,209,255,.65), rgba(168,209,255,.9)); color: var(--blue-900); font-weight: 800; border: 1px solid rgba(168,209,255,.55); transition: transform .25s ease, box-shadow .25s ease; }
    .plan .cta a:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(59,130,246,.2); }
    @media (min-width:740px) { .plan { grid-column: span 6 } }
    @media (min-width:992px) { .plan { grid-column: span 4 } .plan.full { grid-column: 1 / -1; } }

    /* ===== Moduli ===== */
    .module-grid{ gap:18px; }
    .module-card{ border-top:3px solid var(--module-accent, #3b82f6); }
    .module-card .module-icon{
      width:44px;
      height:44px;
      border-radius:12px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:rgba(15,23,42,.04);
      border:1px solid rgba(15,23,42,.08);
      color:var(--module-accent, #3b82f6);
      margin-bottom:12px;
    }
    .module-card .cta{
      margin-top:auto;
      display:flex;
      justify-content:flex-start;
      padding-top:16px;
    }
    .module-card .cta .btn{
      border-color:rgba(148,163,184,.6);
    }
    .module-chatgenia{ --module-accent:#6EC9F2; }
    .module-benchmark{ --module-accent:#7CA1F3; }
    .module-strategic{ --module-accent:#7795E8; }
    .module-decision{ --module-accent:#6FADA8; }
    .module-cashflow{ --module-accent:#6EBFB8; }
    .module-budget{ --module-accent:#67B5DD; }
    .module-rfm{ --module-accent:#E8AD6A; }
    .module-cross{ --module-accent:#F9C56D; }
    .module-magazzino{ --module-accent:#73C892; }

    /* ===== Differenziazione visiva PARTNER ===== */
    .plan.partners {
      background: linear-gradient(180deg, #0d1e34, #09182b);
      color: #e6eef9;
      border: 1px solid rgba(255,255,255,.14);
    }
    .plan.partners .subtitle {
      color: var(--accent);
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .08em;
      margin-bottom: 6px;
    }
    .plan.partners h3 { color: #ffffff; }
    .plan.partners .features { color: #e2e8f0; }
    .plan.partners .check { background: rgba(255,255,255,.16); color: #fff; }
    .plan.partners .partner-lead { color: #dbe8ff; }
    .partner-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top: 10px; }
    .partner-actions small { color: #cbd5e1 }
/* CTA band */
     .cta-band { background: linear-gradient(180deg, var(--blue-700), var(--blue-900)); color: #fff; border-radius: 16px; padding: 22px; display: flex; align-items: center; justify-content: space-between; gap: 16px }
     .cta-band h3 { margin: 0 }
     @media (max-width:960px) { .cta-band { flex-direction: column; align-items: flex-start } }

    /* ===== Sezione integrazioni: "Fallo comunicare con..." ===== */
    .integrations-section{
      background:#f1f5f9;
    }
    .integrations-head{
      display:flex;
      flex-direction:column;
      gap:4px;
      margin-bottom:var(--space-4);
      text-align:left;
    }
    .integrations-grid{
      margin-top:var(--space-3);
    }
    .integration-card{
      display:flex;
      flex-direction:column;
      gap:12px;
    }
    .integration-media{
      border-radius:12px;
      background:linear-gradient(135deg,rgba(148,163,184,.16),rgba(148,163,184,.04));
      padding:10px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
    }
    .integration-media img{
      max-height:120px;
      width:auto;
      display:block;
    }
    .integration-tag{
      font-size:.8rem;
      text-transform:uppercase;
      letter-spacing:.08em;
      color:var(--blue-700);
      font-weight:700;
    }
    .integration-title{
      margin:2px 0 0;
      font-size:1.02rem;
      color:#0f172a;
    }
    .integration-desc{
      margin:0;
      color:#475569;
      font-size:.95rem;
    }
    .integration-link{
      margin-top:auto;
      font-size:.92rem;
      font-weight:700;
      display:inline-flex;
      align-items:center;
      gap:8px;
      color:var(--blue-700);
    }
    .integration-link svg{
      width:16px;
      height:16px;
    }


  
    /* ===== Prenota Demo guidata ===== */
    .demo-booking{
      position:relative;
      overflow:hidden;
      background:linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
      border-top:1px solid #e2e8f0;
      border-bottom:1px solid #e2e8f0;
    }
    .demo-booking .container{
      position:relative;
      z-index:1;
    }
    .demo-booking::before{
      content:'';
      position:absolute;
      top:-120px;
      right:-180px;
      width:360px;
      height:360px;
      background:radial-gradient(circle, rgba(59,130,246,.15), rgba(59,130,246,0) 65%);
      pointer-events:none;
    }
    .demo-booking::after{
      content:'';
      position:absolute;
      bottom:-160px;
      left:-120px;
      width:320px;
      height:320px;
      background:radial-gradient(circle, rgba(20,74,138,.12), rgba(20,74,138,0) 70%);
      pointer-events:none;
    }
    .demo-booking-stack{
      display:flex;
      flex-direction:column;
      gap:24px;
      align-items:stretch;
    }
    .demo-booking-copy .lead{
      max-width:70ch;
    }
    .demo-booking-points{
      margin:12px 0 0 18px;
      color:#475569;
    }
    .demo-booking-card{
      width:100%;
      position:relative;
      overflow:hidden;
      background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
      border:1px solid rgba(148,163,184,.35);
      border-radius:16px;
      box-shadow:0 22px 40px rgba(16,24,40,.12);
      padding:20px;
    }
    .demo-booking-card::before{
      content:'';
      position:absolute;
      inset:0;
      border-radius:16px;
      pointer-events:none;
      border:1px solid rgba(59,130,246,.15);
    }
    .demo-booking-card::after{
      content:'';
      position:absolute;
      top:-80px;
      right:-80px;
      width:180px;
      height:180px;
      background:radial-gradient(circle, rgba(59,130,246,.18), rgba(59,130,246,0) 70%);
      pointer-events:none;
    }
    .demo-booking-header{
      display:flex;
      gap:12px;
      align-items:center;
      margin-bottom:14px;
      padding-bottom:12px;
      border-bottom:1px solid rgba(148,163,184,.35);
    }
    .demo-booking-icon{
      width:48px;
      height:48px;
      border-radius:12px;
      display:grid;
      place-items:center;
      background:linear-gradient(135deg, #e1effe, #ffffff);
      color:var(--blue-700);
      box-shadow:0 10px 18px rgba(15,23,42,.12);
    }
    .demo-booking-title{
      margin:0;
      font-size:1.12rem;
      color:#0f172a;
    }
    .demo-booking-subtitle{
      margin:4px 0 0;
      color:#475569;
      font-size:.92rem;
    }
    .demo-booking-grid-form{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:12px;
    }
    .demo-booking-field{
      display:flex;
      flex-direction:column;
      gap:6px;
    }
    .demo-booking-field label{
      font-size:.9rem;
      font-weight:700;
      color:#0f172a;
    }
    .demo-booking-field input,
    .demo-booking-field textarea{
      border:1px solid #d7e2ee;
      border-radius:12px;
      padding:10px 12px;
      font:inherit;
      background:#f8fafc;
      color:#0f172a;
    }
    .demo-booking-field input:focus,
    .demo-booking-field textarea:focus{
      outline:2px solid #3b82f6;
      outline-offset:1px;
      border-color:#3b82f6;
    }
    .demo-booking-field textarea{
      resize:vertical;
      min-height:110px;
    }
    .demo-booking-field--full{
      grid-column:1 / -1;
    }
    .demo-booking-footer{
      margin-top:16px;
      padding-top:12px;
      border-top:1px solid rgba(148,163,184,.35);
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      align-items:center;
    }
    .demo-booking-check{
      display:flex;
      gap:8px;
      align-items:flex-start;
      font-size:.88rem;
      color:#475569;
      max-width:70ch;
    }
    .demo-booking-check input{
      margin-top:3px;
    }
    .demo-booking-note{
      margin:0;
      font-size:.85rem;
      color:#64748b;
      flex-basis:100%;
    }

    @media (max-width:640px){
      .demo-booking-grid-form{
        grid-template-columns:1fr;
      }
    }

    /* ===== Contact form (step-by-step) ===== */
    .contact-form-card{
      background:#ffffff;
      border-radius:var(--radius);
      border:1px solid #e2e8f0;
      box-shadow:var(--shadow);
      padding:20px 22px 18px;
      position:relative;
      overflow:hidden;
    }
    .contact-form-card::before{
      content:'';
      position:absolute;
      inset:-50% -40% auto auto;
      background:radial-gradient(120% 80% at 100% 0%, rgba(98,125,166,.16), transparent 60%);
      opacity:.75;
      pointer-events:none;
    }
    .contact-form-header{
      position:relative;
      display:flex;
      align-items:flex-start;
      gap:12px;
      margin-bottom:14px;
      z-index:1;
    }
    .contact-form-header-icon{
      width:40px;
      height:40px;
      border-radius:999px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:rgba(140,162,201,.18);
      color:var(--blue-700);
      border:1px solid rgba(140,162,201,.6);
    }
    .contact-form-title{
      margin:0;
      font-size:1.1rem;
      color:#0f172a;
      font-weight:800;
    }
    .contact-form-subtitle{
      margin:3px 0 0;
      font-size:.9rem;
      color:#475569;
    }

    .contact-form{
      position:relative;
      z-index:1;
      display:flex;
      flex-direction:column;
      gap:14px;
    }
    .contact-form--steps{
      gap:16px;
    }
    .contact-stepper{
      display:flex;
      align-items:center;
      gap:12px;
      font-size:.85rem;
      color:#475569;
    }
    .contact-stepper-bar{
      flex:1;
      height:6px;
      border-radius:999px;
      background:#e2e8f0;
      overflow:hidden;
    }
    .contact-stepper-bar span{
      display:block;
      height:100%;
      width:25%;
      background:linear-gradient(90deg, rgba(98,125,166,.9), rgba(27,119,189,.95));
      transition:width .2s ease;
    }
    .contact-step{
      display:none;
    }
    .contact-step.is-active{
      display:block;
    }
    .contact-question{
      margin:0 0 10px;
      font-weight:700;
      color:#0f172a;
    }
    .contact-options{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:10px;
    }
    .contact-options--modules{
      grid-template-columns:repeat(3,minmax(0,1fr));
    }
    @media (max-width:900px){
      .contact-options--modules{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }
    }
    .option-card{
      display:flex;
      align-items:center;
      gap:8px;
      padding:10px 12px;
      border-radius:12px;
      border:1px solid #cbd5e1;
      background:#fff;
      cursor:pointer;
      font-weight:600;
      color:#0f172a;
      transition:box-shadow .18s ease, border-color .18s ease, transform .18s ease;
    }
    .option-card input{
      margin:0;
    }
    .option-card.is-selected{
      border-color:var(--blue-500);
      box-shadow:0 0 0 2px rgba(98,125,166,.18);
      background:#f8fafc;
    }
    .contact-step-actions{
      margin-top:12px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }
    .contact-helper{
      margin:6px 0 0;
      font-size:.84rem;
      color:#64748b;
    }
    .contact-error{
      margin:6px 0 0;
      font-size:.84rem;
      color:#b45309;
    }
    .contact-error[hidden]{
      display:none;
    }

    .contact-form-grid{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:12px 18px;
    }
    .form-field{
      display:flex;
      flex-direction:column;
      gap:6px;
    }
    .form-field.field-full{
      grid-column:1/-1;
    }
    .field-label{
      display:inline-flex;
      align-items:center;
      gap:6px;
      font-size:.9rem;
      font-weight:600;
      color:#0f172a;
    }
    .field-label-icon{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:18px;
      height:18px;
      border-radius:6px;
      background:rgba(140,162,201,.16);
      color:var(--blue-700);
      font-size:.72rem;
    }
    .contact-form input[type="text"],
    .contact-form input[type="email"],
    .contact-form input[type="tel"],
    .contact-form input[type="date"],
    .contact-form input[type="time"],
    .contact-form input[type="datetime-local"],
    .contact-form textarea{
      border-radius:10px;
      border:1px solid #cbd5e1;
      padding:9px 11px;
      font-size:.95rem;
      font-family:inherit;
      color:#0f172a;
      background:#ffffff;
      transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
    }
    .contact-form textarea{
      resize:vertical;
      min-height:120px;
    }
    .contact-form input::placeholder,
    .contact-form textarea::placeholder{
      color:#9ca3af;
    }
    .contact-form input:focus,
    .contact-form textarea:focus{
      outline:none;
      border-color:var(--blue-500);
      box-shadow:0 0 0 1px rgba(140,162,201,.5), 0 0 0 4px rgba(140,162,201,.22);
      background:#ffffff;
    }

    .contact-form-footer{
      margin-top:6px;
      display:flex;
      flex-direction:column;
      gap:10px;
    }
    .checkbox-field{
      display:flex;
      align-items:flex-start;
      gap:8px;
      font-size:.85rem;
      color:#475569;
    }
    .checkbox-field input[type="checkbox"]{
      margin-top:2px;
      width:16px;
      height:16px;
      border-radius:4px;
      border:1px solid #cbd5e1;
    }
    .checkbox-field a{
      text-decoration:underline;
    }
    .contact-form-footer .btn{
      align-self:flex-start;
    }
    .contact-form-note{
      margin:2px 0 0;
      font-size:.8rem;
      color:#64748b;
    }

    @media (max-width:640px){
      .contact-options{
        grid-template-columns:1fr;
      }
      .contact-form-grid{
        grid-template-columns:1fr;
      }
      .contact-form-card{
        padding:18px 16px 16px;
      }
    }


    /* ===== Modali moduli ===== */
    .module-modal{
      position:fixed;
      inset:0;
      display:none;
      align-items:center;
      justify-content:center;
      background:rgba(15,23,42,.55);
      backdrop-filter:blur(10px);
      z-index:10000;
      padding:20px;
    }
    .module-modal.is-open{
      display:flex;
    }
    .module-modal__panel{
      width:min(880px, 100%);
      max-height:90vh;
      overflow:auto;
      background:#ffffff;
      border-radius:18px;
      box-shadow:0 24px 48px rgba(15,23,42,.35);
      padding:22px 24px 24px;
      border:1px solid rgba(15,23,42,.08);
      position:relative;
    }
    .module-modal__header{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin-bottom:12px;
    }
    .module-modal__kicker{
      font-size:.75rem;
      text-transform:uppercase;
      letter-spacing:.12em;
      color:var(--blue-700);
      font-weight:700;
    }
    .module-modal__icon{
      width:64px;
      height:64px;
      border-radius:16px;
      display:grid;
      place-items:center;
      background:rgba(148,163,184,.15);
      color:var(--module-accent, var(--blue-700));
      border:1px solid rgba(148,163,184,.35);
      margin:10px 0 12px;
    }
    .module-modal__icon svg{
      width:34px;
      height:34px;
    }
    .module-modal__close{
      border:0;
      background:#e2e8f0;
      color:#0f172a;
      border-radius:999px;
      width:36px;
      height:36px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      cursor:pointer;
    }
    .module-modal__close:hover{
      background:#cbd5e1;
    }
    .module-price{
      font-weight:800;
      color:#0f172a;
      margin:6px 0 12px;
    }
    .module-modal p{
      color:#475569;
    }
    .module-modal ul.features{
      margin:0 0 0 18px;
      color:#475569;
    }
    .module-modal__notice{
      margin-top:14px;
      background:#fef9c3;
      color:#854d0e;
      border:1px solid #fde68a;
      padding:10px 12px;
      border-radius:12px;
      font-weight:600;
      text-align:center;
    }
.partner-modal__title{
    margin:18px 0 8px;
    font-size:1.05rem;
    color:#ffffff;
  }
  .partner-modal__divider{
    border:0;
    border-top:1px solid rgba(255,255,255,.18);
    margin:18px 0;
  }
  .partner-modal__grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:16px;
    margin:18px 0 8px;
  }
  .partner-modal__card{
    border-radius:14px;
    padding:14px 16px;
    border:1px solid rgba(255,255,255,.14);
    border-left:4px solid var(--partner-accent, #A8D1FF);
    background: linear-gradient(180deg, #0d1e34, #09182b);
    color:#e6eef9;
    box-shadow:0 12px 26px rgba(2,6,23,.18);
    position:relative;
    overflow:hidden;
  }
  .partner-modal__card::after{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(120deg, rgba(255,255,255,.06), transparent 55%);
    pointer-events:none;
  }
  .partner-modal__card p{
    margin:0 0 8px;
    color:#dbe8ff;
  }
  .partner-modal__card--tone-1{ --partner-accent:#A8D1FF; }
  .partner-modal__card--tone-2{ --partner-accent:#7DD3FC; }
  .partner-modal__card--tone-3{ --partner-accent:#F9C56D; }
  .partner-modal__card--tone-4{ --partner-accent:#C4B5FD; }
  .partner-modal__card--tone-5{ --partner-accent:#93C5FD; }
  .partner-modal__card--tone-6{ --partner-accent:#FCA5A5; }
  .partner-modal__card .features{
      margin:0 0 0 18px;
      color:#ffffff;
    }
    .partner-modal__card .features li{
      color:#ffffff;
    }
  .partner-modal__intro{
  margin-bottom:16px;
}
@media (max-width:760px){
  .partner-modal__grid{
    grid-template-columns:1fr;
  }
}
.module-modal__actions{
  margin-top:16px;
  display:flex;
  justify-content:flex-end;
}
@media (max-width:640px){
  .module-modal__actions{
    justify-content:flex-start;
  }
  .module-modal__actions .btn{
    width:100%;
    justify-content:center;
  }
}
    @media (max-width:640px){
      .module-modal__panel{
        padding:18px 16px;
      }
      .module-modal__icon{
        width:56px;
        height:56px;
      }
    }
/* ===== MODALE "Richiedi Demo Guidata" + modali stile condiviso ===== */
  .demo-modal{
    position:fixed;
    inset:0;
    padding:20px;
    display:none;
    align-items:center;
    justify-content:center;
    background:rgba(15,23,42,.55);
    backdrop-filter:blur(10px);
    z-index:10000;
  }
  .demo-modal.is-open{
    display:flex;
  }
  .demo-modal__panel{
    width:min(980px,100%);
    max-height:min(90vh,760px);
    background:#ffffff;
    border-radius:16px;
    box-shadow:0 24px 48px rgba(15,23,42,.35);
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .demo-modal__header{
    padding:18px 22px 10px;
    border-bottom:1px solid #e2e8f0;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
  }
  .demo-modal__eyebrow{
    margin:0;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:#3b82f6;
    font-weight:700;
  }
  .demo-modal__title{
    margin:4px 0 0;
    font-size:1.35rem;
    color:#0f172a;
    letter-spacing:-.01em;
  }
  .demo-modal__close{
    border:none;
    background:transparent;
    color:#64748b;
    padding:4px;
    border-radius:999px;
    cursor:pointer;
    line-height:1;
  }
  .demo-modal__close:hover{
    background:#e2e8f0;
    color:#0f172a;
  }
  .demo-modal__body{
    padding:14px 22px 20px;
    overflow-y:auto;
  }
  .contact-modal .demo-modal__panel{
    width:min(760px,94vw);
  }
  .contact-modal__lead{
    margin:0 0 16px;
    color:#475569;
    font-size:.95rem;
  }
  .contact-modal__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .contact-modal__field{
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  .contact-modal__field label{
    font-size:.9rem;
    font-weight:700;
    color:#0f172a;
  }
  .contact-modal__field input,
  .contact-modal__field textarea{
    border:1px solid #cbd5e1;
    border-radius:12px;
    padding:10px 12px;
    font:inherit;
    background:#fff;
    color:#0f172a;
  }
  .contact-modal__field input:focus,
  .contact-modal__field textarea:focus{
    outline:2px solid #3b82f6;
    outline-offset:1px;
    border-color:#3b82f6;
  }
  .contact-modal__field textarea{
    resize:vertical;
    min-height:110px;
  }
  .contact-modal__field--full{
    grid-column:1 / -1;
  }
  .contact-modal__footer{
    margin-top:14px;
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:center;
    justify-content:space-between;
  }
  .contact-modal__check{
    display:flex;
    gap:8px;
    align-items:flex-start;
    font-size:.9rem;
    color:#475569;
    max-width:65ch;
  }
  .contact-modal__check input{
    margin-top:3px;
  }
  .contact-modal__note{
    flex-basis:100%;
    margin:0;
    font-size:.85rem;
    color:#64748b;
  }  .demo-step-indicator{
    font-size:.8rem;
    text-transform:uppercase;
    letter-spacing:.09em;
    color:#64748b;
    margin-bottom:10px;
  }
  .demo-step-panel{
    display:none;
  }
  .demo-step-panel.is-active{
    display:block;
  }
  .demo-step-panel h3{
    margin:0 0 10px;
    font-size:1.1rem;
    color:#0f172a;
  }
  .demo-step-panel p{
    margin:0 0 8px;
    color:#475569;
    font-size:.95rem;
  }
  .demo-step-panel ol{
    margin:8px 0 14px 1.3rem;
    padding:0;
    color:#1f2933;
  }
  .demo-step-panel li + li{
    margin-top:8px;
  }
  .demo-faq-group{
    margin-top:14px;
    border-top:1px solid #e2e8f0;
    padding-top:12px;
  }
  .demo-faq-group h4{
    margin:6px 0 8px;
    font-size:.98rem;
    color:#0f172a;
  }
  .demo-faq-group p{
    margin:0 0 6px;
    font-size:.95rem;
    color:#475569;
  }
  .demo-step-actions{
    margin-top:16px;
    display:flex;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
  }
  .demo-step-actions .btn{
    font-size:.93rem;
  }
  .demo-tnc-title{
    margin:14px 0 8px;
    font-size:1rem;
    color:#0f172a;
  }
  .demo-tnc-article{
    margin:8px 0 10px;
  }
  .demo-tnc-article h5{
    margin:0 0 4px;
    font-size:.95rem;
    color:#0f172a;
  }
  .demo-tnc-article p{
    margin:0 0 6px;
    font-size:.93rem;
    color:#475569;
  }

    @media (max-width:640px){
    .demo-modal{
      padding:10px;
    }
    .demo-modal__panel{
      max-height:calc(100vh - 20px);
    }
    .demo-modal__header{
      padding:12px 14px 6px;
    }
    .demo-modal__body{
      padding:10px 14px 14px;
    }
  }

  /* ===== FAQ ACCORDION (stile tipo Bootstrap) ===== */
  .demo-faq-item{
    border-bottom:1px solid #e2e8f0;
    padding:4px 0;
  }
  .demo-faq-item:last-of-type{
    border-bottom:none;
  }
  .demo-faq-question{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:6px 0;
    border:0;
    background:transparent;
    cursor:pointer;
    text-align:left;
    font:inherit;
    color:#0f172a;
  }
  .demo-faq-question-text{
    flex:1 1 auto;
    font-size:.98rem;
    font-weight:600;
  }
  .demo-faq-icon{
    flex:0 0 auto;
    font-size:1.05rem;
    line-height:1;
    transition:transform .2s ease;
  }
  .demo-faq-question[aria-expanded="true"] .demo-faq-icon{
    transform:rotate(45deg); /* da + a ??? */
  }
  .demo-faq-question:focus-visible{
    outline:2px solid #3b82f6;
    outline-offset:2px;
    border-radius:4px;
  }
  .demo-faq-answer{
    padding:0 0 6px;
  }

  /* ===== T&C ACCORDION (stile tipo Bootstrap) ===== */
  .demo-tnc-accordion{
    margin-top:4px;
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .demo-tnc-article{
    border-radius:8px;
    border:1px solid #e2e8f0;
    padding:6px 10px;
    background:#f8fafc;
  }
  .demo-tnc-header{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:4px 0;
    border:0;
    background:transparent;
    cursor:pointer;
    text-align:left;
    font:inherit;
    color:#0f172a;
  }
  .demo-tnc-header-text{
    flex:1 1 auto;
    font-size:.95rem;
    font-weight:600;
  }
  .demo-tnc-icon{
    flex:0 0 auto;
    font-size:1.05rem;
    line-height:1;
    transition:transform .2s ease;
  }
  .demo-tnc-header[aria-expanded="true"] .demo-tnc-icon{
    transform:rotate(45deg);
  }
  .demo-tnc-header:focus-visible{
    outline:2px solid #3b82f6;
    outline-offset:2px;
    border-radius:2px;
  }
  .demo-tnc-body{
    margin-top:2px;
  }

  /* ==== Scelta Prevedo Connect (step 2 modale acquisto) ==== */
  .connect-choice-box{
    margin-top:16px;
    padding:12px 14px;
    border-radius:10px;
    background:#fff3cd; /* tipico warning Bootstrap */
    border:1px solid #ffeeba;
    color:#856404;
  }
  .connect-choice-title{
    margin:0 0 4px;
    font-size:.95rem;
    font-weight:700;
  }
  .connect-choice-sub{
    margin:0 0 8px;
    font-size:.9rem;
  }
  .connect-choice-options{
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  .connect-option{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:.94rem;
  }
  .connect-option input[type="checkbox"],
  .connect-option input[type="radio"]{
    width:16px;
    height:16px;
    flex:0 0 auto;
  }
  .connect-choice-error{
    margin-top:8px;
    font-size:.9rem;
    color:#b91c1c;
  }
  .connect-choice-box.error{
    border-color:#dc2626;
    box-shadow:0 0 0 1px rgba(220,38,38,.5);
  }

  /* ===== OVERLAY SCELTA VIDEOCHAT: IMPRESA / COMMERCIALISTI (CHIARA) ===== */
  .videocall-overlay{
    position:fixed;
    inset:0;
    z-index:11000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:16px;
    background:rgba(15,23,42,.14); /* leggera ombra sulla pagina */
    backdrop-filter:blur(6px);
  }
  .videocall-overlay.is-open{
    display:flex;
  }
  .videocall-overlay__panel{
    width:min(780px,100%);
    background:#ffffff;
    border-radius:20px;
    border:1px solid #cbd5e1;
    box-shadow:0 22px 45px rgba(15,23,42,.18);
    padding:22px 22px 20px;
    color:#0f172a;
    position:relative;
  }
  .videocall-overlay__eyebrow{
    margin:0;
    font-size:.78rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--blue-700);
    font-weight:700;
  }
  .videocall-overlay__title{
    margin:6px 0 6px;
    font-size:1.4rem;
    letter-spacing:-.01em;
    color:#0f172a;
  }
  .videocall-overlay__lead{
    margin:0 0 10px;
    font-size:.95rem;
    color:#475569;
  }
  .videocall-overlay__close{
    position:absolute;
    top:10px;
    right:10px;
    border:0;
    background:#e2e8f0;
    color:#0f172a;
    border-radius:999px;
    width:30px;
    height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    font-size:1rem;
  }
  .videocall-overlay__close:hover{
    background:#cbd5e1;
  }
  .videocall-overlay__cards{
    margin-top:14px;
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
  }
  @media (min-width:720px){
    .videocall-overlay__cards{
      grid-template-columns:repeat(2,minmax(0,1fr));
    }
  }
  .vchoice-card{
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:18px 16px 16px;
    border-radius:16px;
    text-decoration:none;
    border:1px solid #e2e8f0;
    background:#f8fafc;
    box-shadow:0 10px 22px rgba(148,163,184,.18);
    cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  }
  .vchoice-card--impresa{
    border-color:#bfdbfe;
  }
  .vchoice-card--professionisti{
    border-color:#c7d2fe;
  }
  .vchoice-card:hover{
    transform:translateY(-2px);
    border-color:var(--blue-700);
    background:#ffffff;
    box-shadow:0 16px 30px rgba(148,163,184,.35);
  }
  .vchoice-tag{
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:700;
    color:var(--blue-700);
  }
  .vchoice-card--professionisti .vchoice-tag{
    color:#4f46e5;
  }
  .vchoice-title{
    margin:2px 0 0;
    font-size:1.05rem;
    color:#0f172a;
  }
  .vchoice-text{
    margin:0;
    font-size:.9rem;
    color:#475569;
  }
  .vchoice-cta{
    margin-top:10px;
    font-size:.9rem;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--blue-700);
  }
  .vchoice-card--professionisti .vchoice-cta{
    color:#4f46e5;
  }
  .vchoice-cta svg{
    width:16px;
    height:16px;
  }
  .vchoice-card:focus-visible{
    outline:2px solid var(--blue-500);
    outline-offset:2px;
  }
  @media (max-width:480px){
    .videocall-overlay__panel{
      padding:18px 16px 16px;
    }
  }
  



























@media (max-width: 640px) {
  .f-certifications h4,
  .footer-certifications h4 {
    text-align: center;
    width: 100%;
  }
  .f-certifications .cert-logos,
  .footer-certifications {
    flex-direction: column;
    align-items: center;
  }
  .f-certifications .cert-logo-slot,
  .footer-certifications .cert-logo-slot {
    width: 200px;
    max-width: 100%;
    justify-content: center;
  }
  .f-certifications .cert-project,
  .footer-certifications .cert-project {
    margin-left: 0 !important;
    width: 100%;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
  }
  .f-certifications .cert-project > div:last-child,
  .footer-certifications .cert-project > div:last-child {
    width: 100% !important;
    max-width: 220px;
    height: auto !important;
    padding: 6px;
  }
  .f-certifications .cert-project img,
  .footer-certifications .cert-project img {
    max-width: 100%;
    height: auto !important;
  }
}

@media (max-width: 640px) {
  .footer .cols{ grid-template-columns:1fr; }
  .footer .cols > div{ width:100%; }
}

@media (max-width: 960px) {
  .nav a.btn svg {
    margin-right: 8px;
  }
}
