/* ==========================================================
   ST RICHARDS — GRAVITY FORMS
   Gravity Forms 3.0.x / Orbital
   Production global stylesheet
   ========================================================== */


/* ==========================================================
   1. DESIGN TOKENS + CURRENT GRAVITY FORMS CSS API
   ========================================================== */

.gform-theme--framework,
.gform-theme--orbital,
form[id^="gform_"] {

	/* St Richards local tokens */
	--srh-gf-font: "Poppins", sans-serif;
	--srh-gf-heading-font: "Quincy CF", serif;

	--srh-gf-blue: var(--srh-brand-blue, #294481);
	--srh-gf-green: var(--srh-brand-green, #98C6BB);
	--srh-gf-white: var(--srh-white, #ffffff);
	--srh-gf-dark: var(--srh-dark, #003444);
	--srh-gf-teal: var(--srh-teal, #00748A);
	--srh-gf-purple: var(--srh-purple, #825466);
	--srh-gf-mist: var(--srh-mist, #EDF6EE);
	--srh-gf-mourning: var(--srh-mourning, #BDDDD7);
	--srh-gf-sand: var(--srh-sand, #F8AE4E);

	--srh-gf-radius: 6px;
	--srh-gf-control-height: 50px;

	/* Gravity Forms global API */
	--gf-color-primary: var(--srh-gf-blue);
	--gf-color-primary-contrast: var(--srh-gf-white);
	--gf-color-primary-darker: var(--srh-gf-teal);

	--gf-color-danger: var(--srh-gf-purple);
	--gf-color-danger-contrast: var(--srh-gf-white);

	--gf-color-success: var(--srh-gf-green);

	/* Controls */
	--gf-ctrl-bg-color: var(--srh-gf-white);
	--gf-ctrl-bg-color-hover: var(--srh-gf-white);
	--gf-ctrl-bg-color-focus: var(--srh-gf-white);
	--gf-ctrl-bg-color-disabled: var(--srh-gf-mist);

	--gf-ctrl-color: var(--srh-gf-dark);
	--gf-ctrl-color-hover: var(--srh-gf-dark);
	--gf-ctrl-color-focus: var(--srh-gf-dark);
	--gf-ctrl-color-error: var(--srh-gf-dark);

	--gf-ctrl-border-color: var(--srh-gf-mourning);
	--gf-ctrl-border-color-hover: var(--srh-gf-teal);
	--gf-ctrl-border-color-focus: var(--srh-gf-blue);
	--gf-ctrl-border-color-error: var(--srh-gf-purple);
	--gf-ctrl-border-color-disabled: var(--srh-gf-mourning);

	--gf-ctrl-radius: var(--srh-gf-radius);

	--gf-ctrl-font-family: var(--srh-gf-font);
	--gf-ctrl-font-size: 1rem;
	--gf-ctrl-font-weight: 400;

	--gf-ctrl-placeholder-color: rgba(0, 52, 68, 0.62);
	--gf-ctrl-placeholder-font-family: var(--srh-gf-font);
	--gf-ctrl-placeholder-font-size: 1rem;
	--gf-ctrl-placeholder-font-weight: 400;

	/* Labels */
	--gf-ctrl-label-color-primary: var(--srh-gf-dark);
	--gf-ctrl-label-font-family-primary: var(--srh-gf-font);
	--gf-ctrl-label-font-size-primary: 1rem;
	--gf-ctrl-label-font-weight-primary: 600;

	--gf-ctrl-label-color-secondary: var(--srh-gf-dark);
	--gf-ctrl-label-font-family-secondary: var(--srh-gf-font);
	--gf-ctrl-label-font-size-secondary: 1rem;
	--gf-ctrl-label-font-weight-secondary: 400;

	--gf-ctrl-label-color-tertiary: var(--srh-gf-dark);
	--gf-ctrl-label-font-family-tertiary: var(--srh-gf-font);
	--gf-ctrl-label-font-size-tertiary: 0.875rem;
	--gf-ctrl-label-font-weight-tertiary: 500;

	--gf-ctrl-label-color-req: var(--srh-gf-purple);

	/* Descriptions */
	--gf-ctrl-desc-color: var(--srh-gf-dark);
	--gf-ctrl-desc-font-family: var(--srh-gf-font);
	--gf-ctrl-desc-font-size: 0.875rem;
	--gf-ctrl-desc-font-weight: 400;

	--gf-ctrl-desc-color-error: var(--srh-gf-purple);
	--gf-ctrl-desc-font-size-error: 0.875rem;
	--gf-ctrl-desc-font-weight-error: 500;

	/* Choices */
	--gf-ctrl-accent-color: var(--srh-gf-blue);
	--gf-ctrl-choice-check-color: var(--srh-gf-blue);
	--gf-ctrl-choice-size: 20px;

	/* Primary buttons */
	--gf-ctrl-btn-bg-color-primary: var(--srh-gf-blue);
	--gf-ctrl-btn-bg-color-hover-primary: var(--srh-gf-teal);
	--gf-ctrl-btn-bg-color-focus-primary: var(--srh-gf-blue);

	--gf-ctrl-btn-border-color-primary: var(--srh-gf-blue);
	--gf-ctrl-btn-border-color-hover-primary: var(--srh-gf-teal);
	--gf-ctrl-btn-border-color-focus-primary: var(--srh-gf-blue);

	--gf-ctrl-btn-color-primary: var(--srh-gf-white);
	--gf-ctrl-btn-color-hover-primary: var(--srh-gf-white);
	--gf-ctrl-btn-color-focus-primary: var(--srh-gf-white);

	--gf-ctrl-btn-radius: var(--srh-gf-radius);
	--gf-ctrl-btn-font-family: var(--srh-gf-font);
	--gf-ctrl-btn-font-size: 1rem;
	--gf-ctrl-btn-font-weight: 600;
	--gf-ctrl-btn-padding-x: 1.4rem;

	--gf-ctrl-btn-shadow: none;
	--gf-ctrl-btn-shadow-hover: none;
	--gf-ctrl-btn-shadow-focus: none;

	/* Secondary buttons */
	--gf-ctrl-btn-bg-color-secondary: transparent;
	--gf-ctrl-btn-bg-color-hover-secondary: var(--srh-gf-blue);

	--gf-ctrl-btn-border-color-secondary: var(--srh-gf-blue);
	--gf-ctrl-btn-border-color-hover-secondary: var(--srh-gf-blue);

	--gf-ctrl-btn-color-secondary: var(--srh-gf-blue);
	--gf-ctrl-btn-color-hover-secondary: var(--srh-gf-white);

	/* Form spacing */
	--gf-form-gap-x: 1.5rem;
	--gf-form-gap-y: 1.5rem;

	--gf-field-gap-x: 1rem;
	--gf-field-gap-y: 0.5rem;

	/* Current GF 3 spinner */
	--gf-form-spinner-fg-color: var(--srh-gf-white);
	--gf-form-spinner-bg-color: rgba(255, 255, 255, 0.35);

	/* Readonly / totals */
	--gf-ctrl-readonly-color: var(--srh-gf-blue);
	--gf-ctrl-readonly-font-size: 1.125rem;
	--gf-ctrl-readonly-font-weight: 600;

	/* Multiselect */
	--gf-ctrl-multiselect-height: 160px;
	--gf-ctrl-multiselect-radius: var(--srh-gf-radius);
	--gf-ctrl-multiselect-padding-y: 0.5rem;

	--gf-ctrl-multiselect-selected-item-bg-color: var(--srh-gf-blue);
	--gf-ctrl-multiselect-selected-item-color: var(--srh-gf-white);
	--gf-ctrl-multiselect-selected-item-radius: 999px;
	--gf-ctrl-multiselect-selected-item-font-size: 0.875rem;
	--gf-ctrl-multiselect-selected-item-font-weight: 600;

	/* Enhanced dropdown */
	--gf-ctrl-select-dropdown-radius: var(--srh-gf-radius);
	--gf-ctrl-select-dropdown-option-bg-color-hover: var(--srh-gf-mist);

	/* File uploads */
	--gf-ctrl-file-btn-bg-color: var(--srh-gf-blue);
	--gf-ctrl-file-btn-bg-color-hover: var(--srh-gf-teal);
	--gf-ctrl-file-btn-color: var(--srh-gf-white);
	--gf-ctrl-file-btn-color-hover: var(--srh-gf-white);
	--gf-ctrl-file-btn-radius: var(--srh-gf-radius);

	--gf-ctrl-file-zone-color: var(--srh-gf-dark);
	--gf-ctrl-file-zone-icon-color: var(--srh-gf-blue);
	--gf-ctrl-file-zone-radius: var(--srh-gf-radius);
	--gf-ctrl-file-zone-border-style: dashed;

	--gf-ctrl-file-prog-bar-bg-color: var(--srh-gf-mourning);
	--gf-ctrl-file-prog-bar-bg-color-loading: var(--srh-gf-blue);

	/* Image choices */
	--gf-field-img-choice-card-check-ind-bg-color: var(--srh-gf-blue);
	--gf-field-img-choice-card-check-ind-icon-color: var(--srh-gf-white);
	--gf-field-img-choice-no-card-check-ind-bg-color: var(--srh-gf-blue);
	--gf-field-img-choice-no-card-check-ind-icon-color: var(--srh-gf-white);

	--gf-field-img-choice-radius-square: var(--srh-gf-radius);
	--gf-field-img-choice-shadow: none;
}


/* ==========================================================
   2. GLOBAL FORM BASE
   ========================================================== */

body form[id^="gform_"] {
	font-family: var(--srh-gf-font);
	font-size: 1rem;
	line-height: 1.65;
	color: var(--srh-gf-dark);

	inline-size: 100%;
	max-inline-size: 100%;

	box-sizing: border-box;
}

body form[id^="gform_"] *,
body form[id^="gform_"] *::before,
body form[id^="gform_"] *::after {
	box-sizing: border-box;
}


/* Prevent grid/flex children overflowing on small screens */

body form[id^="gform_"] :where(
	.gfield,
	.ginput_container,
	.ginput_complex,
	.gform-grid-row,
	.gform-grid-col
) {
	min-inline-size: 0;
	max-inline-size: 100%;
}


/* ==========================================================
   3. FORM HEADING
   ========================================================== */

.gform-theme--framework .gform_heading,
[id^="gform_wrapper_"] .gform_heading {
	margin-block-end: 1.75rem;
}

.gform-theme--framework .gform_title,
[id^="gform_wrapper_"] .gform_title {
	margin: 0 0 0.5rem;

	font-family: var(--srh-gf-heading-font);
	font-size: clamp(2.25rem, 4vw, 3.25rem);
	font-weight: 300;
	line-height: 1.1;

	color: var(--srh-gf-blue);
}

.gform-theme--framework .gform_description,
[id^="gform_wrapper_"] .gform_description {
	margin: 0;

	font-family: var(--srh-gf-font);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.65;

	color: var(--srh-gf-dark);
}

.gform-theme--framework .gform_required_legend,
[id^="gform_wrapper_"] .gform_required_legend {
	font-family: var(--srh-gf-font);
	font-size: 0.875rem;
	line-height: 1.5;

	color: var(--srh-gf-dark);
}


/* ==========================================================
   4. MAIN FIELD LABELS
   ========================================================== */

body form[id^="gform_"] :where(
	.gfield_label,
	legend.gfield_label,
	.gform-field-label
) {
	font-family: var(--srh-gf-font) !important;
	color: var(--srh-gf-dark) !important;
}

body form[id^="gform_"] :where(
	.gfield_label,
	legend.gfield_label
) {
	margin-block-end: 0.5rem !important;

	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
}


/* Sub-labels: First, Last, Street, City, Country etc. */

body form[id^="gform_"] .gform-field-label--type-sub {
	display: block;

	margin-block: 0 0.4rem !important;

	font-size: 0.875rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;

	color: var(--srh-gf-dark) !important;
}


/* Required markers */

body form[id^="gform_"] :where(
	.gfield_required,
	.gfield_required_text,
	.gfield_required_asterisk
) {
	font-family: var(--srh-gf-font) !important;
	font-size: 0.8rem !important;
	font-weight: 500 !important;

	color: var(--srh-gf-purple) !important;
}


/* ==========================================================
   5. FIELD DESCRIPTIONS / COUNTERS / INSTRUCTIONS
   ========================================================== */

body form[id^="gform_"] :where(
	.gfield_description,
	.gform_fileupload_rules,
	.ginput_counter,
	.charleft,
	.gfield_choice_limit_message
) {
	font-family: var(--srh-gf-font) !important;
	font-size: 0.875rem !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;

	color: var(--srh-gf-dark) !important;
}


/* ==========================================================
   6. ALL STANDARD INPUT CONTROLS
   ========================================================== */

body form[id^="gform_"] :where(
	input:not([type]),
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="password"],
	input[type="number"],
	input[type="search"],
	input[type="date"],
	input[type="time"],
	input[type="datetime-local"],
	input[type="month"],
	input[type="week"],
	select,
	textarea
) {
	max-inline-size: 100% !important;

	margin: 0 !important;

	background-color: var(--srh-gf-white) !important;

	border: 1px solid var(--srh-gf-mourning) !important;
	border-radius: var(--srh-gf-radius) !important;

	box-shadow: none !important;

	font-family: var(--srh-gf-font) !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;

	color: var(--srh-gf-dark) !important;

	transition:
		border-color 0.2s ease,
		background-color 0.2s ease,
		color 0.2s ease,
		box-shadow 0.2s ease;
}


/* Single-line control height */

body form[id^="gform_"] :where(
	input:not([type]),
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="password"],
	input[type="number"],
	input[type="search"],
	input[type="date"],
	input[type="time"],
	input[type="datetime-local"],
	input[type="month"],
	input[type="week"],
	select
) {
	min-block-size: var(--srh-gf-control-height) !important;
	padding: 0.8rem 1rem !important;
}


/* ==========================================================
   7. HOVER + FOCUS
   ========================================================== */

@media (hover: hover) {

	body form[id^="gform_"] :where(
		input:not([type]),
		input[type="text"],
		input[type="email"],
		input[type="tel"],
		input[type="url"],
		input[type="password"],
		input[type="number"],
		input[type="search"],
		input[type="date"],
		input[type="time"],
		input[type="datetime-local"],
		input[type="month"],
		input[type="week"],
		select,
		textarea
	):hover {
		border-color: var(--srh-gf-teal) !important;
	}
}


body form[id^="gform_"] :where(
	input:not([type]),
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="password"],
	input[type="number"],
	input[type="search"],
	input[type="date"],
	input[type="time"],
	input[type="datetime-local"],
	input[type="month"],
	input[type="week"],
	select,
	textarea
):focus {
	background-color: var(--srh-gf-white) !important;

	border-color: var(--srh-gf-blue) !important;

	outline: 3px solid var(--srh-gf-blue) !important;
	outline-offset: 2px !important;

	box-shadow: none !important;
}


/* ==========================================================
   8. PLACEHOLDERS
   ========================================================== */

body form[id^="gform_"] :where(
	input,
	textarea
)::placeholder {
	font-family: var(--srh-gf-font) !important;
	font-size: 1rem !important;
	font-weight: 400 !important;

	color: rgba(0, 52, 68, 0.62) !important;
	opacity: 1 !important;
}


/* ==========================================================
   9. TEXTAREA / PARAGRAPH / POST BODY
   ========================================================== */

body form[id^="gform_"] textarea {
	inline-size: 100% !important;
	min-block-size: 180px !important;

	padding: 0.8rem 1rem !important;

	line-height: 1.5 !important;

	resize: vertical;
}


/* ==========================================================
   10. COMPLEX FIELDS
   Name / Address / Email confirm / Password / Dates / Time
   ========================================================== */

body form[id^="gform_"] .ginput_complex {
	column-gap: 1rem !important;
	row-gap: 1rem !important;
}

body form[id^="gform_"] .ginput_complex > * {
	min-inline-size: 0;
}


/* ==========================================================
   11. SELECT / MULTISELECT
   ========================================================== */

body form[id^="gform_"] select {
	cursor: pointer;
}

body form[id^="gform_"] select[multiple] {
	min-block-size: 160px !important;
	padding-block: 0.5rem !important;
}


/* ==========================================================
   12. ENHANCED SELECT / CHOSEN
   ========================================================== */

body form[id^="gform_"] .chosen-container {
	inline-size: 100% !important;
	max-inline-size: 100% !important;

	font-family: var(--srh-gf-font) !important;
	font-size: 1rem !important;
}

body form[id^="gform_"] .chosen-container-single .chosen-single,
body form[id^="gform_"] .chosen-container-multi .chosen-choices {
	min-block-size: var(--srh-gf-control-height) !important;

	background: var(--srh-gf-white) !important;

	border: 1px solid var(--srh-gf-mourning) !important;
	border-radius: var(--srh-gf-radius) !important;

	box-shadow: none !important;

	color: var(--srh-gf-dark) !important;
}

body form[id^="gform_"] .chosen-container-single .chosen-single {
	display: flex !important;
	align-items: center !important;

	padding-inline: 1rem 2.75rem !important;
}

body form[id^="gform_"] .chosen-container-active .chosen-single,
body form[id^="gform_"] .chosen-container-active .chosen-choices {
	border-color: var(--srh-gf-blue) !important;

	outline: 3px solid var(--srh-gf-blue) !important;
	outline-offset: 2px !important;
}

body form[id^="gform_"] .chosen-drop {
	background: var(--srh-gf-white) !important;

	border: 1px solid var(--srh-gf-mourning) !important;
	border-radius: var(--srh-gf-radius) !important;

	box-shadow: 0 8px 24px rgba(0, 52, 68, 0.12) !important;
}

body form[id^="gform_"] .chosen-results li {
	padding: 0.65rem 0.8rem !important;

	color: var(--srh-gf-dark) !important;
}

body form[id^="gform_"] .chosen-results li.highlighted {
	background: var(--srh-gf-blue) !important;
	color: var(--srh-gf-white) !important;
}

body form[id^="gform_"] .chosen-container-multi .chosen-choices li.search-choice {
	background: var(--srh-gf-blue) !important;
	color: var(--srh-gf-white) !important;

	border: 0 !important;
	border-radius: 999px !important;

	box-shadow: none !important;
}


/* ==========================================================
   13. CHECKBOXES / RADIO / MULTIPLE CHOICE / CONSENT
   ========================================================== */

body form[id^="gform_"] input[type="checkbox"],
body form[id^="gform_"] input[type="radio"] {
	inline-size: 20px !important;
	block-size: 20px !important;

	min-inline-size: 20px !important;

	accent-color: var(--srh-gf-blue);

	cursor: pointer;
}

body form[id^="gform_"] :where(
	.gfield_checkbox,
	.gfield_radio
) {
	max-inline-size: 100%;
}

body form[id^="gform_"] .gchoice {
	min-inline-size: 0;
}

body form[id^="gform_"] .gchoice label {
	font-family: var(--srh-gf-font) !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;

	color: var(--srh-gf-dark) !important;

	cursor: pointer;
}

body form[id^="gform_"] .gfield_consent_label {
	font-family: var(--srh-gf-font) !important;
	color: var(--srh-gf-dark) !important;
}


/* ==========================================================
   14. IMAGE CHOICES — GF 2.9+ / 3.0
   ========================================================== */

body form[id^="gform_"] .gfield--type-image_choice {
	--gf-ctrl-bg-color: var(--srh-gf-white);
	--gf-ctrl-bg-color-hover: var(--srh-gf-mist);

	--gf-field-img-choice-card-check-ind-bg-color: var(--srh-gf-blue);
	--gf-field-img-choice-card-check-ind-icon-color: var(--srh-gf-white);

	--gf-field-img-choice-radius-square: var(--srh-gf-radius);
	--gf-field-img-choice-shadow: none;
}

body form[id^="gform_"] .gfield-choice-image-wrapper img {
	display: block;

	inline-size: 100%;
	block-size: auto;

	max-inline-size: 100%;
}


/* ==========================================================
   15. SECTION BREAKS
   ========================================================== */

body form[id^="gform_"] .gsection {
	margin-block: 1.5rem !important;
	padding-block-end: 1rem !important;

	border: 0 !important;
	border-block-end: 2px solid var(--srh-gf-green) !important;
}

body form[id^="gform_"] .gsection_title {
	margin: 0 0 0.35rem !important;

	font-family: var(--srh-gf-heading-font) !important;
	font-size: clamp(1.5rem, 2.5vw, 1.75rem) !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;

	color: var(--srh-gf-blue) !important;
}

body form[id^="gform_"] .gsection_description {
	margin: 0 !important;

	font-family: var(--srh-gf-font) !important;
	font-size: 0.95rem !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;

	color: var(--srh-gf-dark) !important;
}


/* ==========================================================
   16. HTML FIELDS
   Orbital deliberately does not reset these.
   ========================================================== */

body form[id^="gform_"] .gfield--type-html {
	font-family: var(--srh-gf-font);
	color: var(--srh-gf-dark);
}

body form[id^="gform_"] .gfield--type-html :where(h1, h2, h3, h4, h5, h6) {
	font-family: var(--srh-gf-heading-font);
	font-weight: 400;
	line-height: 1.2;

	color: var(--srh-gf-blue);
}

body form[id^="gform_"] .gfield--type-html :where(p, ul, ol) {
	margin-block: 0 1rem;

	font-family: var(--srh-gf-font);
	line-height: 1.65;

	color: var(--srh-gf-dark);
}

body form[id^="gform_"] .gfield--type-html :where(ul, ol) {
	padding-inline-start: 1.5rem;
}

body form[id^="gform_"] .gfield--type-html a {
	font-weight: 600;
	color: var(--srh-gf-blue);
	text-decoration: underline;
}

body form[id^="gform_"] .gfield--type-html a:hover {
	color: var(--srh-gf-teal);
	text-decoration: none;
}


/* ==========================================================
   17. FILE UPLOAD — SINGLE FILE
   ========================================================== */

body form[id^="gform_"] input[type="file"] {
	max-inline-size: 100% !important;

	font-family: var(--srh-gf-font) !important;
	font-size: 0.95rem !important;

	color: var(--srh-gf-dark) !important;
}

body form[id^="gform_"] input[type="file"]::file-selector-button {
	min-block-size: 44px;

	margin-inline-end: 1rem;
	padding: 0.65rem 1rem;

	background: var(--srh-gf-blue);

	border: 2px solid var(--srh-gf-blue);
	border-radius: var(--srh-gf-radius);

	font-family: var(--srh-gf-font);
	font-size: 0.9rem;
	font-weight: 600;

	color: var(--srh-gf-white);

	cursor: pointer;
}

@media (hover: hover) {
	body form[id^="gform_"] input[type="file"]::file-selector-button:hover {
		background: var(--srh-gf-teal);
		border-color: var(--srh-gf-teal);
	}
}


/* ==========================================================
   18. FILE UPLOAD — MULTI FILE / DROPZONE
   ========================================================== */

body form[id^="gform_"] .gform_drop_area {
	inline-size: 100% !important;

	padding: clamp(1rem, 4vw, 2rem) !important;

	background: var(--srh-gf-mist) !important;

	border: 1px dashed var(--srh-gf-mourning) !important;
	border-radius: var(--srh-gf-radius) !important;

	font-family: var(--srh-gf-font) !important;
	color: var(--srh-gf-dark) !important;
}

body form[id^="gform_"] .gform_button_select_files {
	min-block-size: 44px !important;

	padding: 0.65rem 1rem !important;

	background: var(--srh-gf-blue) !important;
	color: var(--srh-gf-white) !important;

	border: 2px solid var(--srh-gf-blue) !important;
	border-radius: var(--srh-gf-radius) !important;

	font-family: var(--srh-gf-font) !important;
	font-weight: 600 !important;
}

body form[id^="gform_"] .ginput_preview_list {
	margin-block-start: 1rem !important;
}

body form[id^="gform_"] .ginput_preview {
	padding-block: 0.5rem;

	border-block-end: 1px solid var(--srh-gf-mourning);
}


/* ==========================================================
   19. LIST FIELD
   ========================================================== */

body form[id^="gform_"] .ginput_container_list {
	inline-size: 100%;
	max-inline-size: 100%;
}

body form[id^="gform_"] .gfield_list_header {
	font-family: var(--srh-gf-font);
	font-size: 0.875rem;
	font-weight: 600;

	color: var(--srh-gf-dark);
}

body form[id^="gform_"] .gfield_list_group {
	padding-block: 0.5rem;

	border-block-end: 1px solid var(--srh-gf-mourning);
}

body form[id^="gform_"] .gfield_list_group_item {
	min-inline-size: 0;
}

body form[id^="gform_"] button.add_list_item,
body form[id^="gform_"] button.delete_list_item {
	min-inline-size: 44px !important;
	min-block-size: 44px !important;

	border-radius: var(--srh-gf-radius) !important;

	cursor: pointer;
}


/* ==========================================================
   20. DATE FIELD — GF 3.0 WHATSOCK
   ========================================================== */

body form[id^="gform_"] .gfield--type-date {
	--gf-field-date-icon-color: var(--srh-gf-blue);
	--gf-field-date-icon-color-hover: var(--srh-gf-teal);
}

body form[id^="gform_"] .gfield_input_datepicker_icon {
	max-inline-size: 24px !important;
	max-block-size: 24px !important;
}


/* Current GF datepicker root.
   Keep GF's accessible internal layout intact. */

.gform-theme-datepicker {
	max-inline-size: calc(100vw - 2rem);

	font-family: var(--srh-gf-font, "Poppins", sans-serif);

	color: var(--srh-gf-dark, #003444);
}


/* ==========================================================
   21. INTERNATIONAL PHONE / PHONE
   ========================================================== */

body form[id^="gform_"] .ginput_container_phone {
	min-inline-size: 0;
	max-inline-size: 100%;
}

body form[id^="gform_"] .gfield--type-phone fieldset {
	min-inline-size: 0;
}


/* ==========================================================
   22. PASSWORD / PASSWORD STRENGTH
   ========================================================== */

body form[id^="gform_"] :where(
	.gfield_password_strength,
	.password_strength,
	#pass-strength-result
) {
	margin-block-start: 0.5rem;
	padding: 0.6rem 0.75rem;

	background: var(--srh-gf-mist);

	border: 1px solid var(--srh-gf-mourning);
	border-radius: var(--srh-gf-radius);

	font-family: var(--srh-gf-font);
	font-size: 0.875rem;
	font-weight: 500;

	color: var(--srh-gf-dark);
}


/* ==========================================================
   23. DISABLED / READONLY
   ========================================================== */

body form[id^="gform_"] :where(
	input,
	select,
	textarea,
	button
):disabled {
	cursor: not-allowed !important;
	opacity: 0.72;
}

body form[id^="gform_"] :where(
	input,
	select,
	textarea
):disabled {
	background: var(--srh-gf-mist) !important;
}

body form[id^="gform_"] :where(
	input,
	textarea
)[readonly] {
	background: var(--srh-gf-mist) !important;
}


/* ==========================================================
   24. PRICING / PRODUCT / QUANTITY / SHIPPING
   ========================================================== */

body form[id^="gform_"] :where(
	.ginput_product_price_label,
	.ginput_quantity_label,
	.ginput_shipping_price
) {
	font-family: var(--srh-gf-font);
	font-size: 0.875rem;
	font-weight: 500;

	color: var(--srh-gf-dark);
}

body form[id^="gform_"] :where(
	.ginput_product_price,
	.ginput_shipping_price,
	.ginput_total
) {
	font-family: var(--srh-gf-font) !important;
	font-weight: 600 !important;

	color: var(--srh-gf-blue) !important;
}

body form[id^="gform_"] .gfield--type-total .ginput_total {
	background: var(--srh-gf-mist) !important;

	font-size: 1.125rem !important;
	font-weight: 600 !important;

	color: var(--srh-gf-blue) !important;
}


/* ==========================================================
   25. RICH TEXT / POST BODY EDITOR
   ========================================================== */

body form[id^="gform_"] .wp-editor-container {
	overflow: hidden;

	background: var(--srh-gf-white);

	border: 1px solid var(--srh-gf-mourning);
	border-radius: var(--srh-gf-radius);
}

body form[id^="gform_"] .mce-tinymce {
	max-inline-size: 100% !important;
}


/* ==========================================================
   26. VALIDATION SUMMARY
   ========================================================== */

.gform-theme--framework .gform_validation_errors,
[id^="gform_wrapper_"] .gform_validation_errors {
	margin-block-end: 1.5rem !important;
	padding: 1rem 1.25rem !important;

	background: var(--srh-gf-white) !important;

	border: 1px solid var(--srh-gf-purple) !important;
	border-radius: var(--srh-gf-radius) !important;

	box-shadow: none !important;

	color: var(--srh-gf-purple) !important;
}

.gform-theme--framework .gform_validation_errors h2,
[id^="gform_wrapper_"] .gform_validation_errors h2 {
	margin: 0 !important;

	font-family: var(--srh-gf-font) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;

	color: var(--srh-gf-purple) !important;
}


/* ==========================================================
   27. FIELD VALIDATION
   ========================================================== */

body form[id^="gform_"] .gfield_error :where(
	input:not([type="checkbox"]):not([type="radio"]),
	select,
	textarea
) {
	border-color: var(--srh-gf-purple) !important;
}

body form[id^="gform_"] :where(
	.gfield_validation_message,
	.validation_message
) {
	margin-block-start: 0.4rem !important;
	padding: 0 !important;

	background: transparent !important;
	border: 0 !important;

	font-family: var(--srh-gf-font) !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;

	color: var(--srh-gf-purple) !important;
}


/* ==========================================================
   28. PRIMARY ACTION BUTTONS — GF 3.0
   Submit / Next / Inline submit
   ========================================================== */

body form[id^="gform_"] :where(
	button.gform_button,
	button.gform-button,
	button.gform_next_button,
	input[type="submit"]
):not(.gform_previous_button):not(.gform_save_link):not(.gform_image_button) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	gap: 0.5rem;

	min-block-size: 50px !important;

	margin: 0 !important;
	padding: 0.85rem 1.4rem !important;

	background: var(--srh-gf-blue) !important;

	border: 2px solid var(--srh-gf-blue) !important;
	border-radius: var(--srh-gf-radius) !important;

	box-shadow: none !important;

	font-family: var(--srh-gf-font) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;

	color: var(--srh-gf-white) !important;

	text-decoration: none !important;

	cursor: pointer !important;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease;
}

@media (hover: hover) {

	body form[id^="gform_"] :where(
		button.gform_button,
		button.gform-button,
		button.gform_next_button,
		input[type="submit"]
	):not(.gform_previous_button):not(.gform_save_link):not(.gform_image_button):hover {
		background: var(--srh-gf-teal) !important;
		border-color: var(--srh-gf-teal) !important;

		color: var(--srh-gf-white) !important;
	}
}

body form[id^="gform_"] :where(
	button.gform_button,
	button.gform-button,
	button.gform_next_button
):focus-visible {
	outline: 3px solid var(--srh-gf-blue) !important;
	outline-offset: 3px !important;
}


/* ==========================================================
   29. GF 3.0 SUBMISSION SPINNER
   ========================================================== */

body form[id^="gform_"] button.gform-has-spinner {
	position: relative;
}

body form[id^="gform_"] .gform-loader {
	flex: 0 0 auto;
}


/* ==========================================================
   30. SECONDARY ACTIONS
   Previous + Save & Continue
   ========================================================== */

body form[id^="gform_"] :where(
	.gform_previous_button,
	.gform_save_link
) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	gap: 0.5rem;

	min-block-size: 50px !important;

	padding: 0.85rem 1.4rem !important;

	background: transparent !important;

	border: 2px solid var(--srh-gf-blue) !important;
	border-radius: var(--srh-gf-radius) !important;

	box-shadow: none !important;

	font-family: var(--srh-gf-font) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;

	color: var(--srh-gf-blue) !important;

	text-decoration: none !important;

	cursor: pointer !important;
}

@media (hover: hover) {

	body form[id^="gform_"] :where(
		.gform_previous_button,
		.gform_save_link
	):hover {
		background: var(--srh-gf-blue) !important;

		color: var(--srh-gf-white) !important;
	}
}


/* ==========================================================
   31. IMAGE SUBMIT BUTTON
   GF 3.0 permits button > img
   ========================================================== */

body form[id^="gform_"] button.gform_image_button {
	max-inline-size: 100%;

	padding: 0;

	background: transparent;

	border: 0;

	cursor: pointer;
}

body form[id^="gform_"] button.gform_image_button img {
	display: block;

	max-inline-size: 100%;
	block-size: auto;
}


/* ==========================================================
   32. FORM / PAGE FOOTERS
   ========================================================== */

body form[id^="gform_"] :where(
	.gform_footer,
	.gform-footer,
	.gform_page_footer
) {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;

	gap: 0.75rem !important;

	margin-block-start: 1.5rem !important;
}


/* ==========================================================
   33. MULTI-PAGE PROGRESS BAR
   ========================================================== */

body form[id^="gform_"] .gf_progressbar_wrapper {
	margin-block-end: 2rem;
}

body form[id^="gform_"] .gf_progressbar_title {
	margin-block-end: 0.5rem;

	font-family: var(--srh-gf-font);
	font-size: 0.875rem;
	font-weight: 600;

	color: var(--srh-gf-dark);
}

body form[id^="gform_"] .gf_progressbar {
	overflow: hidden;

	block-size: 12px;

	background: var(--srh-gf-mourning) !important;

	border-radius: 999px !important;
}

body form[id^="gform_"] .gf_progressbar_percentage {
	block-size: 100% !important;

	background: var(--srh-gf-blue) !important;

	border-radius: 999px !important;
}

body form[id^="gform_"] .gf_progressbar_percentage span {
	font-family: var(--srh-gf-font);
	font-size: 0.75rem;
	font-weight: 600;
}


/* ==========================================================
   34. MULTI-PAGE STEPS
   ========================================================== */

body form[id^="gform_"] .gf_page_steps {
	display: flex;
	flex-wrap: wrap;

	gap: 0.75rem 1.25rem;

	margin-block-end: 2rem;
}

body form[id^="gform_"] .gf_step {
	display: flex;
	align-items: center;

	gap: 0.5rem;

	font-family: var(--srh-gf-font);
	font-size: 0.875rem;

	color: var(--srh-gf-dark);
}

body form[id^="gform_"] .gf_step_number {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-inline-size: 32px;
	block-size: 32px;

	background: var(--srh-gf-mist);

	border: 1px solid var(--srh-gf-mourning);
	border-radius: 50%;

	font-weight: 600;

	color: var(--srh-gf-blue);
}

body form[id^="gform_"] .gf_step_active .gf_step_number {
	background: var(--srh-gf-blue);
	border-color: var(--srh-gf-blue);

	color: var(--srh-gf-white);
}

body form[id^="gform_"] .gf_step_completed .gf_step_number {
	background: var(--srh-gf-green);
	border-color: var(--srh-gf-green);

	color: var(--srh-gf-dark);
}


/* ==========================================================
   35. CONFIRMATION MESSAGES
   ========================================================== */

[id^="gform_confirmation_wrapper_"],
.gform_confirmation_wrapper {
	max-inline-size: 100%;
}

[id^="gform_confirmation_wrapper_"] .gform_confirmation_message,
.gform_confirmation_wrapper .gform_confirmation_message {
	padding: 1rem 1.25rem;

	background: var(--srh-gf-mist, #EDF6EE);

	border: 1px solid var(--srh-gf-green, #98C6BB);
	border-radius: var(--srh-gf-radius, 6px);

	font-family: var(--srh-gf-font, "Poppins", sans-serif);
	font-size: 1rem;
	line-height: 1.6;

	color: var(--srh-gf-dark, #003444);
}

[id^="gform_confirmation_wrapper_"] .gform_confirmation_message a {
	font-weight: 600;

	color: var(--srh-gf-blue, #294481);

	text-decoration: underline;
}


/* ==========================================================
   36. SAVE & CONTINUE CONFIRMATION
   ========================================================== */

.gform-theme--framework .form_saved_message,
.gform-theme--framework.form_saved_message_sent,
[id^="gform_wrapper_"] .form_saved_message {
	padding: 1rem 1.25rem;

	background: var(--srh-gf-mist);

	border: 1px solid var(--srh-gf-green);
	border-radius: var(--srh-gf-radius);

	font-family: var(--srh-gf-font);
	line-height: 1.6;

	color: var(--srh-gf-dark);
}


/* ==========================================================
   37. CAPTCHA / RECAPTCHA OUTER CONTAINER
   iframe contents remain controlled by provider.
   ========================================================== */

body form[id^="gform_"] :where(
	.ginput_recaptcha,
	.ginput_container_captcha
) {
	max-inline-size: 100%;

	overflow-x: auto;
	overflow-y: hidden;
}

body form[id^="gform_"] :where(
	.ginput_recaptcha,
	.ginput_container_captcha
) iframe {
	display: block;

	max-inline-size: 100%;
}


/* ==========================================================
   38. STRIPE / PAYMENT FIELD OUTER CONTAINER
   Stripe iframe styling requires Stripe Appearance API.
   ========================================================== */

body form[id^="gform_"] :where(
	.ginput_stripe_creditcard,
	.StripeElement--payment-element,
	[data-payment-element="true"]
) {
	inline-size: 100%;
	max-inline-size: 100%;
	min-inline-size: 0;
}


/* ==========================================================
   39. SIGNATURE ADD-ON OUTER CONTROL
   ========================================================== */

body form[id^="gform_"] .ginput_container_signature {
	max-inline-size: 100%;
}

body form[id^="gform_"] .ginput_container_signature canvas {
	max-inline-size: 100%;
	block-size: auto;

	background: var(--srh-gf-white);

	border: 1px solid var(--srh-gf-mourning);
	border-radius: var(--srh-gf-radius);
}


/* ==========================================================
   40. LINKS INSIDE FORMS
   ========================================================== */

body form[id^="gform_"] a {
	color: var(--srh-gf-blue);

	text-decoration: underline;
	text-underline-offset: 0.15em;
}

@media (hover: hover) {
	body form[id^="gform_"] a:hover {
		color: var(--srh-gf-teal);
		text-decoration: none;
	}
}

body form[id^="gform_"] a:focus-visible {
	outline: 3px solid var(--srh-gf-blue);
	outline-offset: 3px;
}


/* ==========================================================
   41. TOUCH DEVICES
   Minimum comfortable touch targets
   ========================================================== */

@media (pointer: coarse) {

	body form[id^="gform_"] :where(
		button,
		input[type="submit"],
		input[type="button"],
		input[type="reset"],
		.gform_save_link
	) {
		min-block-size: 44px;
	}

	body form[id^="gform_"] input[type="checkbox"],
	body form[id^="gform_"] input[type="radio"] {
		inline-size: 22px !important;
		block-size: 22px !important;

		min-inline-size: 22px !important;
	}
}


/* ==========================================================
   42. TABLET / SMALL SCREENS
   ========================================================== */

@media (max-width: 768px) {

	body form[id^="gform_"] {
		--gf-form-gap-x: 1rem;
		--gf-form-gap-y: 1.25rem;
	}

	body form[id^="gform_"] .ginput_complex {
		column-gap: 0.875rem !important;
		row-gap: 0.875rem !important;
	}

	body form[id^="gform_"] .gfield--type-image_choice {
		--gf-field-img-choice-size: calc(50% - 0.5rem);
	}

	body form[id^="gform_"] .gf_page_steps {
		gap: 0.75rem;
	}
}


/* ==========================================================
   43. MOBILE
   ========================================================== */

@media (max-width: 640px) {

	/*
	 * Keep form controls at 16px.
	 * Prevents unwanted browser zoom on iPhone input focus.
	 */

	body form[id^="gform_"] :where(
		input,
		select,
		textarea,
		button
	) {
		font-size: 1rem !important;
	}

	/* Complex fields stack cleanly */

	body form[id^="gform_"] .ginput_complex > :where(
		span,
		div
	) {
		inline-size: 100% !important;
		max-inline-size: 100% !important;

		flex-basis: 100% !important;
	}

	/* List fields */

	body form[id^="gform_"] .gfield_list_group {
		max-inline-size: 100%;
	}

	/* Image choices */

	body form[id^="gform_"] .gfield--type-image_choice {
		--gf-field-img-choice-size: 100%;
	}

	/* Footer buttons */

	body form[id^="gform_"] :where(
		.gform_footer,
		.gform-footer,
		.gform_page_footer
	) {
		align-items: stretch !important;
	}

	body form[id^="gform_"] :where(
		button.gform_button,
		button.gform-button,
		.gform_next_button,
		.gform_previous_button,
		.gform_save_link,
		input[type="submit"]
	):not(.gform_image_button) {
		inline-size: 100% !important;
	}

	/* Progress steps stack when necessary */

	body form[id^="gform_"] .gf_page_steps {
		flex-direction: column;
		align-items: flex-start;
	}
}


/* ==========================================================
   44. VERY SMALL MOBILE
   ========================================================== */

@media (max-width: 360px) {

	body form[id^="gform_"] :where(
		input:not([type="checkbox"]):not([type="radio"]),
		select,
		textarea
	) {
		padding-inline: 0.75rem !important;
	}

	body form[id^="gform_"] .gform_drop_area {
		padding: 1rem !important;
	}
}


/* ==========================================================
   45. REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

	body form[id^="gform_"] *,
	body form[id^="gform_"] *::before,
	body form[id^="gform_"] *::after {
		scroll-behavior: auto !important;

		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}


/* ==========================================================
   46. WINDOWS HIGH-CONTRAST / FORCED COLOURS
   ========================================================== */

@media (forced-colors: active) {

	body form[id^="gform_"] :where(
		input,
		select,
		textarea,
		button
	) {
		border: 1px solid CanvasText !important;
	}

	body form[id^="gform_"] :where(
		input,
		select,
		textarea,
		button,
		a
	):focus-visible {
		outline: 2px solid Highlight !important;
		outline-offset: 2px !important;
	}

	body form[id^="gform_"] input[type="checkbox"],
	body form[id^="gform_"] input[type="radio"] {
		forced-color-adjust: auto;
	}
}


/* ==========================================================
   END — ST RICHARDS / GRAVITY FORMS 3.0
   ========================================================== */

/* SRH shared Orbital styling. Bricks colour variables remain the brand source. */
.gform_wrapper.gform-theme--framework.gform-theme--orbital {
    --gf-color-primary: var(--srh-brand-blue, #294481);
    --gf-color-primary-rgb: 41, 68, 129;
    --gf-color-primary-contrast: var(--srh-white, #fff);
    --gf-color-primary-contrast-rgb: 255, 255, 255;
    --gf-color-primary-darker: var(--srh-teal, #00748a);
    --gf-color-secondary: var(--srh-white, #fff);
    --gf-color-secondary-contrast: var(--srh-dark, #003444);
    --gf-color-secondary-contrast-rgb: 0, 52, 68;
    --gf-color-secondary-darker: var(--srh-mist, #edf6ee);
    --gf-color-out-ctrl-dark: var(--srh-dark, #003444);
    --gf-color-out-ctrl-dark-rgb: 0, 52, 68;
    --gf-color-out-ctrl-dark-darker: var(--srh-dark, #003444);
    --gf-color-out-ctrl-light-darker: var(--srh-teal, #00748a);
    --gf-color-in-ctrl: var(--srh-white, #fff);
    --gf-color-in-ctrl-contrast: var(--srh-dark, #003444);
    --gf-color-in-ctrl-contrast-rgb: 0, 52, 68;
    --gf-color-in-ctrl-primary: var(--srh-brand-blue, #294481);
    --gf-color-in-ctrl-primary-rgb: 41, 68, 129;
    --gf-color-in-ctrl-primary-contrast: var(--srh-white, #fff);
    --gf-color-danger: var(--srh-purple, #825466);
    --gf-color-danger-rgb: 130, 84, 102;
    --gf-font-family-base: "Poppins", Arial, sans-serif;
    --gf-font-family-primary: var(--gf-font-family-base);
    --gf-font-family-secondary: var(--gf-font-family-base);
    --gf-font-family-tertiary: var(--gf-font-family-base);
    --gf-font-size-primary: 16px;
    --gf-font-size-secondary: 16px;
    --gf-font-size-tertiary: 14px;
    --gf-font-weight-primary: 400;
    --gf-font-weight-secondary: 600;
    --gf-font-weight-tertiary: 400;
    --gf-line-height-primary: 1.6;
    --gf-line-height-secondary: 1.5;
    --gf-line-height-tertiary: 1.6;
    --gf-radius: 6px;
    --gf-ctrl-radius: 6px;
    --gf-ctrl-bg-color: var(--srh-white, #fff);
    --gf-ctrl-color: var(--srh-dark, #003444);
    --gf-ctrl-border-color: var(--srh-teal, #00748a);
    --gf-ctrl-border-color-hover: var(--srh-brand-blue, #294481);
    --gf-ctrl-border-color-focus: var(--srh-brand-blue, #294481);
    --gf-ctrl-outline-color-focus: var(--srh-brand-blue, #294481);
    --gf-ctrl-outline-width-focus: 3px;
    --gf-ctrl-outline-offset: 3px;
    --gf-ctrl-placeholder-color: var(--srh-teal, #00748a);
    --gf-ctrl-placeholder-opacity: 1;
    --gf-ctrl-accent-color: var(--srh-brand-blue, #294481);
    --gf-ctrl-size: 48px;
    --gf-ctrl-shadow: none;
    --gf-ctrl-btn-size: 48px;
    --gf-ctrl-btn-font-size: 16px;
    --gf-ctrl-btn-font-weight: 600;
    --gf-ctrl-btn-radius: 6px;
    --gf-ctrl-btn-shadow: none;
    --gf-ctrl-btn-bg-color-primary: var(--srh-brand-blue, #294481);
    --gf-ctrl-btn-bg-color-hover-primary: var(--srh-teal, #00748a);
    --gf-ctrl-btn-color-primary: var(--srh-white, #fff);
    --gf-ctrl-btn-color-hover-primary: var(--srh-white, #fff);
    --gf-ctrl-btn-border-color-secondary: var(--srh-teal, #00748a);
    --gf-ctrl-btn-color-secondary: var(--srh-dark, #003444);
    color: var(--srh-dark, #003444);
}

.gform_wrapper.gform-theme--framework :is(.gform_title, .gsection_title, .gfield_html h2, .gfield_html h3, .gfield_html h4) {
    color: var(--srh-brand-blue, #294481);
    font-family: "Quincy CF", Georgia, serif;
    font-weight: 500;
    line-height: 1.25;
}

.gform_wrapper.gform-theme--framework .gsection_title {
    font-size: clamp(24px, 2vw, 32px);
}

.gform_wrapper.gform-theme--framework :is(.gfield_html, .gfield_description) {
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.gform_wrapper.gform-theme--framework :is(.gfield_html, .gfield_description) a,
.srh-gf-confirmation a {
    color: var(--srh-brand-blue, #294481);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.gform_wrapper.gform-theme--framework a:focus-visible,
.srh-gf-confirmation a:focus-visible {
    outline: 3px solid var(--srh-brand-blue, #294481);
    outline-offset: 3px;
}

.gform_wrapper .srh-gf-gift-aid-logo img {
    display: block;
    width: 100%;
    height: auto;
}

/*
 * Address columns already include the --gf-field-gap-x gutter as padding.
 * An additional flex column gap makes two native 50% columns wrap apart.
 * Keep Gravity Forms' own widths, vertical spacing and mobile breakpoint.
 */
.gform_wrapper.gform-theme--framework .ginput_container_address.gform-grid-row {
    flex-flow: row wrap;
    column-gap: 0;
}

.srh-gf-confirmation {
    padding: clamp(20px, 3vw, 32px);
    border: 1px solid var(--srh-teal, #00748a);
    border-radius: 6px;
    background: var(--srh-mist, #edf6ee);
    color: var(--srh-dark, #003444);
    font: 400 16px/1.6 "Poppins", Arial, sans-serif;
}

/*
 * These selectors must outrank Orbital's reset and native choice layout even
 * when Gravity Forms prints its styles after the child theme's stylesheet.
 * Keep this scope on the card's inner spans as well as its native label.
 */
.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards {
    container: srh-donation / inline-size;
    min-width: 0;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gfield_radio {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

@container srh-donation (min-width: 32rem) {
    .gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gfield_radio {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    
    .home-page-donation .gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gfield_radio,.gform_wrapper.gform-theme--framework .gfield.home-page-donation.srh-donation-cards .gfield_radio {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@container srh-donation (min-width: 64rem) {
    .gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gfield_radio {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gchoice {
    position: relative;
    display: flex;
    align-items: stretch;
    min-width: 0;
    width: 100%;
    margin: 0;
    padding: 0;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gchoice input[type="radio"] {
    position: absolute;
    z-index: 1;
    inset-block-start: 14px;
    inset-inline-start: 14px;
    margin: 0;
    width: 22px;
    height: 22px;
    accent-color: var(--srh-brand-blue, #294481);
    background-color: var(--srh-white, #fff);
    cursor: pointer;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gchoice label {
    box-sizing: border-box;
    display: flex;
    flex: 1;
    align-self: stretch;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 2px solid var(--srh-brand-blue, #294481);
    border-radius: 6px;
    background: var(--srh-white, #fff);
    color: var(--srh-dark, #003444);
    cursor: pointer;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gchoice label:hover {
    background: var(--srh-mist, #edf6ee);
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gchoice input:checked ~ label {
    background: var(--srh-brand-green, #98c6bb);
    box-shadow: inset 0 0 0 1px var(--srh-brand-blue, #294481);
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gchoice input:focus-visible ~ label {
    outline: 3px solid var(--srh-brand-blue, #294481);
    outline-offset: 3px;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gchoice input:disabled ~ label {
    cursor: not-allowed;
    opacity: 0.6;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .srh-donation-card {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: 100%;
    overflow-wrap: anywhere;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .srh-donation-card__image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: 4px 4px 0 0;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .srh-donation-card__body {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: 100%;
    gap: 10px;
    padding: 20px;
}

/* Leave room for the visible radio when a card has no image. */
.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .srh-donation-card__body:first-child {
    padding-top: 48px;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .srh-donation-card__amount {
    display: block;
    color: var(--srh-dark, #003444);
    font: 500 clamp(26px, 3cqi, 34px)/1.2 "Quincy CF", Georgia, serif;
}

.gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .srh-donation-card__description {
    display: block;
    color: var(--srh-dark, #003444);
    font: 400 16px/1.6 "Poppins", Arial, sans-serif;
    white-space: pre-line;
}

@media (forced-colors: active) {
    .gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gchoice input:checked ~ label {
        border-color: Highlight;
        outline: 2px solid Highlight;
    }

    .gform_wrapper.gform-theme--framework .gfield.srh-donation-cards .gchoice input:focus-visible ~ label {
        outline: 3px dashed Highlight;
        outline-offset: 5px;
    }
}


.gform_wrapper.gform-theme--framework .ginput_complex.gform-grid-row {
    flex-flow: row wrap;
    column-gap: 0 !important;
    max-inline-size: none;
}

.gform-theme--framework .gfield--datepicker-default-icon {
    --gf-field-date-icon-color: var(--srh-white, #fff);
    --gf-field-date-icon-color-hover: var(--srh-white, #fff);
    --gf-local-color: var(--srh-white, #fff);
}

.gform-calendar-icon.gform-datepicker-toggle-icon.gform-datepicker-toggle-icon--default.dashicons.dashicons-calendar-alt::before, .gform-theme--framework .gfield--input-type-datepicker.gfield--datepicker-default-icon .ginput_container_date .gform-datepicker-toggle-icon--default {
    color: var(--srh-white, #fff)!important;
}

.brxe-shortcode .gform_wrapper.gform-theme--framework:not(.home-page-donation)  {
    background: var(--srh-mist);
    border-radius: 1.5rem;
    padding: 2rem
}


body form[id^="gform_"] .gfield--type-total .ginput_total {
    background: var(--srh-teal) !important;
    font-size: 1.125rem !important;
    font-weight: 600 !important;
    color: var(--srh-white) !important;
}

.loqate-gf-postcode-row {
        display: flex !important;
        column-gap: 1rem !important;
        padding: .5rem 0 !important; 
    }

    .loqate-gf-status {
    font-size: .8rem;
    padding: .375rem 0;
}

@media (min-width:769px) {   
    .loqate-gf-postcode-row input[type=text] {
        width: 33%!important;
    }
}

body .gform-theme--framework .srh-home-page-donation .gform-footer {
  justify-content: center;
}

body .gform-theme--framework .srh-home-page-donation .gform-footer #gform_submit_button_79 {
  padding: 1rem 2rem !important;
  font-size: 1.5rem !important;
  background-color: var(--srh-sand) !important;
  color: var(--srh-brand-blue) !important;
  border-radius: 100px !important;
  border-color: var(--srh-sand) !important;
}

body .gform-theme--framework .srh-home-page-donation .gform-footer #gform_submit_button_79:hover {
  background-color: var(--srh-brand-blue) !important;
  color: var(--srh-white) !important;
  border-color: var(--srh-brand-blue) !important;
}