/*=========================
	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: .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;
}
/* Form's internal sub-headings ("Your details" / "Their details") stay small;
   the block title (.header .title) keeps its font-heading3 size. */
.block-form .gd-form h3 {
	font-size: 25px !important;
}
/* Rich-text intro heading in the form block header/copy */
.block-form .copy h5 {
	font-size: 25px !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: .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 .3s cubic-bezier(.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, .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: .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: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 30px;
	row-gap: 15px;
}
.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 .3s cubic-bezier(.4,0,0,1), background .3s cubic-bezier(.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 .3s cubic-bezier(.4,0,0,1), background .2s cubic-bezier(.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% - .2rem);
	transform: translateY(-50%) rotate(45deg);
	transition: opacity .3s cubic-bezier(.4,0,0,1);
	width: .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);
}

/* CF7/GD submit paragraph — stays valid before and after JS upgrades the input */
.wpcf7 p:has([type="submit"]),
.wpcf7 p:has(.c-btn) {
	margin-top: var(--space-5);
}

/* -----------------------------------------------
   Submit button — site c-btn--primary style with arrow
----------------------------------------------- */
.block-form .gform_wrapper .gform_footer .gform_button,
.block-form .gform_wrapper .gform-footer .gform_button {
	display: inline-flex;
	align-items: center;
	gap: 1em;
	background-image: linear-gradient(to right, var(--color-p, #ff6e33) 50%, transparent 50%);
	background-size: 200% 100%;
	background-position: 0% 0%;
	border: 2px solid var(--color-p, #ff6e33);
	border-radius: 100px;
	color: var(--color-n-black, #282829);
	cursor: pointer;
	font-family: inherit;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.3;
	padding: 0.86em 1.8em;
	height: 66px;
	box-sizing: border-box;
	transition: background-position .3s cubic-bezier(.4,0,0,1);
}
/* Arrow as flex item — no absolute positioning needed */
.block-form .gform_wrapper .gform_footer .gform_button::after,
.block-form .gform_wrapper .gform-footer .gform_button::after {
	content: "";
	flex-shrink: 0;
	width: 1.9rem;
	height: 1.9rem;
	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 / contain;
	        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 / contain;
	transition: transform .3s cubic-bezier(.4,0,0,1);
}
.block-form .gform_wrapper .gform_footer .gform_button:hover,
.block-form .gform_wrapper .gform-footer .gform_button:hover {
	background-position: 100% 0%;
}
.block-form .gform_wrapper .gform_footer .gform_button:hover::after,
.block-form .gform_wrapper .gform-footer .gform_button:hover::after {
	transform: translateX(8px);
}
.block-form .gform_wrapper .gform_footer .gform_button:focus-visible,
.block-form .gform_wrapper .gform-footer .gform_button:focus-visible {
	outline: 2px solid var(--color-p, #ff6e33);
	outline-offset: 2px;
}

/* -----------------------------------------------
   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,.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: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 30px;
	row-gap: 15px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.block-form .gform_wrapper .radio-custom .gfield_radio .gchoice {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	border-radius: 0;
	position: relative;
}
/* 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 .3s cubic-bezier(.4,0,0,1), border .3s cubic-bezier(.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 .3s cubic-bezier(.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 .3s cubic-bezier(.4,0,0,1), transform .3s cubic-bezier(.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 .3s cubic-bezier(.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;
}
/* CF7 always prints the response box; before a submit it is EMPTY, and its border then reads as a
   stray input (visible under the NSW referral notice, where the rest of the form is hidden). */
.wpcf7-response-output:empty {
	display: none !important;
}

/* The referral notice is copy, not a control — style its link like the rest of the site's links. */
.gd-notice a {
	text-decoration: underline;
	font-weight: 600;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
	background-color: rgba(238, 0, 4, .05);
	border-color: #ee0004;
}
.wpcf7 form.sent .wpcf7-response-output {
	background-color: rgba(1, 180, 131, .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: 0;
	margin-bottom: 20px;
}
.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 .3s cubic-bezier(.4,0,0,1), border .3s cubic-bezier(.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 .3s cubic-bezier(.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% - .9rem);
	transform: scale(0);
	transition: opacity .3s cubic-bezier(.4,0,0,1), transform .3s cubic-bezier(.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;
}

/* -----------------------------------------------
   Radio groups — 2-column grid
----------------------------------------------- */
.block-form .wpcf7-radio {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 30px;
	row-gap: 15px;
}
.block-form .wpcf7-radio .wpcf7-list-item { margin: 0; }
.block-form .wpcf7-radio .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: .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 .3s cubic-bezier(.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;
	flex: 0 0 19px;     /* flex buttons SHRANK the icon to ~4px on mobile — the arrow mask painted as a sliver of dots */
	min-width: 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;
}

/* -----------------------------------------------
   GD Request-support form (CF7) — layout
----------------------------------------------- */
.block-form .gd-form { display: block; }
.block-form .gd-form .form__row { margin-bottom: var(--space-5); }
.block-form .gd-form .form__grid {
	display: grid;
	gap: var(--space-4) var(--space-4);
}
.block-form .gd-form .form__grid--3 { grid-template-columns: repeat(3, 1fr); }
.block-form .gd-form .form__col { min-width: 0; }
.block-form .gd-form .form__col--full { grid-column: 1 / -1; }
@media only screen and (max-width: 575.98px) {
	.block-form .gd-form .form__grid,
	.block-form .gd-form .form__grid--3 { grid-template-columns: 1fr; }
}
/* "View our privacy policy." — live renders it under the form, left-aligned */
.block-form .gd-form .gd-privacy {
	margin-top: var(--space-4);
	text-align: left;
}
.block-form .gd-form .gd-privacy a { text-decoration: underline; }
.block-form .gd-form .gd-label {
	display: block;
	font-weight: 700;
	margin-bottom: .8rem;
}
.block-form .gd-form .gd-req { font-size: 0; }
.block-form .gd-form .gd-req::after { content: "*"; font-size: 20px; font-weight: 700; color: #282829; }
.block-form .gd-form .gd-optional { font-weight: 400; color: #69696a; }
.block-form .gd-form .gd-help {
	margin: -.4rem 0 1.2rem;
	font-size: 18px;
	line-height: 1.5;
	color: var(--color-n-black);
}
.block-form .gd-form h3.gd-section {
	margin: var(--space-2) 0 var(--space-4);
	font-weight: 700;
}
.block-form .gd-form .gd-referrer { margin-bottom: var(--space-5); }
.block-form .gd-form .form__submit {
	display: flex;
	justify-content: flex-end;
	margin-top: var(--space-4);
}
.block-form .gd-form .form__submit p { margin: 0; }

/* --- Gifts in Wills form -------------------------------------------------
   Measured against live: fields are full width and stacked (Phone and Email are
   NOT a two-column pair), the gap between them is 32px (not the default 40px),
   and the submit is right-aligned — live's .wpforms-submit-container is
   display:flex; justify-content:flex-end. */
.block-form .gd-form--giw .form__row {
	margin-bottom: 32px;
}
.block-form .gd-form--giw .form__row:last-child {
	margin-bottom: 0;
}
/* Submit sits hard right, like live.
   CF7 wraps the button in a <p> and appends its spinner AFTER the button; the spinner reserves
   ~72px even when idle, which pushed the button in from the right edge. Flex the <p> too and
   move the spinner to the LEFT of the button (order:-1) so the button itself is flush right. */
.block-form .gd-form--giw .form__row--submit {
	display: flex;
	justify-content: flex-end;
	margin-top: var(--space-3);
}
.block-form .gd-form--giw .form__row--submit p {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	width: 100%;
}
.block-form .gd-form--giw .form__row--submit .wpcf7-spinner {
	order: -1;
	margin: 0;
}

/* Generic date row: three dropdowns (DD / MM / YYYY) side by side. CF7 wraps every control in a
   block-level <span class="wpcf7-form-control-wrap">, which would otherwise stack them. Any form
   can use this — it is not specific to one form. */
.block-form .gd-form .form__date {
	display: flex;
	gap: var(--space-2);
}
.block-form .gd-form .form__date .wpcf7-form-control-wrap {
	display: inline-block;
	flex: 1 1 0;
	width: auto;
}
.block-form .gd-form .form__date select { width: 100%; }

/* Date + Time group: one label over a row of DD / MM / YYYY and a time picker, each with a small
   sublabel beneath — the layout live uses ("Date / Time incident happened"). Generic: any form can
   use .form__datetime / .form__time / .gd-sublabel. */
.block-form .gd-form .form__datetime {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	align-items: flex-start;
}
.block-form .gd-form .form__datetime .form__date { flex: 0 1 auto; }
.block-form .gd-form .form__datetime .form__time { flex: 0 1 auto; }
.block-form .gd-form .form__date,
.block-form .gd-form .form__time { flex-wrap: wrap; }
.block-form .gd-form .gd-sublabel {
	display: block;
	flex: 1 0 100%;
	margin-top: .6rem;
	font-size: 1.4rem;
	opacity: .7;
}

/* ===============================================================
   PERSONALISED IMAGE GENERATOR FORM (International Dog Day 2023)
   Ports the live gd-radio card control + preview/ratio/spinner/
   share pieces the multi-step "Create your own image" form needs.
   Values copied from live core.css (rem = 10px, same as ours).
   =============================================================== */

/* --- md/lg grid columns + offsets used by this form's markup --- */
@media (min-width: 992px) {
	.wpcf7 .col-md-10 { flex: 0 0 62.5%; max-width: 62.5%; }
	.wpcf7 .col-md-offset-3 { margin-left: 18.75%; }
}
@media (min-width: 1200px) {
	.wpcf7 .col-lg-9  { flex: 0 0 56.25%; max-width: 56.25%; }
	.wpcf7 .col-lg-14 { flex: 0 0 87.5%;  max-width: 87.5%; }
	.wpcf7 .col-lg-offset-1 { margin-left: 6.25%; }
}
@media (min-width: 768px) {
	.wpcf7 .col-sm-offset-0 { margin-left: 0; }
}
.wpcf7 .col-xs-offset-3 { margin-left: 18.75%; }
@media (min-width: 768px) {
	.wpcf7 .col-xs-offset-3.col-sm-offset-0 { margin-left: 0; }
}

/* --- gd-radio card control (live core.css port) --- */
.wpcf7 .gd-radio { cursor: pointer; width: 100%; position: relative; display: block; margin-bottom: 10px; }
.wpcf7 .u-flex-sm > .gd-radio { display: flex; }
.wpcf7 .gd-radio input {
	height: 1px;
	left: -9999px;
	position: absolute;
	width: 1px;
}
.wpcf7 .gd-radio .gd-radio__label {
	align-items: center;
	background-color: #f6f6f8;
	border: 4px solid transparent;
	outline: 2px solid #e9e9e7;
	border-radius: 1rem;
	display: flex;
	flex-direction: row;
	min-height: 9rem;
	padding: 15px 20px 15px 7.5rem;
	position: relative;
	transition: background .3s cubic-bezier(.4,0,0,1), border .3s cubic-bezier(.4,0,0,1);
	width: 100%;
}
.wpcf7 .gd-radio .gd-radio__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 .3s cubic-bezier(.4,0,0,1);
	width: 2.7rem;
}
.wpcf7 .gd-radio .gd-radio__label::after {
	background-color: #ff6e33;
	border-radius: 50%;
	content: "";
	height: 1.7rem;
	left: 3rem;
	opacity: 0;
	position: absolute;
	top: calc(50% - .9rem);
	transform: scale(0);
	transition: opacity .3s cubic-bezier(.4,0,0,1), transform .3s cubic-bezier(.4,0,0,1);
	width: 1.7rem;
}
.wpcf7 .gd-radio:hover .gd-radio__label { border-color: #a7a7a9; }
.wpcf7 .gd-radio input:checked + .gd-radio__label {
	background-color: #fff;
	border: 4px solid #ff6e33;
}
.wpcf7 .gd-radio input:checked + .gd-radio__label::before { border-color: #ff6e33; }
.wpcf7 .gd-radio input:checked + .gd-radio__label::after { opacity: 1; transform: scale(1); }
.wpcf7 .gd-radio input:focus-visible + .gd-radio__label {
	border: 4px solid #ff6e33;
	outline: 2px solid #282829;
	outline-offset: 2px;
}
.wpcf7 .gd-radio + .gd-radio { margin-top: 15px; }

/* icon variant: hide the radio circle, centre the icon + label */
.wpcf7 .gd-radio--hide-radio .gd-radio__label {
	background: #fff;
	height: auto;
	padding-left: 20px;
	text-align: center;
}
.wpcf7 .gd-radio--hide-radio .gd-radio__label > div { width: 100%; }
.wpcf7 .gd-radio--hide-radio .gd-radio__label::before,
.wpcf7 .gd-radio--hide-radio .gd-radio__label::after { display: none; }
.wpcf7 .gd-radio__icon--small { margin: 1rem auto 2rem; width: 8rem; }
.wpcf7 .gd-radio__icon--small .c-icon,
.wpcf7 .gd-radio__icon--small svg { display: block; width: 100%; height: 8rem; }

/* three icon cards side by side on >=sm */
@media (min-width: 768px) {
	.wpcf7 .u-flex-sm { display: flex; }
	.wpcf7 .u-flex-sm .gd-radio--flex { margin-right: 3rem; }
	.wpcf7 .u-flex-sm .gd-radio--flex:last-child { margin-right: 0; }
	.wpcf7 .u-flex-sm .gd-radio--flex .gd-radio__label { height: 100%; }
	.wpcf7 .gd-radio + .gd-radio { margin-top: 0; }
}

/* --- ratio boxes for the image previews --- */
.wpcf7 .o-ratio { display: block; position: relative; overflow: hidden; }
.wpcf7 .o-ratio--100 { padding-bottom: 100%; }
.wpcf7 .u-object-fit {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.wpcf7 .o-ratio .u-none { display: none; }
.wpcf7 .bg-color--grey-light { background-color: #f1f1f3; }

/* the small default/custom preview beside the image-use radios: the
   dynamic-cf7 targets are the <img>/<label> themselves */
.wpcf7 img.hidden-form-field,
.wpcf7 label.hidden-form-field { display: none; }
.wpcf7 img.hidden-form-field.is-visible { display: block; }
.wpcf7 label.hidden-form-field.is-visible { display: block; cursor: pointer; margin: 0; }

/* --- generating spinner (live's donation-spinner, three dots) --- */
.wpcf7 .donation-spinner {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
}
.wpcf7 .donation-spinner .spinner {
	background: none;
	border: 0;
	display: inline-flex;
	gap: 8px;
	padding: 0;
}
.wpcf7 .donation-spinner .spinner > div {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background-color: #282829;
	animation: gd-ig-bounce 1.4s ease-in-out infinite both;
}
.wpcf7 .donation-spinner .spinner .bounce1 { animation-delay: -.32s; }
.wpcf7 .donation-spinner .spinner .bounce2 { animation-delay: -.16s; }
@keyframes gd-ig-bounce {
	0%, 80%, 100% { transform: scale(0); }
	40% { transform: scale(1); }
}
/* preview image sits above the spinner once loaded */
.wpcf7 .o-ratio img.image-preview { z-index: 2; background: #f1f1f3; }
.wpcf7 .o-ratio img.image-preview:not([src]) { display: none; }

/* --- generator error message --- */
.wpcf7 .certificate-image-error-message {
	display: none;
	background: #fdeaea;
	border: 2px solid #ee0004;
	border-radius: 1rem;
	color: #282829;
	font-size: 1.8rem;
	padding: 15px 20px;
	margin: 0 16px 32px;
}

/* --- share circles (results step) --- */
.wpcf7 .c-social__list {
	display: flex;
	justify-content: center;
	gap: 16px;
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
}
.wpcf7 .c-social__list li::marker { content: ""; }
.wpcf7 .c-btn-circle {
	align-items: center;
	background: #f1f1f3;
	border-radius: 50%;
	color: #282829;
	display: inline-flex;
	height: 64px;
	justify-content: center;
	transition: background .3s cubic-bezier(.4,0,0,1);
	width: 64px;
}
.wpcf7 .c-btn-circle:hover { background: #e2dedd; }
.wpcf7 .c-btn-circle svg { width: 24px; height: 24px; fill: currentColor; }

/* --- utility classes this form's live markup uses --- */
.wpcf7 .u-text-center { text-align: center; }
.wpcf7 .u-relative { position: relative; }
.wpcf7 .u-m-bx7 { margin-bottom: 32px; }
.wpcf7 .u-m-bx8 { margin-bottom: 40px; }
.wpcf7 .u-m-tx9 { margin-top: 48px; }
.wpcf7 .u-h6 { font-size: 2rem; font-weight: 700; }
.wpcf7 .u-visuallyhidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.wpcf7 hr {
	border: 0;
	border-top: 1px solid #e2dedd;
	margin: 40px 0;
}

/* left-pointing arrow for "Previous" buttons (mask above points right) */
.block-form .wpcf7 .c-btn--icon-left .c-btn__icon {
	margin: 0 10px 0 0;
	transform: rotate(180deg);
}
.wpcf7 .c-btn-circle img { width: 24px; height: 24px; display: block; }
