Cascading Style Sheets heißen so, weil sich Formatiertungsregeln auf tiefere HTML-Elemente vererben, sofern keine ausdrückliche Anweisung dies verhindert.
Immer noch zu abstrakt? Ich denke bei Cascading Style Sheets immer an Champagner-Cascaden (->Google), bei denen man Champagner-Schalen aufeinanderstapelt und so lange Champagner in das oberste Glas schüttet, bis alle Gläser gefüllt sind. Nur Gläser, die bereits vorher gefüllt waren, werden übersprungen.
Auf Style Sheets übertragen heißt das, dass z.B. eine Schriftgröße für das <body>-Tag sich auf alle verschachtelten Tags im Body-Tag auswirkt:
body { font-size: 16px; }
hat zur Folge, dass der Text in Absätzen <p> ebenfalls mit 16px Schriftgröße ausgezeichnet wird. Erst wenn ich eine Regel für z.B. eine Klasse hinzufüge, überschreibt das die cascadierende Formatierungsregel:
.besonders { font-size: 18px; }
ergibt bei <p class="besonders"> eine größere Schrift, als beim Rest.
Und für deinen konkreten Fall heißt das, dass Du nicht einfach ein tag h3 { blabla } formatieren kannst, sondern den spezifischeren Selektor raussuchen musst, der den allgemeineren überschreibt – in deinem Fall .widget-title-home h3 { blabla }.
!important sollte wirklich immer nur eine gut begründete Notlösung sein.