With the new Gutenberg editor, pages can now be built using blocks instead of defining the whole layout using Advanced custom field types. These blocks can either be manually created or, more realistically, as it's much less work, using Lazy Blocks or ACF Blocks. With those plugins you can click together the form fields for a block and define the template and style per PHP, CSS.
On the other hand you can also create custom widgets in Elementor. I've never done this, but it looks ok (https://developers.elementor.com/docs/widgets/advanced-example/), even though it has more overhead than ACF Blocks or similar.
Do you have any experience with either of those solutions?
The client should be able to change the text. The design will be implemented by me in CSS. As the design is rather complex, I don't think I can do it in pure Elementor (and I don't want to, unless necessary).