@Kirsty66
This is undoubtedly going to be a tricky one. So remember that at some point you need to think is this worth the hassle.
You are within your rights to keep payment as the guest did not read the description nor look up the location.
You can tell the guest they need to cancel so that your calendar is opened again and you can try to resell the room. I would tell the guest that you are happy to refund for any nights not used. Also you can refund the cleaing fee straight as they did not use the property (I assume).
Remember that when they send through a cancellation request you decline it, as otherwise it seems to the platform that you have initiated the cancellation.
I think you will find that the guest will approach AirBnB direct - if they do, as you probably know, the guest is in the right until proved otherwise. Keep all correspondence with the guest on the platform, which at least will show your side of the argument. Be prepared for the worst outcome - and finally think about lessons learned - anyone pushing for a discount is bad news from the outset.
Good luck and remember to review the guest (briefly and professionaly) and give them the thumbs down so that other hosts are aware