"The restaurant is on top of the hotel."
Translation:El restaurante está sobre el hotel.
'Estar' used for locations. If I say the food is on the table, I'd use estar, and Spanish has decided to use estar for all locations of objects, even "permanent" ones. I think of it as an address, like a street address, which can change. The hotel could stop being a hotel, the restaurant could relocate. etc
Events are different. For some reason, "La fiesta es en mi casa." Events use "ser."