/*=========================
	FORM BLOCK
=========================*/

.block-form .header {
	margin-bottom: var(--space-5);
	max-width: 60ch;
}
.block-form .header .top-title {
	display: block;
	margin-bottom: var(--space-2);
}
.block-form .form-placeholder {
	padding: var(--space-4);
	border: 1px dashed currentColor;
	opacity: 0.6;
}

/* -----------------------------------------------
   Gravity Forms — field grid
----------------------------------------------- */
.block-form .gform_wrapper.gravity-theme .gform_fields {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-4) var(--space-4);
	list-style: none;
	margin: 0;
	padding: 0;
}
/* GF basic.min.css forces all .gfield to 1/-1; override for half-width fields */
.block-form .gform_wrapper.gravity-theme .gfield.ghalf,
.block-form .gform_wrapper.gravity-theme .gfield.gfield--width-half {
	grid-column: span 1 !important;
}
/* Non-half fields span full width.
   Include .gravity-theme in selector for specificity (0,5,0) to beat GF's
   .gform_wrapper.gravity-theme .gfield.gfield--width-full (0,4,0). */
.block-form .gform_wrapper.gravity-theme .gfield:not(.ghalf):not(.gfield--width-half),
.block-form .gform_wrapper.gravity-theme .gfield.gfield--width-full,
.block-form .gform_wrapper.gravity-theme .gfield.gfield--type-textarea,
.block-form .gform_wrapper.gravity-theme .gfield.gfield--type-consent,
.block-form .gform_wrapper.gravity-theme .gfield.gfield--type-checkbox {
	grid-column: 1 / -1;
}
/* Hidden / honeypot fields take no space */
.block-form .gform_wrapper .gfield--type-hidden,
.block-form .gform_wrapper .gfield--type-honeypot,
.block-form .gform_wrapper .gform_validation_container {
	display: none !important;
}

/* -----------------------------------------------
   Form heading
----------------------------------------------- */
.block-form .gform_wrapper .gform_heading {
	display: none;
}

/* -----------------------------------------------
   16-column grid variant (forms with cssClass "gf-grid16")
   Mirrors the CF7 col-sm-4/6/8 field widths for converted forms.
----------------------------------------------- */
.block-form .gform_wrapper form.gf-grid16 .gform_fields {
	grid-template-columns: repeat(16, 1fr);
}
.block-form form.gf-grid16 .gfield.gfcol-4 {
	grid-column: span 4 !important;
}
.block-form form.gf-grid16 .gfield.gfcol-6 {
	grid-column: span 6 !important;
}
.block-form form.gf-grid16 .gfield.gfcol-8 {
	grid-column: span 8 !important;
}
.block-form form.gf-grid16 .gfield.gfcol-16 {
	grid-column: 1 / -1 !important;
}
.block-form form.gf-grid16 .gfield.gsection {
	grid-column: 1 / -1 !important;
}
@media only screen and (max-width: 767.98px) {
	.block-form .gform_wrapper form.gf-grid16 .gform_fields {
		grid-template-columns: 1fr;
	}
	.block-form form.gf-grid16 .gfield[class*="gfcol-"] {
		grid-column: 1 / -1 !important;
	}
}

/* -----------------------------------------------
   Labels
----------------------------------------------- */
.block-form .gform_wrapper.gravity-theme .gfield_label,
.block-form .gform_wrapper.gravity-theme .gfield_label_before_complex {
	display: block;
	font-size: inherit;
	font-weight: 700;
	margin-bottom: 0.8rem;
}
.block-form .gform_wrapper.gravity-theme .gfield_required {
	color: #000;
}

/* -----------------------------------------------
   Override GF's .medium width constraint
----------------------------------------------- */
.block-form .gform_wrapper.gravity-theme .gfield input.medium,
.block-form .gform_wrapper.gravity-theme .gfield select.medium {
	width: 100%;
}

/* -----------------------------------------------
   Inputs / select / textarea
----------------------------------------------- */
.block-form .gform_wrapper.gravity-theme .gfield input:not([type="radio"], [type="checkbox"], [type="submit"], [type="hidden"], [type="button"]),
.block-form .gform_wrapper.gravity-theme .gfield select,
.block-form .gform_wrapper.gravity-theme .gfield textarea {
	background-color: #f6f6f8;
	border: 2px solid #e9e9e7;
	border-radius: 0;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	height: auto;
	line-height: 1.6;
	padding: 15px 20px;
	transition: border 0.3s cubic-bezier(0.4, 0, 0, 1);
	width: 100%;
}
.block-form .gform_wrapper.gravity-theme .gfield input:not([type="radio"], [type="checkbox"], [type="submit"], [type="hidden"], [type="button"]):hover,
.block-form .gform_wrapper.gravity-theme .gfield select:hover,
.block-form .gform_wrapper.gravity-theme .gfield textarea:hover {
	border-color: #a7a7a9;
}
.block-form .gform_wrapper.gravity-theme .gfield input:not([type="radio"], [type="checkbox"], [type="submit"], [type="hidden"], [type="button"]):focus,
.block-form .gform_wrapper.gravity-theme .gfield input:not([type="radio"], [type="checkbox"], [type="submit"], [type="hidden"], [type="button"]):focus-visible,
.block-form .gform_wrapper.gravity-theme .gfield select:focus,
.block-form .gform_wrapper.gravity-theme .gfield select:focus-visible,
.block-form .gform_wrapper.gravity-theme .gfield textarea:focus,
.block-form .gform_wrapper.gravity-theme .gfield textarea:focus-visible {
	border: 2px solid #ff6e33;
	box-shadow: none;
	outline: none;
}
.block-form .gform_wrapper.gravity-theme .gfield input::placeholder,
.block-form .gform_wrapper.gravity-theme .gfield textarea::placeholder {
	color: #69696a;
}

