/* =========================================================
   Kontaktformular Pro – Modern & Clean
   ========================================================= */

html body .kfp-outer-wrap {
	all: initial !important;
	display: block !important;
	font-family: 'Segoe UI', system-ui, -apple-system, sans-serif !important;
	box-sizing: border-box !important;
}

html body .kfp-outer-wrap *,
html body .kfp-outer-wrap *::before,
html body .kfp-outer-wrap *::after {
	box-sizing: border-box !important;
	font-family: inherit !important;
}

/* Card */
html body .kfp-outer-wrap .kfp-wrap {
	background: #ffffff !important;
	background-color: #ffffff !important;
	border-radius: 20px !important;
	box-shadow: 0 4px 32px rgba(0,0,0,.10) !important;
	max-width: 680px !important;
	margin: 32px auto !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Header */
html body .kfp-outer-wrap .kfp-header {
	background: linear-gradient(135deg, #1a73e8 0%, #0d47a1 100%) !important;
	background-color: #1a73e8 !important;
	padding: 40px 40px 36px !important;
	text-align: center !important;
}

html body .kfp-outer-wrap .kfp-icon {
	font-size: 36px !important;
	color: rgba(255,255,255,.85) !important;
	-webkit-text-fill-color: rgba(255,255,255,.85) !important;
	line-height: 1 !important;
	margin-bottom: 12px !important;
}

html body .kfp-outer-wrap .kfp-title {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	font-size: 26px !important;
	font-weight: 700 !important;
	margin: 0 0 6px !important;
	letter-spacing: -0.3px !important;
}

html body .kfp-outer-wrap .kfp-subtitle {
	color: rgba(255,255,255,.75) !important;
	-webkit-text-fill-color: rgba(255,255,255,.75) !important;
	font-size: 15px !important;
	margin: 0 !important;
}

/* Form body */
html body .kfp-outer-wrap .kfp-form {
	padding: 36px 40px 40px !important;
}

/* Honeypot */
html body .kfp-outer-wrap .kfp-hp-field {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	opacity: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
}

/* Two-column row */
html body .kfp-outer-wrap .kfp-row {
	display: flex !important;
	gap: 16px !important;
}

html body .kfp-outer-wrap .kfp-two-col > .kfp-field {
	flex: 1 !important;
}

/* Field */
html body .kfp-outer-wrap .kfp-field {
	margin-bottom: 20px !important;
	display: block !important;
}

html body .kfp-outer-wrap .kfp-field label {
	display: block !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #374151 !important;
	-webkit-text-fill-color: #374151 !important;
	margin-bottom: 7px !important;
	letter-spacing: .2px !important;
}

html body .kfp-outer-wrap .kfp-req {
	color: #e53935 !important;
	-webkit-text-fill-color: #e53935 !important;
	font-weight: 700 !important;
}

/* Inputs & Textarea */
html body .kfp-outer-wrap input[type="text"],
html body .kfp-outer-wrap input[type="email"],
html body .kfp-outer-wrap input[type="number"],
html body .kfp-outer-wrap textarea {
	display: block !important;
	width: 100% !important;
	padding: 12px 16px !important;
	background: #f8fafc !important;
	background-color: #f8fafc !important;
	border: 1.5px solid #e2e8f0 !important;
	border-radius: 10px !important;
	font-size: 15px !important;
	color: #1e293b !important;
	-webkit-text-fill-color: #1e293b !important;
	outline: none !important;
	transition: border-color .2s, box-shadow .2s, background .2s !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	margin: 0 !important;
}

html body .kfp-outer-wrap input[type="text"]:focus,
html body .kfp-outer-wrap input[type="email"]:focus,
html body .kfp-outer-wrap input[type="number"]:focus,
html body .kfp-outer-wrap textarea:focus {
	border-color: #1a73e8 !important;
	background: #ffffff !important;
	background-color: #ffffff !important;
	box-shadow: 0 0 0 3px rgba(26,115,232,.15) !important;
}

html body .kfp-outer-wrap textarea {
	resize: vertical !important;
	min-height: 120px !important;
}

/* Select */
html body .kfp-outer-wrap .kfp-select-wrap {
	position: relative !important;
	display: block !important;
}

html body .kfp-outer-wrap select {
	display: block !important;
	width: 100% !important;
	padding: 12px 40px 12px 16px !important;
	background: #f8fafc !important;
	background-color: #f8fafc !important;
	border: 1.5px solid #e2e8f0 !important;
	border-radius: 10px !important;
	font-size: 15px !important;
	color: #1e293b !important;
	-webkit-text-fill-color: #1e293b !important;
	outline: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	cursor: pointer !important;
	transition: border-color .2s, box-shadow .2s !important;
}

html body .kfp-outer-wrap select:focus {
	border-color: #1a73e8 !important;
	box-shadow: 0 0 0 3px rgba(26,115,232,.15) !important;
}

html body .kfp-outer-wrap .kfp-select-arrow {
	position: absolute !important;
	right: 14px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	color: #6b7280 !important;
	-webkit-text-fill-color: #6b7280 !important;
	pointer-events: none !important;
	font-size: 16px !important;
}

/* Captcha */
html body .kfp-outer-wrap .kfp-captcha-field input[type="number"] {
	max-width: 120px !important;
}

html body .kfp-outer-wrap .kfp-captcha-q {
	display: inline-block !important;
	background: #1a73e8 !important;
	background-color: #1a73e8 !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	font-weight: 700 !important;
	padding: 2px 10px !important;
	border-radius: 6px !important;
	font-size: 15px !important;
	margin: 0 3px !important;
}

/* Consent */
html body .kfp-outer-wrap .kfp-consent-field {
	margin-top: 4px !important;
}

html body .kfp-outer-wrap .kfp-consent-label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px !important;
	cursor: pointer !important;
	font-size: 13.5px !important;
	color: #4b5563 !important;
	-webkit-text-fill-color: #4b5563 !important;
	line-height: 1.5 !important;
}

html body .kfp-outer-wrap .kfp-consent-label input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	min-width: 18px !important;
	margin-top: 2px !important;
	accent-color: #1a73e8 !important;
	cursor: pointer !important;
	border: none !important;
	padding: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	border-radius: 0 !important;
}

