/* ═══════════════════════════════════════════════════════════════════════════
   Codemark — Gravity Forms in de huisstijl.
   De eigen CSS van Gravity Forms staat uit (zie inc/gravityforms.php).
   ═══════════════════════════════════════════════════════════════════════════ */

.cm-formulier { margin: 0; }

.cm-formulier .gform_fields {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cm-formulier .gfield { grid-column: span 2; min-width: 0; }
.cm-formulier .gfield--width-half { grid-column: span 1; }

.cm-formulier .gfield_label {
	display: block;
	font-family: var(--kop);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--donker);
	margin-bottom: 8px;
}

.cm-formulier .gfield_required { color: var(--accent); margin-left: 2px; }
.cm-formulier .gfield_required_text { display: none; }

.cm-formulier input[type="text"],
.cm-formulier input[type="email"],
.cm-formulier input[type="tel"],
.cm-formulier input[type="url"],
.cm-formulier input[type="number"],
.cm-formulier select,
.cm-formulier textarea {
	width: 100%;
	border: 1.5px solid rgba(19, 19, 32, 0.12);
	border-radius: var(--r-veld);
	padding: 14px 16px;
	font-family: var(--body);
	font-size: 15px;
	line-height: 1.6;
	color: var(--donker);
	background: var(--wit);
	transition: border-color var(--overgang), box-shadow var(--overgang);
}

.cm-formulier textarea { min-height: 110px; resize: vertical; }

.cm-formulier input::placeholder,
.cm-formulier textarea::placeholder { color: #B5B0A8; }

.cm-formulier input:focus,
.cm-formulier select:focus,
.cm-formulier textarea:focus {
	outline: none;
	border-color: var(--donker);
	box-shadow: 0 0 0 3px rgba(19, 19, 32, 0.06);
}

/* Keuzevelden als chips: de radio zelf blijft bestaan voor toetsenbord en
   schermlezer, alleen het label is zichtbaar. */
.cm-formulier .gfield--type-radio .gfield_radio,
.cm-formulier .gfield--type-checkbox.cm-chips .gfield_checkbox {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cm-formulier .gfield--type-radio .gchoice,
.cm-formulier .gfield--type-checkbox.cm-chips .gchoice { margin: 0; }

.cm-formulier .gfield--type-radio input[type="radio"],
.cm-formulier .gfield--type-checkbox.cm-chips input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.cm-formulier .gfield--type-radio label,
.cm-formulier .gfield--type-checkbox.cm-chips label {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-size: 14px;
	padding: 9px 16px;
	border-radius: var(--r-chip);
	border: 1.5px solid rgba(19, 19, 32, 0.12);
	color: var(--tekst);
	cursor: pointer;
	transition: background-color var(--overgang), border-color var(--overgang), color var(--overgang);
}

.cm-formulier .gfield--type-radio label:hover,
.cm-formulier .gfield--type-checkbox.cm-chips label:hover { border-color: var(--rand); color: var(--donker); }

.cm-formulier .gfield--type-radio input:checked + label,
.cm-formulier .gfield--type-checkbox.cm-chips input:checked + label {
	background: var(--donker);
	border-color: var(--donker);
	color: #fff;
	font-weight: 500;
}

.cm-formulier .gfield--type-radio input:focus-visible + label,
.cm-formulier .gfield--type-checkbox.cm-chips input:focus-visible + label {
	outline: 2px solid var(--koraal);
	outline-offset: 2px;
}

/* Het akkoordvinkje blijft een gewoon vinkje. */
.cm-formulier .gfield--type-consent .gfield_consent_label,
.cm-formulier .gfield--type-checkbox:not(.cm-chips) label {
	display: inline;
	font-size: 14px;
	line-height: 1.55;
	color: var(--tekst-zacht);
	font-family: var(--body);
	font-weight: 400;
}

.cm-formulier .gfield--type-consent .ginput_container_consent {
	display: flex;
	align-items: flex-start;
	gap: 11px;
}

.cm-formulier .gfield--type-consent input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--donker);
	flex: none;
}

.cm-formulier .gfield--type-consent .gfield_label { display: none; }

/* Beschrijving onder een veld. */
.cm-formulier .gfield_description {
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--meta);
	margin-top: 6px;
	padding: 0;
}

/* Foutmeldingen. */
.cm-formulier .gfield_error input,
.cm-formulier .gfield_error textarea,
.cm-formulier .gfield_error select { border-color: var(--koraal-donker); }

.cm-formulier .validation_message {
	font-size: 13.5px;
	color: var(--koraal-donker);
	margin-top: 6px;
	padding: 0;
	background: none;
	border: 0;
}

.cm-formulier-fout,
.cm-formulier .gform_submission_error {
	font-family: var(--kop);
	font-size: 16px;
	font-weight: 600;
	color: var(--koraal-donker);
	background: rgba(255, 107, 91, 0.08);
	border-radius: var(--r-veld);
	padding: 14px 16px;
	margin-bottom: 20px;
}

/* Verzendrij. */
.cm-formulier .gform_footer {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 26px;
	padding: 0;
}

.cm-formulier .gform_button { border: 0; }
.cm-formulier .gform_ajax_spinner { width: 22px; height: 22px; }

/* Bevestiging. */
.cm-formulier-bedankt {
	background: var(--papier);
	border: 1px solid var(--rand-zacht);
	border-radius: var(--r-veld);
	padding: 26px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--donker);
}

.cm-formulier-bedankt::before {
	content: "";
	display: block;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--verloop);
	margin-bottom: 14px;
}

/* Honeypot en verborgen velden nemen geen ruimte in. */
.cm-formulier .gform_validation_container,
.cm-formulier .gfield--type-honeypot { display: none !important; }

@media (max-width: 640px) {
	.cm-formulier .gform_fields { grid-template-columns: 1fr; }
	.cm-formulier .gfield,
	.cm-formulier .gfield--width-half { grid-column: span 1; }
	.cm-formulier .gform_footer { flex-direction: column; align-items: stretch; }
	.cm-formulier .gform_button { width: 100%; }
}
