Do I have to give specific reasons for declining a job offer?

You do not have to give specific reasons for declining a job offer. In fact, it is often best to keep your reasons private. How you correspond with a potential employer will be on record after you have either been hired or fired, and you do not want that record to reflect poorly on you in the future. If you want to later re-apply with the same company, a list of reasons for declining a job may be a detriment to your chances. Keep your reasons private, but remain polite and professional. It is more important to thank them than it is to explain why you're declining the offer.