Here's a snippet of what it looks like with the hover attribute.
As you can see it doesn't affect an input button or the other button types.
.contactform1 button[type=submit]:hover {
background-color: #b49543;
}
<div class="contactform1">
<button type="submit">button Submit</button>
<input type="submit" value="input Submit" />
<button type="reset">button Reset</button>
<button type="button">button Button</button>
</div>
Update in response to OP:
CSS follows a First in First out methodology of structuring data. So you can expect that type of flow to occur when you're dealing with your CSS. Try putting the specific CSS after everything else.
Further Updates:
I took a look into your screenshot. It looks like you don't need the button type hover. just use
.contactform1:hover{
background-color: #b49543;
}
This is because they are all a part of the same DOM element. If you try to call it by both the DOM element type and the Class, it will think that the button is inside of the .contactform1.