/* ==========================================================================
   MiMuovo · sezioni nuove della home (si appoggia a site.css e mm/mm.css)
   ========================================================================== */

/* ---------- Il sistema: la foto e la frase (le tappe le racconta il film) ---------- */
.sys{background:#fff;padding:clamp(24px,4vw,56px) 0 clamp(8px,2vw,24px)}
.sys-frame{position:relative;width:min(1240px,calc(100% - 32px));margin:0 auto;border-radius:30px;overflow:hidden;aspect-ratio:2.25/1;background:var(--paper-soft);
  transform:scale(calc(.9 + min(1, var(--p,1) * 2.1) * .1));transform-origin:50% 70%;will-change:transform}
.sys-frame img{width:100%;height:120%;object-fit:cover;transform:translateY(calc((var(--p,.5) - .5) * -14%));will-change:transform}
.sys-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,14,10,.78) 0%,rgba(9,14,10,.45) 42%,rgba(9,14,10,0) 72%);pointer-events:none}
/* in alto a sinistra, sopra il camion: il testo non passa mai sulla cabina */
.sys-cap{position:absolute;z-index:1;left:clamp(22px,4vw,64px);top:clamp(28px,5.2vw,72px);max-width:min(560px,70%);color:#fff}
.sys-cap .eyebrow{display:block;line-height:1.5;color:#B9F57E}
.sys-cap h2{margin-top:14px;font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.05;color:#fff}
.sys-cap h2 .ital{color:#B9F57E}
.sys-cap p{margin-top:16px;font-size:clamp(15px,1.4vw,18px);line-height:1.55;color:rgba(255,255,255,.86);max-width:40ch}
@media(max-width:980px){
  .sys-frame{aspect-ratio:4/5;border-radius:22px}
  .sys-frame::after{background:linear-gradient(180deg,rgba(9,14,10,.84) 0%,rgba(9,14,10,.5) 44%,rgba(9,14,10,0) 70%)}
  .sys-cap{top:26px;right:22px;max-width:none}
}
@media(prefers-reduced-motion:reduce){.sys-frame,.sys-frame img{transform:none}}

/* ---------- Tutte le funzioni: galleria con foto ---------- */
.gal{background:var(--cream);padding:clamp(80px,10vw,130px) 0 clamp(70px,9vw,110px);overflow:hidden}
.gal-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.gal-nav{display:flex;gap:10px;flex-shrink:0;padding-bottom:6px}
.gal-btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--border);color:var(--ink);cursor:pointer;
  transition:transform .16s var(--ease-out),opacity .2s ease,box-shadow .2s ease}
.gal-btn svg{width:20px;height:20px}
.gal-btn:active{transform:scale(.94)}
.gal-btn[disabled]{opacity:.35;cursor:default}
@media(hover:hover) and (pointer:fine){.gal-btn:not([disabled]):hover{box-shadow:var(--shadow-card)}}
.gal-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;
  padding:44px max(24px,calc((100vw - 1200px) / 2 + 48px)) 10px;scroll-padding-left:max(24px,calc((100vw - 1200px) / 2 + 48px))}
.gal-track::-webkit-scrollbar{display:none}
.gcard{flex:0 0 auto;width:min(80vw,330px);scroll-snap-align:start;display:flex;flex-direction:column;border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--border);
  transition:transform .35s var(--ease-out),box-shadow .35s ease}
.gc-img{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(160deg,#EEF4E6,#FFFFFF)}
.gc-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform .7s var(--ease-out)}
.gc-body{display:flex;flex-direction:column;gap:7px;padding:20px 22px 22px;flex:1}
.gc-tag{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--act)}
.gcard b{font-size:21px;letter-spacing:-.02em;line-height:1.2}
.gc-txt{font-size:14.5px;color:var(--ink-soft);line-height:1.5;flex:1}
.gc-go{margin-top:8px;display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:700;color:var(--act)}
.gc-go svg{width:16px;height:16px;transition:transform .2s var(--ease-out)}
.gcard:active{transform:scale(.985)}
@media(hover:hover) and (pointer:fine){.gcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-card)}.gcard:hover .gc-img img{transform:scale(1.07)}.gcard:hover .gc-go svg{transform:translateX(4px)}}
@media(max-width:700px){.gal-nav{display:none}}

