использовать цикл less
UPD: дизайнер гений. ЗАЧЕМ нумерации пунктов такой сложный фон. если начальаня и конечная точка градиаента фиксированы, то нужен JS
upd-2: сделайте градиентный фон для ul , для li белый, для маркеров прозрачный. должно получиться )))
а если попробовать :first-of-type , который ищет 1-ый элемент именно данного типа то есть тег /p> у родителя, может перед ним есть другой элемент, поэтому ваш селектор и не находит то что вы хотите
after и bafore будут всегда перекрывать своих родителей по оси z , чтобы этого не было , придется добавить еще один блок, расположить его под нужным элементом черех z-index а потому уже это дополнительному элементу сделать after и before и все что хотите