/*
 * Gravity Forms skin — the theme is the single styling source (GF theme CSS
 * disabled in inc/gravity.php). Matches the Figma form card.
 */

.gform_wrapper form { display: grid; gap: 4px; }
.gform_wrapper .gform_fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; list-style: none; padding: 0; margin: 0; }
.gform_wrapper .gfield { grid-column: 1 / -1; }
.gform_wrapper .gfield.gf_left_half { grid-column: 1 / 2; }
.gform_wrapper .gfield.gf_right_half { grid-column: 2 / 3; }
@media (max-width: 560px) {
	.gform_wrapper .gform_fields { grid-template-columns: 1fr; }
	.gform_wrapper .gfield.gf_left_half, .gform_wrapper .gfield.gf_right_half { grid-column: 1 / -1; }
}

/* Neutralise GF fieldset/legend chrome. */
.gform_wrapper fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.gform_wrapper legend.gfield_label { float: none; width: 100%; padding: 0; }

.gform_wrapper .gfield_label {
	display: block; font-size: var(--fs-body-sm); font-weight: 500;
	color: var(--ada-ink); margin-bottom: 7px;
}
.gform_wrapper .gfield_required { color: var(--ada-red); }
/* Space between the label and "(Required)" (outer span only — GF nests two). */
.gform_wrapper .gfield_label > .gfield_required { margin-left: 0.35em; font-weight: 400; }
/* "Hidden label" fields keep their label for screen readers only (GF's own CSS is off). */
.gform_wrapper .hidden_label > .gfield_label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.gform_wrapper .gfield_description { font-size: var(--fs-caption); color: var(--ada-muted); margin: -2px 0 7px; }

.gform_wrapper input[type='text'],
.gform_wrapper input[type='email'],
.gform_wrapper input[type='tel'],
.gform_wrapper input[type='url'],
.gform_wrapper input[type='number'],
.gform_wrapper select,
.gform_wrapper textarea {
	width: 100%; border: 1px solid var(--ada-grey);
	border-radius: 6px; padding: 11px 13px;
	font-size: var(--fs-body-sm); background: var(--ada-white);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.gform_wrapper input:focus, .gform_wrapper select:focus, .gform_wrapper textarea:focus {
	outline: none; border-color: var(--ada-red); box-shadow: 0 0 0 1px var(--ada-red);
}
.gform_wrapper ::placeholder { color: var(--ada-grey); }
.gform_wrapper textarea { min-height: 120px; resize: vertical; }

/* Simple-name single input must span the name grid. */
.gform_wrapper .ginput_container_name { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gform_wrapper .ginput_container_name > input { grid-column: 1 / -1; width: 100%; }
.gform_wrapper .ginput_container_name span { display: block; }
.gform_wrapper .ginput_container_name label { font-size: var(--fs-caption); color: var(--ada-muted); margin-top: 4px; display: block; }

/* Checkboxes / consent. */
.gform_wrapper .gfield_checkbox { display: grid; gap: 10px; list-style: none; }
.gform_wrapper .gchoice { display: flex; gap: 10px; align-items: flex-start; }
.gform_wrapper .gchoice input[type='checkbox'] {
	appearance: none; flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px;
	border: 1px solid var(--ada-grey); border-radius: 4px; background: var(--ada-white);
	display: inline-grid; place-content: center; cursor: pointer;
}
.gform_wrapper .gchoice input[type='checkbox']:checked { border-color: var(--ada-red-dark); background: var(--ada-red-dark); }
.gform_wrapper .gchoice input[type='checkbox']:checked::before {
	content: ''; width: 10px; height: 10px;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2.5 6.5l2.4 2.4L9.5 3.6' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / contain no-repeat;
}
.gform_wrapper .gchoice label { font-size: var(--fs-caption); color: var(--ada-red-dark); line-height: 1.5; cursor: pointer; }

/* Consent-style descriptions (PersuasionXP copy) render muted. */
.gform_wrapper .gfield--type-html, .gform_wrapper .gfield--type-html p { font-size: var(--fs-caption); color: var(--ada-muted); }

.gform_footer { margin-top: 22px; }
.gform_footer .gform_button { width: 100%; }

/* Validation. */
.gform_wrapper .gfield_error input, .gform_wrapper .gfield_error textarea { border-color: #8C2F22; }
.gform_wrapper .gfield_validation_message, .gform_wrapper .validation_message {
	color: #8C2F22; font-size: var(--fs-caption); margin-top: 6px;
}
.gform_wrapper .gform_validation_errors {
	border: 1px solid #8C2F22; border-radius: 8px; padding: 14px 16px; margin-bottom: 18px;
	color: #8C2F22; font-size: var(--fs-body-sm); background: #FDF3F1;
}
.gform_wrapper .gform_validation_errors h2 { font-size: var(--fs-body-sm); font-weight: 600; margin: 0; }
.gform_wrapper .gform_validation_errors ol { display: none; }

/* Confirmation. */
.gform_confirmation_message {
	background: var(--ada-grey-lightest); border-left: 3px solid var(--ada-red);
	border-radius: 8px; padding: 22px 24px; font-size: var(--fs-body);
}

/* Honeypot stays hidden. */
.gform_wrapper .gform_validation_container { position: absolute !important; left: -9000px; }
