The min-height is set to 164px by default, so that’s where some of that space is coming from. You can adjust this on line 1912 in your css. I’d start at around 68px like this –
.header-image .site-title a {
float: left;
min-height: 68px;
width: 100%;
}
If you want to decrease it even more, the other space is the bottom padding from the head-wrap
on line 1823 in your css –
.head-wrap {
padding: 0 0 20px;
}
If you want to upload a different size logo, you would first need to change the size in your functions file and then when you upload using the WordPress header uploader you won’t need to crop….it should upload if the image size in your functions file matches the exact size of the image you’re uploading.