(Suppongo tu sei italiano. Mi dispiace, continuo a scrivere in inglese.)
Questions on that topic are asked very often. So please read the concerning sections in the developer guide and search in this forum for similar threads to get a basic understanding. You also get some valueable expert answers already given.
First: How you customize styles depends on what you want. For example overriding the predefined RF style classes is the best choice if you wanna change the style of all instances of a component (for example dataTable) in a project. If you wanna change the style of a single datatable, you use the styleClass, headerClass and so on attributes (plus some other possibilities).
You see there are some basic rules and normally that is everything you have to know.
But I also remember the following: a RF user stated some time ago, that customizing is not working like documented. After a long and exhausting discussion an expert from staff found out, that some configurations in the web.xml were wrong.
What I wanna say: Styling is normally easy but seldom it can be a little bit tricky - as always when you use JSF component technology.
Second: On first glance I notice that you use the headerClass attribute in the columnGroup component. In my opinion that's wrong.
Hope it helps!