.mailformanchor
{
	width: 1px;
	height: 1px;
}

.mailformnone { display: none; }

.mailform { width: 100%; }

.mailform .group:not(:last-child) { margin-bottom: 1rem; }

.mailform .field:not(:last-child) { margin-bottom: 1rem; }

.mailform .label { font-weight: bold; }
.mailform .label .mandatory:after
{
	margin: 0 0 0 .5rem;
	content: 'Pflichtfeld';
	color: #990000;
	vertical-align: top;
	font-size: .75em;
	font-weight: normal;
}

.mailform .label:after
{
	content: '';
	display: inline-block;
	border-radius: 50%;
	width: 1rem;
	height: 1rem;
	margin-left: .5rem;
	opacity: 0;
	transform: scale(.7);
	transition: background .2s ease, opacity .2s ease, transform .2s ease;
}

.mailform .valid .label:after,
.mailform .invalid .label:after {
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 100%;
	opacity: 1;
	transform: scale(1);
}


.mailform .valid .label:after { background-color: #009900; background-image: url(icon_valid.svg); }
.mailform .invalid .label:after { background-color: #990000; background-image: url(icon_invalid.svg) }

.mailform .invalid .field
{
	border-color: #990000;
}

.mailform input[type=text],
.mailform input[type=email],
.mailform input[type=phone],
.mailform input[type=date],
.mailform input[type=file],
.mailform select,
.mailform textarea,
.mailform button {
	margin: 0;
	width: 100%;
	box-sizing: border-box;
}
.mailform input,
.mailform textarea,
.mailform select {
	font-family: inherit;
	font-size: inherit;
}


.mailform .mailformsubmit { margin: 0 .5rem 0 0; }
.mailform .mailformreset { margin: 0 .5rem 0 0; }

.mailform .message
{
	display: block;
	border-width: 1px;
	border-style: solid;
	color: #000000;
	text-align: center;
	padding: 1rem;
}
.mailform:not(:first-child) .message { margin-top: 1rem; }
.mailform:not(last-child) .message { margin-bottom: 1rem; }

.mailform .success { border-color: #669900; background: #EFFFCE; }
.mailform .error { border-color: #990000; background: #FFCECE; }

