/* ==========================================================================
   MiMuovo · componenti nuovi (si appoggiano a /assets/site.css)
   --------------------------------------------------------------------------
   site.css è l'identità del sito (bianco, verde #2E7A33, corsivo verde nei
   titoli, Satoshi + JetBrains Mono): qui solo pezzi nuovi, stessi token.
   - movimento: solo transform e opacity, curve --ease-out / --ease-io;
     con prefers-reduced-motion niente spostamenti, restano le dissolvenze.
   - z-index: nav 60 (site.css), menu funzioni 70, drawer 80.
   ========================================================================== */
:root{
  --act:#2E7A33;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-io:cubic-bezier(.77,0,.175,1);
  --ease-drawer:cubic-bezier(.32,.72,0,1);
}
html{scroll-padding-top:96px}
body{overflow-x:clip}

/* ---------- reveal ---------- */
.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease-out),transform .9s var(--ease-out);transition-delay:calc(var(--i,0) * 70ms)}
.js [data-reveal="fade"]{transform:none}
.js [data-reveal="scale"]{transform:scale(.96)}
.js [data-reveal="left"]{transform:translateX(-28px)}
.js [data-reveal="right"]{transform:translateX(28px)}
.js [data-reveal].in{opacity:1;transform:none}
.js [data-split] .w{display:inline-block;overflow:clip;vertical-align:top;padding:0 .1em .16em 0;margin:0 -.1em -.16em 0}
.js [data-split] .w > span{display:inline-block;transform:translateY(108%);transition:transform .9s var(--ease-out);transition-delay:calc(var(--i,0) * 40ms)}
.js [data-split].in .w > span{transform:none}

/* ---------- nav: voce Funzioni, menu, drawer ---------- */
.nav-links button{display:inline-flex;align-items:center;gap:6px;font-size:14.5px;font-weight:500;color:var(--ink-soft);padding:8px 12px;border-radius:9px;transition:color .15s,background .15s;white-space:nowrap;background:none;border:0;cursor:pointer;font-family:var(--font)}
.nav-links button:hover,.nav-links button[aria-expanded="true"]{color:var(--ink);background:rgba(18,24,20,.04)}
.nav-links button svg{width:15px;height:15px;transition:transform .25s var(--ease-out)}
.nav-links button[aria-expanded="true"] svg{transform:rotate(180deg)}
.nav-burger{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border);background:#fff;cursor:pointer;color:var(--ink)}
.nav-burger svg{width:20px;height:20px}
@media(min-width:960px){.nav-burger{display:none}}

.mega{position:fixed;top:84px;left:50%;z-index:70;width:min(980px,calc(100vw - 28px));
  transform:translate(-50%,-6px) scale(.985);transform-origin:50% 0;opacity:0;visibility:hidden;
  background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);
  border:1px solid var(--border);border-radius:18px;box-shadow:0 30px 70px -30px rgba(18,24,20,.35);padding:18px;
  transition:opacity .18s ease,transform .22s var(--ease-out),visibility 0s .22s}
