/* 80 CTA band. Figma Section/CTA band 212:1088 (desktop, Tone=Light) / 212:1440 (phone).
   Left: eyebrow, H2, body. Right: white card holding the LIVE Gravity Form (id 1). */
.kd-home .kd-home-cta__inner {
	display: flex;
	flex-direction: column;
	gap: var(--kdh-s-32);
}
.kd-home .kd-home-cta__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--kdh-s-16);
}
.kd-home .kd-home-cta__text > * { margin: 0; }
.kd-home .kd-home-cta__title { font-size: var(--kdh-fs-h2); line-height: var(--kdh-lh-h2); letter-spacing: var(--kdh-ls-h2); }
.kd-home .kd-home-cta__art { display: none; } /* desktop-only illustration: on phone/tablet it only pushes the form down */
.kd-home .kd-home-cta__card {
	background: var(--kdh-white);
	border-radius: var(--kdh-r-card);
	/* the band is white now, so the card carries its own edge */
	border: 1px solid var(--kdh-border);
	box-shadow: 0 8px 24px rgba(28, 33, 97, .08);
	padding: var(--kdh-s-24);
}
@media (min-width: 768px) {
	.kd-home .kd-home-cta__card { padding: 40px; }
}
@media (min-width: 1024px) {
	.kd-home .kd-home-cta__inner { flex-direction: row; align-items: stretch; gap: var(--kdh-s-96); }
	.kd-home .kd-home-cta__text { flex: 1 1 0; min-width: 0; }
	.kd-home .kd-home-cta__card { flex: none; width: 560px; align-self: flex-start; }
	/* centred in the space the form leaves beside the copy */
	.kd-home .kd-home-cta__art { display: flex; flex: 1 1 auto; align-items: center; padding-top: var(--kdh-s-32); }
	.kd-home .kd-home-cta__art img { display: block; width: 100%; max-width: 460px; height: auto; aspect-ratio: 1000 / 711; }
}

/* ---------- Gravity Form (live form id 1, orbital theme) -> Figma Field 17:83 / Checkbox 17:108 / Button 12:111 ----------
   Fields, labels and settings are the live form's; this only skins them. Specificity: .kd-home .kd-home-cta .gform_wrapper (0,3,0)+. */
.kd-home .kd-home-cta .gform_wrapper {
	--kd-cta-error: #b42318;
	--gf-form-gap-x: 24px;
	--gf-form-gap-y: 24px;
	/* Gravity Forms framework variables: primary button = Figma Button 12:111 */
	--gf-ctrl-btn-bg-color-primary: var(--kdh-green);
	--gf-ctrl-btn-bg-color-hover-primary: var(--kdh-green-hover);
	--gf-ctrl-btn-bg-color-focus-primary: var(--kdh-green);
	--gf-ctrl-btn-color-primary: var(--kdh-navy);
	--gf-ctrl-btn-color-hover-primary: var(--kdh-navy);
	--gf-ctrl-btn-color-focus-primary: var(--kdh-navy);
	--gf-ctrl-btn-border-color-primary: transparent;
	--gf-ctrl-btn-border-color-hover-primary: transparent;
	--gf-ctrl-btn-border-color-focus-primary: transparent;
	--gf-ctrl-btn-radius: 9999px;
	--gf-ctrl-btn-font-family: var(--kdh-font-head);
	--gf-ctrl-btn-font-weight: 600;
	--gf-ctrl-btn-size: 48px;
	margin: 0;
	padding: 0;
	font-family: var(--kdh-font-body);
	color: var(--kdh-ink);
}
.kd-home .kd-home-cta .gform_wrapper .gform_heading { margin: 0 0 var(--kdh-s-24); padding: 0; }
.kd-home .kd-home-cta .gform_wrapper .gform_description:empty { display: none; }
.kd-home .kd-home-cta .gform_wrapper .gform_required_legend {
	margin: 0;
	font-family: var(--kdh-font-body);
	font-size: var(--kdh-fs-small);
	line-height: 1.5;
	color: var(--kdh-stone);
}
.kd-home .kd-home-cta .gform_wrapper .gfield_required { color: var(--kd-cta-error); font-size: inherit; }

.kd-home .kd-home-cta .gform_wrapper .gform_fields {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--kdh-s-24);
	row-gap: var(--kdh-s-24);
	margin: 0;
	padding: 0;
	list-style: none;
}
.kd-home .kd-home-cta .gform_wrapper .gfield {
	grid-column: 1 / -1;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}
