// Solutia V3 — "Înlocuiește vs Confirmări.ro". Comparație side-by-side, brutal de directă. const RowsV3 = [ { dim: "Răspunde la apeluri", human: "Lucrează între 9—17", robot: "Clientul simte că vorbește cu un robot", ai: "Fără salarii, contracte, training sau Roboți A.I. care sună clienții", win: true }, { dim: "Cost lunar (2.000 comenzi)", human: "8.800+ RON / 2 oameni", robot: "Face Greșeli", ai: "1,2 sau 3 Agenți Dedicați", win: true, big: true }, { dim: "Timp până sună 100 de clienți", human: "~120 minute (100 oameni)", robot: "Frustrează Clienții", ai: "Rapid și Eficient", win: true, big: true }, { dim: "Upsell automat la confirmare", human: "Are/Nu are chef să sune", robot: "Limitat în comunicare", ai: "Comunicare Reală cu Clienții", win: true }, { dim: "Concedii, weekend, sărbători", human: "Concedii, Training, Pauze", robot: "Nu se descurcă în medii zgomotoase", ai: "Echipa Ta Externalizată", win: true }]; const SolutiaV3 = () => { const headRef = React.useRef(null); const [inView, setInView] = React.useState(false); const [isMobile, setIsMobile] = React.useState(false); React.useEffect(() => { const check = () => setIsMobile(window.innerWidth < 760); check(); window.addEventListener("resize", check); return () => window.removeEventListener("resize", check); }, []); React.useEffect(() => { const el = headRef.current; if (!el) return; const io = new IntersectionObserver( (entries) => entries.forEach((e) => {if (e.isIntersecting) {setInView(true);io.disconnect();}}), { threshold: 0.3 } ); io.observe(el); // fallback if already in view const r = el.getBoundingClientRect(); if (r.top < window.innerHeight && r.bottom > 0) setInView(true); return () => io.disconnect(); }, []); const fadeBase = { display: "inline-block", transition: "opacity .9s ease-out, transform .9s ease-out", opacity: inView ? 1 : 0 }; return (