Solution:1
Firstly,
entities are space characters, not hyphens. Secondly, the CSS is not generating those, it is WordPress that generates extra markup. This may be a result of the WYSIWYG editor, or the theme itself, but it is impossible to know based on your question.
You can use the following code to prevent WordPress from creating extra markup:
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
But, the problem is also likely with a related plugin. Try disabling all plugins and see if the problem still arises.