html body .kfp-outer-wrap .kfp-consent-label a {
	color: #1a73e8 !important;
	-webkit-text-fill-color: #1a73e8 !important;
	text-decoration: underline !important;
}

/* Button */
html body .kfp-outer-wrap .kfp-btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	width: 100% !important;
	padding: 15px 24px !important;
	margin-top: 24px !important;
	background: linear-gradient(135deg, #1a73e8 0%, #0d47a1 100%) !important;
	background-color: #1a73e8 !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	border: none !important;
	border-radius: 12px !important;
	cursor: pointer !important;
	transition: transform .15s, box-shadow .15s, opacity .15s !important;
	box-shadow: 0 4px 16px rgba(26,115,232,.35) !important;
	letter-spacing: .2px !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

html body .kfp-outer-wrap .kfp-btn:hover {
	transform: translateY(-1px) !important;
	box-shadow: 0 8px 24px rgba(26,115,232,.45) !important;
}

html body .kfp-outer-wrap .kfp-btn:active {
	transform: translateY(0) !important;
}

html body .kfp-outer-wrap .kfp-btn:disabled {
	opacity: .7 !important;
	cursor: default !important;
	transform: none !important;
}

/* Spinner */
html body .kfp-outer-wrap .kfp-btn-spinner {
	width: 18px !important;
	height: 18px !important;
	border: 2px solid rgba(255,255,255,.4) !important;
	border-top-color: #fff !important;
	border-radius: 50% !important;
	animation: kfp-spin .7s linear infinite !important;
	display: inline-block !important;
}

@keyframes kfp-spin {
	to { transform: rotate(360deg); }
}

/* Notices */
html body .kfp-outer-wrap .kfp-notice {
	margin: 0 40px 0 !important;
	padding: 14px 18px !important;
	border-radius: 10px !important;
	font-size: 14.5px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	margin-bottom: 0 !important;
}

html body .kfp-outer-wrap .kfp-success {
	background: #ecfdf5 !important;
	background-color: #ecfdf5 !important;
	color: #065f46 !important;
	-webkit-text-fill-color: #065f46 !important;
	border: 1px solid #6ee7b7 !important;
	margin-bottom: 20px !important;
}

html body .kfp-outer-wrap .kfp-error {
	background: #fef2f2 !important;
	background-color: #fef2f2 !important;
	color: #991b1b !important;
	-webkit-text-fill-color: #991b1b !important;
	border: 1px solid #fca5a5 !important;
	margin-bottom: 20px !important;
}

/* Mobile */
@media (max-width: 600px) {
	html body .kfp-outer-wrap .kfp-wrap {
		margin: 16px !important;
		border-radius: 16px !important;
	}
	html body .kfp-outer-wrap .kfp-header {
		padding: 28px 24px 24px !important;
	}
	html body .kfp-outer-wrap .kfp-form {
		padding: 24px 20px 28px !important;
	}
	html body .kfp-outer-wrap .kfp-notice {
		margin: 0 20px !important;
	}
	html body .kfp-outer-wrap .kfp-row.kfp-two-col {
		flex-direction: column !important;
		gap: 0 !important;
	}
	html body .kfp-outer-wrap .kfp-title {
		font-size: 22px !important;
	}
}

/* Optional badge */
html body .kfp-outer-wrap .kfp-optional {
	font-size: 11px !important;
	font-weight: 400 !important;
	color: #9ca3af !important;
	-webkit-text-fill-color: #9ca3af !important;
	margin-left: 2px !important;
}

/* Tel input */
html body .kfp-outer-wrap input[type="tel"] {
	display: block !important;
	width: 100% !important;
	padding: 12px 16px !important;
	background: #f8fafc !important;
	background-color: #f8fafc !important;
	border: 1.5px solid #e2e8f0 !important;
	border-radius: 10px !important;
	font-size: 15px !important;
	color: #1e293b !important;
	-webkit-text-fill-color: #1e293b !important;
	outline: none !important;
	transition: border-color .2s, box-shadow .2s, background .2s !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	margin: 0 !important;
}

html body .kfp-outer-wrap input[type="tel"]:focus {
	border-color: #1a73e8 !important;
	background: #ffffff !important;
	background-color: #ffffff !important;
	box-shadow: 0 0 0 3px rgba(26,115,232,.15) !important;
}
