Puedes utilizar flexbox y darle un ancho fijo tanto al logo y al header.
<header>
<section class="logo">
<img src="logo.png" >
</section>
<section class="header">
<img src="header.png" >
<section class="text">
Teléfonos, Emails, etc.
</section>
</section>
</header>
Al logo le das 20% de ancho y el restante a la imagen de cabecera:
header {
background-color: #eee;
display: flex;
height: 90px;
}
header > * {
align-items: center;
display: flex;
height: 100%;
justify-content: center;
}
header > .logo {
width: 20%;
}
header > .logo > img {
background-size: cover;
height: 80px;
width: 80px;
}
header > .header {
display: block;
height: 100%;
width: 80%;
}
header > .header > img {
background-size: cover;
display: block;
height: 100%;
width: 100%;
}
Y de esta manera, con flexbox nunca se van a superponer las imágenes. Alternativamente puedes eliminar el logo y dejar solo la cabecera cuando la pantalla sea X ancho:
@media screen and (max-width:500px) {
header > .logo {
width: 0px;
}
header > .header {
width: 100%;
}
Click aquí para ver la demo