/* Blok: formulier — inclusief de opmaak van Gravity Forms.
 *
 * De eigen CSS van Gravity Forms staat uit (inc/integrations.php), zodat het
 * formulier dezelfde velden, knoppen en kleuren heeft als de rest van de site.
 * Selectors volgen de markup van Gravity Forms 2.5+.
 */

.blitz-form__inner { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--b-gap); }
.blitz-form__aside { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.blitz-form__card {
	flex: 1.4 1 520px;
	min-width: 0;
	padding: clamp(24px, 3.4vw, 48px);
	border-radius: var(--b-r-lg);
	background: var(--b-paper);
	border: 1px solid var(--b-line-soft);
}

.blitz-bg-paper .blitz-form__card { background: var(--b-ground); }
.blitz-form__title { margin-bottom: 24px; font-size: var(--b-fs-card); font-weight: 700; }

.blitz-form__contact { display: flex; flex-direction: column; gap: 16px; margin-top: 12px; padding-top: 24px; border-top: 1px solid var(--b-line); font-style: normal; }
.blitz-form__line { display: flex; align-items: flex-start; gap: 14px; line-height: 1.6; }
.blitz-form__line svg { flex: none; margin-top: 3px; color: var(--b-muted); }
.blitz-form__line a { font-weight: 600; }

/* ---- Gravity Forms ---------------------------------------------------- */

.blitz-form .gform_wrapper { margin: 0; font-family: var(--b-font); }

.blitz-form .gform_fields {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 20px 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.blitz-form .gfield { grid-column: span 12; min-width: 0; margin: 0; padding: 0; border: 0; }
.blitz-form .gfield--width-half { grid-column: span 6; }
.blitz-form .gfield--width-third { grid-column: span 4; }
.blitz-form .gfield--width-quarter { grid-column: span 3; }

@media (max-width: 640px) {
	.blitz-form .gfield--width-half,
	.blitz-form .gfield--width-third,
	.blitz-form .gfield--width-quarter { grid-column: span 12; }
}

/* Nooit zichtbaar: de honeypot tegen spam en verborgen velden. */
.blitz-form .gform_validation_container,
.blitz-form .gfield--type-honeypot,
.blitz-form .gform_hidden,
.blitz-form .gfield_visibility_hidden,
.blitz-form .gfield--type-hidden { display: none !important; }

.blitz-form .screen-reader-text,
.blitz-form .hidden_label .gfield_label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.blitz-form .gfield_label,
.blitz-form legend.gfield_label { display: block; margin: 0 0 8px; padding: 0; font-size: 14px; font-weight: 600; color: var(--b-ink); }
.blitz-form .gfield_required { margin-left: 4px; color: var(--b-muted); font-weight: 400; }
.blitz-form .gfield_required_text { font-size: 12px; }
.blitz-form .gfield_description { margin-top: 6px; font-size: 13px; color: var(--b-muted); }
.blitz-form .gform_required_legend { margin: 0 0 16px; font-size: 13px; color: var(--b-muted); }

.blitz-form .ginput_container input[type="text"],
.blitz-form .ginput_container input[type="email"],
.blitz-form .ginput_container input[type="tel"],
.blitz-form .ginput_container input[type="number"],
.blitz-form .ginput_container input[type="url"],
.blitz-form .ginput_container select,
.blitz-form .ginput_container textarea {
	width: 100%;
	min-height: 52px;
	padding: 14px 16px;
	border: 1px solid color-mix(in srgb, var(--b-ink) 22%, transparent);
	border-radius: var(--b-r-sm);
	background: var(--b-paper);
	box-shadow: none;
	font: inherit;
	font-size: 16px;
	color: var(--b-ink);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.blitz-form .ginput_container textarea { height: 140px; min-height: 120px; resize: vertical; }

.blitz-form .ginput_container input:hover,
.blitz-form .ginput_container select:hover,
.blitz-form .ginput_container textarea:hover { border-color: color-mix(in srgb, var(--b-ink) 45%, transparent); }

.blitz-form .ginput_container input:focus,
.blitz-form .ginput_container select:focus,
.blitz-form .ginput_container textarea:focus {
	outline: none;
	border-color: var(--b-ink);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--b-ink) 12%, transparent);
}

/* Keuzes (Schoonmaak / Glazenwassen / Beide) als knoppen. */
.blitz-form .gfield_radio,
.blitz-form .gfield_checkbox { display: flex; flex-wrap: wrap; gap: 10px; }
.blitz-form .gchoice { position: relative; display: inline-flex; }

.blitz-form .gchoice input[type="radio"],
.blitz-form .gchoice input[type="checkbox"] { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }

.blitz-form .gchoice label {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	margin: 0;
	padding: 0 20px;
	border: 1px solid color-mix(in srgb, var(--b-ink) 22%, transparent);
	border-radius: var(--b-r-sm);
	background: var(--b-paper);
	font-weight: 500;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.blitz-form .gchoice label:hover { border-color: var(--b-ink); }
.blitz-form .gchoice input:checked + label { background: var(--b-ink); border-color: var(--b-ink); color: var(--b-paper); }
.blitz-form .gchoice input:focus-visible + label { outline: 2px solid var(--b-ink); outline-offset: 3px; }

/* Verzendknop */
.blitz-form .gform_footer { margin-top: 28px; padding: 0; }

.blitz-form .gform_footer .gform_button,
.blitz-form .gform_page_footer .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border: 0;
	border-radius: var(--b-r-sm);
	background: var(--b-accent);
	color: var(--b-on-accent);
	font: inherit;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease;
}

.blitz-form .gform_footer .gform_button:hover { background: var(--b-ink); color: var(--b-paper); }
.blitz-form .gform_footer .gform_button:focus-visible { outline: 2px solid var(--b-ink); outline-offset: 3px; }
.blitz-form .gform_ajax_spinner { margin-left: 12px; }

@media (max-width: 640px) {
	.blitz-form .gform_footer .gform_button { width: 100%; }
}

/* Fouten en bevestiging */
.blitz-form .gform_validation_errors {
	margin: 0 0 24px;
	padding: 16px 18px;
	border: 1px solid #B42318;
	border-radius: var(--b-r-sm);
	background: #FEF3F2;
	color: #7A271A;
}

.blitz-form .gform_validation_errors h2,
.blitz-form .gform_submission_error { margin: 0; font-size: 15px; font-weight: 600; color: inherit; }
.blitz-form .gfield_error input,
.blitz-form .gfield_error select,
.blitz-form .gfield_error textarea { border-color: #B42318; }
.blitz-form .validation_message { margin-top: 6px; font-size: 13px; font-weight: 500; color: #B42318; }

.blitz-form .gform_confirmation_message {
	padding: 20px;
	border-radius: var(--b-r-sm);
	background: var(--b-glass);
	font-size: var(--b-fs-body);
	line-height: 1.6;
}
