/* Shared Gravity Forms legibility and touch-target baseline. */
.gform_wrapper.gform-theme {
	--gf-ctrl-font-size: 16px;
	--gf-ctrl-btn-font-size: 16px;
	--gf-ctrl-btn-size: 48px;
}

.gform_wrapper :is(input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]), select, textarea) {
	font-size: 16px;
}

.gform_wrapper :is(input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]), select) {
	min-height: 48px;
}

.gform_wrapper :is(button[type="submit"], input[type="submit"], input[type="button"], .gform_next_button, .gform_previous_button) {
	min-height: 48px;
	font-size: 16px;
}

/* Gravity Forms writes per-form framework variables inline; this matches that
 * framework selector while keeping the visible action dimensions consistent. */
body .gform_wrapper.gform-theme.gform-theme--framework :is(button.gform_button, button.gform_next_button, button.gform_previous_button, input.gform_button, input.gform_next_button, input.gform_previous_button) {
	min-height: 48px !important;
	font-size: 16px !important;
}

.gform_wrapper.gravity-theme :is(.gfield_checkbox label, .gfield_radio label, .ginput_container_consent label),
.gform_wrapper.gform-theme :is(.gchoice label, .ginput_container_consent label) {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-size: 16px;
	line-height: 1.35;
}

/* The transactional waiver uses a blank-page template with white inherited
 * text. Keep its legal-form labels readable against the paper background. */
#gform_wrapper_50 {
	color: var(--wp--preset--color--near-black, #191616);
}

/* Form 53 sits on the camp-registration page's paper surface. Its Gravity
 * Forms section fields inherit the site's light default text otherwise. */
#gform_wrapper_53 .gsection_title {
	color: var(--wp--preset--color--near-black, #191616);
}

#gform_wrapper_53 .gsection_description {
	color: #4c5561;
}

/* Form 40: make the native lesson-booking steps read as real progress, while
 * keeping Gravity Forms' page and keyboard behavior untouched. */
#gform_wrapper_40 .gf_page_steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 0 0 32px;
	padding: 0 0 20px;
	border-bottom: 1px solid #e2d6b5;
}
#gform_wrapper_40 .gf_step {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	min-height: 48px;
	margin: 0;
	color: #606060;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}
#gform_wrapper_40 .gf_step_number {
	display: inline-grid;
	flex: 0 0 36px;
	place-items: center;
	width: 36px;
	height: 36px;
	border: 2px solid #d2d2d2;
	border-radius: 50%;
	background: #ffffff;
	color: #606060;
	font-variant-numeric: tabular-nums;
}
#gform_wrapper_40 .gf_step_label {
	min-width: 0;
}
#gform_wrapper_40 .gf_step_active {
	color: var(--wp--preset--color--near-black, #191616);
}
#gform_wrapper_40 .gf_step_active .gf_step_number {
	border-color: var(--wp--preset--color--brand-gold, #ffbb00);
	background: var(--wp--preset--color--brand-gold, #ffbb00);
	color: var(--wp--preset--color--near-black, #191616);
}
#gform_wrapper_40 .gf_step_completed {
	color: var(--wp--preset--color--near-black, #191616);
}
#gform_wrapper_40 .gf_step_completed .gf_step_number {
	border-color: var(--wp--preset--color--near-black, #191616);
	background: var(--wp--preset--color--near-black, #191616);
	color: #ffffff;
}
@media (max-width: 600px) {
	#gform_wrapper_40 .gf_page_steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 12px;
		margin-bottom: 28px;
		padding-bottom: 16px;
	}
	#gform_wrapper_40 .gf_step {
		font-size: 13px;
	}
}
