You have the right idea. But the placement of the rules is important. The way that CSS works is that when there are multiple rules with the same selector, then the rule which comes last will take precedence over any earlier rules. This is only for properties which are identical.
For ease of understanding, and so I don’t have to re-enter all of your rules above, let’s number your rules from 1 to 5.
Rules #2 and #4 are identical, so you can remove one of them. Let’s take out rule #4.
The border property in rule #2 is overriding the border-left-color property in rule #1. That is, the border property can be seen as a combination of border-left, border-top, border-right, and border-bottom properties. Since rule #2 comes after rule #1, and they have the same selector (.site-footer::before), then the color for border in rule #2 (gray) is going to override the color for border-left in rule #1 (white). What you need to do, then, is to move rule #2 above rule #1. That way, the white for the left side in rule #1 overrides the gray in rule #2. And then, since rule #4 is gone, then the border-right color of rule #3 won’t be overridden.
Lastly, it looks like the very last rule (#5) is missing the closing right brace } (or maybe you just neglected to copy it over). Make sure it’s there so any rules you add after it at a later time will work.