.contact_form ul {
	margin: 0px; padding: 0px; list-style-type: none; list-style-position: outside;
}
.contact_form li {
	padding: 12px; position: relative;
}
.contact_form li:first-child {
	
}
.contact_form li:last-child {
	
}
.contact_form h2 {
	margin: 0px; display: inline;
}
.required_notification {
	margin: 5px 0px 0px; color: rgb(212, 82, 82); float: right; display: inline;
}
.contact_form label {
	padding: 3px;  margin-top: 3px; float: left; display: inline-block;
}
.contact_form input {
	padding: 5px 8px;  height: 20px;
}
.contact_form textarea {
	padding: 8px; 
}
.contact_form button {
	margin-left: 156px;
}
.contact_form input {
	border-radius: 2px; border: 1px solid rgb(170, 170, 170); transition:padding 0.25s; padding-right: 30px; box-shadow: 0px 0px 3px #ccc, inset 0px 10px 15px #eee; -webkit-transition: padding .25s; -moz-transition: padding .25s; -o-transition: padding .25s;
}
.contact_form textarea {
	border-radius: 2px; border: 1px solid rgb(170, 170, 170); transition:padding 0.25s; padding-right: 30px; box-shadow: 0px 0px 3px #ccc, inset 0px 10px 15px #eee; -webkit-transition: padding .25s; -moz-transition: padding .25s; -o-transition: padding .25s;
}
.contact_form input:focus {
	background: rgb(255, 255, 255); border: 1px solid rgb(85, 85, 85); padding-right: 70px; box-shadow: 0px 0px 3px #aaa;
}
.contact_form textarea:focus {
	background: rgb(255, 255, 255); border: 1px solid rgb(85, 85, 85); padding-right: 70px; box-shadow: 0px 0px 3px #aaa;
}
.contact_form input:required {
	background: url("../img/red_asterisk.png") no-repeat 98% rgb(255, 255, 255);
}
.contact_form textarea:required {
	background: url("../img/red_asterisk.png") no-repeat 98% rgb(255, 255, 255);
}
.contact_form input:required:valid {
	background: url("../img/valid.png") no-repeat 98% rgb(255, 255, 255); border-color: rgb(40, 146, 31); box-shadow: 0px 0px 5px #5cd053;
}
.contact_form textarea:required:valid {
	background: url("../img/valid.png") no-repeat 98% rgb(255, 255, 255); border-color: rgb(40, 146, 31); box-shadow: 0px 0px 5px #5cd053;
}
.contact_form input:invalid:focus {
	background: url("../img/invalid.png") no-repeat 98% rgb(255, 255, 255); border-color: rgb(176, 53, 53); box-shadow: 0px 0px 5px #d45252;
}
.contact_form textarea:invalid:focus {
	background: url("../img/invalid.png") no-repeat 98% rgb(255, 255, 255); border-color: rgb(176, 53, 53); box-shadow: 0px 0px 5px #d45252;
}
.form_hint {
	background: rgb(212, 82, 82); padding: 1px 6px; border-radius: 3px; color: white; margin-left: 8px; display: none; position: absolute; z-index: 999;
}
.form_hint::before {
	left: -6px; top: 1px; color: rgb(212, 82, 82); position: absolute; content: "\25C0";
}
.contact_form input:focus + .form_hint {
	display: inline;
}
.contact_form input:required:valid + .form_hint {
	background: rgb(40, 146, 31);
}
.contact_form input:required:valid + .form_hint::before {
	color: rgb(40, 146, 31);
}
button.submit {
	background: -ms-linear-gradient(rgb(104, 177, 47), rgb(80, 145, 30)); border-width: 1px; border-style: solid; border-color: rgb(80, 145, 17) rgb(80, 145, 17) rgb(91, 153, 43); padding: 6px 20px; border-radius: 3px; text-align: center; color: white; font-weight: bold; box-shadow: inset 0px 1px 0px 0px #9fd574; text-shadow: 0px -1px 0px #396715; -webkit-border-radius: 3px; -moz-border-radius: 3px; -webkit-box-shadow: 0 1px 0 0 #9fd574 inset; -moz-box-shadow: 0 1px 0 0 #9fd574 inset; -ms-border-radius: 3px; -o-border-radius: 3px; -ms-box-shadow: 0 1px 0 0 #9fd574 inset; -o-box-shadow: 0 1px 0 0 #9fd574 inset;
}
button.submit:hover {
	cursor: pointer; opacity: 0.85;
}
button.submit:active {
	border: 1px solid rgb(32, 145, 30); box-shadow: inset 0px 0px 10px 5px #356b0b; -webkit-box-shadow: 0 0 10px 5px #356b0b inset; -moz-box-shadow: 0 0 10px 5px #356b0b inset; -ms-box-shadow: 0 0 10px 5px #356b0b inset; -o-box-shadow: 0 0 10px 5px #356b0b inset;
}
.gmap {
	background: white; padding: 4px; border: 1px solid rgb(238, 238, 238); margin-bottom: 15px;
}