/* ---------- Tutto parla con MiMuovo (integrazioni) ---------- */
.hub-sec{background:var(--cream)}
.hub-wrap{display:grid;grid-template-columns:1fr;gap:28px;margin-top:44px;align-items:center}
@media(min-width:1000px){.hub-wrap{grid-template-columns:1.25fr .75fr;gap:40px}}
.hub{position:relative;aspect-ratio:1/0.78;max-width:720px;width:100%;margin:0 auto}
.hub svg.wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hub .wire{fill:none;stroke:#D6DDCF;stroke-width:1.4;transition:stroke .3s ease}
.hub .wire.hot{stroke:#9FD36A}
.hub .pulse{fill:none;stroke:var(--green);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:5 300;stroke-dashoffset:305;opacity:0}
.hub .pulse.go{animation:hpulse 1.1s var(--ease-io) forwards}
@keyframes hpulse{0%{stroke-dashoffset:305;opacity:1}100%{stroke-dashoffset:0;opacity:1}}
.hub .core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:112px;height:112px;border-radius:30px;display:grid;place-items:center;background:#fff;
  border:1px solid var(--border);box-shadow:0 0 0 10px rgba(123,246,22,.12),0 0 0 22px rgba(123,246,22,.06),var(--shadow-card)}
.hub .core img{width:52px;height:52px}
.hub .core.beat{animation:beat .6s var(--ease-out)}
@keyframes beat{40%{transform:translate(-50%,-50%) scale(1.06)}}
.hub .node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px}
.hub .node .tile{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-soft);transition:box-shadow .3s ease,border-color .3s ease,transform .3s var(--ease-out)}
.hub .node .tile img{max-width:40px;max-height:34px;object-fit:contain}
.hub .node .tile svg{width:24px;height:24px;color:var(--green-deep)}
.hub .node small{font-size:11px;font-weight:700;color:var(--ink-soft);white-space:nowrap}
.hub .node.hot .tile{border-color:#9FD36A;box-shadow:0 0 0 5px #EEF8E4,var(--shadow-soft);transform:scale(1.06)}
.hub-log{border:1px solid var(--border);border-radius:20px;background:#fff;box-shadow:var(--shadow-card);overflow:hidden}
.hub-log .lh{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-soft)}
.hub-log .lh img{width:22px;height:22px}
.hub-log .lh b{font-size:14px}
.hub-log .lh span{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--green-deep)}
.hub-log .lh span i{width:7px;height:7px;border-radius:50%;background:var(--green);animation:blink 1.6s infinite}
@keyframes blink{50%{opacity:.3}}
.hub-log ol{list-style:none;padding:8px 10px 12px;display:flex;flex-direction:column;gap:6px;height:340px;overflow:hidden;position:relative}
.hub-log ol::after{content:"";position:absolute;left:0;right:0;bottom:0;height:60px;background:linear-gradient(transparent,#fff);pointer-events:none}
.hub-log li{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;padding:9px 10px;border-radius:12px;background:var(--paper-soft);font-size:13px;line-height:1.4;
  animation:logIn .5s var(--ease-out)}
.hub-log li .src{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#fff;border:1px solid var(--border)}
.hub-log li .src img{max-width:20px;max-height:18px;object-fit:contain}
.hub-log li .src svg{width:15px;height:15px;color:var(--green-deep)}
.hub-log li b{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--act)}
@keyframes logIn{from{opacity:0;transform:translateY(-8px)}}
@media(max-width:640px){.hub .node .tile{width:46px;height:46px;border-radius:14px}.hub .node .tile img{max-width:30px;max-height:24px}.hub .node small{display:none}.hub .core{width:80px;height:80px;border-radius:22px}.hub .core img{width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){.hub-log li{animation:none}}

/* link "scopri" sotto le sezioni esistenti */
.more-link{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-size:15px;font-weight:700;color:var(--act)}
.more-link svg{width:16px;height:16px;transition:transform .2s var(--ease-out)}
@media(hover:hover) and (pointer:fine){.more-link:hover svg{transform:translateX(3px)}}

/* ---------- Risultati: sul telefono le storie scorrono di lato invece di impilarsi ---------- */
@media(max-width:879px){
  #prove .pf-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:40px -24px 0;padding:0 24px 6px;scroll-padding:0 24px}
  #prove .pf-grid::-webkit-scrollbar{display:none}
  #prove .pf{flex:0 0 min(86%,380px);scroll-snap-align:start}
}

/* titoli e sottotitoli della home: righe bilanciate, niente parola sola a capo */
#sistema h2,.gal-head h2,#whatsapp h2,#prove h2,#faq h2,#demo h2{text-wrap:balance}
#prove .head p{text-wrap:balance}