.kd-home .kd-home-cta .gform_wrapper .gfield--width-half { grid-column: span 6; }
.kd-home .kd-home-cta .gform_wrapper .gfield--type-hidden,
.kd-home .kd-home-cta .gform_wrapper .gform_validation_container { display: none; }

/* Labels / legends: always visible (Figma: label above control, Rubik 500 14/18 navy).
   The live form hides several labels and relies on placeholders; they are un-hidden here. */
.kd-home .kd-home-cta .gform_wrapper .gfield > .gfield_label,
.kd-home .kd-home-cta .gform_wrapper .gfield.hidden_label > .gfield_label {
	position: static;
	display: block;
	width: auto;
	height: auto;
	margin: 0 0 var(--kdh-s-8);
	padding: 0;
	overflow: visible;
	clip: auto;
	clip-path: none;
	white-space: normal;
	font-family: var(--kdh-font-head);
	font-size: var(--kdh-fs-label);
	font-weight: 500;
	line-height: 18px;
	color: var(--kdh-navy);
	float: none;
}
.kd-home .kd-home-cta .gform_wrapper .gfield--type-name > .gfield_label { margin-bottom: var(--kdh-s-8); }

/* Controls */
.kd-home .kd-home-cta .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], select, textarea) {
	display: block;
	width: 100%;
	max-width: none;
	min-height: 48px;
	margin: 0;
	padding: var(--kdh-s-12) var(--kdh-s-16);
	background-color: var(--kdh-white);
	color: var(--kdh-ink);
	border: 1px solid var(--kdh-stone);
	border-radius: var(--kdh-r-sm);
	box-shadow: none;
	font-family: var(--kdh-font-body);
	font-size: var(--kdh-fs-body);
	font-weight: 400;
	line-height: 1.6;
	appearance: none;
	-webkit-appearance: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.kd-home .kd-home-cta .gform_wrapper textarea { min-height: 136px; resize: vertical; }
.kd-home .kd-home-cta .gform_wrapper select {
	padding-right: 48px;
	line-height: 1.3;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c2161' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 24px 24px;
}
.kd-home .kd-home-cta .gform_wrapper ::placeholder { color: var(--kdh-stone); opacity: 1; }
.kd-home .kd-home-cta .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], select, textarea):focus {
	outline: none;
	border-color: var(--kdh-navy);
	box-shadow: 0 0 0 1px var(--kdh-navy);
}
.kd-home .kd-home-cta .gform_wrapper :is(input, select, textarea):focus-visible { outline: 2px solid var(--kdh-navy); outline-offset: 2px; }
.kd-home .kd-home-cta .gform_wrapper .ginput_container { margin: 0; }
.kd-home .kd-home-cta .gform_wrapper .ginput_complex { display: flex; flex-wrap: wrap; gap: var(--kdh-s-24); margin: 0; padding: 0; }
.kd-home .kd-home-cta .gform_wrapper .ginput_complex > span { flex: 1 1 0; min-width: 0; margin: 0; padding: 0; }

/* Checkbox rows: 24px box, 2px stone edge, checked = navy fill + white check. Whole row (min 48) is the hit area. */
.kd-home .kd-home-cta .gform_wrapper .gfield_checkbox,
.kd-home .kd-home-cta .gform_wrapper .ginput_container_consent { display: flex; flex-wrap: wrap; gap: 0 var(--kdh-s-24); margin: 0; padding: 0; }
.kd-home .kd-home-cta .gform_wrapper .gchoice,
.kd-home .kd-home-cta .gform_wrapper .ginput_container_consent { align-items: center; min-height: 48px; }
.kd-home .kd-home-cta .gform_wrapper .gchoice { display: flex; gap: var(--kdh-s-12); margin: 0; padding: 0; }
.kd-home .kd-home-cta .gform_wrapper .ginput_container_consent { gap: var(--kdh-s-12); }
.kd-home .kd-home-cta .gform_wrapper input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	flex: none;
	position: relative;
	width: 24px;
	height: 24px;
	min-height: 0;
	margin: 0;
	padding: 0;
	background: var(--kdh-white);
	border: 2px solid var(--kdh-stone);
	border-radius: 4px;
	box-shadow: none;
	cursor: pointer;
}
.kd-home .kd-home-cta .gform_wrapper input[type="checkbox"]::before { content: none; }
.kd-home .kd-home-cta .gform_wrapper input[type="checkbox"]:checked {
	background-color: var(--kdh-navy);
	border-color: var(--kdh-navy);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	background-size: 100% 100%;
}
.kd-home .kd-home-cta .gform_wrapper input[type="checkbox"]:focus-visible { outline: 2px solid var(--kdh-navy); outline-offset: 3px; }
.kd-home .kd-home-cta .gform_wrapper .gchoice label,
.kd-home .kd-home-cta .gform_wrapper .gfield_consent_label {
	margin: 0;
	padding: 0;
	font-family: var(--kdh-font-body);
	font-size: var(--kdh-fs-body);
	font-weight: 400;
	line-height: 1.6;
	color: var(--kdh-ink);
	cursor: pointer;
}