/* -----------------------------------------------
   Select — custom chevron arrow
----------------------------------------------- */
.block-form .gform_wrapper.gravity-theme .gfield select {
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
	padding-right: 48px;
}
.block-form .gform_wrapper .ginput_container_select {
	position: relative;
}
.block-form .gform_wrapper .ginput_container_select::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='%23282829'%3E%3Cpath transform='translate(16 0) rotate(90)' d='M.586 2.343 2 .93 9.071 8 2 15.071.586 13.657 6.243 8 .586 2.343z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: block;
	height: 8px;
	pointer-events: none;
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 13px;
}

/* -----------------------------------------------
   Error states
----------------------------------------------- */

/* Hide top summary box and per-field messages */
.block-form .gform_wrapper .gform_validation_errors,
.block-form .gform_wrapper .validation_message,
.block-form .gform_wrapper .gfield_validation_message {
	display: none !important;
}

/* Top validation errors summary box */
.block-form .gform_wrapper.gravity-theme .gform_validation_errors {
	background: rgba(238, 0, 4, 0.05);
	border: 2px solid #ee0004;
	border-radius: 10px;
	box-shadow: none;
	padding: 20px 20px 20px 24px;
	margin-bottom: 24px;
}
.block-form .gform_wrapper.gravity-theme .gform_validation_errors > h2 {
	color: #ee0004;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 8px;
}
.block-form .gform_wrapper.gravity-theme .gform_validation_errors > ol a {
	color: #ee0004;
	font-size: inherit;
	text-decoration: underline;
}
.block-form .gform_wrapper.gravity-theme .gform_validation_errors > ol li {
	color: #ee0004;
	font-size: inherit;
}

/* Error field container */
.block-form .gform_wrapper.gravity-theme .gfield_error {
	background: transparent;
	border: none;
	padding: 0;
}

/* Error labels */
.block-form .gform_wrapper.gravity-theme .gfield_error .gfield_label,
.block-form .gform_wrapper.gravity-theme .gfield_error legend {
	color: #ee0004;
}

/* Error inputs / select / textarea */
.block-form .gform_wrapper .gfield_error input:not([type="radio"], [type="checkbox"], [type="submit"], [type="hidden"], [type="button"]),
.block-form .gform_wrapper .gfield_error select,
.block-form .gform_wrapper .gfield_error textarea,
.block-form .gform_wrapper.gravity-theme .gfield_error [aria-invalid="true"] {
	border: 2px solid #ee0004 !important;
}

/* Error validation message (per field) */
.block-form .gform_wrapper .validation_message,
.block-form .gform_wrapper .gfield_validation_message {
	color: #ee0004;
	font-size: 14px;
	font-weight: 600;
	margin-top: 0.5rem;
	background: transparent;
	border: none;
	padding: 0;
}

/* Error state for radio/checkbox card items */
.block-form .gform_wrapper .gfield_error .gchoice {
	border-color: #ee0004;
}

/* -----------------------------------------------
   Field description
----------------------------------------------- */
.block-form .gform_wrapper.gravity-theme .gfield_description,
.block-form .gform_wrapper.gravity-theme .description {
	font-size: 18px;
	line-height: 1.3;
	padding-top: 0;
	margin-top: 20px;
}
.block-form .gform_wrapper.gravity-theme .gfield_description a,
.block-form .gform_wrapper.gravity-theme .description a {
	font-weight: 700;
	text-decoration: underline;
}

/* -----------------------------------------------
   Checkbox — card-style items
----------------------------------------------- */
.block-form .gform_wrapper .gfield_checkbox,
.block-form .gform_wrapper .gfield_checkbox ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.block-form .gform_wrapper .gfield_radio:not(.radio-custom .gfield_radio) {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}
.block-form .gform_wrapper .gchoice {
	align-items: center;
	background: transparent;
	border: 2px solid #e9e9e7;
	border-radius: 0;
	display: flex;
	flex-direction: row;
	padding: 16px 20px 16px 64px;
	position: relative;
	transition:
		border 0.3s cubic-bezier(0.4, 0, 0, 1),
		background 0.3s cubic-bezier(0.4, 0, 0, 1);
}
.block-form .gform_wrapper .gchoice:hover {
	border-color: #a7a7a9;
}
.block-form .gform_wrapper .gchoice:has(input:checked) {
	background: rgba(255, 110, 51, 0.06);
	border-color: #ff6e33;
	border-radius: 10px;
}
/* Hide native checkbox */
.block-form .gform_wrapper .gchoice input[type="checkbox"] {
	cursor: pointer;
	height: 100%;
	inset: 0;
	margin: 0;
	min-width: auto;
	opacity: 0;
	position: absolute;
	width: 100%;
}
/* Label */
.block-form .gform_wrapper.gravity-theme .gfield_checkbox .gchoice label,
.block-form .gform_wrapper.gravity-theme .gfield_radio .gchoice label {
	cursor: pointer;
	display: block;
	font-size: inherit;
	font-weight: 700;
	margin: 0;
	position: static;
}
/* Custom checkbox box (::after = the square) */
.block-form .gform_wrapper .gchoice label::after {
	background-color: #fff;
	border: 2px solid #a7a7a9;
	border-radius: 0;
	content: "";
	display: block;
	height: 2.4rem;
	left: 2rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition:
		border 0.3s cubic-bezier(0.4, 0, 0, 1),
		background 0.2s cubic-bezier(0.4, 0, 0, 1);
	width: 2.4rem;
}
/* Checkmark tick (::before = the tick inside the box) */
.block-form .gform_wrapper .gchoice label::before {
	border-bottom: 2px solid #fff;
	border-right: 2px solid #fff;
	content: "";
	height: 1.3rem;
	left: 2.85rem;
	opacity: 0;
	position: absolute;
	top: calc(50% - 0.2rem);
	transform: translateY(-50%) rotate(45deg);
	transition: opacity 0.3s cubic-bezier(0.4, 0, 0, 1);
	width: 0.75rem;
	z-index: 1;
}
/* Checked: orange filled box + visible tick */
.block-form .gform_wrapper .gchoice input:checked + label::after {
	background-color: #ff6e33;
	border-color: #ff6e33;
}
.block-form .gform_wrapper .gchoice input:checked + label::before {
	opacity: 1;
}

