Right! «О́тпуск» is leave from work, «пра́здник» is a festive event.
Пра́здник is not neccessarily a day off (выходно́й), although some of them are.
"From holiday" is wrong even as a literal translation, because from holiday = с/из/от праздника, with holiday = с праздником.
When we use "с праздником" in Russian, we don't usually mean 'with holiday'.
In some contexts we can use it. E.g. С праздником пришло хорошее настроение — here, «с праздником» can be translated 'with holiday' because it mean that the holiday came, and good mood accompanied it.
However, in «С праздником вас!», nothing accompanies the holiday, nothing is done 'with the holiday'. It's just a short phrase to congratulate people on the holiday. So, we translate it with an English short phrase to congratulate people on the holiday. We can't use the literal translation because it would make no sense.