Everything works here, but when I use the same code locally, the color property on the .btn–primary doesn’t get applied. When I open inspector, I see that both color properties are striked-through.
I can’t find what’s causing the problem. I don’t see any specificity issue.
If you looked further up the web inspector you would see that your rule for a:link is winning out. When you use :link and visited: to style anchors then you need to use the same when you over-ride them with classes.
In spite of your present difficulties, following the W3C’s guidelines is the preferred way to go.
Properties that apply to all "a"s regardless of their state, such as padding, can be applied to the anchor tag alone without a pseudo-class.
Properties that are changed by the “a” element’s pseudo-classes,:visited, :hover, :focus, :active) should be applied to the “a:link” tag and to the tag with the pseudo-class that changes it. These properties may include color, underline, border, background-color or anything that is changed by the pseudo-classes. The pseudo-classes establish the semantic relationship of the events.