Firstly I would suggest Sevilla for southern Spain, April/May is a time of celebrations in Andalucía, between Semana Santa, Feria de Abril, and the Fiesta de los Patios in neighboring Cordoba there are many opportunities to experience Andalucían culture like a local.
Secondly, have you done some research on the weather of Northern Spain aka Green Spain? Well it is green for a reason and April into May is the height of the rainy season, you could have weeks of rains that could toss a wrench into your plans. As we say in Spain "en Abril aguas mil" which means "in April a thousand waters", which means prepare for rain. If that is still ok with you I would recommend Oviedo or San Sebastian.
Alternatively have you thought about 2 weeks in the Spanish Canary Islands, the "Hawaii of Europe" so to speak? They tick all your boxes, culture, architecture, beach, food, for example the island of Gran Canaria is nicknamed the "Miniature Continent" because of the diversity of landscapes, from sand dunes to green ravines. It's a paradise if you are into hiking and nature. Gran Canaria also has quite a few picturesque towns like Arucas or Firgas that are worth checking out.
From a cultural standpoint, the next door island of Tenerife should be quite exciting, its home to the second largest carnival in the world (after Rio), which usually takes place in February-March, so it's sure to be a festive mood if you go then. The charming town of San Cristóbal de La Laguna, a UNESCO Heritage site, makes for a nice day trip too.
And one can also check out Teide National Park, another World Heritage Site, which is home to Mount Teide, the third highest volcano in the world. Not to mention all the unique and fascinating history and culture of the indigenous Guanche people.
The Canary Islands should have the best chance of beach weather in Spain during April and May