.mega.open{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1);transition:opacity .18s ease,transform .22s var(--ease-out),visibility 0s}
.mega-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 14px}
.mega-col h4{font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--act);padding:6px 10px 6px}
.mega a{display:flex;gap:11px;align-items:flex-start;padding:9px 10px;border-radius:12px;transition:background-color .15s ease}
.mega a:hover,.mega a:focus-visible{background:var(--paper-soft)}
.mega .mi{flex-shrink:0;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-deep)}
.mega .mi svg{width:17px;height:17px}
.mega b{display:block;font-size:14.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.mega span span{display:block;font-size:12.5px;color:var(--ink-soft);line-height:1.4;margin-top:2px}
.mega em{display:inline-block;margin-left:6px;font-style:normal;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:6px;padding:2px 6px;vertical-align:2px;color:var(--green-deep);background:var(--green-soft)}
.mega em.soon{color:#8a6400;background:#FEF6DE}
.mega-foot{margin-top:10px;padding:12px 10px 2px;border-top:1px solid var(--border-soft);display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13.5px;color:var(--ink-soft)}
.mega-foot a{display:inline;padding:0;font-weight:700;color:var(--act)}
.mega-foot a:hover{background:none;text-decoration:underline}
.drawer{position:fixed;inset:0;z-index:80;background:#fff;transform:translateY(-100%);visibility:hidden;overflow:auto;padding:80px 20px 32px;
  transition:transform .42s var(--ease-drawer),visibility 0s .42s}
.drawer.open{transform:none;visibility:visible;transition:transform .42s var(--ease-drawer),visibility 0s}
.drawer-close{position:absolute;top:20px;right:18px;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--border);background:#fff;cursor:pointer}
.drawer-close svg{width:20px;height:20px}
.drawer h4{font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--act);margin:22px 0 4px}
.drawer a{display:flex;align-items:center;gap:12px;padding:12px 0;font-size:17px;font-weight:600;border-bottom:1px solid var(--border-soft)}
.drawer a svg{width:18px;height:18px;color:var(--green)}
.drawer .btn{margin-top:24px;width:100%;justify-content:center;border:0}

/* ---------- cornici: finestra app e telefono ---------- */
.win{position:relative;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--shadow-lg)}
.phone{position:relative;width:min(330px,86vw);border-radius:50px;padding:9px;background:#3B3F43;
  box-shadow:0 40px 90px -34px rgba(16,24,20,.5),0 0 0 2px #23262A,0 0 0 3px rgba(255,255,255,.08)}
.phone .scene{border-radius:41px;height:600px;overflow:hidden}
.phone .notch{position:absolute;z-index:3;top:18px;left:50%;transform:translateX(-50%);width:92px;height:26px;border-radius:20px;background:#0c0f0d}
.phone .wa-top{padding-top:44px}
.phone .wa{height:100%}

/* ---------- sticky generico ---------- */
[data-scroll]{position:relative}
.stick{position:sticky;top:0;height:100vh;height:100dvh;overflow:clip}

/* ---------- pagine funzione: testata ---------- */
.fhero{position:relative;overflow:hidden;background:linear-gradient(180deg,#FFFFFF 0%,#F6F9F3 70%,#F1F5EC 100%);padding:128px 0 0;text-align:center}
.fhero .crumbs{display:inline-flex;gap:7px;align-items:center;font-size:13.5px;color:var(--ink-dim);margin-bottom:18px}
.fhero .crumbs a:hover{color:var(--ink)}
.fhero .crumbs svg{width:14px;height:14px}
.fhero h1{font-size:clamp(2.3rem,5.2vw,4rem);line-height:1.08;margin:14px auto 0;max-width:20ch;color:#0E1726}
.fhero > .wrap .sub{font-size:clamp(16px,2vw,19px);color:var(--ink-soft);line-height:1.55;max-width:56ch;margin:18px auto 0}
.fhero .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.badge-soon{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:4px 10px;border-radius:999px;background:#FEF6DE;color:#8a6400;font-size:11.5px;font-weight:700;letter-spacing:.04em;vertical-align:2px}
.fhero-vis{position:relative;width:min(1120px,94vw);margin:56px auto 0;perspective:1600px;text-align:left}
.fhero-vis .win{border-bottom:0;border-radius:20px 20px 0 0;transform-origin:50% 0;
  transform:rotateX(calc((1 - min(1, var(--p,1) * 2.4)) * 14deg)) scale(calc(.95 + min(1, var(--p,1) * 2.4) * .05));will-change:transform}
.fhero-vis.is-phone{display:grid;place-items:center;padding-bottom:56px}
.fhero-glow{position:absolute;left:50%;top:30%;width:110%;height:70%;transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(closest-side,rgba(123,246,22,.16),transparent 70%);filter:blur(20px)}

/* frase che si accende parola per parola */
.words-sec{background:#fff;padding:clamp(96px,13vw,170px) 0}
.words{font-size:clamp(1.8rem,4.1vw,3.4rem);font-weight:700;letter-spacing:-.035em;line-height:1.16;max-width:23ch;text-align:center;margin:0 auto;color:var(--ink)}
.words em{font-style:italic}
.js .words .w{opacity:.14;transition:opacity .3s linear,color .3s linear}
.js .words .w.lit{opacity:1}
.js .words em .w.lit{color:var(--act)}

/* scrollytelling a passi */
.steps{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin-top:20px}
@media(min-width:980px){.steps{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px}}
@media(min-width:980px) and (max-width:1199.98px){.steps{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:40px}}
.step{min-height:76vh;display:flex;flex-direction:column;justify-content:center;padding:40px 0;opacity:.3;transition:opacity .45s ease}
.step.on{opacity:1}
.step .n{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--act);letter-spacing:.06em}
.step .n::after{content:"";width:46px;height:2px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--act) 0 8px,transparent 8px 13px)}
.step h3{font-size:clamp(1.7rem,2.8vw,2.35rem);margin:14px 0 12px;letter-spacing:-.025em;line-height:1.12}
.step p{font-size:16.5px;color:var(--ink-soft);max-width:44ch;line-height:1.6}
.step :where(.scene) p{font-size:inherit;line-height:inherit;color:inherit;max-width:none}
.step ul{list-style:none;margin-top:18px;display:grid;gap:9px}
.step li{display:flex;gap:10px;font-size:15px;color:var(--ink)}
.step li svg{flex-shrink:0;width:21px;height:21px;border-radius:50%;background:var(--green-soft);color:var(--green-deep);border:1px solid #CFE6B4;padding:3px;margin-top:1px}
.steps-vis{position:relative}
.steps-vis .sticky{position:sticky;top:max(100px,calc(50vh - 300px))}
.steps-vis.is-phone .sticky{display:grid;place-items:center}
.step .scene-mob{display:none}
@media(max-width:979px){
  .steps-vis{display:none}
  .step{min-height:0;opacity:1;padding:26px 0}
  .step .scene-mob{display:block;margin-top:22px}
  .step .scene-mob.is-phone{display:grid;place-items:center}
  .step .scene-mob.is-phone .phone .scene{height:540px}
}

/* bento delle capacità */
.bento{display:grid;grid-template-columns:1fr;gap:14px;margin-top:48px}
@media(min-width:860px){.bento{grid-template-columns:repeat(6,1fr)}.bento>.c2{grid-column:span 2}.bento>.c3{grid-column:span 3}.bento>.c4{grid-column:span 4}.bento>.c6{grid-column:span 6}}
.cell{position:relative;overflow:hidden;border-radius:16px;background:#fff;border:1px solid var(--border);padding:26px;min-height:220px;display:flex;flex-direction:column;
  transition:transform .25s var(--ease-out),box-shadow .25s ease,border-color .25s ease}
@media(hover:hover) and (pointer:fine){.cell:hover{transform:translateY(-3px);box-shadow:var(--shadow-card);border-color:#CFE0B8}}
.cell h3{font-size:19px;font-weight:700;letter-spacing:-.015em;margin-bottom:8px;line-height:1.25}
.cell p{font-size:14.5px;color:var(--ink-soft);line-height:1.55;max-width:46ch}
.cell .viz{margin-top:auto;padding-top:22px}
.cell.tint{background:var(--green-soft);border-color:#CFE6B4}
.cell.hero{background:linear-gradient(160deg,#FFFFFF 0%,#F4FAEC 100%)}
.cell .big{font-family:var(--mono);font-weight:700;font-size:clamp(2rem,3.6vw,3rem);letter-spacing:-.03em;line-height:1;color:var(--green-deep);margin-bottom:14px}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chips span{font-size:12.5px;font-weight:600;padding:6px 11px;border-radius:999px;background:var(--paper-soft);border:1px solid var(--border);color:var(--ink-soft)}
.chips span:nth-child(4n+1){background:var(--green-soft);border-color:#CFE6B4;color:var(--green-deep)}
.logo-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.logo-row span{height:56px;border-radius:12px;background:#fff;border:1px solid var(--border);display:grid;place-items:center;padding:8px 12px}
.logo-row img{max-height:30px;max-width:84px;width:auto;object-fit:contain}
.mini-bars{display:flex;align-items:flex-end;gap:8px;height:80px}
.mini-bars i{flex:1;border-radius:6px 6px 2px 2px;height:calc(var(--h) * 100%);background:#DDEFCB;transform-origin:50% 100%;transition:transform 1s var(--ease-out) .2s}
.mini-bars i:last-child{background:var(--green)}
.js .cell:not(.in) .mini-bars i{transform:scaleY(.05)}
.rep{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.rep span{display:grid;gap:4px;padding:12px 10px;border-radius:12px;background:var(--paper-soft);font-size:12px;color:var(--ink-soft)}
.rep b{font:700 22px/1 var(--mono);color:var(--ink)}
.rep .ok b{color:var(--green-deep)}
.rep .warn b{color:#9a7b00}
@media(max-width:600px){.rep{grid-template-columns:repeat(3,1fr)}}

/* citazione */
.fquote{max-width:900px;margin:0 auto;text-align:center}
.fquote .stars{color:var(--amber);letter-spacing:3px}
.fquote blockquote{font-size:clamp(1.4rem,2.8vw,2.1rem);font-weight:700;letter-spacing:-.025em;line-height:1.25;margin:16px 0 0}
.fquote figcaption{display:flex;flex-direction:column;gap:2px;margin-top:22px}
.fquote figcaption b{font-size:15.5px}
.fquote figcaption span{color:var(--ink-dim);font-size:14px}

/* funzioni collegate */
.related{display:grid;grid-template-columns:1fr;gap:14px;margin-top:28px}
@media(min-width:760px){.related{grid-template-columns:repeat(3,1fr)}}
.rel{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:16px;background:#fff;border:1px solid var(--border);transition:transform .2s var(--ease-out),box-shadow .2s,border-color .2s}
.rel .mi{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-deep);margin-bottom:8px}
.rel .mi svg{width:20px;height:20px}
.rel b{font-size:17.5px;letter-spacing:-.015em}
.rel span{font-size:14px;color:var(--ink-soft);line-height:1.5}
.rel .go{margin-top:8px;font-size:13.5px;font-weight:700;color:var(--act);display:inline-flex;align-items:center;gap:6px}
.rel .go svg{width:15px;height:15px;transition:transform .2s var(--ease-out)}
.rel:active{transform:scale(.99)}
@media(hover:hover) and (pointer:fine){.rel:hover{transform:translateY(-3px);box-shadow:var(--shadow-card);border-color:#CFE0B8}.rel:hover .go svg{transform:translateX(3px)}}


/* ---------- movimento ridotto ---------- */
@media(prefers-reduced-motion:reduce){
  .js [data-reveal],.js [data-split] .w > span{transform:none!important}
  .fhero-vis .win{transform:none}
  .js .words .w{opacity:1}
}

/* footer con la colonna Funzioni */
@media(min-width:860px){.foot-grid.has-fz{grid-template-columns:1.6fr 1.1fr 1fr 1fr}}
.foot-grid.has-fz .foot-col:first-of-type a{margin-bottom:8px}


/* ---------- Centro Operativo: il team di analisti ---------- */
.agents-sec{background:var(--white)}
.agents{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:640px){.agents{grid-template-columns:repeat(2,1fr)}.ag-intro{grid-column:1/-1}}
@media(min-width:1040px){.agents{grid-template-columns:repeat(4,1fr)}.ag-intro{grid-column:span 3}}
.ag-intro{padding:6px 24px 18px 0}
.ag-intro h2{font-size:clamp(2rem,4.2vw,3.1rem);font-weight:700;margin-top:14px;max-width:18ch}
.ag-intro p{margin-top:16px;font-size:17px;color:var(--ink-soft);max-width:58ch;line-height:1.6}
.ag{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:16px;background:#fff;border:1px solid var(--border);
  transition:transform .25s var(--ease-out),box-shadow .25s ease,border-color .25s ease}
@media(hover:hover) and (pointer:fine){.ag:hover{transform:translateY(-3px);box-shadow:var(--shadow-card);border-color:#CFE0B8}}
.ag-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.ag-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-deep)}
.ag-ic svg{width:18px;height:18px}
.ag-live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--green-deep);letter-spacing:.02em}
.ag-live i{position:relative;width:7px;height:7px;border-radius:50%;background:var(--green)}
.ag-live i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--green);opacity:0;animation:agping 2.2s var(--ease-out) infinite;animation-delay:calc(var(--i,0) * .4s)}
@keyframes agping{0%{transform:scale(.5);opacity:.8}100%{transform:scale(1.7);opacity:0}}
.ag h3{font-size:17px;font-weight:700;letter-spacing:-.015em}
.ag p{font-size:13.5px;color:var(--ink-soft);line-height:1.5}
.ag-now{position:relative;overflow:hidden;margin-top:auto;padding:9px 10px;border-radius:10px;background:var(--paper-soft);min-height:52px;
  font:600 11.5px/1.4 var(--mono);color:var(--ink)}
.ag-now::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(123,246,22,.18),transparent);transform:translateX(-100%);animation:agscan 2.8s var(--ease-io) infinite;animation-delay:calc(var(--i,0) * .35s)}
@keyframes agscan{60%,100%{transform:translateX(100%)}}
.ag-now span{position:relative;display:block;transition:opacity .3s ease,filter .3s ease,transform .3s var(--ease-out)}
.ag-now.swap span{opacity:0;filter:blur(3px);transform:translateY(4px)}
.ag-now.hit{background:var(--green-soft);color:var(--green-deep)}
@media(prefers-reduced-motion:reduce){.ag-now::before,.ag-live i::after{animation:none}}

/* ---------- Centro Operativo: anatomia di una segnalazione ---------- */
.anat-sec{height:320vh;background:var(--cream)}
.anat-sec .stick{display:flex;align-items:center}
.anat{width:100%}
.anat-head h2{font-size:clamp(2rem,4.2vw,3.1rem);font-weight:700;margin-top:14px;max-width:22ch}
.anat-stage{display:grid;grid-template-columns:1fr;gap:28px;margin-top:40px;align-items:center}
@media(min-width:980px){.anat-stage{grid-template-columns:1.15fr .85fr;gap:56px}}
.anat-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:18px;box-shadow:var(--shadow-lg);font-size:14px}
.anat-card [data-part]{border-radius:12px;padding:12px;transition:background-color .35s ease,box-shadow .35s ease,opacity .35s ease;opacity:.45}
.anat-card [data-part].on{opacity:1}
.anat-card [data-part].hl{background:#F4FAEE;box-shadow:0 0 0 2px #BFE0A0}
.ac-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ac-h b{font-size:16px}
.ac-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#FCEBE8;color:#A8321F}
.ac-ic svg{width:17px;height:17px}
.ac-amt{margin-left:auto;font:700 13px/1 var(--mono);color:#A8321F;background:#FCEBE8;border-radius:999px;padding:7px 11px}
.ac-r{display:grid;grid-template-columns:120px 1fr;gap:12px}
.ac-r small{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);padding-top:2px}
.ac-r p{color:#2f3632;line-height:1.5}
.ac-r .plate{font:800 12px/1 var(--mono);background:#F3F5F0;border:1px solid #E2E7DC;border-radius:6px;padding:3px 6px}
.ac-r .pill{display:inline-flex;font-size:11px;font-weight:700;border-radius:999px;padding:4px 9px;background:#EAF1FB;color:#2B5BB0;margin:0 4px 4px 0}
.ac-a{display:flex;flex-wrap:wrap;gap:6px}
.ac-a .b{font-size:12px;font-weight:700;padding:9px 13px;border-radius:999px;background:#F1F3EF}
.ac-a .b.dark{background:#121712;color:#fff}
@media(max-width:600px){.ac-r{grid-template-columns:1fr;gap:4px}}
.anat-notes{list-style:none;display:grid;gap:10px}
.anat-notes li{display:grid;grid-template-columns:34px 1fr;column-gap:12px;padding:12px 14px;border-radius:14px;border:1px solid transparent;opacity:.35;transform:translateX(10px);
  transition:opacity .4s ease,transform .5s var(--ease-out),background-color .4s ease,border-color .4s ease}
.anat-notes li span{grid-row:span 2;font-size:12px;font-weight:700;color:var(--act);padding-top:3px}
.anat-notes li b{font-size:16.5px;letter-spacing:-.01em}
.anat-notes li p{font-size:14px;color:var(--ink-soft);line-height:1.5}
.anat-notes li.on{opacity:1;transform:none}
.anat-notes li.cur{background:#fff;border-color:var(--border);box-shadow:var(--shadow-soft)}
@media(max-width:979px){
  .anat-sec{height:auto;padding:80px 0}
  .anat-sec .stick{position:relative;height:auto}
  .anat-card [data-part],.anat-notes li{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .anat-sec{height:auto;padding:100px 0}
  .anat-sec .stick{position:relative;height:auto}
  .anat-card [data-part],.anat-notes li{opacity:1;transform:none}
}

/* ---------- flusso end-to-end con l'agente ---------- */
.flow-sec{background:var(--white)}
.flow{position:relative;margin-top:44px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,#FFFFFF 0%,#FAFCF7 100%);padding:22px 22px 0;box-shadow:var(--shadow-card);overflow:hidden}
.flow-say{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:var(--paper-soft);border:1px solid var(--border-soft);max-width:640px;margin:0 auto 22px}
.flow-say .fa{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff;border:1px solid var(--border);flex-shrink:0}
.flow-say .fa img{width:19px;height:19px}
.flow-say .ft{flex:1;min-width:0}
.flow-say small{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--act)}
.flow-say b{display:block;font-size:14.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.4em}
/* sul telefono la frase dell'agente va a capo invece di finire con i puntini */
@media(max-width:899px){.flow-say{align-items:flex-start}.flow-say b{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}}
@media(max-width:640px){.flow-say b{min-height:calc(1.35em * 2)}}
@media(max-width:480px){.flow-say .fdots{display:none}.flow-say b{min-height:calc(1.35em * 3)}}
.fdots{display:flex;gap:4px}
.fdots i{width:6px;height:6px;border-radius:50%;background:var(--green);animation:typ 1.2s infinite;opacity:.5}
.fdots i:nth-child(2){animation-delay:.15s}.fdots i:nth-child(3){animation-delay:.3s}
.flow.done .fdots{visibility:hidden}
.flow-stages{list-style:none;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:12px}
.fstage{position:relative;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;background:#fff;border:1px solid var(--border-soft);opacity:.5;transform:translateY(6px);
  transition:opacity .45s ease,transform .55s var(--ease-out),border-color .45s ease,box-shadow .45s ease}
.fstage.on{opacity:1;transform:none;border-color:#BFE0A0;box-shadow:0 0 0 4px #EEF8E4,var(--shadow-soft)}
.fstage.done{opacity:1;transform:none}
.fs-n{position:relative;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--paper-soft);color:var(--ink-soft);transition:background-color .3s ease,color .3s ease}
.fs-n svg{width:17px;height:17px}
.fs-n em{position:absolute;right:-5px;top:-5px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;transform:scale(.4);opacity:0;transition:transform .35s var(--ease-out),opacity .25s ease}
.fs-n em svg{width:11px;height:11px;stroke-width:3}
.fstage.on .fs-n,.fstage.done .fs-n{background:var(--green-soft);color:var(--green-deep)}
.fstage.done .fs-n em{transform:none;opacity:1}
.fstage > b{font-size:14.5px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.fs-ui{min-height:96px;font-size:12px}
.fs-ui > *{opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .5s var(--ease-out)}
.fs-ui > *:nth-child(2){transition-delay:.25s}.fs-ui > *:nth-child(3){transition-delay:.5s}
.fstage.on .fs-ui > *,.fstage.done .fs-ui > *{opacity:1;transform:none}
.fs-ui .row{padding:7px 9px;margin-bottom:5px}
.fs-ui .row .ic{width:24px;height:24px}
.fs-ui .row .tx b{font-size:11.5px}.fs-ui .row .tx span{font-size:10.5px}
.fs-ui .row .am{font-size:11px}
.fs-ui .pill{margin:0 4px 5px 0}
.fs-ui .chipdoc{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:#fff;font-weight:600;margin-bottom:5px}
.fs-ui .chipdoc svg,.fs-ui .chipdoc img{width:16px;height:16px;object-fit:contain;flex-shrink:0;color:var(--green-deep)}
.fs-ui .chipdoc em{margin-left:auto;font:700 11px/1 var(--mono);font-style:normal;color:var(--ink)}
.fs-ui .bigv{font:700 20px/1.1 var(--mono);letter-spacing:-.02em;color:var(--green-deep)}
.fs-ui .bigv.bad{color:#A8321F}
.fs-ui small{display:block;color:var(--ink-dim);font-size:11px;margin-top:3px}
.fs-ui:has(> .bub){padding:8px 7px;border-radius:11px;background:#EFE7DD}
.fs-ui .bub{max-width:94%;font:400 11.5px/1.35 -apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',sans-serif;color:#111B21;padding:5px 8px 4px;margin-bottom:4px;border:0;border-radius:11px 11px 11px 3px;background:#fff;box-shadow:0 1px .5px rgba(0,0,0,.13)}
.fs-ui .bub.me{width:fit-content;margin-left:auto;background:#D9FDD3;border-radius:11px 11px 3px 11px}
.flow-out{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 -22px;padding:18px 22px;background:var(--green-soft);border-top:1px solid #CFE6B4;
  opacity:.35;transition:opacity .5s ease,background-color .5s ease}
.flow.done .flow-out{opacity:1}
.fo-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#fff;color:var(--green-deep);border:1px solid #CFE6B4}
.fo-ic svg{width:19px;height:19px}
.flow-out b{display:block;font-size:clamp(22px,2.6vw,30px);font-weight:700;letter-spacing:-.02em;color:var(--green-deep);line-height:1.1}
.flow-out div > span{display:block;font-size:14px;color:var(--ink-soft)}
@media(max-width:899px){
  .flow{padding:16px 16px 0}
  .flow-stages{grid-template-columns:1fr}
  .fs-ui{min-height:0}
  .flow-out{margin:16px -16px 0}
}
@media(prefers-reduced-motion:reduce){.fstage,.fs-ui > *{opacity:1;transform:none}.flow-out{opacity:1}}
.fs-ui .chipdoc{flex-wrap:wrap;row-gap:2px}
.fs-ui .chipdoc span{flex:1;min-width:0;line-height:1.3}
.fs-ui .chipdoc em{white-space:nowrap}
.fs-ui .row .tx b,.fs-ui .row .tx span{white-space:normal}

/* nav su telefono: bottone demo più compatto, così entra anche il menu */
@media(max-width:859px){.mega{display:none}}
@media(max-width:480px){
  .nav-inner{padding-left:12px;padding-right:8px}
  .nav-right{gap:6px}
  .nav-right .btn-sm{padding:9px 12px;font-size:13px}
  .brand{font-size:16px}
}

/* ---------- Order manager: la pianificazione (home e pagina dedicata) ---------- */
.om-sec{background:var(--white)}
.om-board{display:grid;grid-template-columns:200px 1fr;min-height:430px}
.om-side{border-right:1px solid var(--border-soft);padding:14px;background:#FBFCFA}
.om-side h5{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:10px}
.om-order{position:relative;border:1px solid var(--border);border-radius:12px;padding:10px;background:#fff;font-size:12px;margin-bottom:8px;box-shadow:var(--shadow-soft)}
.om-order b{display:block;font-size:12.5px}
.om-order span{display:block;color:var(--ink-dim);font-size:11px;margin-top:2px}
.om-order .src{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:10.5px;font-weight:700;color:#2B5BB0;background:#EAF1FB;border-radius:6px;padding:2px 6px}
.om-order .src svg{width:11px;height:11px}
.om-order.ghost{opacity:.5}
.om-main{position:relative;padding:14px 16px}
.om-hours{display:grid;grid-template-columns:120px repeat(6,1fr);font:600 10px/1 var(--mono);color:var(--ink-dim);margin-bottom:8px}
.om-row{display:grid;grid-template-columns:120px 1fr;align-items:center;min-height:52px;border-top:1px solid var(--border-soft)}
.om-row .who{font-size:12px;font-weight:700}
.om-row .who span{display:block;font:700 10.5px/1.3 var(--mono);color:var(--ink-dim)}
.om-lane{position:relative;height:36px}
.om-trip{position:absolute;top:4px;height:28px;border-radius:8px;padding:0 9px;display:flex;align-items:center;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;
  background:#EEF6E6;color:var(--green-deep);border:1px solid #CFE6B4}
.om-trip.gray{background:#F1F3EF;color:var(--ink-soft);border-color:var(--border)}
.om-fly{position:absolute;z-index:4;left:14px;top:46px;width:172px;transition:transform .9s var(--ease-io),opacity .3s ease}
.scene[data-step="2"] .om-fly,.scene[data-step="3"] .om-fly{transform:translate(var(--fx,330px),var(--fy,140px)) scale(.9);opacity:0;transition:transform .9s var(--ease-io),opacity .3s ease .7s}
.om-sat{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:var(--green-deep)}
.om-phone{position:absolute;right:16px;bottom:16px;width:230px;border-radius:22px;padding:6px;background:#3B3F43;box-shadow:0 26px 60px -24px rgba(16,24,20,.5)}
.om-phone .in{border-radius:17px;background:#EFE7DD;padding:10px 8px;display:flex;flex-direction:column;gap:6px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.om-phone .hd{font-size:11px;font-weight:700;color:#121712;padding:0 4px 4px;border-bottom:1px solid #E1D8CB}
.om-phone .bub{font-size:11.5px;line-height:1.35;background:#fff;border-radius:9px;padding:7px 9px}
.om-phone .btns{display:grid;gap:3px;margin-top:5px}
.om-phone .btns span{display:block;text-align:center;padding:5px;border-radius:6px;background:#F3F7F2;color:#0A7C66;font-weight:600;font-size:11px}
@media(max-width:700px){.om-board{grid-template-columns:1fr}.om-side{border-right:0;border-bottom:1px solid var(--border-soft)}.om-row{grid-template-columns:90px minmax(0,1fr)}.om-hours{grid-template-columns:90px repeat(6,1fr)}.om-fly{display:none}.om-phone{position:relative;right:auto;bottom:auto;margin:12px auto 0}}



/* ---------- flusso: linea di avanzamento al posto della strada ---------- */
.flow-line{position:relative;height:2px;margin:0 6px 18px;border-radius:2px;background:var(--border)}
.flow-line i{position:absolute;left:0;top:0;height:100%;width:100%;border-radius:inherit;background:var(--act);transform-origin:0 50%;transform:scaleX(var(--fp,0));transition:transform .9s var(--ease-io)}
.flow-line::after{content:"";position:absolute;top:50%;left:calc(var(--fp,0) * 100%);width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;border:2px solid var(--act);box-shadow:0 0 0 5px rgba(46,122,51,.12);transition:left .9s var(--ease-io)}
.flow.reset .flow-line i,.flow.reset .flow-line::after{transition:none}
.flow-say b{transition:opacity .16s ease,filter .16s ease}
.flow-say b.swap{opacity:0;filter:blur(2px)}
.flow-out{margin-top:22px}
@media(max-width:899px){.flow-line{display:none}}

/* ---------- foto a tutta larghezza ---------- */
.photo-band{background:#fff;padding:0 0 clamp(72px,9vw,120px)}
.pb-frame{position:relative;width:min(1200px,calc(100% - 32px));margin:0 auto;border-radius:28px;overflow:hidden;aspect-ratio:21/9;background:var(--paper-soft);
  transform:scale(calc(.92 + min(1, var(--p,1) * 2) * .08));transform-origin:50% 60%;will-change:transform}
.pb-frame img{width:100%;height:118%;object-fit:cover;transform:translateY(calc((var(--p,.5) - .5) * -12%));will-change:transform}
.pb-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,16,12,.62) 100%);pointer-events:none}
.pb-cap{position:absolute;left:clamp(20px,3vw,40px);right:clamp(20px,3vw,40px);bottom:clamp(18px,3vw,36px);z-index:1;color:#fff;display:grid;gap:6px}
.pb-cap b{font-size:clamp(20px,2.6vw,32px);font-weight:700;letter-spacing:-.02em;line-height:1.15;max-width:26ch}
.pb-cap span{font-size:clamp(14px,1.3vw,16.5px);color:rgba(255,255,255,.86);max-width:56ch}
@media(max-width:700px){.pb-frame{aspect-ratio:4/5;border-radius:20px}}
@media(prefers-reduced-motion:reduce){.pb-frame,.pb-frame img{transform:none}}