/* -----------------------------------------------
   Submit footer
----------------------------------------------- */
.block-form .gform_wrapper .gform_footer,
.block-form .gform_wrapper .gform-footer {
	display: flex;
	justify-content: flex-end;
	grid-column: 1 / -1;
	margin-top: var(--space-5);
}

/* -----------------------------------------------
   Multi-page: progress bar + next/previous buttons
----------------------------------------------- */
.block-form .gform_wrapper .gf_progressbar_wrapper {
	margin-bottom: 40px;
}
.block-form .gform_wrapper .gf_progressbar_title {
	font-weight: 700;
	font-size: 20px;
	margin: 0 0 10px;
	text-align: center;
	color: #282829;
}
.block-form .gform_wrapper .gf_progressbar {
	height: 20px;
	background-color: #a7a7a9;
	border-radius: 0;
	overflow: hidden;
	padding: 0;
}
.block-form .gform_wrapper .gf_progressbar_percentage {
	height: 100%;
	background-color: #01b483;
	border-radius: 0;
	transition: width 0.3s cubic-bezier(0.4, 0, 0, 1);
}
.block-form .gform_wrapper .gf_progressbar_percentage span {
	display: none;
}

.block-form .gform_wrapper .gform_page_footer {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 10px 20px;
	margin-top: var(--space-5);
	border: 0;
	padding: 0;
}
.block-form .gform_wrapper .gform_page_footer .gform_previous_button {
	margin-right: auto;
}
.block-form .gform_wrapper .gform_page_footer input[type="button"],
.block-form .gform_wrapper .gform_page_footer .gform_next_button,
.block-form .gform_wrapper .gform_page_footer .gform_previous_button {
	align-items: center;
	border-radius: 100px;
	cursor: pointer;
	display: inline-flex;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.3em;
	padding: 1.1em 2.6em;
	text-align: center;
	border: none;
	transition: all 0.3s cubic-bezier(0.4, 0, 0, 1);
}
.block-form .gform_wrapper .gform_page_footer .gform_next_button {
	background: #ff6e33;
	color: #282829;
	box-shadow:
		0 0 0 1px #ff6e33,
		inset 0 0 0 1px #ff6e33;
}
.block-form .gform_wrapper .gform_page_footer .gform_next_button:hover {
	background: none;
	color: #282829;
}
.block-form .gform_wrapper .gform_page_footer .gform_previous_button {
	background: transparent;
	color: #282829;
	box-shadow: inset 0 0 0 2px #282829;
}
.block-form .gform_wrapper .gform_page_footer .gform_previous_button:hover {
	background: #282829;
	color: #fff;
}

/* CF7 submit paragraph */
.wpcf7 p:has([type="submit"]) {
	margin-top: var(--space-5);
}

/* -----------------------------------------------
   Submit button — orange pill
----------------------------------------------- */
.block-form .gform_wrapper .gform_footer input[type="submit"],
.block-form .gform_wrapper .gform_footer .gform_button,
.block-form .gform_wrapper .gform_footer button,
.block-form .gform_wrapper .gform-footer input[type="submit"],
.block-form .gform_wrapper .gform-footer .gform_button,
.block-form .gform_wrapper .gform-footer button {
	align-items: center;
	background: #ff6e33;
	border: none;
	border-radius: 100px;
	box-shadow:
		0 0 0 1px #ff6e33,
		inset 0 0 0 1px #ff6e33;
	color: #282829;
	cursor: pointer;
	display: inline-flex;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.3em;
	overflow: hidden;
	padding: 1.1em 2.6em;
	position: relative;
	text-align: center;
	transition:
		all 0.3s cubic-bezier(0.4, 0, 0, 1),
		background 0s cubic-bezier(0.4, 0, 0, 1) 0.3s;
	vertical-align: top;
}
.block-form .gform_wrapper .gform_footer input[type="submit"]:hover,
.block-form .gform_wrapper .gform_footer .gform_button:hover,
.block-form .gform_wrapper .gform_footer button:hover,
.block-form .gform_wrapper .gform-footer input[type="submit"]:hover,
.block-form .gform_wrapper .gform-footer .gform_button:hover,
.block-form .gform_wrapper .gform-footer button:hover {
	background: none;
	color: #282829;
	transition:
		all 0.3s cubic-bezier(0.4, 0, 0, 1),
		background 0s cubic-bezier(0.4, 0, 0, 1);
}
.block-form .gform_wrapper .gform_footer input[type="submit"]:focus,
.block-form .gform_wrapper .gform_footer .gform_button:focus,
.block-form .gform_wrapper .gform_footer button:focus,
.block-form .gform_wrapper .gform-footer input[type="submit"]:focus,
.block-form .gform_wrapper .gform-footer .gform_button:focus,
.block-form .gform_wrapper .gform-footer button:focus {
	box-shadow:
		0 0 0 2px #ff6e33,
		inset 0 0 0 1px #ff6e33;
	outline: none;
	text-decoration: underline;
}

