/* Flusso LEV: traffico / codice dati / comportamenti → lead. */
.lv-set-solution .lv-l-intro--growth { padding-bottom: 0; }
.lv-set-solution .lv-l-intro--growth .lv-l-intro__wrap { max-width: none; padding-inline: 0; }
.lv-set-solution .lv-l-intro--growth .lv-l-intro__wrap > * { padding-inline: var(--lv-margine); }
.lv-set-solution .lv-l-intro--growth .lv-l-intro__testo { max-width: 780px; margin-top: 28px; padding: 0 var(--lv-margine); border: 0; background: none; color: #aaa; }
.lv-set-solution .lv-l-beam--growth { padding-block: 0 var(--lv-s40, 40px); }
.lv-growth { position: relative; width: 100%; margin: 28px 0 0; text-align: left; overflow: hidden; --growth-line: #292929; }
.lv-growth__stage { position: relative; height: 420px; width: 100%; background: radial-gradient(ellipse at center, #ffffff04, transparent 60%); }
.lv-growth .lv-growth__label { display: block; font-size: 10px; color: #909090; letter-spacing: .03em; text-transform: none; }
.lv-growth__inputs, .lv-growth__outputs { position: absolute; width: calc(50% - 185px); display: grid; grid-template-columns: minmax(0, 1fr); z-index: 2; }
.lv-growth__inputs { top: 75px; padding-top: 20px; left: 0; row-gap: 46px; }
.lv-growth__source { min-width: 0; position: relative; height: 54px; }
.lv-growth__source > .lv-growth__label { position: absolute; top: -20px; left: 17%; }
.lv-growth__track { width: 100%; overflow: hidden; }
/* Le pill sfumano prima della curva; i fili sfumano in ingresso nel loro SVG. */
.lv-growth__inputs .lv-growth__track { mask-image: linear-gradient(to right, transparent, #000 12%, #000 50%, transparent 74%); }
.lv-growth__ribbon, .lv-growth__group { display: flex; align-items: center; width: max-content; }
.lv-growth__ribbon { animation: lv-growth-in 28s linear infinite; }
.lv-growth__group { flex-shrink: 0; gap: 9px; padding-right: 9px; }
.lv-growth__signal, .lv-growth__lead { display: inline-flex; align-items: center; flex: none; gap: 7px; white-space: nowrap; box-sizing: border-box; height: 28px; padding: 0 11px; border: 1px solid #ffffff20; border-radius: 99px; background: #080808; font-size: 10px; line-height: 1; color: #aaa; }
.lv-growth__signal i { height: 4px; width: 4px; background: #777; border-radius: 50%; }
.lv-growth__source:nth-child(2) .lv-growth__ribbon { animation-duration: 24s; animation-delay: -11s; }
.lv-growth__source:nth-child(3) .lv-growth__ribbon { animation-duration: 30s; animation-delay: -5s; }
.lv-growth__source--code .lv-growth__track { position: relative; top: -6px; }
.lv-growth__code { display: block; font: 10px/13px 'Space Mono', monospace; letter-spacing: 2px; color: #8c8c8c; white-space: pre; }
.lv-growth__wires { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--growth-line); stroke-width: 1; }
.lv-growth__packets { color: var(--color-ember); animation: lv-growth-packets 6s linear infinite; }
.lv-growth__ai { position: absolute; top: 38px; left: 50%; width: 310px; transform: translateX(-50%); text-align: center; }
.lv-growth__models { display: flex; justify-content: center; gap: 24px; }
.lv-growth__models > span { display: grid; justify-items: center; color: #ccc; }
.lv-growth__models svg { width: 23px; height: 23px; }
.lv-growth__ai > .lv-growth__label, .lv-growth__human > .lv-growth__label { margin-bottom: 10px; text-align: center; }
/* Corpo unico: opaco, copre gli ingressi; AI, Human e dati entrano dai bordi, il lead esce dalla porta destra. */
.lv-growth__core { position: absolute; top: 148px; left: 50%; width: 220px; height: 124px; box-sizing: border-box; transform: translateX(-50%); display: flex; align-items: center; flex-direction: column; justify-content: center; gap: 10px; pointer-events: none; isolation: isolate; border: 1px solid #ffffff24; border-radius: 14px; background: #050505; animation: lv-growth-core 4.8s linear infinite; }
.lv-growth__core::after { content: ''; position: absolute; top: 50%; right: -5px; width: 9px; height: 9px; margin-top: -4.5px; border-radius: 50%; background: var(--color-ember); animation: lv-growth-fuse 4.8s linear infinite; }
@keyframes lv-growth-core { 0%, 50%, 72%, 100% { border-color: #ffffff24; } 56%, 61% { border-color: var(--color-ember); } }
.lv-growth__matrix { position: absolute; z-index: -1; inset: 0; border-radius: inherit; overflow: hidden; font: 12px/12px 'Space Mono', monospace; letter-spacing: 3px; color: #ffffff26; white-space: pre; mask-image: radial-gradient(ellipse, #000, transparent 73%); animation: lv-growth-matrix 4s steps(3) infinite; }
.lv-growth__mark { width: 32px; height: 32px; object-fit: contain; opacity: .9; }
.lv-growth__wordmark { width: 92px; height: 16px; object-fit: contain; opacity: .9; }
.lv-growth__human { position: absolute; top: 328px; left: 50%; transform: translateX(-50%); width: 260px; }
.lv-growth__faces { display: flex; justify-content: center; }
.lv-growth__faces img { display: block; box-sizing: border-box; flex: none; width: 42px; height: 42px; border: 2px solid #000; border-radius: 50%; object-fit: cover; background: #181818; }
.lv-growth__faces img + img { margin-left: -8px; }
.lv-growth__outputs { right: 0; top: 196px; }
.lv-growth__outputs > .lv-growth__label { position: absolute; top: -23px; left: 34%; }
.lv-growth__outputs .lv-growth__track { mask-image: linear-gradient(to right, transparent 14%, #000 36%, #000 88%, transparent); }
.lv-growth__outputs .lv-growth__ribbon { animation-duration: 34s; }
.lv-growth__lead i { display: grid; place-items: center; width: 13px; height: 13px; color: var(--color-ember); font-size: 11px; font-style: normal; }
.lv-growth__lead > span { color: #909090; font-size: 10px; border-left: 1px solid #ffffff20; padding-left: 7px; }
.lv-growth:not(.is-running) :is(.lv-growth__ribbon, .lv-growth__packets, .lv-growth__matrix) { animation-play-state: paused; }
@keyframes lv-growth-in { from { transform: translateX(-50%); } to { transform: translateX(0); } }
@keyframes lv-growth-packets { to { stroke-dashoffset: -296; } }
@keyframes lv-growth-matrix { 50% { opacity: .4; transform: translateY(4px); } }
.lv-growth__merge { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.lv-growth__merge--mobile { display: none; }
.lv-growth__strand { fill: none; stroke: #737373; stroke-width: 1; }
.lv-growth__strand--human { stroke: #bbb; }
.lv-growth__merged { fill: none; stroke: #a0a0a0; stroke-width: 1.6; }
.lv-growth__merge--desktop .lv-growth__merged { mask: url(#lvGrowthOutMask); }
.lv-growth__fusion-pulse { fill: #ddd; }
.lv-growth__fusion-pulse--human { fill: var(--color-ember); }
.lv-growth__fusion-pulse--out { fill: #fff; }
@keyframes lv-growth-fuse { 0%, 50%, 70%, 100% { transform: scale(.65); opacity: .5; } 56%, 61% { transform: scale(1.5); opacity: 1; } }
.lv-growth:not(.is-running) :is(.lv-growth__core, .lv-growth__core::after) { animation-play-state: paused; }
@media (min-width: 1800px) { .lv-growth__inputs,.lv-growth__outputs { width: calc(50% - 220px); } }
@media (max-width: 900px) {
 .lv-growth__stage { height: 600px; }
 .lv-growth__inputs { top: 40px; padding: 0 16px; width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; box-sizing: border-box; }
 .lv-growth__source > .lv-growth__label { left: 0; }
 .lv-growth__signal { padding: 0 9px; gap: 6px; height: 26px; }
 .lv-growth__inputs .lv-growth__track { mask-image: linear-gradient(to right, #000 60%, transparent); }
 .lv-growth__code { font-size: 9px; line-height: 12px; letter-spacing: 1px; }
 .lv-growth__wires { display: none; }
 .lv-growth__ai { top: 125px; left: 25%; width: 46%; }
 .lv-growth__models { gap: 12px; }
 .lv-growth__core { top: 300px; width: 160px; height: 100px; }
 .lv-growth__core::after { top: auto; right: auto; bottom: -5px; left: 50%; margin: 0 0 0 -4.5px; }
 .lv-growth__human { top: 125px; left: 75%; width: 46%; }
 .lv-growth__merge--desktop { display: none; }
 .lv-growth__merge--mobile { display: block; }
 .lv-growth__outputs { top: 525px; width: 100%; }
 .lv-growth__outputs > .lv-growth__label { left: 24px; }
 .lv-growth__outputs .lv-growth__track { mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent); }
 .lv-growth__lead { height: 26px; padding-inline: 9px; }
}
@media (prefers-reduced-motion: reduce) { .lv-growth :is(.lv-growth__ribbon,.lv-growth__packets,.lv-growth__matrix,.lv-growth__core,.lv-growth__core::after) { animation: none; } .lv-growth__fusion-pulse { display: none; } }
