/* ifV Kontaktformular */
.ifv-kontakt-form {
	max-width: 640px;
	margin: 1.5rem 0;
}
.ifv-kontakt-form .ifv-k-field {
	margin: 0 0 1.1rem;
}
.ifv-kontakt-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
	color: var(--wp--preset--color--primary, #2E49C2);
}
.ifv-kontakt-form .ifv-k-req { color: #c0392b; }
.ifv-kontakt-form .ifv-k-opt { color: #777; font-weight: 400; font-size: 0.9em; }
.ifv-kontakt-form input[type="text"],
.ifv-kontakt-form input[type="email"],
.ifv-kontakt-form input[type="tel"],
.ifv-kontakt-form select,
.ifv-kontakt-form textarea {
	width: 100%;
	padding: 0.7rem 0.85rem;
	border: 1px solid #c7ccd4;
	border-radius: 8px;
	font-size: 1rem;
	font-family: inherit;
	background: #fff;
	box-sizing: border-box;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.ifv-kontakt-form input:focus,
.ifv-kontakt-form select:focus,
.ifv-kontakt-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary, #2E49C2);
	box-shadow: 0 0 0 3px rgba(46, 73, 194, 0.15);
}
.ifv-kontakt-form textarea { resize: vertical; min-height: 140px; }
.ifv-kontakt-form .ifv-k-invalid select { border-color: #c0392b; }

/* Inhouse-Variante: zwei kurze Felder (Teilnehmerzahl, Format) nebeneinander,
   auf schmalen Viewports gestapelt. */
.ifv-kontakt-form .ifv-k-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 1rem;
}
/* Anrede / Vorname / Nachname — Anrede braucht weniger Platz. */
.ifv-kontakt-form .ifv-k-row--3 {
	grid-template-columns: 0.6fr 1fr 1fr;
}
/* Straße / PLZ / Ort — PLZ ist das kürzeste Feld überhaupt. */
.ifv-kontakt-form .ifv-k-row--anschrift {
	grid-template-columns: 2fr 0.7fr 1.3fr;
}
@media (max-width: 600px) {
	.ifv-kontakt-form .ifv-k-row,
	.ifv-kontakt-form .ifv-k-row--3,
	.ifv-kontakt-form .ifv-k-row--anschrift { grid-template-columns: 1fr; }
}

.ifv-kontakt-form .ifv-k-consent {
	display: block;
	margin: 0 0 1.2rem;
	font-size: 0.95rem;
}
.ifv-kontakt-form .ifv-k-consent label {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	font-weight: 400;
	color: inherit;
}
.ifv-kontakt-form .ifv-k-consent input { margin-top: 0.25rem; flex: 0 0 auto; }

/* Honeypot ausblenden */
.ifv-kontakt-form .ifv-k-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ifv-kontakt-form .ifv-k-btn {
	background: var(--wp--preset--color--primary, #2E49C2);
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 0.8rem 1.8rem;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}
.ifv-kontakt-form .ifv-k-btn:hover { background: var(--wp--preset--color--primary-dark, #22358E); }
.ifv-kontakt-form .ifv-k-btn:disabled { opacity: 0.6; cursor: default; }

/* Fehler / Erfolg */
.ifv-kontakt-form .ifv-k-invalid input,
.ifv-kontakt-form .ifv-k-invalid textarea { border-color: #c0392b; }
.ifv-kontakt-form .ifv-k-error {
	display: block;
	color: #c0392b;
	font-size: 0.85rem;
	margin-top: 0.3rem;
}
.ifv-kontakt-form .ifv-k-feedback:empty { display: none; }
.ifv-kontakt-form .ifv-k-feedback {
	padding: 0.85rem 1rem;
	border-radius: 8px;
	margin-bottom: 1.2rem;
	font-weight: 500;
}
.ifv-kontakt-form .ifv-k-feedback.ifv-k-ok { background: #e7f6ec; color: #1e7a3d; border: 1px solid #b6e0c4; }
.ifv-kontakt-form .ifv-k-feedback.ifv-k-err { background: #fdecea; color: #c0392b; border: 1px solid #f3c0bb; }
