I have a regular A:link

Then I have
.body2 A:link

For some reason Firefox ignores the body2 and uses the first. I am using a span for the body2
<span class=“body2”>

In your example the “body2” class is applied to a span - which does not recognize the “:link” pseudo.
Also, your syntax is slightly wrong in a few places.

Try this

a.body2:link { /*styling for this link*/ }
<span class="nav"><a href="#" class="body2">Link Here</a></span>

or, an alternative

body2 a:link { /*styling for this link*/ }
<span class="body2"><a href="#">Link Here</a></span>