The issue arises from the presence of two separate class attributes within a single element.
This violates the guidelines outlined in w3.org's 8.2.4.35 Attribute name state.
...if there is already an attribute on the token with the exact same
name, then this is considered a parse error and the new attribute must be removed
from the token.
To rectify this, you should merge them as follows -
<input id="firstname" class="custom error input-xlarge"
name="first_name" type="text" placeholder="" >
Returning to the original query
jsfiddle
.error { background-color: red; border: 0; }
OR
input[type="text"] { border: 0; }
OR (Once combined into one)
.input-xlarge { border: 0; }