What is the difference between a Mushrik and a Kaafir?
There are generalities (shared between them) and specifics (unique to each of them). Shirk is more general than Kufr, for every Mushrik is a Kaafir but not every Kaafir is a Mushrik. The Mushrik worships Allaah and worships other than Him, as for the Kaafir, then he rejects the existence of Allaah the Mighty and Exalted and does not acknowledge Allaah the Mighty and Majestic, and nor does he acknowledge a religion from amongst the religions. This is the rejecting Kaafir. As for the Mushrik, he acknowledges and believes, however, he worships Allaah and worships other than Him, hence he is a Mushrik Kaafir. Thus, every Mushrik is a Kaafir and not every Kaafir is a Mushrik, since the Kaafir can be a Mulhid, Jaahid (Athiest, Rejecter). Silsilah Sharh ar-Rasaa’il p. 239 / Shaikh Saalih al-Fawzaan