/* -----------------------------------------------
   Mobile
----------------------------------------------- */
@media only screen and (max-width: 767.98px) {
	.block-form .gform_wrapper.gravity-theme .gform_fields {
		grid-template-columns: 1fr;
	}
}

/* -----------------------------------------------
   Card variant — white box centered on page
----------------------------------------------- */
section.block-form.is-card .container {
	max-width: 930px;
	background: #fff;
	border: 1px solid #e9e9e7;
	border-radius: 20px;
	box-shadow: 2px 4px 6px 2px rgba(0, 0, 0, 0.4);
	padding: 60px 70px;
}
section.block-form.is-card .header {
	max-width: none;
	text-align: center;
	margin-bottom: var(--space-6);
}
section.block-form.is-card .header .top-title {
	margin-bottom: var(--space-2);
}
section.block-form.is-card .header .top-title::after {
	background-color: #f8a087;
	margin-left: auto;
	margin-right: auto;
}
section.block-form.is-card .header .top-title.top-title--color-n-black::after {
	background-color: #282829;
}
section.block-form.is-card .header .top-title.top-title--color-p::after {
	background-color: var(--color-p);
}
section.block-form.is-card .header .top-title.top-title--accent-peach::after {
	background-color: var(--accent-peach);
}
section.block-form.is-card .header .top-title.top-title--accent-green::after {
	background-color: var(--accent-green);
}
section.block-form.is-card .header .top-title.top-title--accent-pink::after {
	background-color: var(--accent-pink);
}
section.block-form.is-card .header .top-title.top-title--accent-light-blue::after {
	background-color: var(--accent-light-blue);
}
section.block-form.is-card .header .copy {
	font-weight: 700;
	max-width: none;
}

@media only screen and (max-width: 991.98px) {
	section.block-form.is-card .container {
		padding: 50px 40px;
	}
}
@media only screen and (max-width: 767.98px) {
	section.block-form.is-card .container {
		padding: 40px 24px;
		margin-top: 30px;
		margin-bottom: 30px;
	}
	.block-form .gform_wrapper.gravity-theme .gform_fields {
		gap: var(--space-3) var(--space-5);
	}
}

/* -----------------------------------------------
   YES / NO radio — pill boxes (match live)
   Scoped to .radio-custom so checkbox styling is untouched.
----------------------------------------------- */
.block-form .gform_wrapper .radio-custom .gfield_radio {
	display: flex;
	flex-flow: row wrap;
	/* gap: 30px; */
	margin: 0;
	padding: 0;
	list-style: none;
	row-gap: 30px;
}
.block-form .gform_wrapper .radio-custom .gfield_radio .gchoice {
	flex: 0 1 calc(50% - 4px);
	margin: 0 8px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	border-radius: 0;
	position: relative;
}
.block-form .gform_wrapper .radio-custom .gfield_radio .gchoice:nth-child(even) {
	margin-right: 0;
}
/* never let the checkbox container highlight bleed through on radios */
.block-form .gform_wrapper .radio-custom .gfield_radio .gchoice:has(input:checked) {
	background: transparent;
	border: 0;
}
/* hide native radio */
.block-form .gform_wrapper .radio-custom .gfield_radio .gchoice input[type="radio"] {
	position: absolute;
	left: -9999px;
	width: auto;
	height: auto;
	inset: auto auto auto -9999px;
	opacity: 0;
}
/* the box = the label */
.block-form .gform_wrapper.gravity-theme .radio-custom .gfield_radio .gchoice label {
	align-items: center;
	background: #f6f6f8;
	border: 2px solid #e9e9e7;
	border-radius: 10px;
	cursor: pointer;
	display: flex;
	flex-direction: row;
	font-size: 20px;
	font-weight: 700;
	margin: 0;
	min-height: 90px;
	padding: 15px 20px 15px 75px;
	position: relative;
	transition:
		background 0.3s cubic-bezier(0.4, 0, 0, 1),
		border 0.3s cubic-bezier(0.4, 0, 0, 1);
	width: 100%;
}
.block-form .gform_wrapper.gravity-theme .radio-custom .gfield_radio .gchoice label:hover {
	border-color: #000;
}
/* circle outline (::before) — always visible (base checkbox rule sets opacity:0) */
.block-form .gform_wrapper .radio-custom .gfield_radio .gchoice label::before {
	background-color: #fff;
	border: 2px solid #a7a7a9;
	border-radius: 50%;
	content: "";
	height: 27px;
	width: 27px;
	left: 25px;
	opacity: 1;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: border 0.3s cubic-bezier(0.4, 0, 0, 1);
}
/* orange dot (::after) — z-index above the white circle (::before has z-index:1) */
.block-form .gform_wrapper .radio-custom .gfield_radio .gchoice label::after {
	background-color: #ff6e33;
	border: 0;
	border-radius: 50%;
	content: "";
	height: 17px;
	width: 17px;
	left: 30px;
	opacity: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) scale(0);
	transition:
		opacity 0.3s cubic-bezier(0.4, 0, 0, 1),
		transform 0.3s cubic-bezier(0.4, 0, 0, 1);
	z-index: 2;
}
/* checked state — selector mirrors the base label rule's specificity so it wins */
.block-form .gform_wrapper.gravity-theme .radio-custom .gfield_radio .gchoice input:checked + label {
	background-color: #fff5f3;
	border-color: #ff6e33;
}
.block-form .gform_wrapper .radio-custom .gfield_radio .gchoice input:checked + label::before {
	border-color: #ff6e33;
}
.block-form .gform_wrapper .radio-custom .gfield_radio .gchoice input:checked + label::after {
	opacity: 1;
	transform: translateY(-50%) scale(1);
}
.block-form .gform_wrapper.gravity-theme .radio-custom .gfield_radio .gchoice input:checked + label:hover {
	border-color: #a7a7a9;
}

