The probable explanation is that although the
HTML document is declared to be UTF-8
encoded, it actually isn’t. It might be
windows-1252 encoded, and when the windows-1252
encoded representation of “§” is encountered
when processing presumed UTF-8 data, it
constitutes a character data error. A common, and
recommended, way in which browsers indicate the
error is “�” REPLACEMENT CHARACTER.
To fix this, make sure the declared and actual
character encoding match. It is less relevant
which encoding you use, but other things being
equal, it is best to use UTF-8. So you would need
an editor or other authoring tool that can
actually save the data as UTF-8 encoded.
If you absolutely cannot fix the encoding
"§" in CSS by the
"A7". Much less
readable, but works no matter what the encoding
General advice on the topic: the W3C page Character encodings.