/* Submit: Figma Button 12:111 (primary pill, green, navy label, arrow) */
.kd-home .kd-home-cta .gform_wrapper .gform_footer,
.kd-home .kd-home-cta .gform_wrapper .gform_page_footer { display: flex; align-items: center; margin: var(--kdh-s-24) 0 0; padding: 0; }
main.kd-home .kd-home-cta .gform_wrapper.gform-theme--framework .gform_footer .gform_button.button,
main.kd-home .kd-home-cta .gform_wrapper.gform-theme--framework .gform_footer input[type="submit"] {
	height: auto;
	padding-block: var(--kdh-s-16);
	padding-inline: var(--kdh-s-32);
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--kdh-s-8);
	width: auto;
	min-height: 48px;
	margin: 0;
	padding: var(--kdh-s-16) var(--kdh-s-32);
	background: var(--kdh-green);
	color: var(--kdh-navy);
	border: 2px solid transparent;
	border-radius: var(--kdh-r-pill);
	box-shadow: none;
	font-family: var(--kdh-font-head);
	font-size: var(--kdh-fs-button);
	font-weight: 600;
	line-height: 1;
	letter-spacing: var(--kdh-ls-button);
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .15s ease;
}
.kd-home .kd-home-cta .gform_wrapper .gform_footer .gform_button::after {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background-color: currentColor;
	-webkit-mask: var(--kdh-arrow) center / contain no-repeat;
	mask: var(--kdh-arrow) center / contain no-repeat;
}
.kd-home .kd-home-cta .gform_wrapper .gform_footer .gform_button:hover { background: var(--kdh-green-hover); color: var(--kdh-navy); border-color: transparent; }
.kd-home .kd-home-cta .gform_wrapper .gform_footer .gform_button:focus { outline: none; }
.kd-home .kd-home-cta .gform_wrapper .gform_footer .gform_button:focus-visible { outline: none; box-shadow: var(--kdh-focus-light); }

/* Validation: 2px error edge + message (never colour alone) */
.kd-home .kd-home-cta .gform_wrapper .gform_validation_errors {
	margin: 0 0 var(--kdh-s-24);
	padding: var(--kdh-s-16);
	background: var(--kdh-white);
	border: 2px solid var(--kd-cta-error);
	border-radius: var(--kdh-r-sm);
	box-shadow: none;
}
.kd-home .kd-home-cta .gform_wrapper .gform_validation_errors .gform_submission_error {
	margin: 0;
	font-family: var(--kdh-font-head);
	font-size: var(--kdh-fs-label);
	font-weight: 600;
	color: var(--kd-cta-error);
}
.kd-home .kd-home-cta .gform_wrapper .gfield_error :is(input, select, textarea) { border: 2px solid var(--kd-cta-error); box-shadow: none; }
.kd-home .kd-home-cta .gform_wrapper .gfield_validation_message,
.kd-home .kd-home-cta .gform_wrapper .validation_message {
	margin: var(--kdh-s-8) 0 0;
	padding: 0;
	background: none;
	border: 0;
	font-family: var(--kdh-font-body);
	font-size: var(--kdh-fs-small);
	line-height: 1.5;
	color: var(--kd-cta-error);
}
.kd-home .kd-home-cta .gform_confirmation_message {
	margin: 0;
	font-family: var(--kdh-font-body);
	font-size: var(--kdh-fs-lead);
	line-height: var(--kdh-lh-lead);
	color: var(--kdh-navy);
}
.kd-home .kd-home-cta .gform_wrapper .gform_ajax_spinner { margin-left: var(--kdh-s-12); }

@media (max-width: 767.98px) {
	.kd-home .kd-home-cta .gform_wrapper .gfield--width-half { grid-column: 1 / -1; }
	.kd-home .kd-home-cta .gform_wrapper .ginput_complex { flex-direction: column; gap: var(--kdh-s-16); }
	.kd-home .kd-home-cta .gform_wrapper .ginput_complex > span { flex: none; width: 100%; }
}

/* Windows High Contrast drops background-image: hand checkboxes back to the native control. */
@media (forced-colors: active) {
	.kd-home .kd-home-cta .gform_wrapper input[type="checkbox"] { appearance: auto; }
}