/* -----------------------------------------------
   Collapsible sections (accordion) — match live
----------------------------------------------- */
.block-form .gform_wrapper .gsection.collapsible-sections-field {
	grid-column: 1 / -1;
	background-color: #f5f5f4;
	border: 1px solid #e2dedd;
	cursor: pointer;
	margin: 24px 0 0;
	padding: 16px 20px;
	position: relative;
	-webkit-user-select: none;
	user-select: none;
}
.block-form .gform_wrapper .gsection.collapsible-sections-field:first-of-type {
	margin-top: 0;
}
.block-form .gform_wrapper .collapsible-sections-field .gsection_title {
	margin: 0;
	padding-right: 30px;
	position: relative;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.3;
	color: #282829;
}
/* chevron drawn with borders (no icon font dependency) */
.block-form .gform_wrapper .collapsible-sections-field .gsection_title::after {
	content: "";
	position: absolute;
	right: 6px;
	top: 50%;
	width: 11px;
	height: 11px;
	border-right: 2px solid #282829;
	border-bottom: 2px solid #282829;
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0, 1);
}
.block-form .gform_wrapper .collapsible-sections-field.collapsible-sections-open .gsection_title::after {
	transform: translateY(-30%) rotate(-135deg);
}
/* body wrapper holds the section's fields; re-create the form grid inside */
.block-form .gform_wrapper .collapsible-sections-collapsible-body {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px 40px;
	border: 1px solid #e9e9e7;
	border-top: 0;
	padding: 24px 20px;
	margin: 0;
}
.block-form .gform_wrapper .collapsible-sections-collapsible-body .gsection_description {
	grid-column: 1 / -1;
	margin: 0;
}
.block-form .gform_wrapper .collapsible-sections-field:not(.collapsible-sections-open) + .collapsible-sections-collapsible-body {
	display: none;
}
@media only screen and (max-width: 767.98px) {
	.block-form .gform_wrapper .collapsible-sections-collapsible-body {
		grid-template-columns: 1fr;
		gap: var(--space-3) var(--space-5);
	}
}

/* ===============================================
   Contact Form 7 — global styles matching live
   =============================================== */

/* -----------------------------------------------
   Hide CF7 generated br / empty paragraphs
----------------------------------------------- */
.wpcf7 br,
.wpcf7 p:empty,
.wpcf7 label + br {
	display: none;
}

/* -----------------------------------------------
   Form control wrap
----------------------------------------------- */
.wpcf7-form-control-wrap {
	display: block;
	position: relative;
}

/* -----------------------------------------------
   Inputs / select / textarea
----------------------------------------------- */
.wpcf7 input,
.wpcf7 select,
.wpcf7 textarea {
	background-color: #f6f6f8;
	border: 2px solid #e9e9e7;
	border-radius: 0;
	width: 100%;
}
.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
	border: 0;
	width: auto;
}
.wpcf7 input[type="file"] {
	padding: 1.2rem;
}

.wpcf7 input::placeholder,
.wpcf7 select::placeholder,
.wpcf7 textarea::placeholder {
	color: #69696a;
}

.wpcf7 input:hover,
.wpcf7 select:hover,
.wpcf7 textarea:hover {
	border-color: #a7a7a9;
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	border: 2px solid #ff6e33;
	box-shadow: none;
	outline: none;
}

.wpcf7 input.wpcf7-not-valid,
.wpcf7 select.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid {
	border-color: #ee0004;
}

.wpcf7 textarea {
	display: block;
	height: 14rem;
	max-width: 100%;
	min-height: 14rem;
	min-width: 100%;
	padding: 2rem;
}

