/**
 * D-Marche - Gravity Forms styles
 * Uses theme.json colors and fonts.
 * Keep each form's Style Settings on default so these styles apply.
 */

/* Gravity Forms variables */

.gform-theme.gform-theme--framework,
:root .gform-theme.gform-theme--framework {
	/* Colors */
	--gf-color-primary: var(--wp--preset--color--accent-5, #ef476f);
	--gf-color-primary-rgb: 239, 71, 111;
	--gf-color-primary-contrast: var(--wp--preset--color--base, #ffffff);
	--gf-color-primary-darker: var(--wp--preset--color--accent-3, #06d6a0);
	--gf-color-danger: var(--wp--custom--status--red-500, #d02525);
	--gf-color-success: var(--wp--custom--status--green-500, #1daf75);
	--gf-radius: var(--wp--custom--field--radius, 8px);

	/* Inputs (54px tall by default) */
	--gf-ctrl-bg-color: var(--wp--preset--color--base, #ffffff);
	--gf-ctrl-bg-color-hover: var(--wp--preset--color--base, #ffffff);
	--gf-ctrl-border-color: var(--wp--custom--field--border, #a4a4a4);
	--gf-ctrl-border-size: 1px;
  --gf-ctrl-outline-color-focus: var(--wp--preset--color--accent-3, #06d6a0);
  --gf-ctrl-border-color-focus: var(--wp--preset--color--accent-3, #06d6a0);
	--gf-ctrl-radius: var(--wp--custom--field--radius, 8px);
	--gf-ctrl-padding-block: var(--wp--custom--field--padding-block, 16px);
	--gf-ctrl-padding-inline: var(--wp--custom--field--padding-inline, 12px);

	/* Labels and help text */
	--gf-ctrl-label-color-primary: var(--wp--custom--gray--800, #333333);
	--gf-ctrl-label-font-size-primary: var(--wp--preset--font-size--medium, 18px);
  --gf-ctrl-label-line-height-secondary: 1.2;
	--gf-ctrl-desc-color: var(--wp--custom--gray--600, #666666);

	/* Checkboxes and radios */
	--gf-ctrl-choice-size: 20px;
	--gf-field-choice-gap: 16px;
  --gf-ctrl-choice-check-color: var(--wp--preset--color--accent-3, #06d6a0);

	/* Buttons */
	--gf-ctrl-btn-bg-color-primary: var(--wp--preset--color--accent-5, #ef476f);
  --gf-ctrl-btn-bg-color-hover-primary: var(--wp--preset--color--accent-3, #06d6a0);
  --gf-ctrl-btn-border-color-focus-primary: var(--wp--preset--color--accent-5, #ef476f);

	font-family: var(--wp--preset--font-family--jost, Jost, sans-serif);
}

/* The double class is just enough to beat Orbital's defaults. */

/* Text inputs, selects, textareas */
.gform_wrapper.gform-theme--framework .gfield :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="hidden"], [type="file"]), select, textarea) {
	background-color: var(--wp--preset--color--base, #ffffff);
	border: 1px solid var(--wp--custom--field--border, #a4a4a4);
	border-radius: var(--wp--custom--field--radius, 8px);
	box-shadow: none;
	color: var(--wp--custom--field--text, #333333);
	font-family: var(--wp--preset--font-family--jost, Jost, sans-serif);
	font-size: var(--wp--preset--font-size--medium, 18px);
	line-height: 1.2;
	min-block-size: 54px;
	padding: var(--wp--custom--field--padding-block, 16px) var(--wp--custom--field--padding-inline, 12px);
}

.gform_wrapper.gform-theme--framework .gfield textarea,
.gform_wrapper.gform-theme--framework .gfield :is(textarea),
.gform_wrapper.gform-theme--framework .gfield .ginput_container_textarea :is(textarea) {
	line-height: var(--wp--custom--line-height--body, 1.5);
	min-block-size: 8em;
  padding: 8px 12px;
  border-radius: 4px;
}

/* Placeholder */
.gform_wrapper.gform-theme--framework .gfield :is(input, textarea)::placeholder {
	color: var(--wp--custom--gray--400, #A4A4A4);
	opacity: 1;
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: 170%; /* 25.5px */
}

/* Focus. The transparent outline keeps it visible in high contrast mode. */
.gform_wrapper.gform-theme--framework .gfield :is(input:not([type="checkbox"], [type="radio"]), select, textarea):focus {
	border-color: var(--wp--custom--field--border-focus, #265452);
	box-shadow: 0 0 0 1px var(--wp--custom--field--border-focus, #265452);
	outline: 2px solid transparent;
}

/* Disabled */
.gform_wrapper.gform-theme--framework .gfield :is(input, select, textarea):disabled {
	background-color: var(--wp--custom--gray--50, #f4f4f4);
	border-color: var(--wp--custom--field--border, #a4a4a4);
	color: var(--wp--custom--gray--500, #8a8a8a);
	cursor: not-allowed;
}

/* Errors: red border and text, back to normal text once they start typing */
.gform_wrapper.gform-theme--framework .gfield_error :is(input:not([type="checkbox"], [type="radio"]), select, textarea) {
	border-color: var(--wp--custom--field--border-invalid, #d02525);
	color: var(--wp--custom--status--red-500, #d02525);
}

.gform_wrapper.gform-theme--framework .gfield_error :is(input:not([type="checkbox"], [type="radio"]), select, textarea):focus {
	box-shadow: 0 0 0 1px var(--wp--custom--field--border-invalid, #d02525);
	color: var(--wp--custom--field--text, #333333);
}

/* Field labels, with a red asterisk for required */
.gform_wrapper.gform-theme--framework :is(.gfield_label, .gform-field-label--type-sub-large, legend.gfield_label) {
	color: var(--wp--custom--gray--800, #333333);
	font-size: var(--wp--preset--font-size--medium, 18px);
	font-weight: 600;
	line-height: 1.2;
}

.gform_wrapper.gform-theme--framework :is(.gfield_required, .gfield_required_asterisk) {
	color: var(--wp--custom--status--red-500, #d02525);
}

/* Help text and sub-labels */
.gform_wrapper.gform-theme--framework :is(.gfield_description, .gform-field-label--type-sub) {
	color: var(--wp--custom--gray--600, #666666);
	font-size: var(--wp--preset--font-size--small, 16px);
	line-height: var(--wp--custom--line-height--body-small, 1.4);
}

/* Validation messages */
.gform_wrapper.gform-theme--framework .gfield_validation_message {
	background: none;
	border: 0;
	color: var(--wp--custom--status--red-500, #d02525);
	font-size: var(--wp--preset--font-size--small, 16px);
	padding: 0;
}

.gform_wrapper.gform-theme--framework .gform_validation_errors {
	background-color: var(--wp--custom--status--red-100, #ffe5e5);
	border: 1px solid var(--wp--custom--status--red-500, #d02525);
	border-radius: var(--wp--custom--field--radius, 8px);
	box-shadow: none;
}

.gform_wrapper.gform-theme--framework .gform_validation_errors :is(h2, .gform_submission_error) {
	color: var(--wp--custom--status--red-700, #961e1e);
	font-family: var(--wp--preset--font-family--jost, Jost, sans-serif);
}

/* Checkboxes and radios: gray border, green when checked */
.gform_wrapper.gform-theme--framework .gfield input:is([type="checkbox"], [type="radio"]) {
	background-color: var(--wp--preset--color--base, #ffffff);
	border: 1px solid var(--wp--custom--gray--500, #8a8a8a);
	block-size: 20px;
	inline-size: 20px;
}

.gform_wrapper.gform-theme--framework .gfield input[type="checkbox"] {
	border-radius: 2px;
}

.gform_wrapper.gform-theme--framework .gfield input:is([type="checkbox"], [type="radio"]):checked {
	background-color: var(--wp--preset--color--accent-3, #06d6a0);
	border-color: var(--wp--preset--color--accent-3, #06d6a0);
}

/* White check and dot */
.gform_wrapper.gform-theme--framework .gfield input[type="checkbox"]:checked::before {
	color: var(--wp--preset--color--base, #ffffff);
}

.gform_wrapper.gform-theme--framework .gfield input[type="radio"]:checked::before {
  --gf-ctrl-radio-check-size: 8px;
	background-color: var(--wp--preset--color--base, #ffffff);
}

.gform_wrapper.gform-theme--framework .gfield input:is([type="checkbox"], [type="radio"]):focus,
.gform_wrapper.gform-theme--framework .gfield input:is([type="checkbox"], [type="radio"]):focus-visible {
	outline: 2px solid var(--gf-ctrl-outline-color-focus, #06d6a0);
	outline-offset: 2px;
  border-color: var(--gf-ctrl-border-color-focus, #06d6a0);
}

.gform-theme--framework .gfield--type-choice .gfield_choice_all_toggle,
.gform-theme.gform-theme--framework.gform_wrapper :where(:not(.mce-splitbtn))>button:not([id*=mceu_]):not(.mce-open):where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)).gfield_choice_all_toggle,
.gform-theme.gform-theme--framework.gform_wrapper :where(:not(.mce-splitbtn))>button:not([id*=mceu_]):not(.mce-open):where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)).gform_next_button {
  --gf-local-font-size: var(--wp--preset--font-size--medium, 18px);
  --gf-local-padding-x: 20px;
  --gf-local-padding-y: 12px;
  --gf-local-radius: 999px;
  --gf-local-outline-color: var(--gf-ctrl-btn-border-color-focus-primary, #ef476f);
}

input[type="checkbox"], input[type="radio"],
input[type="checkbox"] + label, input[type="radio"] + label {
  cursor: pointer;
}

/* Choice labels */
.gform_wrapper.gform-theme--framework :is(.gchoice label, .gfield-choice-input + label) {
	color: var(--wp--custom--gray--800, #333333);
	font-size: var(--wp--preset--font-size--medium, 18px);
	font-weight: 500;
}

/* Primary button (pill) */
.gform_wrapper.gform-theme--framework :is(.gform_footer, .gform_page_footer) :is(input[type="submit"], input[type="button"], button),
.gform_wrapper.gform-theme--framework .gform-theme-button:not(.gform-theme-button--secondary) {
	background-color: var(--wp--preset--color--accent-5, #ef476f);
	border: 2px solid var(--wp--preset--color--accent-5, #ef476f);
	border-radius: 999px;
	box-shadow: none;
	color: var(--wp--preset--color--base, #ffffff);
	font-family: var(--wp--preset--font-family--jost, Jost, sans-serif);
	font-size: var(--wp--preset--font-size--medium, 18px);
	font-weight: 500;
	line-height: 1.2;
	padding: 16px 24px;
}

.gform_wrapper.gform-theme--framework :is(.gform_footer, .gform_page_footer) :is(input[type="submit"], input[type="button"], button):hover,
.gform_wrapper.gform-theme--framework .gform-theme-button:not(.gform-theme-button--secondary):hover {
	background-color: var(--wp--preset--color--accent-3, #06d6a0);
	border-color: var(--wp--preset--color--accent-3, #06d6a0);
	color: var(--wp--preset--color--base, #ffffff);
}

/* Secondary button (also the "Previous" button on multi-page forms) */
.gform_wrapper.gform-theme--framework .gform_page_footer .gform_previous_button,
.gform_wrapper.gform-theme--framework .gform-theme-button--secondary {
	background-color: var(--wp--custom--button--secondary-background, #ef476f12);
	border-color: var(--wp--preset--color--accent-5, #ef476f);
	color: var(--wp--preset--color--accent-5, #ef476f);
}

.gform_wrapper.gform-theme--framework .gform_page_footer .gform_previous_button:hover,
.gform_wrapper.gform-theme--framework .gform-theme-button--secondary:hover {
	background-color: var(--wp--preset--color--accent-5, #ef476f);
	border-color: var(--wp--preset--color--accent-5, #ef476f);
	color: var(--wp--preset--color--base, #ffffff);
}

.gform_wrapper.gform-theme--framework :is(.gform_footer, .gform_page_footer) :is(input, button):focus-visible,
.gform_wrapper.gform-theme--framework .gform-theme-button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-5, #ef476f);
	outline-offset: 2px;
}

.gform_wrapper.gform-theme--framework :is(.gform_footer, .gform_page_footer) :is(input, button):disabled {
	background-color: var(--wp--custom--gray--300, #bdbdbd);
	border-color: var(--wp--custom--gray--300, #bdbdbd);
	color: var(--wp--custom--gray--600, #666666);
	cursor: not-allowed;
}

/* Progress bar */
.gform_wrapper.gform-theme--framework .gf_progressbar_percentage {
	background-color: var(--wp--preset--color--accent-3, #06d6a0);
}

/* Field sizes. GF's "Field Size" setting adds .small or .large to the field.
   Medium is the default above. */
 
/* Small: 42px */
.gform_wrapper.gform-theme--framework .gfield :is(input, select, textarea).small {
	font-size: var(--wp--preset--font-size--small, 16px);
	min-block-size: 42px;
	padding-block: 10px;
}

/* Large: 64px */
/*.gform_wrapper.gform-theme--framework .gfield :is(input, select, textarea).large {
	font-size: var(--wp--preset--font-size--large, 20px);
	min-block-size: 64px;
	padding-block: 19px;
	padding-inline: 16px;
}*/

/* Placeholder text matches the field size */
.gform_wrapper.gform-theme--framework .gfield :is(input, textarea).small::placeholder {
	font-size: var(--wp--preset--font-size--small, 16px);
}

.gform_wrapper.gform-theme--framework .gfield :is(input, textarea).large::placeholder {
	font-size: var(--wp--preset--font-size--large, 20px);
}

/* Textarea heights per size */
.gform_wrapper.gform-theme--framework .gfield textarea.small {
	min-block-size: 6em;
}

/*.gform_wrapper.gform-theme--framework .gfield textarea.large {
	min-block-size: 12em;
}*/

/* Keep checkboxes and radios at 20px if they get a size class */
.gform_wrapper.gform-theme--framework .gfield input:is([type="checkbox"], [type="radio"]):is(.small, .large) {
	min-block-size: 0;
	padding: 0;
}


/* Single select: leave room for Orbital's chevron (the base padding shorthand removes it) */
.gform_wrapper.gform-theme--framework .gfield select:not([multiple]) {
	padding-inline-end: 40px;
}

/* Multi select: compact list box. Only default and small; .large is styled as default. */
.gform_wrapper.gform-theme--framework .gfield select[multiple],
.gform_wrapper.gform-theme--framework .gfield select[multiple].large {
	background-image: none;
	block-size: auto;
	font-size: var(--wp--preset--font-size--medium, 18px);
	min-block-size: 0;
	padding: 4px;
	scrollbar-color: var(--wp--custom--gray--400, #a4a4a4) transparent;
	scrollbar-width: thin;
}

.gform_wrapper.gform-theme--framework .gfield select[multiple] option {
	border-radius: 4px;
	color: var(--wp--custom--field--text, #333333);
	line-height: 1.4;
	padding: 4px 8px;
}

.gform_wrapper.gform-theme--framework .gfield select[multiple] option:hover {
	background-color: var(--wp--custom--gray--50, #f4f4f4);
}

/* Selected: teal + white. Chrome forces white text on selected options while focused,
   so the background must be dark enough for white (#265452 = 9.4:1). */
.gform_wrapper.gform-theme--framework .gfield select[multiple] option:checked {
	background: var(--wp--preset--color--accent-1, #265452) linear-gradient(var(--wp--preset--color--accent-1, #265452), var(--wp--preset--color--accent-1, #265452));
	color: var(--wp--preset--color--base, #ffffff);
	font-weight: 500;
}

/* Height fits the options instead of GF's ~7 rows; long lists scroll after ~6 rows.
   field-sizing works in Chrome/Edge; other browsers keep the GF row count. */
.gform_wrapper.gform-theme--framework .gfield select[multiple] {
	field-sizing: content;
	max-block-size: 13em;
}

/* Small: 16px text, tighter rows */
.gform_wrapper.gform-theme--framework .gfield select[multiple].small {
	font-size: var(--wp--preset--font-size--small, 16px);
	padding: 2px;
}

.gform_wrapper.gform-theme--framework .gfield select[multiple].small option {
	padding: 2px 8px;
}