Hey Robin,
One of Elements' strengths is that it helps put your integration under the lowest level of requirements for PCI compliance: SAQ A. The reason is that the card details are entered directly inside an iframe served off of Stripe's servers and your page can not control it or tamper with it. This makes it easy for anyone to write an integration while meeting that level of PCI compliance.
Stripe still supports Stripe.js v2 integrations and we do plan to offer similar methods in Stripe.js v3 in the future so that you can build your own payment form on your page. This comes with a higher cost for the PCI Compliance level though. For integrations like those, you get the card details directly in your page and you end up falling under SAQ A-EP instead of SAQ A.
Separately, we'd love to better understand why Elements did not meet your needs. Most of the UI and styles can be customized to suit your own needs both as the single line element or with separate fields such as in this example [1]. You should be able to reproduce your existing form logic via Elements. If that's not the case, you can contact our support team directly here [2] to discuss the situation and see if we can come up with a solution that works for you.
Best,
Remi