/* -----------------------------------------------
   Validation tip + response output
----------------------------------------------- */
.wpcf7 span.wpcf7-not-valid-tip {
	color: #ee0004;
	font-size: 1.6rem;
	margin-top: 0.5rem;
	display: block;
}
.wpcf7-response-output {
	margin: 3rem 0 !important;
	padding: 2rem !important;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
	background-color: rgba(238, 0, 4, 0.05);
	border-color: #ee0004;
}
.wpcf7 form.sent .wpcf7-response-output {
	background-color: rgba(1, 180, 131, 0.05);
	border-color: #01b483;
}

/* -----------------------------------------------
   Screen reader response (visually hidden)
----------------------------------------------- */
.wpcf7 .screen-reader-response {
	position: absolute;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
}
.wpcf7 .screen-reader-response p {
	display: block;
}
.wpcf7 .hidden-fields-container {
	display: none;
}

/* -----------------------------------------------
   Radio / checkbox list items
----------------------------------------------- */
.wpcf7-list-item {
	display: block;
	position: relative;
	margin-left: 0;
	margin-right: 1.6rem;
}
.wpcf7-list-item input {
	left: -9999px;
	opacity: 0;
	position: absolute;
}

/* The label = the styled pill box */
.wpcf7-list-item-label {
	align-items: center;
	background: #f6f6f8;
	border: 2px solid #e9e9e7;
	border-radius: 1rem;
	cursor: pointer;
	display: flex;
	flex-direction: row;
	font-weight: 700;
	min-height: 9rem;
	padding: 15px 20px 15px 7.5rem;
	position: relative;
	transition:
		background 0.3s cubic-bezier(0.4, 0, 0, 1),
		border 0.3s cubic-bezier(0.4, 0, 0, 1);
	width: 100%;
}
.wpcf7-list-item:hover .wpcf7-list-item-label {
	border-color: #a7a7a9;
}
.wpcf7-list-item input:focus + .wpcf7-list-item-label {
	border: 2px solid #282829;
}

/* Circle outline (::before) */
.wpcf7-list-item-label::before {
	background-color: #fff;
	border: 2px solid #a7a7a9;
	border-radius: 50%;
	content: "";
	height: 2.7rem;
	left: 2.5rem;
	position: absolute;
	top: calc(50% - 1.4rem);
	transition: border 0.3s cubic-bezier(0.4, 0, 0, 1);
	width: 2.7rem;
}

/* Orange dot / check (::after) */
.wpcf7-list-item-label::after {
	background-color: #ff6e33;
	border-radius: 50%;
	content: "";
	height: 1.7rem;
	left: 3rem;
	opacity: 0;
	position: absolute;
	top: calc(50% - 0.9rem);
	transform: scale(0);
	transition:
		opacity 0.3s cubic-bezier(0.4, 0, 0, 1),
		transform 0.3s cubic-bezier(0.4, 0, 0, 1);
	width: 1.7rem;
}

/* Checked states */
.wpcf7-list-item input:checked + .wpcf7-list-item-label {
	background-color: #fff5f3;
	border: 2px solid #ff6e33;
}
.wpcf7-list-item input:checked + .wpcf7-list-item-label::before {
	border-color: #ff6e33;
}
.wpcf7-list-item input:checked + .wpcf7-list-item-label::after {
	opacity: 1;
	transform: scale(1);
}
.wpcf7-list-item input:checked + .wpcf7-list-item-label:hover {
	border-color: #a7a7a9;
}

/* Checkbox: square box + tick SVG instead of circle dot */
.wpcf7-checkbox .wpcf7-list-item-label::before,
.wpcf7-acceptance .wpcf7-list-item-label::before {
	border-radius: 0;
	height: 2.7rem;
	left: 2.5rem;
	top: calc(50% - 1.4rem);
	width: 2.7rem;
}
.wpcf7-checkbox .wpcf7-list-item-label::after,
.wpcf7-acceptance .wpcf7-list-item-label::after {
	border-radius: 0;
	height: 2.7rem;
	left: 2.5rem;
	top: calc(50% - 1.4rem);
	width: 2.7rem;
	background: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMTEgMCA1LjcyMmwxLjQxLTEuNDg5TDUgOC4wMTMgMTIuNTkgMCAxNCAxLjQ5OSA1IDExWiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==") 50% center no-repeat #ff6e33;
}

/* -----------------------------------------------
   Grid layout variant for radio groups
----------------------------------------------- */
.wpcf7-radio.grid-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 3.2rem;
}
.wpcf7-radio.grid-layout .wpcf7-list-item {
	margin: 0;
}
.wpcf7-radio.grid-layout .wpcf7-list-item input:focus + .wpcf7-list-item-label {
	border-color: #ff6e33;
}

/* -----------------------------------------------
   Acceptance (single checkbox) — no margin
----------------------------------------------- */
.wpcf7-acceptance .wpcf7-list-item {
	margin-right: 0 !important;
}

/* -----------------------------------------------
   Spinner
----------------------------------------------- */
.wpcf7-spinner {
	visibility: hidden;
	display: inline-block;
	background-color: #23282d;
	opacity: 0.75;
	width: 24px;
	height: 24px;
	border-radius: 100%;
	padding: 0;
	margin: 0 24px;
	position: relative;
}
form.submitting .wpcf7-spinner {
	visibility: visible;
}
.wpcf7-spinner::before {
	content: "";
	position: absolute;
	background-color: #fbfbfc;
	top: 4px;
	left: 4px;
	width: 6px;
	height: 6px;
	border-radius: 100%;
	transform-origin: 8px 8px;
	animation: spin 1000ms linear infinite;
}

