Use of :first-child

No. first-child means just that: it has to be the first child, not the second!

So what you are really looking for is li p:first-of-type {} … as this selects the first instance of that type of element.