:root { --bg:#f7f7f8; --fg:#222; --muted:#666; --border:#dcdde1; --primary:#2563eb; }
* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; background: var(--bg); color: var(--fg); }
.container { max-width: 440px; margin: 0 auto; padding: 16px; min-height: calc(100vh - 56px); display: flex; flex-direction: column; justify-content: center; }
.logo { display: block; width: 200px; height: auto; margin: 0 auto 12px; }
h1 { font-size: 18px; text-align: center; margin: 0 0 12px; }
.form label { display: block; font-size: 14px; margin: 6px 0 4px; }
input[type="text"], input[type="tel"], input[type="email"], textarea { 
	width: 100%; 
	padding: 5px;
	margin: 2px;
	border: 1px solid var(--border); 
	border-radius: 8px; 
	font-size: 16px; 
	background: #fff; }

input[type="file"] {
	padding: 10px 0;
	font-size: 16px;
}
#plz {
	width: 30%;
}

#ort {
	width:66%;
}

#spacer {
	width: 100%;
	height: 10px;
}

.form input::placeholder, .form textarea::placeholder { color: #9aa0a6; }
.form textarea { resize: vertical; min-height: 72px; }
.row { display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; }
.col { width: 100%; }
button { width: 100%; padding: 12px; font-size: 17px; border: none; border-radius: 10px; background: var(--primary); color: #fff; cursor: pointer; }
button:disabled { opacity: .7; cursor: default; }
.err { color: #b00020; margin-top: 4px; }
.consent { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.consent a { color: var(--primary); text-decoration: none; }
.consent a:hover { text-decoration: underline; }
.foot { text-align: center; padding: 12px; font-size: 12px; color: #777; }
/* Honeypot verstecken */
.hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
/* Screenreader-only */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,1,1); white-space: nowrap; border: 0; }
