Use a language that eases CSS development and compiles into CSS like LESS or SASS. It's really worth trying! (And there's good tooling support.)
When something is possible to style in a straightforward way without the usage of images by only using CSS (even e.g. by using font icons), then do it from CSS.
Try to avoid HTML markup that serves just to enable some kind of styling.
For HTML classes and IDs use dashed names e.g. this-is-a-class
. In Orchard modules you may prefix these with the module name.