vertical-align:top; можете убрать , всё равно для блочных элементов не работает
а что бы была ширина автоматически вообще не указывайте её ,блок растянется на весь экран и разумеется будет сжиматься
можно задать общий margin:20px; к примеру и будет он совсем сторон 20px но он может схлопнуться сверху
https://codepen.io/topicstarter/pen/Ldzjpy