Portugal's top court gives gay marriage the green light