/* ===============================================================
   CF7 MULTI-STEP FORM — layout, grid, progress + navigation
   Mirrors the live qld.guidedogs.com.au volunteer form.
   =============================================================== */

/* --- Step visibility: only the active step (and shown rows) display --- */
.wpcf7-form .form__step,
.wpcf7-form .hidden-form-field {
	display: none;
}
.wpcf7-form .form__step.is-visible {
	display: block;
}
.wpcf7-form .row.is-visible {
	display: flex;
}

/* --- Dynamic conditional sections (data-js-trigger) ---
   Higher specificity so .hidden-form-field beats `.wpcf7 .row{display:flex}`.
   JS toggles .is-visible based on the trigger dropdown's value. */
.block-form .wpcf7 .hidden-form-field {
	display: none;
}
.block-form .wpcf7 .hidden-form-field.is-visible {
	display: block;
}
.block-form .wpcf7 .row.hidden-form-field.is-visible {
	display: flex;
}

/* --- 16-column grid used inside the form (matches live) --- */
.wpcf7 .row {
	display: flex;
	flex-wrap: wrap;
	margin-left: -16px;
	margin-right: -16px;
}
.wpcf7 [class*="col-xs-"],
.wpcf7 [class*="col-sm-"] {
	width: 100%;
	padding-left: 16px;
	padding-right: 16px;
}
/* xs (all widths) — 16-column grid */
.wpcf7 .col-xs-1 {
	flex: 0 0 6.25%;
	max-width: 6.25%;
}
.wpcf7 .col-xs-2 {
	flex: 0 0 12.5%;
	max-width: 12.5%;
}
.wpcf7 .col-xs-3 {
	flex: 0 0 18.75%;
	max-width: 18.75%;
}
.wpcf7 .col-xs-4 {
	flex: 0 0 25%;
	max-width: 25%;
}
.wpcf7 .col-xs-5 {
	flex: 0 0 31.25%;
	max-width: 31.25%;
}
.wpcf7 .col-xs-6 {
	flex: 0 0 37.5%;
	max-width: 37.5%;
}
.wpcf7 .col-xs-7 {
	flex: 0 0 43.75%;
	max-width: 43.75%;
}
.wpcf7 .col-xs-8 {
	flex: 0 0 50%;
	max-width: 50%;
}
.wpcf7 .col-xs-9 {
	flex: 0 0 56.25%;
	max-width: 56.25%;
}
.wpcf7 .col-xs-10 {
	flex: 0 0 62.5%;
	max-width: 62.5%;
}
.wpcf7 .col-xs-11 {
	flex: 0 0 68.75%;
	max-width: 68.75%;
}
.wpcf7 .col-xs-12 {
	flex: 0 0 75%;
	max-width: 75%;
}
.wpcf7 .col-xs-13 {
	flex: 0 0 81.25%;
	max-width: 81.25%;
}
.wpcf7 .col-xs-14 {
	flex: 0 0 87.5%;
	max-width: 87.5%;
}
.wpcf7 .col-xs-15 {
	flex: 0 0 93.75%;
	max-width: 93.75%;
}
.wpcf7 .col-xs-16 {
	flex: 0 0 100%;
	max-width: 100%;
}
/* sm (>=768px) — 16-column grid */
@media (min-width: 768px) {
	.wpcf7 .col-sm-1 {
		flex: 0 0 6.25%;
		max-width: 6.25%;
	}
	.wpcf7 .col-sm-2 {
		flex: 0 0 12.5%;
		max-width: 12.5%;
	}
	.wpcf7 .col-sm-3 {
		flex: 0 0 18.75%;
		max-width: 18.75%;
	}
	.wpcf7 .col-sm-4 {
		flex: 0 0 25%;
		max-width: 25%;
	}
	.wpcf7 .col-sm-5 {
		flex: 0 0 31.25%;
		max-width: 31.25%;
	}
	.wpcf7 .col-sm-6 {
		flex: 0 0 37.5%;
		max-width: 37.5%;
	}
	.wpcf7 .col-sm-7 {
		flex: 0 0 43.75%;
		max-width: 43.75%;
	}
	.wpcf7 .col-sm-8 {
		flex: 0 0 50%;
		max-width: 50%;
	}
	.wpcf7 .col-sm-9 {
		flex: 0 0 56.25%;
		max-width: 56.25%;
	}
	.wpcf7 .col-sm-10 {
		flex: 0 0 62.5%;
		max-width: 62.5%;
	}
	.wpcf7 .col-sm-11 {
		flex: 0 0 68.75%;
		max-width: 68.75%;
	}
	.wpcf7 .col-sm-12 {
		flex: 0 0 75%;
		max-width: 75%;
	}
	.wpcf7 .col-sm-13 {
		flex: 0 0 81.25%;
		max-width: 81.25%;
	}
	.wpcf7 .col-sm-14 {
		flex: 0 0 87.5%;
		max-width: 87.5%;
	}
	.wpcf7 .col-sm-15 {
		flex: 0 0 93.75%;
		max-width: 93.75%;
	}
	.wpcf7 .col-sm-16 {
		flex: 0 0 100%;
		max-width: 100%;
	}
}

/* --- Field rows + labels --- */
.wpcf7 .form__row {
	margin-bottom: 32px;
}
.wpcf7 .form__row > label {
	display: block;
	font-size: 20px;
	font-weight: 700;
	margin-bottom: 8px;
	color: #282829;
}
.wpcf7 .required {
	color: #282829;
}
.wpcf7 .required-notice {
	font-size: 20px;
	margin: 32px 0;
	color: #282829;
}
.wpcf7 .explanatory-text {
	font-size: 20px;
	color: #282829;
	margin-bottom: 0;
}

/* --- Inputs / selects: live sizing (padding -> 66px tall) --- */
.wpcf7 input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]),
.wpcf7 select {
	padding: 15px 20px;
	font-size: 20px;
	line-height: 1.6;
}

/* --- Select: hide native arrow, add custom chevron via .dropdown wrap --- */
.wpcf7 .dropdown {
	display: block;
	position: relative;
}
.wpcf7 .dropdown select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 48px;
}
.wpcf7 .dropdown::after {
	content: "";
	position: absolute;
	right: 28px;
	top: 33px;
	margin-top: -4px;
	width: 8px;
	height: 8px;
	border-left: 2px solid #000;
	border-bottom: 2px solid #000;
	transform: rotate(-45deg);
	pointer-events: none;
}

/* --- Step headings --- */
.wpcf7 .form__step h3 {
	margin-bottom: 32px;
}
.wpcf7 .form__step h4 {
	margin-top: 0;
	margin-bottom: 32px;
}

/* --- Invalid field highlight (set by step validation) --- */
.wpcf7 .form__error,
.wpcf7 input.form__error,
.wpcf7 select.form__error,
.wpcf7 textarea.form__error {
	border-color: #ee0004 !important;
}

/* --- Progress indicator --- */
.wpcf7 .progress-indicator {
	margin-bottom: 40px;
}
.wpcf7 .progress-indicator__bar {
	height: 8px;
	background-color: #a7a7a9;
	overflow: hidden;
}
.wpcf7 .progress-indicator__bar__fill {
	height: 100%;
	width: 0;
	background-color: #01b483;
	transition: width 0.3s cubic-bezier(0.4, 0, 0, 1);
}
.wpcf7 .progress-indicator__message {
	font-weight: 700;
	margin-top: 10px;
	text-align: center;
	font-size: 20px;
}

/* --- Step navigation actions --- */
.wpcf7 .multistep-form-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px 20px;
}
.wpcf7 .u-text-right {
	text-align: right;
}

/* --- Spacing utilities used by the form markup --- */
.wpcf7 .u-m-bx1 {
	margin-bottom: 8px;
}
.wpcf7 .u-m-bx5 {
	margin-bottom: 40px;
}
.wpcf7 .u-m-tx5 {
	margin-top: 80px;
}

/* --- Visually-hidden helper (progress sr text) --- */
.wpcf7 .sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* -----------------------------------------------
   CF7 submit button (.c-btn) — keep label above the
   orange ::before sweep so the text is visible at rest.
   Mirrors live: span/icon position:relative; z-index:2.
----------------------------------------------- */
.block-form .wpcf7 .form__actions {
	display: flex;
	justify-content: flex-end;
}
.block-form .wpcf7 .c-btn {
	position: relative;
	font-size: 20px;
	padding: 20px 36px;
}
.block-form .wpcf7 .c-btn > span,
.block-form .wpcf7 .c-btn > .c-btn__icon {
	position: relative;
	z-index: 2;
}
.block-form .wpcf7 .c-btn::before {
	z-index: 0;
}

/* Arrow icon: the imported CF7 button markup references the live theme's
   SVG sprite (/themes/guidedogs/...symbols.svg) which 404s locally, so the
   <use> renders nothing. Hide it and paint skelly's arrow with a mask
   (currentColor = button text colour, so it works on hover too). */
.block-form .wpcf7 .c-btn__icon svg {
	display: none;
}
.block-form .wpcf7 .c-btn--icon-right .c-btn__icon,
.block-form .wpcf7 .c-btn__icon {
	width: 19px;
	height: 19px;
	margin: 0 0 0 10px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 19'%3E%3Cpath d='M9.5.576 7.914 2.163 14.19 8.45H.5v2.25h13.691l-6.277 6.29L9.5 18.575l9-9-9-9z'/%3E%3C/svg%3E") no-repeat center / 19px 19px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 19'%3E%3Cpath d='M9.5.576 7.914 2.163 14.19 8.45H.5v2.25h13.691l-6.277 6.29L9.5 18.575l9-9-9-9z'/%3E%3C/svg%3E") no-repeat center / 19px 19px;
}

/* ---------------------------------------------------------------------------
   Hidden field labels (labelPlacement = hidden_label)
   Gravity Forms still emits the <legend>/<label> for choice fieldsets, and the
   theme's own .gfield_label rules were re-showing it — so the "Marketing and
   Communications" heading appeared above the consent checkbox on Contact us,
   Corporate volunteering, Workplace Giving, MakeYourMark and Community
   Volunteering, where live shows no heading at all. (Disability Action Week
   deliberately DOES show it — that form keeps labelPlacement visible.)
   Hidden visually, still read by screen readers.
--------------------------------------------------------------------------- */
.gform_wrapper .gfield.hidden_label > .gfield_label,
.gform_wrapper .gfield.hidden_label > legend.gfield_label,
.gform_wrapper .gfield.hidden_label > .gform-field-label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
